[solved] Change MIDI Channels to Elektron Model:Cycles

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.bome.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 noteand '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

 


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?

 

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

 

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:
1601754855944_Rotate-MIDI-Channes-2020-10-03.bmtp

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

 

Thanks a lot, I’m using this preset to play my Octatrack as polyphonic synth.
The only problem is, that notes “stick”.
If I play two notes at the same time and then release them, one stops, the other continues to hold.
I guess this is because the midi channels gets changed and the first note doesn’t receive a note off anymore…
I have solved this, by adding 4 more translators to translate all note offs to all 4 channels I’m using.
Is there a more elegant way?
Thanks in advance!

Well if your synth supports it, probably the most easy solution is to send an all-notes-off CC 123 every time you release a note.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Thanks, you mean the midi controller?
Would not this stop any still playing note?

Not if you send it just prior to playing the new note. You could use raw MIDI in a single translator to pull it off
Incoming Note-On any MIDI CH set to oo any note set to pp any velocity set to qq

Rules:
// Logic to change MIDI channels omitted her
// assuming converted outgoing channel is variable oo, note is pp and velocity is qq

// Convert Note On to Raw MIDI
rr=0x90|oo
// rr is note message with channel pp is note number and qq is velocity

Outgoing Raw MIDI: B0 7B 7F rr pp qq

Amendment : Not sure if all notes off only affect the MIDI CH you are using so you might need to do this for all MIDI channels

B0 7B 7F B1 7B 7F … BF 7B 7F rr pp qq

And yes, it would stop all currently playing notes. If you don’t want this you will have to set up a mechnism to track all currently playing notes, and on which MIDI channels.