wave-roll
Version:
JavaScript Library for Comparative MIDI Piano-Roll Visualization
56 lines • 1.69 kB
TypeScript
/**
* Audio Settings Controller
* Handles volume, pan, tempo, and playback rate adjustments
*/
import { AudioPlayerState, OperationState } from "../player-types";
import { SamplerManager } from "../managers/sampler-manager";
import { WavPlayerManager } from "../managers/wav-player-manager";
import { TransportSyncManager } from "../managers/transport-sync-manager";
import { LoopManager } from "../managers/loop-manager";
export interface AudioSettingsControllerDeps {
state: AudioPlayerState;
operationState: OperationState;
samplerManager: SamplerManager;
wavPlayerManager: WavPlayerManager;
transportSyncManager: TransportSyncManager;
loopManager: LoopManager;
originalTempo: number;
options: {
volume?: number;
repeat?: boolean;
};
pianoRoll: {
setTime(time: number): void;
};
onVolumeChange?: () => void;
onVisualUpdate?: (params: {
currentTime: number;
duration: number;
isPlaying: boolean;
}) => void;
}
export declare class AudioSettingsController {
private deps;
constructor(deps: AudioSettingsControllerDeps);
/**
* Set playback volume
*/
setVolume(volume: number): void;
/**
* Set stereo pan
*/
setPan(pan: number): void;
/**
* Set playback tempo
*/
setTempo(bpm: number): void;
/**
* Set playback rate as percentage (10-200, 100 = normal speed)
*/
setPlaybackRate(rate: number): void;
/**
* Set custom A-B loop points
*/
setLoopPoints(start: number | null, end: number | null, preservePosition?: boolean): void;
}
//# sourceMappingURL=audio-settings-controller.d.ts.map