/** @packageDocumentation Audio properties for ScreamTracker III (S3M) module files. */ import { AudioProperties } from "../audioProperties.js"; import type { ReadStyle } from "../toolkit/types.js"; /** * Audio properties for ScreamTracker III (S3M) files. * * S3M is a tracker module format; it has no defined playback duration in * milliseconds. The properties describe module layout rather than a * continuous audio stream. */ export declare class S3mProperties extends AudioProperties { /** Number of active channels in the module. */ private _channels; /** Number of orders (non-skip, non-end entries) in the play sequence. */ private _lengthInPatterns; /** Whether the module uses stereo output (master volume byte bit 7). */ private _stereo; /** Total number of samples/instruments declared in the module header. */ private _sampleCount; /** Total number of pattern slots in the module header. */ private _patternCount; /** Raw flags word from the S3M header. */ private _flags; /** Tracker version encoded in the header (e.g. `0x1320` for ST3 v3.20). */ private _trackerVersion; /** File format version byte from the header. */ private _fileFormatVersion; /** Global volume level (0–64). */ private _globalVolume; /** Master output volume (0–127; bit 7 is the stereo flag). */ private _masterVolume; /** Initial tempo, expressed as rows per beat. */ private _tempo; /** Initial BPM speed (beats per minute). */ private _bpmSpeed; /** * Constructs a new `S3mProperties` instance. * @param readStyle - The level of detail used when parsing audio properties. */ constructor(readStyle: ReadStyle); /** * Returns the duration of the track in milliseconds. * S3M files have no defined playback duration; always returns `0`. * @returns `0`. */ get lengthInMilliseconds(): number; /** * Returns the number of active channels in the module. * @returns The channel count. */ get channels(): number; /** * Sets the number of active channels. * @param value - The channel count. */ set channels(value: number); /** * Returns the number of orders in the play sequence (real pattern length). * @returns The order count. */ get lengthInPatterns(): number; /** * Sets the number of orders in the play sequence. * @param value - The order count. */ set lengthInPatterns(value: number); /** * Returns whether the module uses stereo output. * @returns `true` for stereo, `false` for mono. */ get stereo(): boolean; /** * Sets whether the module uses stereo output. * @param value - `true` for stereo, `false` for mono. */ set stereo(value: boolean); /** * Returns the total number of samples/instruments in the module. * @returns The sample count. */ get sampleCount(): number; /** * Sets the total number of samples/instruments. * @param value - The sample count. */ set sampleCount(value: number); /** * Returns the total number of pattern slots in the module header. * @returns The pattern count. */ get patternCount(): number; /** * Sets the total number of pattern slots. * @param value - The pattern count. */ set patternCount(value: number); /** * Returns the raw flags word from the S3M header. * @returns The flags value. */ get flags(): number; /** * Sets the raw flags word. * @param value - The flags value. */ set flags(value: number); /** * Returns the tracker version encoded in the S3M header. * @returns The tracker version word (e.g. `0x1320` for ST3 v3.20). */ get trackerVersion(): number; /** * Sets the tracker version word. * @param value - The tracker version word. */ set trackerVersion(value: number); /** * Returns the file format version byte from the S3M header. * @returns The file format version. */ get fileFormatVersion(): number; /** * Sets the file format version byte. * @param value - The file format version. */ set fileFormatVersion(value: number); /** * Returns the global volume level (0–64). * @returns The global volume. */ get globalVolume(): number; /** * Sets the global volume level. * @param value - The global volume (0–64). */ set globalVolume(value: number); /** * Returns the master output volume (0–127; bit 7 is the stereo flag). * @returns The master volume. */ get masterVolume(): number; /** * Sets the master output volume. * @param value - The master volume (0–127). */ set masterVolume(value: number); /** * Returns the initial tempo, expressed as rows per beat. * @returns The tempo value. */ get tempo(): number; /** * Sets the initial tempo. * @param value - The tempo (rows per beat). */ set tempo(value: number); /** * Returns the initial BPM speed (beats per minute). * @returns The BPM speed. */ get bpmSpeed(): number; /** * Sets the initial BPM speed. * @param value - The BPM speed (beats per minute). */ set bpmSpeed(value: number); } //# sourceMappingURL=s3mProperties.d.ts.map