Zynseq - A native step sequencer

This is the substantial extra work required to support sick a migration that is too much. We have been working on the development for a long while and tried to avoid this decision but to do so would delay development be a long time, possibly more than a year. We don’t want zynthian stagnating that long. Our plan is to get this development out then look at Arranger which may take less time. Trying to maintain several workflows and migration to each is to much work. We always aspire to that but in this instance it is too much effort for too little reward. Of course this impacts a few users’ workflows but I don’t think it is many because Arranger has barely been working for a few years and we have avoided promoting its use.

4 Likes

I know that this post is unaligned with the current flow in the topic :wink:

I have a problem that i’ve been struggling with for some time today, i’ve tried the best i can to find solutions, but (again) i have to go to the mighty gods and ask for their help!

Case: I have a Zaquencer sending some drum pattern to a chain on MIDI CH10. Everything there working fine. At the same time i want to record a pattern in Zynstep while the Zaquencer is sending its drum midi notes. The Zynthian is set to Clock Source: MIDI, and the Zaq sends SYS START, CONTINUE and CLOCK, and that also works , meaning when i hit start on the ZAQ, i can hear the drums playing, the pattern starts to run and i can record some keyboard MIDI notes in the pattern. Except that the drum midi notes the Zaq plays are ALSO recorded in the pattern. I can assign midi channels to both my chains and my pads, and they seem to be correct - the drum is on a fabla chain receiving CH10 and the keyboard is Pianoteq Vintage reeds on CH1. It seems like when your in pattern edit/record mode the pattern editor receives all channels no matter what.

Or is there a way? I cannot find it…

I’ll try rephrase; Does all 16 MIDI channels go to the synstep editor or is it possible to select which ones does and which ones does not.

I have incoming signal from another machine (Zaquencer), and this is going to the editor and i dont want that. I would like to do “live” recording from a midi keyboard and only have those midi notes reaching the editor.

Hi @core.east !

Currently the zynstep records from any source. We have no option to choose the recording device. You should open a feature request to address this.

Thanks!

3 Likes

Thx @jofemodo , it is done.

Maybe the development of Zynbleton interferes with the pattern editor also, and then i think there is no reason to fix this problem in the current version of pattern editor.

Hi all,

I can’t find a hint in the ZynSeq manual if and how I can change the “beats in pattern” option for all patterns or for the whole scene. Is that possible?

The reason I search for this is it seems 4 beats in pattern is default, and if I want to jam on let’s say 16 beats in pattern I have to adjust that for every new pattern I record.

I rarely play music which loops after 4 beats already. So I am searching for an option like “default beats in pattern” or similar.

Sorry, we zynstep doesn’t have this option currently. The reason is there is a lot of pattern parameters and having a configurable “default” option for each one would be itchy.
Anyway, we are considering a different approach to solve this use-case:

  • When entering an empty pattern, options would be “copied” from the last one.

If i didn’t implement this is because our current development version “zynbleton”, allow to solve this quite easily because we now have a simple copy/paste mechanism for patterns, so you only need to copy an “empty pattern with default options” and then “paste” each time you enter an empty pattern. We could still improve this, for instance, marking a pattern as “the reference for default options”, so each time you enter an empty pattern, it copy the options from the reference, etc.

My ears are open to find the better way to solve this.

All the best,

1 Like

Wouldn’t it be cool to have a scene preference of pattern length which would set all empty patterns at once? I’d argue if you start with a sequence you’d want to have all pattern length synced and set a custom length for specific patterns only if there’s a reason to do so (like having 16 beat patterns for all instrumental tracks but a repeated 4 beat pattern for a simple drum groove or so).

Probably this is the case with your particular workflow. But It depends a lot of the type of music you want to create or how you are using the sequencer. Other people would like to change defaults for velocity humanization or swing amount.

Having the possibility of choosing a pattern as “reference for defaults” could be good. First pattern would be the default reference pattern, but you could change if convenient.
So you adjust the first pattern and each time you enter an empty pattern it’s configured like the first one (current reference). But if later you want, you can point the reference to other pattern so new patterns are configured differently.

Regards,

3 Likes

This seems reasonable. I previously just used the Zynthian as a keyboard extender and just recently tried to get more into the ZynSeq, so I’m not yet into it so much. It is however true that in my particular workflow I would also prefer a quick way to have a common swing amount across instruments of my song. Not sure about the other parameters.

So again, I might be wrong on my assumptions not being that familiar with the thing. But the ZynSeq mentions a set of parameters being part of the pattern (taken from wiki):

  • Time signatures
  • Beats
  • Swing
  • Random/humanisation options to time and velocity
  • Probability (note chance)

I understand “pattern” as a particular part of an arrangement within a given track. Assuming in my particular workflow an arrangement can have some common ground regarding time signature, swing and the length of some recognizable parts of it, the current setup of ZynSeq seems to aim at either scenario of these:

  1. An arrangement is a four beat straight loop in 4/4, or
  2. An arrangement is a set of tracks, by default playing different parts with arbitrary grooves. Having the bass playing a 5/16 groove with 60% swing over 7 bars to the drums playing 3/4 straight represents the freedom of the open source community. :innocent:

There is however a huge chance that I just don’t understand the system enough.and, granted: the worlflow I’d have in mind would probably not be in the spirit of friends of generative polyrhythmic music, but for them it wouldn’t add a single UI interaction either, because changing to 5/16, 60% swing from 4/4 no swing needs the same effort as it does from a “scene default” value. So, how often would you have music where different instruments play in different time signatures or swing? There is that kind of music, and it is oftentimes good. But then you’d actively change these preferences.

On the other hand, if I chose to jam on a 16 beat loop with some swimg amount I need to change these settings for every single pattern.

That said: automatically copying pattern preferences from the last used on opening an empty pattern would perfectly work.

One or more patterns fit into a track. A sequence has several tracks. By default a sequence has one track with one pattern.

There are pattern parameters, like steps per beat, beats per pattern, etc. There are sequence parameters, e.g. play mode. There are global (actually bank/scene) parameters, like beats per bar (which is effectively time signature in x/4).

So the time signature is a single setting. The length of each pattern in a sequence and how the sequence behaves when looping is defined within the pattern/sequence. This means that you can set 5/4 timing and it is global but if you set a pattern to have 4 beats and to repeat immediately, it will play poly-rythmically. If you set a pattern to have 4 beats and repeate on the sync-point (bar start) then it will play with the same time signature but pause for the missing beat(s).

There is a lot of flexibility here, but this adds complexity that most users don’t want or care about - hence we simplify to present a default set of sequences in zynpad, with each pad triggering a sequence that has a single track with a single pattern. (Indeed, in the zynbleton development we enforce this - kinda.)

In current version of zynseq (Oram & Vangelis 2025-09-28) we call each bank of sequences (page of pads) a scene. In a later version we will change this so that a scene refers to a row of sequences. I tried adding the ability to change a whole row of sequence (and containing patterns) parameters but it proved challenging to do so in a consistently user friendly and intuitive way. It proved to have fewer benefits than I had expected. There will be a way to change the time signature from a scene launcher pad but configuring this does not (currently) change the sequence parameters.

We won’t change how zynpad in Oram works but, as described by @jofemodo we are considering how to configure patterns and sequences in a more workflow considerate way. Given that zynpad won’t change, and its successor is due to be seen in our testing branch within the next few weeks, it is probably worth pausing discussion here for a while - or to discuss within the context of how things may work in the future implementation of zynseq.

4 Likes

Thanks a lot for the comprehensive explanation!

That seems reasonable. I should try this zymbleton thing.

It seems like a really useful use case to me. I’d be interested how it turnesd out to seem less useful to you really. But like you said, discussion should be postponed until the new sequencer is implemented.

Perhaps instead of changing a set of parameters across different patterns/tracks, one could choose to tie the parameters of a given pattern or track to another one.

For example, by default all patterns and tracks would be independent. However, I could select tracks 2 and 3 to sync with track 1 not just the starting point of a loop (pattern), but also the length / time signature and swing. Once track 1 goes back from 5/4 to 4/4, tracks 2 and 3 would do the same.

I guess this is a variation on "automatically copying pattern preferences from the last used one”. But perhaps it offers more flexibility, while also allowing to cut down on global parameters in favor of per-pattern/per-track parameters (which can get synced if so desired).