On Sun, May 5, 2013 at 9:53 AM, S.Brandt <s.bra...@mixxx.org> wrote:
> Awesome news,
> had some difficulties loading tracks to deck when using with an existing
> database, but it works when starting with a fresh db.
>
> Just some questions to understand the implementation better:
> * How accurate/performing is QM <> libkeyfinder?
>
No idea.. I just went with QM because it's already in the Mixxx codebase.
Definitely intend to do a comparison for which one we pick to ship with.
> * What if a user wants to use the traditional notation?
>
Can we add that to the preferences as well without having to duplicate it
> in the Custom notation pane?
>
Sure it's easy to add those as built-in notations. Is traditional A/a or
A/Am ?
> * What if there are already keys present in the tracks metadata?
>
In Mixxx 1.11.0 and before, the key value stored in the Mixxx database was
just a string. The key string in Mixxx 1.11.0 was read from file metadata
tags and/or entered manually in the key column.
In Mixxx 1.12.0 onwards, the key is stored as a string field but also in as
structured form (list of key changes).
If you load a track that is in your library which has a key string but no
structured data, the following happens:
1) Try to guess the key based on the key string -- example: "C#m" gets
interpreted as C sharp minor.
2) If key analyser settings have the "Re-analyze when settings change or
there is 3rd-party key data" then the key analyzer will be run on the track
which replaces the user's key string.
If the key analyzer ran, then the detected key is used. (i.e. it shows in
<Key> widgets and scales with the pitch)
If the key analyzer does not run, and the key-guesser was successful in
understanding the key string, then the guessed key is used as if the key
analyzer had detected it (i.e. the key will be displayed in a <Key> widget,
scale with the pitch, etc.).
If the key guesser was not successful in understanding the key then the key
string will still be displayed in the library but it will not be used in
<Key> widgets. A TODO is to make a custom delegate for the library key
column that colors key strings that were not understood as red so the user
knows they were not understood.
If you load a track outside your library that has key metadata in its file
tags, then the same process above happens. It's very close to how BPM
detection works -- if you load a file with BPM tags then we use that BPM
unless you have the "re-analyze" preference enabled.
> * Is there code in place to write notations to file?
> If so, where we are going to write the notations (.e.g INITIALKEY,
> GROUPING, ...)
>
The code to do this is not written -- no idea which one we should pick.
>
> Possible bugs:
> * The new pitch control does change the playback rate of the track too,
> while it is supposed not to.
>
Hm, yes I can reproduce. I'll see what I can do to fix that. I think this
is related to the performance / RAMAN issues I mentioned.
>
> jus
>
> On Sunday, May 5, 2013 at 7:15 AM, RJ Ryan wrote:
>
> Hi all,
>
> I've taken Varun's GSoC work from last summer and done some surgery on it.
> The result is looking promising and is just about ready to merge to trunk.
>
> https://code.launchpad.net/~mixxxdevelopers/mixxx/features_key
>
> I'm ready to reach out and get your feedback! Experimental builds are here:
> Ubuntu and Mac:
> http://builds.mixxx.org/builds/experimental-features_key/r3062/
> Windows will show up here (there was a problem w/ r3062)
> http://builds.mixxx.org/builds/experimental-features_key/r3064/
>
> This introduces a new database revision, #18. Please make a backup of your
> database first. Since this is ready to merge to trunk I will probably
> cherry-pick this revision into trunk so we don't have to worry about
> someone else creating a revision 18. But just to be safe, I would backup
> your library.
>
> New features:
>
> * Automatic key detection on your tracks using the Queen Mary key detector
> VAMP plugin. (The plugin is selectable just like for the beat detector so
> we can add KeyFinder support trivially. The QM key detector was already in
> our current plugin set so it made sense to turn that on first.).
>
> * Full list of key changes is stored and a global key is calculated by the
> most dominant key (the key the track was in for the longest amount of
> time). We can play with other methods of calculating the global key later.
> The full list of key changes is stored in the database just like the full
> list of beats is for beat detection.
>
> * New "pitch" control that allows you to change the pitch of a song
> independent of its tempo/rate. This is measured in octaves of change. A
> value of 1 means a full octave pitch shifted up while a value of -1 means a
> full octave pitch shifted down.
>
> * A <Key> widget in the skin that shows you the current effective key of a
> deck. For example, if a track's key is C and it is pitch-shifted up by one
> 1/12 of an octave then the key widget shows C#.
>
> * Key preferences pane has support for key notations. You can choose which
> key notation you would like Mixxx to use for your tracks. The built-in
> notations are OpenKey and Lancelot notation (A notation that I came up with
> based on the Circle of Fifths). If you select a custom notation then you
> can provide a custom string for each key.
>
> * Mixxx tracks the symbolic/semantic key internally so changing key
> notation is nothing but a rendering/text display change. So if you change
> your notation, all key display throughout Mixxx will change. Tracks that
> were analyzed when you chose the old notation will update to have the new
> notation. Even tracks that had keys read from their ID3 tag will change.
> (Note, this is just internal to Mixxx -- we still don't touch your file's
> ID3 tags).
>
> * In the library key column, you can enter keys in any notation Mixxx
> supports. For example, you can type C# minor as either "C#m", "c", "12a"
> (lancelot), or "5m" (openkey) and Mixxx will interpret that internally as
> C# minor and immediately re-display the key in your chosen notation.
>
> The Deere 1280x800 skin is the only one with test widgets. There is a
> crossfader above the crossfader that controls deck 1's pitch and there is a
> key display to the left of the BPM display. Please don't file any bugs
> about this skin -- I know it's really crappy :).
>
> Speaking of bugs, please file any other bugs! There are some known issues:
> * SoundTouch kind of freaks out when you pitch-adjust tracks causing a
> performance issue. It's related to the ReadAheadManager read-log. For now
> just assume pitch shifting causes lag..
> * Pitch shifting quality is not great :(. Hopefully we can tweak
> SoundTouch here.
> * When you first start up, the key display says "INVALID". This is just
> for testing. Normally that would be the empty string.
>
> And currently on the TODO list:
> * A delegate for the key column that gives you a combo-box dropdown of
> keys in your notation.
> * The key column delegate should show the key in a red background if it is
> not understood by Mixxx (for example, if the key is read from an ID3 tag
> and Mixxx can't understand it).
> * libkeyfinder in the Mixxx VAMP plugin set
> * Key-based sync which will sync a track's pitch to match the target
> deck's key.
>
> Fun stuff!
> RJ
>
> ------------------------------------------------------------------------------
> Get 100% visibility into Java/.NET code with AppDynamics Lite
> It's a free troubleshooting tool designed for production
> Get down to code-level detail for bottlenecks, with <2% overhead.
> Download for free and get started troubleshooting in minutes.
> http://p.sf.net/sfu/appdyn_d2d_ap2
> _______________________________________________
> 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
>
>
>
------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
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