MIDI-FX chain

Iepaaaa!

You can start putting this patches together … MIDI-routing is working and accessible from “layer options” submenu for Special and MIDI-FX layers,

Enjoy!

@mheidt I updated and refreshed the LV2 list… and there it was!

ZynAddSubFX > Guitar > Short
-> Arpeggiator
-> MDA Delay
-> Tal-Reverb
Thanks for the pointer!

Well I have been trying MIDI routing from PD to Synth Layers with no success for over one hour. I tried multiple Synth Engines. Here is one of the many examples I tried. I loaded a PD midi file player patch on MIDI CH#2. This patch contains 24 different midi files and plays them using the PD voice and also sends out midi notes on MIDI CH#1. I then loaded FluidSynth GM/Yamaha Grand Piano on MIDI CH#1. I then long press the PD layer from the Layers Menu and select MIDI Routing. Then I select 1#FS and I see [x] 1#FS, so I know it has been selected. I go back to PD and use the control to select a MIDI file and it begins playing in the PD voice, but not on the FS Yamaha Grand. So I login to a Putty session on my PC and run Patchage. I notice there is no connection from a2j PD midi out 1 to fluidsynth midi_00. So I manually make the connection using Patchage and the midi file starts playing on the FS Yamaha Grand. I then go back to the MIDI Routing Option and try to disconnect the MIDI connection, but it doesn’t disconnect. I go back to Patchage and disconnect the MIDI connection from PD to FS and the Yamaha Piano voice stops playing as expected . While monitoring connections in Patchage I tried to use the MIDI Routing Option just to see if it would route MIDI from PD to Network MIDI Out, but no luck with that either.

Hi @ronsum!

Could you test again? It should work now, but note that events are not translated to different channels. The “MIDI-chain” you route “from” have do this task so the “receiver” layer get the events in the right channel.

Regards,

It’s working! I loaded FluidSynth on CH1 and the MidiFileSynth PD patch on CH2. Then used Midi Routing from 2#PD to 1#FS. I then started the Audio Recorder and changed the FluidSynth voices as the Midi File played.

Now I need to edit the PD patch and YAML file to make it easier to use with the Zynthian before I upload it. I also tested a PD patch named ArpeggioSynth with MIDI Routing, It worked well except when I used the Audio recorder, the controllers quit responding. However, I also added MIDI Chord MIDI FX and it worked like a charm as long as I didn’t try to record. It’s getting late here so I’ll get back to work on this in the morning.

6 Likes

Could you reproduce the Audio Recorder problem? I can’t …

The problem occurs with Tempo control. It works until you start recording. Once you start the Audio Recorder, the Tempo control in the PD patch no longer responds to changes. I haven’t figured out what causes the problem yet. Here are the two patches I have been working with and I have prepared them to work with the Zynthian. They are both Organelle open source patches. I setup both to send Midi notes to CH 1. If there is a reason to make them send notes to a different Midi Channel, just let me know which one and I’ll revise and re-post the patches. The MidiFileSynth will start playing as soon as you select a song number.

MidiFileSynth.zip (358.4 KB)

ArpeggioSynth.zip (178.3 KB)

I brought the problem up in today’s Zynth Club meeting. and @riban thought it could be the Internal Midi Clock was taking control when recording. He was correct, I turned it off and the issue is resolved.

3 Likes

Nice! I will try to solve the problem when MIDI Clock is enabled …

BTW … i just merged midi-chain branch on Master.

So everybody can enjoy the MIDI-chain by simply updating. It would be available in the next nightly builds too …

Regards,

4 Likes

That’s excellent news… I have been wanting to combine the power of a midi arp and the stepseq! Now I can :smiley:

I was a bit confused on how to use this. I enabled a few LV2 MIDI Tools in webconf then added a MIDI-FX Layer on channel 3: #3 JV/MIDI Keysplit. I see that ZynMidiRouter channel 3 is connected to MIDI Keysplit’s input but its output is not routed to anything. It took me a while to figure out you need to use the MIDI Routing option in the context menu of the plugin to route its output. I guess it is just me not being familiar with it yet. I guess we will see something in the docs soon…

It is not clear how to match the MIDI channels. You select a MIDI channel for the MIDI-FX Layer and it will generally listen on that channel so when you route it to an instrument that must sit on a different channel, the instrument will ignore the MIDI-FX chain (wrong MIDI channel). I guess there is something you can do with clone or rules but I would like a simpler solution.

But we do now have a way to add keyboard splits within the Zynthian which is cool and has been requested in the past (here and (here).

This is not the “intended” use-case for MIDI-FXs and it’s not easy to address with the current layer architecture. You have to be creative …

I’m working in a simple & intuitive keyboard split mechanism, so please, a little bit of patience. Until then, better use the MIDI-FX for adding chorders, arppeggiators, adjusting velocity, etc. These are the intended use-cases …

Thanks!

So we can currently use MIDI tools which allow configuration of their output channel or to modify signals entering and leaving the Zynth, i.e. not driving Zynth audio engines? So far I have only got the key split working because it can set output channel for both halves.

Have you tried to add a MIDI FX to your synrh layer from the layer options?

Ah! No! I saw the entry in the main menu to add MIDI-FX layer and started there. I did look at the inverse, i.e. was I able to add a synth layer to a MIDI-FX layer (which seems more logical because it is the flow of signal) but that wasn’t an option. It didn’t occur to me to check if I could insert a MIDI-FX before the synth engine.

Layers is the key concept on Zynthian, so it seems logic to do it on this way. In fact it’s almost the same workflow with Audio-FX. It’s quite symmetric, my friend :wink:

  • You create a layer of a certain type:

    • Synth => Receive MIDI notes, sends audio
    • Audio-FX => Receive audio, sends audio
    • MIDI-FX => Receive MIDI, sends MIDI
    • Audio Generator => With the new categorization system, this could be moved to “Synth”
    • Special => I’m thinking about this …
  • You configure your layer from layer options menu:

    • MIDI clone
    • Transpose
    • Split Keyboard (this is coming very soon!!)
    • MIDI-FX chain
    • Audio-FX chain
    • MIDI Routing (only MIDI-FX layers)
    • Audio Output Routing (all layer types except MIDI-FX & special)
    • Audio Capture (only Audio-FX layers)

Wiki’s cocumentation will be updated ASAP …

Enjoy!

1 Like

Where do we file lv2’s that turn Audio into MIDI…?

I’ve never tried it, but isn’t aubio notes there for that?

Don’t take @wyleu seriously.
He needed an example for an lv plugin that can’t be clearly categorised .
He is a fan of tagging :slight_smile:

2 Likes