Bug in MIDI-FX chain?

Hi @jofemodo ,

I am not sure but I think I found a small bug inside the MIDI-FX chain handling.

What I needed: NoizeMaker does not support the sustain pedal. But Robin Gareus midifilter do (see plugin TonePedal). Unfortunately, the version on the Zynthian is too old, which is why I installed the latest version myself:

  git clone https://github.com/x42/midifilter.lv2.git
  cd midifilter.lv2
  make
  sudo make install PREFIX=/usr

After searching for the LV2 plugins again, I integrated the TonePedal via MIDI-FX - but NoizeMaker still doesn’t react to the sustain pedal. But if you use the same setup in MOD-UI (i.e. MIDI-IN → TonePedal → NoizeMaker), then it works!

Questions:
1.) Is it possible that the sustain CC (64) is filtered out in the Zynthian MIDI FX chain?
2.) Is it possibile to update the midifilters in Zynthian-OS to the latest from github?

TIA, Holger

Hi Holger!

All MIDI CC are filtered before they reach chains. Only note data hits the chain. CC is mapped seperately via the MIDI learn process. This means that we suffer from this kind of issue where someone wants to process MIDI CC using MIDI chains but it doesn’t work.

Maybe we could consider an option to allow CC to reach a MIDI chain but this would require a lot of consideration due to the way Zynthian is predicated on this principle.

3 Likes

Some engines will behave badly if we allow CC to pass, but we could have a chain flag to allow this. Perhaps we can have a CC list to check the CC numbers we want. We had something similar for clone feature, so the UI part is almost done.

@C0d3man , please, open a feature request and we would consider to implement it.

Until then, you could find a way by having a pure MIDI-FX chain with the filter plugin and routing the output to the Noizemaker chain. Try it.

Regards,

2 Likes

I doubt this will help because that chain would also not procdess the pedal CC.

This plugin is not part of the Zynthian distribution so I can’t look at it. Is the pedal control exposed in the plugin? If so you may be able to MIDI map the pedal to that control in which case I would expect it to work as desired.

1 Like

Hi @riban !

AFAIK, pure MIDI-FX chains receive ALL MIDI data. They are not like synth chains.

Regards,

1 Like

Regarding x42 plugins, currently we are using the pre-compiled version from faslktx repository.
I just updated the install recipe for oram/bookworm, so they will be installed from source code for the next release.

Regards

2 Likes

I just tried both of these ideas and none work. I wonder whether the plugin actually works as described?

2 Likes

Update: In oram you can create a MIDI chain with MIDI Tonal Pedal and route the output of that chain to another chain with Noize Mak3r and you get the expected behaviour. I don’t think this works in 2401.

Note that the plugin has a flaw that if you press the hold then release the hold, all the notes are turned off. Also you can get stuck notes, e.g. use the hold then play another note for a monophonic sound.

1 Like

Many thanks @jofemodo @riban !

Ok, I understand. This makes sense.

I tried, too. Same problems. But if you create a MOD-UI pedalboard, it works. So I don’t think that the plugin has a problem.

Ah, ok… so it looks like in 2401 the CC64 is filtered in MIDI-Chain, or am I wrong?

Yes… not the best behaviour. But it works for my application. All I have to do is strike a note and press sustain. Then I can play along on the guitar and release sustain at some point (I need this for an intro and the NoizeMaker should hold the sub bass during the intro).

Could you use a toggle?

Done.

1 Like

What do you mean exactly?

Don’t worry. I thought a MIDI Note Toggle plugin might have helped but it still requires converting from CC and the CC To Note plugin looks flawed.

You could do it with a MIDI filter rule:

MAP CH#0 CC#64 => CH#0 NON#60

Of course this affects the hold for that MIDI channel to any chain but maybe you have a device that can perform just this pedal hold or maybe only need this for one part of the performance and can load a snapshot to support it.

Just some more ideas but of course you have probably considered these already.

1 Like

Hm, very nice idea. I just tried, but I cannot get the note to stop when i get off the sustain pedal.

It worked for me on oram and 2401-stable. Do you have any other filters or plugins involved? I have just one chain with just Noize Mak3r in it. I am driving from a MIDI keyboard with sustain pedal. I have tested with USB MIDI and DIN 5 and both have worked fine.

Hi @C0d3man and @riban !

I have implemented a mechanism in oram that allows routing selected CCs into Synth chains. It’s available in chain options as “MIDI CC”.
Note that this is only available for Synth chains because MIDI chains already route all MIDI messages, so it’s not needed.
Also note that using this option could lead to bizarre behaviour with MIDI-controlled engines like fluidsynth, sfizz, linuxsampler, zynaddsubfx, setBfree or Pianoteq. Use it with care.

Regards,

2 Likes

Super cool man! This is a feature that has confused many over the years - me included. Zynthian filters off the CC which isn’t intuitive but is logical, hence the confusion / frustration felt by some. I love that this feature has been added. It needs thorough testing and documentation.

Indeed, we need to spend some time updating the docs with all this wonderful development.

2 Likes