1
0
Fork 0

Use Rust range notation for NoteEvent docs #42

Apparently `from x to y` is ambiguous, so we now use the Rust `x..y`
syntax instead.
This commit is contained in:
Robbert van der Helm 2022-11-08 19:36:07 +01:00
parent 4f16fa3998
commit 841ec96d2d

View file

@ -26,8 +26,7 @@ pub enum MidiConfig {
/// [`util`][crate::util] module for convenient conversion functions. /// [`util`][crate::util] module for convenient conversion functions.
/// ///
/// All of the timings are sample offsets withing the current buffer. All sample, channel and note /// All of the timings are sample offsets withing the current buffer. All sample, channel and note
/// numbers are zero-indexed. All integer `from n to m` are exclusive, and they are equivalent to /// numbers are zero-indexed.
/// the `n..m` range in Rust.
#[derive(Debug, Clone, Copy, PartialEq)] #[derive(Debug, Clone, Copy, PartialEq)]
#[non_exhaustive] #[non_exhaustive]
pub enum NoteEvent { pub enum NoteEvent {
@ -37,12 +36,12 @@ pub enum NoteEvent {
/// A unique identifier for this note, if available. Using this to refer to a note is /// A unique identifier for this note, if available. Using this to refer to a note is
/// required when allowing overlapping voices for CLAP plugins. /// required when allowing overlapping voices for CLAP plugins.
voice_id: Option<i32>, voice_id: Option<i32>,
/// The note's channel, from 0 to 16. /// The note's channel, in `0..16`.
channel: u8, channel: u8,
/// The note's MIDI key number, from 0 to 128. /// The note's MIDI key number, in `0..128`.
note: u8, note: u8,
/// The note's velocity, in the range `[0, 1]`. Some plugin APIs may allow higher precision /// The note's velocity, in `[0, 1]`. Some plugin APIs may allow higher precision than the
/// than the 128 levels available in MIDI. /// 128 levels available in MIDI.
velocity: f32, velocity: f32,
}, },
/// A note off event, available on [`MidiConfig::Basic`] and up. Bitwig Studio does not provide /// A note off event, available on [`MidiConfig::Basic`] and up. Bitwig Studio does not provide
@ -52,12 +51,12 @@ pub enum NoteEvent {
/// A unique identifier for this note, if available. Using this to refer to a note is /// A unique identifier for this note, if available. Using this to refer to a note is
/// required when allowing overlapping voices for CLAP plugins. /// required when allowing overlapping voices for CLAP plugins.
voice_id: Option<i32>, voice_id: Option<i32>,
/// The note's channel, from 0 to 16. /// The note's channel, in `0..16`.
channel: u8, channel: u8,
/// The note's MIDI key number, from 0 to 128. /// The note's MIDI key number, in `0..128`.
note: u8, note: u8,
/// The note's velocity, in the range `[0, 1]`. Some plugin APIs may allow higher precision /// The note's velocity, in `[0, 1]`. Some plugin APIs may allow higher precision than the
/// than the 128 levels available in MIDI. /// 128 levels available in MIDI.
velocity: f32, velocity: f32,
}, },
/// A note choke event, available on [`MidiConfig::Basic`] and up. When the host sends this to /// A note choke event, available on [`MidiConfig::Basic`] and up. When the host sends this to
@ -68,9 +67,9 @@ pub enum NoteEvent {
/// A unique identifier for this note, if available. Using this to refer to a note is /// A unique identifier for this note, if available. Using this to refer to a note is
/// required when allowing overlapping voices for CLAP plugins. /// required when allowing overlapping voices for CLAP plugins.
voice_id: Option<i32>, voice_id: Option<i32>,
/// The note's channel, from 0 to 16. /// The note's channel, in `0..16`.
channel: u8, channel: u8,
/// The note's MIDI key number, from 0 to 128. /// The note's MIDI key number, in `0..128`.
note: u8, note: u8,
}, },
@ -82,9 +81,9 @@ pub enum NoteEvent {
/// The voice's unique identifier. Setting this allows a single voice to be terminated if /// The voice's unique identifier. Setting this allows a single voice to be terminated if
/// the plugin allows multiple overlapping voices for a single key. /// the plugin allows multiple overlapping voices for a single key.
voice_id: Option<i32>, voice_id: Option<i32>,
/// The note's channel, from 0 to 16. /// The note's channel, in `0..16`.
channel: u8, channel: u8,
/// The note's MIDI key number, from 0 to 128. /// The note's MIDI key number, in `0..128`.
note: u8, note: u8,
}, },
/// A polyphonic modulation event, available on [`MidiConfig::Basic`] and up. This will only be /// A polyphonic modulation event, available on [`MidiConfig::Basic`] and up. This will only be
@ -165,11 +164,11 @@ pub enum NoteEvent {
/// A unique identifier for this note, if available. Using this to refer to a note is /// A unique identifier for this note, if available. Using this to refer to a note is
/// required when allowing overlapping voices for CLAP plugins. /// required when allowing overlapping voices for CLAP plugins.
voice_id: Option<i32>, voice_id: Option<i32>,
/// The note's channel, from 0 to 16. /// The note's channel, in `0..16`.
channel: u8, channel: u8,
/// The note's MIDI key number, from 0 to 128. /// The note's MIDI key number, in `0..128`.
note: u8, note: u8,
/// The note's pressure, in the range `[0, 1]`. /// The note's pressure, in `[0, 1]`.
pressure: f32, pressure: f32,
}, },
/// A volume expression event, available on [`MidiConfig::Basic`] and up. Not all hosts may /// A volume expression event, available on [`MidiConfig::Basic`] and up. Not all hosts may
@ -179,9 +178,9 @@ pub enum NoteEvent {
/// A unique identifier for this note, if available. Using this to refer to a note is /// A unique identifier for this note, if available. Using this to refer to a note is
/// required when allowing overlapping voices for CLAP plugins. /// required when allowing overlapping voices for CLAP plugins.
voice_id: Option<i32>, voice_id: Option<i32>,
/// The note's channel, from 0 to 16. /// The note's channel, in `0..16`.
channel: u8, channel: u8,
/// The note's MIDI key number, from 0 to 128. /// The note's MIDI key number, in `0..128`.
note: u8, note: u8,
/// The note's voltage gain ratio, where 1.0 is unity gain. /// The note's voltage gain ratio, where 1.0 is unity gain.
gain: f32, gain: f32,
@ -193,11 +192,11 @@ pub enum NoteEvent {
/// A unique identifier for this note, if available. Using this to refer to a note is /// A unique identifier for this note, if available. Using this to refer to a note is
/// required when allowing overlapping voices for CLAP plugins. /// required when allowing overlapping voices for CLAP plugins.
voice_id: Option<i32>, voice_id: Option<i32>,
/// The note's channel, from 0 to 16. /// The note's channel, in `0..16`.
channel: u8, channel: u8,
/// The note's MIDI key number, from 0 to 128. /// The note's MIDI key number, in `0..128`.
note: u8, note: u8,
/// The note's panning from, in the range `[-1, 1]`, with -1 being panned hard left, and 1 /// The note's panning from, in `[-1, 1]`, with -1 being panned hard left, and 1
/// being panned hard right. /// being panned hard right.
pan: f32, pan: f32,
}, },
@ -208,11 +207,11 @@ pub enum NoteEvent {
/// A unique identifier for this note, if available. Using this to refer to a note is /// A unique identifier for this note, if available. Using this to refer to a note is
/// required when allowing overlapping voices for CLAP plugins. /// required when allowing overlapping voices for CLAP plugins.
voice_id: Option<i32>, voice_id: Option<i32>,
/// The note's channel, from 0 to 16. /// The note's channel, in `0..16`.
channel: u8, channel: u8,
/// The note's MIDI key number, from 0 to 128. /// The note's MIDI key number, in `0..128`.
note: u8, note: u8,
/// The note's tuning in semitones, in the range `[-128, 128]`. /// The note's tuning in semitones, in `[-128, 128]`.
tuning: f32, tuning: f32,
}, },
/// A vibrato expression event, available on [`MidiConfig::Basic`] and up. Not all hosts may support /// A vibrato expression event, available on [`MidiConfig::Basic`] and up. Not all hosts may support
@ -222,11 +221,11 @@ pub enum NoteEvent {
/// A unique identifier for this note, if available. Using this to refer to a note is /// A unique identifier for this note, if available. Using this to refer to a note is
/// required when allowing overlapping voices for CLAP plugins. /// required when allowing overlapping voices for CLAP plugins.
voice_id: Option<i32>, voice_id: Option<i32>,
/// The note's channel, from 0 to 16. /// The note's channel, in `0..16`.
channel: u8, channel: u8,
/// The note's MIDI key number, from 0 to 128. /// The note's MIDI key number, in `0..128`.
note: u8, note: u8,
/// The note's vibrato amount, in the range `[0, 1]`. /// The note's vibrato amount, in `[0, 1]`.
vibrato: f32, vibrato: f32,
}, },
/// A expression expression (yes, expression expression) event, available on /// A expression expression (yes, expression expression) event, available on
@ -236,11 +235,11 @@ pub enum NoteEvent {
/// A unique identifier for this note, if available. Using this to refer to a note is /// A unique identifier for this note, if available. Using this to refer to a note is
/// required when allowing overlapping voices for CLAP plugins. /// required when allowing overlapping voices for CLAP plugins.
voice_id: Option<i32>, voice_id: Option<i32>,
/// The note's channel, from 0 to 16. /// The note's channel, in `0..16`.
channel: u8, channel: u8,
/// The note's MIDI key number, from 0 to 128. /// The note's MIDI key number, in `0..128`.
note: u8, note: u8,
/// The note's expression amount, in the range `[0, 1]`. /// The note's expression amount, in `[0, 1]`.
expression: f32, expression: f32,
}, },
/// A brightness expression event, available on [`MidiConfig::Basic`] and up. Not all hosts may support /// A brightness expression event, available on [`MidiConfig::Basic`] and up. Not all hosts may support
@ -250,17 +249,17 @@ pub enum NoteEvent {
/// A unique identifier for this note, if available. Using this to refer to a note is /// A unique identifier for this note, if available. Using this to refer to a note is
/// required when allowing overlapping voices for CLAP plugins. /// required when allowing overlapping voices for CLAP plugins.
voice_id: Option<i32>, voice_id: Option<i32>,
/// The note's channel, from 0 to 16. /// The note's channel, in `0..16`.
channel: u8, channel: u8,
/// The note's MIDI key number, from 0 to 128. /// The note's MIDI key number, in `0..128`.
note: u8, note: u8,
/// The note's brightness amount, in the range `[0, 1]`. /// The note's brightness amount, in `[0, 1]`.
brightness: f32, brightness: f32,
}, },
/// A MIDI channel pressure event, available on [`MidiConfig::MidiCCs`] and up. /// A MIDI channel pressure event, available on [`MidiConfig::MidiCCs`] and up.
MidiChannelPressure { MidiChannelPressure {
timing: u32, timing: u32,
/// The affected channel, from 0 to 16. /// The affected channel, in `0..16`.
channel: u8, channel: u8,
/// The pressure, normalized to `[0, 1]` to match the poly pressure event. /// The pressure, normalized to `[0, 1]` to match the poly pressure event.
pressure: f32, pressure: f32,
@ -268,7 +267,7 @@ pub enum NoteEvent {
/// A MIDI pitch bend, available on [`MidiConfig::MidiCCs`] and up. /// A MIDI pitch bend, available on [`MidiConfig::MidiCCs`] and up.
MidiPitchBend { MidiPitchBend {
timing: u32, timing: u32,
/// The affected channel, from 0 to 16. /// The affected channel, in `0..16`.
channel: u8, channel: u8,
/// The pressure, normalized to `[0, 1]`. `0.5` means no pitch bend. /// The pressure, normalized to `[0, 1]`. `0.5` means no pitch bend.
value: f32, value: f32,
@ -278,11 +277,11 @@ pub enum NoteEvent {
/// # Note /// # Note
/// ///
/// The wrapper does not perform any special handling for two message 14-bit CCs (where the CC /// The wrapper does not perform any special handling for two message 14-bit CCs (where the CC
/// number is in the range `[0, 31]`, and the next CC is that number plus 32) or for four /// number is in `0..32`, and the next CC is that number plus 32) or for four message RPN
/// message RPN messages. For now you will need to handle these CCs yourself. /// messages. For now you will need to handle these CCs yourself.
MidiCC { MidiCC {
timing: u32, timing: u32,
/// The affected channel, from 0 to 16. /// The affected channel, in `0..16`.
channel: u8, channel: u8,
/// The control change number. See [`control_change`] for a list of CC numbers. /// The control change number. See [`control_change`] for a list of CC numbers.
cc: u8, cc: u8,
@ -293,9 +292,9 @@ pub enum NoteEvent {
/// cannot receive these events. /// cannot receive these events.
MidiProgramChange { MidiProgramChange {
timing: u32, timing: u32,
/// The affected channel, from 0 to 16. /// The affected channel, in `0..16`.
channel: u8, channel: u8,
/// The program number, from 0 to 128. /// The program number, in `0..128`.
program: u8, program: u8,
}, },
} }