Page 1 of 1

Portamento

PostPosted: Sun Feb 17, 2019 10:05 am
by martinvicanek
Please could someone explain how portamento works? I understand portamento is the polyphonic version of glide or slide, where the pitch of a tone is approached from the last played tone's pitch. But how is it done when,say, you play a 5 tone chord, then a 4 tone chord and, while holding it, you add another two notes. This is just one example to illustrate the ambiguity in what is the "previous note" in polyphony.
Is there a standard algo that tells you for each new note where to slide from based on the key pressing history? Some paper where this is explained?

Re: Portamento

PostPosted: Sun Feb 17, 2019 10:58 am
by Spogg
A very interesting question Martin!

I didn’t find any authoritative information on poly Portamento but here is a discussion I found interesting:
https://www.gearslutz.com/board/electro ... mento.html

It seems that the terms Portamento, Glide, Slide and slur are generally interchangeable too.

Monophonic glide is easy and probably the most common, but the algorithms used for poly glide seem to vary from designer to designer.

There is also the concept of “intelligent” Portamento (as discussed in the link above). This would mean that if you play a triad chord in C then the same chord in G, the C voice would glide up to G, the E voice to B and the G voice up to D.

It might help to think about real-world instruments that can achieve this. For example, a violin or a pedal steel guitar. In these you could say that each string is akin to an oscillator or voice. So the algorithm to simulate that would hold a memory of the pitch for a poly channel and when the channel was opened again it would slide from the previous pitch to the new one. However, what would be the previous pitch of a new channel? One way around this is to limit the polyphony to say 4 or 6 voices, but without intelligence it would be difficult for the player to predict what would happen.

Here’s a discussion about emulating the glide of a pedal steel guitar:

https://www.harmonycentral.com/forum/fo ... 18/344683-

I find it a very complex issue and if you or anyone else can add information I’d be very interested.

Cheers

Spogg

Re: Portamento

PostPosted: Sun Feb 17, 2019 4:55 pm
by adamszabo
When I was designing my synth I just took cues of how others do it. When you hold many notes it remembers the last key you pressed (even if you press them at the same time the midi note on information is sequential) and glides from that one to the next. I used the midi mono float output to get the last pitch and I sample and hold it.

Re: Portamento

PostPosted: Sun Feb 17, 2019 5:16 pm
by martinvicanek
adamszabo wrote:When you hold many notes it remembers the last key you pressed (even if you press them at the same time the midi note on information is sequential) and glides from that one to the next.
I was thinking in that direction, too,
I used the midi mono float output to get the last pitch and I sample and hold it.
Don't you get green timing issues?

Re: Portamento

PostPosted: Sun Feb 17, 2019 6:32 pm
by tulamide
Portamento is not the polyphonic version of glide. It may often be used in a polyphonic synth, but that's another story.

Portamento was invented in classical orchestrations. More precisely to define a technique for a singer. In classic orchestral definitions of musical terms, you can find:
Portamento - A mild glissando between two notes for an expressive effect.


There is no mentioning of mulitple (aka polyphonic) notes. And it describes it as a "mild glissando". So what is a glissando?
Glissando - Sliding between two notes.


This means that, while glissando is basically a linear transfer from one note to another (say, C to E), portamento is an "expressive effect" reached through a "mild glissando". Instead of a linear approach, portamento is meant more as a stylizing of an otherwise boring note. In effect, portamento is non-linear (if you will, say it's a short glissando to a then held note). Portamento would already reach and hold E, when glissando is maybe at D

While glissando is meant to slide or glide, protamento is meant to carry a note. For example, a synthetic kick drum based on a sine oscillator, uses portamento over a range of two, three or even more ocatves to create a transient that is followed by a straight deep note.

Maybe these videos can further express the difference.
https://youtu.be/OyDAh2sUl6U
https://youtu.be/VzUABTP0pvA

To summarize, portamento is an exponential glide to the significant note. It has nothing to do with polyphony. It is up to you to support multiple notes, but that still is one portamento per note.

Re: Portamento

PostPosted: Mon Feb 18, 2019 8:56 am
by Spogg
Excellent info tulamide. :ugeek:

I would take issue with one point only; that it doesn’t have to be exponential.

In the early days of analogue synths it was achieved using an R-C type of slugging filter, and that was always exponential and became the classic synth glide. But you can have linear and/or fixed rate or fixed time too.

Cheers

Spogg