The polyphonic portamento chalenge

VST, AU, AAX, CLAP, etc. Plugin Virtual Instruments Discussion
RELATED
PRODUCTS

Post

Hi friends.
Polyphonic portamento is one of the trickiest logical problem, and I wonder if a solution has been found on any synthesizer yet.
Moving from one 6 note cord to another, trying to play notes as together as possible, I noticed that instead of each note moving to the nearest New note, which would be logical, the sliding is somehow random, notes tend to criss-cross, but I believe it is due to the order in which notes are played. I wonder if a polyphonic portamento mode where the distance between each note of a chord could be taken into account, even with a few milliseconds of calculation if needed, Would be possible at all.
I need that for a Peace I’m working on, and I wouldn’t mind if there was a delay to calculate the smartest move between one cord and the next one, because I’m using a patch with a very slow attack anyway. I could of course make six monophonic tracks, but I want to do it live you see. What do you think?
Attached is a small audio example which I made using 6 monophonic tracks with Surge XT. I have other virtual synthesizers, U-HE Diva and Hives, and Serum, but none of them have the fancy voice portamento allocation system that would allow this effect I'm looking for as far as I know.
You do not have the required permissions to view the files attached to this post.
Jean-Philippe Rykiel, the Blind one
My Soundcloud
My Facebook page

Post

Sounds like an MPE capable synth might be a good solution.
I believe there should be a way to quantize your pitches, maybe the first note pressed controls all pitch bends. That's only possible in MPE land.

Also you could consider Gigperformer or even plugin guru Unify. They both have massive midi and CC control capabilities.

Post

In ableton live, you can edit MPE curves in the midi, and several stock synths are mpe compatible.
Makes these kind of slides a no brainer.
For live performance though, not so simple^^

Post

Fluid Chords is basically a polyphonic pitch bender.

You'll need to use the internal synth on the latest version or an MPE capable synth.

Most of Ableton's synths allow for polyphonic pitch bending.

Serum 2 allows you to edit pitch bends in the clip editor.

Post

Note that OP wants to do this playing live, not by drawing in piano roll.

Post

Just had an idea.
For my live performances, I'm using mainstage on Mac.
I would play my 1st chord, hold it with the sustain pedal, and then play the next chord, but the cord would not play until the sustain pedal is released, giving the time for notes to be sorted from lowest to highest. With this be doable with a mainstage script? And would it solve my problem anyway, because the synth I am using would also have 2 allocate notes from lowest to highest to the same voices.
Any idea?
Thanks.
Jean-Philippe Rykiel, the Blind one
My Soundcloud
My Facebook page

Post

This should actually be quite doable with a Kontakt multiscript, too. Even better if it assigns every voice to its own MIDI channel, then you can control up to 16 monosynths, regardless of how they do voice allocation it should work fine if they are set to mono legato with glide...

It would have to add a bit of latency to sort the notes on the first chord you play, too.

Post

EvilDragon wrote: Thu Sep 25, 2025 7:47 am This should actually be quite doable with a Kontakt multiscript, too. Even better if it assigns every voice to its own MIDI channel, then you can control up to 16 monosynths, regardless of how they do voice allocation it should work fine if they are set to mono legato with glide...
Thanks Dragon.
that is really interesting. Do you know who could write such a script for me? And then I would have to look for the right Kontakt library, unless I could control Surge XT with the script.
Jean-Philippe Rykiel, the Blind one
My Soundcloud
My Facebook page

Post

I can give it a shot when I have some free time.

You don't need a Kontakt library, Kontakt can send MIDI out to other plugins. Unsure if this works with AU in Mainstage, though...

Post

Okay. Hold on then. I see if I can ask chat GPT to write a mainstage MIDI script for me. All I need to tell it to do is to assign MIDI channels according to note number right? I hope I can find a clear way to formulate this.
Jean-Philippe Rykiel, the Blind one
My Soundcloud
My Facebook page

Post

In my work as a developer of synths with polyphonic portamento, I have thought about this a lot. But I have not found a good solution. I call it the "chord glide dilemma".

The problem is not so much mathematical as it is physical. When a Note On Event hits the voice logic of a synth, it can not make any predictions about future Note Ons. The voice logic has to decide on the spot, where the pitch of that voice starts from. If another Note On arrives a few milliseconds later, we can't simply renegotiate which voice starts where. That is because the first voice is already heard, and a renegotiation of the portamento starting point could easily mean a sudden jump in pitch. A sudden jump in pitch is an audible artefact, commonly considered a glitch or bug in this case.

I'm not sure any method that involves accumulating notes first, e.g. by the hold pedal, then triggering the portamento is going to be easily implemented or easily usable.

I could think of a solution if the notes are always played in the same sequence. Like, if the chord is always played lowest to highest or vice versa. Let me know if this was an acceptable restriction to the technique.

(in that case, our software should never be crossing pitches btw., but it does not initially preserve the chord)

Post

It is all doable if a bit of latency is accepted on note input (15 ms or so), which allows for buffering chords and then sorting the notes in that buffer. If the sound is a slow attack pad it is more than acceptable.

Another method would be if a voice card based synth would have a reassign (as opposed to rotate) voice assignment that starts reassigning from voice 1 as soon as you lift all keys (as opposed to reassigning a voice only if you play the same key twice while the voice of that same key played previously is still decaying).

Post

Urs wrote: Thu Sep 25, 2025 9:06 am
I could think of a solution if the notes are always played in the same sequence. Like, if the chord is always played lowest to highest or vice versa. Let me know if this was an acceptable restriction to the technique.
@Urs,
yes, playing chords in a slightly arpeggiated way like from lowest to highest is an acceptable solution, although it requires a bit of discipline. Also consider evil dragons comment which I think is something to dig into.
Diva and Hives don't offer these possibilities for the moment anyway, but I would love that to happen in future updates, even if just a few users will find an interest for it.
Best regards,
Last edited by jprykiel on Thu Sep 25, 2025 12:16 pm, edited 1 time in total.
Jean-Philippe Rykiel, the Blind one
My Soundcloud
My Facebook page

Post

EvilDragon wrote: Thu Sep 25, 2025 9:22 am It is all doable if a bit of latency is accepted on note input (15 ms or so), which allows for buffering chords and then sorting the notes in that buffer. If the sound is a slow attack pad it is more than acceptable.

Another method would be if a voice card based synth would have a reassign (as opposed to rotate) voice assignment that starts reassigning from voice 1 as soon as you lift all keys (as opposed to reassigning a voice only if you play the same key twice while the voice of that same key played previously is still decaying).
You may well be right.
Jean-Philippe Rykiel, the Blind one
My Soundcloud
My Facebook page

Post

Consider playing the portamento itself. With a LinnStrument you can practice to move complete chords. Or with a Erae touch you can even make it with your own layout. New ideas might need new instruments.
On the other hand its an interesting challenge as Urs pointed out. I would try to do that with that buffer idea in PlugData if a MPE controller to play it isn’t an option…

Post Reply

Return to “Instruments”