Hi Ingo,
I am using a [coll] object to store all notes being played and not yet
released. When the current note is released it recalls the last note that
was stored from the [coll] list by sending something like [end, bang( to
[coll].
You can play as many notes as you want and it will always go back to the
last note played.
When releasing a note (that may not even sound ATM) it gets erased from
[coll] by using [remove $1(. To separate note on / off I use [nroute 0 2].
Note priority in this case is "last" which is all I personally ever need. (I
suppose other priorities can be set by using some sorting options within
[coll].)
In order to avoid other notes cutting off the current note I find the
easiest (monophonic) solution is to add [poly 1 1] right before sound
generation. This sends a note off to the last note played before starting
the new one and avoids double note offs.
I am using this in a rather complex patch. I’ll see if I can extract just
this single part of it if you can't get it to work correctly. Although I
don’t think I’ll be able get to it until next week.
Ingo
________________________________________
Von: pd-list-bounces@iem.at [mailto:pd-list-bounces@iem.at] Im Auftrag von
Joe White
Gesendet: Donnerstag, 21. April 2011 13:48
An: pd-list@iem.at
Betreff: [PD] Midi note handling for monophonic synth
Hi all,
I'm implementing a synth in Pd using midi/notein as an input.
One problem I keep coming up against is handling note off messages. This
guy's blog post describes the issue
- http://kemptonmooney.com/2010/09/pure-data-midi-note-off-solution/
However, I think his solution is not exactly what I'm looking for. The
synths I use in Logic have note priority methods and remember all held down
notes (or at least 10).
I wondering if anyone has managed to implement something like this in Pd or
might know where I can find out more about it.
ddg.mono from Max
(http://www.cycling74.com/docs/max5/refpages/m4l-ref/ddg.mono.html) looks
similar to what I want - but I don't use Max and I don't think I can access
the source.
Any ideas?
Thanks,
Joe