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 the tracks that are shown in the library. What do people know about coverflow interaction from other apps? Would one want to drag a cover to a deck? It really helps the discussion here if you do some simple mock ups. > 4. add "digger mode (tm)” sounds really nice to me. I would actually prefer it to the horizontal coverflow. > 5. fetch artwork from online services Amazon and other services have API's to download covers. Although it should be possible to add covers from local files inside of mixxx. It be weird if I have to use another program to add missing covers in mixxx. > 5. figure out how to display current artwork in deck We already display a pixmap for the vinyl spinners. Changing that to a cover pixmap shouldn't be to much work. until.am is also a nice browser tool where they use the cover on the spinners. As for possible effects and options. Keep it simple and display the plain cover. http://mix.until.am/ > If you see any glaring problems I’d love to hear about them, and feel free to > let me know how you’d like this to be implemented on the front end or back > end! > To be honest, my experience is quite limited. I’ve only worked on school > assignments in C, Java and Bash, and I’m not very familiar with C++ and Qt > (I’ve been wanting to learn QT for quite a while now so this is a perfect > opportunity.) That said, I’m very comfortable with what I know and am very > good with object oriented design. I’ve routinely gotten perfect grades on > assignments and strive to produce the best algorithms I can, not just just > get things done. I also comment like crazy :) That is ok if you have any questions about the code or are stuck on a problem you can as us for help. Which is also kind of the point of having a mentor ;-) > I am familiar with Git, as I’ve been using it as much as I can to manage > things like Vim plugins, but I’ll definitely work through some tutorials > before I start using it with you guys. I can recommend http://rypress.com/tutorials/git/ and http://k.swd.cc/learnGitBranching-ja/ ------------------------------------------------------------------------------ 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