PDA

View Full Version : Traktor3 clock thru OSCulator into Quartz Composer



disuye
09-09-2009, 08:37 AM
Having a bit of an issue which appears to be a bug with T3. Just wanted to run this by OSCulator users in the hope that someone has a workaround OR has had success sync'ing external apps via OSC using the upgraded Traktor Pro:


Traktor Studio 3 outputs a "midi/note/16" OSC message, with the velocity sweeping between 0-1 on every beat. Very useful. I can convert & transmit this thru OSCulator into a simple MIDI CC pulse which Quartz Composer patches are able to latch onto (& therefore playback patches in sync with the music) at anytime. [n.b: Quartz Composer users will know that the MIDI Clock Input is a bit fussy and will *only* grab a clock signal after it receives a MIDI Play-Start command. Not ideal. I would have to restart my Traktor clock just get QC video / DMX to sync!]


My problem - the suspected bug - lies in the fact that Deck 1, 3 and 4 in Traktor generate a useable velocity sweep / pulse with the "midi/note/16" OSC message... however Deck 2 just outputs a fixed (maximum) velocity message. The duff signal from Deck 2 always overrides the signal sent by Deck 1 except when either Deck 3 and/or 4 are playing; in which case a useable signal appears again.


Short (28mb) screen video at http://www.disuye.com/traktor/


Please note for clarity I recorded this at full res, best bet is to download and hit Apple+0 for 50% QuickTime playback. Also note I chopped the range of OSC signals in OSCulator to fit between 0.4~0.6 (signals coming out of Traktor are in fact 0.0 to 1.0)

camille
09-09-2009, 09:28 PM
Hello Disuye,


Actually I am not sure wether there is a bug in Traktor.

Here are some details that I hope will help you:


The /midi/note/16 message isn't really an OSC message, it is actually MIDI notes coming from Traktor received by OSCulator on channel 16. This MIDI message is converted to OSC and registered in OSCulator as any other messages.


The gotcha here is that this message actually has 3 arguments: the pitch, the velocity and a trigger. That means that for each MIDI note received, a different message is sent. With no action on your side, the velocity will be a mix of all notes that Traktor sends.


I guess that to make the difference between each decks, Traktor actually send velocity information for different notes. That means that when several decks are played at the same time, the velocity information you are seeing is actually a mix of different notes.


Thus, what you need to do is "differentiate" those notes, that is, extract the pitch information.

For this, select the pitch argument, and do Edit->Demux to demultiplex (or unfold if you will) the incoming MIDI message into several pitched parts, when you runs each Deck, new messages will appear.


Now you should be able to visualize the velocity for each Deck, and I am pretty sure you will get the proper data.


There is something to check, though. Maybe there is a threshold you can set in Traktor to extract the beat information from your audio files. It seems the Deck 2 has a lower intensity audio, and maybe the reason why velocity is not properly extracted is also because a lower threshold on the beat detection needs to be set. Or maybe this is an automatic setting, I don't know Traktor enough to tell you precisely what to do.


Please try the Demux trick, and tell me if that helped you!


PS: There is a short description of Demux here (http://www.osculator.net/dw/manual:main_user_interface#edit_menu). Ricki also has written a blog post that mentions the Demux there (http://www.rickigregersen.com/2009/09/09/dtxplorer-drum-kit-goes-processing/#content).


Best,

Cam

disuye
09-10-2009, 11:44 AM
Firing up the laptop and trying the Demux now. Will post back with findings.


From the way I interpreted the data stream, Traktor is not summing the velocity data from each deck (it's a constant sweep between 0.0 and 1.0 no matter how many Decks are playing, OSCulator just seems to latch onto whichever deck is in focus) nor is the velocity of the pulsing signal dependent on anything within the audio files (overall gain, musical data etc) EXCEPT the signal simply appears to reflect the beat detection / sync analysis Traktor has carried on the song / deck. I should try feeding in flat white noise or an empty audio file with/without a user determined BPM to see if this is true. When I get time!


Thanks for the reply.

disuye
09-10-2009, 11:55 AM
Hmm ... unless I misunderstood your suggestion, there is def something screwy going on with Traktor!


http://www.disuye.com/traktor/T3demux.png


The four green velocity readouts correspond to Decks 1 & 2 and the 3 & 4 respectively.


At least a signal Demux allows for me to extract a reliable signal from at least three of the four decks! I just need to make sure something is playing on one of them at all times so I can output a signal... not ideal but hardly a heartache!

disuye
09-10-2009, 12:36 PM
OK... loading an 'empty' audio file with no BPM metadata attached into any Deck causes Traktor to analyze the file and assign an arbitrary BPM. So, working with that caveat... Loading said file into any of the (three working!!!) Decks, Traktor will output a pulsing note signal based on the Master BPM of Traktor +/- the pitch % of the deck AND it also appears to take into account the sync of the audio file based on – in this case, the arbitrary – analyzed audio file BPM.


Pressing the up/down nudge buttons and Deck SYNC (to Master tempo) button also causes the pulsing note signal to increase/decrease and jump.