Support

If you have a problem or need to report a bug please email : support@dsprobotics.com

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

NEW REGISTRATIONS - please contact us if you wish to register on the forum

Portamento

DSP related issues, mathematics, processing and techniques

Portamento

Postby martinvicanek » Sun Feb 17, 2019 10:05 am

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?
User avatar
martinvicanek
 
Posts: 1315
Joined: Sat Jun 22, 2013 8:28 pm

Re: Portamento

Postby Spogg » Sun Feb 17, 2019 10:58 am

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
User avatar
Spogg
 
Posts: 3317
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: Portamento

Postby adamszabo » Sun Feb 17, 2019 4:55 pm

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.
adamszabo
 
Posts: 657
Joined: Sun Jul 11, 2010 7:21 am

Re: Portamento

Postby martinvicanek » Sun Feb 17, 2019 5:16 pm

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?
User avatar
martinvicanek
 
Posts: 1315
Joined: Sat Jun 22, 2013 8:28 pm

Re: Portamento

Postby tulamide » Sun Feb 17, 2019 6:32 pm

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.
"There lies the dog buried" (German saying translated literally)
tulamide
 
Posts: 2686
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Portamento

Postby Spogg » Mon Feb 18, 2019 8:56 am

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
User avatar
Spogg
 
Posts: 3317
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England


Return to DSP

Who is online

Users browsing this forum: No registered users and 1 guest

cron