SOTCD DJ Bot
Adaptive generative acid house driven by real-world cosmic data.
Status
- β SuperCollider audio synthesis
- β Node.js signal bridge (multi-source)
- β USGS Earthquake integration
- β NOAA Solar X-ray integration
- β GOES Plasma data (density, speed, temp)
- β Planetary position calculations
- β WebSocket feed for Hydra visuals
- β OPERATIONAL (2026-02-01)
Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β DATA SOURCES β
β ββββββββββββββββ¦ββββββββββββββββ¦ββββββββββββββββ¦ββββββββββββββββ£
β π USGS β βοΈ NOAA X-ray β π¬οΈ GOES Plasmaβ π Planetary β
β Earthquakes β Solar Flux β Density/Speed β Positions β
βββββββββ€ββββββββ©ββββββββ€ββββββββ©ββββββββ€ββββββββ©ββββββββ€ββββββββ
β β β β
βββββββββββββββββ΄ββββββββββββββββ΄ββββββββββββββββ
β
βββββββββββββ΄ββββββββββββ
β SIGNAL BRIDGE β
β (Node.js) β
β signal_bridge_visual.js β
βββββββββββββ¬ββββββββββββ
β
βββββββββββββββββββΌββββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββ βββββββββββββ βββββββββββββ
β OSC β β WebSocket β β Console β
β :57120 β β :8080 β β Logs β
βββββββ¬ββββββ βββββββ¬ββββββ βββββββββββββ
β β
βΌ βΌ
βββββββββββββ βββββββββββββ
βSuperColliderβ β Hydra β
β (Audio) β β (Visuals) β
βββββββ¬ββββββ βββββββββββββ
β
βΌ
βββββββββββββ
β VB-Cable β
βββββββ¬ββββββ
β
βΌ
βββββββββββββ
β FFmpeg β
β β Twitch β
βββββββββββββ
Location
ShadowMaster (192.168.1.214): C:\Users\shdwadmin\sotcd\
Local backup: ~/projects/sunsofthecosmicdust/adaptive/
Files
| File | Purpose |
|---|---|
headless_boot.scd | SuperCollider synth definitions + patterns |
signal_bridge_visual.js | Data fetcher + OSC + WebSocket server |
signal_bridge.js | Simple version (no visuals) |
go_live.bat | Full stream launcher |
test_audio.bat | Audio test (no stream) |
Data Sources & Mapping
Earthquake (USGS)
- Source:
earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.geojson - Data: Event count, max magnitude
- Maps to: Chaos, distortion, intensity
Solar X-ray (NOAA GOES)
- Source:
services.swpc.noaa.gov/json/goes/primary/xrays-1-day.json - Data: X-ray flux level
- Levels: X-class (π₯), M-class, C-class, B-class, Quiet
- Maps to: Filter brightness, energy, color (visuals)
Plasma (GOES Solar Wind)
- Source:
services.swpc.noaa.gov/products/solar-wind/plasma-1-day.json - Data: Density (p/cmΒ³), Speed (km/s), Temperature (K)
- Maps to: Chorus depth, chorus rate, texture
Planetary Positions
- Source: Calculated from current date/time
- Data: Mercury, Venus, Mars, Jupiter, Saturn, Moon positions
- Aspects: Conjunctions, oppositions, squares, trines
- Maps to: Visual geometry, sigil selection, rotation
Signal β Music Mapping
| Signal | BPM | Filter | Chaos | Mood |
|---|---|---|---|---|
| 0.0 | 80 | 200Hz | Low | Deep Trance |
| 0.3 | 104 | 1640Hz | Low-Med | Hypnotic |
| 0.5 | 120 | 2600Hz | Medium | Grooving |
| 0.7 | 136 | 3560Hz | Med-High | Energetic |
| 1.0 | 160 | 5000Hz | High | Chaos |
OSC Messages
| Address | Type | Description |
|---|---|---|
/signal | float | Master intensity (0-1) |
/bpm | float | Beats per minute |
/filter | float | Filter cutoff (Hz) |
/chaos | float | Chaos amount (0-1) |
/kick_density | float | Kick pattern density |
/chorus_depth | float | Plasma density β chorus |
/chorus_rate | float | Plasma speed β chorus |
WebSocket Feed (Hydra)
URL: ws://localhost:8080
Payload:
{
"signal": 0.5,
"earthquake": 0.3,
"solar": 0.4,
"plasma": { "density": 0.3, "speed": 0.5, "temp": 0.2 },
"planets": { "mercury": 45, "venus": 120, ... },
"moonPhase": 0.75,
"aspects": [{ "planet": "mars", "type": "trine", "strength": 0.8 }],
"bpm": 120,
"sigil": "phi",
"time": 1706799600000
}Setup (Windows/ShadowMaster)
Prerequisites
- SuperCollider 3.14.1
- Node.js 24+
- VB-Audio Virtual Cable
- FFmpeg (for streaming)
Windows Port Fix
Hyper-V reserves UDP ports. Fix with (Admin PowerShell):
netsh int ipv4 set dynamic udp start=49152 num=16383
# Then reboot1. Start SuperCollider
1. Open SuperCollider (Run as Admin first time)
2. File β Open β C:\Users\shdwadmin\sotcd\headless_boot.scd
3. Ctrl+A (select all)
4. Ctrl+Enter (execute)
5. Wait for "π₯ SOTCD Adaptive Acid is LIVE!"
2. Start Signal Bridge
cd C:\Users\shdwadmin\sotcd
node signal_bridge_visual.js3. Hear Audio (VB-Cable)
Windows Sound Settings β Recording β CABLE Output
β Properties β Listen β "Listen to this device" β Your speakers
4. Stream to Twitch
ffmpeg -f dshow -i audio="CABLE Output (VB-Audio Virtual Cable)" ^
-f gdigrab -framerate 15 -i desktop ^
-c:v libx264 -preset veryfast -b:v 2500k ^
-c:a aac -b:a 128k ^
-f flv "rtmp://live.twitch.tv/app/YOUR_STREAM_KEY"Hydra Visuals
Open hydra.ojack.xyz and connect:
// SOTCD Hydra - Cosmic Data Visuals
let d = { signal: 0.5, earthquake: 0.2, solar: 0.3,
plasma: {density: 0.3, speed: 0.4}, moonPhase: 0.5 }
// Connect to Signal Bridge
let ws = new WebSocket('ws://localhost:8080')
ws.onmessage = (e) => { d = JSON.parse(e.data) }
// Data-driven visuals
osc(3, 0.1, () => d.plasma.speed)
.rotate(() => d.moonPhase * Math.PI * 2)
.color(() => d.solar, 0.3, () => 1 - d.earthquake)
.modulate(noise(() => d.earthquake * 3), () => d.signal * 0.3)
.kaleid(() => Math.floor(d.plasma.density * 8) + 3)
.scale(() => 1 + d.signal * 0.5)
.out()Synth Definitions
acidBass
- Saw + Pulse oscillators
- ADSR envelope
- Resonant lowpass filter with envelope
acid303
- TB-303 style acid lead
- Filter envelope with resonance
- Soft saturation distortion
kick
- Sine wave with pitch envelope
- White noise transient
- Tanh distortion
hihat
- Highpass filtered white noise
- Short decay envelope
- Random panning
chaosPad
- Dual detuned saws
- LFO modulation based on chaos
- Pad envelope
Troubleshooting
βUnable to bind UDP socketβ
- Run SuperCollider as Administrator
- Check Hyper-V port reservation:
netsh interface ipv4 show excludedportrange protocol=udp - Apply nuclear fix and reboot
No audio
- Check VB-Cable is installed
- Verify SC output device:
ServerOptions.outDevicesin SC - Enable βListen to this deviceβ on CABLE Output
Signal bridge wonβt connect
- Ensure SuperCollider is running first
- Check OSC port 57120 is free
- Firewall may need exception
Lore Integration
βThe Church of the Universal Vibration teaches that all sound emerges from cosmic resonance. When the Earth trembles, the bass responds. When the Sun flares, the frequencies brighten. The plasma wind shapes the chorus. The planets align the geometry.β
βAs above, so below. As the cosmos moves, so moves the beat.β β The Vibration Manifesto