Vol70

DJ · Photography · Livestream

DREDARKROOM

Live music and creativity catalyst, developed in the dark. Press play: a robot drummer starts with a hi-hat and builds a groove as you scroll, one drum at a time, until it is drum & bass. Volume is on the bar above (Ctrl + Up and Ctrl + Down work too).

or scroll in silence ↓

01 · Listen

From the booth

DJ sets, live on Twitch and kept on Mixcloud and SoundCloud. DreDarkroom, Safelight and SquidgySqueegee are the aliases.

02 · Play

Instruments you can touch

Built in the browser: no downloads, no sign-up. Hover a card and it plays you a note.

03 · See

Developed, not filtered

Photography, and the pipeline that pulls clips and stills off a VR headset and gets them ready to share.

Frames developed: 0 / 8

04 · The drop

Come in.

The darkroom is open. Take a light. Every instrument is playing now: solo it, mute it, switch off a part of the kit.

05 · Under the hood

How this was made

Everything here is plain web pages: no app store, no build step, no frameworks, and no recordings in the music you hear on this page, which is synthesised live in your browser. Tap anything below if you want to know how a piece works.

The music: Web Audio

Every sound is rendered once, when you press play, into a short Web Audio buffer. Playing a note afterwards is one buffer and one volume: nothing is being synthesised while you scroll, which keeps it smooth. A small scheduler places each hit a moment ahead on the audio clock, and your scroll position decides how much of the arrangement is switched on.

The band: four instruments, one key

The drums are DarkDeck’s own recipes. The bass is the string model from BlueHeronBass and the cello is the bowed-string model from ChungusCello, each run once offline. The meows are the recordings from MeowSynth. All of it is in A minor, and the tempo climbs from 84 to 174 BPM as you scroll.

The picture: canvas

DreDarkbot and the kit are drawn on a plain 2D canvas. Its arms are solved from the shoulder to wherever the next hit lands, and the camera glides toward the part of the kit that is about to join in. The hits it plays are the very ones the audio schedules, so what you see lands with what you hear. The 3D icons in Darklabs (switched off unless you ask) use three.js.

The VR bit: WebXR

WebXR lets a web page run in a headset's browser. The IDEA game uses it for a tabletop view you can lean over. It is a prototype: it has not been tested on every headset.

The hosting: GitHub Pages

The site is a folder of files on GitHub Pages. Every page is hand-readable: view source and it is all there. The project's history is in the commit log, which is where the dates below come from.

The feedback button: ntfy

The “tell me what you think” form on Darklabs FM sends a message through ntfy, a free notification service, straight to a phone. No account, no email address is collected.

The sound tests: Python

Some of the sound design was measured rather than guessed: small Python scripts (numpy, scipy) slice recordings, score them and draw spectrograms, so a sound can be compared with another by numbers as well as by ear.

Who wrote the code

The ideas, the taste and every decision are Dre's. Much of the code was written with AI coding assistants (Claude Code in particular, with others used for review and research), directed and tested by Dre, and then checked in a browser. Nothing here claims otherwise.

Timeline

Dates come from the project's commit history: the day each thing first landed on the live site. Ideas come before code, so the real start of each is earlier than the date shown.

  1. The first commit · MeowSynth, a tiny synth built from human ‘meow’ impressions, is the first page in the repository.
  2. Three toys · MonkeyBeat (a drum machine built from monkey impressions), ThroatTapper (percussion from throat taps) and MeowSynth and MonkeyBeat side by side.
  3. CircuitStomp · a drum & bass machine built from synthesised robot voices.
  4. The darkroom opens · Obscura (a camera obscura with hidden frames), Safelight // Slow Future, a deck of transmissions from 2133.
  5. The big instruments · ChungusCello (a physically modelled cello) and DarkDeck (drums, a two-deck DJ mixer, a sampler and an SFX maker).
  6. BlueHeronBass and DevelopDrop · a five-string bass with a heron in its voice; the DevelopDrop repository is created.
  7. Radio, pulses and the new front door · Darklabs FM, PenrosePulse, GlowGrain (a felt piano that blooms into marimba) and this homepage.
  8. IDEA · a quick parody game of drunk bots in a flat-pack maze, with a tabletop VR mode. And the homepage learns to play itself with a tonearm.
  9. The page becomes a drum kit · a robot drummer, a gradual build from hi-hats to drum & bass, and a mixing desk that opens into MixingMagic.
                 __
                / _)
       _.----._/ /
      /         /
   __/ (  | (  |
  /__.-'|_|--|_|

Frame 04 wasn't blank. It never was a bug.