2009/11/9 Athos Bacchiocchi athos.bacchiocchi@tin.it
hi,
i'm working on a little project in which some notes with random pitches and duration appear at random time intervals. Each note is packed in a "midi" format (pitch and velocity), with a note-off event (pitch and zero velocity) sent after the note duration interval.
it can happen that a new note is generated before the previous one has been stopped.That's not a trouble, since i can handle it with [poly], eventually set to 1 voice and with voice stealing to force a "monophonic" melody.
Hi Athos,
Since you want it to be monophonic, why don't you just force a note-off for the previous note, right before the note-on of the new note ? If you want rests inbetween the notes you could also use [pipe]---[pack f 0], and [flush( the [pipe] when a new note arrives, so that if the previous note had not finished yet, the scheduled note-off for it is sent early, before the new note-on... does that make sense ? (attached is an example)
Tim
The problem appears if the new note coming has the same pitch than the
previous one. This is impossible for a "real" midi keyboard, in fact a key can be played again only after it has been released. This leads to an undesired behaviour of [poly]: if there are more than 1 voice, i have the sum of different voices playing the same note, with an undesiderd increase of the volume. Even worse, when the voice is only one, the note-off message of the previous note stops the new note before its assigned time duration!
I tried to set up a strategy to avoid this, but with no results. Any idea?
thanks, athos
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list