Midi routing with external sequencer?

How to route midi data through Zynthian when you like to integrate an external sequencer in your setup?

My setup:

  • Korg SV-1, master keyboard / stage keyboard
    • connected via USB/midi to Zynthian, midi channel 1
    • unwanted midi cc like program change, etc. is filtered by Zynthians global midi rules. Only cc64 (sustain pedal) can pass.
  • Zynthian, v5.1
    • chain 1: Pianoteq, midi channel 1
    • chain 2: Midi chain, midi channel 1, capture midi from SV-1, output midi to Circuit Tracks
  • Novation Circuit Tracks (sequencer)
    • Midi channels 1…4 and 10 in use
    • can be midi clock slave or master
    • can receive and record midi cc events like cc64 (sustain pedal), if you like

Chain 2 only exists, because I don’t see an option to directly forward midi out data to Circuit Tracks from within chain 1. So I created chain 2. It receives midi data from Korg SV-1 and sends midi data to Circuit Tracks.

I can do recordings from SV-1 with Circuit Tracks, but when I playback the midi data it seems, that Zynthian ignores cc64 (sustain pedal). To dig down this issue, I directly connected my Circuit Tracks to my stage keyboard SV-1 and recorded a sequence. Then SV-1 takes care on recorded sustain pedal events.

It seems that when using Zynthian as a midi router, cc events will probably not be allowed to pass through, although I use an external Sequencer.

Is there another way to send and receive MIDI events, like sustain pedal, sustenuto unfiltered to and from an external sequencer, that is connected to Zynthian?

At this time there exists an “audio out” option inside an instrument chain. Would it then make sense to have a corresponding “midi out” option, so that you don’t need to establish a new chain only to forward midi out data? But maybe I have overseen something in Zynthians documentation.

Suggestions and work-arounds are welcome. :slight_smile:

1 Like

We don’t pass through MIDI on instrument chains to avoid too much undesired data. MIDI passes through the MIDI effects chain to reach the instrument then the audio passes through the audio effects chain and mixer.

As you are doing, we can use a MIDI chain to pass MIDI through an effects chain then to a MIDI destination. This may appear a bit odd/wasteful but gives us much flexibility and consistent (and hence easy to comprehend) signal paths. Hopefully no unexpected back-channel signal flow.

I don’t know why pedals (or other CC) are not being passed through your MIDI chain. They should be. My test here shows that a MIDI chain passes this data. What version of zynthian software are you using? (Show a capture of your webconf dashboard.)

2 Likes

Now I found the issue. It’s not because of Zynthians midi routing, it’s because Circuit Tracks can’t handle continuous sustain pedals!

When I directly connected the Circuit Tracks to my keyboard, it wasn’t my master keyboard Korg SV-1, it was another one that sends simple 0 or 127 cc64 values, nothing in between.
But my main keyboard is the Korg SV-1 with it’s continuous sustain pedal handling. This special sustain cc64 handling drives me crazy :crazy_face:

Now you can say that Zynthian is able to deal with continuous sustain pedals and Circuit Tracks not. :+1:

Now I’m even more excited about the next upcoming features of Zynthian, i.e. when midi events can be processed with it’s built-in sequencer.

Have a nice evening.

1 Like

You could add a MIDI processor in the MIDI chain to limit CC64 values to 0/127. I thought it would be easy and that there would be a processor to do this but I couldn’t find one. You could add 3 “MIDI Scale CC Value” processors in series, each configured:

Filter Channel: Any
Parameter (Min): 64
Parameter (Max): 64
Parameter Mode: Include Range
Value Scale: 10
Value Offset: 0
Value Mode: Clamp to 0…127

This will magnify the value of CC64 by 1000, turning all non-zero values to 127.

Thank for your idea, Brian. I tried it today, but sustain pedal is still not recognized by Circuit Tracks. Because of this I connected my 2nd keyboard again (Vox Continental) via classic midi cables directly to the Circuit Tracks and recorded a short sequence - no sustain pedal event has been recorded. Now I think I did something wrong during my last Circuit-Tracks-sustain-pedal-test.
Now I wrote a request to Novation and ask them directly, because I cannot find anything about this. Circuit Tracks can record know changes and many different cc events, but it seems no cc64 events :frowning:

So I will wait and look forward to midi cc support with Zynseq :slight_smile:

If I receive a message from Novation regarding my request, I will share the info here.

I’ve now received a response from Novation Support: Unfortunately, Circuit Tracks doesn’t support recording CC64 MIDI events (sustain pedal). Only the custom rotary encoders are supported for recording. My request has been included as a feature request. Perhaps recording CC64 events will be supported at some point.

I’m therefore looking forward to the further development of Zynthian, now especially Zynseq and the close and open exchange in this forum.

You might want to update and test whether sustain pedal is recorded in patterns.

Hey Brian, you are fast! :rocket:
I just updated my Zynthian to the latest version and yes, the sequencer records sustain pedal events. I could here them when I deleted all recorded notes and still can here pressing and releasing the sustain pedal. Pianoteq delivers “sustain pedal sound”. It’s a low volume sound, but you hear it.
But when I hear my recorded sequence, it sounds completely different from what I originally played live. Most notes seem to be played without sustaining.
Can recorded cc events be made visible in the piano roll view? When clearing all the visible notes inside a repeatedly played pattern, there still exists previously recorded cc64 events. They influence next note you play. When I select “clear pattern”, then also the recorded cc64 events are gone.

Cheers and have a nice weekend.

@jofemodo added the feature, using some dormant code I put in during early development. It was always on the roadmap. It is our intention to show CC. We need to do some design work.

Add a bug report about CC not being removed. When Clear Pattern is selected, it should remove everything.

[Edit] I just tested and “Clear Pattern” does remove CC as expected.

1 Like

I just added the ability to view and edit CC in the pattern editor. This change is in testing (vangelis). There is a menu option: “Show CC events” which toggles the grid between showing note and showing cc events. When showing cc it behaves similar to notes. There is an event per cell. Vertical axis allows selection of each CC 0…127. Horizontal is the time line. CC may be added and removed by select/tap a cell. Bold select/press shows the parameter editor which allows the value and offset (within step) to be adjusted. The opacity of the cell indicates the value.

This seems like a logical way to present CC similar to notes and gives freedom to add CC events at any step in the pattern. It is simple but gives flexible functionality.

2 Likes

I just did some short tests today after updating to latest vangelis, by just playing 2 chords and pushed/released the sustain pedal twice inside one pattern, played in a loop by Zynseq.

  • first sustain pedal hit (holding it down) is not recorded
  • releasing sustain 1st time is recorded
  • pushing the sustain pedal the 2nd time is recorded, but with a value of 100 instead of 127
  • releasing the pedal 2nd time is recorded.
  • if you switch to cc view, manually clear the recorded cc values an record some, let sequencer continue looping and record new cc64 events, they are not visible. If you switch back from cc view and reenter cc view again, they are visible
  • the only way I recognized to change cc values in pattern view is with up and down keys from the keypad. Potis don’t seem to work right now.

Maybe this kind of behaviour (cc value 100 instead of 127, lost first cc64 change) is because of my special continuous Korg SV-1 pedal? When SV-1 recognizes a cc64 value of 100, release time is not the same like with cc64=127.

I havn’t tried another keyboard with straight binary sustain values - there is not so much time for testing during the week for me.

Have a nice evening.