[Mixxx-devel] GSOC 2014 - New Idea for MIXXX
Hi, I am Rishant Agarwal,student of BITS Pilani and am doing my Graduation in Computer Science. I have been using this extremely awesome software for past few months and recently saw it being listed among the few selected organizations for GSOC 2014. I have quite a good experience working with languages like Java,C,C++,Python, JavaScript,PHP,Jquery , CURL , REST, etc and have also developed a project which used mixxx and was awarded for the same. I have used it to create Internet radio along with Icecast and now I would like to add a feature using which we can fetch live audio stream from Internet and use existing Mixxx features to create new music which can then be either saved or streamed back to another application. Mixxx can then be used for varios purposes like Live Music Jamming etc. Project will basically consist of these steps:- 1. Fetching media (Similar to how Wowza Streaming Server does.) 2. Processing the streams to convert into suitable formats ( Can be done using FFMpeg). 3.Connecting streams to input which can be done using JACK API's 4. Rest all features are pretty much there in MIXXX. Along with this, we can provide suppport for metadata such as Stream Name reading, Album arts which can be read from the stream if any exists etc. I hope you will like my idea . Regards, -- *Rishant Agarwal* M.Sc. ( Tech.) Information Systems (4th year) *BITS Pilani, Pilani * Mobile: +91 8105625082 -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech___ Get Mixxx, the #1 Free MP3 DJ Mixing software Today http://mixxx.org Mixxx-devel mailing list Mixxx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mixxx-devel
Re: [Mixxx-devel] Design A Cool Cover Flow
But not that good for mixxx. Maintaining a full 3d engine besides all the stuff that Qt already offers is not good for us. To be able to use 3d Rendering and displaying them is not as easy as it sounds. You have to make descisions about lighting sources and different shaders. You need to make sure it runs smoothly on a wide variety of hardware as well as Windows/Linux and OS-X. We do all the development in our free time and we can deviler a better product if we just concentrate on playing music. If you want to display videos during a gig you should give blender a try. They have a full rendering pipeline implement, it is scriptabe with python and it can also read audio from other sources. People build already awesome stuff like 3d printers with that interface https://www.kickstarter.com/projects/117421627/the-peachy-printer-the-first-100-3d-printer-and-sc best Max Am 3/11/2014 7:02 PM, schrieb udara de silva: Trevor that is an awesome idea. To be honest I hadn't think that far. What you are suggesting is very cool for DJying and would be useful in real life. We don't have to stick with actionscript here. We could easily use a 3D engine developed in C++ like CrystalSpace. But I have to admit that I havent work with it before. I'm pretty sure it also behave in the same manner so I could get familiar with it quickly. Please give some feedback on this one. On Tue, Mar 11, 2014 at 11:03 PM, Trevor Hansen tre...@djopus.com wrote: If you don't mind me jumping in here. I'm new to programming and am getting my feet wet. I am a DJ and I think having the ability for the 3D engine would be cool. If there is the option of a video output (like VDJ has) and render the video out to display the 3D images, then you would have a good use for it. While videos are great, if a song doesn't have a video to it, it could display the 3D content. On Tue, Mar 11, 2014 at 11:32 AM, Trevor Hansen trevornhan...@gmail.comwrote: If you don't mind me jumping in here. I'm new to programming and am getting my feet wet. I am a DJ and I think having the ability for the 3D engine would be cool. If there is the option of a video output (like VDJ has) and render the video out to display the 3D images, then you would have a good use for it. While videos are great, if a song doesn't have a video to it, it could display the 3D content. On Tue, Mar 11, 2014 at 10:03 AM, Max Linke max_li...@gmx.de wrote: Hi Udura When going through the project ideas by MIXXX it all seems very good summer projects. I would love to add something on cover flow project idea first. From my experience for cool animations best choice is ActionScript (Flash/Air). I have worked with papervision3d , stage3d and other 3D engines developed for actionscript. Some of these engines support hardware acceleration therefore minimize the CPU load. Since ActionScript is working with Windows,Linux and Mac using it won't be a matter for cross platform developing. By using a 3D engine we could build very advanced and interactive album art display that would give a *unique touch* for Mixxx. I would love to show some of my work availiable online. http://www.pixelzexplorer.org/us/ourteam.html http://www.pixelzexplorer.org/megamind/ We can develop a cover flow album art display by using purely QT but I thought if we add the power of a 3D Engine to Mixxx it would be way too cool. Please give me your thoughts on this suggestion. :) I'm not sure about using a full blown 3D engine to display some covers. It seems a bit like using a sledgehammer to crack a nut. Although I see that there is potential to do interesting interactive stuff. Can you go a bit more into detail what you imagine and how it would be useful for a DJ. But before that can happen you'll need to implement how covers will be handeled internally. How will you look for them? How will you store them? How are covers stored usually by people? Without having the internal stuff figured out and implemented it is no use to work on a shinny UI. For a start just having something like Traktor would be good. After that is working you can start to work on UI's. Also ActionScript is a no-go since it depends on proprietry software (Adobe Flash). As well as the fact that flash is dying in favor of HTML5. Going with openGL is possible, we already use it to display the waveforms. Before you suggest any other engine please keep in mind that it has to be compatible with our license, mixxx uses GPLv2 so we can't bundle anything that is released under GPLv3. Oh and before I forget it currently runs on a wide range of hardware from brand new laptops to years old netbooks and such a basic feature as cover art should be available to all of them. best Max -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph
Re: [Mixxx-devel] Music Mood Detection AI
Am 3/11/2014 6:51 PM, schrieb udara de silva: Greetings all, I have an project idea for Mixxx which I think is* very very important *for DJs. That is MMD Algorithms for make track selection super easy. First let me explain what i mean by mood. Well I'm feeling exciting now. That's a mood. I feel like dancing,rocking,clubbing or I'm feeling romantic,sad or relaxing. These are what I mean by mood. How is this quantified? BPM, spectrum, timbre? There has been a lot of research on that part that you should read before thinking further. The thesis to the mirage plugin for banshee is a good start http://hop.at/mirage/mirage.pdf Also we had project like that already last year and I plan to include it in the 1.13 version http://mixxxblog.blogspot.de/2013/05/google-summer-of-code-2013-projects.html Say your are DJying a dance floor so you want to mix tracks that make people on the dance floor feel like dancing. Well you would say a good DJ should know that track. True enough but having more than 10,000 songs collection what would be the time taken to select the track on the line. *My proposal is to create an Artificial Intelligent to detect mood of the music* and generate a playlist out of those 1 songs and then the DJ can easily figure out what track does he need to play. Let me discuss on how to implement the system in brief, before starting off let me post a link again for an artificial intelligence I created who I call megamind [?] http://www.pixelzexplorer.org/megamind/ you can ask a question and hit enter to see his answer. There I use natural language processing to determine what the user might be wanting to know Having said that all let me move on to my implementation. With max replies I broken my proposal to 4 phases and they goes as follows. *Phase 1 : **Supervised mood detection* This is quite easy. the plan is to add UI elements to let the DJ choose the proper mood of the song. This would be then saved with the song so that later this information will be used to create the play list. This would be the start point for the project but practically setting moods of all tracks would be quite difficult since there will be lot of songs. What are your features / target function for the ML algorithm? What kind of model do you want to use? *Phase 2 : **Unsupervised learning for mood detection* This would be the most cool part and hence is the most difficult. In this track mood will be automatically detected. Is this possible??? YES. I would love to go into details how this would be done if you guys are interested in accepting my proposal. But what should be noted is that there is no perfect algorithm for this because the concept of mood is ambiguous. What we could build is an algorithm based of Fuzzy Logic. But I am very convinced this is something possible to do. The same question as above. What would you use as an input? This is a seriously though problem. Thinks that work for stuff like house usually don't work for other genres. If you want us to take you seriously here you should show that you have read the literature. Although I'm not to optimistic in taking this one because we already have such a feature lined up for the future *Phase 3 : **Combination of the supervised and unsupervised information* This would also be an easy task. If the DJ think automatically detected mood is not correct in this phase there will be a feature to change it in the desirable way. *Phase 4 : **Automatically generating the playlist* From what Max told me there has being some work done in this area so implementing this would be quite easy. Since I trust Max [?] I would rank this phase as an easy one. Otherwise I would have to work on this one too.. So this is my proposal. I have done some work in NLP for decision making but haven't try to use AI on the field of Music. But I love challenges and would love to tackle the problem. I have work with Java,C++,C and has a background knowledge on QT as well. This is my first attempt to contribute my skills to the Opensource community and wish you guys let me in. Thank you...! -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ Get Mixxx, the #1 Free MP3 DJ Mixing software Today http://mixxx.org Mixxx-devel mailing list Mixxx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mixxx-devel -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by
Re: [Mixxx-devel] Summer of Code: Hello!
Am 3/12/2014 2:41 AM, schrieb Corey Antoniuk: Hi Max Thanks for the feedback! Above all I’d like to make a rock solid system before going crazy with the UI. I’d also like to have my code be easy to maintain whether I’m the one maintaining it or not. I like the sound of that. Keep going I’m going to spend the next few days updating my plan which I’ll post here before submitting. You can also make your proposal public and post the link here. You can edit it the whole time during the application phase. Also it might be good to also write us small updates then one huge one. Reading short mails and giving feedback to specific comments is easier and faster done then going over one huge mail. It's the some with code 'commit early, commit often' best Max Corey On Mar 11, 2014, at 11:34 AM, Max Linke max_li...@gmx.de wrote: Hi Corey Your proposal looks already good it seems like you already spend quite some thought on it. I added some comments to parts where I had questions or where you should go into more detail. I'm looking forward to your next iteration. Some general thoughts about this project. The part this projects relies most heavily on is doing the cover management in a sane way internally. Your best UI wont be of any use if you can't find the covers or add/change them oh and loading the covers should also be fast. This part should not be underestimated and really well thought out. A good way to to this is to make a list of possible problems and their solutions. If you think about possible test's and also add writing unit-tests for this part to your work would be a big plus. Also for all the other students who want to work on this, your proposal should definitely go into detail here! On Mon, 10 Mar 2014 18:13:45 -0400 Corey Antoniuk corey.anton...@gmail.com wrote: My name is Corey Antoniuk and I’d love to work with you guys for Google’s Summer of Code! That said, as with most open source projects, while it has a full set of features and works beautifully, it is lacking some UX niceties that users want. This is where I would like to help out. I’d like to work on implementing cover art functionality, primarily using the pictureflow QT widget written by Airya Hidayat, as suggested by RJ Ryan in Bug #1015894. (http://code.google.com/p/pictureflow/) Coverflow is definitely a shinny UI but how good will it work for a DJ. What are our competitors doing? Are there other ways to display covers on a computer? What would be the equivalent to search through a folder of vinyls on a pc? Can you make use of hoover effects / pup-up lists? Here is a brief overview of my plan at the moment. I’d love to here what you guys think. I’ll have to do some more research to determine a timeline, but I figured it would be better to see what you guys think of this first. 1. Make local art accessible to pictureflow This is actually the most important part that you have to get working before you start to implement any advanced UI's. I suspect this won't be that easy because their are several ways people store the covers for their songs. Maybe they have an extra file or they use the ID3 Tags or maybe even both! Mixxx should be able to pick up the covers during a normal library scan and after that display them instantly on each run. It is important here that this works fast and reliable whether the songs are saved on a ssd, a USB2 external drive or some network drive. I would be good if you do some research what the most common ways are to store covers and how other programs handle them. If you want to use code from other projects please check their license before, mixxx is GPLv2 and thus incompatible with GPLv3 code. You can ask the other projects though if they are willing to relicense their code for us, we actually use some clementine code in 1.12 for which we got permission. Oh and please also keep in mind that everything that touches files has to be sandbox compatible on os-x. rryan added some support for that in PR #169 https://github.com/mixxxdj/mixxx/pull/169 2. implement pictureflow within the Mixxx UI maybe you should go for more then one UI to show cover art. Traktor for example has a nice simple way to show covers which would be easy to implement in mixxx. This also breaks this project into 2 separate chunks. Part 1 being all the internal stuff and a minimal UI, part 2 is a shinny new UI. The advantage is that we can merge part 1 before you are finished with 2 and you'll get feedback from our users directly during GSoC. As with point one it is good if you check our how other DJ programs display cover art. 3. preferences actually just having on/off sounds fine. Being able to customize everything is nice but it is easy to be lost in the possibilities and is is also easier to introduce bugs. 3. drag and drop to crates You should think a bit more about your UI. How will the selection of a cover affect
Re: [Mixxx-devel] Summer of Code: Hello!
Thanks Max, I was actually worried you guys would get annoyed if I update too much, but I’ll get something going on my school server tomorrow to keep everyone up to date. So, the pictureflow QT widget I’m hoping to use is MIT licensed, I’ve read over the license and it looks like we can use it no problem, but I’d just like to get the go ahead first. Thanks, Corey On Mar 12, 2014, at 7:52 PM, Max Linke max_li...@gmx.de wrote: Am 3/12/2014 2:41 AM, schrieb Corey Antoniuk: Hi Max Thanks for the feedback! Above all I’d like to make a rock solid system before going crazy with the UI. I’d also like to have my code be easy to maintain whether I’m the one maintaining it or not. I like the sound of that. Keep going I’m going to spend the next few days updating my plan which I’ll post here before submitting. You can also make your proposal public and post the link here. You can edit it the whole time during the application phase. Also it might be good to also write us small updates then one huge one. Reading short mails and giving feedback to specific comments is easier and faster done then going over one huge mail. It's the some with code 'commit early, commit often' best Max Corey On Mar 11, 2014, at 11:34 AM, Max Linke max_li...@gmx.de wrote: Hi Corey Your proposal looks already good it seems like you already spend quite some thought on it. I added some comments to parts where I had questions or where you should go into more detail. I'm looking forward to your next iteration. Some general thoughts about this project. The part this projects relies most heavily on is doing the cover management in a sane way internally. Your best UI wont be of any use if you can't find the covers or add/change them oh and loading the covers should also be fast. This part should not be underestimated and really well thought out. A good way to to this is to make a list of possible problems and their solutions. If you think about possible test's and also add writing unit-tests for this part to your work would be a big plus. Also for all the other students who want to work on this, your proposal should definitely go into detail here! On Mon, 10 Mar 2014 18:13:45 -0400 Corey Antoniuk corey.anton...@gmail.com wrote: My name is Corey Antoniuk and I’d love to work with you guys for Google’s Summer of Code! That said, as with most open source projects, while it has a full set of features and works beautifully, it is lacking some UX niceties that users want. This is where I would like to help out. I’d like to work on implementing cover art functionality, primarily using the pictureflow QT widget written by Airya Hidayat, as suggested by RJ Ryan in Bug #1015894. (http://code.google.com/p/pictureflow/) Coverflow is definitely a shinny UI but how good will it work for a DJ. What are our competitors doing? Are there other ways to display covers on a computer? What would be the equivalent to search through a folder of vinyls on a pc? Can you make use of hoover effects / pup-up lists? Here is a brief overview of my plan at the moment. I’d love to here what you guys think. I’ll have to do some more research to determine a timeline, but I figured it would be better to see what you guys think of this first. 1. Make local art accessible to pictureflow This is actually the most important part that you have to get working before you start to implement any advanced UI's. I suspect this won't be that easy because their are several ways people store the covers for their songs. Maybe they have an extra file or they use the ID3 Tags or maybe even both! Mixxx should be able to pick up the covers during a normal library scan and after that display them instantly on each run. It is important here that this works fast and reliable whether the songs are saved on a ssd, a USB2 external drive or some network drive. I would be good if you do some research what the most common ways are to store covers and how other programs handle them. If you want to use code from other projects please check their license before, mixxx is GPLv2 and thus incompatible with GPLv3 code. You can ask the other projects though if they are willing to relicense their code for us, we actually use some clementine code in 1.12 for which we got permission. Oh and please also keep in mind that everything that touches files has to be sandbox compatible on os-x. rryan added some support for that in PR #169 https://github.com/mixxxdj/mixxx/pull/169 2. implement pictureflow within the Mixxx UI maybe you should go for more then one UI to show cover art. Traktor for example has a nice simple way to show covers which would be easy to implement in mixxx. This also breaks this project into 2 separate chunks. Part 1 being all the internal stuff and a minimal UI, part 2 is a shinny new UI. The advantage is that we can merge part 1 before you are