Idea for MIDIpal type of patch


#1

Hi everyone,
I am new to the community, new to axoloti (received my 1st core two days ago), and new to most of both programming & sound synthesis vocabularies; basically, I am a hands-on type of noise maker* who has decided to jump in at the deep end. So please bare with me...

My question is this: would it be possible to remap separate incoming midi channels to a single outgoing midi channel? (e.g. incoming channels 1-16 forwarded to channel 2 of the connected midi device). This is a feature that I was told the MIDIpal / MIDIbro / MIDIgal offers, so I figured it may well be possible with an axoloti.
I have more or less read what there is to read on this subject in these pages, and I have come across the midi guitar topic and what I am looking for is similar (my sequencer sends 8 tracks as 8 separate channels, which I would like to convert to mono and combine into a single channel - as my midi device receives midi on one channel only), but I haven't come across an object that allows you to identify or detect the various incoming channels, let alone redirect them. I guess the midi/in/script object could be a start if I knew how to write scripts, which I don't.

Well, that's it for my first public post on this forum! Thanks for reading/engaging :slight_smile:

*hands-on type of noisemaker as in banging hammers on electric guitars etc.


#2

welcome... your set for some fun :slight_smile:

yes, you can do what you want with scripting.
basically you need to just route midi/in/* objects to midi/out/* objects (cc,keybd)
if you place these in a subpatch, and in the settings make it a polyphonic multichannel, and select the max number of voices (16).

(ive not tested this, but it should work, as this type of subpatch receives all midi channels)

this is not identical to a midi thru, but its possibly close enough...

if you cant to do a strict midi thru, this is possible by altering the midi script (or my midi thru object), basically you just need to alter the status byte ,
something like

 int8_t out_channel = 0; // channels run from 0...15, not 1-16!)
 status  = status & 0xf0 + out_channel;

please note... sysex cannot be forwarded in this version of the Axoloti firmware.


#3

Thanks @thetechnobear I will give it a go later today and let you know what happens.


#4

It works, every midi channel I select on my sequencer goes through to a single designated channel on the slave device. Since my device is monophonic (Bastl Microgranny), routing 8 tracks to a single channel means there is some interesting noisy side effects and note cut-offs happening. Thanks again!