[PD] Polyphonic voice allocation and sustain pedal

alfonso santimone alfonso.santimone at gmail.com
Sun Jan 3 13:49:12 CET 2021


Another interesting approach here

https://synth-diy.org/pipermail/synth-diy/2014-June/044044.html

www.elgallorojorecords.bandcamp.com/
<https://elgallorojorecords.bandcamp.com/>
soundcloud.com/alfonsosantimone
www.facebook.com/alfonsosantimone


On Sun, Jan 3, 2021 at 12:01 PM alfonso santimone <
alfonso.santimone at gmail.com> wrote:

> Yeah, thanks José.
> Is truly a good approach.
> Another thing i've to think about is how to deal with envelopes
> retriggering at the voice level.
> If the same note is retriggered i guess the approaches can be
> 1. "Hard" retrigger. Quit the previous envelope and start the new one
> 2. "Not so hard" retrigger. Retrigger the new envelope starting from the
> same value reached by the previous envelope.
> 3. "Soft" retrigger. Make a very quick fade out of the previous envelope
> while the new one is starting (but this mode should allocate a new voice so
> the 128 sized array is no more useful)
>
> a.
>
> www.elgallorojorecords.bandcamp.com/
> <https://elgallorojorecords.bandcamp.com/>
> soundcloud.com/alfonsosantimone
> www.facebook.com/alfonsosantimone
>
>
> On Sun, Jan 3, 2021 at 11:44 AM José de Abreu <abreubacelar at gmail.com>
> wrote:
>
>> i had supercollider in mind too, since clone makes it easier to have 128
>> voices around, and this example is something they do in SC tutorials
>> (except the sustain pedal part, but i like this state approach)
>>
>> and not an overkill since switch~ will help, just a different pattern
>> than relying on poly for tags, clone just works as unique tag per voice out
>> of the box
>>
>> Em Dom, 3 de jan de 2021 07:16, alfonso santimone <
>> alfonso.santimone at gmail.com> escreveu:
>>
>>> Thanks Jose',
>>> i used a similar approach in SuperCollider with an array of size 128 for
>>> all the possible midi notes. Probably I should build some abstractions to
>>> deal with array scanning. And to limit the polyphony to given numbers use
>>> another array of size 128 with voice numbers tags. I'll see.
>>> I'm doing some experiment with [else/voices] and [else/suspedal] to.
>>> Alexandre Torres Porres is doing a very good work with Else lib.
>>>
>>> On Sun, Jan 3, 2021, 01:35 José de Abreu <abreubacelar at gmail.com> wrote:
>>>
>>>> maybe you can do it without poly at all
>>>>
>>>> you can clone an abstraction 128 times (and use switch~ to make sure
>>>> the ones without trigger doesn't use your cpu) then voilá, you have one
>>>> address per note in midi, if you want to retrigger you just... retrigger
>>>> it, yay
>>>>
>>>> about sustain pedal, i would do this trick: i would create an array
>>>> with 128 entries and use this: if i press a note, i give the array value 1
>>>> at that index, if note off value 0, BUT IF the sustain pedal is pressed
>>>> instead of giving 0 at note off event, i would give it 2 and prevent the
>>>> note to die, soo, when i release the pedal i check this array and all the
>>>> notes that have state 2 will be released. The ones with state 1 i am still
>>>> pressing so nothing to do. What do you think?
>>>>
>>>> about retriggering, if a note have state 2 and i do a note on, i
>>>> retrigger it and give the state 1 again so sustain pedal doesn't release it
>>>> afterwards
>>>>
>>>> this way you don't need poly and bag, but will need clone and a
>>>> separate interface with arrays and untils to simulate the states of a note
>>>> (0 for no sound and no press, 1 for pressing, 2 for not pressing but
>>>> sustained by the pedal and ready to be released)
>>>>
>>>> Em Sáb, 2 de jan de 2021 14:41, alfonso santimone <
>>>> alfonso.santimone at gmail.com> escreveu:
>>>>
>>>>> Thanks Christof!
>>>>> I surely hope that your proposal will be heard. Those would be
>>>>> essential additions to vanilla's [poly] for polyphonic instrument building.
>>>>> As for the [bag] object i tried but in the way i built the patch it
>>>>> only works if the sustain pedal is pressed before note on arrives. I have
>>>>> to find a way to make it work the same way when is pressed after a note on.
>>>>> The same note retriggering is  another essential feature.
>>>>>
>>>>>
>>>>> www.elgallorojorecords.bandcamp.com/
>>>>> <https://elgallorojorecords.bandcamp.com/>
>>>>> soundcloud.com/alfonsosantimone
>>>>> www.facebook.com/alfonsosantimone
>>>>>
>>>>>
>>>>> On Sat, Jan 2, 2021 at 6:29 PM Christof Ressi <info at christofressi.com>
>>>>> wrote:
>>>>>
>>>>>> Not a direct answer to your question, but I've proposed a few
>>>>>> additional features for the [poly] object, including a [sustain( message:
>>>>>> https://github.com/pure-data/pure-data/pull/661
>>>>>>
>>>>>> For implementing a sustain pedal in Pd vanilla, the [bag] object will
>>>>>> probably help. Unfortunately, I don't have time at the moment to come up
>>>>>> with a full solution.
>>>>>>
>>>>>> Christof
>>>>>> On 02.01.2021 18:07, alfonso santimone wrote:
>>>>>>
>>>>>> Hi all,
>>>>>> i'm trying to build a polyphonic voice allocation patch that include
>>>>>> sustain pedal (MIDI CC(64) ).
>>>>>> Is there any abstraction that i can look into?
>>>>>> My problems are :
>>>>>>
>>>>>> 1. How to deal with [poly] when the same note number is received
>>>>>> (i.e, three C4 in a row)
>>>>>> [poly] always assign a new voice slot to the incoming notes.
>>>>>> I'm trying to make it assign the same voice slot when the same note
>>>>>> number is received consecutively. I guess that i should mess with some
>>>>>> arrays keeping track of note numbers and voice slots.
>>>>>>
>>>>>> 2. How to deal with sustain pedal.
>>>>>> In the "real" world as with keyboard instruments like piano, rhodes
>>>>>> etc. the sustain pedal is used in different ways but the most common one is
>>>>>> to press the pedal immediately after a chord or note is played and then
>>>>>> release it when a new chord is played.
>>>>>> It can be used in more "effect" oriented ways.
>>>>>> Is there any patch or abstraction that i can look into? I guess i
>>>>>> should use a combination of [stripnote] and arrays/table/list to keep track
>>>>>> of the notes on and off events.
>>>>>> How this can be integrated with a polyphonic voice management with
>>>>>> stealing algorithm etc. etc.?
>>>>>>
>>>>>> thanks and all the best
>>>>>> www.elgallorojorecords.bandcamp.com/
>>>>>> <https://elgallorojorecords.bandcamp.com/>
>>>>>> soundcloud.com/alfonsosantimone
>>>>>> www.facebook.com/alfonsosantimone
>>>>>>
>>>>>> _______________________________________________Pd-list at lists.iem.at mailing list
>>>>>> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
>>>>>>
>>>>>> _______________________________________________
>>>>>> Pd-list at lists.iem.at mailing list
>>>>>> UNSUBSCRIBE and account-management ->
>>>>>> https://lists.puredata.info/listinfo/pd-list
>>>>>>
>>>>> _______________________________________________
>>>>> Pd-list at lists.iem.at mailing list
>>>>> UNSUBSCRIBE and account-management ->
>>>>> https://lists.puredata.info/listinfo/pd-list
>>>>>
>>>> _______________________________________________
>>> Pd-list at lists.iem.at mailing list
>>> UNSUBSCRIBE and account-management ->
>>> https://lists.puredata.info/listinfo/pd-list
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20210103/341462ee/attachment-0001.html>


More information about the Pd-list mailing list