Just stumbled upon this script after looking for some ways to program a Livid Instrument controller I just got. Is it possible to be able to select which MIDI channel is used to send data? I know it says in the documentation that MIDI data is expected to be on channel 0 or 1, but I was wondering if there was a way around that.
Code: Select all
DEFAULT_CHANNEL = 0
I doing the whole weekend nothing else as studying THIS script
Is it possible to send the current values (volume, sends, ect) back to the midi-controller when i change/scroll the track or scenes/clips?
would be cool also if its possible to send colors of the current clip to the controller/button
I am sorry, currently STC does not support MIDI-feedback – STC started out as a helper to get my Kimidi keyboard-shortcuts working and did not need Value-Takeover or MIDI-feedback or clip colors.
STC2 is still a lot of work, but it will be based on Live’s _Framework-Classes, which add Value-Takeover and MIDI-feedback. Regarding clip-colors, I am not sure, if the default _framework-classes support it – I assume it does not easily out of the box, as color-coding is somewhat special: do you just want the states (playing, recording, ready, …) to be color coded or do you need full RGB-support. Also, what hardware does the color coding do – distinct LEDs for e.g. red, green and orange or is it one RGB-LED …
It would be nice to get the current CC Values to my device if i change the Track. Color is not really important if its so difficult.
In other Scripts, they dont work too, i see something like this:
Code: Select all
_LED_OFF = 0x00 _LED_RED = 0x10 _LED_GREEN = 0x20 _LED_BLUE = 0x40 _LED_CYAN = 0x60 _LED_MAGENTA = 0x50 _LED_YELLOW = 0x30 _LED_WHITE = 0x70
Controller-Index (CC-Index): 5
Code: Select all
midi_bytes = (1,5,127) // dont know the order - i dont know anything :-) self.c_instance.send_midi(midi_bytes) self.c_instance.show_message("send_midi > " + str(midi_bytes))
thanks in advance
So you almost have it right, you need bitwise OR (that is the single pipe "|") the channel with the MIDI message type. In STC there are helper values in MIDI.py, that have CC_STATUS and NOTEON_STATUS and NOTEOFF_STATUS ready. They are:
CC_STATUS = 0xb0
NOTEON_STATUS = 0x90
NOTEOFF_STATUS = 0x80
You can either use them inside STC like so:
midi_bytes = (MIDI.CC_STATUS | 1, 5, 127)
Or use them directly (or in any other variable you like):
midi_bytes = (0xb0 | 1, 5, 127)
I hope that helps.
The next step would be to map Live’s API values to MIDI values – that is not necessarily easy, as not all values are evenly distribute between 0 and 1. You need to read the min and max values of a property and also if it is stepped and then AFAIK there is still some special properties such as volume which as far as I can remember do not work linearly.
Youre right! It works. I dont belive that the pipe was the key to get this donewiffbi wrote: midi_bytes = (MIDI.CC_STATUS | 1, 5, 127)
On channel 0 i can Change the Dots (0-127) and with Channel 1 i can change the color of the led... Nice!
Now i take a look to the send values and the volume...
For those looking to use it on a Windows 7 platform (the extended keyboard shortcuts for Live specifically since KIMIDI is Mac-only as of this posting) , BUT can't afford Bome's Midi Translator Pro. The free classic edition will only convert MIDI notes/cc to keyboard shortcut commands, but it WILL NOT do the other way around (I really tried messing around with it to no avail) It will NOT translate keyboard commands to MIDI notes/CC. Which is what we need in order to use STC.
Have the specific keyboard shortcut send the specific MIDI message as indicated in the MIDI Implementation Chart of STC, then have STC control Live as intended.
You may look into MIDI OX and MIDI Keys by Mr. Yellow. Programming can be tricky, as I haven't found any tutorials. (If any of you know where it is kindly share it in this thread.) MIDI Keys will translate keyboard commands to MIDI messages (CC/ notes). Choose your preferred virtual MIDI router, I prefer loopMIDI by Tobias Erichsen. Route the output of MIDI OX messages through the virtual MIDI port - then route virtual MIDI port to STC in Live. It should work.
I downloaded the file from the STC website but can't for the life of me understand how to get this working. Here's what Ive done, can someone please kindly point out anything im missing?
- Downloaded STC, unzipped and moved STC folder to MIDI Remote Scripts folder
- In Ableton preferences I select STC as the control surface with MaschineMK2 set as the input & output
- I open un Maschine Controller Editor software and select say the SOLO button. Following the sheet on the website I set the channel to 1 and the note to C#-2
- Now in Ableton I hit the SOLO button but it doesn't solo the track. I can see in the drum rack it is actually triggering the pad for note C#-2
Have a missed a step or something basic? I browsed through the posts on here but couldn't quite find a 'beginner' walkthrough of how to set this up.
Apologies for my ignorance but any help would be greatly appreciated!
Usually in these cases I will first attempt anything I can possibly get to work first (like if there are consecutive midi cc#'s like 3 in a row for the script, I'll use the middle one and then see which it works with).
In the case of the octave, I'd try an octave Up, I think an octave down is probably not possible.
Make sure you're not using two scripts on the same midi channel at once or you'll have conflicts. Like if one does Notes modes and another uses note mappings, one might interfere. If a script allows you to use another midi channel, you may be able to circumvent that.