Exemple #1
0
 private void MidiListenerOnNoteOn(object sender, MidiListener.NoteEventArgs e)
 {
     if (MatchKey.Value)
     {
         _time = 0;
     }
 }
Exemple #2
0
 private void MidiListenerOnNoteOn(object sender, MidiListener.NoteEventArgs e)
 {
     if (_keys.Count > 0)
     {
         UIThread.Instance.InvokeUIAction(() => _keys[e.NoteAbsolute - KKeyStartNum].Press());
     }
 }
Exemple #3
0
        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);
        }
Exemple #4
0
        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)));
        }
Exemple #5
0
        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();
            }
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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
            };
        }
Exemple #8
0
        private void KeyOnPressFromUI(int num)
        {
            var noteEvent = new MidiListener.NoteEventArgs(num, 127);

            PluginController.MidiListener.NotePressedFromUI(noteEvent);
        }
Exemple #9
0
        private void MidiListenerOnNoteOff(object sender, MidiListener.NoteEventArgs e)
        {
            _pressedNotes.RemoveAll(x => x.NoteAbsolute == e.NoteAbsolute);

            OnPressedNotesChanged?.Invoke(this, EventArgs.Empty);
        }
Exemple #10
0
 private void MidiListenerOnNoteOff(object sender, MidiListener.NoteEventArgs e)
 {
     UIThread.Instance.InvokeUIAction(() => _keys[e.NoteAbsolute - KKeyStartNum].Release());
 }