Trait instrument::mode::Mode [] [src]

pub trait Mode {
    fn note_on<NFG>(
        &mut self,
        note_hz: NoteHz,
        note_velocity: NoteVelocity,
        detune: f32,
        note_freq_gen: &NFG,
        voices: &mut [Voice<NFG::NoteFreq>]
    )
    where
        NFG: NoteFreqGenerator
; fn note_off<NFG>(
        &mut self,
        note_hz: NoteHz,
        detune: f32,
        note_freq_gen: &NFG,
        voices: &mut [Voice<NFG::NoteFreq>]
    )
    where
        NFG: NoteFreqGenerator
; fn stop(&mut self) { ... } }

The "mode" with which the Instrument will handle notes.

The Mode manages several areas of logic:

  1. Conversion of input hz to target hz using note_freq_gen and detune.
  2. Distribution of new notes between voices.
  3. Resetting voice playheads on note-offs or voice-stealing.

Required Methods

Handle a note_on event.

Handle a note_off event.

Provided Methods

Handle a stop event.

Implementors