Class Loop<Options>

Loop creates a looped callback at the specified interval. The callback can be started, stopped and scheduled along the Transport's timeline.

Example

const loop = new Tone.Loop((time) => {
// triggered every eighth note.
console.log(time);
}, "8n").start(0);
Tone.Transport.start();

Type Parameters

Hierarchy (view full)

Constructors

Properties

callback: ((time) => void)

The callback to invoke with the next event in the pattern

Type declaration

    • (time): void
    • Parameters

      • time: number

      Returns void

context: BaseContext

The context belonging to the node.

debug: boolean = false

Set this debug flag to log all events that happen in this class.

name: string = "Loop"
version: string = version

The version number semver

Accessors

  • get blockTime(): number
  • The number of seconds of 1 processing block (128 samples)

    Returns number

    Example

    console.log(Tone.Destination.blockTime);
    
  • get disposed(): boolean
  • Indicates if the instance was disposed. 'Disposing' an instance means that all of the Web Audio nodes that were created for the instance are disconnected and freed for garbage collection.

    Returns boolean

  • get iterations(): number
  • The number of iterations of the loop. The default value is Infinity (loop forever).

    Returns number

  • set iterations(iters): void
  • Parameters

    • iters: number

    Returns void

  • get playbackRate(): number
  • The playback rate of the loop. The normal playback rate is 1 (no change). A playbackRate of 2 would be twice as fast.

    Returns number

  • set playbackRate(rate): void
  • Parameters

    • rate: number

    Returns void

  • get progress(): number
  • The progress of the loop as a value between 0-1. 0, when the loop is stopped or done iterating.

    Returns number

Methods

  • Cancel all scheduled events greater than or equal to the given time

    Parameters

    • Optional time: Unit.Time

      The time after which events will be cancel.

    Returns this

  • Return the current time of the Context clock without any lookAhead.

    Returns number

    Example

    setInterval(() => {
    console.log(Tone.immediate());
    }, 100);
  • Return the current time of the Context clock plus the lookAhead.

    Returns number

    Example

    setInterval(() => {
    console.log(Tone.now());
    }, 100);
  • Set multiple properties at once with an object.

    Parameters

    Returns this

    Example

    const filter = new Tone.Filter().toDestination();
    // set values using an object
    filter.set({
    frequency: "C6",
    type: "highpass"
    });
    const player = new Tone.Player("https://tonejs.github.io/audio/berklee/Analogsynth_octaves_highmid.mp3").connect(filter);
    player.autostart = true;
  • Start the loop at the specified time along the Transport's timeline.

    Parameters

    • Optional time: Unit.Time

      When to start the Loop.

    Returns this

  • Stop the loop at the given time.

    Parameters

    • Optional time: Unit.Time

      When to stop the Loop.

    Returns this

  • Convert the input to a frequency number

    Parameters

    Returns number

    Example

    const gain = new Tone.Gain();
    console.log(gain.toFrequency("4n"));
  • Convert the incoming time to seconds. This is calculated against the current TransportClass bpm

    Parameters

    Returns number

    Example

    const gain = new Tone.Gain();
    setInterval(() => console.log(gain.toSeconds("4n")), 100);
    // ramp the tempo to 60 bpm over 30 seconds
    Tone.getTransport().bpm.rampTo(60, 30);
  • Convert the class to a string

    Returns string

    Example

    const osc = new Tone.Oscillator();
    console.log(osc.toString());
  • Convert the input time into ticks

    Parameters

    Returns number

    Example

    const gain = new Tone.Gain();
    console.log(gain.toTicks("4n"));