Digitakt MIDI routing issue

Hi,
I have a few (very common) requirements for my MIDI note signals and the Digitakt.
And i’d like to know if i am that stupid or if it is really not possible to achieve those with the Digitakt.

In this scenario i have:

  • a master keyboard sending on channels 1-16
  • the Digitakt with 8 MIDI tracks (using track channels 1-8)
  • 16 synthesizers, each configured to a different MIDI channel

My requirements are:

  1. Playing notes on my masterkeyboard should always produce sound on the synthesizer that matches the masterkeyboards selected channel
  2. Playing masterkeyboards notes on channel 1-8 should be recordable in Digitakts MIDI sequencer
  3. MIDI sequences from the DigiTakt should end up on the synthesizers (1-8) to produce sound
  4. playing any note event on the masterkeyboard must not be fired twice on the synthesizer (on some devices this sound like crap and on some devices it reduces polyphony)

Approach 1 (using MIDI OUT):
Masterkeyboard -> Digitakt MIDI IN -> Digitakt MIDI OUT -> 16 synthesizers
Does not work because playing channels 9-16 on the masterkeyboard does not arrive at the synthesizers

Approach 2 (using MIDI THRU):
Masterkeyboard -> Digitakt MIDI IN -> Digitakt MIDI THRU -> 16 synthesizers
Does not work because notes created in digitakt’s sequencer does not arrive at the synthesizers

Approach 3 (using both MIDI OUT + MIDI THRU signals merged together):
Masterkeyboard -> Digitakt MIDI IN -> Digitakt MIDI OUT -> 16 synthesizers
and Digitakt MIDI THRU -> 16 synthesizers
Not satisfiable because playing note events on the masterkeyboard of channel 1-8 gets fired twice on the synthesizers

So im am missing a configuration MIDI THRU ON|OFF on the digitakt.
A also tried all possible combinations of using USB-MIDI and DIN-MIDI simultaneously. But the described side effects are always the same.

As i own an iConnectivity mioXL i was able to solve the problem using a “Digitakt Bypass route” which filters channel 1-8
Digitakt double fired note workaround

But i really would like to know if my requirements could be met without using additional hardware.
Thank you
bobleeswagger

1 Like

You’re going to need to use the MIDI filter to do this, unfortunately. The DT can’t filter channels, nor can it pass through channels via MIDI out (I believe) that are not assigned to MIDI channels. It’s an issue with all the Elektron boxes. You could look into the Blokas MIDIHub as a smaller filter/merger/thru box, but that would still require another piece of kit (though it may be smaller than your current unit).

How about a midi splitter? Master keys into splitter, splitter out 1 to Digitakt (then DT out to 8 sequenced synths) then use the other midi splits for the other 8 synths.

1 Like

No, your own solution is exacly what I would advise.

Thanks for your replies!
@slicetwo as i already own the hardware which can be used for this ugly workaround i have no need to get another hardware solution. But thank you for the recommendation.
I am just curious if DT is capable without any additional hardware or if my requirements sounds really that special/unusual.
Of course my workaround is pretty unflexible because it requires additional filter configuration of the mioXL when i decide to use any of the other 8 channels on the DT.

@StreetDeezy using a simple MIDI splitter would be exactly the same scenario as Approach 3 from above. wouldn’t it?
This does not meet requirement 4 (avoid double fired notes)

Do you have 8 synths with midi thru? As if i understand you only sequence 8 and the other 8 are for live purposes

If only someone was working on a solution for this…
Oh wait…

i have a mioXL which is a highly configurable flexible merger + splitter + filter, etc.
DT can only handle 8 Synths (channels) simultaneosly. thats enough for me :smiley:
but i dislike my unflexible workaround where i am doomed to sequence those specific 8 synths on the DT. without the flexibility to sequence any of the other 8.

@DreamXcape thanks for MidiRouter-Software recommendation.
but In my pc-less music setup this is not an option for me.

It’s made for raspberry pi with a small touchscreen, exacly for setups like yours.
I’m not gonna push my own software too much, it’ll be free anyway, but I could put you on the tester list if you want.

I’m familiar with iConnectivity, I have a MIDI4+.
Don’t they have mobile versions of their apps now? That would make reconfiguring at least a bit more compact and away from the computer.

@DreamXcape Hmmmmm
Thank you! But i think in my specific case i can build a helper hardware that does not require any user interaction:
I could go with Approach 3 (merging MIDI OUT and MIDI THRU) routing this over an Arduino which filters double fired MIDI events.
It seems dead easy to simply drop identical midi events that reoccurs within in a treshold-time of 1/64th note length. But maybe this approach has some other downsides!?

1 Like

Not even necessary, you can put a note value into memory every time a note on is received. Then ignore every note on that is already in memory or remove from memory when a note off is received.

Or alternatively, make a map in memory for all the 128 keys and set a on/off value for each, then check that instead.

Also, make sure to treat a note on with velocity 0 as a note off.

@DreamXcape Thank you for those ideas & hints!!!
But i think its better to reduce all MIDI events (not limited to NoteOn but also CC’s etc.) to keep the outgoing data stream as small as possible.

OFFTOPIC
I already have some Arduinos in my sound setup:

1 Like

If you want to check for doubles continuously, place the last 3 bytes in memory(queue) and check the next message agains that, if they’re not the same put the current one in memory, and so on.

Assuming double messages come right after each other, or very close, you can limit the memory queue length to the last 12 messages or so(so it still fits nrpn).

That’s probably what I would do.
I’d love to hear a better solution though, mine seems a bit rough.

I like the channel modifier you made. My router software does exactly the same but automatic,
if you map a channel to another channel number, it automatically gets translated to the destination channel.

Also, can I steal some ideas from your clock stabilizer?
My software has a rock solid internal clock, but I want to stabilize the clock from FL Studio(which is a jittery mess).

sure, of course!

1 Like

Thanx!

I don’t know too much C/C++, but I looked at your code and your variable naming and style makes it very readable so I’m confident I can figure it out.

Now i recognized that my ugly workaround adds another huge limitation to my setup:
ModWheel & PitchBend events of channels 1-8 (“managed” by Digitakt) does not end up at the synths :confused:
I am going to double check if i messed things up within my MIDI configuration or if this is related to this heavily discussed topic

It should be possible to set this up in the MioXL Auracle software.

Route Keyboard to Digitakt channels 1-8, no filters.
Route Keyboard to Instrument 1-8, filter all notes.
Route Digitakt channels 1-8 to your instruments, no filters.

Or am I missing something?

1 Like

Do your synthesizers have MIDI thru?

If so:

MIDI keyboard -> synthesizers 9-16 -> Digitakt -> synthesizers 1-8

1 Like

Yes, tweaking the midi event filters indeed removed the limitation.
Thank you!

Pretty simple & straight forward approach i did not think of
But unfortunately no, most of my devices does not have a MIDI THRU