Universal Music Theory Library - v0.12.0
    Preparing search index...

    Class MusicStream

    MusicStream A standard data structure for representing temporal musical events. Acts as a contract that can be consumed by audio engines (Tone.js, Web Audio) or MIDI writers.

    Index

    Constructors

    Properties

    bpm: number

    Tempo in beats per minute.

    events: StreamEvent[] = []

    Events in time order.

    timeSignature: TimeSignature

    Meter of the stream; its denominator sets what a beat is.

    Methods

    • Adds an event to the stream and advances the internal time cursor.

      Parameters

      Returns void

    • Adds an event at a specific time without advancing the main cursor.

      Parameters

      • time: number
      • notes: Note[]
      • duration: Duration
      • velocity: number = 0.8

      Returns void

    • Generates a generic JSON representation of the stream. This is the standard contract for external engines.

      Returns {
          events: {
              duration: number;
              notes: { frequency: number; name: string; stepsFromBase: number }[];
              time: number;
              velocity: number;
          }[];
          metadata: { bpm: number; timeSignature: string };
      }

      • events: {
            duration: number;
            notes: { frequency: number; name: string; stepsFromBase: number }[];
            time: number;
            velocity: number;
        }[]

        The events, as in events.

      • metadata: { bpm: number; timeSignature: string }

        Meter and tempo.

        • bpm: number

          Tempo in beats per minute.

        • timeSignature: string

          Written time signature: '4/4', '3+2+2/8'.