public void NoteOff(int channel, int note) { NoteRegistryKey r = new NoteRegistryKey((byte)channel, (byte)note); List<Voice> voice; if (keyRegistry.TryGetValue(r, out voice)) { if (voice.Count > 0) { voice[0].Stop(); voice.RemoveAt(0); } } }