···11-# deftoku - music visualizer
22-a music visualizer web app! inspired by [trill](https://trill.wisp.place)!
11+# deftoku - music video renderer
22+33+a music video renderer web app. import audio, pick a visualizer, and export visuals as a video. inspired by [trill](https://trill.wisp.place)!
44+55+
66+77+## features
88+99+- **3 visualizers**: frequency bars, a spinning top-down cd, and a spinning bottom-up cd
1010+- **import audio**: any format your browser supports
1111+- **export video**: renders to webm (VP9 + Opus) via
1212+ [mediabunny](https://npmjs.com/package/mediabunny) (mp4 support coming at some point!)
1313+- **configurable output**: resolution (240p–1080p), aspect ratio (16:9, 4:3, 1:1), framerate (24/30/60 fps), and quality presets
1414+1515+## stack
1616+1717+- [deno](https://deno.com) runtime
1818+- typescript
1919+- html5 canvas for rendering
2020+- [esbuild](https://esbuild.github.io) for bundling
2121+- web audio api (`OfflineAudioContext` + `AnalyserNode`) for frequency extraction
2222+2323+## running
2424+2525+```sh
2626+install deno
2727+deno task dev # start dev server at http://localhost:8000
2828+deno task build # bundle to dist/dist.js
2929+```
3030+3131+## project structure
3232+3333+```
3434+src/
3535+├── mod.ts # entry point
3636+├── controller.ts # ui wiring, canvas management, export trigger
3737+├── import.ts # audio decoding + frequency frame extraction
3838+├── export.ts # video encoding pipeline (mediabunny)
3939+└── visualizers/
4040+ ├── bars.ts # frequency bars
4141+ ├── cd-top.ts # spinning CD (top label)
4242+ └── cd-bottom.ts # spinning CD (bottom label)
4343+```
4444+4545+### whats that name?
4646+4747+deftones + kessoku band = deftoku :)
4848+4949+### this code is kinda bad!
5050+5151+yup!