On Mon, May 6, 2013 at 1:32 PM, RJ Ryan <rr...@mixxx.org> wrote:

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

I think I fixed this in r3066. I set two identical songs on  4-beat loop
and pitch shifted one by an octave. They stayed in sync for as long as I
played it (~20 minutes).

Also, I fixed the SoundTouch freakout so the performance should be better
now.



>
>> 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
>>
>>
>>
>
------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and 
their applications. This 200-page book is written by three acclaimed 
leaders in the field. The early access version is available now. 
Download your free book today! http://p.sf.net/sfu/neotech_d2d_may
_______________________________________________
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