Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ToneMatrix<GridType, GridRendererType>

Main class of ToneMatrix Redux, a pentatonic step sequencer

Type parameters

  • GridType: IGrid | undefined = undefined

  • GridRendererType: IGridRenderer | undefined = undefined

Hierarchy

Index

Constructors

constructor

  • new ToneMatrix<GridType, GridRendererType>(options: ToneMatrixOptions<GridType, GridRendererType>): ToneMatrix<GridType, GridRendererType>
  • Creates a new ToneMatrix Redux instance, and attach it to existing DOM elements

    Type parameters

    • GridType: undefined | IGrid = undefined

    • GridRendererType: undefined | IGridRenderer = undefined

    Parameters

    Returns ToneMatrix<GridType, GridRendererType>

Properties

Private autoPlay

autoPlay: boolean

Private destroyed

destroyed: boolean = false

Readonly grid

grid: GridType extends undefined ? Grid : GridType

The grid connected to the ToneMatrix

readonly

Private internalListeners

internalListeners: Listener<ListenerEventMaps, "fullscreenchange" | "fullscreenerror" | "copy" | "cut" | "paste" | "abort" | "animationcancel" | "animationend" | "animationiteration" | "animationstart" | "auxclick" | "beforeinput" | "blur" | "canplay" | "canplaythrough" | "change" | "click" | "close" | "compositionend" | "compositionstart" | "compositionupdate" | "contextmenu" | "cuechange" | "dblclick" | "drag" | "dragend" | "dragenter" | "dragleave" | "dragover" | "dragstart" | "drop" | "durationchange" | "emptied" | "ended" | "error" | "focus" | "focusin" | "focusout" | "formdata" | "gotpointercapture" | "input" | "invalid" | "keydown" | "keypress" | "keyup" | "load" | "loadeddata" | "loadedmetadata" | "loadstart" | "lostpointercapture" | "mousedown" | "mouseenter" | "mouseleave" | "mousemove" | "mouseout" | "mouseover" | "mouseup" | "pause" | "play" | "playing" | "pointercancel" | "pointerdown" | "pointerenter" | "pointerleave" | "pointermove" | "pointerout" | "pointerover" | "pointerup" | "progress" | "ratechange" | "reset" | "resize" | "scroll" | "securitypolicyviolation" | "seeked" | "seeking" | "select" | "selectionchange" | "selectstart" | "stalled" | "submit" | "suspend" | "timeupdate" | "toggle" | "touchcancel" | "touchend" | "touchmove" | "touchstart" | "transitioncancel" | "transitionend" | "transitionrun" | "transitionstart" | "volumechange" | "waiting" | "webkitanimationend" | "webkitanimationiteration" | "webkitanimationstart" | "webkittransitionend" | "wheel" | "tiledown" | "tilemove" | "tileup" | "tileclick" | "start" | "stop" | "loopEnd" | "loopStart" | "loop", [ev: Event] | [ev: ClipboardEvent] | [ev: UIEvent] | [ev: AnimationEvent] | [ev: MouseEvent] | [ev: InputEvent] | [ev: FocusEvent] | [ev: CompositionEvent] | [ev: DragEvent] | [ev: ErrorEvent] | [ev: FormDataEvent] | [ev: PointerEvent] | [ev: KeyboardEvent] | [time: number] | [ev: ProgressEvent<EventTarget>] | [ev: SecurityPolicyViolationEvent] | [ev: TouchEvent] | [ev: TransitionEvent] | [ev: WheelEvent] | [x: number, y: number] | [x: number, y: number] | [x: number, y: number] | [false] | [x: number, y: number] | [time: number, offset: number] | [time: number] | [time: number] | [time: number, offset: number] | [time: number], AnyEventTarget<ListenerEventMaps, "fullscreenchange" | "fullscreenerror" | "copy" | "cut" | "paste" | "abort" | "animationcancel" | "animationend" | "animationiteration" | "animationstart" | "auxclick" | "beforeinput" | "blur" | "canplay" | "canplaythrough" | "change" | "click" | "close" | "compositionend" | "compositionstart" | "compositionupdate" | "contextmenu" | "cuechange" | "dblclick" | "drag" | "dragend" | "dragenter" | "dragleave" | "dragover" | "dragstart" | "drop" | "durationchange" | "emptied" | "ended" | "error" | "focus" | "focusin" | "focusout" | "formdata" | "gotpointercapture" | "input" | "invalid" | "keydown" | "keypress" | "keyup" | "load" | "loadeddata" | "loadedmetadata" | "loadstart" | "lostpointercapture" | "mousedown" | "mouseenter" | "mouseleave" | "mousemove" | "mouseout" | "mouseover" | "mouseup" | "pause" | "play" | "playing" | "pointercancel" | "pointerdown" | "pointerenter" | "pointerleave" | "pointermove" | "pointerout" | "pointerover" | "pointerup" | "progress" | "ratechange" | "reset" | "resize" | "scroll" | "securitypolicyviolation" | "seeked" | "seeking" | "select" | "selectionchange" | "selectstart" | "stalled" | "submit" | "suspend" | "timeupdate" | "toggle" | "touchcancel" | "touchend" | "touchmove" | "touchstart" | "transitioncancel" | "transitionend" | "transitionrun" | "transitionstart" | "volumechange" | "waiting" | "webkitanimationend" | "webkitanimationiteration" | "webkitanimationstart" | "webkittransitionend" | "wheel" | "tiledown" | "tilemove" | "tileup" | "tileclick" | "start" | "stop" | "loopEnd" | "loopStart" | "loop", [ev: Event] | [ev: ClipboardEvent] | [ev: UIEvent] | [ev: AnimationEvent] | [ev: MouseEvent] | [ev: InputEvent] | [ev: FocusEvent] | [ev: CompositionEvent] | [ev: DragEvent] | [ev: ErrorEvent] | [ev: FormDataEvent] | [ev: PointerEvent] | [ev: KeyboardEvent] | [time: number] | [ev: ProgressEvent<EventTarget>] | [ev: SecurityPolicyViolationEvent] | [ev: TouchEvent] | [ev: TransitionEvent] | [ev: WheelEvent] | [x: number, y: number] | [x: number, y: number] | [x: number, y: number] | [false] | [x: number, y: number] | [time: number, offset: number] | [time: number] | [time: number] | [time: number, offset: number] | [time: number]>>[] = []
internal

Readonly playing

playing: false = false

Readonly renderer

renderer: GridRendererType extends undefined ? GridCanvasRenderer : GridRendererType

The gridrenderer connected to the ToneMatrix

readonly

Static prefixed

prefixed: string | boolean

Accessors

HEIGHT

  • get HEIGHT(): number

WIDTH

  • get WIDTH(): number

Methods

addListener

clear

  • clear(): void

dispose

  • dispose(): void

emit

  • Calls each of the listeners registered for a given event.

    Type parameters

    Parameters

    Returns boolean

eventNames

  • Return an array listing the events for which the emitter has registered listeners.

    Returns (keyof GridRendererEventMap | keyof ToneTransportEventMap)[]

fromBase64

  • fromBase64(base64: string, bitsPerNote: number): boolean
  • Loads a savestate from a string into the grid

    Parameters

    • base64: string

      The base64-encoded savestate string

    • bitsPerNote: number

    Returns boolean

Private listen

  • listen<P, Args, T>(target: T, event: P, listener: (...args: Args) => void): ToneMatrix<GridType, GridRendererType>
  • Add an event listener to a listenable object and save everything needed for removing it later.

    internal

    Type parameters

    • P: "fullscreenchange" | "fullscreenerror" | "copy" | "cut" | "paste" | "abort" | "animationcancel" | "animationend" | "animationiteration" | "animationstart" | "auxclick" | "beforeinput" | "blur" | "canplay" | "canplaythrough" | "change" | "click" | "close" | "compositionend" | "compositionstart" | "compositionupdate" | "contextmenu" | "cuechange" | "dblclick" | "drag" | "dragend" | "dragenter" | "dragleave" | "dragover" | "dragstart" | "drop" | "durationchange" | "emptied" | "ended" | "error" | "focus" | "focusin" | "focusout" | "formdata" | "gotpointercapture" | "input" | "invalid" | "keydown" | "keypress" | "keyup" | "load" | "loadeddata" | "loadedmetadata" | "loadstart" | "lostpointercapture" | "mousedown" | "mouseenter" | "mouseleave" | "mousemove" | "mouseout" | "mouseover" | "mouseup" | "pause" | "play" | "playing" | "pointercancel" | "pointerdown" | "pointerenter" | "pointerleave" | "pointermove" | "pointerout" | "pointerover" | "pointerup" | "progress" | "ratechange" | "reset" | "resize" | "scroll" | "securitypolicyviolation" | "seeked" | "seeking" | "select" | "selectionchange" | "selectstart" | "stalled" | "submit" | "suspend" | "timeupdate" | "toggle" | "touchcancel" | "touchend" | "touchmove" | "touchstart" | "transitioncancel" | "transitionend" | "transitionrun" | "transitionstart" | "volumechange" | "waiting" | "webkitanimationend" | "webkitanimationiteration" | "webkitanimationstart" | "webkittransitionend" | "wheel" | "tiledown" | "tilemove" | "tileup" | "tileclick" | "start" | "stop" | "loopEnd" | "loopStart" | "loop"

    • Args: [ev: Event] | [ev: ClipboardEvent] | [ev: UIEvent] | [ev: AnimationEvent] | [ev: MouseEvent] | [ev: InputEvent] | [ev: FocusEvent] | [ev: CompositionEvent] | [ev: DragEvent] | [ev: ErrorEvent] | [ev: FormDataEvent] | [ev: PointerEvent] | [ev: KeyboardEvent] | [time: number] | [ev: ProgressEvent<EventTarget>] | [ev: SecurityPolicyViolationEvent] | [ev: TouchEvent] | [ev: TransitionEvent] | [ev: WheelEvent] | [x: number, y: number] | [x: number, y: number] | [x: number, y: number] | [false] | [x: number, y: number] | [time: number, offset: number] | [time: number] | [time: number] | [time: number, offset: number] | [time: number] = ListenerEventMaps[P]

    • T: AnyEventTarget<ListenerEventMaps, P, Args> = AnyEventTarget<ListenerEventMaps, P, Args>

    Parameters

    • target: T
    • event: P
    • listener: (...args: Args) => void
        • (...args: Args): void
        • Parameters

          • Rest ...args: Args

          Returns void

    Returns ToneMatrix<GridType, GridRendererType>

listenerCount

  • Return the number of listeners listening to a given event.

    Parameters

    Returns number

listeners

  • Return the listeners registered for a given event.

    Type parameters

    Parameters

    • event: T

    Returns ((...args: ArgumentMap<ToneMatrixEventMap>[T]) => void)[]

off

  • off<T>(event: T, fn?: (...args: ArgumentMap<ToneMatrixEventMap>[T]) => void, context?: any, once?: boolean): ToneMatrix<GridType, GridRendererType>

on

once

pause

  • pause(): void

play

  • play(): void

removeAllListeners

  • Remove all listeners, or those of the specified event.

    Parameters

    Returns ToneMatrix<GridType, GridRendererType>

removeListener

  • removeListener<T>(event: T, fn?: (...args: ArgumentMap<ToneMatrixEventMap>[T]) => void, context?: any, once?: boolean): ToneMatrix<GridType, GridRendererType>

setHeight

  • setHeight(newHeight: number, noteLength?: number | typeof DEFAULT): void

setMuted

  • setMuted(muted: boolean): void
  • Sets whether the ToneMatrix application is muted.

    Parameters

    • muted: boolean

      True for muted, false for unmuted

    Returns void

setSize

  • setSize(newWidth?: number, newHeight?: number, noteLength?: number | typeof DEFAULT): void
  • Set a new grid size

    Parameters

    • Optional newWidth: number

      New width in tiles

    • Optional newHeight: number

      New height in tiles

    • Optional noteLength: number | typeof DEFAULT

      New noteLength. if DEFAULT it will be set to 1 / width if unset will recalculate the default value if using a calcualted default value or keep the currently set value if explicitly set.

    Returns void

setWidth

  • setWidth(newWidth: number, noteLength?: number | typeof DEFAULT): void

stop

  • stop(): void

toBase64

  • toBase64(bitsPerNote: number): string
  • Saves the grid's current state into a savestate string

    Parameters

    • bitsPerNote: number

    Returns string

    The base64-encoded savestate string, ready for saving or outputting in a URL

Private unlisten

  • unlisten<P, Args, T>(target: T, event: P, listener: (...args: Args) => void): ToneMatrix<GridType, GridRendererType>
  • Remove a listener from a listenable object.

    internal

    Type parameters

    • P: "fullscreenchange" | "fullscreenerror" | "copy" | "cut" | "paste" | "abort" | "animationcancel" | "animationend" | "animationiteration" | "animationstart" | "auxclick" | "beforeinput" | "blur" | "canplay" | "canplaythrough" | "change" | "click" | "close" | "compositionend" | "compositionstart" | "compositionupdate" | "contextmenu" | "cuechange" | "dblclick" | "drag" | "dragend" | "dragenter" | "dragleave" | "dragover" | "dragstart" | "drop" | "durationchange" | "emptied" | "ended" | "error" | "focus" | "focusin" | "focusout" | "formdata" | "gotpointercapture" | "input" | "invalid" | "keydown" | "keypress" | "keyup" | "load" | "loadeddata" | "loadedmetadata" | "loadstart" | "lostpointercapture" | "mousedown" | "mouseenter" | "mouseleave" | "mousemove" | "mouseout" | "mouseover" | "mouseup" | "pause" | "play" | "playing" | "pointercancel" | "pointerdown" | "pointerenter" | "pointerleave" | "pointermove" | "pointerout" | "pointerover" | "pointerup" | "progress" | "ratechange" | "reset" | "resize" | "scroll" | "securitypolicyviolation" | "seeked" | "seeking" | "select" | "selectionchange" | "selectstart" | "stalled" | "submit" | "suspend" | "timeupdate" | "toggle" | "touchcancel" | "touchend" | "touchmove" | "touchstart" | "transitioncancel" | "transitionend" | "transitionrun" | "transitionstart" | "volumechange" | "waiting" | "webkitanimationend" | "webkitanimationiteration" | "webkitanimationstart" | "webkittransitionend" | "wheel" | "tiledown" | "tilemove" | "tileup" | "tileclick" | "start" | "stop" | "loopEnd" | "loopStart" | "loop"

    • Args: [ev: Event] | [ev: ClipboardEvent] | [ev: UIEvent] | [ev: AnimationEvent] | [ev: MouseEvent] | [ev: InputEvent] | [ev: FocusEvent] | [ev: CompositionEvent] | [ev: DragEvent] | [ev: ErrorEvent] | [ev: FormDataEvent] | [ev: PointerEvent] | [ev: KeyboardEvent] | [time: number] | [ev: ProgressEvent<EventTarget>] | [ev: SecurityPolicyViolationEvent] | [ev: TouchEvent] | [ev: TransitionEvent] | [ev: WheelEvent] | [x: number, y: number] | [x: number, y: number] | [x: number, y: number] | [false] | [x: number, y: number] | [time: number, offset: number] | [time: number] | [time: number] | [time: number, offset: number] | [time: number] = ListenerEventMaps[P]

    • T: AnyEventTarget<ListenerEventMaps, P, Args> = AnyEventTarget<ListenerEventMaps, P, Args>

    Parameters

    • target: T
    • event: P
    • listener: (...args: Args) => void
        • (...args: Args): void
        • Parameters

          • Rest ...args: Args

          Returns void

    Returns ToneMatrix<GridType, GridRendererType>

Private update

  • update(): void
  • Updates the state of the app, and draws it to the canvas. Called in requestAnimationFrame.

    Returns void

Generated using TypeDoc