@ujjwalvivek/tinyts
    Preparing search index...

    Class Sequencer

    Pattern-based music sequencer.

    Uses the synth engine internally - call update(dt) each frame.

    const seq = new Sequencer(140);
    seq.addPattern(new Pattern('bass', [
    { beat: 0, note: 36, duration: 1 },
    { beat: 1, note: 43, duration: 1 },
    { beat: 2, note: 40, duration: 1 },
    { beat: 3, note: 38, duration: 1 },
    ], 1));
    seq.addTrack({ pattern: 'bass', wave: 'square', volume: 0.3 });
    seq.play();
    // in update loop:
    seq.update(dt);
    Index

    Constructors

    Properties

    bpm: number

    Beats per minute.

    currentBar: number = 0

    Current bar (0-indexed).

    currentBeat: number = 0

    Current absolute beat position.

    loop: boolean = true

    Whether to loop when all patterns finish.

    onBar?: (bar: number) => void

    Fired on each bar boundary.

    onBeat?: (beat: number, bar: number) => void

    Fired on each beat.

    onFinish?: () => void

    Fired when playback reaches the end (only if loop is false).

    patterns: Map<string, Pattern> = ...

    Registered patterns.

    playing: boolean = false

    True while the sequencer is actively playing.

    tracks: TrackDef[] = []

    Tracks in the sequence.

    Accessors

    • get totalBeats(): number

      Total beats of the longest pattern in the sequence.

      Returns number

    Methods

    • Remove a track by index.

      Parameters

      • index: number

      Returns void

    • Stop playback and silence all active notes.

      Returns void

    • Advance the sequencer by dt seconds. Call this every frame from your game loop.

      Parameters

      • dt: number

      Returns void