I have this with my s_minimoog to emulate how the minimoog keyboard allows lowest notes to be played and automatically changes the frequency to the next highest note when the lowest is let go.
Here’s the keytracking part, you’ll need rjlib and rc-patches for the list abstraction parts (or list-abs where some of them come from).
The basic idea is to keep a running count of the number of keys held down to know when you get a first attack and final release. The second part is to choose the lowest note and I use list unique, list sort, & list map to keep a sorted list of unique notes that I can add and remove from.
Dan Wilcox
@danomatika
danomatika.com http://danomatika.com/
robotcowboy.com http://robotcowboy.com/
On Nov 11, 2014, at 12:28 PM, pd-list-request@lists.iem.at wrote:
From: JC Pedroza <nemesis4go10@hotmail.com mailto:nemesis4go10@hotmail.com>
To: "pd-list@lists.iem.at mailto:pd-list@lists.iem.at" <pd-list@lists.iem.at mailto:pd-list@lists.iem.at>
Date: November 11, 2014 at 7:53:36 AM EST
Subject: [PD] How to add/remove MIDI notes from a list using MIDI in and note on/off?
I need to populate a list with the MIDI notes that are being pressed, and remove the note from the list when the key is released.
One idea is to use [notein], and if the velocity is> 0 then add the note to the list, and if the velocity == 0 then remove the note from the list. But I have no idea of how to implement this.
I think I need [list-extend], [list-find], and [list-delete], but I just can't figure out an implementation.
How can I do this?