View Single Post
  #166  
Old 10-05-2006, 15:25
Forum Member
 
Join Date: Nov 2005
Posts: 189
Re: BCD2000 & Traktor Programming

n23ova wrote:
so is it absolutely necessary to purchase the midi translator? no one has figured it out without BOME ? no one can write the midi codes for Translator 1.4 ?

thanks
Unfortunately it looks that way. Timers are required. This is how it works:

BOME's would read in the left jogwheel, the BCD2000 sends CC19 vel 64 for clockwise and CC19 vel 65 anticlockwise. Traktor doesn't like this for scratching or pitching, so we do the following:

a: for pitching we tell BOME to TRANSLATE CC19 vel 65 as NoteOnxx (xx = unused note), which we would point to pitchbend up in Traktor. Now when we push the wheel forward, the pitch up button on deck A will light, but when we stop it stays on... so we need a timer. When we move the jogwheel, BOMEs received CC19 vel 65, which we TRANSLATE to NoteOnxx vel 127, plus we create a second TRANSLATION from CC19 vel 65 to a timer instruction set at 10ms. BOMEs would read the CC19 vel 65 instruction, sending out only NoteOnxx vel 127 AND a timer of 10ms. When we release the wheel, the BCD2000 does not send any MIDI data, so the timer is needed to do this for us. A third instruction is sent internally in BOMEs, which basically watches the CC19 vel 65 instruction. Once 10ms has passed where no CC19 vel 65 is detected, BOMEs then sends out a NoteOnxx vel 0 instruction, which turns off the pitchbendup button in Traktor (Traktor uses NoteOnxx vel 127 as a turn-on mode, while NoteOnxx vel 0 is used as a turn-off instruction). So the pathway for pitching up is:

1:BCD2000 wheel 'on'(CC19 vel 65) > BOMEs translates as NoteOnxx vel 127 > Traktor PITCHBEND UP button ON
2:BCD2000 wheel 'on'(CC19 vel 65) > BOMEs translates as TIMER 10ms
3: BCD2000 wheel 'off' > no message, TIMER is triggered, 10ms later BOMEs sends NoteOnxx vel 0 > Traktor PITCHBEND UP button OFF

To do pitchbenddown, we setup in the same manner, but instead of NoteOnxx we need another note to use, so we tell BOMEs that on receiving CC19 vel 64, TRANSLATE to NoteOnyy vel 127, plus a timer of 10ms from CC19 vel 64, and then 'once 10ms has passed' trigger send NoteOnyy vel 0 to Traktor.

b: for scratching similar setup. BCD2000 is switched to SCRATCH MODE*. Jogwheel A sends CC19 vel 65 if pushed forwards. BOMEs TRANSLATES CC19 vel 65 as NoteOnzz vel 127, to tell Traktor to turn SCRATCH-DECK ON. Also BOMEs TRANSLATES a second instruction from CC19 vel 65 to CC20 vel 7. This setting is then pointed from BOMEs to Traktor as Deck A scratch (forward). A third instruction from CC19 vel 65 is received in BOMEs and sent to a timer of 25ms. The timer instruction reads the CC19 vel 65 and when no CC19 vel 65 is detected, a fourth instruction is performed once 25ms has passed NoteOnzz vel 0 is sent, which turns the SCRATCH DECK OFF. So the pathway for scratching forward is...

1: BCD2000 (CC19 vel 65) > BOMEs TRANSLATES to NoteOnzz vel 127 > Traktor DECK(A) SCRATCH ON
2: BCD2000 (CC19 vel 65) > BOMEs TRANSLATES to CC20 vel 7 > Traktor DECK(A) SCRATCH 'direction/distance'
3: BCD2000 (CC19 vel 65) > BOMEs TRANSLATES to a TIMER of 25ms
4: BCD2000 wheel 'off' > TIMER of 25ms reached, and sends NoteOnzz vel 0 > Traktor DECK(A) SCRATCH OFF

This setup again is used for CC19 vel 64, but CC21 is used instead of CC20, and the DECK(A) SCRATCH 'direction/distance' is setup in Traktor as receiving 'INVERT'ly. This is how to play a track and scratch it at the same time.


* SCRATCH-MODE is achieved by using the SCRATCH buttons on the BCD2000 in Advanced mode, the MIDI message from BCD2000 is TRANSLATED to swap to the scratch template in BOME ie: BOMEs on startup is in Deck A Pitchmode > Press SCRATCH button (say button sends CC#1 vel 127 = LED on)> BOMEs reads the SCRATCH ON MIDI message, and TRANSLATES as SELECT SCRATCH MIDI MAP. If BCD2000 SCRATCH ON button is pressed again to turn off SCRATCH-MODE, BOMEs reads the button again, but the button sends say CC#1 vel 0 (turns off LED), so the SCRATCH-MODE template has another template switch instruction to change from SCRATCH-MODE to PITCH-MODE when CC#1 vel 0 is read from the button. Each template has different configurations for the Jogwheel instructions, so that the jogwheels can wither pitch or scratch, and the LED is the tell-tale sign of what mode the deck is in. I have found a flaw that BOMEs remembers your last used template (so youmight have had Deck A pitch, Deck B scratch), but when you turn on your BCD2000 from startup, the BCD2000 is in DeckA+B pitchmode: getaround is press deck a scratch on, deck b scratch on, deck a scratch off, deck b scratch off. That will return you to pitchmode regardless. This has been tried & tested.

Mad... yes I know. But it does work with timers. If the BCD2000 sent a CC19 vel 0 when the wheel isnt used, then that would have been the way to do it with Traktor, but when you have a scratch velocity setting higher than 7 (ive tried 15 and thats far too much), you would end up 'chipmunking' your scratch - Traktor uses velocity to know just how far forwards/backwards to would scratch, ie vel of 7 = 7 beats in a small motion, vel of 64 would move 64 beats in same motion (sounds, now technical term, GASH). This is also the reason why the Hercules does it in Traktor v2.6 - my mate tried it out with his Hercules and the scratch stayed held down and too strong.

Hope this explains it a little better as to what the timers are needed for. I'll get a tutorial of how to install the templates & turn-on procedure, plus a full walkthough of how I set my BCD2000 up to work properly.

Phew!! Nearly weekend again (well, Wednesday is humpday - weekend in sight)