Bangarang – a media player

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.

Peace!

28 Comments »

  1. Awesome work and great post! Keep it up, I am looking forward for this new release!

    Comment by Aurélien — November 22, 2010 @ 1:05 am

  2. Incredible work, very well done!

    Congrats and keep rocking!

    Comment by Edney Matias — November 22, 2010 @ 2:19 am

  3. Sounds awsome, thx for your work and this great app.

    Comment by sxe — November 22, 2010 @ 2:26 am

  4. First I have heard of this app. It’s incredible.
    Great work!

    Comment by xsacha — November 22, 2010 @ 4:54 am

  5. This looks very nice 🙂

    I’ll give Bangarang a try soon. It also complements Amarok nicely, because we are aiming for slightly different goals, I think. So I don’t see it as competition, but rather as a nice alternative.

    Greets,
    Mark.

    Comment by Mark Kretschmann — November 22, 2010 @ 5:46 am

    • Thanks Mark! That’s definitely my view as well- complementition, I call it. 🙂

      Comment by jamboarder — November 22, 2010 @ 11:12 am

  6. There’s no doubt that this will be my primary video player after stable relase. The file managment and creating playlist from folders is easy and the interface looks fabulous. However the full screen control bars aren’t that pretty, it’s same with every KDE mediaplayer except maybe Bakaar. And what makes it even worse is that it resizes the video playing which I guess is QT related problem. It would be nice if that could be sorted out before next relase but I guess it’s too late for that.

    Comment by teho — November 22, 2010 @ 5:52 am

  7. Just so incredible what you guys have got done! I would have bet that bangarang was started late 2009 but now, less than a year, you have managed to pull mediaplayer what only loose to the VLC because VLC has ability to play all media. But in usability /features the bangarang goes over in the avarage user needs. (The VLC is better if you need video converter, stream-server etc)

    Just keep up the wonderfull work and please, blog more often, 1-2 times a month! 😀

    Comment by Fri13 — November 22, 2010 @ 6:26 am

    • Funnily enough, if this uses Phonon, the user can use VLC to play video in KDE applications – so not even THAT advantage is exclusive any more.

      Comment by the_madman — November 22, 2010 @ 10:59 am

  8. Holy shit ! Finally some multimedia app developer who knows that a band can belong to multiple groups of genre !

    And seeing how the interface is made, Bangarang would make an fairly awesome multimedia-manager for a tablet device. I don’t know if it was made on purpose but I approve that : KDE-Mobile will need something else than Amarok and Dragon players, those just don’t fit for touchscreen…
    And Dragon is not even a multimedia manager anyway, while Amarok only manages music… how could you not need a multimedia manager on a tablet ?? Anyway, iTunes and iOS could go f*ck themselves, with Bangarang inside, KDE-Mobile would kick way more asses.

    The only thing I would miss is a Wikipedia integration (and in Bangarang’s interface, they’re many ways doing it right).

    Comment by Plaristote — November 22, 2010 @ 8:22 am

    • Thanks for the kind words! Working with smaller screen sizes was a purposeful consideration from the start. Additionally, there is a platform layer that is separate from the UI layer that could even theoretically allow a completely different UI implementation on top of it. Don’t under estimate UI work though – I’d say 50% of the time I’ve spent on Bangarang has been UI work.

      On Wikipedia integration, my hope for integration with existing web services is to keep it a the data level so that apps can make intelligent request for data and data presentation can correctly be handled by the app. For Wikipedia data, Bangarang uses dbpedia. The great thing is many web services, are starting to provide more access to data instead of just web pages. 🙂

      Comment by jamboarder — November 22, 2010 @ 11:32 am

  9. It looks great. Keep up the good work!

    Comment by Naproxeno — November 22, 2010 @ 9:47 am

  10. […] Gli utenti sperano di trovare nel player bangarang ”il player di kde”. Dal blog ufficiale arrivano anticipazioni sulla versione 2.0 ancora in fase di sviluppo!Bangarang 2.0 sara’ […]

    Pingback by Anticipazioni da bangarang 2.0 « GNUpress! — November 23, 2010 @ 12:44 am

  11. Wow. Compiled fine under Maverick Meerkat. Have a problem which I assume is nepomuk-related. Bangarang can only find and display a subset of my collection many artists are missing and within albums not all songs are there.

    Also composers from the metadata are shown as the artist e.g Ulrich/Hetfield instead of Metallica.

    Is this a known problem? Any ideas how to fix it?

    Comment by pepedopolous — November 23, 2010 @ 1:02 am

    • Hmm… Could be a couple things. They could be indexed incorrectly by strigi or the file metadata is incorrect or there is a Bangarang bug I’m not yet aware of. One way to check is to use “Files and Folders” to browse to some of the media files that should be showing up. Select any of those files and see what shows up in the Info View. When browsing “Files and Folders” metadata is directly read from the files. So if metadata for each file shows up correctly in the Info View then it is a problem with how they were indexed. (You can have Bangarang index the selected file(s) if you choose.) If, however, the file metadata also shows up incorrectly Info View, then the problem is with the file metadata.

      Hope this helps,
      Andrew

      Comment by jamboarder — November 23, 2010 @ 9:20 am

  12. Great work, i’ve always felt amarok was too much for me, but bangarang is just what I’m looking for. Only thing I would add (Maybe it’s already there) is lyrics, maybe showing it in the information panel when clicking on a song?, anyway thanks for this and also, nice blogpost.
    PD: I’ve always been interested in gui design, where did you learn this, it’s this just thinking or did you read any book on the subject you would recommend?

    Comment by damian — November 23, 2010 @ 10:00 am

    • There’s a ton of UI resources all over the intarwebs. That and a combination of maniacally studying every UI interface I’ve come across and trying to figure out why they work well (or don’t work well) is helpful. I think I’ve looked at just about every media player on every desktop, console and mobile platform over the past year or two. Pair that with all the technical papers, blog posts, wikipedia entries available and you’ll find there’s a good deal to help. I’m also putting together a short piece on UI considerations for small developers based on what I’ve learned.

      Comment by jamboarder — November 23, 2010 @ 1:15 pm

    • Oh and Magic Ink (http://worrydream.com/MagicInk/) should be required reading for anyone interested in UI design.

      Comment by jamboarder — November 24, 2010 @ 2:59 pm

  13. Насобиралось в меня гора мусора, порекомендуйте нормальную фирму в Москве по вывозу тбо мусора ..заранее спасибо)

    Comment by MACEPAUME — November 24, 2010 @ 1:54 am

  14. Wow, really great piece of work! I’m really looking forward to this 2.0 release.
    One question always bugs me thinking about bangarang. Either it is possible already and I did not find the option – but will there be support for a tray icon?

    Comment by STiAT — November 24, 2010 @ 2:55 am

  15. This is really a masterpiece of UI work. Groundbreaking (at least for KDE) in that it has this kind of UI slickness that I’m used from OS X, but not by copying that , but by really using Oxygen’s design.

    Comment by Thomas — November 24, 2010 @ 10:38 am

  16. Hi! Is the support for subtitles from an external file in your schedule?
    That’s what’s keeping me and countless other TV shows fans from adopting this as their main player, as we use fansubs toghether with originale audio versions of the shows.

    Thanks a lot for the good work!!

    Comment by skarn86 — November 24, 2010 @ 5:39 pm

    • Support for srt external subtitles were just added today.

      Comment by jamboarder — December 6, 2010 @ 7:40 pm

      • Wonderful! I upgraded to the last GIT version, and it works quite well.

        The black box around subtitles may appear a little obtruding at first, but it make text much easier to read, so it’s not really a big deal.
        The only thing I’m missing now is that when the video and the srt file have the same name it should try and guess that the subtitles need to be used, so the user doesn’t need to apply them himself with every video…

        Great work anyway, and thanks a lot for your efforts!!
        (I’m going to post this in the bug tracker also, just for completeness…)

        Comment by skarn86 — December 7, 2010 @ 3:20 am

      • How did you do that? I have read that subtitles support was only responsibility from Phonon, and it didn’t support subs right now.

        Congratulations for you great work! I nice and good music and video player for KDE was missing.

        Comment by Gres — December 9, 2010 @ 9:27 am

  17. […] Link: Blog de Bangarang […]

    Pingback by Así será Bangarang 2.0 « ext4 Blog, el rincón de Malcer — November 27, 2010 @ 2:07 pm

  18. This is a godsend. I have always hated being forced to use bloated software to play music and movies so this is a great app and I look forward to the next release.

    Comment by Chris Sheppard — December 10, 2010 @ 5:16 pm


RSS feed for comments on this post. TrackBack URI

Leave a reply to jamboarder Cancel reply

Create a free website or blog at WordPress.com.