Monomachine polymeters/polyrhythms?

Hi there,

one of the reasons I bought Midihub is to try and have Elektron’s Monomachine’s six Internal or External sequencer tracks run at either different speed or for sequences to have different lengths.

The Monomachine can send and receive sequences on different channels, so I was hoping to make it behave like a polyrhytmic/polymetric sequencer.

I tried using per-channel Clock division (filtering out unnecessary channels) but it seems the Monomachine is anyway listening to one master clock message.

Does anyone know how to turn the Monomachine sequencer into a polyrhythmic/polymetric one using Midihub?

Thanks in advance!

Andy

The single byte Clock messages which sync MIDI devices are global for all MIDI devices connected to the same output port - there is no channel assigned to them.

It is only possible to send Clock messages at different rates for entire devices only, using individual output ports.

2 Likes

I thought I would add for those reading along (as this should be obvious to these two posters above) that midi click is simply a tempo given by how frequently the MIDI Clock message is repeated. Since Clock is simply a message sent 24 pulses per quarter note, the speed at which those 24 messages pass is what the tempo is derived from.

As for the poster’s question, you will need to generate midi clock anew for each device or port that is picking up on clock, which means you want something as master that can generate multiple clocks. Innerclock was the defacto standard for many for this for a long time. I haven’t tried doing this with my Midihub by generating it independantly per hardware port, will have to see if it’s capable of that.

Note this is one reason I use Bidule (it has no central master clock or timeline, and is only synched to samplerate).

It’s not strictly necessary that there would be such a multiple clock master, for example, a device like Midihub could accept the clock signal from an external MIDI clock master, and output differently divided rates to its distinct outputs.

Anyway, as long as the sync messages are kept separated on distinct ports, it is possible to make devices run at different sync rates.

1 Like

I suppose we’re used to different things. If there are no tempo changes, then things will stay locked well enough for internal fx and the like to stay synced, but I’ve found with most other solutions when you change clocks it takes time for the derived clock (divided/multiplied) to ‘catch up to’ or slow down to the new clock.

Sync-Gen 3MX — Innerclock Systems along with a Sync-Shift III — Innerclock Systems is my reference for high performance clock.

I have a dsp system (Scope) where I use the (Scope) Modular and Flexor III to send saw ramps into Scope modular and derive clock as audiorate sync there too, and can send that out of midi ports from that as well.

I like my midihub, but is it possible to acheive 5μs with +/1 2μs drift with it?

There’s 2 main things that MIDI clock is used for:

  • Producing MIDI notes or other events once the right multiple of Clocks has been accumulated. This is quite exact and should always be easily in sync when changing the tempo, as long as all devices follow this implementation.

  • Doing time based effects depending on the current BPM, like an LFO synced to the current tempo. As the BPM is never stated directly by the master, it can only be inferred from the recent rate of Clock messages, when the rate changes, this inherently means the BPM estimation must adjust, after a brief instability period, the estimated position should catch up with the new rate, and no further adjustments should be necessary.

    If it’s all within a DAW or a closed system, it may make use of the known set BPM value to transition to the new speed immediately, but if it involves external MIDI devices, that can’t know the current value of the BPM, as it’s not communicated by the MIDI clock master, there’s no way to get around the adjustment period, regardless of what MIDI clock generator you use.

The devices you mentioned, when used for syncing via MIDI, they’d still be bound by MIDI limitations, regardless of how accurate their clocks are. The original question was on how to sync MIDI devices at different clock rates.

1 Like

Thanks everyone for chiming in – I also have the impression this conversation got slightly off topic.

The reason I started this thread is that my monomachine doesn’t allow its 6 sequencer tracks to run at either different speed or different length. I was just wondering if I could do that via MH and it became clear it can’t, as it can only send clock divisons or multiplications to entire devices only.

Should there be a way to do that which I have overlooked, please chime in again :pray:

1 Like

Yeah, this is just the way MIDI clock sync works - the Clock messages are global for the entire port and all of its 16 channels they’re capable of carrying, so the only way this could work is if there’s multiple devices, each connected to different output port chain.

1 Like

Got that right the first time then :wink:

I apologize for taking it off topic, but since you already answered his primary question I was offering some other food for thought.

AndreaT, using Specific trigs and Trigless trigs might offer some of the functionality you want if you use very slow lfo(s) or etc to set the timing of the event(s).

If you were to expand this line of thinking, you might consider using the external inputs along with some sort of ramp or control signal to have at least two additional timing paths that can be assigned to Trigs in combination with above. Checking my links or following my suggestions, it should follow that using techniques like these are analogous to integrating other analog (signal path) and digital systems in terms of multiple sync/clock paths, and this avoids the issue of having only one addressable midi port (midi clock is not channel specific, it is port specific, as AndreaT stated at the beginning–I did not feel the need to expand on this).

I’ll butt out at this point, enjoy.