"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 IntroductionJust 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 | |
Khadijah Wojtach 27.10.2011 | http://dl.dropbox.com/u/70608/nanopad.txt Theres the dump file. I've tried to just press the buttons in sequence, and some of the buttons doesn't give any output. |
Chasidy Heckenbach 26.10.2011 | new version midimasher-20111026.zip at http://midimasher.djism.com/downloads/ the big change is the ability to add areas with their own sub-pages. i've added two to the bottom of page 1 in config/launchpad.lua that i'll be using to do the same kind of stuff the "twitch" does on it's two sets of 4x3 pads. this gives us two sets of 8 buttons, each with 4 banks with full led status recall. should now be able to have all the important stuff on page 1 and then put less used stuff on pages 2+3. i'll probably leave page 4 as it is now with a mixer on. debug_file.bat will log all debug to debug.txt which should be useful for me to debug any issues people might have. now after loading devices/DEVICE.lua it will load lib/DEVICE.lua one time - so i've moved function definitions to those files. it will also load devices.DEVICE.custom.lua after each time it loads a devices/DEVICE.lua file and also lib/DEVICE.custom.lua after it loads a lib/DEVICE.lua file - so people can put their own custom stuff in those, to add to or overide the default stuff. when really thrashing the page switch buttons to test it i sometimes had pc lockups. i upgraded to the latest beta driver from novation (2.3b4) and the isssue went away. it seems this is only an issue on windows 7 64bit systems. |
Chasidy Heckenbach 26.10.2011 |
Originally Posted by decon
12 pads + the x/y pad should be pretty cool for mapping stuff from... i almost bought a nanopad a few times but went for the lpd8 in the end. by the looks of that output you've already setup loopMIDI and the ports correctly but just as an fyi i also posted a howto page with screengrabs here: http://midimasher.djism.com/ |
Khadijah Wojtach 25.10.2011 | So I'm trying to get my korg nanoPAD to work. Here's my idea: I'll have to limit the mapping as I only have 12 pads to play with. I've tried to follow this post http://www.djranking s.com/community /sho...2&postcount=70 but when I try to use the learn.exe file and get to where I enter the CC commands nothing happens: |
Chasidy Heckenbach 22.10.2011 |
Originally Posted by muffintop
i believe i will have to implement some kind of auto-repeat internal to midimasher with the repeat time configurable per control - but doubt i'll get round to that for a while. |
Nana Mohs 22.10.2011 | ya... I have auto repeat on. I like it but you can take it off if you want. I can always change it on mine |
Chasidy Heckenbach 22.10.2011 |
Originally Posted by muffintop
the latest code does now look for a devices/NAME.custom.lua after loading the devices/NAME.lua one - so the right way might be for people to use that and adding a second generic midi device in traktor with the users own mappings in. i suspect most of the time those things should either: a) be added to the offical tsi and lua code b) implemented in lua using existing tsi elements (like the "volume up" type controls) btw do u have auto-repeat set on those up/down controls? as thats the only reason at the moment for midimasher not instead remembering the last value and sending one more or less depending on whether you want up or down etc. |
Nana Mohs 21.10.2011 | I changed a couple of things in the tsi early on that changed what some of the cc messages did. Changed them back to match the traktor.lua Just a couple little things, but it would be way better to use this .tsi in future updates to avoid any very possible(probable) confusion. |
Chasidy Heckenbach 21.10.2011 |
Originally Posted by muffintop
|
Nana Mohs 22.10.2011 |
Originally Posted by zestoi
|
Chasidy Heckenbach 21.10.2011 |
Originally Posted by muffintop
btw i renamed ones like "slot_filt_down_c1" to "slot_filter_down_c1" just to match the others in the file. in theory the up/down ones could be emulated using the normal ones - but i guess u have auto-repeat set in traktor for them? if so then that's the best/easiest way to do it atm. there's no auto-repeat functionality in midimasher yet. ie: it can do something when u press or release a button but no way of repeatedly doing anything between those two events. i guess we'll have the same issue with any kind of "fader" control that you want to map to up/down buttons on a controller. i should add a way that a function can be called at timed intervals so then we could add auto-repeat controls with variable repeat times - depending on how fast/slow u wanted it to repeat - also i guess an initial delay time before the auto repeat starts - else you'd never be able to just increment it by '1' tick etc. |
Nana Mohs 21.10.2011 | I forgot to tell you the other controls I added to the .tsi and traktor.lua Code:
add_control("loop_recorder_dry_wet_up", 6, "cc", 46); add_control("loop_recorder_dry_wet_down", 6, "cc", 47); add_control("loop_recorder_dry_wet_half", 6, "cc", 48); Code:
add_control("slot_volume_up_c1", 6, "cc", 13); add_control("slot_volume_up_c2", 6, "cc", 14); add_control("slot_volume_up_c3", 6, "cc", 15); add_control("slot_volume_up_c4", 6, "cc", 16); add_control("slot_volume_up_d1", 6, "cc", 17); add_control("slot_volume_up_d2", 6, "cc", 18); add_control("slot_volume_up_d3", 6, "cc", 19); add_control("slot_volume_up_d4", 6, "cc", 20); add_control("slot_volume_down_c1", 6, "cc", 21); add_control("slot_volume_down_c2", 6, "cc", 22); add_control("slot_volume_down_c3", 6, "cc", 23); add_control("slot_volume_down_c4", 6, "cc", 24); add_control("slot_volume_down_d1", 6, "cc", 25); add_control("slot_volume_down_d2", 6, "cc", 26); add_control("slot_volume_down_d3", 6, "cc", 27); add_control("slot_volume_down_d4", 6, "cc", 28); add_control("slot_filt_up_c1", 6, "cc", 29); add_control("slot_filt_up_c2", 6, "cc", 31); add_control("slot_filt_up_c3", 6, "cc", 32); add_control("slot_filt_up_c4", 6, "cc", 33); add_control("slot_filt_up_d1", 6, "cc", 34); add_control("slot_filt_up_d2", 6, "cc", 35); add_control("slot_filt_up_d3", 6, "cc", 36); add_control("slot_filt_up_d4", 6, "cc", 37); add_control("slot_filt_down_c1", 6, "cc", 38); add_control("slot_filt_down_c2", 6, "cc", 39); add_control("slot_filt_down_c3", 6, "cc", 40); add_control("slot_filt_down_c4", 6, "cc", 41); add_control("slot_filt_down_d1", 6, "cc", 42); add_control("slot_filt_down_d2", 6, "cc", 43); add_control("slot_filt_down_d3", 6, "cc", 44); add_control("slot_filt_down_d4", 6, "cc", 45); |
Chasidy Heckenbach 20.10.2011 |
Originally Posted by muffintop
|
Nana Mohs 20.10.2011 |
Originally Posted by zestoi
I thought about that, but I personally don't use the IG all that much. You could just use the IG+Deckalized mapping and keep them in normal mode (that's what I would do at least). |
Chasidy Heckenbach 20.10.2011 |
Originally Posted by Onimode
|
Kayce Mesia 20.10.2011 | Since my internet's been down, I've been doing some experiments with my Mixtrack. Pages, virtual MFs, etc. More importantly, I found that I missed two LEDs in the device .lua file. Code:
-- Other LEDs add_control("decka_pitch_led", 1, "note", 124) add_control("deckb_pitch_led", 1, "note", 125) add_control("browserfile", 1, "note", 126) add_control("browserfolder", 1, "note", 127) |
Chasidy Heckenbach 20.10.2011 |
Originally Posted by muffintop
i do have a new version btw - but only minor mods: * option to globally set the "off color" for all flashing launchpad leds (default is black) * option to dump all debug to a file - handy to help debug controllers that i don't own for other people my aim is to work on the "twitch" style sub-layers this weekend and then finally release a (mostly?) complete launchpad mapping with it's own thread. i'd like to try out your mapping tho and see if we can combine some stuff. i definately want a 4banks midifighter somewhere - not sure where yet - as people seem to quite like the instant grat stuff. i haven't properly tried using a 4banks midifighter and a normal one at the same time - so don't know if the effects are setup the same way for both? i guess people must have used real midifighters in that combination before tho? edit: i guess having the effects in the same order as used in the 4banks midifighter will make sense anyway - so hope it's the same as normal mode. i'll need to be able to select the beatmasher+slicer for two "sub layers" in the twitch areas. i'll have a play later and do a big button import again of the instant grat tsi and deckalized and just check what they're effects order is and what modes (single/group) they have their effects units in. would make sense to use that format - tho events like "fx_panel_mode_unit1_group" and "fx_panel_mode_unit1_single" could be sent to traktor - even on page changes - to get traktor setup right for that page+set of controls. also make sense to send out those on startup to set any defaults. |
Nana Mohs 20.10.2011 | The extra controls I used for ableton when I tried working it into my flow. I had them in a separate .lua, but I just added them to the traktor.lua when the latest update came out. I put them there to have extra buttons to ease customization. I like the idea of putting them in a separate .lua/making a separate .tsi for people to modify. I had changed the select loop length to select the length and set a loop, but with multiple midifighters being supported I don't need that anymore. I believe it's still in the tsi though. |
Chasidy Heckenbach 19.10.2011 |
Originally Posted by muffintop
the only differences with your tsi is u added all of those or did u tweak other stuff? wish i had that xtreme mapping app now so i could compare ofc a new thread sounds like a cool idea. need to come up with a plan for the tsi's tho as i dont want anyone modding the standard midimasher tsi - else they're locked into that one persons configs - and they wont ever be able to take on newer versions of midimasher as new controls get added etc. if someone wants to do stuff that aren't in the standard tsi then either: * it needs adding to the master tsi or... * the user creates a cusom tsi in traktor, connected to the same midi ports as the standard midimasher one * custom lua code gets added to a different file than devices/traktor.lua - like i mentioned before - maybe looking for lib/traktor.user.tsi or something and loading that automatically if found any thoughts? else this is the one area that could get really messy... tho someone who has a mac and xtrememapping as well as a pc to run midimasher could help ofc |
Nana Mohs 19.10.2011 | Here's my config, device, and tsi. I'll make a thread and write up about it soon, but you can test it out until then. Bottom row is loop recorder... LtoR Delete, Size down, size up, record, play, dry wet down, dry wet up, dry wet 50% |
Chasidy Heckenbach 19.10.2011 |
Originally Posted by muffintop
you could even have the same virtual midifighter in diff places on diff pages - just for convenience. here's a stupid example: Code:
virtual_midifighter("lp", 1, "midifighter1", 1, 0) virtual_midifighter("lp", 1, "midifighter2", 1, 4) virtual_midifighter("lp", 2, "midifighter2", 1, 0) virtual_midifighter("lp", 2, "midifighter1", 1, 4) stupid example ofc - but demonstrates multiple copies of the same virtual midifighter and shows that led feedback all links properly between them. led status will also tie up if u have any other matching buttons anywhere on any pages - like the original "play" buttons i added to the top of page 1 etc. it does mean tho that u could have one page on the lp that is just 4 midifighters and then have another page with the midifighters for decks A+B on top of each other with your faders to the right etc. |
Chasidy Heckenbach 19.10.2011 | here you go * midimasher.djism.com/downloads/ * rotated the initial off colors for normal mode virtual midifighter, now goes from top left to bottom right, one row at a time, as opposed to before which was one column at a time * fixed multiple instances of normal mode virtual midifighters it actually took me ages to debug until i realised that i had both outputs set to the same port in traktor sheesh... ah well... my original hunch was correct and all i had to do was add the word "local" before two variables in the virtual_midifighter() function |
Nana Mohs 18.10.2011 | So does this mean I can safely make my config file and put in the MF code in the right place? Also... the MF colors are turned 90 degrees counter clockwise so you know...I mean since you will already be in the code If that's too much of a pain I can always compensate myself |
Chasidy Heckenbach 18.10.2011 |
Originally Posted by muffintop
the only theoretical limit is whether windows has a limit on the maximum number of midi ports or not. i do seem to remember having an issue when i had somewhere around 14 or so ports mapped via loopMIDI. if i can get access to the dll interface used by loopMIDI tho midimasher will be able to dynamically create it's own midi ports and so you'd only need half as many. plus no manual setup in loopMIDI which would be cool. waiting for a reply from the authour of loopMIDI on that. |
Nana Mohs 18.10.2011 |
Originally Posted by zestoi
Thanks for looking. |
Chasidy Heckenbach 18.10.2011 |
Originally Posted by muffintop
after a really quick look, it seems i didn't localise the variables "any2mf_map" and "mf2any_map" which i believe would mean that the 2nd midi fighter added would work but probably not the first? will have a proper look/debug asap. |
Nana Mohs 18.10.2011 | I'm having problems with 2 virtual midifighters in a config file. Am I doing something wrong? I only get midi from the one on the right. All of my midiports are right I believe |
Chasidy Heckenbach 17.10.2011 |
Originally Posted by muffintop
I'll upload the tsi soon so you can take a peek if you want
i thought i wouldn't be using the virtual midi fighter feature now that i have a real one - but i still prefer the led feedback on the launchpad. btw you can customise the "off colors" for virtual midifighter pads by defining a list of colors like this: Code:
mf_colors = { lp_lo_orange, lp_lo_red, lp_hi_red, lp_hi_red, lp_lo_red, lp_lo_green, lp_lo_green, lp_lo_green, lp_mi_green, lp_mi_green, lp_mi_green, lp_mi_green, lp_lo_orange, lp_hi_orange, lp_hi_orange, lp_lo_orange } Code:
virtual_midifighter("lp", 1, "midifighter2", 1, 4, lp_hi_yellow, mf_colors) a previous version of my code used x,y instead of row,col for grid controls which is what caused issues with the midi fighter functions i just fixed. still not sure which way makes more sense, but too much is now row,col to change probably. |
Nana Mohs 17.10.2011 | On page 1 I'm going to have 2 midifighters in regular mode with deckalized in the top 2 rows, the next 3 are Sample volume up, sample volume down, and sample play (in descending order), or with the shift button pressed sample filter up/down and sample on. Bottom row controls loop recorder. Page 2 is your mixer page. Page 3 will have the deck A deckalized mf on top of the left and deck B on bottom of the left side 4 columns will be in this order... deck A volume (all 8 buttons) deck A filter (Top button filter on/off...lower 7 are the fader)...and repeated for deck B That's what I doodled at work today at least. Probably get it hammered out tomorrow. I'll upload it when I'm done The modifications I made I don't really use anymore now that the midifighter in regular mode works. I'll upload the tsi soon so you can take a peek if you want |
Chasidy Heckenbach 18.10.2011 |
Originally Posted by muffintop
there's nothing to stop someone adding a second generic midi device in traktor tho - using the same in+out ports with their own tsi of extra functions - and adding some more controls to the devices/traktor.lua file. i was believeing that maybe that devices file should maybe check for something like lib/traktor.user.lua or something - and if exists then include it automatically - so people can add their own custom stuff. *ideally* we'd only ever need one big tsi ofc - with people just tweaking stuff like the jog wheel sensitivity stuff in it. i agree on only 2 or 3 pages. most of the big multi page mappings i have seen for the launchpad just seem too confusing. i quite like multi layers - but i need to know what/where to go to to change something quickly without having to believe about it. when i add the twitch areas to page one of my own launchpad/traktor mapping then just those bottom 3 rows will take care of hotcues/loops/beatmasher/slicer for decks a+b so plenty of space left for other stuff. i'd like to have transport controls for a+b, sample deck control and maybe some instant effects on page one? not too sure what else i'd be missing then anyway? did u try the latest version with the flashing leds and vumeters on page 4? i did a lot of testing on sunday and i'm still shocked at how little cpu midimasher seems to use, even with the beatphases for decks a+b being processed for flashing leds and the channel levels for the vumeter on this old intel cpu 4400 laptop it seemed to stay max out at about 0.6% cpu usage - and that's on just one of the two cpu's i presume. |
Nana Mohs 17.10.2011 |
Originally Posted by zestoi
A little difficult to wrap my head around The 3rd page being for Ableton is nice, but I have found myself neglecting it. I'm really trying to narrow it down to 2 pages, 3 max. |
Chasidy Heckenbach 17.10.2011 |
Originally Posted by Onimode
also editted the mm.djism.com more earlier, adding in screen grabs of traktor and stuff to help people to get started, so that info shouldn't need explaining again in any threads here. hopefully the info on setting up a midifighter will be useful too, with pictures of how to use the "add > import" for extra mappings as well as the "big import button" as they often seem to confuse people. |
Kayce Mesia 17.10.2011 |
Originally Posted by zestoi
Like I said, I'm working on that Mixtrack one. Two, actually. The default Mixtrack mapping and my own mapping. Plans for Fader FX are go. And, yes. Midimasher is polished enough for a thread such as that. |
Chasidy Heckenbach 17.10.2011 |
Originally Posted by Onimode
guess i could create a new thread with that - write some crap about the midimasher customisation etc - and take it from there? edit: next thing for me to work on is the "twitch" like stuff to use on a launchpad - those toggle-able areas the twitch has. once i have that done then i'll create a more full multi-page launchpad mapping - that i'd definately create a new thread for. edit2: it's only really been a week or so that i've had decent feedback from various people that a) midimasher runs on their pc's and b) it doesn't catch firre or something anyway but yep - i do need to create it's own more visible thread sometime. i'm sure most people don't check this one. edit3: i'd like to come up with a launchpad mapping for traktor to beat all and any existing mappings that are out there. but i guess for that i need feedback/info on people as to what should be there. can probably keep the number of actual pages/layers to a minimum with the twitch style areas too. |
Kayce Mesia 17.10.2011 |
Originally Posted by zestoi
|
Chasidy Heckenbach 17.10.2011 | basic setup instructions now on mm.djism.com/ and latest versions will always be there. |
Chasidy Heckenbach 16.10.2011 | nothing interesting there yet, just all versions to download and a file browser, but i'll be adding more info here soon (hopefully)... mm.djism.com it's the shortest url i could come up with - saves too much typing |
Chasidy Heckenbach 16.10.2011 |
Originally Posted by muffintop
personally i really like the flashing leds and the fader/vumeters. in the mixer page i added a toggle on the "vol" button to switch the main volume faders between normal mode and vumeter modes. i guess it's nice having the leds all switch at the same time when u change pages - tho the old way didn't bother me. it actually needs to be this way tho to have the flashing colors enabled. if you don't want those you can change the call to launchpad.set_page() back to just set_page() in your config and comment out the call to launchpad.flash_enable() in devices/launchpad.lua. kind of cool tho being able to just choose any color and have the button flash in sync with traktor tho |
Nana Mohs 16.10.2011 |
Originally Posted by zestoi
Virtual midifighter here I come! |
Chasidy Heckenbach 16.10.2011 |
Originally Posted by MiL0
maybe i'll even create a more visible new thread sometime soon... or someone else might who's using and created a complete mapping. i've been concentrating on the core components way more than trying to use them to build mappings recently. |
<< Back to Post and find Controller MappingsReply