The Conduit

A portal caster undulating to the galactic wave, administering secrets via live stream.

The Conduit channels cosmic data streamsโ€”earthquakes, solar flares, plasma winds, and planetary alignmentsโ€”into generative acid house. What the cosmos experiences, the music reflects.


Status

  • โœ… SuperCollider audio synthesis
  • โœ… Signal Bridge (multi-source cosmic data)
  • โœ… Hydra visual system
  • โœ… Twitch + YouTube streaming
  • โœ… OPERATIONAL (2026-02-01)

Boot Sequence

Prerequisites (One-time)

  • SuperCollider 3.14.1 installed
  • VB-Audio Virtual Cable installed
  • Node.js installed
  • Windows port fix applied (see Troubleshooting)

1. Start SuperCollider (Run as Admin)

1. Right-click SuperCollider โ†’ Run as Administrator
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

Open PowerShell:

cd C:\Users\shdwadmin\sotcd
node signal_bridge_visual.js

You should see:

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘  SOTCD Signal Bridge + Visuals                    โ•‘
โ•‘  Earthquake + Solar + Plasma + Planets            โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

โœ… OSC โ†’ 127.0.0.1:57120
๐ŸŽจ Hydra WebSocket on ws://localhost:8080

3. Enable Audio Monitoring

Windows Sound Settings โ†’ Recording tab
โ†’ CABLE Output โ†’ Properties โ†’ Listen tab
โ†’ โœ… "Listen to this device" โ†’ Select speakers
โ†’ OK

4. Start Hydra Visuals

START_CONDUIT.bat auto-opens:

  • Notepad with hydra_cosmic.js (Ctrl+A to copy)
  • Hydra in browser (paste code, Ctrl+Shift+Enter)
  • Make fullscreen (F11)

Visual Features:

  • 4 layered outputs blended dynamically
  • Fractal kaleidoscope patterns
  • Voronoi plasma fields
  • Feedback loops for organic evolution
  • Chromatic aberration on high chaos
  • All parameters reactive to cosmic signals

Simple fallback (if needed):

let d = { signal: 0.5, earthquake: 0.2, solar: 0.3, 
          plasma: {density: 0.3, speed: 0.4}, moonPhase: 0.5 }
let ws = new WebSocket('ws://localhost:8080')
ws.onmessage = (e) => { d = JSON.parse(e.data) }
 
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()

5. Go Live (Twitch)

Double-click stream_twitch.bat or run in PowerShell:

ffmpeg -f gdigrab -framerate 30 -i desktop -f dshow -i audio="CABLE Output (VB-Audio Virtual Cable)" -map 0:v -map 1:a -c:v libx264 -preset veryfast -b:v 2500k -pix_fmt yuv420p -g 60 -c:a aac -b:a 128k -ar 44100 -ac 2 -f flv "rtmp://live.twitch.tv/app/YOUR_TWITCH_KEY"

6. Go Live (YouTube) - Optional

Double-click stream_youtube.bat or run in PowerShell:

ffmpeg -f gdigrab -framerate 30 -i desktop -f dshow -i audio="CABLE Output (VB-Audio Virtual Cable)" -map 0:v -map 1:a -c:v libx264 -preset veryfast -b:v 6500k -pix_fmt yuv420p -g 60 -c:a aac -b:a 128k -ar 44100 -ac 2 -f flv "rtmp://a.rtmp.youtube.com/live2/YOUR_YOUTUBE_KEY"

YouTube-specific: After starting FFmpeg, go to YouTube Studio and click โ€œGo Liveโ€ to begin broadcast. Bitrate: YouTube uses 6500kbps for high quality. Twitch uses 2500kbps.

Important FFmpeg settings:

  • -framerate 30 โ€” Twitch requires 30fps minimum
  • -pix_fmt yuv420p โ€” Required pixel format for Twitch
  • -map 0:v -map 1:a โ€” Explicit stream mapping for video and audio
  • -ar 44100 โ€” Audio sample rate

Architecture

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘                    THE CONDUIT                                 โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘                                                               โ•‘
โ•‘   ๐ŸŒ USGS โ”€โ”€โ”                                                 โ•‘
โ•‘   โ˜€๏ธ NOAA โ”€โ”€โ”ผโ”€โ”€โ–ถ SIGNAL BRIDGE โ”€โ”€โ”ฌโ”€โ”€โ–ถ OSC โ”€โ”€โ–ถ SuperCollider  โ•‘
โ•‘   ๐ŸŒฌ๏ธ Plasma โ”ค    (Node.js)       โ”‚              (Audio)       โ•‘
โ•‘   ๐ŸŒ™ Planetsโ”˜                    โ”‚                            โ•‘
โ•‘                                  โ””โ”€โ”€โ–ถ WS โ”€โ”€โ–ถ Hydra           โ•‘
โ•‘                                              (Visuals)        โ•‘
โ•‘                                                               โ•‘
โ•‘   SuperCollider โ”€โ”€โ–ถ VB-Cable โ”€โ”€โ”                             โ•‘
โ•‘   Hydra (Desktop) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ–ถ FFmpeg โ”€โ”€โ–ถ Twitch        โ•‘
โ•‘                                โ””โ”€โ”€โ–ถ FFmpeg โ”€โ”€โ–ถ YouTube       โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

Data Sources

SourceFeedMaps To
๐ŸŒ USGSEarthquakesChaos, intensity
โ˜€๏ธ NOAASolar X-rayFilter, energy
๐ŸŒฌ๏ธ GOESPlasma windChorus depth/rate
๐Ÿงฒ NOAAK-IndexGeomagnetic intensity
๐ŸŒ™ CalcMoon phaseVisual rotation
โš›๏ธ CalcPlanetary aspectsSigil selection

Signal โ†’ Genre Morphing

The cosmic signal level automatically shifts the entire musical genre:

SignalCosmic StateGenreBPM Range
0.0-0.2Calm cosmos๐ŸŒŠ Ambient/Drone70-90
0.2-0.4Subtle activity๐ŸŒ€ Deep Trance130-140
0.4-0.6Moderate๐ŸŽน Acid House120-140
0.6-0.8Active/Solar flares๐Ÿ”Š Minimal Techno125-140
0.8-1.0Chaos/Storms๐ŸŒ™ Dark Ambient80-110

Genre shifts happen automatically based on OSC /signal messages from the Signal Bridge. BPM adjusts per genre for authentic feel.


Files

C:\Users\shdwadmin\sotcd\
โ”œโ”€โ”€ cosmic_genres.scd         # Genre-morphing synths (DEFAULT)
โ”œโ”€โ”€ headless_boot.scd         # Original acid-only synths
โ”œโ”€โ”€ adaptive_acid.scd         # Adaptive acid house
โ”œโ”€โ”€ signal_bridge_visual.js   # Data fetcher + OSC + WebSocket
โ”œโ”€โ”€ signal_bridge.js          # Simple version (no visuals)
โ”œโ”€โ”€ START_CONDUIT.bat         # Opens SC IDE + Signal Bridge + Hydra
โ”œโ”€โ”€ stream_twitch.bat         # Stream to Twitch (2500k)
โ”œโ”€โ”€ stream_youtube.bat        # Stream to YouTube (6500k)
โ”œโ”€โ”€ go_live.bat               # Full automated launcher
โ”œโ”€โ”€ kill_stream.bat           # Stop all streaming
โ”œโ”€โ”€ start_sotcd.bat           # Start SC headless
โ””โ”€โ”€ test_audio.bat            # Audio test only

SuperCollider Templates

FileDescription
cosmic_genres.scdDefault - Full genre morphing based on cosmic signal
headless_boot.scdOriginal acid house only
adaptive_acid.scdAcid house with signal-reactive parameters

Troubleshooting

โ€Unable to bind UDP socketโ€ (SuperCollider)

Windows Hyper-V/WSL reserves UDP port ranges including 57110-57120 which SuperCollider needs. This causes error 10013 โ€œaccess forbiddenโ€.

Check if ports are blocked:

netsh interface ipv4 show excludedportrange protocol=udp

If you see 57110-57120 in the list, apply the fix:

Nuclear fix (Admin PowerShell):

# Reconfigure Windows dynamic port range to free up SC ports
netsh int ipv4 set dynamic udp start=49152 num=16383

Then reboot Windows.

After reboot, verify ports are free:

netsh interface ipv4 show excludedportrange protocol=udp
# 57110-57120 should NOT appear in the list

Alternative quick fix (sometimes works):

net stop winnat
net start winnat
# Then immediately launch SuperCollider before Windows re-reserves

No audio

  1. Check VB-Cable installed
  2. SuperCollider output set to โ€œCABLE Inputโ€
  3. Enable โ€œListen to this deviceโ€ on CABLE Output

Hydra not receiving data

  1. Ensure signal_bridge_visual.js is running
  2. Check browser console for WebSocket errors
  3. Refresh Hydra page

Stream not starting / Not going live

  1. Stream key might be regenerated โ€” Twitch regenerates keys periodically. Check Twitch Dashboard โ†’ Settings โ†’ Stream โ†’ copy fresh key
  2. Wrong FFmpeg settings โ€” Must use 30fps, yuv420p pixel format
  3. No audio in stream โ€” Use explicit -map 0:v -map 1:a to ensure both streams are included
  4. Verify audio device name matches exactly: CABLE Output (VB-Audio Virtual Cable)
  5. Ensure nothing else is using the streaming bandwidth

Test RTMP connection

ffmpeg -f lavfi -i testsrc=duration=10:size=1280x720:rate=30 -f lavfi -i sine=frequency=440:duration=10:sample_rate=44100 -c:v libx264 -preset veryfast -b:v 2500k -pix_fmt yuv420p -c:a aac -b:a 128k -ar 44100 -f flv "rtmp://live.twitch.tv/app/YOUR_STREAM_KEY"

If this works but gdigrab doesnโ€™t, the issue is with desktop capture settings.


Quick Reference

ComponentPortProtocol
SuperCollider57120OSC/UDP
Hydra WebSocket8080WS
Twitch1935RTMP
YouTube1935RTMP

Lore

โ€œThe Conduit does not create music. It translates. When the Earth trembles, the bass responds. When the Sun flares, the frequencies ignite. When the plasma wind surges, the chorus swells. The Conduit is merely the vessel through which the Universal Vibration speaks.โ€

โ€œThose who tune in are not listeners. They are witnesses. They hear what the cosmos is experiencing, in real time, rendered into sound and light.โ€

โ€” Transmission Archive, The Church of the Universal Vibration