Store velocity as a float
Instead of converting this to a 0-127 value. We may be throwing away precision otherwise.
This commit is contained in:
parent
5b03ae8d0e
commit
8f359feadb
|
@ -311,17 +311,27 @@ pub enum ProcessStatus {
|
||||||
/// TODO: Add more events as needed
|
/// TODO: Add more events as needed
|
||||||
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
|
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
|
||||||
pub enum NoteEvent {
|
pub enum NoteEvent {
|
||||||
|
/// A note on event.
|
||||||
NoteOn {
|
NoteOn {
|
||||||
timing: u32,
|
timing: u32,
|
||||||
|
/// The note's channel, from 0 to 16.
|
||||||
channel: u8,
|
channel: u8,
|
||||||
|
/// The note's MIDI key number, from 0 to 127.
|
||||||
note: u8,
|
note: u8,
|
||||||
velocity: u8,
|
/// The note's velocity, from 0 to 1. Some plugin APIs may allow higher precision than the
|
||||||
|
/// 127 levels available in MIDI.
|
||||||
|
velocity: f32,
|
||||||
},
|
},
|
||||||
|
/// A note off event.
|
||||||
NoteOff {
|
NoteOff {
|
||||||
timing: u32,
|
timing: u32,
|
||||||
|
/// The note's channel, from 0 to 16.
|
||||||
channel: u8,
|
channel: u8,
|
||||||
|
/// The note's MIDI key number, from 0 to 127.
|
||||||
note: u8,
|
note: u8,
|
||||||
velocity: u8,
|
/// The note's velocity, from 0 to 1. Some plugin APIs may allow higher precision than the
|
||||||
|
/// 127 levels available in MIDI.
|
||||||
|
velocity: f32,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -875,7 +875,7 @@ impl<P: ClapPlugin> Wrapper<P> {
|
||||||
timing: raw_event.time - current_sample_idx as u32,
|
timing: raw_event.time - current_sample_idx as u32,
|
||||||
channel: event.channel as u8,
|
channel: event.channel as u8,
|
||||||
note: event.key as u8,
|
note: event.key as u8,
|
||||||
velocity: (event.velocity * 127.0).round() as u8,
|
velocity: event.velocity as f32,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -888,7 +888,7 @@ impl<P: ClapPlugin> Wrapper<P> {
|
||||||
timing: raw_event.time - current_sample_idx as u32,
|
timing: raw_event.time - current_sample_idx as u32,
|
||||||
channel: event.channel as u8,
|
channel: event.channel as u8,
|
||||||
note: event.key as u8,
|
note: event.key as u8,
|
||||||
velocity: (event.velocity * 127.0).round() as u8,
|
velocity: event.velocity as f32,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -770,7 +770,7 @@ impl<P: Vst3Plugin> IAudioProcessor for Wrapper<P> {
|
||||||
timing,
|
timing,
|
||||||
channel: event.channel as u8,
|
channel: event.channel as u8,
|
||||||
note: event.pitch as u8,
|
note: event.pitch as u8,
|
||||||
velocity: (event.velocity * 127.0).round() as u8,
|
velocity: event.velocity,
|
||||||
});
|
});
|
||||||
} else if event.type_ == vst3_sys::vst::EventTypes::kNoteOffEvent as u16
|
} else if event.type_ == vst3_sys::vst::EventTypes::kNoteOffEvent as u16
|
||||||
{
|
{
|
||||||
|
@ -779,7 +779,7 @@ impl<P: Vst3Plugin> IAudioProcessor for Wrapper<P> {
|
||||||
timing,
|
timing,
|
||||||
channel: event.channel as u8,
|
channel: event.channel as u8,
|
||||||
note: event.pitch as u8,
|
note: event.pitch as u8,
|
||||||
velocity: (event.velocity * 127.0).round() as u8,
|
velocity: event.velocity,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue