Here's a list of all 96 current nodes, their descriptions, and i/o.
A two dimensional vector with keys x and y
x
: number
y
: number
out
: Vec2
Vec2
A 2D Vector with keys x and y default: `{x:0,y:0}`A WebGL mesh
geometry
: Geometry
The geometry to use with this mesh
Geometry
An abstract geometry that describes verticies in spacematerial
: Material
This mesh's material
Material
An abstract material, usually applied to geometriesrotation
: Vec2
The rotation of this mesh node, in radians
Vec2
A 2D Vector with keys x and y default: `{x:0,y:0}`scale
: Vec3
The scale of this mesh node
Vec3
A 3D Vector with keys x, y, and z default: `{x:0,y:0,z:0}`mesh
: Mesh
The resulting Mesh
Mesh
A mesh that can be added to a scene and renderedA WebGL Points
geometry
: Geometry
The geometry to use with this mesh
Geometry
An abstract geometry that describes verticies in spacematerial
: Material
This mesh's material
Material
An abstract material, usually applied to geometriesrotation
: Vec2
The rotation of this mesh node, in radians
Vec2
A 2D Vector with keys x and y default: `{x:0,y:0}`scale
: Vec3
The scale of this mesh node
Vec3
A 3D Vector with keys x, y, and z default: `{x:0,y:0,z:0}`mesh
: Mesh
The resulting Points object
Mesh
A mesh that can be added to a scene and renderedA WebGL Line
geometry
: Geometry
The geometry to use with this mesh
Geometry
An abstract geometry that describes verticies in spacematerial
: Material
This mesh's material
Material
An abstract material, usually applied to geometriesrotation
: Vec2
The rotation of this mesh node, in radians
Vec2
A 2D Vector with keys x and y default: `{x:0,y:0}`scale
: Vec3
The scale of this mesh node
Vec3
A 3D Vector with keys x, y, and z default: `{x:0,y:0,z:0}`mesh
: Mesh
The resulting Line object
Mesh
A mesh that can be added to a scene and renderedA torus knot (buffer) geometry, with most attributes encoded in buffers so that they are more efficiently transported to your GPU.
radius
: number
The radius of this geometry
tube
: number
The tube radius
tubularSegments
: number
The number of tubular segments for this geometry
radialSegments
: number
The number of radial segments for this geometry
p
: number
The torus knot p
q
: number
The torus knot q
geometry
: Geometry
this particular geometry
Geometry
An abstract geometry that describes verticies in spaceA plane (buffer) geometry, with most attributes encoded in buffers so that they are more efficiently transported to your GPU.
width
: number
The width of this plane
height
: number
The height of this plane
geometry
: Geometry
this particular geometry
Geometry
An abstract geometry that describes verticies in spaceA sphere (buffer) geometry, with most attributes encoded in buffers so that they are more efficiently transported to your GPU.
radius
: number
The radius of the sphere
widthSegments
: number
The number of segments along the geometry width
heightSegments
: number
The number of segments along the geometry height
geometry
: Geometry
this particular geometry
Geometry
An abstract geometry that describes verticies in spaceA box (buffer) geometry, with most attributes encoded in buffers so that they are more efficiently transported to your GPU.
width
: number
The width of this box
height
: number
The height of this box
depth
: number
The depth of this box
geometry
: Geometry
this particular geometry
Geometry
An abstract geometry that describes verticies in spaceGeometries store attributes, e.g. vertex positions, faces, colors.
vertices
: Vec3[]
The array of vertices holds the position of every vertex in the model. To signal an update in this array, verticesNeedUpdate needs to be set to true
Vec3[]
An array of Vec3s. A 3D Vector with keys x, y, and zappendVerts
: boolean
Whether or not incoming verticies param should be appended. If false, incoming params will override verticies.
geometry
: Geometry
this particular geometry
Geometry
An abstract geometry that describes verticies in spaceA material for non-shiny surfaces, without specular highlights.The material uses a non-physically based Lambertian model for calculating reflectance. This can simulate some surfaces (such as untreated wood or stone) well, but cannot simulate shiny surfaces with specular highlights (such as varnished wood).Shading is calculated using a Gouraud shading model. This calculates shading per vertex (i.e. in the vertex shader) and interpolates the results over the polygon's faces.
color
: Color
Color of this material
Color
Hex colormaterial
: Material
The resulting material
Material
An abstract material, usually applied to geometriesA material rendered with custom shaders. A shader is a small program written in GLSL that runs on the GPU.You can use the directive #pragma unroll_loop in order to unroll a for loop in GLSL by the shader preprocessor. The directive has to be placed right above the loop. The loop should be formatted with the standard spec (normalized, var i, paren spacing)Additionally, all shader materials will be subscribed to global uniforms: u_mouse
(vec2), u_time
(float), and u_resolution
(vec2)
vertex
: ShaderProgram
Vertex shader for this shader material
ShaderProgram
An OpenGL compatible GLSL shaderfragment
: ShaderProgram
Fragment shader for this shader material
ShaderProgram
An OpenGL compatible GLSL shadertransparent
: boolean
Whether or not this material responds to an alpha component
material
: Material
The resulting material
Material
An abstract material, usually applied to geometriesA material of particles
color
: Color
Color of this material
Color
Hex colormaterial
: Material
The resulting material
Material
An abstract material, usually applied to geometriesLoad a texture into the global uniform set
url
: string
The url to fetch this texture at
name
: string
The name to export this sampler2D as
This node renders a WebGL scene, by default with a perspective camera
child
: SceneElement
Any scene element[s] to be added
SceneElement
Anything that can be added to a scene, including Meshes, Lights, & Camerasfx
: PostEffect[]
Post render pass(es)
PostEffect[]
An array of PostEffects. A post production render effectclearColor
: RGBColor
The renderer's clear color
RGBColor
RGB representation of a colorclearAlpha
: number
The alpha component for the renderer's clear color
camera
: Camera
The scene's camera
Camera
A camera that exists in a scenescene
: Scene
The scene
Scene
A 3D SceneA DuoSynth is a monophonic synth composed of two MonoSynths run in parallel with control over the frequency ratio between the two voices and vibrato effect.
frequency
: number
The frequency control
volume
: number
The volume of the output in decibels
harmonicity
: number
Harmonicity is the ratio between the two voices. A harmonicity of 1 is no change. Harmonicity = 2 means a change of an octave.
vibratoAmount
: number
The amount of vibrato
vibratoRate
: number
The frequency of vibrato
out
: Synth
Resulting Synth
Synth
Any kind of synthA Synth is composed by routing an OmniOscillator through a AmplitudeEnvelope.
volume
: number
The volume of the output in decibels
oscillator
: OscillatorType
The type of oscillator
OscillatorType
The type of the oscillator: either sine, square, triangle, or sawtooth. Also capable of setting the first x number of partials of the oscillator. For example: sine4 would set be the first 4 partials of the sine wave and triangle8 would set the first 8 partials of the triangle wave.envelope
: AmplitudeEnvelope
The amplitude envelope for this synth
AmplitudeEnvelope
AmplitudeEnvelope is an Envelope connected to a gain node. Unlike Envelope, which outputs the envelope’s value, AmplitudeEnvelope accepts an audio signal as the input and will apply the envelope to the amplitude of the signal.out
: Synth
Resulting Synth
Synth
Any kind of synthTrigger the attack and then the release after the duration. Omitting a duration and calling call results in an attack without release.
synth
: Synth
The synth to use
Synth
Any kind of synthnote
: Note
The frequency to play
Note
Note encoding, can be something like A4, a midi index, or a raw frequency in Hzduration
: time
The duration to play the note for
time
: time
When the note should be triggered
call
: Call
Certain nodes are designated 'callable', i.e. they are operator nodes. Sending a truthy call signal will invoke that node's handler over its parameters
Call
Something that is callabledraw
: object
An note / duration object that is signalled when this node triggers its attack
object
An object with arbitrary keys and valuesConnect an audio node to the master audio output
node
: AudioNode
Any Audio node to connect to the audio master output
AudioNode
Any kind of audio nodeout
: AudioNode
The same node, connected to the master output
AudioNode
Any kind of audio nodeAn equal power Left/Right stereo Panner
node
: AudioNode
The audio node to connect to this panner.
AudioNode
Any kind of audio nodepan
: number
The pan control. -1 = hard left, 1 = hard right
out
: Panner
A node panned to the pan
value
Panner
An audio pannode
: AudioNode
The node that was passed in, connected to the panner
AudioNode
Any kind of audio nodeA DelayNode in which part of output signal is fed back into the delay
node
: AudioNode
The audio node to connect to this feedback delay
AudioNode
Any kind of audio nodedelayTime
: time
The delay applied to the incoming signal
feedback
: number
feedback The amount of the effected signal which is fed back through the delay.
out
: FeedbackDelay
The resulting FeedbackDelayNode
FeedbackDelay
A feedback delaynode
: AudioNode
The node that was passed in, connected to the feedback delay
AudioNode
Any kind of audio nodeA node which is used to delay the incoming audio signal by a certain amount of time
node
: AudioNode
The audio node to connect to this feedback delay
AudioNode
Any kind of audio nodedelayTime
: number
An a-rate AudioParam representing the amount of delay to apply
out
: AudioNode
The resulting DelayNode
AudioNode
Any kind of audio nodenode
: AudioNode
The node that was passed in, connected to the delay
AudioNode
Any kind of audio nodeThe GainNode interface represents a change in volume. It is an AudioNode audio-processing module that causes a given gain to be applied to the input data before its propagation to the output
node
: AudioNode
The audio node to connect to this feedback delay
AudioNode
Any kind of audio nodegain
: number
An a-rate AudioParam representing the amount of gain to apply
gain
: Gain
The resulting GainNode
Gain
An audio gainnode
: AudioNode
The node that was passed in, connected to the gain
AudioNode
Any kind of audio nodeinput
: object
object
An object with arbitrary keys and valuesout
: object
object
An object with arbitrary keys and valuesA node which emits any value and a count at a regular time interval.
value
: any
Any input to emit at this interval
interval
: number
The interval at which this node will emit, in miliseconds
count
: number
The number of times this node has emitted so far.
value
: any
The input value passed in
Set the note for a Synth
synth
: Synth
The synth to use
Synth
Any kind of synthnote
: Note
The frequency to set on the synth
Note
Note encoding, can be something like A4, a midi index, or a raw frequency in Hztime
: time
Time which the note should be set on the synth
call
: Call
Certain nodes are designated 'callable', i.e. they are operator nodes. Sending a truthy call signal will invoke that node's handler over its parameters
Call
Something that is callableSet the note for a Synth
interval
: time
The interval at which this node loops
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
iterations
: number
The number of iterations of the loop. The default value is Infinity (loop eternally)
mute
: boolean
Muting the Loop means that no callbacks are invoked
humanize
: boolean
Random variation +/-0.01s to the scheduled time. Or give it a time value which it will randomize by
i
: number
The number of times this node has looped so far.
Start a transport time. This will put all Transport time schedules into motion
transport
: object
The Transport Time to start
object
An object with arbitrary keys and valuesTransport for timing musical events. Supports tempo curves and time changes. Unlike event-loop timing (IntervalNode), events backed by this scheduler need to specify the exact time of their schedules. It is useful to think of there only being one governing Transport Time for your whole graph, i.e. don't define more than one of these, or if you do, recognize that you are modifying a single global transport time.
bpm
: number
The tempo to set for this transport. See the docs on the time type to understand how time can be expressed in terms of metered time.
out
: object
Resulting transport
object
An object with arbitrary keys and valuesConnect one audio node to another
from
: AudioNode
Connect from any audio node
AudioNode
Any kind of audio nodeto
: AudioNode
Connect to any audio node
AudioNode
Any kind of audio nodefrom
: AudioNode
The same node, connected
AudioNode
Any kind of audio nodeto
: AudioNode
The same node, connected
AudioNode
Any kind of audio nodeThe current context destination
node
: AudioNode
The current context destination node
AudioNode
Any kind of audio nodeConnect an audio node to audio context destination
node
: AudioNode
Any Audio node to connect to the context destination
AudioNode
Any kind of audio nodeout
: AudioNode
The same node, connected to the context destination
AudioNode
Any kind of audio nodeA virtual Salamander grand piano as a Tone Node
out
: AudioNode
A piano node
AudioNode
Any kind of audio nodeArpeggiate between the given notes in a number of patterns
notes
: Note[]
Notes to arpeggiate over
Note[]
An array of Notes. Note encoding, can be something like A4, a midi index, or a raw frequency in Hzinterval
: time
The interval at which this node loops
pattern
: Pattern
The arpeggiation pattern. See the Pattern
type for options.
Pattern
Arpeggio pattern. Possible values areup - cycles upwarddown - cycles downwardupDown - up then and downdownUp - cycles down then and upalternateUp - jump up two and down onealternateDown - jump down two and up onerandom - randomly select an indexrandomWalk - randomly moves one index away from the current positionrandomOnce - randomly select an index without repeating until all values have been chosen.humanize
: boolean
Random variation +/-0.01s to the scheduled time. Or give it a time value which it will randomize by
probability
: number
probability that each iteration will play, [0,1]
note
: Note
The note
Note
Note encoding, can be something like A4, a midi index, or a raw frequency in Hztime
: time
Time accompanying the note
A node which compresses signals from its origin. Compression reduces the volume of loud sounds or amplifies quiet sounds by narrowing or "compressing" an audio signal's dynamic range.
node
: AudioNode
The audio node to connect to this compressor.
AudioNode
Any kind of audio nodethreshold
: number
The value above which the compression starts to be applied.
ratio
: number
The gain reduction ratio
out
: Compressor
The compressor node
Compressor
An object with arbitrary keys and valuesnode
: AudioNode
The node that was passed in, connected to the compressor
AudioNode
Any kind of audio nodeA Reverb based on Freeverb (https://ccrma.stanford.edu/~jos/pasp/Freeverb.html).
node
: AudioNode
The audio node to connect to this reverb node
AudioNode
Any kind of audio nodedampening
: time
The amount of dampening of the reverberant signal
roomSize
: number
The roomSize value between [0,1]. A larger roomSize will result in a longer decay
out
: Reverb
The resulting Reverb Node
Reverb
An object with arbitrary keys and valuesnode
: AudioNode
The node that was passed in, connected to the reverb
AudioNode
Any kind of audio nodePlay a sound file from a remote source
url
: url
the url to fetch the sound file from.
url
A basic string typecall
: Call
Certain nodes are designated 'callable', i.e. they are operator nodes. Sending a truthy call signal will invoke that node's handler over its parameters
Call
Something that is callableloop
: boolean
Whether or not the player should loop its contents indefinitely
player
: Player
The player node
Player
An object with arbitrary keys and valuesA simple volume node, useful for creating a volume fader.
node
: AudioNode
The audio node to connect to this Volume node.
AudioNode
Any kind of audio nodevolume
: number
The volume, in decibels
out
: Volume
The volume node
Volume
An object with arbitrary keys and valuesnode
: AudioNode
The node that was passed in, connected to this volume node
AudioNode
Any kind of audio nodeRamp a signal to a value over a time
signal
: Signal
The signal to ramp
Signal
An audio signal, like volume, pan, frequency, etc.toValue
: time
The value to ramp to
rampTime
: time
The amount of time it takes to ramp
A noise source
type
: string
The type of noise. One of pink, brown, or white.
volume
: number
The volume of the noise, in dB
rate
: number
The playback rate of the noise [0, 1]
noise
: AudioNode
The noise
AudioNode
Any kind of audio nodeA virtual instrument
name
: string
The name of the soundfont to use. Possible values:accordion, acoustic_bass, acoustic_grand_piano, acoustic_guitar_nylon, acoustic_guitar_steel, agogo, alto_sax, applause, bagpipe, banjo, baritone_sax, bassoon, bird_tweet, blown_bottle, brass_section, breath_noise, bright_acoustic_piano, celesta, cello, choir_aahs, church_organ, clarinet, clavinet, contrabass, distortion_guitar, drawbar_organ, dulcimer, electric_bass_finger, electric_bass_pick, electric_grand_piano, electric_guitar_clean, electric_guitar_jazz, electric_guitar_muted, electric_piano_1, electric_piano_2, english_horn, fiddle, flute, french_horn, fretless_bass, fx_1_rain, fx_2_soundtrack, fx_3_crystal, fx_4_atmosphere, fx_5_brightness, fx_6_goblins, fx_7_echoes, fx_8_scifi, glockenspiel, guitar_fret_noise, guitar_harmonics, gunshot, harmonica, harpsichord, helicopter, honkytonk_piano, kalimba, koto, lead_1_square, lead_2_sawtooth, lead_3_calliope, lead_4_chiff, lead_5_charang, lead_6_voice, lead_7_fifths, lead_8_bass__lead, marimba, melodic_tom, music_box, muted_trumpet, oboe, ocarina, orchestra_hit, orchestral_harp, overdriven_guitar, pad_1_new_age, pad_2_warm, pad_3_polysynth, pad_4_choir, pad_5_bowed, pad_6_metallic, pad_7_halo, pad_8_sweep, pan_flute, percussive_organ, piccolo, pizzicato_strings, recorder, reed_organ, reverse_cymbal, rock_organ, seashore, shakuhachi, shamisen, shanai, sitar, slap_bass_1, slap_bass_2, soprano_sax, steel_drums, string_ensemble_1, string_ensemble_2, synth_bass_1, synth_bass_2, synth_brass_1, synth_brass_2, synth_choir, synth_drum, synth_strings_1, synth_strings_2, taiko_drum, tango_accordion, telephone_ring, tenor_sax, timpani, tinkle_bell, tremolo_strings, trombone, trumpet, tuba, tubular_bells, vibraphone, viola, violin, voice_oohs, whistle, woodblock, xylophone
attack
: number
The attack to use for this instrument
decay
: number
The decay to use for this instrument
release
: number
The release to use for this instrument
sustain
: number
The sustain to use for this instrument
out
: SoundFont
Resulting SoundFont
SoundFont
A sample set assembled to be a virtual instrumentA Node which plays tone data to a SoundFont instrument
soundFont
: SoundFont
The particular sound font to use.
SoundFont
A sample set assembled to be a virtual instrumenttoneData
: ToneData
Data fed in through this channel will be sent to the sound font instrument to play
ToneData
Directives for an instrument / synth to play.midiData
: MidiData
Data fed in through this channel will be sent to the sound font instrument to play
MidiData
Midi signal. Usually a note, action, velocity, and channel informationmidiDevice
: MidiInput
Optionally attach a midi input to this node to send signals to the soundfont
MidiInput
A connected MIDI inputDivide one number by another
dividend
: number
divisor
: number
result
: number
int
: number
remainder
: number
Sum across numbers
numbers
: number
All numbers to add together
result
: number
Sum
Multiply over numbers
numbers
: number
All numbers to multiply together
result
: number
Product
Admittedly a node borne of laziness -- given a standard js math package operation name, this node performs that operation. Constants are included. Full signature list in MathFnIntInt help. For non unary functions like min, an array argument can be spread into the args.
fn
: MathFn
The function name. Check type info for options
MathFn
Signatures for the available functionsE: number; LN10: number; LN2: number; LOG10E: number; LOG2E: number; PI: number; SQRT1_2: number; SQRT2: number; abs(x: number): number; acos(x: number): number; acosh(x: number): number; asin(x: number): number; asinh(x: number): number; atan(x: number): number; atan2(y: number, x: number): number; atanh(x: number): number; cbrt(x: number): number; ceil(x: number): number; cos(x: number): number; cosh(x: number): number; exp(x: number): number; expm1(x: number): number; floor(x: number): number; fround(x: number): number; log(x: number): number; log10(x: number): number; log1p(x: number): number; log2(x: number): number; pow(x: number, y: number): number; random(): number; round(x: number): number; sign(x: number): number; sin(x: number): number; sinh(x: number): number; sqrt(x: number): number; tan(x: number): number; tanh(x: number): number; trunc(x: number): number; max(...args: number[]); min(...args: number[])in
: number
result
: number
A color representation
r
: number
red channel, [0,255]
g
: number
green channel, [0,255]
b
: number
blue channel, [0,255]
hex
: number
hex representation of this color
rgb
: RGBColor
rgb representation
RGBColor
RGB representation of a colorA focused light, intended to be added to a scene
color
: RGBColor
The color of this directional light
RGBColor
RGB representation of a colorlight
: Light
The directional light source
Light
A light source in a sceneAn ambient light, intended to be added to a scene
color
: RGBColor
The color of this ambient light
RGBColor
RGB representation of a colorlight
: Light
The ambient light source
Light
A light source in a sceneA holy perturbation
delay
: Vec2
the min and max delay between glitches, as a 2d vector in second units
Vec2
A 2D Vector with keys x and y default: `{x:0,y:0}`glitch
: PostEffect
glitchy pass that can be applied to a render
PostEffect
A post production render effectA scanline post-process effect
pass
: PostEffect
a scanline pass that can be applied to a render
PostEffect
A post production render effecteffect
: object
the effect info
object
An object with arbitrary keys and valuesA Dot-screen post-process effect
pass
: PostEffect
a dotscreen pass that can be applied to a render
PostEffect
A post production render effecteffect
: object
the effect info
object
An object with arbitrary keys and valuesA Vignette post-process effect
opacity
: number
The vignette opacity [0,1]
offset
: number
The vignette offset [0,1]
darkness
: number
The vignette darkness [0,1]
pass
: PostEffect
a vignette pass that can be applied to a render
PostEffect
A post production render effecteffect
: object
the effect info
object
An object with arbitrary keys and valuesA noise post-process effect
opacity
: number
the blending opacity
pass
: PostEffect
a noise pass that can be applied to a render
PostEffect
A post production render effecteffect
: object
the effect info
object
An object with arbitrary keys and valuesA two dimensional vector with x y and z components
x
: number
y
: number
z
: number
out
: Vec3
Vec3
A 3D Vector with keys x, y, and z default: `{x:0,y:0,z:0}`Logical AND over inputs
input
: any
Any set of members to logical AND
over
result
: number
Logical and of inputs
Logical OR over inputs
input
: any
Any set of members to logical OR
over
result
: number
Logical OR of inputs
logical not
in
: any
anything. negation follows regular js semantics
result
: boolean
Strict equals operator
input
: any
Any set of members to perform strict equals over
result
: number
Logical equals over inputs
An If-Else switch on value equality
value
: any
Any value, as input to the switch
not
: any
Any value to use to compare the input to
else
: any
Any value to return if not logically equal
result
: any
Result of the switch
Sample an RNN model trained on the Yamaha e-Piano Competition dataset
scale
: PitchHistogram
This pitch distribution will be used as a tonic to condition this model
PitchHistogram
A scale represented as a distribution of pitch classes. Valid inputs are either an array of numbers (len 12), or a single string of len 12 that describes relative semitone distributions (ranged 0-9). 0-indexed at C.e.g. F Major could be either array: [1, 0, 1, 0, 1, 2, 0, 1, 0, 1, 1, 0] or string:"101012010110"density
: number
A density conditioning variable between 0-6 that serves as a directive for how many notes will be generated per step, in exponential scale. i.e. notes generated per step will be 2^density
stepsPerSecond
: number
number of steps per second. effectively a tempo measure for note generation / playback
synth
: Synth
Optionally attach a synth to this node and trigger its attack / release
Synth
Any kind of synthmidiOut
: MidiOut
Optionally attach a midi output to this node and send midi signals to that device
MidiOut
A connected MIDI outputmidiData
: object
midi data out
object
An object with arbitrary keys and valuestoneData
: ToneData
tone out node
ToneData
Directives for an instrument / synth to play.Computes the next states and outputs of a stack of LSTMCells.
lstmCells
: Tensor
The weights for the cell
Tensor
n-dimensional tensordata
: Tensor
The input to the cell
Tensor
n-dimensional tensorc
: Tensor
Previous cell state
Tensor
n-dimensional tensorh
: Tensor
Previous cell output
Tensor
n-dimensional tensornewC
: Tensor
Next cell state
Tensor
n-dimensional tensornewH
: Tensor
Next cell output
Tensor
n-dimensional tensorComputes the next state and output of a BasicLSTMCell
forgetBias
: Tensor
Forget bias for the cell
Tensor
n-dimensional tensorlstmKernel
: Tensor
The weights for the cell
Tensor
n-dimensional tensorlstmBias
: Tensor
The bias for the cell
Tensor
n-dimensional tensordata
: Tensor
The input to the cell
Tensor
n-dimensional tensorc
: Tensor
Previous cell state
Tensor
n-dimensional tensorh
: Tensor
Previous cell output
Tensor
n-dimensional tensornewC
: Tensor
Next cell state
Tensor
n-dimensional tensornewH
: Tensor
Next cell output
Tensor
n-dimensional tensorLog any inputs as they come to console info
anything
: any
Anything you would like to log
anything
: any
The input, passed through
A Musical scale
tonic
: string
The tonic for this scale, e.g. "C" or "Ab4". You can optionally specify the scale name here too, and omit the name input, e.g. "C minor pentatonic" See the name param info for possible scale names.
name
: ScaleName
The name of the scale. Check type for possible values
ScaleName
One of:major pentatonic ionian pentatonic mixolydian pentatonic ritusen egyptian neopolitan major pentatonic vietnamese 1 pelog kumoijoshi hirajoshi iwato in-sen lydian pentatonic malkos raga locrian pentatonic minor pentatonic minor six pentatonic flat three pentatonic flat six pentatonic scriabin whole tone pentatonic lydian #5P pentatonic lydian dominant pentatonic minor #7M pentatonic super locrian pentatonic minor hexatonic augmented major blues piongio prometheus neopolitan prometheus mystery #1 six tone symmetric whole tone messiaen's mode #5 minor blues locrian major double harmonic lydian harmonic minor altered locrian #2 mixolydian b6 lydian dominant lydian lydian augmented dorian b2 melodic minor locrian ultralocrian locrian 6 augmented heptatonic dorian #4 lydian diminished phrygian leading whole tone lydian minor phrygian dominant balinese neopolitan major aeolian harmonic major double harmonic major dorian hungarian minor hungarian major oriental flamenco todi raga mixolydian persian major enigmatic major augmented lydian #9 messiaen's mode #4 purvi raga spanish heptatonic bebop bebop minor bebop major bebop locrian minor bebop diminished ichikosucho minor six diminished half-whole diminished kafi raga messiaen's mode #6 composite blues messiaen's mode #3 messiaen's mode #7 chromaticnotes
: Note[]
The notes in this scale
Note[]
An array of Notes. Note encoding, can be something like A4, a midi index, or a raw frequency in Hzintervals
: Interval[]
The intervals between notes in this scale
Interval[]
An array of Intervals. Natural interval name, e.g. 1P, 2M, 3M, 4P, 5P, 6m, 7mA chroma representation of a pitchset as a 12-digit binary array, with each index presenting one semitone of the octave
notes
: Note[]
A list of notes to compute a chroma for
Note[]
An array of Notes. Note encoding, can be something like A4, a midi index, or a raw frequency in Hzchroma
: number[]
the chroma output: 12-digit binary array, with each index presenting one semitone of the octave
number[]
An array of numbers. A basic number typeA Chord
tonic
: string
The tonic for this scale, e.g. "C" or "Ab4". You can optionally specify the chord name here too, and omit the name input, e.g. "E Maj7" See the name param info for recognized chord names.
name
: ChordName
The name of the chord. Check type for possible values
ChordName
One of:5 M7#5sus4 7#5sus4 sus4 M7sus4 7sus4 7no5 aug M7b6 maj7#5 7#5 7b13 M maj7 7 6 7add6 7b6 Mb5 M7b5 7b5 maj#4 7#11 M6#11 7#11b13 m#5 mb6M7 m7#5 m m/ma7 m7 m6 mMaj7b6 dim oM7 m7b5 dim7 o7M7 4 madd4 m7add11 +add#9 7#5#9 7#9 13#9 7#9b13 maj7#9#11 7#9#11 13#9#11 7#9#11b13 sus2 M9#5sus4 sus24 M9sus4 11 9sus4 13sus4 9no5 13no5 M#5add9 maj9#5 9#5 9b13 Madd9 maj9 9 6/9 maj13 M7add13 13 M9b5 9b5 13b5 9#5#11 maj9#11 9#11 69#11 M13#11 13#11 9#11b13 m9#5 madd9 mM9 m9 m69 m13 mMaj9b6 m9b5 m11A m11 b9sus 11b9 7sus4b9b13 alt7 7#5b9 Maddb9 M7b9 7b9 13b9 7b9b13 7#5b9#11 7b9#11 13b9#11 7b9b13#11 mb6b9 7b9#9notes
: Note[]
The notes in this chord
Note[]
An array of Notes. Note encoding, can be something like A4, a midi index, or a raw frequency in Hzintervals
: Interval[]
The intervals between notes in this chord
Interval[]
An array of Intervals. Natural interval name, e.g. 1P, 2M, 3M, 4P, 5P, 6m, 7mA Musical note
name
: string
The name of the note. e.g. A or Gb4
chroma
: number
Chroma index of this note, normalized on C
frequency
: number
Frequency of this note
octave
: number
Octave of this note
A tuning system
scale
: string[]
A list of either ratios or cents, omitting the tonic, and including the octave (i.e. .scl format lines)
string[]
An array of strings. A basic string typetonic
: string
Either a raw value in Hz, or a tuple pinning a scale degree to a frequency, e.g. [440, 6]
frequencies
: number[]
Frequencies of the scale, beginning at the tonic
number[]
An array of numbers. A basic number typetuning
: TuningSystem
The output tuning system for use in e.g. Tuning Frequency node
TuningSystem
A tuning systemGiven a Tuning system, compute a frequency for a scale degree and octave offset
tuning
: TuningSystem
The input Tuning system, as given by a Tuning node
TuningSystem
A tuning systemdegree
: number
The scale degree to get a frequency for, zero-indexed
octaveOffset
: number
The octave offset from the tuning system tonic for the scale degree, optional.
frequency
: number
Frequency of the scale degree, given the tuning system
Transpose a note by an interval. e.g. transpose(A4, M3) -> C#5
note
: string
The note to transpose. This can be abstract or a concrete pitch, i.e. C or C4
interval
: string
The interval to transpose by, e.g. P5 or M3
out
: string
The note, transposed by the interval
Triads For a Key
key
: string
The name of the key (a tonic + a mode), e.g. C major, Db dorian
notes
: Note[]
Triad lead-sheet symbols for this key
Note[]
An array of Notes. Note encoding, can be something like A4, a midi index, or a raw frequency in HzGiven a list of notes, get possible chord names.
notes
: Note[]
List of input notes
Note[]
An array of Notes. Note encoding, can be something like A4, a midi index, or a raw frequency in Hzchords
: ChordName[]
Possible chord names
ChordName[]
An array of ChordNames. One of:5 M7#5sus4 7#5sus4 sus4 M7sus4 7sus4 7no5 aug M7b6 maj7#5 7#5 7b13 M maj7 7 6 7add6 7b6 Mb5 M7b5 7b5 maj#4 7#11 M6#11 7#11b13 m#5 mb6M7 m7#5 m m/ma7 m7 m6 mMaj7b6 dim oM7 m7b5 dim7 o7M7 4 madd4 m7add11 +add#9 7#5#9 7#9 13#9 7#9b13 maj7#9#11 7#9#11 13#9#11 7#9#11b13 sus2 M9#5sus4 sus24 M9sus4 11 9sus4 13sus4 9no5 13no5 M#5add9 maj9#5 9#5 9b13 Madd9 maj9 9 6/9 maj13 M7add13 13 M9b5 9b5 13b5 9#5#11 maj9#11 9#11 69#11 M13#11 13#11 9#11b13 m9#5 madd9 mM9 m9 m69 m13 mMaj9b6 m9b5 m11A m11 b9sus 11b9 7sus4b9b13 alt7 7#5b9 Maddb9 M7b9 7b9 13b9 7b9b13 7#5b9#11 7b9#11 13b9#11 7b9b13#11 mb6b9 7b9#9A midi output device. If no id / name are provided, the first midi device found will be used
id
: string
The midi out device id or name. The first matching one will be used in the case of collisions
device
: MIDIDevice
The midi output, or none if none were found
MIDIDevice
Web MIDIDevice objectA midi input device. If no id / name are provided, the first midi device found will be used
id
: string
The midi in device id or name. The first matching one will be used in the case of collisions
device
: MIDIDevice
The midi input, or none if none were found
MIDIDevice
Web MIDIDevice objectFind system MIDI devices
outputs
: MIDIDevice[]
MIDI outputs found on your system
MIDIDevice[]
An array of MIDIDevices. Web MIDIDevice objectinputs
: MIDIDevice[]
MIDI inputs found on your system
MIDIDevice[]
An array of MIDIDevices. Web MIDIDevice objectListen to events from a MIDI device
id
: string
The MIDI device ID to listen on
eventType
: string
The type of event to listen for. One of noteoff, noteon, midimessage
event
: MIDIEvent
Output event
MIDIEvent
Either a noteon, noteoff, or midievent messagenotes
: string[]
Currently playing notes
string[]
An array of strings. A basic string typeParse a string into an object
in
: string
String serialization
out
: object
Parsed object
object
An object with arbitrary keys and valuesExtract a value from an object. Complement of SetNode
from
: object
Object to extract from
object
An object with arbitrary keys and valuesget
: string
The key to get. You can traverse an object with dot notation, i.e. foo.bar
out
: any
The extracted value, or undefined
Set a value on any object / array. Complement of ExtractNode
target
: object
Object / array to set to
object
An object with arbitrary keys and valuespath
: string
The path to set at. You can use dot notation, i.e. foo.bar
value
: any
The value to set at path.
out
: any
The extracted value, or undefined
Stephen Wolfram is an operator that, when given a 1D cellular automata rule number [0-255] and a binary representation of the world, outputs the subsequent state of the world according to that rule. He can do this indefinitely and is, in fact, Earth's first eternal human.
rule
: number
The rule number. Given a binary state and two neighbors (2^3 states), a transition rule set can be encoded with a binary number with each digit slot representing the next state of that configuration (2^(2^3) rule sets).
initialState
: any
He doesn't know or care where it comes from, but Wolfram needs an initial state in order to operate. His world is probably circular, so the first index and last index are assumed to be neighbors for rule application. Both binary strings and binary arrays are acceptable.
call
: Call
Certain nodes are designated 'callable', i.e. they are operator nodes. Sending a truthy call signal will invoke that node's handler over its parameters
Call
Something that is callableout
: number[]
The resulting binary array
number[]
An array of numbers. A basic number typeBuffer values from an input stream. If memory capacity is reached, oldest values are purged first
capacity
: number
The max number of elements to keep. Omitting this means no limit
value
: any
Any value. This will be pushed into the output collector
out
: any[]
The collected queue, oldest to newest.
any[]
An array of anys. This can be anythingJoin an array of values together with a separator
array
: object
Array of any data. Ideally this data is string serializable.
object
An object with arbitrary keys and valuesseparator
: string
Separator string to join elements together with
out
: string
The joined array, as a string
Replace a regex match with something else
string
: string
The string over which to perform the replace
regex
: string
the regexp
replacement
: string
The string to replace matches with
out
: string
The joined array, as a string
Create an array filled with a value
length
: number
The length of this array
fillWith
: any
The value to fill with
out
: any[]
An array, filled to length by value
any[]
An array of anys. This can be anythingCreate an array filled with a value
count
: number
The output count
Zip elements from an input stream
arg1
: any
Any object to zip
arg2
: any
Any object to zip
arg3
: any
Any object to zip
arg4
: any
Any object to zip
zipped
: any[]
The zipped object
any[]
An array of anys. This can be anythingA passthrough node. Useful to name streams or to organize edges
input
: any
Any input. Will be passed directly to output
output
: any
The input, passed through
A node that renders HTML to the screen
html
: string
The html for this element
text
: string
The inner text of this element
style
: string
The style attribute for this node
A plus operator. Usable with both strings and numbers.
left
: any
left hand side
right
: any
right hand side
out
: any
The result
Define a GPGPU program to be run on your machine's compatible backend
userCode
: GPGPUKernel
Your user code for the kernel to be uploaded to your graphics hardware. Syntax is specific to your backend, but a good strategy is conforming to the OpenGL/WebGL standards that most GPUs will support. In order to set an output to your kernel call setOutput in your kernel's main function. To get the output coords in your computation call getOutputCoords.
GPGPUKernel
An open frameworks compliant shader programoutputShape
: number[]
A tensor shape describing the kernel output, e.g. [100, 100]. if omitted, output shape is assumed to be the same as the input shape
number[]
An array of numbers. A basic number typevariableNames
: string[]
A list of variable names that your kernel will use. This gives you access to functions inside your program kernel. i.e. variable named X gives you the methods getXAtOutCoords and getX
string[]
An array of strings. A basic string typeprogram
: GPGPUProgram
Program info output. Use the "Run GPGPU" node to compile and run this over inputs
GPGPUProgram
An uncompiled GPGPU programCompile and run a GPGPU program. Kernels passed in will be compiled and cached, so that subsequent calls to kernels will not create new binaries.
program
: GPGPUProgram
The uncompiled program info to be turned into a full WebGL shader
GPGPUProgram
An uncompiled GPGPU programinput
: any[]
The input tensor to run through the compiled program kernel
any[]
An array of anys. This can be anythingresult
: any[]
Program output
any[]
An array of anys. This can be anythingDefine arbitrary JS code in this node. Runtime compatibility is based on your browser
userCode
: JSFunction
A JS code block that returns something over the inputs. You can reference variables by input name, e.g. arg1
JSFunction
A valid JS code block. You should call return at the end of your function to provide an output.arg1
: any
Any arg to supply to the user code block, accessible via arg1
arg2
: any
Any arg to supply to the user code block, accessible via arg2
arg3
: any
Any arg to supply to the user code block, accessible via arg3
arg4
: any
Any arg to supply to the user code block, accessible via arg4
arg5
: any
Any arg to supply to the user code block, accessible via arg5
return
: any
Whatever was returned in the userCode block
error
: any
If the user code errored, this is the exception and function
out
: number
out
: string
out
: boolean
out
: date