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

_______________________________________________
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list