Control selected track \w keyboard shortcuts

Share your favorite Ableton Live tips, tricks, and techniques.
sealpt
Posts: 25
Joined: Mon Apr 04, 2011 12:26 am

Re: Control selected track \w keyboard shortcuts

Post by sealpt » Thu Apr 14, 2011 2:07 am

Well, it looks like it is working so far. I haven't explored all the options yet, but so far, so good.

Thank you,
Shawn

sealpt
Posts: 25
Joined: Mon Apr 04, 2011 12:26 am

Re: Control selected track \w keyboard shortcuts

Post by sealpt » Thu Apr 14, 2011 12:58 pm

Hi Richard,

I do have one question.

Is there a way to disable any of the commands that Control Selected Track is receiving? For instance, like controller 11 or something that was previously assigned in one of my setups for control change for stylus? (controller 11 is just a number and not necessarily the one that is causing a problem.)

What happened was I was messing with stylus and all of a sudden tracks would highlight, or mute, or the metronome would start, things like that. I would notice that the "key" input would flash just like it does when an incoming midi signal is converted to a keystroke. Strange thing was that it didn't seem to do it all the time.

If there isn't a good way to disable just part of the program? I suppose I can always change my controllers for stylus.

Thank you,
Shawn

wiffbi
Posts: 238
Joined: Wed Aug 18, 2004 4:53 pm

Re: Control selected track \w keyboard shortcuts

Post by wiffbi » Thu Apr 14, 2011 3:34 pm

Hi Shawn,

yes, you can "disable" part of the controls (or assign them to other MIDI messages) by editing the settings.py of the MIDI Remote Script (it is inside the folder "Selected_Track_Control", which you had to copy inside the Live package to install the MIDI Remote Script).

Currently, the MIDI Remote Script itself isn't prepared if parts of the settings are missing (but a good idea, I will update it accordingly). But you could make it react to other MIDI CCs. Inside settings.py there are lines telling which action is reacting to which MIDI messages. Like so:

"scroll_tracks": (CC(85), CC(11, ABSOLUTE)),

This makes it possible to scroll through tracks with CC 85 in rel-2-comp (the default) and CC 11 in absolute MIDI CC value mapping. Simply change 11 to whatever MIDI CC suits you to free it for your stylus.



Basically, what I plan to do for the MIDI Remote script is:
1. make it work even when parts of the settings are missing
2. web-interface to create your own settings.py, so one can easily change the MIDI mapping to one’s liking
3. maybe even share these settings.py-files for e.g. common MIDI controllers?

Well, #1 should not take to long. #2 and #3 would be cool to have, but I will need some time – but sounds like a fun little side project.

sealpt
Posts: 25
Joined: Mon Apr 04, 2011 12:26 am

Re: Control selected track \w keyboard shortcuts

Post by sealpt » Thu Apr 14, 2011 4:40 pm

Cool. I'll look into it tonight and just kind of move things around.

Great program.

Thank you,
Shawn

wiffbi
Posts: 238
Joined: Wed Aug 18, 2004 4:53 pm

Re: Control selected track \w keyboard shortcuts

Post by wiffbi » Thu Apr 14, 2011 4:42 pm

Hi Shawn,

ha, this worked out faster than I thought. You can download 1.1.5 from github:
https://github.com/wiffbi/Selected_Trac ... /downloads

Now you can easily disable controls you do not need by simply removing them (or commenting them out). Open settings.py in a plain-text editor and look for the lines looking like:

"scroll_tracks": (CC(85), CC(11, ABSOLUTE)),

Put a # at the beginning of every line, which defines a control you do not want to be mapped. E.g. look at lines 66 to 76 to see how. Also, if you want to keep "scroll_tracks", but not with CC 11, either change CC 11 to another number or delete this definition. Make sure you delete the matching number of () though. It is python and will fail if the code is broken. To remove CC 11 from that definition, it looks like so:

"scroll_tracks": (CC(85), ),

To make it even shorter/easier to read, the following works as well:

"scroll_tracks": CC(85),

I hope that helps.

sealpt
Posts: 25
Joined: Mon Apr 04, 2011 12:26 am

Re: Control selected track \w keyboard shortcuts

Post by sealpt » Thu Apr 14, 2011 7:36 pm

I'll take a look at this tonight. It sounds really simple to do. We'll see if I can screw it up. :mrgreen:

Thank you,
Shawn

sealpt
Posts: 25
Joined: Mon Apr 04, 2011 12:26 am

Re: Control selected track \w keyboard shortcuts

Post by sealpt » Fri Apr 15, 2011 1:53 am

I see how the coding works. I sort of know "lisp" for Autocad and it looks alot like that.

Anyway, thank you again for the insight I'll move the parameters around so I can keep using my other programs.

Thank you,
Shawn

wiffbi
Posts: 238
Joined: Wed Aug 18, 2004 4:53 pm

Re: Control selected track \w keyboard shortcuts

Post by wiffbi » Fri Apr 15, 2011 8:23 am

Hi Shawn, good to hear, you find your way around it. Have fun!

sealpt
Posts: 25
Joined: Mon Apr 04, 2011 12:26 am

Re: Control selected track \w keyboard shortcuts

Post by sealpt » Thu Apr 21, 2011 3:28 am

Hi Richard,

Is there a way to change the midi controller channel number that Control Selected Track is looking for? It works well transmitting on channel 1, but not so much on other channels.

In your settings file it says

"Note: if you want to use a different MIDI channel than the default one, then you have to fully qualify all parameters"

How and where is this done?

Thank you,
Shawn

wiffbi
Posts: 238
Joined: Wed Aug 18, 2004 4:53 pm

Re: Control selected track \w keyboard shortcuts

Post by wiffbi » Thu Apr 21, 2011 12:42 pm

Hey Shawn,

the simplest way would be you download the latest release 1.1.6 from github and change the DEFAULT_CHANNEL in the file MIDI.py (line 8 ) to your liking (note that MIDI channels are 0-based, so 0-15 and NOT 1-16).

You only need to overwrite the MIDI.py file in you current installation, so no need to update your settings.py. So you could actually grab just that file from github:
https://github.com/wiffbi/Selected_Trac ... er/MIDI.py


If you want to change the MIDI channel not globally but for certain commands only (or use the same settings.py for multiple devices), then you can edit the settings.py (as you described):

when you define a shortcut e.g. like so:

Note(8)

STC listens to Note #8 on the default channel (1). "Note" is a python class, that also accepts a second parameter: midi-channel. So to make STC listen to another channel (e.g. channel 10) for that Note, just write:

Note(8, 11)

** Note that the channel is a 0-based index, so channels go from 0-15 and NOT 1-16.

CCs are a bit more complicated as they have a third parameter: mapping-mode. This one describes what MIDI information your controller is sending (basically absolute or relative – the latter one has several implementations as to how relative is mapped to the value range of MIDI’s 0-127).
So instead of

CC(85)

you write

CC(85, RELATIVE_TWO_COMPLIMENT, 11)

Possible mapping modes are: ABSOLUTE, RELATIVE_BINARY_OFFSET, RELATIVE_SIGNED_BIT, RELATIVE_SIGNED_BIT2, RELATIVE_TWO_COMPLIMENT (see MIDI.py for how values are interpreted)

I hope this helps.
Cheers, Richard

sealpt
Posts: 25
Joined: Mon Apr 04, 2011 12:26 am

Re: Control selected track \w keyboard shortcuts

Post by sealpt » Thu Apr 21, 2011 12:55 pm

Hi Richard,

Thank you for your reply. And thank you for making it completely clear on what I have to change where. I'll give it a shot when I get home tonight and let you know.

Thank you again,
Shawn

sealpt
Posts: 25
Joined: Mon Apr 04, 2011 12:26 am

Re: Control selected track \w keyboard shortcuts

Post by sealpt » Fri Apr 22, 2011 2:09 am

Hi Richard,

That midi channel number change worked like a champ. Thank you very much for the information.

I have just one more question. Is there a way for a user like myself to be able to program my own keys in the Contol Select Track? That is to say, There are key commands that I would like to have like Delete, Add Stop, things like that? Is that any easy thing that I could do.

Reason is, I don't want to keep bugging you when I want to put something else there that isn't there yet.

Is that do-able, or is it just what it is.?

I'm just asking.

Thank you again for a fantastic application.
Shawn

wiffbi
Posts: 238
Joined: Wed Aug 18, 2004 4:53 pm

Re: Control selected track \w keyboard shortcuts

Post by wiffbi » Fri Apr 22, 2011 10:10 am

Hi Shawn,

STC accesses Ableton Live’s Python API, so basically you can do whatever the API offers. There isn’t any official documentation, but a dump is here:

http://relivethefuture.com/code/live/apidocs/
http://monome.q3f.org/browser/trunk/Liv ... /live8.txt

Also check out this great post about Framework-Classes available in Live since v.7 (although STC doesn't use them but uses the API directly):
http://remotescripts.blogspot.com/2010/ ... asses.html

As for your question: I do not know whether there is a way to trigger "delete" via the API. I think for this, you need another app, that converts MIDI into keystrokes. Check this out (if you are on Mac OS X): http://www.charlie-roberts.com/midiStroke/

I hope that helps.
Richard

Vidamus
Posts: 2
Joined: Fri Apr 17, 2009 11:43 am

Re: Control selected track \w keyboard shortcuts

Post by Vidamus » Fri Apr 22, 2011 11:19 am

Hi Richard,

I found your site today while i was digging around for information on how to code a "stop selected track" feature into my own MIDI Remote Script. I downloaded your script to see how you did it and I gotten tons of really good info from reading your code. I now understand how setting your own MIDI mappings works! Thank you so much!

I have a question though, On my Akai MPK61 I assign some functions to the drum pads such as "tempo tap" and "toggtle metronome. The drum pads are "note" values with velocity. I would like the functions to trigger for any velocity value greater than 0. However when Live calls my receive_midi() function and gives me the MIDI message the velocity (third data byte) is always either 0 if the note velocity was 0 to 63 or a 1 if note velocity was 64 to 128.

I have chedcked the output of my keyboard from MIDI OX and it is definitely outputting the full range of velocity values, however in Live by the time my scripts receive_midi() gets called the velocity data has been reduced to a 0 or 1.

Why does Live do this? Do you know of any other way to retrieve the note velocity?

Thanks for your time,
Sam

sealpt
Posts: 25
Joined: Mon Apr 04, 2011 12:26 am

Re: Control selected track \w keyboard shortcuts

Post by sealpt » Fri Apr 22, 2011 1:00 pm

wiffbi wrote:Hi Shawn,

STC accesses Ableton Live’s Python API, so basically you can do whatever the API offers. There isn’t any official documentation, but a dump is here:

http://relivethefuture.com/code/live/apidocs/
http://monome.q3f.org/browser/trunk/Liv ... /live8.txt

Also check out this great post about Framework-Classes available in Live since v.7 (although STC doesn't use them but uses the API directly):
http://remotescripts.blogspot.com/2010/ ... asses.html

As for your question: I do not know whether there is a way to trigger "delete" via the API. I think for this, you need another app, that converts MIDI into keystrokes. Check this out (if you are on Mac OS X): http://www.charlie-roberts.com/midiStroke/

I hope that helps.
Richard

Thank you so much for the help Richard. I'll check those out this weekend.

I actually have the charlie-roberts app but was using these applications with two users at the same time with two different controllers at the same time. The midistroke only allowed for one input, where your app would work with as many controllers as we had. We actually found a possible way around the problem by using midi merge in my friends interface so that he and I are coming in on the same input, thus solving the problem. We are going to test this out tonight I hope.

Anyway, I think your product and help are top notch and I thank you very much.

Shawn

Post Reply