Send zynseq pad groups to same layer (MIDI channel)


I will need zynseq on stage. But I just discovered, that zynseq is implemented in a way that each pad group is required to have its own MIDI channel (why?!?).
In this forum I read that some found a workaround using MIDI FX that does MIDI channel mapping. But I can’t get it to work. I have

  • a fluidsynth instance on layer 3 (MIDI channel 3)
  • I need 3 pad groups
  • I chose the channels 3,4,5 for these groups

Then I started exploring the MIDI FX: I added a new MIDI FX layer (MIDI channel 4), and selected “MIDI channel Map”. In its configuration I mapped channel 4 to 3.
But that does not work as I expected.

Then I added this “MIDI channel Map” as a MIDI FX to my fluidsynth layer (channel 3) and tried the same. This also did not work.

I guess I must miss something obvious. Please help!

Ok, I think I got it. I achieved what I wanted, by having my fluidsynth on layer 3. I added layer 4 and 5 with some MIDI FX (the first in the list…). In the layer options I configured “clone MIDI to…” and selected MIDI channel 3.

This way I can have multiple pad groups in zynseq (and thus playing simultanously) all playing to the same layer.

But still two questions remain:

  • is this the most “zynthianic” way to forward from one MIDI channel to another? I had to create two layers and just because I can not create empty layers I had to add an MIDI effect that I do not use
  • why are the sequence groups linked to MIDI channels? The groups could be defined by any arbitrary number or name. The sequences can have any MIDI channel that is required, without affecting the group membership.

I guess, this is a common use case and that quite some users of zynseq had to search the forum for “MIDI channel mapping” and the like.

Not ranting here, I just can’t stop thinking about music and software! :slight_smile:

Hmm, “frant” might be a funny user name… I’ll think about it :joy:

If you explain what do you want to achieve, perhaps we could figure a zynthianic way of doing it …


1 Like

Sorry, I edited my second post instead of replying… Am I doing it the right way?

Thank you!

Hi @ey77, you can edit posts but it may not be obvious what has changed. It is often best to edit to correct errors rather than change content, ask supplementary questions. (I sometimes edit the last post in a topic in such a way on the basis that someone reading the thread will see the last entry and read it but are unlikely to go back up the thread and re-read each comment in case it has changed.)

Anyway - to your questions…

I think (please confirm) that you want to:

  • Have a single instrument, e.g. Fluidsynth on MIDI channel 3
  • Have several different MIDI sequences simultaneously playing that one instrument

The way you have done this seems like the zynthanic way to achieve this. You have used the flexibility of configuration to make it work how you want.

The conflict between sequencer/group/midi channel and layers receiving only one midi channel is something that we could look at. Grouping sequences by MIDI channel was a way to keep the UI simple. Adding the layer of abstraction you suggest adds complexity but let’s revisit to see if there is a way to achieve this more neatly. (An earlier implementation of the sequencer did have freely assignable groups but it was rather difficult to keep track of and confused users - including me, who wrote it!)

[Edit] Look! You can edit the last post… You will want to consider the behaviour of the engine. If you have several sequences each triggering the same instance of an instrument then one may trigger a note on whilst another triggers a note off which may give unexpected / undesirable results. You could create multiple instances of the same instrument, each on a separate chain which would avoid these problems.

Hi @riban,

thank you for your reply! You exactly summarized what I wanted to achieve.

Being a software developer as well, I greatly appreciate your intention to keep things simple. But the current solution is really confusing and demanding for the user: He has to create artificial MIDI layers, only to forward MIDI messages, because synseq uses the MIDI channel to define the group membership.

I get your point regarding the user interface. What I initially expected is even simpler: Every column is a group. That’s it. Each sequence can be sent to any arbitrary MIDI channel.

If I could choose, I would prefer this simple idea over having to setup layers that catch MIDI events from channels that I otherwise would not need.

What do you think?

Did you look at the Arranger view? ZynPad is configured by default to provide a simple workflow where each pad is a member of a group and that group is in the MIDI channel with the same index as the group. Each column of pads has the same group. If you want a more complex configuration you can use the Arranger view which allows configuration of groups and MIDI channels separately. It also allows multiple tracks to be added to each sequence, each with its own configurable MIDI channel. All tracks in a sequence are in the same group and a sequence is what is triggered by a pad.

See the wiki for a full description of this.

Oh, that sounds interesting! I haven’t used the Arranger yet. I thought it’s a tool, that arranges sequences in a certain order. I will have a look.

For now I got everything working using some “dummy” layers that forward MIDI events. But that does not “feel” right.

But nevertheless, zynthian is sooo cool! :sunglasses:

Thank you!

The arranger is a powerful tool that facilitates several different workflows including multitrack linear and looped playback. Read the wiki for info on it and some suggested workflows that may help to understand different ways it can be used.