π‘ Concepts (why it's built this way)
A quick look at why VJam works this way π‘ Understanding the setup makes you faster at using it.
π₯ Dual engines (two visual engines)
VJam runs two visual engines:
- MilkDrop (~945) π flashy WebGL visuals that react beautifully to sound β the classic music visualizer
- p5.js (~426) π free-form visuals drawn by code (shapes, particles, 3D, shaders)
Why two? π MilkDrop creates the swirling base, and p5 adds effects on top. So it's not one flat image β it's a visual that builds up live. Together, that's 1,300+ presets π¨
The controls match that setup π tap = add a p5 on top / swipe = swap the MilkDrop base. So you can change things up mid-set without blowing up the whole look (β π¨ Presets chapter).
π± Decks are independent
- Deck A and B each have their own engine (changing one doesn't affect the other)
- The crossfade is an opacity blend (overlaying and mixing the two)
- That's what lets Deck A and B keep separate states while you move between them with the fader (β π± Deck chapter)
π«§ Visuals you can feel β designing the sound reaction
- VJam's visuals aren't meters and numbers β they're built for reactions you can feel instantly: bursts on the beat, pulsing, shifting color
- So you can tell at a glance that it's locked to the music
- Preset authoring details are kept in the internal developer documentation.
ποΈ Modulation (drive parameters with sound)
- You can tie a preset's parameters (size, speed, color, etc.) to the sound automatically
- In the Cockpit parameter panel, tap a purple chip (Mod) to bind a source π
bass / mid / treble / rms / strength / beatPulse / bpm - Example: bind "particle size" to bass β the particles pop bigger on the kick π₯
- That replaces static visuals with ones that breathe with the music
π Related
- Stack presets in practice β π¨ Presets
- Learn deck control β π± Deck A/B
- Feed audio and check reaction β π Audio input
- Check terminology β π Glossary
- Look up controls only β π Reference