Internal midi clock for running sequencer layers?

Ive been playing around with PureData, and Im interested in getting generative midi sequencer type patches working internally on the Zynthian.

The problem is that I cant for the life of me work out how to start a Midi clock so that sequencers etc will start running and then start spitting out notes.

Im using and loving Zynseq, but this is a different use case altogether, though I assume the answer lies somewhere within how Zynseq works.

Ive played with the Midi Clock plugin, but Im not sure if its started or not. I feel like ive been up and down through the forum and manual but Im just not savvy enough to work this out.

Is there a way to start a global midi clock on the zynthian interface and how do I route it to sequencer layers?

I assume the process would look something like:

  • Start global midi clock
  • Route midi from clock to sequencer layer
  • Route midi from sequencer layer to instrument layer
  • Profit?

Any guidance is much appreciated.

Hi @feedbackl00p

There is an internal jack transport and clock which is used by sequencer, MIDI recorder, etc. It is started when sequencer or MIDI recorder starts and is stopped when both are stopped. It provides the clock for jack transport devices including many plugins and synths. This arrangement isn’t ideal but it is quite a complex requirement to allow different modules to control the clock. (That functionality is built in but not implemented for all modules.) So at the moment one must use the sequencer to start / stop clock by running a sequence. This can be an empty sequence if you just want the clock running. Also, the bar length is set within the sequence (Beats per bar) as well as the tempo which can also be set with the MIDI recorder.

A quirk of the sequencer design means that it requires the clock to start and stop for its overall control. As we better understand the integration with other modules we will be able to design and implement a better solution and provide more intuitive control of the internal clock. For now, use a blank sequence and the sequencer page to control the clock.

[Edit] I have not proven this integrates with PureData - you can tell us if that works :wink:.

Many thanks Riban, i will go away to digest and experiment!

I have the same issue with Zynthian.
Already two years ago I was trying to get a proper TEMPO with two decimals like 67.85 BPM for example and it seems this machine is not providing the support.
Then I tried to sync the Zynthian via Ableton by sending a SYNC, but the Zynthian-Sequencer does not start, which makes no sense at all.
If I send a Tempo Sync, then Zynthian gets the exact BPM and the sequencers in Zynthian can get triggered and happy days.
I also don’t understand, why in the world I can only control 1 Layer from my DAW, instead of being able to control all Layers by simply selecting another MIDI Input channel from 1 to 16.
After all these limitations I put the Zynthian in the corner and did not start it again for over a year now.
Yesterday I thought “Why not checking for an update? …maybe they finally got this thing properly set up” and still nothing.
To me this is frustrating and all the JACK explanations make not much sense to me.
If I send MIDI in to Zynthian and if I have 16 Layers in Zynthian, then I can give each layer an individual MIDI channel and I could play 16 channels in the Zynthian via Ableton and if I use the internal sequencers, I simply send a SYNC and off they go, but nothing.
To me this machine is pretty useless… It has the potential to do so much, but for some reason all the gates are closed to properly use it.
If I have 16 layers/channels, then I want to be able to play 16 instruments and it would be a dream.
A simple SLAVE mode would be fantastic too, so I could “at least” program the internal sequencers and get Zynthian in sync with the rest of the studio.
I don’t know how other people use it, but I guess they only play one instrument layer from an external keyboard or via DAW and that’s it.
It is sad.

Hi @Eule! Have you read the user guide on the wiki? Zynthian can run in Omni or multi-timbral modes. Omni (aka Stage) mode allows a single MIDI controller to play the active chain. -Timbral mode allows each chain to be controlled individually by it’s assigned MIDI channel. In either mode the step sequencer plays in multi-timbral mode.

Tempo resolution was changed at your request but very few users need hundredths of a BPM resolution hence we stopped at tenths of a BPM - a pragmatic resolution that meets 99% (or more) users requirements.

Zynthian can act as a sync master but we haven’t yet added a slave mode for MIDI clock. Although that is on the roadmap we have been rather busy improving stability and adding features such as the mixer.

It’s a shame that it isn’t your perfect beatbox and we love hearing user feedback. We try hard to improve things as fast as we can but there are only so many hours in each day - most of which I spend working on this project.

2 Likes

Hi @riban.
Thanks for your amazing work efforts on this project. I can only imagine remotely how much work this takes.
I am sorry, that I didn’t figure out the multitimbral solution earlier.
My fault for complaining without finding this myself earlier.

The tempo issue is understandable from the point of a percentage of users using exact tempos as I do.
I would love to see the SLAVE mode implemented because then I can finally start using the machine properly. Having zynthian as a master is not an option, since I can’t set a useful tempo.
It looks like there are not only full BPM steps possible, which is a real bummer. So, I can’t even get an approximate match to the BPM I need.

Since the machine is multitimbral and can receive external MIDI input I can drop the internal sequencer and effects, which would need a tempo sync, like Delays for example.

I am surprised, that adding a Slave Mode is such a big deal and I am also surprised that not more users have this on the wish list.

Since it has sequencers, an external sync should be a logical step.
Maybe you remember the implementation of the precise master tuning in the MIDI settings. I caused this and this was a big improvement for me. Couldn’t it be also a way to go to add the tempo there as well?
I did set up multiple MIDI settings with all the tuning data I need, and if I could add there the tempo too, this would ship around the issue with the tempo limitations.
I also wonder if I could get a custom update, so I could set up the tempo like 67.84 BPM… I would not mind fiddling with the tempo until I get this. PRESS & HOLD scrolls through the tempo anyway fast, so a change by a single press of 0.01 BPM should not be such a big deal for anyone.

1 Like

Several users have requested this hence it is something we want to implement. I remember describing the complexity of this before but if you or anyone else feels it is simple to implement then please feel free to do so. We appreciate contributions from the community.

2 Likes

@riban I wish I would have enough programming skills to participate in this project.
I have only basic programming knowledge of HTML, PHP, Javascript and Objective-C…
Certainly not enough to do such a specific job.
One last thing I would like to add, concerning the ideology of instrument and software design for artists.
I observe for many decades now, that the majority of manufacturers are not very innovative. It seems like an excuse, that over 90% of the users are just fine with what they get, but isn’t it thinking outside the box, which supports the creative workers?
If we artists get new tools, then we will learn how to use it and we will be able to create new art, which was not possible with the standard stuff.
I discovered natural tunings over twenty years ago and it requires very precise work, which is not supported by most machines and software. Of course, this is frustrating, because one has to get inventive to ship around such limitations.
A very simple example besides the TEMPO and MASTER TUNING issues is TREMOLOS.
Most tremolos offer only very short timing rates, and this is just sooooo weird.
The very basic functionality of a tremolo is making a sound louder and quiet over time and why in the world would one limit the time in such a way, that only some helicopter effects are possible?
I was searching the entire effect pedal world and there is not a single pedal, which can do like 0,001 Hz rates, so I would like to create a nice Pad sound with a synth and have it standing with the sustain pedal, but a simple ever same pad is getting boring quickly. If I add a tremolo, with a sinus over a long period, or like 32 or even 64 bars, then in a live situation the sound becomes more organic.
It seems a super simple application, but nobody does it. I talked to EVENTIDE and they sell machines for hundreds of Euro/Dollars if one can do it remotely than I have a simple tremolo effect for 1 synth for crazy money. I use sometimes up to 10 synthesizers on stage and I know that I can do this with LFOs and software tremolo plugins, but I don’t like to have a computer on the desk when I perform and this simple functionality is not available in any synth and now I am building my own tremolo effect with Arduino and a Pedal Shield.
We have so many new synthesisers flooding the market now, but they all sound the same. No innovation out there. Manufacturers are far behind what artists would like to have.
Yes, the average homebrew musician is just fine with 120 BPM and a 440 Hz master tuning, standard piano and strings and for this, we do not need to develop stuff like a Zynthian.
Don’t just repeat what everyone else does. Be more innovative, please.
I would have lots of useful suggestions, which are not existing yet, but if artists would get it they would learn to love it. It would be a blessing because it would result in new ways of making music and new music eventually.
You, developers, are the masters behind the scenes and we artists rely on innovation. We can only use what we get. It is time to wake up and become more innovative.
It is not acceptable to have only full BPM steps in such a machine in 2022. This is useless unless we get a way to sync the machine from an external source.

Thanks for reading.

https://youtu.be/E3sjvdE1iMk

Zynthian has a lot of familiar / traditional systems - workflows and processes but we do try to innovate too. The sequencer is steeped in old-school step sequencer ideas but implements some unorthodox architectural ideas and workflows which some have criticised (for being off-normal) but I see the bigger picture that, as you say, artists need to learn to use their tools and may discover the benefits that other implementations do not or cannot offer.

Your description of bespoke or niche design reminds me of the collaboration between Michel Geiss and Jean-Michel Jarre. They created new sounds with bespoke designs. This is possible with Zynthian which has MIDI scripting in its Moony plugin and Audio & MIDI visual coding with Pure Data. With just a little (software) engineering knowledge / experience you can do amazing things with sound, all within this little box. Projects need effort and that is either provided by individuals delivering what they want or teams delivering to the masses. To get bespoke engineering you either do it yourself or find someone who will do it for you (usually at some cost). I would recommend you team up with an engineer who is willing and able to customise your hardware for a price you can afford. (That may be just their (free?) time if they share your enthusiasm and vision.)

At Zynthian Towers we have our own enthusiasm for various things and work hard to deliver those ideas. We are often influenced by the community but we need to be pragmatic and implement stuff that will benefit the most within the time we have available to us.

3 Likes

Where can I find information about exactly how to do this ?
After a longer break I am back in the Zynthian world and really enjoying the latest version. Thanks for the continuing work on this great project.

Hi @catherder! Welcome back.

The clock and sync in Zynthian is suboptimal and we need to revisit when we have time. At the moment, the step sequencer and SMF (MIDI) player can start and stop the transport. If either is running then the transport is running. If both are stopped then the transport stops. Tempo may be adjusted from either and is common, i.e. changing tempo in the MIDI player will also change tempo for step sequencer and other slaves.

Some plugins can sync to jack clock which will sync then to this transport.

There is a MIDI Clock output plugin which can be used to create a MIDI clock signal sync’d to t the Zynthian transport.

So currently, to have a clock running continually you need to start a sequence in loop mode.

I tried with the sequencer, but no clock is going out. Do I have to enable “Route MIDI to output ports”? I hope not, because that causes the dreaded MIDI thru loops.

No! You need to add the “MIDI Clock Generator” plugin to a MIDI chain. This is not enabled by default so you will have to enable it in webconf SOFTWARE->LV2 Plugins.

[Edit] You also have to select “Host Sync (if available)” on the “Sync” parameter of the plugin.

2 Likes

Could this be a core feature that can be enabled from admin menu or bond to some current option like “Route MIDI to output ports”?

1 Like

I would like to see much better integration of sync and transport. We ideally want to be able to sync anything to anything. This is a deceptively complex subject but I would really like to get back in there and look at this at some time.

3 Likes

@riban thanks for you help. It is working now - more or less. There is one problem still: The sequencer always sends a “MIDI start” when it loops. I am not sure if this is a bug, but it is a problem, because this is resetting the sequencer of my external hardware synth whenever it loops. This makes it impossible to run sequences of different length in Zynthian and the external synth. I tried various settings in the MIDI generator plugin (clock start/stop, clock start/stop/transport…), but I only seem to have the choice between this unwanted behaviour or no start/stop messages at all. My expectation would be to have a single “MIDI start” sent when I launch the sequence, and a “MIDI stop” when I stop it. Or to go a step further: A generic method to start/stop the transport (MIDI start/stop messages) like the start/stop functionality in the MIDI generator module. I wonder, if it would make sense to remove the transport control from the sequencer module and make the clock generator plugin the clock master and transport control for Zynthian.

I think it actually sends START at the beginning of a pattern then sends POSITION on each loop. You could see if arranger helps. It allows multiple patterns in a sequence making them much longer. Still not ideal but maybe a pragmatic workaround until we have time to revisit clocks.

I checked it with a MIDI analyzer (midisnoop, a Linux program) running on my desktop connected to the Zynthian via a USB MIDI interface and it actually sends START on every loop (or the analyzer interprets the POSITION messages as START what I have not tested).

Hi @catherder …I have similar issues with the Zynthian and as @riban explained the whole implementation of SYNC is an ongoing case for the development team.
I am also waiting for it to arrive, so the full potential of this amazing project can be utilized.
The Zynthian sequencer and syncing options are not compatible with a real-life situation yet.
The only way you can near fully utilize the zynthian right now is by using your DAW and its sequencers, so the zynthian has nothing to do with sequencing, syncing and other tempo issues.
Only if you also wanna use internal effects of the zynthian, like delays, then you might run into the next issues.

For an outsider, the SYNC issue seems a pretty simple and straightforward one, but obviously, it isn’t or the zynthian team would have already implemented it long ago.