"Intermediary midi mapping" software *discussion thread* (Traktor mapping is a pain)

Home :: Post and find Controller Mappings :: "Intermediary midi mapping" software *discussion thread* (Traktor mapping is a pain)Reply
"Intermediary midi mapping" software *discussion thread* (Traktor mapping is a pain)
Posted on: 16.06.2011 by Arcelia Siebeneck
Introduction

Just wanted to start a discussion thread regarding the shortcomings of mapping midi controllers using Traktors default mapping options. And by that, I don't just mean the annoying non-resizeable window, lack of serious copy/paste/clipboard functions and the recent inablity to directly edit the xml mapping files with a text editor. What I'm really talking about is the limitations of the default Traktor midi mapping window to achieve more powerful, dynamic and complex mappings... mappings that go well beyond what Traktor is normally capable of.

So what do I mean by this? Well if we look at the djtt firmwares for the vci-100 and midifighter as an example you can see that Traktor is capable of some amazing things. Superfaders, fx triggers, etc are made possible by combining various midi commands into one control which are then executed in a certain way. The only realistic way to achieve this is by re-writing the firmware on a midi controller at a hardware level. Yes, it's true that some of these effects can be done via a plain old Traktor mapping - but it gets very complicated and isn't as full featured.

The obvious disadvantage with using modified firmwares is that only a few people have the skill and know how to write them. Also, the firmware will only work on specific midi hardware. What I propose is some sort of intermediary midi software that sits between Traktor and your hardware. A utility that allows full access to every midi command available in Traktor with the aim of achieving the kind of custom mappings only normally available via custom firmwares.

The solution

This isn't an easy undertaking so I'm hoping that the clever people on DJTT can get involved in the discussion and hopeful development of such a tool. In the absence of any sort of Traktor public SDK, here's how it could be achieved:

Traktor - A mapping is created that maps literally every control to a different midi CC. All these controls are set to receive midi from a virtual midi device such as LoopBe. The midi commands are then routed via LoopBe from the mapping utility which could be created via one of the following programs:

Synthmaker/SynthEdit - Both Windows programs which allow the creation of midi plugins/vst's. Usually the plugins are effects/synths for DAW's such as Cubase, Ableton Live, etc however they can also export standalone Windows executables with midi in/out functionality.

Reaktor - Same as Synthmaker/Synthedit but probably more powerful and there may be more people on here that know how to use Reaktor properly. Trouble is, I don't believe there's a plugin export function so you'd need to run Reaktor in the background.. not ideal.

Emulator - the new version of Emulator allows you to design your own touchscreen interface GUI and map midi commands to each button/control.

GlovePie - probably quite a good option as their is decent scripting and midi support. Disadvantage is that it's a bit unstable in my experience.

Autohotkey - my area of expertise (lol) but not really designed for such a job... I might use it to knock up a prototype though.

VisualStudio - probably the most viable and professional option... a decent programming language that is stable, fast and powerful.


So what would the custom midi mapping software look like? and what kind of things could it do?

This is obviously up for discussion, but the first and most important function should be a wholesale replacement of the standard Traktor mapping window. The tool should allow easy duplicating, adding, deleting, etc of all the various Traktor controls and the ability to setup modifiers etc.

Once this is implemented, we can look at ways to achieve complex midi mappings based on rules, scripts, etc. This might enable functions such as superfaders and other midifighter features but also:

- complex ADSR/LFO based controls
- sequenced/pre-scripted midi control
- Serato-style continuous play in the background after beatjuggling has ended
- GUI editor for custom diy controllers (edit the midi controls in a more visual manner)
- simpler midi LED mappings
- stuff I haven't even thought of...!

How you can help

Feel free to contribute to this thread... let me know if this is something that you would find useful and what you would do differently. The suggestions I've listed above are just ideas and I'm keen to get something developed that will be useful for everyone so get posting
Chasidy Heckenbach
16.10.2011
big update... especially the extra launchpad support stuff...

* http://djism.com/mm/midimasher-20111016.zip

launchpad support:
* modded launchpad.init(), faster test of leds, enables flashing leds
* launchpad flashing leds now work, just select a flashing color like lp_flash_hi_red instead of lp_hi_red
* new func launchpad.traktor_sync() which will sync the flashing leds to traktor beats
* new launchpad.set_page() that ensures flashing leds still work as expected after page switching and makes led updates 'appear' instant using the double buffering of the launchpad
* new launchpad.set_contrast() function

* new "heartbeat" event from traktor that uses either of deck A or deck B beat phase and will flip if the active one stops
* play+kill toggles now flash in time to traktor the launchpad.lua config

* add_control() can now has a new 3 arg form
** e.g: add_control("play_a", 1, "C#-2") or add_control("play_a", 1, "CC001")
* add_grid_control() has a similar 4 arg form as well as the old 5 arg one
** e.g: add_grid_control(0, 2, 1, "C#2")

* virtual yfaders now have 3 modes:
** normal: just a fader with feedback from traktor etc (+option to set leds without midi feedback)
** vumeter: pass in extra device/event args at the end, like traktor/monitor_deck_afl_mono_a etc
** shifted vumeter: switch to vumeter mode when a shift (or toggle) is set, pass the name of a shift variable as the final arg (this is how i have it setup in config/launchpad.lua at the moment, the new toggle is top/right by the mixer button)

* bug fix: where feedback from traktor wasn't only sent to the required page on the lp
* bug fix: virtual faders not always showing correct value
* bug fix: virtual_midifighter() function now works

it turns out the instability issues i was blaming on the lp before was due to me using traktor with the internal soundcard in my laptop, where i usually use a usb attached device. odd tho?

edit: and a devices/mixtrack.lua file
Arcelia Siebeneck
16.10.2011
glad this thread has taken off

I'm concentrating on an actual diy build at the moment so the mapping stuff will come later.... still interesting following the progress in this thread though - keep it up
Nana Mohs
15.10.2011
I'm having trouble with midi_monome so for now I'm just mlrizing ableton. Working fine so far
Chasidy Heckenbach
15.10.2011
Originally Posted by Onimode
I'll try this now.
But what you've put here looks different than your latest release. :P
yep - those comments are, i just editted them, but the functions are the same

fantastic! just added devices/mixtrack.lua

i do have a newer version that i'm itching to release, also has the new version of add_control(), i'm still trying to check what code might have been causing the lockups with the launchpad. worst case scenario i'll release it later today with the new page switch and flashing led related code commented out for now.
Kayce Mesia
15.10.2011
Originally Posted by zestoi
also, if u look in lib/base.lua you'll see other functions you can use for routing data in different ways:

i've changed the names of functions round so many times already - but just realised that button_shift() function isn't duplex so should either be made duplex or renamed to trigger_shift() or maybe just something completely different
I'll try this now.
But what you've put here looks different than your latest release. :P

Originally Posted by zestoi
does this mean you'll have a devices/mixtrack.lua file i can grab sometime?
Maaaaaaaybe.
http://pastebin.com/gtEjj9H5
Chasidy Heckenbach
15.10.2011
Originally Posted by Onimode
I'm currently mapping my MixTrack out of fun, but seeking full original functionality.
does this mean you'll have a devices/mixtrack.lua file i can grab sometime?
Chasidy Heckenbach
15.10.2011
Originally Posted by Onimode
Onimodeeeeeeeeee. :C
actually i almost write omnimode the other day... being how "omni mode" is where midi data is sent on all 16 channels

Speaking of changed to the API and whatnot, is there a way currently to have a "shift" button as a toggle-able button? button_shift() makes a momentary button only. I'm currently mapping my MixTrack out of fun, but seeking full original functionality.
sure - no need for any new functions for that. the shift button on the layout i created uses this:

Code:
hold_modifier("lp", "arm", 0, lp_hi_yellow, lp_lo_red, "lp_shift")
all you need to do to create one called "lp_toggle" on the "solo" button is this:

Code:
toggle_modifier("lp", "solo", 0, lp_hi_yellow, lp_lo_red, "lp_toggle")
you can then pass "lp_toggle" into that button_shift() function as normal. it just checks the state of the variable "lp_toggle" it doesn't care how/what set it. whether from code or a shift button or toggle etc.

button_shift() was probably a bad name - i just wanted a quick and dirty function that i could give two different events to send to traktor depending on the state of a shift button. feel free to come up with a new name for it

also, if u look in lib/base.lua you'll see other functions you can use for routing data in different ways:

Code:
-- Function             Toggled   Target   Local     Ignore Src   Routing
--                                         Led Set   Off Events
--
-- pipe()               no        device   no        no           A ---> B
-- join()               no        device   no        no           A <--> B
--
-- trigger()            no        device   yes       yes          A ---> B
-- button()             no        device   yes       no           A <--> B
-- button_shift()       no        device   yes       no           A ---> B
-- toggle()             yes       device   yes       no           A <--> B
--
-- pipe_modifier()      no        var      yes       no           A ---> V
-- hold_modifier()      no        var      yes       no           A <--> V
-- toggle_modifier()    yes       var      yes       no           A <--> V
i've changed the names of functions round so many times already - but just realised that button_shift() function isn't duplex so should either be made duplex or renamed to trigger_shift() or maybe just something completely different
Kayce Mesia
15.10.2011
Originally Posted by muffintop
I'm actually just using the automap screen shot from omnimode to do the monome_midi device.
Onimodeeeeeeeeee. :C

Originally Posted by zestoi
awesome i can upload a version with this in, in an hour or so. i've had some stability issues the last couple of days with the new buffer switching stuff with my launchpad so might just comment out that stuff for now.
Speaking of changed to the API and whatnot, is there a way currently to have a "shift" button as a toggle-able button? button_shift() makes a momentary button only. I'm currently mapping my MixTrack out of fun, but seeking full original functionality.
Chasidy Heckenbach
14.10.2011
Originally Posted by muffintop
I'm actually just using the automap screen shot from omnimode to do the monome_midi device. I'm sure I'll do it the other way when it's made available. Turns out. The old method isn't too hard with a reference handy.
awesome i can upload a version with this in, in an hour or so. i've had some stability issues the last couple of days with the new buffer switching stuff with my launchpad so might just comment out that stuff for now. the launchpad is aa great device but is quite picky as to what/when u send data to it. it's quite possible to lockup your pc if it's not happy. same has been seen from a few peoples launchpad tsi's when they included led feedback. i wish novation would release a more stable driver.
Nana Mohs
14.10.2011
I'm actually just using the automap screen shot from omnimode to do the monome_midi device. I'm sure I'll do it the other way when it's made available. Turns out. The old method isn't too hard with a reference handy.
Chasidy Heckenbach
14.10.2011
Originally Posted by muffintop
That's EXACTLY what I needed! Working on making a device file to emulate a monome 64 using midi_monome.

Should have some fun stuff to play with very soon.
cool. i'll upload an update with that way calling add_control() in a few hours. no 'flat' notes tho, all sharps, unless there's a neat way of addressing that. but that's no biggie i don't suppose, except to the musical purists

so you'll be able to call add_control() with either 3 or 4 args, which will use the old and new methods.

as you can probably guess... add_control() was one of the very very first bits of code i wrote, originally in the C++ core too until i got lua running.
Nana Mohs
14.10.2011
Originally Posted by Onimode
[IM]http://i.imgur.com/1ZYKP.png[/IMG]

Took a screenshot from Automap for ya.
That's EXACTLY what I needed! Working on making a device file to emulate a monome 64 using midi_monome.

Should have some fun stuff to play with very soon.
Chasidy Heckenbach
14.10.2011
Originally Posted by Onimode


Took a screenshot from Automap for ya.
awesome

so it starts at C-2 then i was just believeing if i was about to go the wrong way or not lol.

at the moment it uses "D#2" for "E flat 2" which i guess i'll have to stick to as the flat character isn't a normal/easy one?
Kayce Mesia
14.10.2011


Took a screenshot from Automap for ya.
Chasidy Heckenbach
14.10.2011
Originally Posted by Onimode
They can be both. Although notes are displayed through numbers in midimasher, not their actual note name (i.e. C2 is 48, C3 is 60, etc.).
you were fast at replying

btw if you use a config file with only this in:

Code:
open_midi_device("lp", "", "Launchpad", "Launchpad")
i.e: missing "type" argument, and then run in debug mode you can see midimashers default decode of the midi data. this is me pressing the up+down buttons and then the top two pads:

Code:
* [lp        ] b0 68 7f [] type=cc name=CC104 value=127
* [lp        ] b0 68 00 [] type=cc name=CC104 value=0
* [lp        ] b0 69 7f [] type=cc name=CC105 value=127
* [lp        ] b0 69 00 [] type=cc name=CC105 value=0
* [lp        ] 90 00 7f [] type=note-on name=C-1 value=127
* [lp        ] 90 00 00 [] type=note-on name=C-1 value=0
* [lp        ] 90 01 7f [] type=note-on name=C#-1 value=127
* [lp        ] 90 01 00 [] type=note-on name=C#-1 value=0
atm midi note number 0 is mapped to "C-1" so i guess i should change that to "C0" when doing this new add_control() variant? if that's what u need ofc.
Chasidy Heckenbach
14.10.2011
Originally Posted by muffintop
Oh suck. There goes my weekend

Also, there is either something seriously jacked with the Midifighter in normal mode or I'm doing something wrong. Can't seem to find any order, but all of the buttons seem to be mixed up.
i haven't gone back to test the normal mode midifighter function yet - will do that and fix anything i find today or tomorrow. it *seemed* to work but i didnt test with an actual tsi in traktor etc.

also btw midimasher does understand stuff like "C#2" etc in send() but not in add_control() at the moment, but i can add that in.

so i could create an alternative version that instead of taking something like this:

Code:
add_control("deck_a", 1, "note", 0x71)
would accept something like this:

Code:
add_control("deck_a", 1, "C#1")
add_control("deck_b", 1, "CC002")
add_control("deck_c", 1, "PC3")
i.e: device+midichannel+note/cc/pc 'name'

and then midimasher would map it back internally. midimashers decode/encode tho is in line with traktors, which i believe is one ocatave out from everyone else, which is why i don't use it too much. there again i could always switch it to the more normal mode as stuff like "C#2" isn't really being used in any code at the moment at all.
Chasidy Heckenbach
14.10.2011
Originally Posted by muffintop
Does the midi note have to be cc or can it be actual note value? I need it to be real notes to hack the mlrv page to work. I believe it's doable though
notes or cc (or pc's for that matter). if you look in the devices/scs3d.lua file you'll see lines like this:

Code:
add_control("btn1", 1, "note", 44)
same format as for cc's but just use "note" instead of "cc" (no need for noteon verses noteoff in a devices config ofc)

btw just finishing up testing a new version that enables seemless page switches and flashing colors that can also be synched to traktor if wanted. all you need to do is use one of the colors with 'flash' in their names and then they'll automatically flash in sync with the traktors beat finally got my head round the launchpad double buffering mechanism. plus a couple of bug fixes...
Nana Mohs
13.10.2011
Originally Posted by Onimode
They can be both. Although notes are displayed through numbers in midimasher, not their actual note name (i.e. C2 is 48, C3 is 60, etc.).
Oh suck. There goes my weekend

Also, there is either something seriously jacked with the Midifighter in normal mode or I'm doing something wrong. Can't seem to find any order, but all of the buttons seem to be mixed up.
Kayce Mesia
13.10.2011
Originally Posted by muffintop
Does the midi note have to be cc or can it be actual note value? I need it to be real notes to hack the mlrv page to work. I believe it's doable though
They can be both. Although notes are displayed through numbers in midimasher, not their actual note name (i.e. C2 is 48, C3 is 60, etc.).
Nana Mohs
13.10.2011
Does the midi note have to be cc or can it be actual note value? I need it to be real notes to hack the mlrv page to work. I believe it's doable though
Chasidy Heckenbach
13.10.2011
@muffintop you don't *have* to create a devices/name.lua file for the app if u don't want to - tho it probably makes sense in the long run.

it just means you can't use stuff like send("myapp", "some-action", 127) but you can still use send_midi() or send_midi_raw()

send_midi(device, channel, type, value, velocity)

e.g:

send_midi("myapp", 1, MIDI_NOTE_ON, 64, 127)
'type' can be any of MIDI_NOTE_ON, MIDI_NOTE_OFF, MIDI_CC or MIDI_PC

if you want to send anything else then u have to use send_midi_raw() that just takes the device name and list of raw midi data (can be any length)

e.g:
send_midi_raw("scs3d", 240, 0, 1, 96, 1, 0, 247)

numbers can be in decimal or hex like 0x20

using the devices/ files means we can keep all the nasty actual midi implementation out of other user files tho...
Chasidy Heckenbach
13.10.2011
Originally Posted by muffintop
Mlrv2 and up can be mapped to any grid controller from what I understand. It's a very cool max patch. Also it can be synced to midi clock, so I'll probably use it instead
of sample decks
cool, sounds interesting would be cool to find an alternative to either running ableton for clips or just the 8 sample decks in traktor.
Nana Mohs
13.10.2011
Mlrv2 and up can be mapped to any grid controller from what I understand. It's a very cool max patch. Also it can be synced to midi clock, so I'll probably use it instead
of sample decks
Chasidy Heckenbach
13.10.2011
Originally Posted by muffintop
Any help here would be great
Mainly just with starting the new .lua
If it's anything like the traktor.lua (which I'm assuming it is) I can probably figure it out
I haven't really looked at the traktor one too much and won't be able to for a couple hours. Iwill probably have a more specific question then...
Just throwing it out there for now
guess u editted your post while i had the reply window open...

you can create any new lua file in the config folder which will then get shown when in the list mm.exe -i is run.

if u mean a new device file - like the traktor one - then u can use the learn.exe to map most/all of the controls for a new device.

the traktor one is a bit different from the rest as i had no choice but to manually edit that with whatever values i put in the traktor.tsi file. mapping physical devices is simpler tho.

the point of any devices/ file tho is to say what control maps to what midi data and then add in any extra functions that might be useful for that device - tho i'm believeing that kind of stuff is probably better in a lib/ file - not sure - and not all that important at this stage anyway.

fire away with any more questions when u have them

edit: ah... that's an app? then yep, you'll need to manually create a devices/mlrv.lua file like i have for traktor. and add a new open_midi_device() call to it in your config file.
Chasidy Heckenbach
13.10.2011
Originally Posted by muffintop
I'm kind of believeing about putting the mixer page on page 2 and turning page 4 into mlrv control.

do I need to make a new .lua file for that in the config folder?

Any help here would be great
cool sure. you can also use more than 4 pages if needed ofc. i only used those 4 as i thought it was enough and the top/left 4 arrows seem perfect for track browsing or something. hadn't heard of mlrv before - brings up some cool stuff about the monome tho when i google?

i'd say keep the same lua filename or rename - up to you. just be cool to have a decent launchpad mapping i could always create a file called launchpad_twitch.lua or something for a "twitch" like mapping.

btw i've just enabled flashing leds on my launchpad. might be useful for when samples are playing or something. by default it flashes at it's own speed but i'll probably try to tie it into the beatphase from traktor.

basically you just use those *_flash colors, that don't do anything in previous versions. there'll also be flashing versions of all shades available. i just hadn't looked into the lp's buffering and the way of flashing leds before now.
Nana Mohs
13.10.2011
I'm kind of believeing about putting the mixer page on page 2 and turning page 4 into mlrv control.

do I need to make a new .lua file for that in the config folder?

Any help here would be great
Mainly just with starting the new .lua
If it's anything like the traktor.lua (which I'm assuming it is) I can probably figure it out
I haven't really looked at the traktor one too much and won't be able to for a couple hours. Iwill probably have a more specific question then...
Just throwing it out there for now
Chasidy Heckenbach
13.10.2011
Originally Posted by muffintop
I am believeing about putting sample deck controls on page 3 (if I add sample decks to the LP at all). The nanokontrol is just so perfect for sample decks/loop recorder.

I had to change up the tsi already to make the loop buttons work how I wanted. Changed all of the loop size commands to loop size + set.
cool sure. make any changes like that that seem sensible, or add in new ones if needed. these are what i added to the latest version but i'll add them to your tsi once you're done. this is where that xtreme mapping app would be useful i guess

Code:
add_control("send_monitor_state",               6, "cc", 1);
add_control("show_slider_values",               6, "cc", 12);

add_control("snap_mode",                        6, "cc", 2);
add_control("quant_on",                         6, "cc", 3);

add_control("fx_panel_mode_unit1_group",        6, "cc", 4);
add_control("fx_panel_mode_unit1_single",       6, "cc", 5);
add_control("fx_panel_mode_unit2_group",        6, "cc", 6);
add_control("fx_panel_mode_unit2_single",       6, "cc", 7);
add_control("fx_panel_mode_unit3_group",        6, "cc", 8);
add_control("fx_panel_mode_unit3_single",       6, "cc", 9);
add_control("fx_panel_mode_unit4_group",        6, "cc", 10);
add_control("fx_panel_mode_unit4_single",       6, "cc", 11);
i'm sure there's more stuff we need in the tsi and traktor.lua file and probably a few others need tweaking. i stupidly made quite a few toggles originally in the tsi, which is dumb for midimasher. if its in "hold" mode then we can choose from the midimasher config whether we want hold or toggle...

let me know if u find any bugs or need some more lua putting in the main libs etc...
Nana Mohs
13.10.2011
I am believeing about putting sample deck controls on page 3 (if I add sample decks to the LP at all). The nanokontrol is just so perfect for sample decks/loop recorder.

I had to change up the tsi already to make the loop buttons work how I wanted. Changed all of the loop size commands to loop size + set.
Chasidy Heckenbach
13.10.2011
Originally Posted by muffintop
@zestoi and anyone interested/using a launchpad with midimasher

I'm working on making page 2 take care of loops, plooping, hotcues, moving the top row from page 1 onto page 2 as well.

That leaves me with 2 more rows of 4 buttons for each deck left over. Any ideas? Suggestions? Requests?

I'll post the changed files as soon as I have them done.
awesome, sounds cool i'd like control over sample decks and there's no support at the moment for normal decks C+D in the tsi and mm config file for traktor. they can be added ofc, but need adding to the tsi too.

i did add a few more things to the latest version too, which i forgot to mention. just some controls for changing the effects units modes and stuff like "send monitor state" that i don't understand as i had assumed it would send back the status of all controls after it received that? i.e: to sync up the leds for eq+levels on the launchpad initially...

don't forget i'll be releasing a version with "twitch" like areas at the bottom of page 1 that could be used for loops+hotcues+mashing etc ala "itch"

there again thats the only multi page support that the twitch has i guess, so that might be over kill on a launchpad config with multiple pages? i'll finish and release the code anyway tho, in case it's useful for people in the future. it basically just allows the creation of any size grid (or on any buttons etc for that matter) on any page, with a set of page select toggles above (or anywhere) like the top right we have in this launchpad config.

i'm really chuffed you're using midimasher to create your config - can't wait to see and try it
Chasidy Heckenbach
13.10.2011
Originally Posted by Onimode
I believe using the table would be more organized.

Mo' tables = mo' winnin'?
yup let me know if it's not how you want it tho. i ran this built version and checked it's at least not broken... could probably do with some functions in the apc file to change the apc modes etc too? save other people having to work out the sysex etc.

the launchpad does have some features for refreshing all leds faster, but turns out u need to refresh *all* of them, so only makes sense when more than half need changing and it already only sends out updates for leds that actually need changing, so not sure whether it's worth using the other method. tried to send the sysex for enabling flashing of leds but *all* leds started flashing so i suspect i need to update the lp color variables first

* new apc40 support added
* previous fix rolled in
* now issues a device reset to the launchpad
* virtual faders now move via midi, from traktor etc
* http://djism.com/mm/midimasher-20111013.zip
Nana Mohs
13.10.2011
@zestoi and anyone interested/using a launchpad with midimasher

I'm working on making page 2 take care of loops, plooping, hotcues, moving the top row from page 1 onto page 2 as well.

That leaves me with 2 more rows of 4 buttons for each deck left over. Any ideas? Suggestions? Requests?

I'll post the changed files as soon as I have them done.
Kayce Mesia
13.10.2011
Originally Posted by zestoi
wasn't sure what u had decided on the apc40 devices file, something like this?

Code:
apc40 = {}
-- clip launch grid LED colors
apc40.clip_off = 0
apc40.clip_green = 1
apc40.clip_red = 3
apc40.clip_yellow = 5
apc40.clip_greenflash = 2
apc40.clip_redflash = 4
apc40.clip_yellowflash = 6
I believe using the table would be more organized.

Mo' tables = mo' winnin'?
Chasidy Heckenbach
13.10.2011
Originally Posted by Onimode
Amen to getting that K2. I'd love to have someone hack the Nocturn's protocols completely. Lots of fun to be had with all those controls.

What about rolling back those changes? :P
sure, i'll make another release a bit later. will just check i haven't broken anything first

wasn't sure what u had decided on the apc40 devices file, something like this?

Code:
apc40 = {}
-- clip launch grid LED colors
apc40.clip_off = 0
apc40.clip_green = 1
apc40.clip_red = 3
apc40.clip_yellow = 5
apc40.clip_greenflash = 2
apc40.clip_redflash = 4
apc40.clip_yellowflash = 6
Kayce Mesia
13.10.2011
Originally Posted by zestoi
someone has *almost* deciphered the nocturn protocol and i wouldn't mind having a hack at it myself:

https://github.com/timoahummel/noctu...master/game.py

i bought my scs.3d's instead of the nocturn in the end - to use them in the same way i'd use encoders with multiple layers.

and i will probably forget all about ever wanting a nocturn once i get my hands on a K2 in a few months

btw i've just fixed led feedback for the virtual faders in midimasher - so they now update when you move the controls in traktor. it used to work until i broke it recently changing some api stuff
Amen to getting that K2. I'd love to have someone hack the Nocturn's protocols completely. Lots of fun to be had with all those controls.

What about rolling back those changes? :P
Chasidy Heckenbach
13.10.2011
Originally Posted by Onimode
It's a shame Novation's Nocturn relies on Automap. Doesn't output any MIDI by itself. Launchpad + Nocturn would've been awesome for Traktor. :C
yup, this is very true... i almost bought a nocturn a few times, only read about the need for automap recently. of course you could just set automap up with some sensible mapping and then just treat it as though it's not really there at all. not that i really know enough about automap...

someone has *almost* deciphered the nocturn protocol and i wouldn't mind having a hack at it myself:

https://github.com/timoahummel/noctu...master/game.py

i bought my scs.3d's instead of the nocturn in the end - to use them in the same way i'd use encoders with multiple layers.

and i will probably forget all about ever wanting a nocturn once i get my hands on a K2 in a few months

btw i've just fixed led feedback for the virtual faders in midimasher - so they now update when you move the controls in traktor. it used to work until i broke it recently changing some api stuff
Kayce Mesia
13.10.2011
Originally Posted by zestoi
interaction between controllers is something that's hard to do in traktor - as modifiers are local to each mapping. not something u usually need tho...
It's a shame Novation's Nocturn relies on Automap. Doesn't output any MIDI by itself. Launchpad + Nocturn would've been awesome for Traktor. :C
Chasidy Heckenbach
12.10.2011
Originally Posted by Onimode
I must try this.
interaction between controllers is something that's hard to do in traktor - as modifiers are local to each mapping. not something u usually need tho...

if u add two more virtual midi ports then you can also connect ableton live in the same way traktor is connected, maybe using some launchpad pages to control ableton and some traktor.

even without any interaction between controllers/software you'd still need any u wanted to use with midimasher at one time to be in the same config. you could use separate files tho and include them via lines like i use in lib/startup.lua
Kayce Mesia
11.10.2011
Originally Posted by zestoi
you can add as many different controllers to a single midimasher config btw.
I must try this.
Chasidy Heckenbach
11.10.2011
Originally Posted by muffintop
You have freed up my nanokontrol to take care of sample decks and loop recorder. Appreciate it a lot
cool

you can add as many different controllers to a single midimasher config btw. but if u already have a decent tsi for your nanokontrol then no reason to fix something that isn't broken ofc.

adding near the top (or anywhere before u try to add controls to it) tho would connect midimasher to your nanokontrol:

open_midi_device("nanokontrol", "nanokontrol", "nanoKONTROL", "nanoKONTROL")

the devices/nanokontrol.lua file was created using learn.exe from mine and i haven't included a dump of it's config from the korg editor thing - but i don't believe i ever changed anything from the defaults. also i only used the first "scene" in there.
Nana Mohs
11.10.2011
You have freed up my nanokontrol to take care of sample decks and loop recorder. Appreciate it a lot

<< Back to Post and find Controller MappingsReply

Copyright 2012-2023
DJRANKINGS.ORG n.g.o.
Chuo-ku, Osaka, Japan

Created by Ajaxel CMS

Terms & Privacy