/** @packageDocumentation Audio properties for Extended Module (XM) tracker files. */ import { AudioProperties } from "../audioProperties.js"; import type { ReadStyle } from "../toolkit/types.js"; /** * Audio properties for Extended Module (XM) files. * * XM is a tracker module format; it has no defined playback duration in * milliseconds. The properties describe the module structure (channels, * patterns, instruments, and tempo settings). */ export declare class XmProperties extends AudioProperties { /** Number of channels used by the module. */ private _channels; /** Number of entries in the pattern order table (song length in patterns). */ private _lengthInPatterns; /** XM format version number (e.g. `0x0104`). */ private _version; /** Pattern order table index to restart at when the song loops. */ private _restartPosition; /** Total number of patterns stored in the file. */ private _patternCount; /** Total number of instruments declared in the file. */ private _instrumentCount; /** Total number of samples across all instruments. */ private _sampleCount; /** Raw flags word from the XM header (bit 0: linear frequency table). */ private _flags; /** Default tempo (ticks per row). */ private _tempo; /** Default BPM speed (beats per minute). */ private _bpmSpeed; /** * Constructs a new `XmProperties` instance. * @param readStyle - The level of detail used when parsing audio properties. */ constructor(readStyle: ReadStyle); /** * Returns the duration of the track in milliseconds. * XM files have no defined playback duration; always returns `0`. * @returns `0`. */ get lengthInMilliseconds(): number; /** * Returns the number of channels used by the module. * @returns The channel count. */ get channels(): number; /** * Sets the number of channels. * @param value - The channel count. */ set channels(value: number); /** * Returns the number of entries in the pattern order table. * @returns The song length in patterns. */ get lengthInPatterns(): number; /** * Sets the number of entries in the pattern order table. * @param value - The song length in patterns. */ set lengthInPatterns(value: number); /** * Returns the XM format version number (e.g. `0x0104` for v1.04). * @returns The version word. */ get version(): number; /** * Sets the XM format version number. * @param value - The version word. */ set version(value: number); /** * Returns the pattern order table index at which the song restarts when looping. * @returns The restart position. */ get restartPosition(): number; /** * Sets the restart position. * @param value - The pattern order table index to restart at. */ set restartPosition(value: number); /** * Returns the total number of patterns stored in the file. * @returns The pattern count. */ get patternCount(): number; /** * Sets the total number of patterns. * @param value - The pattern count. */ set patternCount(value: number); /** * Returns the total number of instruments declared in the file. * @returns The instrument count. */ get instrumentCount(): number; /** * Sets the total number of instruments. * @param value - The instrument count. */ set instrumentCount(value: number); /** * Returns the total number of samples across all instruments. * @returns The sample count. */ get sampleCount(): number; /** * Sets the total number of samples. * @param value - The sample count. */ set sampleCount(value: number); /** * Returns the raw flags word from the XM header. * Bit 0 selects between linear and Amiga frequency tables. * @returns The flags value. */ get flags(): number; /** * Sets the raw flags word. * @param value - The flags value. */ set flags(value: number); /** * Returns the default tempo in ticks per row. * @returns The tempo value. */ get tempo(): number; /** * Sets the default tempo. * @param value - The tempo (ticks per row). */ set tempo(value: number); /** * Returns the default BPM speed (beats per minute). * @returns The BPM speed. */ get bpmSpeed(): number; /** * Sets the default BPM speed. * @param value - The BPM speed (beats per minute). */ set bpmSpeed(value: number); } //# sourceMappingURL=xmProperties.d.ts.map