Class: MidiInput
Defined in: src/audio/MidiInput.ts:196
Reads live MIDI input and feeds it into manim-web animations.
Constructors
Constructor
new MidiInput(
options):MidiInput
Defined in: src/audio/MidiInput.ts:211
Parameters
options
MidiInputOptions = {}
Returns
MidiInput
Accessors
connected
Get Signature
get connected():
boolean
Defined in: src/audio/MidiInput.ts:363
Whether an access is bound (reads reflect live input).
Returns
boolean
Methods
bindToTracker()
bindToTracker(
tracker,read,options):UpdaterFunction
Defined in: src/audio/MidiInput.ts:331
Drive a ValueTracker from a MIDI read each frame.
Adds an updater to the tracker that sets its value to
offset + read() * scale on every update(dt). Other mobjects follow the
tracker through their own updaters.
Parameters
tracker
The tracker to drive
read
() => number
MIDI read to sample (defaults to getPitchBend)
options
MidiBindOptions = {}
Scale and offset applied to the read
Returns
The updater, so it can be removed with tracker.removeUpdater
connect()
connect(
options):Promise<MidiInput>
Defined in: src/audio/MidiInput.ts:228
Request MIDI access and attach to every input port.
Uses an injected access when one is given (constructor or options);
otherwise calls navigator.requestMIDIAccess(). A no-op that resolves to
this when the Web MIDI API is unavailable.
Parameters
options
MidiConnectOptions = {}
Returns
Promise<MidiInput>
this (resolved) for chaining
createUpdater()
createUpdater<
M>(apply):UpdaterFunction
Defined in: src/audio/MidiInput.ts:352
Build an updater that maps the MIDI state onto any mobject property.
The returned updater passes the mobject, this driver, and dt to apply,
so apply can read notes or controls and set any property. Add it with
mobject.addUpdater(midi.createUpdater(...)).
Type Parameters
M
M extends Mobject
Parameters
apply
(mobject, midi, dt) => void
Returns
dispose()
dispose():
void
Defined in: src/audio/MidiInput.ts:368
Detach from every input port and reset the state.
Returns
void
getControl()
getControl(
controller):number
Defined in: src/audio/MidiInput.ts:275
The latest value [0, 1] of a control-change (CC) number.
Returns 0 when the controller has not been seen.
Parameters
controller
number
MIDI CC number (0..127)
Returns
number
getInputNames()
getInputNames():
string[]
Defined in: src/audio/MidiInput.ts:245
The names of the attached input ports (empty when disconnected).
Returns
string[]
getNote()
getNote(
note):number
Defined in: src/audio/MidiInput.ts:257
The latest velocity [0, 1] of a note, or null when the note is off.
Parameters
note
number
MIDI note number (0..127)
Returns
number
getPitchBend()
getPitchBend():
number
Defined in: src/audio/MidiInput.ts:280
The latest pitch-bend value in [-1, 1] (0 = centered).
Returns
number
isNoteOn()
isNoteOn(
note):boolean
Defined in: src/audio/MidiInput.ts:266
Whether a note is currently held down.
Parameters
note
number
MIDI note number (0..127)
Returns
boolean
onControlChange()
onControlChange(
listener): () =>void
Defined in: src/audio/MidiInput.ts:310
Register a control-change listener.
Parameters
listener
Returns
An unsubscribe function that removes the listener.
():
void
Returns
void
onNoteOff()
onNoteOff(
listener): () =>void
Defined in: src/audio/MidiInput.ts:301
Register a note-off listener.
Parameters
listener
Returns
An unsubscribe function that removes the listener.
():
void
Returns
void
onNoteOn()
onNoteOn(
listener): () =>void
Defined in: src/audio/MidiInput.ts:292
Register a note-on listener.
Parameters
listener
Returns
An unsubscribe function that removes the listener.
():
void
Returns
void