pub struct MidiTrackTrigs {
pub header: [u8; 4],
pub unknown_1: [u8; 4],
pub track_id: u8,
pub trig_masks: MidiTrackTrigMasks,
pub scale_per_track_mode: TrackPerTrackModeScale,
pub swing_amount: u8,
pub pattern_settings: TrackPatternSettings,
pub plocks: Box<Array<MidiTrackParameterLocks, 64>>,
pub trig_offsets_repeats_conditions: [[u8; 2]; 64],
}Expand description
Track trigs assigned on an Audio Track within a Pattern
Fields§
§header: [u8; 4]Header data section
example data:
MTRA
4d 54 52 41unknown_1: [u8; 4]Unknown data.
track_id: u8The zero indexed track number
trig_masks: MidiTrackTrigMasksMIDI Track Trig masks contain the Trig step locations for different trig types
scale_per_track_mode: TrackPerTrackModeScaleThe scale of this MIDI Track in Per Track Pattern mode.
swing_amount: u8Amount of swing when a Swing Trig is active for the Track.
Maximum is 30 (80 on device), minimum is 0 (50 on device).
pattern_settings: TrackPatternSettingsPattern settings for this MIDI Track
plocks: Box<Array<MidiTrackParameterLocks, 64>>trig properties – p-locks etc.
the big 0xff value block within tracks basically.
32 bytes per trig – 6x parameters for 5x pages plus 2x extra fields at the end.
For audio tracks, the 2x extra fields at the end are for sample locks, but there’s no such concept for MIDI tracks. It seems like Elektron devs reused their data structures for P-Locks on both Audio + MIDI tracks.
trig_offsets_repeats_conditions: [[u8; 2]; 64]See the documentation for AudioTrackTrigs on how this field works.
Trait Implementations§
Source§impl Clone for MidiTrackTrigs
impl Clone for MidiTrackTrigs
Source§fn clone(&self) -> MidiTrackTrigs
fn clone(&self) -> MidiTrackTrigs
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MidiTrackTrigs
impl Debug for MidiTrackTrigs
Source§impl Default for MidiTrackTrigs
impl Default for MidiTrackTrigs
Source§impl<const N: usize> Defaults<[MidiTrackTrigs; N]> for MidiTrackTrigs
impl<const N: usize> Defaults<[MidiTrackTrigs; N]> for MidiTrackTrigs
Source§impl<const N: usize> Defaults<Box<Array<MidiTrackTrigs, N>>> for MidiTrackTrigs
impl<const N: usize> Defaults<Box<Array<MidiTrackTrigs, N>>> for MidiTrackTrigs
Source§impl<'de> Deserialize<'de> for MidiTrackTrigs
impl<'de> Deserialize<'de> for MidiTrackTrigs
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl HasHeaderField for MidiTrackTrigs
impl HasHeaderField for MidiTrackTrigs
Source§fn check_header(&self) -> Result<bool, OtToolsIoError>
fn check_header(&self) -> Result<bool, OtToolsIoError>
Source§impl PartialEq for MidiTrackTrigs
impl PartialEq for MidiTrackTrigs
Source§impl Serialize for MidiTrackTrigs
impl Serialize for MidiTrackTrigs
impl StructuralPartialEq for MidiTrackTrigs
Auto Trait Implementations§
impl Freeze for MidiTrackTrigs
impl RefUnwindSafe for MidiTrackTrigs
impl Send for MidiTrackTrigs
impl Sync for MidiTrackTrigs
impl Unpin for MidiTrackTrigs
impl UnwindSafe for MidiTrackTrigs
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more