Let me start with answering the Album question:

The first reason we don't have album, year, track number, rating, etc is
because this info is redundant,  when someone requests a song they will
almost always do so by either artist (the new song by so-and-so) or by title
(can you play the song ___?) ...

The next problem is screen real estate, the more columns you add to the
library, the less space you have to work with (we don't want any horizontal
scrolling)...  Things are already pretty tight on the eeePC's screen (try
skin "outlineMini" to see how small :D)...   The column sizes are also
proportionally weighted as you saw, so that Artist and Title get more space
then the others since these need to be readable more so then other
columns...

Making it possible for the user to pick which columns were displayed and
what sizes they are would address both of these (then we could have a number
of other columns we currently ignore like year, track number, etc).

The sorting is done via proxymodel.cpp, I implemented the current hacked
version of the sorting...  it is a custom job that always weights 0 and
blank strings to the bottom of the sort no matter which direction (so songs
with missing ID3 tags don't sort to the top of artist / title, songs with
0.0 BPM don't sort to the top when you sort by BPM)...  AFAIK there is no
way to sort it by two columns at that level of the code, you'd have to know
more about the data then whether two cells you are comparing are string or
numberic.


On Wed, May 28, 2008 at 5:09 AM, Gaetan <[EMAIL PROTECTED]> wrote:

> Hi
>
> You're right, it should be '>=' instead of '<' for the index ("blues" is
> 0).
>
> For the Genre column, how can I be sure if I move it that the sort
> procedure will be done as follow:
> - sort by genre on click on genre
> - for the same genre, sort by artist
> - for the same artist, sort by title.
> I think this is done automaticcally if the Genre column is on the first
> position, but how to do this if I move the Genre column elsewhere?
>
> While I'm here, is there any reason why there is no "Album" column?
>
>
> Gaetan
>
> 2008/5/28 Garth Dahlstrom <[EMAIL PROTECTED]>:
>
>> Hi Gaetan
>>
>> What is the numeric value of "Blues"? 0? how do you differentiate it from
>> an empty/null value?  I was just wondering if soundsourcemp3.cpp:523 should
>> be index > -1
>>
>> Also, I'd be inclined to move genre to the column before "comment" (so
>> COL_GENRE=6) as I suspect it could be empty / inaccurate for a good number
>> of songs...
>>
>> -G
>>
>> On Tue, May 27, 2008 at 8:31 PM, Gaetan <[EMAIL PROTECTED]> wrote:
>>
>>> Ok, lads, here is my first patch, just to check if I was not wrong with
>>> my keyboard tonight. This adds a "Genre" column, and extract genre from MP3
>>> and ogg files and stores it in the mixxxtracks.xml file.
>>>
>>> Gaetan
>>>
>>> 2008/5/28 Gaetan <[EMAIL PROTECTED]>:
>>>
>>> noted :)
>>>>
>>>>
>>>> 2008/5/28 Garth Dahlstrom <[EMAIL PROTECTED]>:
>>>>
>>>>>
>>>>> The sort indicator would have you believe that...   In fact, it's not
>>>>> sorted in any particular way (just whatever order it was read from
>>>>> .mixxxtracks.xml), if you click on the sort indicator twice you'll get 
>>>>> real
>>>>> sorted data... :D
>>>>>
>>>>> Screenshot is what my library looks at start-up...
>>>>>
>>>>>
>>>>> On Tue, May 27, 2008 at 7:24 PM, Gaetan <[EMAIL PROTECTED]> wrote:
>>>>>
>>>>>> Hi
>>>>>> I don't understand your suggestion. The library is sorted by artist by
>>>>>> default on startup. Could you please elaborate a bit more?
>>>>>>
>>>>>> Gaetan
>>>>>>
>>>>>> 2008/5/28 Garth Dahlstrom <[EMAIL PROTECTED]>:
>>>>>>
>>>>>> Hi Gaetan,
>>>>>>>
>>>>>>> As a challenge to get to know the library code better, you could
>>>>>>> start by having a go at making the library 'sort by artist' on 
>>>>>>> start-up....
>>>>>>>
>>>>>>> I would expect the fix to be quite small for that, but where to apply
>>>>>>> it would be the interesting part.  It would be a nice bit of polish for 
>>>>>>> the
>>>>>>> release too. ;)
>>>>>>>
>>>>>>> Cheers,
>>>>>>>
>>>>>>> -G
>>>>>>>
>>>>>>>
>>>>>>> On Tue, May 27, 2008 at 3:31 PM, Gaetan <[EMAIL PROTECTED]> wrote:
>>>>>>>
>>>>>>>> Thanks for your feedback!
>>>>>>>>
>>>>>>>> I've started this page on the wiki :
>>>>>>>> http://mixxx.org/wiki/doku.php/playqueue_and_library_improvements_proposals
>>>>>>>> I'll study the code and try to perform some hacks.
>>>>>>>>
>>>>>>>> Gaetan
>>>>>>>>
>>>>>>>> 2008/5/27 Albert James Santoni <[EMAIL PROTECTED]>:
>>>>>>>>
>>>>>>>> Hi Gaetan,
>>>>>>>>>
>>>>>>>>> Replies inline below:
>>>>>>>>>
>>>>>>>>> ----- Original Message -----
>>>>>>>>> From: Gaetan <[EMAIL PROTECTED]>
>>>>>>>>> Date: Tuesday, May 27, 2008 11:31 am
>>>>>>>>> Subject: [Mixxx-devel] Willing to contribute to mixxx project
>>>>>>>>> To: [email protected]
>>>>>>>>>
>>>>>>>>> > Hello
>>>>>>>>> >
>>>>>>>>> > I've sent this message to the forum just before discovering this
>>>>>>>>> mailing list...
>>>>>>>>> > so here is my proposal.
>>>>>>>>> >
>>>>>>>>> > --
>>>>>>>>> >
>>>>>>>>> > Having quite a strong experience in C
>>>>>>>>> > and C++ on linux, but not much with such large projects, I would
>>>>>>>>> like
>>>>>>>>> > to contribute to the mixxx project on a few weakness I've
>>>>>>>>> > noticed. I
>>>>>>>>> > would like to improve the playlist, Play Queue and Library, and
>>>>>>>>> > I would
>>>>>>>>> > really appreciate some advices on how to begin, coding rules,
>>>>>>>>> best
>>>>>>>>> > practice for patch submission, where to start hacking, etc.
>>>>>>>>> >
>>>>>>>>>
>>>>>>>>> Welcome aboard! We're always looking for more help coding, so we'd
>>>>>>>>> be happy to do everything we can to get you started. There's 
>>>>>>>>> definitely room
>>>>>>>>> for improvement to the library interface, and I'm glad you're 
>>>>>>>>> interested in
>>>>>>>>> working on it.
>>>>>>>>>
>>>>>>>>> > Do
>>>>>>>>> > I have to draw a sketch of my plan, describe it somewhere,
>>>>>>>>> > discuss it
>>>>>>>>> > here, rise a ticket for this in a bugzilla, etc or just start
>>>>>>>>> hacking
>>>>>>>>> > as soon as possible and submit the patch? How can I be sure it
>>>>>>>>> > will fit
>>>>>>>>> > with current mixxx roadmap and be integrated?
>>>>>>>>>
>>>>>>>>> Depends on what you want to do. If you're thinking about writing
>>>>>>>>> some big feature, then the steps are:
>>>>>>>>> - Describe it on mixxx-devel and ask for ideas/feedback
>>>>>>>>> - Write a specification in the wiki so that's it clear what you're
>>>>>>>>> going to do. (The more thinking you do before you code, the easier it 
>>>>>>>>> is to
>>>>>>>>> code.) :)
>>>>>>>>> - Code!
>>>>>>>>>
>>>>>>>>> If you just want to do a bug fix or something small, just code it
>>>>>>>>> and email a patch to this mailing list. To ensure your work will fit 
>>>>>>>>> in with
>>>>>>>>> the current roadmap and be integrated, just ask! (This is why writing 
>>>>>>>>> a
>>>>>>>>> specification is good too.) Our current release status is we're 
>>>>>>>>> trying to
>>>>>>>>> wrap up 1.6.0, and so our focus is going to be on fixing these 
>>>>>>>>> remaining
>>>>>>>>> bugs:
>>>>>>>>> https://bugs.launchpad.net/mixxx/1.6/+bugs
>>>>>>>>>
>>>>>>>>> If you make bug fixes to the library (eg. the play queue sorting),
>>>>>>>>> we'll have no problem putting them in trunk. If you add features (eg. 
>>>>>>>>> song
>>>>>>>>> ratings), then we should probably throw them in a branch until the 
>>>>>>>>> 1.6.0
>>>>>>>>> release is done.
>>>>>>>>>
>>>>>>>>> >
>>>>>>>>> > What I wish to improve are (sorted according to my own, humble
>>>>>>>>> > needs) :
>>>>>>>>> > 1)
>>>>>>>>> > change the Play Queue window so the list is sorted according to
>>>>>>>>> the
>>>>>>>>> > play sequence (and not the alphabetical order of the title), and
>>>>>>>>> allow
>>>>>>>>> > DJ to reorganise this play queue.
>>>>>>>>>
>>>>>>>>> Yeah, something like this would make the play queue a lot better.
>>>>>>>>>
>>>>>>>>> > 2) double click on a track start
>>>>>>>>> > imediatly the playback on the first headset configured table (if
>>>>>>>>> no
>>>>>>>>> > headset is set, do nothing). No need to do "stop",
>>>>>>>>> > double click on a
>>>>>>>>> > track, "play". I'm lazy...
>>>>>>>>>
>>>>>>>>> Doesn't "NEXT" mode do this already? (I think I misunderstand...)
>>>>>>>>>
>>>>>>>>> > 3) Display a little tag on any already
>>>>>>>>> > played track in Playlist, Browse and Library view (to prevent
>>>>>>>>> choosing
>>>>>>>>> > several time the same track during one session), or a "last
>>>>>>>>> > played"date column.
>>>>>>>>> > 4) Display a column in Library and Browse with the
>>>>>>>>> > Genre ID3 tag; I'm using it to sort my collection by
>>>>>>>>> > different music
>>>>>>>>> > genre (Salsa, rock, Bachata, Soul, RnB, Rap,...)
>>>>>>>>>
>>>>>>>>> These should be do-able...
>>>>>>>>>
>>>>>>>>> > 5) I'm rating my
>>>>>>>>> > mp3s with Amarok, so I'll try to change it as well so the
>>>>>>>>> > rating value
>>>>>>>>> > will be inserted in the file itself (as an extended ID3 tag),
>>>>>>>>> > and make
>>>>>>>>> > mixxx import/sync with this tag. it would be perfect to easily
>>>>>>>>> display
>>>>>>>>> > best musics to the user.
>>>>>>>>>
>>>>>>>>> Mixxx doesn't have ID3/ogg writing support, so this will take some
>>>>>>>>> work.
>>>>>>>>>
>>>>>>>>> > 6) (don't know how to do this but this
>>>>>>>>> > would definitively rocks) Implements a Facet view for the
>>>>>>>>> > "Library"view (you know, three column
>>>>>>>>> > Genre/Artist/Album like in rythmbox)
>>>>>>>>>
>>>>>>>>> Some people have requested alternate library views. This might be a
>>>>>>>>> lot of work too, and would definitely be something worth discussing 
>>>>>>>>> later.
>>>>>>>>>
>>>>>>>>> In the meantime, I would start on something simple like fixing the
>>>>>>>>> play queue ordering. For all the library stuff, the central source 
>>>>>>>>> file is
>>>>>>>>> "src/track.cpp" (the "Track" class should really be called "Library", 
>>>>>>>>> it's
>>>>>>>>> confusing). The play queue is just a playlist called m_qPlayQueue or
>>>>>>>>> something in the Track class. I forget how the play queue view works 
>>>>>>>>> off the
>>>>>>>>> top of my head, but our library code uses QT's model/view paradigm.
>>>>>>>>>
>>>>>>>>> Also note, each song is represented internally by a
>>>>>>>>> "TrackInfoObject" (src/trackinfoobject.cpp).
>>>>>>>>>
>>>>>>>>> >
>>>>>>>>> > I
>>>>>>>>> > would really appreciate any hint on these items, where is the
>>>>>>>>> best
>>>>>>>>> > place in the code to perform the changes, if there is simple way
>>>>>>>>> of
>>>>>>>>> > doing this, ...
>>>>>>>>> >
>>>>>>>>> > or if they are bad ideas...
>>>>>>>>>
>>>>>>>>> Most of these are reasonable ideas, but I would definitely start
>>>>>>>>> with bug fixing. Trying to fix something that bugs you is a good way 
>>>>>>>>> to
>>>>>>>>> learn Mixxx's library code. :)
>>>>>>>>>
>>>>>>>>> >
>>>>>>>>> > But first... how can I extract the latest 1.6.x SVN version so I
>>>>>>>>> > can start hacking it tonight? (I only know svn to extract latest
>>>>>>>>> > trunk version).
>>>>>>>>> > Thanks!
>>>>>>>>>
>>>>>>>>> Trunk is the latest 1.6.x SVN version. All of our main development
>>>>>>>>> goes on there and we build our releases from there. To get Mixxx from 
>>>>>>>>> SVN,
>>>>>>>>> run:
>>>>>>>>> svn co https://mixxx.svn.sourceforge.net/svnroot/mixxx/trunk/mixxx
>>>>>>>>>
>>>>>>>>> Here's some useful wiki pages that should answer some of your other
>>>>>>>>> questions:
>>>>>>>>> http://mixxx.org/wiki/doku.php/coding_guidelines
>>>>>>>>> http://mixxx.org/wiki/doku.php/submitting_patches
>>>>>>>>> http://mixxx.org/wiki/doku.php/development_roadmap
>>>>>>>>> http://mixxx.org/wiki/doku.php/compiling_on_linux
>>>>>>>>>
>>>>>>>>> Lastly, if you send us a few good patches, we have no problems with
>>>>>>>>> giving people SVN access.
>>>>>>>>>
>>>>>>>>> Feel free to ask any other questions you have about development or
>>>>>>>>> any of the library code!
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Albert
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> ---
>>>>>>>> Gaetan - http://www.xeberon.net/gaetan/
>>>>>>>>
>>>>>>>> -------------------------------------------------------------------------
>>>>>>>> This SF.net email is sponsored by: Microsoft
>>>>>>>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>>>>>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>>>>>>>> _______________________________________________
>>>>>>>> Mixxx-devel mailing list
>>>>>>>> [email protected]
>>>>>>>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> __
>>>>>>> --- == __/ t.O ==--
>>>>>>> http://stacktrace.org/
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> ---
>>>>>> Gaetan - http://www.xeberon.net/gaetan/
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> __
>>>>> --- == __/ t.O ==--
>>>>> http://stacktrace.org/
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> ---
>>>> Gaetan - http://www.xeberon.net/gaetan/
>>>>
>>>
>>>
>>>
>>> --
>>> ---
>>> Gaetan - http://www.xeberon.net/gaetan/
>>>
>>
>>
>>
>> --
>> __
>> --- == __/ t.O ==--
>> http://stacktrace.org/
>>
>
>
>
> --
> ---
> Gaetan - http://www.xeberon.net/gaetan/
>



-- 
__
--- == __/ t.O ==--
http://stacktrace.org/
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to