Documentation
    Preparing search index...

    Class ToneEvent<ValueType>

    ToneEvent abstracts away this.context.transport.schedule and provides a schedulable callback for a single or repeatable events along the timeline.

    const synth = new Tone.PolySynth().toDestination();
    const chordEvent = new Tone.ToneEvent(((time, chord) => {
    // the chord as well as the exact time of the event
    // are passed in as arguments to the callback function
    synth.triggerAttackRelease(chord, 0.5, time);
    }), ["D4", "E4", "F4"]);
    // start the chord at the beginning of the transport timeline
    chordEvent.start();
    // loop it every measure for 8 measures
    chordEvent.loop = 8;
    chordEvent.loopEnd = "1m";

    Type Parameters

    • ValueType = any

    Hierarchy (View Summary)

    Index
    _humanize: boolean | Time

    the amount of variation from the given time.

    _loop: number | boolean

    Loop value

    _loopEnd: number

    When the note is scheduled to start.

    _loopStart: number

    When the note is scheduled to start.

    _playbackRate: number

    The playback speed of the note. A speed of 1 is no change.

    _probability: number

    private holder of probability value

    _startOffset: number

    A delay time from when the event is scheduled to start

    _state: StateTimeline<{ id: number }>

    Tracks the scheduled events

    The callback to invoke.

    context: BaseContext

    The context belonging to the node.

    debug: boolean

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

    mute: boolean

    If mute is true, the callback won't be invoked.

    name: string

    The name of the class

    value: ValueType

    The value which is passed to the callback function.

    version: string

    The version number semver

    • get blockTime(): number

      The number of seconds of 1 processing block (128 samples)

      Returns number

      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 humanize(): boolean | Time

      If set to true, will apply small random variation to the callback time. If the value is given as a time, it will randomize by that amount.

      Returns boolean | Time

      const event = new Tone.ToneEvent();
      event.humanize = true;
    • set humanize(variation: boolean | Time): void

      Parameters

      • variation: boolean | Time

      Returns void

    • get loop(): number | boolean

      If the note should loop or not between ToneEvent.loopStart and ToneEvent.loopEnd. If set to true, the event will loop indefinitely, if set to a number greater than 1 it will play a specific number of times, if set to false, 0 or 1, the part will only play once.

      Returns number | boolean

    • set loop(loop: number | boolean): void

      Parameters

      • loop: number | boolean

      Returns void

    • get loopEnd(): Time

      The loopEnd point is the time the event will loop if ToneEvent.loop is true.

      Returns Time

    • set loopEnd(loopEnd: Time): void

      Parameters

      Returns void

    • get loopStart(): Time

      The time when the loop should start.

      Returns Time

    • set loopStart(loopStart: Time): void

      Parameters

      Returns void

    • get playbackRate(): number

      The playback rate of the event. Defaults to 1.

      Returns number

      const note = new Tone.ToneEvent();
      note.loop = true;
      // repeat the note twice as fast
      note.playbackRate = 2;
    • set playbackRate(rate: number): void

      Parameters

      • rate: number

      Returns void

    • get probability(): number

      The probability of the notes being triggered.

      Returns number

    • set probability(prob: number): void

      Parameters

      • prob: number

      Returns void

    • get progress(): number

      The current progress of the loop interval. Returns 0 if the event is not started yet or it is not set to loop.

      Returns number

    • get sampleTime(): number

      The duration in seconds of one sample.

      Returns number

    • get startOffset(): number

      The start from the scheduled start time.

      Returns number

    • set startOffset(offset: number): void

      Parameters

      • offset: number

      Returns void

    • get state(): BasicPlaybackState

      Returns the playback state of the note, either "started" or "stopped".

      Returns BasicPlaybackState

    • Get the duration of the loop.

      Returns number

    • The callback function invoker. Also checks if the Event is done playing

      Parameters

      • time: number

        The time of the event in seconds

      Returns void

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

      Parameters

      Returns this

    • disconnect and dispose.

      Returns this

    • Get the object's attributes.

      Returns ToneEventOptions

      const osc = new Tone.Oscillator();
      console.log(osc.get());
    • Return the current time of the Context clock without any lookAhead.

      Returns number

      setInterval(() => {
      console.log(Tone.immediate());
      }, 100);
    • Prints the outputs to the console log for debugging purposes. Prints the contents only if either the object has a property called debug set to true, or a variable called TONE_DEBUG_CLASS is set to the name of the class.

      Parameters

      • ...args: any[]

      Returns void

      const osc = new Tone.Oscillator();
      // prints all logs originating from this oscillator
      osc.debug = true;
      // calls to start/stop will print in the console
      osc.start();
    • Return the current time of the Context clock plus the lookAhead.

      Returns number

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

      Parameters

      Returns this

      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 note at the given time.

      Parameters

      Returns this

    • Stop the Event at the given time.

      Parameters

      Returns this

    • Convert the input to a frequency number

      Parameters

      Returns number

      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

      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

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

      Parameters

      Returns number

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