/** @packageDocumentation Audio properties for Impulse Tracker (IT) files. */ import { AudioProperties } from "../audioProperties.js"; import type { ReadStyle } from "../toolkit/types.js"; /** * Audio properties for Impulse Tracker (IT) files. */ export declare class ItProperties extends AudioProperties { /** Bit mask for the Stereo flag in the IT file header flags field. */ static readonly Stereo = 1; /** Bit mask indicating that a message is attached (in the special field). */ static readonly MessageAttached = 1; /** Number of active channels. */ private _channels; /** Number of non-skip, non-end orders (pattern sequence length). */ private _lengthInPatterns; /** Number of instruments in the file. */ private _instrumentCount; /** Number of samples in the file. */ private _sampleCount; /** Number of patterns in the file. */ private _patternCount; /** Tracker version that created the file. */ private _version; /** Minimum compatible tracker version required to play the file. */ private _compatibleVersion; /** Header flags bitfield. */ private _flags; /** Special flags bitfield (e.g. message attached). */ private _special; /** Global volume (0–128). */ private _globalVolume; /** Mix volume (0–128). */ private _mixVolume; /** Initial tempo in BPM. */ private _tempo; /** Initial speed (ticks per row). */ private _bpmSpeed; /** Panning separation (0–128). */ private _panningSeparation; /** Pitch wheel depth in semitones. */ private _pitchWheelDepth; /** * Construct audio properties with the given read style. * @param readStyle - Detail level for audio property parsing. */ constructor(readStyle: ReadStyle); /** Always 0; IT files do not provide a time-based duration. */ get lengthInMilliseconds(): number; /** Number of active audio channels. */ get channels(): number; /** @param value - Number of active audio channels. */ set channels(value: number); /** Pattern sequence length (number of active orders). */ get lengthInPatterns(): number; /** @param value - Pattern sequence length. */ set lengthInPatterns(value: number); /** `true` if the Stereo flag is set in the header flags field. */ get stereo(): boolean; /** Number of instruments in the file. */ get instrumentCount(): number; /** @param value - Number of instruments. */ set instrumentCount(value: number); /** Number of samples in the file. */ get sampleCount(): number; /** @param value - Number of samples. */ set sampleCount(value: number); /** Number of patterns in the file. */ get patternCount(): number; /** @param value - Number of patterns. */ set patternCount(value: number); /** Tracker version that created the file. */ get version(): number; /** @param value - Tracker version. */ set version(value: number); /** Minimum compatible tracker version required to play the file. */ get compatibleVersion(): number; /** @param value - Compatible tracker version. */ set compatibleVersion(value: number); /** Header flags bitfield. */ get flags(): number; /** @param value - Header flags bitfield. */ set flags(value: number); /** Special flags bitfield (e.g. message attached). */ get special(): number; /** @param value - Special flags bitfield. */ set special(value: number); /** Global volume (0–128). */ get globalVolume(): number; /** @param value - Global volume (0–128). */ set globalVolume(value: number); /** Mix volume (0–128). */ get mixVolume(): number; /** @param value - Mix volume (0–128). */ set mixVolume(value: number); /** Initial tempo in BPM. */ get tempo(): number; /** @param value - Initial tempo in BPM. */ set tempo(value: number); /** Initial speed (ticks per row). */ get bpmSpeed(): number; /** @param value - Initial speed (ticks per row). */ set bpmSpeed(value: number); /** Panning separation (0–128). */ get panningSeparation(): number; /** @param value - Panning separation (0–128). */ set panningSeparation(value: number); /** Pitch wheel depth in semitones. */ get pitchWheelDepth(): number; /** @param value - Pitch wheel depth in semitones. */ set pitchWheelDepth(value: number); } //# sourceMappingURL=itProperties.d.ts.map