MCPcopy
hub / github.com/jberg/butterchurn

github.com/jberg/butterchurn @main sqlite

repository ↗ · DeepWiki ↗
297 symbols 548 edges 44 files 4 documented · 1%
README

Butterchurn

Butterchurn is a WebGL implementation of the Milkdrop Visualizer

Try it out

Butterchurn Screenshot

Usage

Installation

With pnpm, yarn or npm installed, run

$ pnpm add butterchurn butterchurn-presets
or
$ yarn add butterchurn butterchurn-presets
or
$ npm install butterchurn butterchurn-presets

Create a visualizer

import butterchurn from 'butterchurn';
import butterchurnPresets from 'butterchurn-presets';

// initialize audioContext and get canvas

const visualizer = butterchurn.createVisualizer(audioContext, canvas, {
  width: 800,
  height: 600
});

// get audioNode from audio source or microphone

visualizer.connectAudio(audioNode);

// load a preset

const presets = butterchurnPresets.getPresets();
const preset = presets['Flexi, martin + geiss - dedicated to the sherwin maxawow'];

visualizer.loadPreset(preset, 0.0); // 2nd argument is the number of seconds to blend presets

// resize visualizer

visualizer.setRendererSize(1600, 1200);

// render a frame

visualizer.render();

Browser Support

Butterchurn requires the browser support WebGL 2.

You can test for support using our minimal isSupported script:

import isButterchurnSupported from "butterchurn/lib/isSupported.min";

if (isButterchurnSupported()) {
  // Load and use butterchurn
}

Integrations

Thanks

License

This project is licensed under the MIT License - see the LICENSE file for details

Core symbols most depended-on inside this repo

bindTexture
called by 51
src/noise/noise.js
pick
called by 17
src/utils.js
setWasm
called by 16
src/utils.js
range
called by 15
src/utils.js
average
called by 14
experiments/wasm-eel/speed/src/timePresets.js
getFragmentFloatPrecision
called by 13
src/rendering/shaders/shaderUtils.js
renderQuadTexture
called by 9
src/rendering/shaders/warp.js
addTriangle
called by 8
src/rendering/sprites/border.js

Shape

Method 204
Class 60
Function 33

Languages

TypeScript100%

Modules by API surface

src/visualizer.js28 symbols
src/rendering/renderer.js21 symbols
src/assemblyscript/presetFunctions.ts17 symbols
src/audio/audioLevels.js12 symbols
src/utils/seededRandom.js11 symbols
src/rendering/shaders/comp.js11 symbols
src/equations/presetEquationRunner.js11 symbols
src/equations/presetEquationRunnerWASM.js10 symbols
src/utils.js9 symbols
src/rendering/text/titleText.js9 symbols
src/rendering/shapes/customShape.js9 symbols
src/rendering/shaders/warp.js9 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

Dependencies from manifests, versioned

@assemblyscript/loader0.17.11 · 1×
@rollup/plugin-commonjs28.0.6 · 1×
@rollup/plugin-node-resolve16.0.1 · 1×
@rollup/plugin-terser0.4.4 · 1×
@rollup/pluginutils5.2.0 · 1×
@types/jest30.0.0 · 1×
assemblyscript0.17.11 · 1×
butterchurn-presets3.0.0-beta.4 · 1×
butterchurn-presets-js
ecma-proposal-math-extensions0.0.2 · 1×
eel-wasm0.0.16 · 1×
eslint7.9.0 · 1×

For agents

$ claude mcp add butterchurn \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact