347 Midi(Stream& stream);
366 void NoteOn(
const uint8_t channel,
const uint8_t midi_note,
const uint8_t z);
381 void NoteOff(
const uint8_t channel,
const uint8_t midi_note);
400 void SetChannelTimbre(
const uint8_t channel,
const uint8_t bank,
const uint8_t timbre);
414 void PitchBend(
const uint8_t channel, uint16_t pitch_bend_value);
429 void PitchBendRange(
const uint8_t channel,
const uint8_t pitch_bend_range_value);
496 void SetReverberation(
const uint8_t channel,
const uint8_t reverberation_type,
const uint8_t reverberation_volume,
const uint8_t delay_feedback);
517 const uint8_t chorus_effect_type,
518 const uint8_t chorus_effect_volume,
519 const uint8_t chorus_effect_feedback,
520 const uint8_t chorus_delay_time);
535 void SetPanPosition(
const uint8_t channel,
const uint8_t pan_position_value);
565 void SetTuning(
const uint8_t channel,
const uint8_t fine_tuning,
const uint8_t coarse_tuning);
583 void SetVibrato(
const uint8_t channel,
const uint8_t vibrato_rate,
const uint8_t vibrato_depth,
const uint8_t vibrato_delay_modify);
599 void SetTimeVaryingFilter(
const uint8_t channel,
const uint8_t cutoff,
const uint8_t resonance);
617 void SetEnvelope(
const uint8_t channel,
const uint8_t attack_time,
const uint8_t attenuation_time,
const uint8_t release_time);
662 Midi& operator=(
const Midi&) =
delete;
664 void Write(
const uint8_t data);
666 void Write(
const uint8_t* buffer,
const size_t size);
668 void SendNrpnOrRpnParameter(
const uint8_t channel,
669 const uint8_t most_significant_byte_controller,
670 const uint8_t most_significant_byte,
671 const uint8_t least_significant_byte_controller,
672 const uint8_t least_significant_byte,
673 const uint8_t value);
675 void NullNrpnOrRpn(
const uint8_t channel,
const uint8_t most_significant_byte_controller,
const uint8_t least_significant_byte_controller);
void SetTimeVaryingFilter(const uint8_t channel, const uint8_t cutoff, const uint8_t resonance)
Set Time Varying Filter (TVF).
void SetChannelTimbre(const uint8_t channel, const uint8_t bank, const uint8_t timbre)
Change the tone of the specified channel. Among them, channel 9 is a dedicated drum channel,...
void SetEqualizer(const uint8_t channel, const EqualizerParameter &equalizer_parameter)
Set up a four segment equalizer.
void SetChannelVolume(const uint8_t channel, const uint8_t volume)
Set specific channel volume.
void SetScaleTuning(const uint8_t channel, const ScaleTuningParameter &scale_tuning_parameter)
Set the 12 scale tuning parameters for the specified MIDI channel (independent pitch offset for each ...
void AllDrums()
Activate all drum channels and set all 16 MIDI channels (0-15) as drum channels.
void SetPanPosition(const uint8_t channel, const uint8_t pan_position_value)
Set the pan position.
void SetEnvelope(const uint8_t channel, const uint8_t attack_time, const uint8_t attenuation_time, const uint8_t release_time)
Set envelope parameters.
void SetModulationWheel(const uint8_t channel, const ModulationWheelParameter &modulation_wheel_parameter)
Set modulation wheel parameters and configure multiple control effects for modulation wheel sound.
void PitchBendRange(const uint8_t channel, const uint8_t pitch_bend_range_value)
Set the pitch bend range (sensitivity).
void SetChorus(const uint8_t channel, const uint8_t chorus_effect_type, const uint8_t chorus_effect_volume, const uint8_t chorus_effect_feedback, const uint8_t chorus_delay_time)
Apply a chorus effect to a specified channel.
void ChannelAllNotesOff(const uint8_t channel)
Send a noteOff() for each note on the specified channel.
void NoteOff(const uint8_t channel, const uint8_t midi_note)
Close the note in the specified channel, which was previously opened at a given pitch using the noteO...
void SetAllChannelVolume(const uint8_t volume)
Set the volume for all channels.
void SetReverberation(const uint8_t channel, const uint8_t reverberation_type, const uint8_t reverberation_volume, const uint8_t delay_feedback)
Apply reverberation effect to the specified channel.
void NoteOn(const uint8_t channel, const uint8_t midi_note, const uint8_t z)
Generate the given MIDI note on the designated channel (0-15).
Midi(Stream &stream)
Constructor.
void MidiReset()
MIDI system reset sends MIDI system reset command (0xFF) to reset all connected MIDI devices to their...
void PitchBend(const uint8_t channel, uint16_t pitch_bend_value)
Bend the pitch upwards or downwards, with a default swing of+/-1 semitone.
void SetTuning(const uint8_t channel, const uint8_t fine_tuning, const uint8_t coarse_tuning)
Set tone (coarse/fine).
void SetVibrato(const uint8_t channel, const uint8_t vibrato_rate, const uint8_t vibrato_depth, const uint8_t vibrato_delay_modify)
Set vibrato parameters.
Define constants for reverberation effect types and chorus effect types.
MIDI note numbering definition (0-127), including all MIDI note numbering from C-1 (0) to G9 (127).
Define the percussion timbre and note constants for channel 9.
Define channel timbre library constants and timbre constants.
Equalizer parameter structure.
uint8_t medium_high_frequency
Medium-high frequency center value (0-127).
uint8_t medium_low_frequency
Medium-low frequency center value (0-127).
uint8_t medium_high_frequency_gain
Medium-high frequency gain value (0-127).
uint8_t low_frequency
Low frequency center value (0-127).
uint8_t high_frequency_gain
High frequency gain value (0-127).
uint8_t medium_low_frequency_gain
Medium-low frequency gain value (0-127).
uint8_t high_frequency
High frequency center value (0-127).
uint8_t low_frequency_gain
Low frequency gain value (0-127).
Modulation wheel parameters.
uint8_t time_varying_filter_depth
Time-varying filter depth (0-127).
uint8_t amplitude
Amplitude modulation depth (0-127).
uint8_t high_pitch_volume
High pitch volume intensity (0-127).
uint8_t low_frequency_oscillator_rate
Low-frequency oscillator rate (0-127).
uint8_t pitch_depth
Pitch modulation depth (0-127).
uint8_t time_varying_amplifier_depth
Time-varying amplifier depth (0-127).
uint8_t time_varying_timbre_cutoff
Time-varying timbre cutoff frequency (0-127).
12 scale tuning parameter structures.
uint8_t note_b
B note fine-tuning value (0-127).
uint8_t note_d_sharp
D# note fine-tuning value (0-127).
uint8_t note_c_sharp
C# note fine-tuning value (0-127)
uint8_t note_d
D note fine-tuning value (0-127).
uint8_t note_a_sharp
A# note fine-tuning value (0-127).
uint8_t note_f
F note fine-tuning value (0-127).
uint8_t note_f_sharp
F# note fine-tuning value (0-127).
uint8_t note_g
G note fine-tuning value (0-127).
uint8_t note_e
E note fine-tuning value (0-127).
uint8_t note_c
C note fine-tuning value (0-127)
uint8_t note_g_sharp
G# note fine-tuning value (0-127).
uint8_t note_a
A note fine-tuning value (0-127).