Control selected track \w keyboard shortcuts
Re: Control selected track \w keyboard shortcuts
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
Thank you,
Shawn
Re: Control selected track \w keyboard shortcuts
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
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
Re: Control selected track \w keyboard shortcuts
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.
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.
Re: Control selected track \w keyboard shortcuts
Cool. I'll look into it tonight and just kind of move things around.
Great program.
Thank you,
Shawn
Great program.
Thank you,
Shawn
Re: Control selected track \w keyboard shortcuts
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.
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.
Re: Control selected track \w keyboard shortcuts
I'll take a look at this tonight. It sounds really simple to do. We'll see if I can screw it up.
Thank you,
Shawn
Thank you,
Shawn
Re: Control selected track \w keyboard shortcuts
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
Anyway, thank you again for the insight I'll move the parameters around so I can keep using my other programs.
Thank you,
Shawn
Re: Control selected track \w keyboard shortcuts
Hi Shawn, good to hear, you find your way around it. Have fun!
Re: Control selected track \w keyboard shortcuts
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
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
Re: Control selected track \w keyboard shortcuts
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
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
Re: Control selected track \w keyboard shortcuts
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
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
Re: Control selected track \w keyboard shortcuts
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
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
Re: Control selected track \w keyboard shortcuts
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
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
Re: Control selected track \w keyboard shortcuts
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
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
Re: Control selected track \w keyboard shortcuts
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