VolumeSlide

Enum VolumeSlide 

Source
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 slide
  • Nxx - channel volume slide
  • Wxx - 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

Source§

fn clone(&self) -> VolumeSlide

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for VolumeSlide

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for VolumeSlide

Source§

fn eq(&self, other: &VolumeSlide) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for VolumeSlide

Source§

impl StructuralPartialEq for VolumeSlide

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<I, C> Get<&I> for C
where C: Get<I>, I: Copy,

Source§

type Output = <C as Get<I>>::Output

Source§

fn get(&self, index: &I) -> Option<&<C as Get<&I>>::Output>

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.