(LED) Midi mapping in TP2 help needed ...
(LED) Midi mapping in TP2 help needed ... Posted on: 30.01.2012 by Alvaro Loa Hi EverybodySomeone asked me to make a midi mapping for his midi controller using Traktor Pro2 (TP2). Everything (except for 1 button ('play music in reverse', a function witch unfortunately isn't possible in TP2) is working fine but I have some issues (questions) considering the programming of the LED's. The controller came with Virtual DJ as standard software. The person wants the buttons and LED's to respond the same in TP2 as in Virtual DJ. The controller has LED's (20 separate LED's) underneath the jog wheels. When in pitch bend mode all the LED's burn (I presume every separate LED has to be mapped individually when jog is in Pitch Bend Mode ?), when in scratch mode the LED's rotate when the music is playing and stop rotating (only 1 LED burning) when platter is touched (music stops). As you move the platter to left or right (scratch), the LED's follow one by one back and forth the movement of the platter. How do I map this in TP2 (LED's rotate, stop rotating (only 1 LED burning) when platter is touched, LED's follow one by one back and forth the movement of the platter) ? It also has a touch-pad slider to make a needle drop in song (11 cm long touch-pad witch reacts to where you place your finger on the pad, jumping to a certain position in the song (a sort of way to scroll inside the song and jump to certain points in the song). This 'needle drop' slider also has LED's (11 separate) above. Depending on where you place your finger, a certain amount of LED's burn (for example: touch the pad at 2 cm -> 2 LED's burn, touch at 5 cm -> 5 LED's burn, touch at the end of the touch-pad -> all 11 LED's burn). How do I map this in TP2 ? I am also still breaking my head about how I can make some of the LED's blink (not the play button, that I got figured out). Couldn't find any accurate documentation or explanation on how this is done (easily ?) in Traktor Pro 2. Thx in advance Kristof | |
Chasidy Heckenbach 30.01.2012 |
Originally Posted by Kristof - Belgium
what controller are you mapping btw? i remember seeing some newish one that had both jogs and touch strips but don't remember the name of it... |
Chasidy Heckenbach 30.01.2012 |
Originally Posted by Kristof - Belgium
if you didn't mind one complete revolution for every beat then it should be possible to di just in traktor natively tho i guess. heck of a lot of work tho as you'd need one OUT for every led for each mode you want to implement. this is my midimasher code that achieves this for my scs3d. it stores the last known beatphase value and led position and due to the rather cool midi implementation in the scs3d only needs to send out one midi message to ensure the correct led in the "circle" is lit up. Code:
-- cdj style spinning led's, assume it's for traktor -- tsi ranges from 0 to 16 roughly twice a second (at 120bpm) -- need to make it feel more like a 33rpm record -- the +10/-10 code is to make a guess as to whether the beat phase has reset -- or if the platter is being spun backwards capture("traktor", "beat_phase_monitor_"..deck, ALL, 0, function(td, e, v, p) if v ~= scs3d.cache[d]["beat_phase_"..deck] then diff = v - scs3d.cache[d]["beat_phase_"..deck] if diff < -10 then diff = diff + 16 elseif diff > 10 then diff = diff - 16 end scs3d.cache[d]["circle_pos_"..deck] = scs3d.cache[d]["circle_pos_"..deck] + diff scs3d.cache[d]["beat_phase_"..deck] = v if scs3d.cache[d]["circle_pos_"..deck] >= 64 then scs3d.cache[d]["circle_pos_"..deck] = scs3d.cache[d]["circle_pos_"..deck] - 64 elseif scs3d.cache[d]["circle_pos_"..deck] < 0 then scs3d.cache[d]["circle_pos_"..deck] = scs3d.cache[d]["circle_pos_"..deck] + 64 end if get(d, "deck") == deck_id and scs3d.cache[d]["layer"] == mode then send(d, "fader3", scs3d.cache[d]["circle_pos_"..deck] / 4 + 1) end end end) |
Alvaro Loa 30.01.2012 | Hi Everybody Someone asked me to make a midi mapping for his midi controller using Traktor Pro2 (TP2). Everything (except for 1 button ('play music in reverse', a function witch unfortunately isn't possible in TP2) is working fine but I have some issues (questions) considering the programming of the LED's. The controller came with Virtual DJ as standard software. The person wants the buttons and LED's to respond the same in TP2 as in Virtual DJ. The controller has LED's (20 separate LED's) underneath the jog wheels. When in pitch bend mode all the LED's burn (I presume every separate LED has to be mapped individually when jog is in Pitch Bend Mode ?), when in scratch mode the LED's rotate when the music is playing and stop rotating (only 1 LED burning) when platter is touched (music stops). As you move the platter to left or right (scratch), the LED's follow one by one back and forth the movement of the platter. How do I map this in TP2 (LED's rotate, stop rotating (only 1 LED burning) when platter is touched, LED's follow one by one back and forth the movement of the platter) ? It also has a touch-pad slider to make a needle drop in song (11 cm long touch-pad witch reacts to where you place your finger on the pad, jumping to a certain position in the song (a sort of way to scroll inside the song and jump to certain points in the song). This 'needle drop' slider also has LED's (11 separate) above. Depending on where you place your finger, a certain amount of LED's burn (for example: touch the pad at 2 cm -> 2 LED's burn, touch at 5 cm -> 5 LED's burn, touch at the end of the touch-pad -> all 11 LED's burn). How do I map this in TP2 ? I am also still breaking my head about how I can make some of the LED's blink (not the play button, that I got figured out). Couldn't find any accurate documentation or explanation on how this is done (easily ?) in Traktor Pro 2. Thx in advance Kristof |
Chasidy Heckenbach 30.01.2012 |
Originally Posted by Kristof - Belgium
what controller are you mapping btw? i remember seeing some newish one that had both jogs and touch strips but don't remember the name of it... |
Alvaro Loa 30.01.2012 | Hmz, seems all pretty complicated. So no easy (standard) way of doing this. Bummer. Thank you guys for the effort off explaining, but this is a bit 'out of my league' (especially the midimasher part zestoi mentioned ;-). I was hoping there was a trick or something I overlooked to do this in TP2 but it seems there isn't. I'll will just have to work around the issue. Thanks again ! Kristof |
Chasidy Heckenbach 30.01.2012 |
Originally Posted by Kristof - Belgium
if you didn't mind one complete revolution for every beat then it should be possible to di just in traktor natively tho i guess. heck of a lot of work tho as you'd need one OUT for every led for each mode you want to implement. this is my midimasher code that achieves this for my scs3d. it stores the last known beatphase value and led position and due to the rather cool midi implementation in the scs3d only needs to send out one midi message to ensure the correct led in the "circle" is lit up. Code:
-- cdj style spinning led's, assume it's for traktor -- tsi ranges from 0 to 16 roughly twice a second (at 120bpm) -- need to make it feel more like a 33rpm record -- the +10/-10 code is to make a guess as to whether the beat phase has reset -- or if the platter is being spun backwards capture("traktor", "beat_phase_monitor_"..deck, ALL, 0, function(td, e, v, p) if v ~= scs3d.cache[d]["beat_phase_"..deck] then diff = v - scs3d.cache[d]["beat_phase_"..deck] if diff < -10 then diff = diff + 16 elseif diff > 10 then diff = diff - 16 end scs3d.cache[d]["circle_pos_"..deck] = scs3d.cache[d]["circle_pos_"..deck] + diff scs3d.cache[d]["beat_phase_"..deck] = v if scs3d.cache[d]["circle_pos_"..deck] >= 64 then scs3d.cache[d]["circle_pos_"..deck] = scs3d.cache[d]["circle_pos_"..deck] - 64 elseif scs3d.cache[d]["circle_pos_"..deck] < 0 then scs3d.cache[d]["circle_pos_"..deck] = scs3d.cache[d]["circle_pos_"..deck] + 64 end if get(d, "deck") == deck_id and scs3d.cache[d]["layer"] == mode then send(d, "fader3", scs3d.cache[d]["circle_pos_"..deck] / 4 + 1) end end end) |
Kecia Wnukowski 29.01.2012 | The name of the controller would help.
The controller has LED's (20 separate LED's) underneath the jog wheels. When in pitch bend mode all the LED's burn (I presume every separate LED has to be mapped individually when jog is in Pitch Bend Mode ?)
when in scratch mode the LED's rotate when the music is playing
Usually this kind of behavior is directly linked to the firmware, there's no easy way to do that mapping wise.
As you move the platter to left or right (scratch), the LED's follow one by one back and forth the movement of the platter.
How do I map this in TP2 (LED's rotate, stop rotating (only 1 LED burning) when platter is touched, LED's follow one by one back and forth the movement of the platter) ? Only one led lit when platter is touched is easy to map but once gain it can be the led under a specific position of the 'physical touch'. A lot of work, using quite a few modifiers, for a small aesthetic result. As I said workaround only, probably not even quite close to the wanted original result (once again, trying to duplicate something written directly in the firmware is quite difficult, if feasible at all).
I am also still breaking my head about how I can make some of the LED's blink (not the play button, that I got figured out). Couldn't find any accurate documentation or explanation on how this is done (easily ?) in Traktor Pro 2.
I understand the above doesn't really help you but to give you a correct and definitive answer would mean to work (hard) on it and/or write several paragraphs of text. At least it gives you a bit of direction. Beat phase monitor is easy to understand an map, try to search for that on the internet, you shouldn't have to much difficulty to find a tutorial. As for volume related stuff you just use the higher range of the audio output to create the 'blink'. Like if the volume is at the 0, the range is 0, if it's full, it's at 127, so you create the output led to lit on say, the range 80-127. Get it roughly? I don't know if that would be relevant to you, check one of my video on youtube (search for Yul303), there's one called 'fx tricks in midi mode', it's not a tutorial of any kind, it's not even that good, but I use the beat phase monitor output commands on some buttons' leds and I divided the midi range across those buttons so each led lit one after the other if that can give you a small easy example to set up. |
<< Back to Reviews of DJ equipment Reply