pub struct ParameterNumberMessage { /* private fields */ }
Expand description
A MIDI Parameter Number message, either registered (RPN) or non-registered (NRPN).
MIDI systems emit those by sending up to 4 short Control Change messages in a row. The
ParameterNumberMessageScanner
can be used to extract such messages from a stream of
ShortMessage
s.
§Example
use helgoboss_midi::{
controller_numbers, Channel, ParameterNumberMessage, RawShortMessage, U14,
DataEntryByteOrder::MsbFirst
};
let msg =
ParameterNumberMessage::registered_14_bit(Channel::new(0), U14::new(420), U14::new(15000));
assert_eq!(msg.channel().get(), 0);
assert_eq!(msg.number().get(), 420);
assert_eq!(msg.value().get(), 15000);
assert!(msg.is_registered());
assert!(msg.is_14_bit());
let short_messages: [Option<RawShortMessage>; 4] = msg.to_short_messages(MsbFirst);
use helgoboss_midi::test_util::control_change;
assert_eq!(
short_messages,
[
Some(control_change(0, 101, 3)),
Some(control_change(0, 100, 36)),
Some(control_change(0, 6, 117)),
Some(control_change(0, 38, 24)),
]
);
Implementations§
Source§impl ParameterNumberMessage
impl ParameterNumberMessage
Sourcepub fn non_registered_7_bit(
channel: Channel,
number: U14,
value: U7,
) -> ParameterNumberMessage
pub fn non_registered_7_bit( channel: Channel, number: U14, value: U7, ) -> ParameterNumberMessage
Creates an NRPN message with a 7-bit data-entry value.
Sourcepub fn non_registered_14_bit(
channel: Channel,
number: U14,
value: U14,
) -> ParameterNumberMessage
pub fn non_registered_14_bit( channel: Channel, number: U14, value: U14, ) -> ParameterNumberMessage
Creates an NRPN message with a 14-bit data-entry value.
Sourcepub fn non_registered_decrement(
channel: Channel,
number: U14,
value: U7,
) -> ParameterNumberMessage
pub fn non_registered_decrement( channel: Channel, number: U14, value: U7, ) -> ParameterNumberMessage
Creates an NRPN message with a data decrement value.
Sourcepub fn non_registered_increment(
channel: Channel,
number: U14,
value: U7,
) -> ParameterNumberMessage
pub fn non_registered_increment( channel: Channel, number: U14, value: U7, ) -> ParameterNumberMessage
Creates an NRPN message with a data increment value.
Sourcepub fn registered_7_bit(
channel: Channel,
number: U14,
value: U7,
) -> ParameterNumberMessage
pub fn registered_7_bit( channel: Channel, number: U14, value: U7, ) -> ParameterNumberMessage
Creates an RPN message with a 7-bit data-entry value.
Sourcepub fn registered_14_bit(
channel: Channel,
number: U14,
value: U14,
) -> ParameterNumberMessage
pub fn registered_14_bit( channel: Channel, number: U14, value: U14, ) -> ParameterNumberMessage
Creates an RPN message with a 14-bit data-entry value.
Sourcepub fn registered_decrement(
channel: Channel,
number: U14,
value: U7,
) -> ParameterNumberMessage
pub fn registered_decrement( channel: Channel, number: U14, value: U7, ) -> ParameterNumberMessage
Creates an RPN message with a data decrement value.
Sourcepub fn registered_increment(
channel: Channel,
number: U14,
value: U7,
) -> ParameterNumberMessage
pub fn registered_increment( channel: Channel, number: U14, value: U7, ) -> ParameterNumberMessage
Creates an RPN message with a data increment value.
Sourcepub fn value(&self) -> U14
pub fn value(&self) -> U14
Returns the value of this message.
If it’s just a 7-bit message, the value is <= 127.
Sourcepub fn is_14_bit(&self) -> bool
pub fn is_14_bit(&self) -> bool
Returns true
if this message has a 14-bit value and false
if only a 7-bit value.
Sourcepub fn is_registered(&self) -> bool
pub fn is_registered(&self) -> bool
Returns whether this message uses a registered parameter number.
Sourcepub fn to_short_messages<T: ShortMessageFactory>(
&self,
data_entry_byte_order: DataEntryByteOrder,
) -> [Option<T>; 4]
pub fn to_short_messages<T: ShortMessageFactory>( &self, data_entry_byte_order: DataEntryByteOrder, ) -> [Option<T>; 4]
Translates this message into up to 4 short Control Change messages, which need to be sent in a row in order to encode this (N)RPN message.
If this message has a 14-bit value, all returned short messages are Some
and the given
data entry byte order is respected. If it has a 7-bit value only, the last short message is
None
.
Trait Implementations§
Source§impl Clone for ParameterNumberMessage
impl Clone for ParameterNumberMessage
Source§fn clone(&self) -> ParameterNumberMessage
fn clone(&self) -> ParameterNumberMessage
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more