Bangarang – a media player

January 25, 2012

Bangarang development now hosted by KDE

Filed under: Uncategorized — Tags: , , — jamboarder @ 9:54 am

Bangarang’s development is now hosted on KDE’s git infrastructure in playground.  Many, many thanks to Ben Cooksley and David Solbach for their patient help with the migration from Gitorious.  I’m not a software developer by trade, so their help was invaluable.  The translations are now also hosted by the wonderful KDE translation team – thanks for handling the move Albert!  The new development project page is here.

Gitorious has been an absolutely wonderful host for this fun little project for the last 2 years. In that time there are many things I’ve learned and there will certainly be many things I’ll miss.  That said, I am definitely looking forward to working more closely with the KDE community.

So this is your invitation to join in on the fun.  As always, Bangarang remains a project I spend time on for no other reason than the joy of it.  Good energy in, good energy out.  Rumor has it that the KDE community has oodles of good energy!


December 7, 2011

Happy hacking pops out a 2.1 holiday cake

Filed under: Uncategorized — Tags: , , , , , — jamboarder @ 2:19 pm

There’s nothing like doing what you enjoy for no other reason than for the sheer joy of it.  Even better, when such joy produces something you can experience. Bangarang 2.1 is now released.

I really enjoy creating stuff.  Occasionally, if I’m at all like other folks (debatable, I know), I look at the stuff of other people’s passions (music, paintings, architecture, whatever) and say man I wish I could do something like that.  I often find myself wishing for the passion of others while ignoring my own passions, my own motivations.  Working on Bangarang is one of my own avenues of creative expression. I do it with joy.  I’ve learned that, much like others who explore their own avenues of creative expression, I’m most creative when I choose not to do it from a place of anxiety or obligation to the work.  It sounds stupidly simple but I have the most fun when I’m actually having fun.  Fun breeds fun. Joy breeds joy.  And it is not just ok, but better, to take breaks when the fun diminishes.  That is the luxury of a hobby instead of a job. I do it for fun and I can take breaks whenever I want to.  And the fun does diminish.  It is the nature of living.  We can’t go about prancing around like we’re blissfully happy and eternally creative all the time.  We’re not.  And that’s ok, because it allows us to appreciate those joyful times all the more.

And the Bangarang 2.1 release paired with the holiday season is one of those times for me.  Happy holidays!

(Release notes are here).

November 26, 2011

Thanksgiving turkey, it’s probably time…

Filed under: Uncategorized — Tags: , , , — jamboarder @ 1:27 pm

Mmmm, after the jerk-flavored roasted turkey for Thanksgiving dinner (with an amazing Paula Dean corn casserole) I got some excellent coding mojo. That is, of course, after the tryptophan wore off. Then I realized that it has been over 6 months since the last bug fix release and it kinda seemed like it was about time to get these fixes I’ve worked on over the last few months more widely distributed.  So I tagged Bangarang 2.1 beta last night.

There was once a 2.1 target features list, but as I’ve realized over the last few months, with just myself as the main developer, it just makes sense to work on whatever motivates me, when I’m motivated to work on it.  I’ll do target features and and more fixed release schedules if the number of contributors grow. Fun is my biggest motivation and it’s gotten quite a bit done thus far.  And yes, I do enjoy knocking out bugs as much as I enjoy adding features. 🙂

I think there were enough new features to warrant the bump to 2.1 instead of another 2.0 bugfix release.  Anyway, I’ve really enjoyed these last few months of development and if anyone wants to join in on the fun, holler! Till then please help me test and report any issues you encounter.

October 30, 2011

Thanks Kubuntu and Canonical!

Filed under: Uncategorized — Tags: , , , — jamboarder @ 2:25 am

So several weeks back, the wonderful Kubuntu folks, on behalf of Canonical, supplied a tablet to help me test modifications I’ve been making to allow Bangarang to be more touch friendly.  Bangarang was shipped with Plasma Active One with some very basic modifications to help make it at least tolerable on a touch device.  I’ve spent a little more time trying to improve the touch mode and the supplied tablet has made it so much easier for testing.

I just committed some of these updates to master and I’m looking for feedback.  Feel free to use the bug tracker or Google+ to share any feedback with me. You can use the comments here as well. Here are a couple current screenshots of Bangarang in touch mode (bangarang –touch):



A few of the updates for touch mode include flickable scrolling in the media lists, playist and Info View, disabled some mouse hover interaction mechanisms and redesigned others to work better in touch mode, adjusted more widget graphics, size and spacing to work better in touch mode, touching the video during playback shows or hides the playback controls and a few bugfixes.  No, I’m not totally pre-occupied with these touch mode enhancements – I’d like to tackle some bugfixing over the next few weeks.  Anyone interested in helping is welcome. 🙂

I’m really grateful to the Kubuntu folks and Canonical for their generosity.  I have much more touch mode work to do and, so far, having a tablet for development testing has made it much more efficient and fun.

September 15, 2011

Bangarang Touchificationism

Filed under: Uncategorized — Tags: , , , , — jamboarder @ 9:47 pm

With the recent activity surrounding Plasma Active, I was inspired to do a few simple things that might make Bangarang a “touch” more tolerable on tablet devices.

I had already made a conscious effort in the existing UI design to account for lower resolution displays like netbooks.  Now I hope to get to the threshold of being at least tolerable on tablet devices.  This primarily means accounting for sometimes higher dpis as well as the more obvious transition from a mouse and keyboard to touch.  At a minimum, this means increasing target areas and increasing the pixel size of some visuals and text.  (More completely, it means a full evaluation of all the interaction mechanics necessary to execute the basic use-cases and adjusting the design accordingly).

So the result of this first step are in the following screenshots:

Touch disabled(left) and enabled(right)

And at what I think is the WeTab resolution:

I also disabled drag and drop in the Media Lists view when touch is enabled since it’s likely to be running fullscreen.  Note that this is not all QMLified and fully optimized for touch (including swipe scrolling and all that)… yet.  Like I said, I’m mostly hoping to get it tolerable first.

But here’s the deal. I don’t have a tablet with Plasma Active to test on.  Which means I’m mostly doing this with my overly active imagination. So if anyone would like to test and can provide some feedback you can get the latest from To enable touch, run “bangarang –touch [any character]”.  Thanks!

February 19, 2011

UI Considerations: Layouts

Filed under: Uncategorized — Tags: , , , — jamboarder @ 10:15 am

This is the second entry in what I might make into a “UI Considerations” series. The first entry was UI Considerations for the Small Independent Developer that covered a few basic concepts like use-cases, Information Value and Interaction Impulse.  As a reminder, these entries are oriented toward to the hobby developers that do not have the resources of an expert UI design or test team, but are still seeking some easily digestible UI guidance that they can act on at design time.  To be clear, this is not canonical UI guidance nor is it intended as a substitute for expert advice. These are just a collection of my observations over the years as a hobbyist and a borderline-obsessed fan of design in general and UI design in particular.

A quick recap from the first entry:

  • Ideally, use-cases should be implementation-agnostic.
  • The best UI allows the user to accomplish their goal(s) with minimum cognitive impact.
  • Reducing or eliminating elements with low Information Values should a goal of the UI designer.
  • Minimizing or eliminating high Interaction Impulse elements that do not support the use case should be a goal of the UI designer.

In this entry, I’ll take a look at layouts from a pretty high level.  The focus will mostly be on the high-level layouts you see when you first encounter an application, a desktop environment, or website, not necessarily the low-level layout used for individual UI elements. These high-level layouts may also be how you recognize or remember the application.  For example, when you think of a Windows 7 desktop what is the first image that comes to mind? For me that image has two general sections: the desktop area on top and the taskbar area below.  How about a web browser like Chrome or Rekonq?  Address bar + tabs on top, page content below. How about a file manager like Dolphin or Nautilus?  Places on the left, list of file icons on the right. I’m talking about that high-level layout you encounter when you first ask yourself  “Ok, how does this thing work?” and proceed to visually scan the application for clues.  Go check out your favorite app, desktop environment or website and see if you can identify the top level layout pattern.


January 30, 2011

Bangarang 2.0 Released

Filed under: Uncategorized — Tags: , , , — jamboarder @ 6:47 pm

I’m happy to announce the release of Bangarang 2.0.

After a year in development, we’ve have finally crossed the finish line.  There are many new features and  bugfixes since 1.0 including:

  • New Info View that provides helpful information about your media when you need it and integrated metadata editing and drilling.
  • Info fetchers to help lookup additional media information for Artists, Movies, TV Shows, Actors, etc.
  • Support for Audio and Video feeds
  • Organize and browse media using (nepomuk) tags.
  • Improved DVD support including support for subtitles, chapters, audio channels and angles.
  • Embedded and external subtitle support
  • Improved audio and video settings
  • Bookmarks support
  • Revamped Files and Folders support
  • MPRIS and system tray support
  • Shortcuts support
  • and more…

This has been a fun and enlightening development cycle. Bangarang, like other open source software, is the product of volunteer effort . Speaking for myself, I poured chunks of my heart and soul into this – more, sometimes, than I probably had to spare – but that’s half the fun! That’s the deal with life – you can’t take it with you in the end.  Besides, it has been wonderful having something into which I can direct my creative energies. 🙂

Stefan Burnicki has been a great developer to work with and if he ever comes knocking on your door offering to help out with your project, feel free to let him in!  Andreas Marschke provided helpful support in the early 2.0 development cycle.  Elias Probst and Jérôme Artu have been the best testers and bug reporters ever and made a huge difference in what 2.0 might otherwise be without them. The translators have been great and several others have provided one-time patches and support. If you would like to participate positively in the next release see the project links at the bottom of the page.

Now, as excited as I may be about this release, I realize that some people may encounter bugs that we did not find during our test phase.  Please feel free to use the issue tracker to report these bugs. Packagers can find the released source tarball here.  This release can by downloaded from

I hope you enjoy this release!


January 24, 2011

Bangarang 2.0 Release Candidate

Filed under: Uncategorized — Tags: , , , — jamboarder @ 9:07 am

I’m happy to announce that the Bangarang 2.0 Release Candidate is now available.  It can be downloaded from  Packagers are welcome to get the source tarball from here.

We completed what I believe was a very successful and productive beta phase. I hope these efforts are reflected in this release candidate.  Do not doubt that you can contribute in a substantive and meaningful way to open source software projects by providing helpful, constructive bug reports.  Many bugs have been fixed and features implemented directly and solely as a result of the excellent issue reporting during this beta phase.  I’ll provide a full description of changes and improvements since 1.0 when the final 2.0 release is announced.

All strings are now frozen and folks who would like to translate Bangarang into your favorite language for the final 2.0 release are welcome to do so in the usual ways – merge requests or email – over the remainder of this week.

If there are no show-stoppers Bangarang 2.0 should be available by January 31, 2011.

Thanks to everyone who have provided so much support during this 2.0 development cycle.  We’re almost there!

December 14, 2010

Bangarang 2.0 beta

Filed under: Uncategorized — Tags: , , , — jamboarder @ 11:03 am

I’m happy to announce the first beta of Bangarang 2.0.  Below is a short list of the new features since 1.0:

  • New Info View sidebar that provides helpful information currently selected items:
    • Recently played, highest rated and frequently played
    • Info Fetching support for artists, movies, actors, directors, etc.
    • Integrated metadata editing.
  • Support for audio and video feeds
  • Revamped filesystem media list browsing
  • Nepomuk tag media list browsing
  • Media lists (including playlist) filter
  • MPRIS support
  • Bookmarks
  • Audio equalizer
  • Shortcuts support
  • Subtitles support
  • Improved DVD support
  • A diversity of new and exciting bugs… 😉

Bangarang 2.0 beta can be downloaded from  Interested packagers can get the source tarball from here.

Bugs can be reported here.  Bugfixes patches/merge requests are VERY welcome!

If you would like to help – yes, I would really like your help – feel free to visit the project development home or the mailing list.

Thanks and much respect to fellow code wrangler Stefan and our stalwart bug reporters Elias and Jay.


November 21, 2010

Bangarang – What the dilly yo?!

Filed under: Uncategorized — Tags: , , , — jamboarder @ 11:56 pm

Yeah I’m old school like that! 🙂

Anyway, it’s been a while since I last blogged about Bangarang development so I figured I should share a little (or long) insight into what to expect for the 2.0 release with a few screenshots to help explain.

Before anything else, I need to mention that Stefan has been totally kick-ass with just about everything he’s tackled. He is the only other longer term coding contributor to the project and there’s absolutely no way I could list all the stuff he’s worked on, but I’ll mention a few: Lot’s of work on DVD support including subtitles, angles and audio channel support; Excellent star rating renderer that’s used all through out Bangarang; Shortcuts support and configuration; Filter support on the media list and playlist views; Tons of bug fixing, improvements and cleanup.

The InfoView

A good deal of my time and efforts over the last few months have gone into the InfoView.  The InfoView is a sidebar showing information on the currently selected item(s).  The information in the InfoView varies depending on the selected media items.  I’ve already blogged about the Recently Played, Highest Rated and Frequently Played info boxes displayed in this view.

Most of the work on the InfoView since then has been focused on allowing easy, seamless interaction with displayed media information.  Let’s start with artwork:

Representative artwork for categories such as artist and genre are created based on the artwork of media items in the category.  Custom artwork can be set for artist and genre categories if for some reason the user would prefer to see say a picture of the artist or custom genre artwork.

The primary function of the InfoView is to display media info. A secondary function of the InfoView is to allow editing  media info.   This means that I did not want to distract from the primary function by using editing widgets to display information (which emphasizes interaction over information). I also didn’t want to switch from a “display mode” to an “editing mode” like in Bangarang 1.0 which exposed all the editing widgets for all fields at the same time which can be jarring.  I also wanted to add support for browsing directly from the InfoView by, for example, clicking on the artist name to see all songs by that artist, or by clicking on the genre. On top of all that I wanted to add support for multiple artists, composers, genres, actors, directors and (nepomuk) tags.  That’s a lot of functionality to stuff into a relatively small area, so it has taken some time to identify and implement a solution that is not overwhelming.  Some of this was all front end UI stuff, some of this required work on the deeper plumbing.  We’re finally approaching something I’m satisfied with:

The first image shows what the info view looks like normally – basically like a sheet of paper (very low interaction impulse).  When the user moves the mouse over the values for each field, more functionality is revealed as shown in the second image (basically increasing the interaction impulse). The user can directly edit the field by clicking on it, add a value to the field by clicking on the “+” (2nd & 3rd image above) or browse using the field value by clicking on the browse “>”icon. So in the example provided in the 2nd image, if the user wants to see other Rock songs it’s just a click away.

For music files that support ID3 and Vorbis comment tags, multiple artists, composers and genres will be updated along with the nepomuk datastore.

Info Fetchers

Since users can edit info in the InfoView, I wanted create a framework that would allow metadata editing to be a little easier. Info Fetchers do pretty much what the name says… fetch info.  Info Fetchers specify their required fields for each media type/category they handle and, when present, they’re exposed in the ui for user to add metadata with:

In the first image, after the user enters the url for an audio or video feed, the info icon is shown which, when clicked, offers a way for the user to fetch additional info. Fetched info (second image) is treated the same as information entered by the user.  If multiple matches are found the are presented for the user to choose as in the third image. So far Info Fetchers have been created for fetching feed info and dbpedia info on persons(artists, actors, directors) and movies.  More will be added over time.  More recently, I learned from Sebastian about the nepomuk web extractor plugin framework that Artem Serebriyskiy has worked on.  It should be possible to eventually write a Info Fetcher to use nepomuk web extractors to fetch media info.  Once again, the work Sebastian and friends and doing on nepomuk is great and this is my personal appeal  to the community to step up with whatever support you can provide (coding, documentation, whatever..). My intent is to prioritize Info Fetcher/web extractor plugin development for services that provide media related information in a philosophically libre sense.  (Frankly, these are the services worth my time and effort rather than ones that lock up publicly available information behind a proprietary/pay wall.)

Note though that Info Fetcher need not exclusively work with the web. An Info Fetcher has been written to look at file names to extract season and episode numbers for TV shows. In fact this was a long outstanding merge request by a contributor which was easily converted to an Info Fetcher.

Other stuff

All the work has not just been on the Info View though.  Files and folders have been overhauled to allow direct file system browsing from the traditional KDE Places:

File listings are progressively loaded with basic then full metadata so browsing is much, much faster than before.  If you’re quite happy with the way you’ve orgainized files in your file hierarchy, Bangrang will allow you to browse that hierarchy with the same ease as every thing else.  Additionally, as shown in the picture, whenever the user wants to they can index selected files or folders when they see fit, rather than being forced to (as in 1.0).

MPRIS support was kindly added by Ni Hui:

More recently additional ways to manage the Recently Played, Highest Rated, Frequently Played media lists were added:

There are several other changes here and there with just a few minor features left to implement for 2.0.

When’s 2.0 going to be released?

So Bangarang 1.0 was released in January of 2010.  When I started on 2.0 I imagined I’d be able to get it out in 6 to 8 months. However, the reality is that in order for me to work on Bangarang I need to maintain a balance with all the other aspects of my life in order to enjoy working on this, my hobby.  I’ve managed to find this balance in the last few months and that usually means hacking on Bangarang only on weekends.  And that’s fine with me, cuz I’m really enjoying this and I really want to release something to be proud of.  That said, I would like to release 2.0 soon.  Which is part of the reason I’m writing this post.  I’m happy to say that I hope to release the first beta in the next 2 to 3 weeks. If that still sounds far away, remember that’s 2 to 3 weekends – 2 to 3 hacking sessions for me. With all the new changes, unfortunately stability has gone down a bit so I’d like to spend some time doing a few rounds of bugfixing before the beta release.  As always, I welcome any help that anyone has the positive motivation provide.  There is a LOT of stuff I’m learning about as I do this, so there could be very simple things causing a crash that I’m simply uneducated about how to fix.  So don’t assume there’s nothing you can do to help. 🙂

Thanks to all the translators who have provided contributions so far.  You’re AWESOME! String freeze should be around the first RC (I’ll be sure to provide lots of heads up).

Well that’s it.  Sorry for taking so long to provide an update.  For those who are still interested after all this time, the source repository is here and there is a project mailing list is available here.  Of course, you’re welcome to comment here.


Older Posts »

Blog at

%d bloggers like this: