[PD] Midi note handling for monophonic synth

Ingo ingo at miamiwave.com
Thu Apr 21 14:36:42 CEST 2011


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 at iem.at [mailto:pd-list-bounces at iem.at] Im Auftrag von
Joe White
Gesendet: Donnerstag, 21. April 2011 13:48
An: pd-list at 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




More information about the Pd-list mailing list