private void MidiListenerOnNoteOn(object sender, MidiListener.NoteEventArgs e) { if (MatchKey.Value) { _time = 0; } }
private void MidiListenerOnNoteOn(object sender, MidiListener.NoteEventArgs e) { if (_keys.Count > 0) { UIThread.Instance.InvokeUIAction(() => _keys[e.NoteAbsolute - KKeyStartNum].Press()); } }
private void MidiListenerOnNoteOn(object sender, MidiListener.NoteEventArgs e) { var voice = new Voice(e.NoteAbsolute, Processor); voice.soundEnv.Press(); voice.filter.filterEnv.Press(); Voices.Add(voice); }
private void KeyOnPressFromUI(int num) { var noteEvent = new MidiListener.NoteEventArgs(num, 127); PluginController.MidiListener.NotePressedFromUI(noteEvent); //UILog(string.Format("Key pressed {0}{1} frequency {2:F2} hZ", DSPFunctions.ToNoteName(noteEvent.Note), noteEvent.Octava, // DSPFunctions.GetMidiNoteFrequency(noteEvent.Note, noteEvent.Octava))); }
private void MidiListenerOnNoteOff(object sender, MidiListener.NoteEventArgs e) { var voices = Voices.FindAll(x => x.note == e.NoteAbsolute); foreach (var voice in voices) { voice.soundEnv.Release(); voice.filter.filterEnv.Release(); } }
private void MidiListenerOnNoteOn(object sender, MidiListener.NoteEventArgs e) { if (_pressedNotes.Find(x => x.NoteAbsolute == e.NoteAbsolute) != null) { throw new ArgumentException(); } _pressedNotes.Add(e); OnPressedNotesChanged?.Invoke(this, EventArgs.Empty); }
private void MidiListenerOnNoteOn(object sender, MidiListener.NoteEventArgs e) { var newNote = e.NoteAbsolute; // если уже была нажата нота, нужно скопировать ее фазу, чтобы не было щелчка double time = 0; if (_tone != null) { // фаза от 0 до 1 var tonePhase = DSPFunctions.Frac(_tone.Time * GetToneFrequency(_tone.Note, 0)); // фаза второй ноты должна быть такой же, определим время по частоте time = tonePhase / GetToneFrequency(newNote, 0); } _tone = new Tone { Time = time, Note = e.NoteAbsolute }; }
private void KeyOnPressFromUI(int num) { var noteEvent = new MidiListener.NoteEventArgs(num, 127); PluginController.MidiListener.NotePressedFromUI(noteEvent); }
private void MidiListenerOnNoteOff(object sender, MidiListener.NoteEventArgs e) { _pressedNotes.RemoveAll(x => x.NoteAbsolute == e.NoteAbsolute); OnPressedNotesChanged?.Invoke(this, EventArgs.Empty); }
private void MidiListenerOnNoteOff(object sender, MidiListener.NoteEventArgs e) { UIThread.Instance.InvokeUIAction(() => _keys[e.NoteAbsolute - KKeyStartNum].Release()); }