Joachim
2020-10-03 20:12:09
Hello.
After study to find a solution to use my Elektron Model:Cycles as a polyphonic synth
with my Midi Keyboard (microKONTROL) I need help.
By pressing any key on the controller I would like to change the outgoing midi channel from 1 to 6 continuously and again....
The topic:
https://www.bomeloft.com/forums/3/11409/dynamically-change-the-midi-channel/
was helpful but it´s unfortuatelly not working. Here is are my settings:
Translator 1
Incoming:
MIDI Message Note On; on any channel variable `gt`, set 'pp' to note
and 'qq' to velocity
Options: [x] swallow MIDI message
Rules: if gt<6 then exit rules, skip Outgoing Action
if gt>6 then exit rules, skip Outgoing Action
Outgoing:
MIDI Message Note On; on any channel variable `gt`, set 'pp' to note
and 'qq' to velocity
Translator 2
Incoming: MIDI Message Note On;
on any channel variable `gt`, set 'pp' to note and 'qq' to velocity
Options: [x] swallow MIDI message
Rules: rr=rr+1
if gt<6 then rr=gt+0
Outgoing:
MIDI Message Note On;on any channel variable `gt`, set 'pp' to note and 'qq' to velocity
Thanks
Joachim
Steve-Bome Forum Moderator
2020-10-03 21:08:17
Hi, by changing output channel continously do you mean:
1) First note output CH1
2) 2nd note output CH2
..
6) 6th note output CH6
Then repeat the behavior? With all notes coming in on MIDI CH 1?
Right now it looks like you have it written the first translator will only send a note if is on MIDI CH7 (MIDI starts with 0 for MIDI CH 1). The second translator will just take an incoming note on MIDI CH 1-7 and output a note on the next channel, but since you are using global variables, the channel never increments more than once.
What would help is if you gave me an example of incoming and outoging behavior.
Steve Caldwell
Bome Customer Care
Also available for paid consulting services: bome@sniz.biz
PS actually gt is a global variable (sorry), also, how do you want to handle note off?
Joachim
2020-10-03 21:30:01
Wow Steve,
thanks for your fast reply.
I would like to use the Cycles like here:
https://youtu.be/csYWGW7Gwo4?t=2134
You`re right everything is coming from (a fixed) channel 1 an going at first to channel 1, further to 2... and after channel 6 it`s starting again.
Jo
Steve-Bome Forum Moderator
2020-10-03 21:54:17
The following should be what you are looking for.
Assign the aliases "My Controller" to your incoming and "My Destination" to your outgoing respectively.
I did this with one translator using raw midi input and output. I often do this to reduce the number of translators required.
The MIDI CH will only increment on note-on. The note-off will follow the same channel as the last note-on so the way it is currently designed is for one note playing at a time.
Here are the rules with comments:
// look for note on or note off. I and with )xE0 and if not 128 it is not a note
rr=oo&224
// It is not a note message
if rr!=128 then exit rules, skip Outgoing Action
// abort if not coming in on MIDI ch 1 - Mask only looking at the MIDI CH part
rr=oo&15
if rr!=0 then exit rules, skip Outgoing Action
// if note-on, then increment channel counter mask Channel 144 (0x90) is note-on
rr=oo&240
if rr!=144 then skip next 2 rules
gt=gt+1
// rotate back to MIDI CH 1 when on MIDI CH6 (remember MIDI ch is 0 based)
if gt>5 then gt=0
// re-assemble status byte for output with new
// MIDI channel Status byte OR'd with MIDI CH
oo=oo|gt
Attachments:
Joachim
2020-10-03 22:35:26
very very nice, thank u.
I didn`t now how many translators I should choose and to use notes is the way to use but after a lot of hours you are my hero. The result with the electron is really great and I hope other people can find help is this thread.
all the best