October 7, 2009

Bangarang – A KDE Media Player

This is my first post intended for the planet so I should introduce myself. My name is Andrew Lake (or Jamboarder if you prefer). I grew up in Jamaica and currently live in Seattle. I’ve been a linux user since around the turn of the century but only started dabbling in KDE code about a couple years ago. Much of my limited contribution has been to the plasma project. As I learned more about the other Pillars of KDE I became more interested in doing up an app of my own. I’m especially excited about the possibilities provided by Nepomuk.

So, over last few months I started work on a media player and, inspired by Aaron’s recent blog on continuous communication, it seemed appropriate to share my dabblings so far.

Bangarang is a KDE media player.

As much as possible, the pillars of KDE and existing KDE technologies are/will be used, and constructive feedback provided to the respective projects. Hopefully this might provide additional set of use cases, and a platform to test them on, for some of the still evolving technologies.

The source code and project development page is hosted at http://gitorious.org/bangarang and anyone interested in helping is certainly welcome. All features on the 1.0 feature target list are not yet implemented so this should be considered alpha quality software. I’ve released a source code tarball representing a 1.0 alpha A release on opendesktop.org. I’m developing on Kubuntu (currently 9.04 with KDE 4.3 from backports). I’m especially looking for help with debugging compiler errors on other platforms (sigh, I guess I really need to do up a VMWare or VirtualBox install).

Feedback, patches and participation are definitely welcome. I only ask one thing: please be respectful. I do this in my spare time and, as such, I\’d like to keep my motivation up.

It’s looking really nice! Love the fading blue background and reflections. The whole thing sort of reminds me of a shinier looking version of Juk for video… (which is a good thing!) Have you thought about using the standard Oxygen speaker icon like the one used next to the volume in Amarok? Anyway, it’s great that you’re really using and planning push the KDE pillars. That’s the way we’re going to get a feature filled, powerful *and* cohesive desktop.

I wasn’t super happy with the volume icon from the oxygen set (which is the one Dragon player uses). This is the text-speech icon I’m currently using. I’ll have to figure something out for the 1.0 release.

Can you just file a bug report against the oxygen icon theme? To be honest, that icon (the one in Amarok) looks like it was drawled by a 2 year old. I thought the whole point of Oxy was to get away from that whole KDE3 cartooney look. ;)

looks good. Will it play DVDs as well? If yes, maybe you can be the first Linux media player that actually supports saving of the DVD position for multiple DVDs (so playback optionally starts where you last stopped it when you open a DVD). This would be awesome.

Cool, I hope you won’t forget the feature. It is especially handy when watching series (? – something like Lost or Scrubs) on DVD because it will jump to the right menu next time you start it right away.

I dont think the Dragonplayer developers would not like to merge, because they do not even like the Ctrl+M feature to have minimalistic polished UI and they usually like to use Dragonplayer on fullscreen what is the reason why they would not include the Ctrl+M.
Bangarang seems to just fit to state what the default KDE player should be, it even seems to use most of the KDE technologies so why not so? I have now used all day this player and it is awesome!
Hopefully both continues on their projects because many likes Dragonplayer as well.

Hi! Great work. I will be following you in this work since i really think we need something like Apple’s FrontRow and this seems to be your target. Sadly i can’t code but i’m setting up an environment where i will be able to test on big lcd tv and the use with remotes. I will be more than honored to help translating into italian if needed and obviously report bugs.

Hello Andrew, welcome to the blogging people ;-)
What a nice player, Bangarang is cool, it’s well designed (compliments for the gui) and has a cool name (what does it mean?).
Thanks for sharing this with us!

If the name would include K, then it would really be noise, commotion and chaos ;-)
(the name is very nice, looks almost like “Garageband”, but because it does not have a K, it can be tought to be a GTK+ application ;-))

Dragon Player is a joke, Bangarang is already much better in the current alpha state…
I’ve just compiled it on my arch box, love it. Too bad I have no programming skills yet, I’d love to help with developing such an application. I think, this could become the default KDE multimedia application, replacing Dragon (don’t understand how a great desktop environment such as KDE can afford to have default media player as poor as Dragon)
Good coding;-)

I agree, Ian Monroe had too much on his plate anyway concerning open source development, so Dragon Player was more like a test for him. It sucked so hard even at basic functionality and it was damn buggy. Only myself while I used KDE reported a couple of show stopper bugs, which fortunately got fixed eventually…. oh well.

Take it easy on Dragon Player though. For the most part it does exactly what it was intended to, no more, no less. And it does that reasonably well. I’m greatful someone expended the effort to create it. My efforts on Bangarang is certainly not intended to come at the expense of the genuine efforts of others.

Fact is, I’ve learned lots from the Dragon Player (not to mention just about every other media player I could get my grubby hands on – on any platform).

Didn’t try it out but from the screenshot seems awesome to be an early alpha! Keep up the good work, KDE really deserves something a-la Amarok for video playing, and your app seems it’s going to fill that gap! Thanks!

PS are planning to support subtitles? I think this is a must for every non-english speaker here addicted to series :)

will be looking like kaffeine on version 0.8.8 ? Functionality: select more audio channel, more subtitle(add more subtitle) (SSA, ASS, SRT, SUB, vob sub…), subtitles to black lane, delay/advance subtitle, font/size of subtitles, ……., blocking screen-saver, aspect ratio for video, play DVD with menu, track info,………. or it must be implemented in phonon?

Implementation off broadcast? Sending/receiving? It not must be.

Implemetation of dvb-t player in kaffeine 1.0pre2 is very good but implementation other features for now is not very good. :-(

I have a movie store on my hard disk. but not a good app for handle the store.

When I show a movie or a series, than I have the problem, that I don’t know at which season I stop looking. So mayby it will be possible to have a column with last view.

maybe it is possible to have a preview mode like the music picture. where you will see at the left side the video as preview and beneath the preview you show informations about the movie. informations like: last view, how long, genre, … and some informations from the Internet. on the right side you have the movie overview.

At the section movie, series, … I would make some subsections like genre (aktion, sci-fi, …)

I’m still working on the video ontology. I expect to add genre and perhaps artwork. Most importantly though, I’m trying not to overwhelm the ui. We can get the power in there. Just want think carefully about how to do it. All that said… basics first, gravy later!

Hello jamboarder.
Your app looks very promising and since there is no decent KDE media player with collection management functionality for both music and video, I already thought about creating one myself…
Now, I’d like to help as much as I can to make this become a reality and wondering were I could start I saw that you wrote that you were still working on a movie ontology. Since I couldn’t find a draft or something in your git repository, I take it you haven’t come very far with that until now. If so, and if you’d like me to help, please contact me.

All the information the media player stores is in nepomuk so its available for the entire desktop. If a plasma app/widget uses nepomuk it’ll see everything Bangarang does. I intend to share all the ontology information as well.

Looks what I want. Much cleaner the UI than on dragon player by my opinion because there is no menu!
And the previous | Pause/Play | Next buttons does look so great there!

Hopefully this comes a default mediaplayer for KDE!

And the playlist on the video itself, it is awesome! I have now few days ago tested Elisa, Moovida and the XBMC mediacenters because I would like to easily use my video collections. So far the Kaffeine was great for that job on KDE3 because of the minimalistic mode what was possible to enable with M button.

Because you have not yet locked the feature list, would it be possible to get somekind feature? So the player window could be as well so minimalistic, only the window decoration and if hiding it with Alt+F3 menu. Then users like me, can have only the video playing on some corner of screen while working other things. You can get the idea what I tried to explain from the Quicktime X on Snow Leopard

So far you have done awesome job because looks that this is first videoplayers what brings really the KDE4 technologies for normal users! Now I need to learn how to use GIT to get this! :D

Wow, that looks nice! Do you plan to introduce things like subtitle download? What I would also like to see in a Linux/KDE player is a sane subtitle positioning that can be done simply by dragging the subtitle with mouse – I believe no Linux media player can achieve that because they use subtitle handling of their backends: mplayer, xine.

looks promising so far, a bit like a polished dragon player with playlist support and proper nepomuk integration. i have missed playlist support in nepomuk badly recently, since i have a dvb-c card which exports its channels via a set of mpeg streams in a m3u file. for now i use vlc for it, but it would be nice to have a kde player.

although kde4 comes with dragon player, which is a *far* improvement over noatun and the other simple kde3 player (i have forgotten the name), it still lacks behind imo. you cannot jump inside of flv files, although xine (my phonon backend) can and you could not delete your history until 4.2 or so (and c’mon pr0n is a use case for a video player).

your effort looks exactly right. the only thing that i am worried about is the kde3 situation where kmplayer, kaffeine, kplayer and others all implemented sort of a good player, but none was really well integrated. so i hope your work (and your interface *looks* good) will not end up like this, but lead to either a much polished dragon player or to a new player which can be easily used as a default and might replace dragon one day.

Finally someone that “gets” the fact media player. I was hoping for years Amarok would fill this gap, but for some reason they didn’t. I have loads of music video clips that I want to be able to alter with just mp3/ogg files in the same player, without being bound at having to look at the video in some small screen widget.

In case you’re curious, music videos is one use case that sitting at the front of my thoughts as I work on this. Nepomuk provides a lot of cool technology that we can use and abuse.

So imagine browsing your music collection, right-click on a track and select “Related video…”. Up pops the music video or even the movie that the music is a soundtrack for… Nepomuk makes this trivially to establish these kinds of relations and and actually use them.

Very cool! Dragon Player is too stagnant and at the moment I have Kmplayer, VLC and DP installed.

I really hope you can replace all of them.

One more thing: PLEASE implement DP resume feature (where it continues to play where you stopped) that is the only reason I still use DP. That is a must have feature for watching talks and documentaries, because I stop them and close DP to continue some other time.

First of all, I agree with all the other people, your apps looks sweet :)

“One more thing: PLEASE implement DP resume feature” –> about this feature, I really hate it in DP and I can’t even disable it. I’d love to have a small button/shortcut to set a bookmark point where and when I want. When I watch a movie I agree it’s really great, but when I play some shorts video files (music clip, etc.), it’s just annoying

Well I like this feature and it is one of the unique features DP has.
So if bangarang wants to replace DP it has to be regression free and not having this feature is one and regressions are more important than bugs.

Oh dude, you are totally welcome to help out! If you don’t already, sign up on gitorious.org (it’s free), clone the repository on your machine and start hacking away.

I’ll try to update the project wiki page on gitorious with more design information, but it already has some info on a feature target list and some basic design info right now. Pick a feature on the feature list or just let me know what you’d like to work on if it’s not there. We can communicate using the messaging feature on gitorious, and coordinate on exposure of features in the UI.

[…] Bangarang – A KDE Media Player This is my first post intended for the planet so I should introduce myself. My name is Andrew Lake (or Jamboarder if you prefer). I grew up in Jamaica and currently live in Seattle. I’ve been a linux user since around the turn of the century but only started dabbling in KDE code about a couple years ago. Much of my limited contribution has been to the plasma project. As I learned more about the other Pillars of KDE I became more interested in doing up an app of my own. I’m especially excited about the possibilities provided by Nepomuk. […]

Please, make this player support .ape playback with cue support.
You can get the source code for .ape right there – http://www.monkeysaudio.com/
The only problem will be their controversial license regarding the terms of use of this code,but since you are not going to get profit from it then you should be fine.
Thank you for your player, I am looking forward to the next beta version.

I’ve the same problem here, it is related to loading Media stuff into the players list as it seems. It always crashes (strange but true) accessing MediaItem.

What I see as a problem is, that this seems to start eating memory as hell. I’ll tackle into this as well, I like the player, and it probably could be the player I always wanted for KDE (playing movies and mp3s).

Heya! Great name and even better UI. You rock, Jamaica man. And it seems we both like Droid sans :) You should try to push this as KDE’s default media player – that Dragon player is a really shitty one.

I’m personally looking for something a bit different, and I’m looking for suggestions as to where I might find what I’m looking for.

I just play music or videos infrequently, and I’m looking for something like a radio tuner. In short, a “Music on/off” or “Video on/off” will do as the interface on the taskbar. I don’t want to look for music or videos – the program should do that without bothering me. I don’t really care where it finds it – as long as it’s legal, so it can look in my folders and recognized places with CC-content or whatever. A “tuning in…” status message is a bit too much.

I would just like to add that I think it would be possible to use some kind of Bayesian statistics to determine what the listener likes. If the user stops tuning, I would assume it is because the music or video is okay, so make a note of what is listened to, for how long, time of day and date. In the background – don’t bother the user – look up category, perhaps beats per second, similar music, suggest when the user tunes again, and recalculate the user’s statistical profile. Hopefully, all I would have to do to make it learn was to hit the Play-button on or off. If you know of something like this, please leave a note.

Hi! Are you going to maintain/support Bangarang at bugs.kde.org ? We already got a crash report… If you are going to give support for the app in the KDE bugtracker we need to setup a proper product/category for it. If you are going to support it on another bugtracking system, then you need to modify the code a bit (I can help with that). If you are not going to support the application at all I can dismiss the bug report we got: https://bugs.kde.org/show_bug.cgi?id=211281
Regards
Darío Andrés (bugs.kde.org)

Thanks so much for your help. Bug tracking is setup and the link can be found on the gitorious project page (on the right) – http://gitorious.org/bangarang. Again, I definitely welcome any offer of help.

I wouldn’t exactly call myself a hardcore programmer! Hehe, anyway the project wiki page on gitorious has info describing some aspects of the underlying design. Any and all help is welcome. :-)

As for last.fm support, I am considering working on it post 1.0 release(which will hopefully be soon). I haven’t spent much time working out how to implement it yet so constructive inputs are definitely welcome.