Korg nanoKontrol Myr - A midi remote script for Live 8

Discuss music production with Ableton Live.
tigali
Posts: 452
Joined: Thu Dec 18, 2008 6:49 pm
Location: Ireland

Re: Korg nanoKontrol Myr - A midi remote script for Live 8

Post by tigali » Fri Nov 20, 2009 4:23 pm

Sorry to be resurrecting this but I can't find the myr script in the midi pane of Live. It is definitely placed in the Midi scripts folder of Live but I can't get it in the midi pane. I'm on a MacBookPro if that's any help.

delicioso
Posts: 1331
Joined: Mon Sep 28, 2009 8:28 pm

Re: Korg nanoKontrol Myr - A midi remote script for Live 8

Post by delicioso » Sat Nov 21, 2009 1:54 am

tigali wrote:Sorry to be resurrecting this but I can't find the myr script in the midi pane of Live. It is definitely placed in the Midi scripts folder of Live but I can't get it in the midi pane. I'm on a MacBookPro if that's any help.
You're looking in the Live app itself (show package contents) and not the remote script folder in Preferences folder, right?

tigali
Posts: 452
Joined: Thu Dec 18, 2008 6:49 pm
Location: Ireland

Re: Korg nanoKontrol Myr - A midi remote script for Live 8

Post by tigali » Sat Nov 21, 2009 11:52 am

Yep. I know it's in the right folder, I was very careful about that but no joy in the midi pane.

tigali
Posts: 452
Joined: Thu Dec 18, 2008 6:49 pm
Location: Ireland

Re: Korg nanoKontrol Myr - A midi remote script for Live 8

Post by tigali » Sat Nov 21, 2009 12:33 pm

Okay, figured it out. It was in the right folder but the wrong version of Live. I was looking for it in the latest version of Live but I'd placed the folder in 8.0.4.
Apologies for time wasting. :oops:

dentaku
Posts: 615
Joined: Wed May 13, 2009 10:42 am

Re: Korg nanoKontrol Myr - A midi remote script for Live 8

Post by dentaku » Thu Dec 17, 2009 3:51 pm

oddstep wrote:Got it - sends[0] is the first send. St8 livecontrol script gave me the idea. Once again, "Nice 1" to myralfur, I would not have known where to look if he hadn't mentioned st8's work.Can't suss how to use a shift button to make the encoder switch to sends[1] though... :(
NICE, I was looking for a way to change PAN to SEND 1.

Now all I need is to figure out how to get the top row of buttons to be
Track On/OFF (without shift)
Solo/Cue (with Shift #1 held which is the 9th button)
ARM (with Shift #2 held which probably can't be the LOOP button because it's a part of Transport.py but what do I know about Python)

Maybe it's possible to make holding down BOTH 9th buttons be SHIFT #2?

Trypset
Posts: 868
Joined: Mon Jan 21, 2008 2:14 pm
Location: Horticulture Dept., Texas A&M

Re: Korg nanoKontrol Myr - A midi remote script for Live 8

Post by Trypset » Wed Dec 23, 2009 2:42 am

thanks so much for this free file. I came, I searched, I found, I increased my productivity+fun.

Thanks man!!! This is the reason I bought the nanoKontrol today!!!
TrypseT
Live 8 Full (not suite), ES-1 MKII, Microkorg, MPC 1000, 2 1200's, Ms. Pinky's, OSX, Edirol FA-101, and a crate 'o' wax

dentaku
Posts: 615
Joined: Wed May 13, 2009 10:42 am

Re: Korg nanoKontrol Myr - A midi remote script for Live 8

Post by dentaku » Sun Dec 27, 2009 11:05 pm

If anyone would like to know, with the help of my cousin who writes software professionally I now have a slightly modified Midi Remote Script named nanoKONTROLMyrDentaku.

I figured out how to change the PAN to SEND [0] easy enough but I don't know anything about Python so today we got LOOP + buttons 1 to 16 to work as track.solo

So... for the top 8 buttons
Default = track.mute
Button 9 modifier + buttons = track.arm
Loop modifier + button = track.solo

It's a shame Live 8 doesn't record solo button automation :(
dentaku wrote:
oddstep wrote:Got it - sends[0] is the first send. St8 livecontrol script gave me the idea. Once again, "Nice 1" to myralfur, I would not have known where to look if he hadn't mentioned st8's work.Can't suss how to use a shift button to make the encoder switch to sends[1] though... :(
NICE, I was looking for a way to change PAN to SEND 1.

Now all I need is to figure out how to get the top row of buttons to be
Track On/OFF (without shift)
Solo/Cue (with Shift #1 held which is the 9th button)
ARM (with Shift #2 held which probably can't be the LOOP button because it's a part of Transport.py but what do I know about Python)

Maybe it's possible to make holding down BOTH 9th buttons be SHIFT #2?

dentaku
Posts: 615
Joined: Wed May 13, 2009 10:42 am

Re: Korg nanoKontrol Myr - A midi remote script for Live 8

Post by dentaku » Fri Jan 01, 2010 2:56 pm

I'm now wishing I could figure out how I can add LOOP + ENCODERS = SEND 2 so I would have control over two sends instead of just one but it looks like it would be more complicated to add than it was adding the LOOP + BUTTONS = track.solo.
dentaku wrote:If anyone would like to know, with the help of my cousin who writes software professionally I now have a slightly modified Midi Remote Script named nanoKONTROLMyrDentaku.

I figured out how to change the PAN to SEND [0] easy enough but I don't know anything about Python so today we got LOOP + buttons 1 to 16 to work as track.solo

So... for the top 8 buttons
Default = track.mute
Button 9 modifier + buttons = track.arm
Loop modifier + button = track.solo

It's a shame Live 8 doesn't record solo button automation :(
dentaku wrote:
oddstep wrote:Got it - sends[0] is the first send. St8 livecontrol script gave me the idea. Once again, "Nice 1" to myralfur, I would not have known where to look if he hadn't mentioned st8's work.Can't suss how to use a shift button to make the encoder switch to sends[1] though... :(
NICE, I was looking for a way to change PAN to SEND 1.

Now all I need is to figure out how to get the top row of buttons to be
Track On/OFF (without shift)
Solo/Cue (with Shift #1 held which is the 9th button)
ARM (with Shift #2 held which probably can't be the LOOP button because it's a part of Transport.py but what do I know about Python)

Maybe it's possible to make holding down BOTH 9th buttons be SHIFT #2?

swishniak
Posts: 1134
Joined: Mon Jan 09, 2006 11:25 am
Location: Berlin

Re: Korg nanoKontrol Myr - A midi remote script for Live 8

Post by swishniak » Sun May 16, 2010 10:45 pm

first another thanks to james for this. ive been using it on alot of different projects and shows. . great script.

but recently ive been thinking it could be possible to consolidate all the functions i need onto one scene.

- first 8 encoders automap to macros
- first 4 sliders automap to the first tracks
- second 4 to 4 sends
- buttons like in the first Myr script (buttons mute / pads trigger)

im not sure how to implement this. tried doing it in the korg kontrol editor, but you cant chanege the channel of particular faders without the pot..

anyone with a tip on how i could easily change this on from the python side? i looked at the scrips and its all looks kinda hairy to me. thanks.

swishniak
Posts: 1134
Joined: Mon Jan 09, 2006 11:25 am
Location: Berlin

Re: Korg nanoKontrol Myr - A midi remote script for Live 8

Post by swishniak » Mon May 24, 2010 11:49 am

any ideas?

Myralfur
Posts: 114
Joined: Wed Feb 18, 2009 4:53 am
Location: London, England
Contact:

Re: Korg nanoKontrol Myr - A midi remote script for Live 8

Post by Myralfur » Mon May 31, 2010 10:00 pm

sorry for the delay in reply, i'm pretty busy with other projects at the moment.

there's no way to change around the functionality easily, without going into the python and editing it. i ran into the same problem with a track of controls on the nanoKontrol all needing to be on the same midi channel.

the script was a quick hack of another one, to be honest i'm still not sure how parts of it work myself.

i am however going to be redeveloping it using the Framework classes and possibly M4L, in M4L at least i'll be able to make it much more customizable.

think we're all stuck with midi mapping over the useful functions for the minute, myself included.

more updates when i can, and i'm glad you're enjoying it :).

oddeo
Posts: 185
Joined: Sat Feb 03, 2007 10:39 pm
Contact:

Re: Korg nanoKontrol Myr - A midi remote script for Live 8

Post by oddeo » Wed Jun 23, 2010 5:26 pm

I am taking my first stab at Python and am wondering if someone can help. I generally understand the "if, then" style of programming, but obviously there is always more to it than that. I have taken Myralfur's code (seen below) and am trying to make a fairly basic change (or so I think). Slider 9 controls master volume on all 4 scenes. I would like for it to continue this functionality on Channel 1 (Scene 1) and Channel 16 (Scene 3) but bypass (transmit incoming messages) for channel 3 and channel 4.

Can anyone tell me what I will need to change in the python script to pull this off?

Thank you, Neil

P.S. I am looking very forward to the M4L version. Any guestimated ETA?




"""

import Live
import MidiMap
from consts import *

class SliderSection:
__module__ = __name__
__doc__ = ' Class representing the sliders on the NanoKontrol '

def __init__(self, parent):
self._SliderSection__parent = parent
self._SliderSection__mod_pressed = False



def build_midi_map(self, script_handle, midi_map_handle):
feedback_rule = MidiMap.CCFeedbackRule()
feedback_rule.channel = 0
feedback_rule.cc_no = NANOKONTROL_SLI9
feedback_rule.cc_value_map = tuple()
feedback_rule.delay_in_ms = -1.0
for channel in range(16):
MidiMap.map_midi_cc_with_feedback_map(midi_map_handle, self._SliderSection__parent.song().master_track.mixer_device.volume, channel, NANOKONTROL_SLI9, MidiMap.MapMode.absolute_14_bit, feedback_rule, 1)

for channel in range(4):
MidiMap.forward_midi_cc(script_handle, midi_map_handle, channel, NANOKONTROL_BUT9)
for slider in range(8):
track_index = (slider + (channel * 8))
if (len(self._SliderSection__parent.song().tracks) > track_index):
feedback_rule.channel = 0
feedback_rule.cc_no = NANOKONTROL_SLIDERS[slider]
feedback_rule.cc_value_map = tuple()
feedback_rule.delay_in_ms = -1.0
MidiMap.map_midi_cc_with_feedback_map(midi_map_handle, self._SliderSection__parent.song().tracks[track_index].mixer_device.volume, channel, NANOKONTROL_SLIDERS[slider], MidiMap.MapMode.absolute_14_bit, feedback_rule, 1)
MidiMap.forward_midi_cc(script_handle, midi_map_handle, channel, NANOKONTROL_BUTTONS[slider])
else:
break

for button in range(8):
Live.MidiMap.forward_midi_cc(script_handle, midi_map_handle, 15, NANOKONTROL_BUTTONS[button])

for slider in range(8):
Live.MidiMap.forward_midi_cc(script_handle, midi_map_handle, 15, NANOKONTROL_SLIDERS[slider])


def receive_midi_cc(self, cc_no, cc_value, channel):
if (list(NANOKONTROL_BUTTONS).count(cc_no) > 0):
button_index = list(NANOKONTROL_BUTTONS).index(cc_no)
if (cc_no == NANOKONTROL_BUT9):
self._SliderSection__mod_pressed = (cc_value == 127)
elif (button_index in range(8)) and (not channel == 15):
track_index = (button_index + (8 * channel))
if (len(self._SliderSection__parent.song().tracks) > track_index):
track = self._SliderSection__parent.song().tracks[track_index]
if (track):
if self._SliderSection__mod_pressed:
track.solo = (not track.solo)
elif track.can_be_armed:
track.arm = (not track.arm)
if self._SliderSection__parent.song().exclusive_arm:
for t in self._SliderSection__parent.song().tracks:
if (t.can_be_armed and (t.arm and (not (t == track)))):
t.arm = False

if track.arm:
if track.view.select_instrument():
self._SliderSection__parent.song().view.selected_track = track

elif (channel == 15):
track_index = (button_index + (8 * 0))
track = self._SliderSection__parent.song().tracks[track_index]
self._SliderSection__parent.song().view.selected_track = track

'''elif (channel == 15):
slider_index = list(NANOKONTROL_SLIDERS).index(cc_no)
track_index = (slider_index + (8 * 0))
track = self._SliderSection__parent.song().tracks[track_index]
self._SliderSection__parent.song().tracks[track_index].mixer_device.sends[0]'''
___________________
Live Suite 12 / Push 3S / MacBook Pro M1 Max 64G RAM / SS Prophet 6 / Moog Minitaur / TR-8S / Zen Delay / BigSky / Yaeltex Custom / APC40 Mk2 / KeyLab Mk2 / BCR2000 / FCB 1010 / UA Apollo 8 / other random gear

Brian Ffar
Posts: 66
Joined: Tue Oct 11, 2005 4:27 am
Location: Chicago
Contact:

Re: Korg nanoKontrol Myr - A midi remote script for Live 8

Post by Brian Ffar » Tue Oct 26, 2010 4:04 am

Myralfur wrote:to be honest i never use panning live either, usually have the encoders mapped to some eq's and tempo for dj'ing. i can see that sends would be a lot more useful to most people so I've been thinking it through.

the best solution i can think of so far would be to have the top row of buttons act as track select when the Loop button is held on Banks 1 and 2. then once you've selected you're track you can hold the Loop/Shift button and the encoders will map to the first 8 sends of the selected track.
First of all, this script is absolutely STUNNING! I've been a mouse-click kind of guy for all these years, and this has singlehandedly allowed me to start thinking of new ways (for me) to control Live. Myr, thank you SO much for all of your hard work - you have changed the way I look at making music.

As for your comment, I definitely think this is also the way to go for sends. I would most likely put this on my Scene 4. Anyone have any ideas or made progress on this item?

Another way to do it would be to control 8 sends from Scene 1 (midi channel 1) by selecting the track (from scene 3 top buttons), and then back to scene 1 where holding shift, as the modifer, would allow you to control 8 sends (i.e. shift + encoder 1 would be send A on the selected track, shift + encoder 2 would control send B on the selected track, and so on).

As for Takeover, I actually have seen this fixed for the NanoKONTROL. I hope nobody minds me mentioning another commercial developer in this thread, but Stray411 (youtube) has developed a whole series of scripts (for pay), and in his videos, he shows that the takeover issue is solved. I'm personally looking for a DIY/open source solution, but if you're willing to pay, it looks like he's got some really impressive work going on at www.nativekontrol.com. I mention this site because it also looks like the 8 sends bank issue is solved as well.

Just an FYI

styro
Posts: 3
Joined: Thu Dec 04, 2008 12:49 am

Re: Korg nanoKontrol Myr - A midi remote script for Live 8

Post by styro » Sat Jan 08, 2011 2:07 am

Hello!
found this script, wow!!! very cool!
tryed to make some modifications and was surprised
that is seems to work... oh gosh another language to learn (why couldent
they choose javascript or perl or something like c)
then i stumbled over the nanokontrol-scene-change-not-pickup-problem...
i think the eazyest way to solve this would be to check if the midichannel
of the last nanokontrol-event has changed -> means new nanokontrol-scene.
and then say live preferences nanokontrol midi-input toggle remote on/off
(then it gets again in pickup-mode.)
the only problem, is there a way to script this, making changes in the MIDI-preferences?
i didnt find something like an api or description that would allow this,
does anyone have a clue for this?
It would also be fun to controll the display zoom factor with a fader :-)

many thanks for any help!

peace
styro

delicioso
Posts: 1331
Joined: Mon Sep 28, 2009 8:28 pm

Re: Korg nanoKontrol Myr - A midi remote script for Live 8

Post by delicioso » Sat Jan 08, 2011 2:20 am

styro wrote:i didnt find something like an api or description that would allow this,
does anyone have a clue for this?
I believe he mentioned in this thread that this script is based on ST8's LiveControl and LiveOSC apps which can be found on the monome forums.

Post Reply