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:
- Conversion of input hz to target hz using note_freq_gen and detune.
- Distribution of new notes between voices.
- Resetting voice playheads on note-offs or voice-stealing.
Required Methods
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,
&mut self,
note_hz: NoteHz,
note_velocity: NoteVelocity,
detune: f32,
note_freq_gen: &NFG,
voices: &mut [Voice<NFG::NoteFreq>]
) where
NFG: NoteFreqGenerator,
Handle a note_on
event.
fn note_off<NFG>(
&mut self,
note_hz: NoteHz,
detune: f32,
note_freq_gen: &NFG,
voices: &mut [Voice<NFG::NoteFreq>]
) where
NFG: NoteFreqGenerator,
&mut self,
note_hz: NoteHz,
detune: f32,
note_freq_gen: &NFG,
voices: &mut [Voice<NFG::NoteFreq>]
) where
NFG: NoteFreqGenerator,
Handle a note_off
event.
Provided Methods
fn stop(&mut self)
Handle a stop
event.