fanboi
2008-11-17 03:50:06
right. so ive just spent a bunch of hours trying to figure out how to make a dedicated instant automap macro for my 3 band eq´s ive got set up per channel. my guitarrist basicly forced me to do this so he could eq stuff aswell, since he knows nothing about live, but everything about analog mixer consoles heh.
so, i made this macro that work as follows: press your map button (in my case its number pad 1 for track 1), and the macro runs out a sequence of timers sending out some mouse moves, keyboard shortcuts and midi cc outputs.
what does it do?
well, if you press numberpad 1, it selects track in your sessionview mixer, then maps up the 3 knobs (low, mid, hi) on the eq3 on that track, exits midi map and goes back to sessionview..umm.view (this is so that i can continue controlling scene navigation with my hercules without touching the mouse).
why would i want this over a dedicated custom user script and/or mackie emulation?
because this doesnt lock your controller in any way, and is reuseable anywhere at any time.
now, the rules on the low translator is change a bit different because my current knob there doesnt really work properly so i have to send out some more stuff heh. this is to make 100% sure that it maps, and sometimes it misses it anyways. thinking about replacing it with another knob. aaanyways, should just be as easy as to change them to the same settings as the other rules.
setup:
define your hotkey/midi cc in the "track selection" translator.
map the same button/key to track 1 in ableton live, place an eq3 on the track as the first device (all the way to the left then).
make sure that the X/Y coordinates are correct: i am currently using a 1152x864 resolution running live in fullscreen, so it might not fit for you, but it does for me.
define your midi out cc numbersin the translators cc_low_out, cc_mid_output and cc_hi_output.
it can be used for several track at once, however it doesnt have a demapping function yet.
enjoy.
Todo List:
get someone to clean it up for me
add a demapper preset so it can be used for several track (ie: press 1 to map track 1, press 2 to demap track 1 and map track 2 etc, now it only maps track 2 while still having track 1 mapped aswell).
modifier key for finetuning rather the "normal" tweaks, anyone up for it ?
faster response time: i had quite a bit of trouble figuring out optimal timer settings so that everything positions itself and maps properly before moving to the next parameter/shutting off midimapping mode. its not the biggest deal but a bit faster response time would be great.
Issues:
sometimes it doesnt map properly (however this could be because of my faulty knob, it probably is hehe).
seems like each "instance" of the mapper needs its own timers, rather then using the same ones, hence the "1_" syntax in the timers. not sure why, but it doesnt work properly when having two instances running with the same timers.
if you press you key while touching/accidently tweaking a controller, chances are it will map this to the sessionview, so hit the key wait those whatever 150 or so milliseconds, then touch your controllers
feel free to use/abuse/reuse/re-write this how the hell you want, im just trying to learn this program properly. if anyone knows of a better way of achieving this, please please please do let me know. other then that: have a nice day. ill update when/if i get that demapping thing sorted.
so heres the preset then:
yeah, you can delete the separators and notes etc, its only for me to keep me motivated hehe.
so, i made this macro that work as follows: press your map button (in my case its number pad 1 for track 1), and the macro runs out a sequence of timers sending out some mouse moves, keyboard shortcuts and midi cc outputs.
what does it do?
well, if you press numberpad 1, it selects track in your sessionview mixer, then maps up the 3 knobs (low, mid, hi) on the eq3 on that track, exits midi map and goes back to sessionview..umm.view (this is so that i can continue controlling scene navigation with my hercules without touching the mouse).
why would i want this over a dedicated custom user script and/or mackie emulation?
because this doesnt lock your controller in any way, and is reuseable anywhere at any time.
now, the rules on the low translator is change a bit different because my current knob there doesnt really work properly so i have to send out some more stuff heh. this is to make 100% sure that it maps, and sometimes it misses it anyways. thinking about replacing it with another knob. aaanyways, should just be as easy as to change them to the same settings as the other rules.
setup:
define your hotkey/midi cc in the "track selection" translator.
map the same button/key to track 1 in ableton live, place an eq3 on the track as the first device (all the way to the left then).
make sure that the X/Y coordinates are correct: i am currently using a 1152x864 resolution running live in fullscreen, so it might not fit for you, but it does for me.
define your midi out cc numbersin the translators cc_low_out, cc_mid_output and cc_hi_output.
it can be used for several track at once, however it doesnt have a demapping function yet.
enjoy.
Todo List:
get someone to clean it up for me
add a demapper preset so it can be used for several track (ie: press 1 to map track 1, press 2 to demap track 1 and map track 2 etc, now it only maps track 2 while still having track 1 mapped aswell).
modifier key for finetuning rather the "normal" tweaks, anyone up for it ?
faster response time: i had quite a bit of trouble figuring out optimal timer settings so that everything positions itself and maps properly before moving to the next parameter/shutting off midimapping mode. its not the biggest deal but a bit faster response time would be great.
Issues:
sometimes it doesnt map properly (however this could be because of my faulty knob, it probably is hehe).
seems like each "instance" of the mapper needs its own timers, rather then using the same ones, hence the "1_" syntax in the timers. not sure why, but it doesnt work properly when having two instances running with the same timers.
if you press you key while touching/accidently tweaking a controller, chances are it will map this to the sessionview, so hit the key wait those whatever 150 or so milliseconds, then touch your controllers
feel free to use/abuse/reuse/re-write this how the hell you want, im just trying to learn this program properly. if anyone knows of a better way of achieving this, please please please do let me know. other then that: have a nice day. ill update when/if i get that demapping thing sorted.
so heres the preset then:
yeah, you can delete the separators and notes etc, its only for me to keep me motivated hehe.
Code: Select all
--------------- Preset INS Mapper
Translator 1: track selection
Options: stop=false
Incoming: Keystroke: NUM 1
Outgoing: One-shot timer "1_mouse_low": 0 ms delay
Translator 2: ____________________
Options: stop=false
Incoming: (none)
Outgoing: (none)
Translator 3: ____________________
Options: stop=false
Incoming: (none)
Outgoing: (none)
Translator 4: ____MAPPING________
Options: stop=false
Incoming: (none)
Outgoing: (none)
Translator 5: ____________________
Options: stop=false
Incoming: (none)
Outgoing: (none)
Translator 6: mouse_low_move
Options: stop=false
Incoming: On timer "1_mouse_low"
Outgoing: Mouse move to X=50 Y=700
Translator 7: enter midi map
Options: stop=false
Incoming: On timer "1_mouse_low"
Outgoing: Keystroke: CTRL(M )
Translator 8: left_click_low
Options: stop=false
Incoming: On timer "1_mouse_low"
Outgoing: Left mouse button click
Translator 9: cc_low_timer
Options: stop=false
Incoming: On timer "1_mouse_low"
Outgoing: One-shot timer "1_cc_low": 1 ms delay
Translator 10: cc_low_output
Options: stop=false
Incoming: On timer "1_cc_low"
Rules:
gb=gb+2
if gb<127 then skip next 2 rules
ga=ga+1
gb=0
if ga<=0 then ga=10
gc=ga+10
Outgoing: MIDI B1 0D ga B1 0D gc
Translator 11: mid_trigger
Options: stop=false
Incoming: On timer "1_cc_low"
Outgoing: One-shot timer "1_mouse_mid": 50 ms delay
Translator 12: mouse_mid_move
Options: stop=false
Incoming: On timer "1_mouse_mid"
Outgoing: Mouse move to X=90 Y=700
Translator 13: left_click_mid
Options: stop=false
Incoming: On timer "1_mouse_mid"
Outgoing: Left mouse button click
Translator 14: cc_mid_timer
Options: stop=false
Incoming: On timer "1_mouse_mid"
Outgoing: One-shot timer "1_cc_mid": 15 ms delay
Translator 15: cc_mid_output
Options: stop=false
Incoming: On timer "1_cc_mid"
Rules:
gb=gb+2
if gb<127 then skip next 2 rules
ga=ga+1
gb=0
if ga<=0 then ga=0
Outgoing: MIDI B1 09 ga
Translator 16: hi_trigger
Options: stop=false
Incoming: On timer "1_cc_mid"
Outgoing: One-shot timer "1_mouse_hi": 90 ms delay
Translator 17: mouse_mid_move
Options: stop=false
Incoming: On timer "1_mouse_hi"
Outgoing: Mouse move to X=120 Y=700
Translator 18: left_click_hi
Options: stop=false
Incoming: On timer "1_mouse_hi"
Outgoing: Left mouse button click
Translator 19: cc_hi_timer
Options: stop=false
Incoming: On timer "1_mouse_hi"
Outgoing: One-shot timer "1_cc_hi": 4 ms delay
Translator 20: cc_hi_output
Options: stop=false
Incoming: On timer "1_cc_hi"
Rules:
gb=gb+2
if gb<127 then skip next 2 rules
ga=ga+1
gb=0
if ga<=0 then ga=0
Outgoing: MIDI B1 0A ga
Translator 21: exit_map_timer
Options: stop=false
Incoming: On timer "1_cc_hi"
Rules:
gb=gb+2
if gb<127 then skip next 2 rules
ga=ga+1
gb=0
if ga<=0 then ga=0
Outgoing: One-shot timer "1_exit_map": 4 ms delay
Translator 22: exit map mode
Options: stop=false
Incoming: On timer "1_exit_map"
Outgoing: Keystroke: CTRL(M )
Translator 23: timer for back to session
Options: stop=false
Incoming: On timer "1_exit_map"
Outgoing: One-shot timer "1_back_to_session": 100 ms delay
Translator 24: back to session
Options: stop=false
Incoming: On timer "1_back_to_session"
Outgoing: Keystroke: ALT(UPPIL )
Translator 25: ____________________
Options: stop=false
Incoming: (none)
Outgoing: (none)
Translator 26: ____TODO LIST:______
Options: stop=false
Incoming: (none)
Outgoing: (none)
Translator 27: _Demapper (for track selection)
Options: stop=false
Incoming: (none)
Outgoing: (none)
Translator 28: _Modifier_for_finetuning_
Options: stop=false
Incoming: (none)
Outgoing: (none)
Translator 29: ___Faster response time__
Options: stop=false
Incoming: (none)
Outgoing: (none)
Translator 30: __________________________
Options: stop=false
Incoming: (none)
Outgoing: (none)
Translator 31: ____Known Bugs:__________
Options: stop=false
Incoming: (none)
Outgoing: (none)
Translator 32: _Sometimes (rare) it doesnt map
Options: stop=false
Incoming: (none)
Outgoing: (none)
Translator 33: all cc´s properly
Options: stop=false
Incoming: (none)
Outgoing: (none)
Translator 34: _______________________
Options: stop=false
Incoming: (none)
Outgoing: (none)
Translator 35: seems like each channel map needs
Options: stop=false
Incoming: (none)
Outgoing: (none)
Translator 36: its own set of timers (hence the 1_mouse syntax)
Options: stop=false
Incoming: (none)
Outgoing: (none)