Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
598
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. XMMS2 A short introduction or.. how to make a presentation with less than 50 wordsHello and thanks for listening. I would like to introduce the xmms2 project, the backgroundand motivation for it and also where we are and going in the future. I will try to not bore youwith a lot of words, instead use a lot of pictures.
  • 2. HistoryYou all probably know this, our history. It’s has been one of the most popular music playersin the open source community, because of it’s uncomplicated UI and small footprint. It hasreally served us all well. But it not has been without it’s fair share of problems. And thebiggest problem of the code was very apparent when GTK2 was introduced, XMMS1 had aharddep on GTK1 which was not removable. The XMMS team decision was to not change thedep to GTK2 mostly of the plugin problem (all plugins depended and called GTK1 directly).This resulted in a lot of forks.
  • 3. Motivation for XMMS2 “The XMMS code we inherited is old and messy. In more specific terms, it is poorly structured, poorly documented and littered with duplications. It is difficult to modify or extend one component of XMMS without breaking another. We spent most of our time fixing problems that were introduced after seemingly innocent modifications.” BMP DevelopersThe BMP team had this to say about XMMS1 code, <recite the text>. Very flattering. But wehave a news flash for you! We know about this, and we have been spending a lot of time tofix the problem.
  • 4. Motivation for XMMS2 “The XMMS code we inherited is old and messy. In more specific terms, it is poorly structured, poorly documented and littered with duplications. It is difficult to modify or extend one component of XMMS without breaking another. We spent most of our time fixing problems that were introduced after seemingly innocent modifications.” BMP Developers We know! and we are fixing it!The BMP team had this to say about XMMS1 code, <recite the text>. Very flattering. But wehave a news flash for you! We know about this, and we have been spending a lot of time tofix the problem.
  • 5. Flaws in XMMSWhen we started to plan the next generation of XMMS we realized that the flaws wherenumerous. No abstraction, duplication... the lists goes on and I am not here to talk aboutXMMS1.
  • 6. Demise of XMMS Bye bye Gentoo and SlackwareXMMS1 is being phased out from several distros, we have already seen Gentoo and Slackwaresaying goodbye. Any century now Debian will probably remove it also.
  • 7. Start of a new eraMany people probably don’t realize it, but XMMS2 has been around for a while, this graphfrom ohloh show you that we have been working on this since late 2003. The codebase iswritten from scratch and the only thing it shares with XMMS1 is the name (and somedevelopers also).
  • 8. Buzzword bingo for music players Medialib Cross platform Sexy interfaces Format Chained Streaming support decoding Smart playlists Services ?When we sat down and looked at the future we played a bit of buzzword bingo with currentmusic players, I bet you recognize the list above, these are things you expect from a musicplayer these days. One of the most important things we learned from XMMS1 was that weshouldn’t be hard depending on a graphical interface, because then we are all screwed overagain when GTK3k is released or whatever...
  • 9. Buzzword bingo for music players Medialib Cross platform Sexy interfaces Format Chained Streaming support decoding Smart playlists Services ?When we sat down and looked at the future we played a bit of buzzword bingo with currentmusic players, I bet you recognize the list above, these are things you expect from a musicplayer these days. One of the most important things we learned from XMMS1 was that weshouldn’t be hard depending on a graphical interface, because then we are all screwed overagain when GTK3k is released or whatever...
  • 10. Same same but differentSo XMMS2 is something you already have, in players like: amarok, bmpx, rythmbox, thesinging bird. And this is a interface of the glorious XMMS2 player! That sound you just heardwas the whole room going WTF? The fact is that XMMS2 doesn’t have a sexy interface. Let’ssee what XMMS2 does have.
  • 11. Same same but differentSo XMMS2 is something you already have, in players like: amarok, bmpx, rythmbox, thesinging bird. And this is a interface of the glorious XMMS2 player! That sound you just heardwas the whole room going WTF? The fact is that XMMS2 doesn’t have a sexy interface. Let’ssee what XMMS2 does have.
  • 12. Same same but differentSo XMMS2 is something you already have, in players like: amarok, bmpx, rythmbox, thesinging bird. And this is a interface of the glorious XMMS2 player! That sound you just heardwas the whole room going WTF? The fact is that XMMS2 doesn’t have a sexy interface. Let’ssee what XMMS2 does have.
  • 13. Same same but differentSo XMMS2 is something you already have, in players like: amarok, bmpx, rythmbox, thesinging bird. And this is a interface of the glorious XMMS2 player! That sound you just heardwas the whole room going WTF? The fact is that XMMS2 doesn’t have a sexy interface. Let’ssee what XMMS2 does have.
  • 14. Same same but differentSo XMMS2 is something you already have, in players like: amarok, bmpx, rythmbox, thesinging bird. And this is a interface of the glorious XMMS2 player! That sound you just heardwas the whole room going WTF? The fact is that XMMS2 doesn’t have a sexy interface. Let’ssee what XMMS2 does have.
  • 15. Same same but differentSo XMMS2 is something you already have, in players like: amarok, bmpx, rythmbox, thesinging bird. And this is a interface of the glorious XMMS2 player! That sound you just heardwas the whole room going WTF? The fact is that XMMS2 doesn’t have a sexy interface. Let’ssee what XMMS2 does have.
  • 16. Same same but differentSo XMMS2 is something you already have, in players like: amarok, bmpx, rythmbox, thesinging bird. And this is a interface of the glorious XMMS2 player! That sound you just heardwas the whole room going WTF? The fact is that XMMS2 doesn’t have a sexy interface. Let’ssee what XMMS2 does have.
  • 17. Music framework Service clients bindings xmmsclient User interactive clients IPC layer Collections layer Medialib layer Playlists SQLite Decoder layer Media files XForms Audio outputXMMS2 is a music framework in a client server model. All the heavy parts live in the serverwhile the client is just a fancy front-end to the API. This model of course like all models arevery boring, but as you see we have tried to address some things that we really didn’t like inxmms1, like the client abstraction. A front-end is actually just a client that connects toXMMS2 via the API.
  • 18. APIsThe base API of course in C but we have today bindings for all kinds of animals, gems andcoffe.
  • 19. Power at your fingertipThe API is very very simple and powerful, this is just a glimpse of what you can do with theAPI. I actually wanted this whole thing written in C because I don’t know Ruby and find itpretty confusing, but it might say something to someone in here.
  • 20. Multiple clientsAll this client abstraction leads to that we can have multiple front-ends and we are no longerlocked into a specific toolkit. Choose your poison, gnomes, trolls or something worse.
  • 21. Everything is a client!One important part of the arcitecture is that the API allows extensions via other clients. Soactually everything around the core media playback engine is a client. Things like last.fm,growl notifications, album downloader, ipod syncronization everything is a client ... not thatwe have all those things yet, but we could have them!All these choices has a backside though, as of today we still lack a kick-ass-client.
  • 22. Everything is a client! CLIENT!One important part of the arcitecture is that the API allows extensions via other clients. Soactually everything around the core media playback engine is a client. Things like last.fm,growl notifications, album downloader, ipod syncronization everything is a client ... not thatwe have all those things yet, but we could have them!All these choices has a backside though, as of today we still lack a kick-ass-client.
  • 23. Everything is a client! CLIENT!One important part of the arcitecture is that the API allows extensions via other clients. Soactually everything around the core media playback engine is a client. Things like last.fm,growl notifications, album downloader, ipod syncronization everything is a client ... not thatwe have all those things yet, but we could have them!All these choices has a backside though, as of today we still lack a kick-ass-client.
  • 24. Everything is a client! CLIENT! CLIENT!One important part of the arcitecture is that the API allows extensions via other clients. Soactually everything around the core media playback engine is a client. Things like last.fm,growl notifications, album downloader, ipod syncronization everything is a client ... not thatwe have all those things yet, but we could have them!All these choices has a backside though, as of today we still lack a kick-ass-client.
  • 25. Everything is a client! CLIENT! CLIENT!One important part of the arcitecture is that the API allows extensions via other clients. Soactually everything around the core media playback engine is a client. Things like last.fm,growl notifications, album downloader, ipod syncronization everything is a client ... not thatwe have all those things yet, but we could have them!All these choices has a backside though, as of today we still lack a kick-ass-client.
  • 26. Everything is a client! CLIENT! CLIENT! CLIENT!One important part of the arcitecture is that the API allows extensions via other clients. Soactually everything around the core media playback engine is a client. Things like last.fm,growl notifications, album downloader, ipod syncronization everything is a client ... not thatwe have all those things yet, but we could have them!All these choices has a backside though, as of today we still lack a kick-ass-client.
  • 27. Everything is a client! CLIENT! CLIENT! CLIENT!One important part of the arcitecture is that the API allows extensions via other clients. Soactually everything around the core media playback engine is a client. Things like last.fm,growl notifications, album downloader, ipod syncronization everything is a client ... not thatwe have all those things yet, but we could have them!All these choices has a backside though, as of today we still lack a kick-ass-client.
  • 28. Everything is a client! CLIENT! CLIENT! CLIENT! CLIENT!One important part of the arcitecture is that the API allows extensions via other clients. Soactually everything around the core media playback engine is a client. Things like last.fm,growl notifications, album downloader, ipod syncronization everything is a client ... not thatwe have all those things yet, but we could have them!All these choices has a backside though, as of today we still lack a kick-ass-client.
  • 29. Still no kick-ass client you say?But we do have a very neat CLI.That’s the cat again, he likes things graphical.
  • 30. Still no kick-ass client you say?But we do have a very neat CLI.That’s the cat again, he likes things graphical.
  • 31. But we do...And there are graphical clients, everything from Qt, to Gtk, to Small, to big, to mobilephones.
  • 32. But we do...And there are graphical clients, everything from Qt, to Gtk, to Small, to big, to mobilephones.
  • 33. But we do...And there are graphical clients, everything from Qt, to Gtk, to Small, to big, to mobilephones.
  • 34. But we do...And there are graphical clients, everything from Qt, to Gtk, to Small, to big, to mobilephones.
  • 35. But we do...And there are graphical clients, everything from Qt, to Gtk, to Small, to big, to mobilephones.
  • 36. But we do...And there are graphical clients, everything from Qt, to Gtk, to Small, to big, to mobilephones.
  • 37. http://xmms2.xmms.seBut what we really need is help.. because we need that kick ass client, we need that newdatabase back-end and we need less beatle bugs. Here at FOSDEM we are ten regulars fromXMMS2, you can identify them easily, because they are all nerds.... eh... I mean some of themhave pretty t-shirts. If you have more questions about XMMS2 or you have ideas on how youcan help, please find us during tonight or tomorrow. Or #xmms2 at freenodeNow I hear there is a dead cow with my name on it somewhere in central brussels.