Axo as MIDI multi clock


#1

Hi gang,
Firstly, my programming skills and technical understanding are hovering just above zero, so please forgive any silly questions.

What I would like to patch is a few (2, 3, maybe 4) separate MIDI clock OUTs - not USB MIDI.
I assume that MIDI being a digital set of messages should be able to be sent to any DIGITAL OUT, not just the default DIN MIDI out.

I found the internal MIDI clock object, found the BPM generator and the midi/out/clock.
The last one has a few choices, but that's where I hit the wall.
DIN is obvious, USB - not interested, internal port 1 and 2 - I read can be sued to send midi to other Axo objects. How?

  • How do I define what is the considered an "internal port 1" of example?

  • Am I able to "steal" the clock from the "internal port 1" and send it to a digital OUT?

Of course I would like to be able to all use the "song position" and set that to for example 8 bars, so I get a phase sync as well as the clock. But that's later - I assume a synced pulse LFO could be used for that.

So, why...
I want to use two sequencers (Akai and Octatrack) both using a synced, but separate clocks, so I can stop one of them, load a new project (while the other is happily playing) and then start it with the new project and have it follow the phase and the clock.
I'm happy to set the BPM for the whole set using the computer, changing BPM live would be great of course, but probably well beyond me.

The more the merrier, but if only 2 can be made "int port 1 and 2" I can live with that.

Any help will be greatly appreciated.


#2

Check this post and also file/community/hug/midi_io from the axo menu
should get you where you want to go, initially at least:


#3

So, if I'm understanding correctly, you want to generate two midi clocks on the axoloti, and then send them out separately to two hardware devices?

I can't help with the digital outputs as I've never done that. (Reubenfinger's link should help with that). But a couple of alternative ideas (both use usb which you say you aren't interested in, but I thought would be worth mentioning) -

  • if one of the devices has class compliant usb midi you could have one connected to din, and one connected to the usb host, and then just use those outputs on the objects.

  • you could use a usb midi interface to give more din outputs. And then send out on the relevant usb host ports. I have a 4 output one that works well with axoloti.

Regarding the internal midi bus - this is just a midi loopback. Whatever is sent to it comes straight back to the the same internal port's input. You can 'steal' the messages and do what you want with them but in this case I'm not sure how this would be better than just sending them straight from the original input, if that makes sense.


#4

You will need a custom object if you wanna use this.

I have one I think, I can post this tomorrow when I’m back home.


#5

Thanks, I may have to use USB for one of the sequencers. I'm "old school" and like the DIN, and only one seq I have has USB.

And, yes, you understood correctly.

Actually using Ableton Link, without the computer, would be good for me, it's stable, solid and has phase sync as well.


#6

Thanks.

@Hugo_Contributions

Yeah, the hardware is no problem, I've built MIDI splitters before.


#7

Hey I realized that my modded midi out object was actually buggy but like this it should be working.

It's a mod of @DrJustice clock tx object. I only did 24ppq, start and stop.

xtra midi clock.axp (1.7 KB)

I also put an exampel of out/cc thin, to understand how to mod factory midi objects to send midi on PA2.

You have to define your midi send in local data:

void SendMidi1(uint8_t b0){
sdPut(&SD2,b0);
}

or like this for 3 bytes

void SendMidi3(uint8_t b0,uint8_t b1,uint8_t b2){
sdPut(&SD2,b0);
sdPut(&SD2,b1);
sdPut(&SD2,b2);
}

And then you just switch MidiSend1 (or 2 or 3) around to SendMidiX, get rid of the devices part and voila your piping out midi on your serial pin!

A more elegant solution would be to send all the midi to the internal port and then mod a thru object to pipe the midi from the internal port, to the serial port. Then you don't have to make a new object each time you wanna use the serial pin.