pub enum VolumeSlide {
Down(RangedU8<1, 0x0F>),
Up(RangedU8<1, 0x0F>),
FineDown(RangedU8<1, 0x0E>),
FineUp(RangedU8<1, 0x0E>),
}Expand description
Effects Dxx, Kxx, Lxx, Nxx, Wxx
All of these commands perform a volume slide but on different mixers. Operations on the values are saturating.
Dxx,Kxx,Lxx- note volume slideNxx- channel volume slideWxx- global volume slide
§Canonicalization
Values where both nibbles are in 1..=0xE at the same time don’t have a defined meaning, these
get skipped by the parser.
Value 0xFF gets parsed by OpenMPT and Schism Tracker as FineUp(0xF), however this makes it
non-symmetrical and also doesn’t agree with OpenMPT documentation and makes the parsing
somewhat ambiguous (although at least two implementations agree on the way to parse it).
We enforce that FineUp cannot exceed 0xE. We parse the value 0xFF the same way as 0xEF
for compatibilty with these trackers.
Variants§
Down(RangedU8<1, 0x0F>)
D0x, K0x, L0x, N0x, W0x Volume slide down by x
Decreases mixer volume by x units on every tick of the row except the first.
If x is 0xF, volume decreases on every tick (including the first).
Up(RangedU8<1, 0x0F>)
Dx0, Kx0, Lx0, Nx0, Wx0 Volume slide up by x
Increases mixer volume by x units on every tick of the row except the first.
FineDown(RangedU8<1, 0x0E>)
DFx, KFx, LFx, NFx, WFx Fine volume slide down by x
Finely decreases mixer volume by only applying x units on the first tick of the row.
FineUp(RangedU8<1, 0x0E>)
DxF, KxF, LxF, NxF, WxF Fine volume slide up by x
Finely increases mixer volume by only applying x units on the first tick of the row.
Trait Implementations§
Source§impl Clone for VolumeSlide
impl Clone for VolumeSlide
Source§fn clone(&self) -> VolumeSlide
fn clone(&self) -> VolumeSlide
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more