pub mod timing {
pub const TICKS_PER_WHOLE_NOTE: u32 = 384;
pub const TICKS_PER_HALF_NOTE: u32 = 192;
pub const TICKS_PER_QUARTER_NOTE: u32 = 96;
pub const DEFAULT_TIMEBASE: u16 = 96;
}
pub mod event_timing {
pub const PROGRAM_CHANGE_OFFSET: u32 = 192;
pub const PAN_CONTROL_OFFSET: u32 = 193;
pub const REVERB_CONTROL_OFFSET: u32 = 194;
pub const TRACK_START_TIME: u32 = 384;
pub const EMPTY_TRACK_END_TIME: u32 = 385;
}
pub mod mml {
pub const MIN_VOLUME: u8 = 1;
pub const MAX_VOLUME: u8 = 15;
pub const MAX_OCTAVE: u8 = 9;
pub const DEFAULT_VOLUME: i32 = 8;
pub const DEFAULT_OCTAVE: i32 = 4;
pub const MIDI_NOTE_OFFSET: i32 = 12;
pub const VELOCITY_MULTIPLIER: i32 = 8;
}
pub mod midi {
pub const HEADER_CHUNK: &str = "MThd";
pub const TRACK_CHUNK: &str = "MTrk";
pub const FORMAT_TYPE: u16 = 1;
pub const TRACKS_PER_MML: u16 = 3;
pub const DEFAULT_TEMPO_MICROSECONDS: u32 = 500000;
}
pub mod sysex {
pub const YOKOSO_SYSEX_DATA: &[u8] = &[0x41, 0x10, 0x42, 0x12, 0x40, 0x00, 0x7f, 0x00, 0x41, 0xf7];
pub const YOKOSO_META_TEXT: &str = "Yokoso Project(https://yoko.so/)";
}
pub mod control_change {
pub const PAN: u8 = 10;
pub const REVERB: u8 = 91;
}