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

Reply via email to