-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the vis-audio wiki!
The user may interact with audio and physics, scoring points or enjoying a screensaver.
- Support any standard MIDI file.
- Initiate a 5-second countdown.
- Offer playback controls.
- Check framerate to moderate quality.
- Check clocks to re-sync audio.
- Parse notes to add interactive beats.
- Display music score as a texture.
- Offer playback controls.
- View spectrum with presets.
- View bass and treble with noise.
Magenta Music module.
-
button
-- upload MIDI file -
config
-- formm.PianoRollSVGVisualizer
-
dom
-- formm.PianoRollSVGVisualizer
-
mmPlay
-- formm.Player
, re-syncs clock, and lights up shield whennote.active
isnote.isDrumBD
-
playback
-- audio control from button -
state
-- playback state
WebAudio module.
-
analyser
--THREE.AudioAnalyser
usesWA.sound
-
button
-- audio control from button -
help
-- returnsavg
andmax
from Array -
noise
-- Perlin, FBM makes skybox and ceiling pulse with treble/bass respectively. -
sound
--THREE.Audio
Config, used by gui.set
and ux
.
-
accents
-- used by lights and materials -
axis
-- focal majority for visualizer preset -
bands
-- peaks forfpath
use power frommax
-
delay
-- countdown timer formidi
playback -
demo
-- alternate presetsux.update
, schedulingux.tween
tovar.time
-
intensity
-- global light value -
iso
-- relative unit, to scale a note -
loss
-- relative unit, to moderate quality. Decreases DPI, and drops frames inmidi
. ReducespolySynth.maxPolyphony
for complex MIDI playback. -
primary
-- used by lights and materials -
shield
-- rotation -
type
-- spectrum variation for visualizer preset
Add spectrum bands using specified power. Outputs an InstancedMesh based on vars.PATH
.
Visualize bass/treble on vars.environ
using WebAudio from WA
each render
.
Creates visualizer PATH
coordinates, then outputs fmesh
.
Primary source of visualizer updates from WA
affecting position and physics.
Dat.GUI utility access to controllers
, create
, and set
.
Utility to create a THREE.Material, or coerce its type based on quality loss.
- Called on
MM.button
, it creates anoteSequence
and bins notes (for draw range), with instrument type. - Called every
render
, it updatesmidiNote
andmidiBeat
from clocks. - ...also idle state.
Update ux.update
, WA
, and midi
.
--
Init function to setup scene, physics, and event listeners.
-
beat
-- classify note, then reset and schedule instancedmidiBeat
userData -
mouse
-- -
pointer
-- cursor x/y -
raycaster
-- intersects abeat
frommidi
inux
-
resize
-- throttle canvas -
tween
-- schedulesvar.time
destinations -
update
--- sets
cfg.loss
from resolution and delta. Stops critically slow MIDI playback. - raycasts
midiBeat
- rotates shield
- cycles
demo
: camera, light, visualizer
- sets
-
PATH
-- generic and specific visualizer preset data -
camera
-- -
cameraCatmull
-- below the scene it creates a renderTexture -
controls
-- -
environ
-- Group of THREE scene -
frame
-- -
freqBand
-- main visualizer InstancedMesh -
freqPeak
-- on-demand physics blocks InstancedMeshes -
matCatmullL
-- line material for bands (debug) -
matCatmullM
-- mesh material for radial oscillator -
matCatmullT
-- texture for flower-pulse-drumpad-things -
midiBeat
-- interactive MIDI notes -
midiNote
-- PlaneGeometry InstancedMesh used byMM
to rendernoteSequence
-
physics
-- reference Oimo -
renderCatmull
-- RenderTarget formatCatmullT
-
renderMIDI
-- RenderTarget formidiNote
-
renderer
-- -
resolution
-- -
scene
-- -
sceneMIDI
-- low-resolution scene formidiNote
RenderTarget -
time
-- LOD delta andux
scheduler