> I’ve put up a nice overview of my work for the project on my school server.
> 
> http://cgi.cs.mcgill.ca/~canton14/
> 
> As I don’t blog/tweet/facebook I’ll keep this updated at all times so
> everyone can see exactly what I’m working on and post here when there are big
> things.

Please write your proposal in melange. It may not have nice formating options
but if we don't get an official proposal from you on melange we cannot take you.
 
> For those who just want the summary, the biggest change to my proposal is a
> refining of the process I will use. I’m going to make pictureflow function
> perfectly (ie. reading the artwork database) before I even touch the Mixxx
> codebase. Once that is complete, I’m going to slowly bring it in to Mixxx,
> starting with the back end and adding features.

I'm not sure about this because it means that you'll likely do a lot of work
twice. Once to get the pictureflow code working and the second time integrating
it into mixxx because we'll likely do some stuff differently. Also since we
require you to have code merged into master this year you should plan to have
mergable code as soon as possible. I explained in my mail yesterday that it a
good strategy for that is to devide your project into small subparts.

The main focus for this project should also be the internal handling of covers
in mixxx. Why is this hard. There are two easy ways to to this, either load
every cover that we can find in some QList and always fetch it from there if we
want to display it, which will be very fast but consume a lot of memory (at
100kb per picture would be ~5GB for 50000 tracks). Another way would be to only
load it when it is displayed, consumes little memory. But loading pictures in a
rapid order won't work, say you scroll past 40 tracks in ca 0.1 sec. with 100kb
per picture this means you need to have random access read of ~40-50 MB/s. So
unless you have a SSD you cannot read the files fast enough. These are just
some back of the envelope estimates to get you a feeling of what you have to
deal with. A solution to this would be to have a cache which holds only a
limited amount of pictures and do the loading in a background thread. (then
come questions about how this cache should be designed)

The proposal should also contain how you plan to save cover data in the
database. You don't want to scan through the whole file tree everytime mixxx
starts. What if different tracks have the same cover, eg they are from the same
album.

There is an old branch from mutil for cover art in the community repo.
https://github.com/mixxxcommunity/mixxx/tree/mutil-librarycover

For this project I suggest that you first do all the cover handling inside
mixxx with a bare minium UI and then go to something more fancy like
pictureflow.

> I have an appointment with my Software System’s professor to get a crash
> course in cross platform development at this scale. Hopefully he will be able
> to get me where I should be for c++ as well as he uses it a lot. Are there
> any specific things relating to this project that I should ask him about?

It might be good but in general we tend to use cross platform libraries so that
we don't need to deal with as little as possible platform specific code inside
mixxx. So as long as you stick to Qt you are fine.


If you want to do more UI based work you should look at the two other projects
on our idea page. For these two the backend is already implemented in mixxx we
'just' need a better UI. I can also give more tips on those if anyone is
interested

------------------------------------------------------------------------------
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