Compare commits
5
Commits
71252ff84f
...
292d3cd916
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
292d3cd916 | ||
|
|
057b155a61 | ||
|
|
4ff47b3884 | ||
|
|
9d1bc7b743 | ||
|
|
42d6007445 |
Vendored
+1071
-61
File diff suppressed because it is too large
Load Diff
@@ -298,13 +298,13 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
}
|
||||
|
||||
// Phase 2 audio_gaps.md rows #25-#45
|
||||
if (activeUniverseId === 'whoniverse' && presetId.indexOf('tardis-') === 0) {
|
||||
whoniverseAudio.startConsoleTypeTelemetry(2800, 6500); // #25
|
||||
}
|
||||
if (presetId === 'bio-vorlon') expandedAudio.startVorlonSong(); // #26
|
||||
if (presetId === 'bio-wraith') expandedAudio.startHullRegen(); // #28
|
||||
if (presetId === 'sta-ceres' || presetId === 'sta-tycho') expandedAudio.startBelterTelemetry(); // #29
|
||||
if (presetId === 'deep-event-horizon' || presetId === 'deep-icarus-ii') expandedAudio.startHullStrainMoans(); // #30
|
||||
// Phase 3 (audio_gaps.md #46-#54)
|
||||
if (presetId === 'sta-babylon-5') expandedAudio.startZocaloChatter(); // #46
|
||||
if (presetId === 'ind-nostromo') expandedAudio.startTeletypeChatter(); // #51
|
||||
if (presetId === 'ret-jupiter-2') expandedAudio.startHeterodyneDrone(); // #54
|
||||
if (presetId === 'deep-icarus-ii') expandedAudio.startIcarusBeacon(); // #31
|
||||
if (presetId === 'deep-event-horizon' || presetId === 'deep-nightflyer') expandedAudio.startVoidWhispers(); // #32
|
||||
if (presetId === 'com-protector') expandedAudio.startBerylliumThrum(); // #33
|
||||
@@ -673,10 +673,12 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
expandedAudio.synthesizeHalChime();
|
||||
break;
|
||||
case 'ftl-jump':
|
||||
case 'flak':
|
||||
expandedAudio.synthesizeFtlJump();
|
||||
visualizer.spawnWarpPulses();
|
||||
break;
|
||||
case 'flak':
|
||||
expandedAudio.synthesizeFlakBarrageBurst();
|
||||
break;
|
||||
case 'singularity':
|
||||
case 'gravity':
|
||||
case 'rotation':
|
||||
@@ -921,6 +923,31 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
expandedAudio.synthesizeCygnusPistonChug();
|
||||
break;
|
||||
|
||||
// Phase 3 (audio_gaps.md #48-#53)
|
||||
case 'btn-transporter':
|
||||
expandedAudio.synthesizeTransporterCycle();
|
||||
break;
|
||||
case 'btn-breech-clank':
|
||||
expandedAudio.synthesizeBreechClank();
|
||||
break;
|
||||
case 'btn-dock-groan':
|
||||
expandedAudio.synthesizeDockingGroan();
|
||||
break;
|
||||
case 'btn-tape-spooler':
|
||||
expandedAudio.synthesizeTapeSpooler();
|
||||
break;
|
||||
case 'btn-teletype':
|
||||
expandedAudio.synthesizeTeletypeChatterPhrase();
|
||||
break;
|
||||
case 'btn-zocalo-chatter':
|
||||
if (expandedAudio.zocaloChatterActive) expandedAudio.stopZocaloChatter();
|
||||
else expandedAudio.startZocaloChatter();
|
||||
break;
|
||||
case 'btn-hetero-drone':
|
||||
if (expandedAudio.heterodyneDroneActive) expandedAudio.stopHeterodyneDrone();
|
||||
else expandedAudio.startHeterodyneDrone();
|
||||
break;
|
||||
|
||||
default:
|
||||
telemetry.synthesizeLCARSSingleChirp();
|
||||
break;
|
||||
|
||||
+1013
-37
File diff suppressed because it is too large
Load Diff
+26
-19
@@ -169,6 +169,7 @@ const UniverseRegistry = {
|
||||
{ id: 'btn-cardassian-door', label: 'CARDASSIAN BULKHEAD DOOR' },
|
||||
{ id: 'btn-turbolift', label: 'TURBOLIFT WHOOSH' },
|
||||
{ id: 'btn-replicator', label: 'REPLICATOR SHIMMER' },
|
||||
{ id: 'btn-transporter', label: 'TRANSPORTER CYCLE' },
|
||||
{ id: 'btn-chirp-single', label: 'LCARS SINGLE CHIRP' }
|
||||
],
|
||||
presets: StarshipPresets
|
||||
@@ -211,7 +212,7 @@ const UniverseRegistry = {
|
||||
hull: { volume: 0.5, baseFreq: 68, filterCutoff: 150, resonance: 2.8, noiseMix: 0.35, harmonicSpread: 1.04 },
|
||||
warp: { volume: 0.65, bpm: 52, carrierFreq: 96, filterCutoff: 210, pulseShape: 'tos', resonance: 3.5, swirlMix: 0.2 },
|
||||
lifeSupport: { volume: 0.45, noiseType: 'pink', highpassFreq: 220, lowpassFreq: 1800, airflowModSpeed: 0.08, airflowModDepth: 0.06 },
|
||||
telemetry: { volume: 0.55, density: 0.6, era: 'tos' }
|
||||
telemetry: { volume: 0.55, density: 0.6, era: 'who' }
|
||||
},
|
||||
'tardis-victorian': {
|
||||
id: 'tardis-victorian',
|
||||
@@ -223,7 +224,7 @@ const UniverseRegistry = {
|
||||
hull: { volume: 0.65, baseFreq: 44, filterCutoff: 85, resonance: 1.8, noiseMix: 0.45, harmonicSpread: 1.015 },
|
||||
warp: { volume: 0.3, bpm: 40, carrierFreq: 50, filterCutoff: 120, pulseShape: 'nx', resonance: 2.0, swirlMix: 0.15 },
|
||||
lifeSupport: { volume: 0.55, noiseType: 'brown', highpassFreq: 110, lowpassFreq: 1200, airflowModSpeed: 0.07, airflowModDepth: 0.12 },
|
||||
telemetry: { volume: 0.35, density: 0.4, era: 'nx' }
|
||||
telemetry: { volume: 0.35, density: 0.4, era: 'who' }
|
||||
},
|
||||
'tardis-coral': {
|
||||
id: 'tardis-coral',
|
||||
@@ -235,7 +236,7 @@ const UniverseRegistry = {
|
||||
hull: { volume: 0.75, baseFreq: 52, filterCutoff: 135, resonance: 3.2, noiseMix: 0.5, harmonicSpread: 1.03 },
|
||||
warp: { volume: 0.9, bpm: 48, carrierFreq: 64, filterCutoff: 230, pulseShape: 'tng', resonance: 4.0, swirlMix: 0.45 },
|
||||
lifeSupport: { volume: 0.6, noiseType: 'pink', highpassFreq: 160, lowpassFreq: 1700, airflowModSpeed: 0.18, airflowModDepth: 0.15 },
|
||||
telemetry: { volume: 0.45, density: 0.5, era: 'tng' }
|
||||
telemetry: { volume: 0.45, density: 0.5, era: 'who' }
|
||||
},
|
||||
'tardis-copper': {
|
||||
id: 'tardis-copper',
|
||||
@@ -247,7 +248,7 @@ const UniverseRegistry = {
|
||||
hull: { volume: 0.6, baseFreq: 56, filterCutoff: 125, resonance: 2.5, noiseMix: 0.4, harmonicSpread: 1.02 },
|
||||
warp: { volume: 0.7, bpm: 62, carrierFreq: 72, filterCutoff: 210, pulseShape: 'voyager', resonance: 3.6, swirlMix: 0.35 },
|
||||
lifeSupport: { volume: 0.65, noiseType: 'white', highpassFreq: 220, lowpassFreq: 2200, airflowModSpeed: 0.15, airflowModDepth: 0.1 },
|
||||
telemetry: { volume: 0.55, density: 0.7, era: 'voyager' }
|
||||
telemetry: { volume: 0.55, density: 0.7, era: 'who' }
|
||||
},
|
||||
'tardis-cold-machine': {
|
||||
id: 'tardis-cold-machine',
|
||||
@@ -259,7 +260,7 @@ const UniverseRegistry = {
|
||||
hull: { volume: 0.6, baseFreq: 50, filterCutoff: 110, resonance: 2.2, noiseMix: 0.38, harmonicSpread: 1.02 },
|
||||
warp: { volume: 0.75, bpm: 56, carrierFreq: 68, filterCutoff: 190, pulseShape: 'tng', resonance: 3.2, swirlMix: 0.3 },
|
||||
lifeSupport: { volume: 0.5, noiseType: 'pink', highpassFreq: 200, lowpassFreq: 1600, airflowModSpeed: 0.12, airflowModDepth: 0.08 },
|
||||
telemetry: { volume: 0.4, density: 0.5, era: 'ds9' }
|
||||
telemetry: { volume: 0.4, density: 0.5, era: 'who' }
|
||||
},
|
||||
'tardis-crystal': {
|
||||
id: 'tardis-crystal',
|
||||
@@ -271,7 +272,7 @@ const UniverseRegistry = {
|
||||
hull: { volume: 0.7, baseFreq: 46, filterCutoff: 100, resonance: 3.5, noiseMix: 0.5, harmonicSpread: 1.04 },
|
||||
warp: { volume: 0.8, bpm: 44, carrierFreq: 88, filterCutoff: 260, pulseShape: 'defiant', resonance: 4.4, swirlMix: 0.4 },
|
||||
lifeSupport: { volume: 0.55, noiseType: 'pink', highpassFreq: 180, lowpassFreq: 1900, airflowModSpeed: 0.16, airflowModDepth: 0.14 },
|
||||
telemetry: { volume: 0.5, density: 0.6, era: 'voyager' }
|
||||
telemetry: { volume: 0.5, density: 0.6, era: 'who' }
|
||||
},
|
||||
'tardis-infinite-white': {
|
||||
id: 'tardis-infinite-white',
|
||||
@@ -283,7 +284,7 @@ const UniverseRegistry = {
|
||||
hull: { volume: 0.65, baseFreq: 48, filterCutoff: 95, resonance: 2.0, noiseMix: 0.42, harmonicSpread: 1.01 },
|
||||
warp: { volume: 0.6, bpm: 50, carrierFreq: 60, filterCutoff: 160, pulseShape: 'tng', resonance: 2.8, swirlMix: 0.3 },
|
||||
lifeSupport: { volume: 0.7, noiseType: 'white', highpassFreq: 160, lowpassFreq: 2600, airflowModSpeed: 0.14, airflowModDepth: 0.12 },
|
||||
telemetry: { volume: 0.45, density: 0.6, era: 'tng' }
|
||||
telemetry: { volume: 0.45, density: 0.6, era: 'who' }
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -310,7 +311,9 @@ const UniverseRegistry = {
|
||||
{ id: 'btn-pipe-drips', label: 'CONDENSATION DRIPS' },
|
||||
{ id: 'btn-steam-vent', label: 'BOILER VENT HISS' },
|
||||
{ id: 'btn-crash-couch', label: 'CRASH-COUCH GIMBAL' },
|
||||
{ id: 'btn-air-handler', label: 'HVAC AIR HANDLER' }
|
||||
{ id: 'btn-air-handler', label: 'HVAC AIR HANDLER' },
|
||||
{ id: 'btn-dock-groan', label: 'DOCKING GROAN & CLANG' },
|
||||
{ id: 'btn-teletype', label: 'DOT-MATRIX TELETYPE' }
|
||||
],
|
||||
presets: {
|
||||
'ind-nostromo': {
|
||||
@@ -371,7 +374,7 @@ const UniverseRegistry = {
|
||||
hull: { volume: 0.8, baseFreq: 64, filterCutoff: 145, resonance: 3.4, noiseMix: 0.55, harmonicSpread: 1.035 },
|
||||
warp: { volume: 0.9, bpm: 58, carrierFreq: 84, filterCutoff: 250, pulseShape: 'defiant', resonance: 4.2, swirlMix: 0.4 },
|
||||
lifeSupport: { volume: 0.6, noiseType: 'white', highpassFreq: 200, lowpassFreq: 2100, airflowModSpeed: 0.18, airflowModDepth: 0.14 },
|
||||
telemetry: { volume: 0.5, density: 0.65, era: 'voyager' }
|
||||
telemetry: { volume: 0.5, density: 0.75, era: 'belter' }
|
||||
},
|
||||
'ind-eagle': {
|
||||
id: 'ind-eagle',
|
||||
@@ -429,7 +432,7 @@ const UniverseRegistry = {
|
||||
hull: { volume: 0.75, baseFreq: 45, filterCutoff: 110, resonance: 3.2, noiseMix: 0.5, harmonicSpread: 1.03 },
|
||||
warp: { volume: 0.85, bpm: 38, carrierFreq: 58, filterCutoff: 180, pulseShape: 'tng', resonance: 4.2, swirlMix: 0.45 },
|
||||
lifeSupport: { volume: 0.65, noiseType: 'pink', highpassFreq: 150, lowpassFreq: 1600, airflowModSpeed: 0.08, airflowModDepth: 0.2 },
|
||||
telemetry: { volume: 0.4, density: 0.4, era: 'tng' }
|
||||
telemetry: { volume: 0.4, density: 0.4, era: 'bioship' }
|
||||
},
|
||||
'bio-talyn': {
|
||||
id: 'bio-talyn',
|
||||
@@ -439,7 +442,7 @@ const UniverseRegistry = {
|
||||
hull: { volume: 0.8, baseFreq: 58, filterCutoff: 140, resonance: 3.6, noiseMix: 0.52, harmonicSpread: 1.04 },
|
||||
warp: { volume: 0.9, bpm: 64, carrierFreq: 76, filterCutoff: 240, pulseShape: 'defiant', resonance: 4.6, swirlMix: 0.4 },
|
||||
lifeSupport: { volume: 0.55, noiseType: 'pink', highpassFreq: 180, lowpassFreq: 1800, airflowModSpeed: 0.16, airflowModDepth: 0.16 },
|
||||
telemetry: { volume: 0.45, density: 0.5, era: 'ds9' }
|
||||
telemetry: { volume: 0.45, density: 0.5, era: 'bioship' }
|
||||
},
|
||||
'bio-lexx': {
|
||||
id: 'bio-lexx',
|
||||
@@ -449,7 +452,7 @@ const UniverseRegistry = {
|
||||
hull: { volume: 0.85, baseFreq: 38, filterCutoff: 90, resonance: 2.8, noiseMix: 0.6, harmonicSpread: 1.02 },
|
||||
warp: { volume: 0.7, bpm: 34, carrierFreq: 48, filterCutoff: 140, pulseShape: 'nx', resonance: 3.4, swirlMix: 0.35 },
|
||||
lifeSupport: { volume: 0.6, noiseType: 'brown', highpassFreq: 120, lowpassFreq: 1300, airflowModSpeed: 0.06, airflowModDepth: 0.22 },
|
||||
telemetry: { volume: 0.35, density: 0.3, era: 'nx' }
|
||||
telemetry: { volume: 0.35, density: 0.4, era: 'bioship' }
|
||||
},
|
||||
'bio-vorlon': {
|
||||
id: 'bio-vorlon',
|
||||
@@ -459,7 +462,7 @@ const UniverseRegistry = {
|
||||
hull: { volume: 0.65, baseFreq: 74, filterCutoff: 160, resonance: 3.8, noiseMix: 0.35, harmonicSpread: 1.05 },
|
||||
warp: { volume: 0.8, bpm: 52, carrierFreq: 104, filterCutoff: 260, pulseShape: 'voyager', resonance: 4.5, swirlMix: 0.5 },
|
||||
lifeSupport: { volume: 0.5, noiseType: 'pink', highpassFreq: 220, lowpassFreq: 2200, airflowModSpeed: 0.12, airflowModDepth: 0.1 },
|
||||
telemetry: { volume: 0.5, density: 0.6, era: 'voyager' }
|
||||
telemetry: { volume: 0.5, density: 0.6, era: 'bioship' }
|
||||
},
|
||||
'bio-wraith': {
|
||||
id: 'bio-wraith',
|
||||
@@ -469,7 +472,7 @@ const UniverseRegistry = {
|
||||
hull: { volume: 0.85, baseFreq: 34, filterCutoff: 85, resonance: 2.5, noiseMix: 0.65, harmonicSpread: 1.015 },
|
||||
warp: { volume: 0.6, bpm: 32, carrierFreq: 44, filterCutoff: 120, pulseShape: 'nx', resonance: 3.0, swirlMix: 0.25 },
|
||||
lifeSupport: { volume: 0.65, noiseType: 'brown', highpassFreq: 90, lowpassFreq: 900, airflowModSpeed: 0.06, airflowModDepth: 0.22 },
|
||||
telemetry: { volume: 0.3, density: 0.25, era: 'nx' }
|
||||
telemetry: { volume: 0.3, density: 0.4, era: 'bioship' }
|
||||
},
|
||||
'bio-species-8472': {
|
||||
id: 'bio-species-8472',
|
||||
@@ -479,7 +482,7 @@ const UniverseRegistry = {
|
||||
hull: { volume: 0.7, baseFreq: 68, filterCutoff: 150, resonance: 3.5, noiseMix: 0.45, harmonicSpread: 1.035 },
|
||||
warp: { volume: 0.85, bpm: 56, carrierFreq: 88, filterCutoff: 230, pulseShape: 'defiant', resonance: 4.4, swirlMix: 0.45 },
|
||||
lifeSupport: { volume: 0.5, noiseType: 'pink', highpassFreq: 200, lowpassFreq: 1900, airflowModSpeed: 0.14, airflowModDepth: 0.12 },
|
||||
telemetry: { volume: 0.45, density: 0.55, era: 'voyager' }
|
||||
telemetry: { volume: 0.45, density: 0.55, era: 'bioship' }
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -506,7 +509,9 @@ const UniverseRegistry = {
|
||||
{ id: 'btn-cygnus-chug', label: 'STEAM PISTON CHUG' },
|
||||
{ id: 'btn-chirp-single', label: 'ASTROGATOR BEAT' },
|
||||
{ id: 'btn-chirp-sweep', label: 'ANALOG GLISSANDO' },
|
||||
{ id: 'btn-relay-click', label: 'TAPE REEL SPOOL' }
|
||||
{ id: 'btn-relay-click', label: 'TAPE REEL SPOOL' },
|
||||
{ id: 'btn-tape-spooler', label: 'DUAL-REEL TAPE SPOOLER' },
|
||||
{ id: 'btn-hetero-drone', label: 'HETERO-DRONE TONE' }
|
||||
],
|
||||
presets: {
|
||||
'ret-jupiter-2': {
|
||||
@@ -614,7 +619,8 @@ const UniverseRegistry = {
|
||||
{ id: 'btn-dock-clamp', label: 'BULKHEAD SEAL' },
|
||||
{ id: 'btn-carousel-groan', label: 'CAROUSEL MOTOR GROAN' },
|
||||
{ id: 'btn-slipstream', label: 'SLIPSTREAM SURGE' },
|
||||
{ id: 'btn-oxygen-reg', label: 'O2 DEMAND VALVE' }
|
||||
{ id: 'btn-oxygen-reg', label: 'O2 DEMAND VALVE' },
|
||||
{ id: 'btn-breech-clank', label: 'WEAPONS BREECH CLANK' }
|
||||
],
|
||||
presets: {
|
||||
'mil-sulaco': {
|
||||
@@ -898,6 +904,7 @@ const UniverseRegistry = {
|
||||
{ id: 'btn-commlock', label: 'COMMLOCK CALLING TONE' },
|
||||
{ id: 'btn-sevas-spark', label: 'CONDUIT SPARK ARC' },
|
||||
{ id: 'btn-station-ecg', label: 'CLINICAL VITAL (ECG)' },
|
||||
{ id: 'btn-zocalo-chatter', label: 'ZOCALO PLAZA CHATTER' },
|
||||
{ id: 'btn-belter-telemetry', label: 'BELTER JURY-RIG TELEMETRY', span: 2 }
|
||||
],
|
||||
presets: {
|
||||
@@ -939,7 +946,7 @@ const UniverseRegistry = {
|
||||
hull: { volume: 0.8, baseFreq: 48, filterCutoff: 110, resonance: 2.8, noiseMix: 0.55, harmonicSpread: 1.025 },
|
||||
warp: { volume: 0.65, bpm: 42, carrierFreq: 66, filterCutoff: 180, pulseShape: 'defiant', resonance: 3.5, swirlMix: 0.3 },
|
||||
lifeSupport: { volume: 0.65, noiseType: 'pink', highpassFreq: 160, lowpassFreq: 1700, airflowModSpeed: 0.12, airflowModDepth: 0.14 },
|
||||
telemetry: { volume: 0.45, density: 0.5, era: 'voyager' }
|
||||
telemetry: { volume: 0.45, density: 0.65, era: 'belter' }
|
||||
},
|
||||
'sta-ceres': {
|
||||
id: 'sta-ceres',
|
||||
@@ -949,7 +956,7 @@ const UniverseRegistry = {
|
||||
hull: { volume: 0.85, baseFreq: 42, filterCutoff: 95, resonance: 2.6, noiseMix: 0.62, harmonicSpread: 1.02 },
|
||||
warp: { volume: 0.45, bpm: 38, carrierFreq: 54, filterCutoff: 135, pulseShape: 'nx', resonance: 3.0, swirlMix: 0.2 },
|
||||
lifeSupport: { volume: 0.7, noiseType: 'brown', highpassFreq: 120, lowpassFreq: 1400, airflowModSpeed: 0.08, airflowModDepth: 0.16 },
|
||||
telemetry: { volume: 0.35, density: 0.35, era: 'nx' }
|
||||
telemetry: { volume: 0.35, density: 0.6, era: 'belter' }
|
||||
},
|
||||
'sta-gateway': {
|
||||
id: 'sta-gateway',
|
||||
|
||||
+132
-33
@@ -266,7 +266,7 @@ Ranked by how much each would add, given what already exists.
|
||||
| 3 | **Door swish** | TOS, TNG, VOY, ENT | Four era variants from one filtered-noise primitive with different envelopes. High reuse for low cost. | Low |
|
||||
| 4 | **Turbolift** | TNG, VOY | Rising whoosh and settle; adds a sense of a ship in use. | Medium |
|
||||
| 5 | **Bosun's whistle** | TOS | Distinctive and very era-specific; two-tone glide. | Low |
|
||||
| 6 | **Transporter** | all | Iconic, but long (~3 s) and shimmer-dense — pushes past the ambient-layer duration guideline and belongs on the soundboard. | High |
|
||||
| 6 | **Transporter** | all | Iconic, but long (~3 s) and shimmer-dense — pushes past the ambient-layer duration guideline and belongs on the soundboard. **Implemented in Phase 3** — see the Phase 3 additions below. | High |
|
||||
| 7 | **Medical monitor** | TNG, VOY | Slow rhythmic tone; would make a sickbay preset viable. | Low |
|
||||
| 8 | **Replicator** | TNG, VOY | Brief shimmer; lower value than the above. | Medium |
|
||||
|
||||
@@ -306,6 +306,22 @@ Implemented under audio_gaps.md Phase 2 (rows #21–#23).
|
||||
|
||||
---
|
||||
|
||||
## Star Trek Phase 3 additions
|
||||
|
||||
Implemented under audio_gaps.md Phase 3 (row #48). Item 6 in the gap list
|
||||
above ("Transporter") is now covered.
|
||||
|
||||
| Element | Method (ExpandedSciFiAudioSynth) | Soundboard | Ambient hook |
|
||||
| --- | --- | --- | --- |
|
||||
| Transporter dematerialization / rematerialization cycle | `synthesizeTransporterCycle` | `btn-transporter` | — |
|
||||
|
||||
An additive array of 5 detuned sines (330–990 Hz over a 660 Hz base), each
|
||||
interlocked with its own 5–11 Hz AM LFO, plus a high bandpass noise shimmer
|
||||
gated by a 30 Hz LFO, all under a slow rise / mid dip / release master
|
||||
envelope. ~3.0 s.
|
||||
|
||||
---
|
||||
|
||||
## Star Trek open questions
|
||||
|
||||
Deliberately unresolved rather than guessed:
|
||||
@@ -471,14 +487,14 @@ method is undocumented.**
|
||||
| 1 | **Lever-throw clunk** | A physical, tactile beat that currently has no discrete sound — precedes every materialization cycle on screen. Cheap complement to the existing demat cycle. | Low |
|
||||
| 2 | **TARDIS door open/close** | Distinct wooden-creak-plus-latch character, unlike any Trek door sound already in the app; would give the Whoniverse universe a texture Star Trek's presets can't reuse. | Low–Medium |
|
||||
| 3 | **Scanner/monitor activation** | The console room's viewscreen has a recognizable activation tone across several eras. | Medium |
|
||||
| 4 | **Console "type" input** | Rapid button/lever interaction chatter distinct from Trek's LCARS chirps — currently the app reuses Trek telemetry wholesale here (see the era table in `telemetry_elements.md`). | Medium — this is really about giving Whoniverse its *own* telemetry vocabulary rather than one new element |
|
||||
| 4 | **Console "type" input** | Rapid button/lever interaction chatter distinct from Trek's LCARS chirps. **Implemented in Phase 3** as the dedicated `who` telemetry era — see below. | Medium — this is really about giving Whoniverse its *own* telemetry vocabulary rather than one new element |
|
||||
|
||||
Item 4 is the more consequential one long-term: right now every Whoniverse
|
||||
preset borrows a Trek-era telemetry vocabulary (TOS warbles, TNG chirps, etc.)
|
||||
because `telemetry.era` only has five Trek values to choose from. A dedicated
|
||||
`who` era — built from lever clunks, switch throws, and the console's own
|
||||
percussive character — would be the single biggest authenticity improvement
|
||||
available to this universe, bigger than any individual missing one-shot.
|
||||
Item 4 was the more consequential one long-term, and is now done: every
|
||||
Whoniverse preset used to borrow a Trek-era telemetry vocabulary (TOS warbles,
|
||||
TNG chirps, etc.) because `telemetry.era` only had five Trek values to choose
|
||||
from. Phase 3 added a dedicated `who` era — built from lever clunks, switch
|
||||
throws, and the console's own percussive character — across all seven
|
||||
`tardis-*` presets.
|
||||
|
||||
---
|
||||
|
||||
@@ -488,25 +504,41 @@ Every TARDIS console room preset is audited against the audio engine:
|
||||
|
||||
| Preset ID | Console Room / Doctor | Era | Hull Drone | Warp Core | Life Support | Telemetry |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| `tardis-1963` | 1963 Classic Console (1st / 2nd Doctors) | `classic` | 68 Hz, 150 Hz lp, 0.35 noise | 52 bpm, 96 Hz, `tos` | Pink, 220–1800 Hz | `tos` (volume 0.55, density 0.6) |
|
||||
| `tardis-victorian` | Victorian Secondary Console (4th Doctor) | `classic` | 44 Hz, 85 Hz lp, 0.45 noise | 40 bpm, 50 Hz, `nx` | Brown, 110–1200 Hz | `nx` (volume 0.35, density 0.4) |
|
||||
| `tardis-coral` | Coral Console (9th / 10th Doctors) | `revival` | 42 Hz, 90 Hz lp, 0.50 noise | 46 bpm, 56 Hz, `nx` | Brown, 140–1400 Hz | `ds9` (volume 0.4, density 0.45) |
|
||||
| `tardis-copper` | The Copper Workshop (11th Doctor) | `revival` | 56 Hz, 125 Hz lp, 0.40 noise | 62 bpm, 72 Hz, `voyager` | White, 220–2200 Hz | `voyager` (volume 0.55, density 0.7) |
|
||||
| `tardis-cold-machine` | The Cold Machine (12th Doctor) | `revival` | 50 Hz, 110 Hz lp, 0.38 noise | 56 bpm, 68 Hz, `tng` | Pink, 200–1600 Hz | `ds9` (volume 0.4, density 0.5) |
|
||||
| `tardis-crystal` | The Singing Crystal Console (13th Doctor) | `revival` | 46 Hz, 100 Hz lp, 0.50 noise | 44 bpm, 88 Hz, `defiant` | Pink, 180–1900 Hz | `voyager` (volume 0.5, density 0.6) |
|
||||
| `tardis-infinite-white` | The Infinite White (14th / 15th Doctors) | `modern` | 48 Hz, 95 Hz lp, 0.42 noise | 50 bpm, 60 Hz, `tng` | White, 160–2600 Hz | `tng` (volume 0.45, density 0.6) |
|
||||
| `tardis-1963` | 1963 Classic Console (1st / 2nd Doctors) | `classic` | 68 Hz, 150 Hz lp, 0.35 noise | 52 bpm, 96 Hz, `tos` | Pink, 220–1800 Hz | `who` (volume 0.55, density 0.6) |
|
||||
| `tardis-victorian` | Victorian Secondary Console (4th Doctor) | `classic` | 44 Hz, 85 Hz lp, 0.45 noise | 40 bpm, 50 Hz, `nx` | Brown, 110–1200 Hz | `who` (volume 0.35, density 0.4) |
|
||||
| `tardis-coral` | Coral Console (9th / 10th Doctors) | `revival` | 42 Hz, 90 Hz lp, 0.50 noise | 46 bpm, 56 Hz, `nx` | Brown, 140–1400 Hz | `who` (volume 0.4, density 0.45) |
|
||||
| `tardis-copper` | The Copper Workshop (11th Doctor) | `revival` | 56 Hz, 125 Hz lp, 0.40 noise | 62 bpm, 72 Hz, `voyager` | White, 220–2200 Hz | `who` (volume 0.55, density 0.7) |
|
||||
| `tardis-cold-machine` | The Cold Machine (12th Doctor) | `revival` | 50 Hz, 110 Hz lp, 0.38 noise | 56 bpm, 68 Hz, `tng` | Pink, 200–1600 Hz | `who` (volume 0.4, density 0.5) |
|
||||
| `tardis-crystal` | The Singing Crystal Console (13th Doctor) | `revival` | 46 Hz, 100 Hz lp, 0.50 noise | 44 bpm, 88 Hz, `defiant` | Pink, 180–1900 Hz | `who` (volume 0.5, density 0.6) |
|
||||
| `tardis-infinite-white` | The Infinite White (14th / 15th Doctors) | `modern` | 48 Hz, 95 Hz lp, 0.42 noise | 50 bpm, 60 Hz, `tng` | White, 160–2600 Hz | `who` (volume 0.45, density 0.6) |
|
||||
|
||||
---
|
||||
|
||||
## Whoniverse Phase 2 additions
|
||||
|
||||
Implemented under audio_gaps.md Phase 2 (rows #24–#25). Both remain standalone
|
||||
routines; `TelemetrySynth` `era: 'who'` routing is Phase 3 scope.
|
||||
Implemented under audio_gaps.md Phase 2 (rows #24–#25). Row #25 (console
|
||||
"type" input telemetry) was superseded in Phase 3: `startConsoleTypeTelemetry`
|
||||
was removed, and every `tardis-*` preset now drives its clatter through
|
||||
`TelemetrySynth`'s dedicated `who` era instead — see the Phase 3 additions
|
||||
below.
|
||||
|
||||
| Element | Method (WhoniverseAudioSynth) | Soundboard | Ambient hook |
|
||||
| --- | --- | --- | --- |
|
||||
| Scanner / monitor activation | `synthesizeScannerActivate` | `btn-scanner-activate` | — (flyback partial at 10.6 kHz) |
|
||||
| Console "type" input telemetry | `synthesizeTypeClatter` + `startConsoleTypeTelemetry` | `btn-type-clatter` | All `tardis-*` rooms, 2.8–6.5 s clatter clusters |
|
||||
| Console "type" input telemetry (manual hit) | `synthesizeTypeClatter` | `btn-type-clatter` | Superseded as an automatic loop — see Phase 3 `who`-era telemetry below |
|
||||
|
||||
---
|
||||
|
||||
## Whoniverse Phase 3 additions
|
||||
|
||||
Implemented under audio_gaps.md Phase 3. Item 4 in the gap list above (the
|
||||
dedicated `who` telemetry era) is now built: `TelemetrySynth.era = 'who'`
|
||||
drives every `tardis-*` preset (see the corrected Telemetry column in the
|
||||
preset mapping table above), replacing the borrowed Trek-era chirps.
|
||||
|
||||
| Element | Method (TelemetrySynth) | Routing | Acoustic output |
|
||||
| --- | --- | --- | --- |
|
||||
| `who`-era mechanical telemetry | `synthesizeWhoMechanicalTelemetry_` | Every `tardis-*` preset (`telemetry.era: 'who'`) | 2–5 dual-filtered toggle snaps (20–45 ms noise pulses through paired bandpass filters), 60–120 Hz spring-lever square clicks collapsing in pitch, and damped sine rotary-selector clunks per tick — no electronic beeps anywhere in the mix. |
|
||||
|
||||
---
|
||||
|
||||
@@ -735,15 +767,17 @@ one-shots the same way.
|
||||
|
||||
| # | Sound | Why it matters | Difficulty |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | **Bespoke bioship telemetry era** | The single biggest gap in this category, and the same shape as Whoniverse's biggest gap. All six presets currently draw `telemetry.era` from Trek's five values (see the era table in `telemetry_elements.md`) — there is no organic-sounding discrete vocabulary at all, only relabeled inorganic ones. | Medium–High |
|
||||
| 1 | **Bespoke bioship telemetry era** | The single biggest gap in this category, and the same shape as Whoniverse's biggest gap. **Implemented in Phase 3** as the dedicated `bioship` telemetry era — see below. | Medium–High |
|
||||
| 2 | **"Singing" resonance element for the Vorlon Cruiser** | The strongest single documented cue in this whole category ("singing to their occupants") has no dedicated synthesis; it's currently indistinguishable from any other bioship preset at the discrete-sound level. | Medium |
|
||||
| 3 | **Neural-bond swell (Moya/Talyn/Wraith)** | Three of six ships have a documented neural-interface detail (Pilot's nerve endings, Wraith telepathic DNA control) that could unify into one element used across all three, rather than reusing the TARDIS's telepathic chime. | Medium |
|
||||
| 4 | **Misty-atmosphere life-support tuning (Wraith)** | A specific, documented environmental detail (mist-covered corridor floors) with no corresponding audio treatment — likely a `lifeSupport` filter/noise adjustment rather than a new element. | Low |
|
||||
| 5 | **Hull self-repair / regeneration texture (Wraith)** | Documented as a distinct capability (auto-regenerating organic hull) with dramatic stakes (forced rest between jumps) and no sonic representation at all. | Medium |
|
||||
|
||||
Item 1 dwarfs the rest in the same way the Whoniverse telemetry gap did: a
|
||||
purpose-built organic discrete vocabulary — creaks, pulses, membrane flutters —
|
||||
would do more for this universe's authenticity than any single new one-shot.
|
||||
Item 1 dwarfed the rest in the same way the Whoniverse telemetry gap did, and
|
||||
is now done: Phase 3 added a purpose-built organic discrete vocabulary —
|
||||
vascular thumps, chitin snaps, fluid pops, membrane flutters — as the
|
||||
dedicated `bioship` telemetry era across all six presets. See the Phase 3
|
||||
additions below.
|
||||
|
||||
## Bioships Phase 2 additions
|
||||
|
||||
@@ -757,6 +791,20 @@ Implemented under audio_gaps.md Phase 2 (rows #26–#28).
|
||||
|
||||
---
|
||||
|
||||
## Bioships Phase 3 additions
|
||||
|
||||
Implemented under audio_gaps.md Phase 3. Item 1 in the gap list above (the
|
||||
dedicated bioship telemetry era) is now built: `TelemetrySynth.era =
|
||||
'bioship'` drives all six `bio-*` presets, replacing the borrowed Trek eras
|
||||
those presets used to carry (see [`telemetry_elements.md`](telemetry_elements.md)
|
||||
for the corrected per-preset routing).
|
||||
|
||||
| Element | Method (TelemetrySynth) | Routing | Acoustic output |
|
||||
| --- | --- | --- | --- |
|
||||
| `bioship`-era organic telemetry | `synthesizeBioshipOrganicTelemetry_` | All six `bio-*` presets (`telemetry.era: 'bioship'`) | 2–4 events per phrase, drawn at random: asymmetric 30–90 Hz vascular-surge sine thumps (sometimes echoed as a lub-dub double beat), high-Q bandpass chitin-snap noise ticks, bandpass-filtered wet bioplasmic fluid pops with a resonant tail, and AM-stepped membrane-flutter noise between 300–700 Hz. |
|
||||
|
||||
---
|
||||
|
||||
## Bioships open questions
|
||||
|
||||
- **[GAP]** No sound design production information was found for The Lexx,
|
||||
@@ -1221,10 +1269,10 @@ Ranked by impact and feasibility across the six station profiles:
|
||||
|
||||
| # | Sound | Station(s) | Why it matters | Difficulty |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 1 | **Belter "jury-rigged" telemetry era** | Ceres, Tycho | The single most specific, citable production directive in modern sci-fi sound design ("broken, creaky mechanisms" per Nelson Ferreira). Replacing sleek Trek chirps with rattling relays and tinny solenoids would give The Expanse presets unmatched authenticity. | Medium |
|
||||
| 1 | **Belter "jury-rigged" telemetry era** | Ceres, Tycho | The single most specific, citable production directive in modern sci-fi sound design ("broken, creaky mechanisms" per Nelson Ferreira). **Implemented in Phase 3** — see below. | Medium |
|
||||
| 2 | **Sevastopol "spark" transient** | Sevastopol | Jeff van Dyck's audio brief explicitly dictates "creaking and sparking and shuddering." The app has creak and shudder via dark noise filters, but completely lacks random high-frequency electrical spark discharges. | Low |
|
||||
| 3 | **Commlock calling tone** | Moonbase Alpha | The most iconic discrete sound in *Space: 1999*. A simple dual-frequency square/sine chirp synthesized on an ARP Odyssey model. | Low |
|
||||
| 4 | **Zocalo commerce-plaza chatter** | Babylon 5 | Public gathering spaces (like DS9's Promenade or B5's Zocalo) require multi-voice background texture rather than solitary machinery hums. | Medium–High |
|
||||
| 4 | **Zocalo commerce-plaza chatter** | Babylon 5 | Public gathering spaces (like DS9's Promenade or B5's Zocalo) require multi-voice background texture rather than solitary machinery hums. **Implemented in Phase 3** — see below. | Medium–High |
|
||||
| 5 | **Magnetic boot ("mag-boot") latch** | Tycho, Ceres | The defining individual foley element of *The Expanse*: a crisp metallic step with an instant electromagnetic lock buzz. | Low–Medium |
|
||||
| 6 | **Medical vital telemetry (ECG)** | Gateway | Rhythmic bedside heart monitor pulse for the quarantine medical bay, establishing the calm, sterile contrast with the combat zones. | Low |
|
||||
|
||||
@@ -1232,12 +1280,26 @@ Ranked by impact and feasibility across the six station profiles:
|
||||
|
||||
## Space Stations Phase 2 additions
|
||||
|
||||
Implemented under audio_gaps.md Phase 2 (row #29). Delivered as a standalone
|
||||
routine; `TelemetrySynth` `era: 'belter'` routing is Phase 3 scope.
|
||||
Implemented under audio_gaps.md Phase 2 (row #29). Row #29's standalone
|
||||
routine (`startBelterTelemetry`) was removed in Phase 3 — the automatic
|
||||
ambient version now runs through `TelemetrySynth`'s `belter` era instead; see
|
||||
the Phase 3 additions below.
|
||||
|
||||
| Element | Method (ExpandedSciFiAudioSynth) | Soundboard | Ambient hook |
|
||||
| --- | --- | --- | --- |
|
||||
| Belter jury-rigged telemetry | `synthesizeBelterTelemetryJitter` + `startBelterTelemetry` | `btn-belter-telemetry` (full-width) | `sta-ceres`, `sta-tycho`, 1.8–4.5 s jitter clusters |
|
||||
| Belter jury-rigged telemetry (manual hit) | `synthesizeBelterTelemetryJitter` | `btn-belter-telemetry` (full-width) | Manual soundboard trigger only |
|
||||
|
||||
---
|
||||
|
||||
## Space Stations Phase 3 additions
|
||||
|
||||
Implemented under audio_gaps.md Phase 3. Item 1 in the gap list above (the
|
||||
dedicated `belter` telemetry era) and item 4 (Zocalo chatter) are both done.
|
||||
|
||||
| Element | Method | Routing | Acoustic output |
|
||||
| --- | --- | --- | --- |
|
||||
| `belter`-era jury-rigged telemetry | `TelemetrySynth.synthesizeBelterJuryRiggedTelemetry_` | `sta-tycho`, `sta-ceres` (`telemetry.era: 'belter'`) — also extended to `ind-rocinante` in the Industrial universe | 3–6 events per volley, drawn at random: jittered square relay pulses with randomized micro-dropouts, contact-bounce double/triple clicks, metallic bandpass ticks, and unstable "dying oscillator" clock pings — plus an occasional late catch-up sub-volley, mimicking a station clock that skips then recovers. |
|
||||
| Zocalo commerce-plaza chatter | `ExpandedSciFiAudioSynth.startZocaloChatter` / `stopZocaloChatter` | `sta-babylon-5` on engage; manual toggle `btn-zocalo-chatter` | Continuous crowd-murmur bed: looped pink noise through four parallel formant bandpasses (300 Hz–3 kHz) whose centers drift at 0.03–0.11 Hz, plus an accent layer of vowelish murmur blips. Restarting fades any previous bed out first. |
|
||||
|
||||
---
|
||||
|
||||
@@ -3248,8 +3310,8 @@ that are currently simulated by existing approximations:
|
||||
|
||||
| Priority | Element | Source ship | Description | Implementation path |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 1 | **Dedicated Point-Defense Flak Barrage Burst** | Battlestar Galactica | Rapid-firing sequence of sharp concussive explosions ("thud-thud-crack") echoing through outer armor, rather than a single FTL displacement boom. | High: Add `synthesizeFlakBurst()` creating clustered short noise transients with lowpass body decay. |
|
||||
| 2 | **Heavy Weapons Arming Breech Clank** | USS Sulaco / Agamemnon | Mechanical pneumatic solenoid latch and breech-locking clank when loading heavy ordnance, replacing single chirp. | High: Synthesize dual metallic pulse in `ExpandedSciFiAudioSynth`. |
|
||||
| 1 | **Dedicated Point-Defense Flak Barrage Burst** | Battlestar Galactica | Rapid-firing sequence of sharp concussive explosions ("thud-thud-crack") echoing through outer armor, rather than a single FTL displacement boom. **Implemented in Phase 3** — see below. | High: Add `synthesizeFlakBurst()` creating clustered short noise transients with lowpass body decay. |
|
||||
| 2 | **Heavy Weapons Arming Breech Clank** | USS Sulaco / Agamemnon | Mechanical pneumatic solenoid latch and breech-locking clank when loading heavy ordnance, replacing single chirp. **Implemented in Phase 3** — see below. | High: Synthesize dual metallic pulse in `ExpandedSciFiAudioSynth`. |
|
||||
| 3 | **Centrifugal Habitat Carousel Motor Groan** | EAS Agamemnon | Very low frequency (12–24 Hz) cyclical rotational groan reflecting the continuous 1 rpm rotation of the crew carousel. | Medium: Modulate hull drone amplitude with an ultra-slow LFO (0.016 Hz). |
|
||||
| 4 | **Slipstream Drive Transition Surge** | Andromeda Ascendant | Ascending harmonic pitch sweep followed by a crystal-clear string resonance when entering the slipstream. | Medium: Sweep dual bandpass filters with resonance ramp. |
|
||||
| 5 | **Viper Pilot Oxygen Regulator Demand Valve** | Colonial Viper Mk II | Periodic rhythmic breath intake hiss and pneumatic demand-valve click synchronized with high-G maneuvering. | Medium: Add pulsed envelope trigger to highpass white-noise generator. |
|
||||
@@ -3268,6 +3330,17 @@ Implemented under audio_gaps.md Phase 2 (rows #37–#39).
|
||||
|
||||
---
|
||||
|
||||
## Military Space Phase 3 additions
|
||||
|
||||
Implemented under audio_gaps.md Phase 3 (rows #49–#50).
|
||||
|
||||
| Element | Method (ExpandedSciFiAudioSynth) | Soundboard | Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| Point-defense flak barrage burst | `synthesizeFlakBarrageBurst` | `btn-flak` (`type: 'flak'`) | 4–8 staggered noise transients 10–30 ms apart over a 40 Hz sub-bass punch, plus a couple of high shell-crack transients per volley; whole burst ~0.9–1.4 s. Also replaces the earlier placeholder that fired the FTL-jump sound for this button. |
|
||||
| Heavy weapons breech locking clank | `synthesizeBreechClank` | `btn-breech-clank` | Three-stage loading cycle: 80 ms pre-charge pneumatic hiss, 60 Hz square breech slam into a lowpass body, and a high-Q steel ringoff with damped inharmonic partials. ~1.6 s. |
|
||||
|
||||
---
|
||||
|
||||
## Military Space open questions
|
||||
|
||||
- **[GAP]** The exact acoustic recording sources used by Don Sharpe for the
|
||||
@@ -3895,8 +3968,8 @@ production that are currently simulated by approximations:
|
||||
|
||||
| Priority | Element | Source ship | Description | Implementation path |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 1 | **Dedicated Mechanical Dot-Matrix / Teletype Chatter** | USCSS Nostromo | Continuous rhythmic chatter of mechanical dot-matrix print heads and multi-pin character strikers for MU/TH/UR, replacing single demat switch clicks. | High: Synthesize burst of randomized 4000 Hz noise impulses with regular stepper-motor carriage advance. |
|
||||
| 2 | **Heavy Hydraulic Docking Groan & Mechanical Clang** | USCSS Nostromo / Red Dwarf | Massive low-frequency metal-on-metal groan (30–60 Hz) followed by a ringing sledgehammer-like clamp strike when securing ore umbilicals. | High: Add dual resonant bandpass filter on white-noise burst. |
|
||||
| 1 | **Dedicated Mechanical Dot-Matrix / Teletype Chatter** | USCSS Nostromo | Continuous rhythmic chatter of mechanical dot-matrix print heads and multi-pin character strikers for MU/TH/UR, replacing single demat switch clicks. **Implemented in Phase 3** — see below. | High: Synthesize burst of randomized 4000 Hz noise impulses with regular stepper-motor carriage advance. |
|
||||
| 2 | **Heavy Hydraulic Docking Groan & Mechanical Clang** | USCSS Nostromo / Red Dwarf | Massive low-frequency metal-on-metal groan (30–60 Hz) followed by a ringing sledgehammer-like clamp strike when securing ore umbilicals. **Implemented in Phase 3** — see below. | High: Add dual resonant bandpass filter on white-noise burst. |
|
||||
| 3 | **Condensation Pipe Drip & Expansion Ticks** | USCSS Nostromo / Serenity | Intermittent high-frequency water drops hitting grated metal catwalks and irregular metallic pings from contracting coolant pipes. | Medium: Randomly triggered high-Q sine pings with short decay. |
|
||||
| 4 | **High-Pressure Continuous Steam / Boiler Venting** | Serenity / Starbug | Sustained white-noise steam hiss with flutter modulation, rather than a short fast-return pitch ramp. | Medium: Bandpass white noise (800–2800 Hz) with slow LFO amplitude swell. |
|
||||
| 5 | **Crash Couch Hydraulic Gimbal / G-Load Strain** | Rocinante | Heavy servo-motor whining adjusting couch angles during sustained high-G burns. | Medium: Frequency-modulated triangle wave with lowpass body. |
|
||||
@@ -3915,6 +3988,20 @@ Implemented under audio_gaps.md Phase 2 (rows #40–#42).
|
||||
|
||||
---
|
||||
|
||||
## Industrial Space Phase 3 additions
|
||||
|
||||
Implemented under audio_gaps.md Phase 3 (rows #51–#53). `ind-rocinante` also
|
||||
picked up the Space Stations universe's new `belter` telemetry era in this
|
||||
phase (see the Space Stations Phase 3 additions).
|
||||
|
||||
| Element | Method (ExpandedSciFiAudioSynth) | Soundboard | Ambient hook |
|
||||
| --- | --- | --- | --- |
|
||||
| Dot-matrix / teletype chatter phrase | `synthesizeTeletypeChatterPhrase` | `btn-teletype` | Manual phrase unit: 6–16 pseudo-random high-Q ~4 kHz impact spikes with periodic 12 Hz stepper clicks, soft attack/release. |
|
||||
| Continuous Nostromo teletype chatter | `startTeletypeChatter` / `stopTeletypeChatter` | — (automatic) | `ind-nostromo` on engage; overlapping phrase units at a 0.9–2.0 s cadence keep the terminal bed continuous. |
|
||||
| Heavy hydraulic docking groan & clang | `synthesizeDockingGroan` | `btn-dock-groan` | ~4.0 s structural stress groan — brown noise through two parallel resonant bandpasses sweeping 38→62 Hz and 55→85 Hz under an asymmetric groaning envelope — resolving into a metallic anvil transient with an inharmonic sine stack at the moment the clamp seats. |
|
||||
|
||||
---
|
||||
|
||||
## Industrial Space open questions
|
||||
|
||||
- **[GAP]** The exact mechanical typewriter and electromechanical relay sources
|
||||
@@ -4531,8 +4618,8 @@ that are currently simulated by existing approximations:
|
||||
|
||||
| Priority | Element | Source ship | Description | Implementation path |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 1 | **Dual-Reel Magnetic Tape Spooler & Pinch Roller Clank** | Jupiter 2 / Discovery One | Mechanical pinch roller solenoid snap followed by rhythmic 15 ips magnetic tape flutter and capstan motor whirr. | High: Combine short square impulse with fluttering pink noise. |
|
||||
| 2 | **Continuous Heterodyne / Theremin Navigational Drone** | Jupiter 2 | Continuous, gentle dual-sine wave heterodyning producing a subtle 8 Hz beat frequency in the background room tone. | High: Add secondary detuned sine oscillator to hull synth. |
|
||||
| 1 | **Dual-Reel Magnetic Tape Spooler & Pinch Roller Clank** | Jupiter 2 / Discovery One | Mechanical pinch roller solenoid snap followed by rhythmic 15 ips magnetic tape flutter and capstan motor whirr. **Implemented in Phase 3** — see below. | High: Combine short square impulse with fluttering pink noise. |
|
||||
| 2 | **Continuous Heterodyne / Theremin Navigational Drone** | Jupiter 2 | Continuous, gentle dual-sine wave heterodyning producing a subtle 8 Hz beat frequency in the background room tone. **Implemented in Phase 3** — see below. | High: Add secondary detuned sine oscillator to hull synth. |
|
||||
| 3 | **HAL 9000 Breathing / Vocal Carrier Ambient Loop** | Discovery One | Very soft, measured human respiration sound echoing inside space helmet or life support loop. | Medium: Rhythmic bandpass pink noise with 3-second cycle. |
|
||||
| 4 | **Death Blossom Energy Surge Capacitor Ramp** | Gunstar | Exponentially accelerating multi-oscillator pitch ramp from 200 Hz to 8000 Hz over 2.5 seconds. | Medium: Add cascaded saw oscillators with exponential frequency ramp. |
|
||||
| 5 | **Victorian Steam Piston Chug & Iron Camshaft Clatter** | USS Cygnus | Heavy mechanical piston stroke with low-frequency steam exhaust chug echoing off cast-iron bulkheads. | Medium: Lowpass noise burst with rhythmic triangle body. |
|
||||
@@ -4551,6 +4638,18 @@ Implemented under audio_gaps.md Phase 2 (rows #43–#45).
|
||||
|
||||
---
|
||||
|
||||
## Retro Future Phase 3 additions
|
||||
|
||||
Implemented under audio_gaps.md Phase 3 (rows #53–#54). Items 1 and 2 in the
|
||||
gap list above are both covered.
|
||||
|
||||
| Element | Method (ExpandedSciFiAudioSynth) | Soundboard | Ambient hook |
|
||||
| --- | --- | --- | --- |
|
||||
| Dual-reel magnetic tape spooler & pinch roller clank | `synthesizeTapeSpooler` | `btn-tape-spooler` | Solenoid pinch-roller engagement (110 Hz impulse), a fluttering pink tape bed (15 Hz AM on bandpass noise) and a faint 3200 Hz capstan hum with spool-up glide, ending in an optional fast-forward whine tail. ~2.6–3.5 s. |
|
||||
| Continuous heterodyne / theremin navigational drone | `startHeterodyneDrone` / `stopHeterodyneDrone` | Toggle `btn-hetero-drone` | `ret-jupiter-2` on engage; two detuned sines (~1040/1048 Hz) beating at ~8 Hz, each with its own slow independent wander LFO so the beat drifts like a vacuum-tube theremin. 3 s attack, room-tone level, 1.8 s release on stop; restarting always fades the previous bed out first. |
|
||||
|
||||
---
|
||||
|
||||
## Retro Future open questions
|
||||
|
||||
- **[GAP]** The exact electronic audio generators and tape echo units used by
|
||||
|
||||
+87
-39
@@ -27,6 +27,12 @@ events rather than running continuously.
|
||||
| **NX Indicator Beep** | `synthesizeNXIndicatorBeep()` | 80 ms 950 Hz sine with a flat sustain plateau and a fast tail. Plain and utilitarian; no glide, no scale membership. | NX auto-scheduler (50%) |
|
||||
| **TNG Door Chime** | `synthesizeDoorChime()` | Two overlapping sines, A5 (880 Hz) then D6 (1174.66 Hz) at +160 ms, each with a long 450–700 ms decay. The "come in" chime. | Soundboard `btn-chirp-door` only — **never** fired by the auto-scheduler |
|
||||
|
||||
The table above is the original five-era Starfleet vocabulary. Phase 3 added
|
||||
three more eras — `who`, `bioship`, `belter` — but they don't fit this table's
|
||||
shape: each fires a **multi-event generator** (a whole 0.25–1.4 s phrase of
|
||||
staggered transients per tick) rather than picking one discrete element. They
|
||||
are catalogued in [Phase 3 telemetry eras](#phase-3-telemetry-eras) below.
|
||||
|
||||
---
|
||||
|
||||
## The auto-scheduler
|
||||
@@ -57,13 +63,19 @@ an era or a new element.
|
||||
| `tos` | Computer Warble 60% · Relay Click 40% |
|
||||
| `ds9` | Cardassian Sensor 50% · Single Chirp 50% |
|
||||
| `nx` | Hydraulic Relay 50% · Indicator Beep 50% |
|
||||
| `who` (Phase 3) | Dedicated mechanical-telemetry generator — see [Phase 3 telemetry eras](#phase-3-telemetry-eras) |
|
||||
| `bioship` (Phase 3) | Dedicated organic-telemetry generator — see [Phase 3 telemetry eras](#phase-3-telemetry-eras) |
|
||||
| `belter` (Phase 3) | Dedicated jury-rigged-telemetry generator — see [Phase 3 telemetry eras](#phase-3-telemetry-eras) |
|
||||
|
||||
Note the era is a **telemetry** property, not a universe property: it is set
|
||||
per preset in `js/config.js` (`telemetry.era`) and is independent of the
|
||||
universe that governs the visuals. In practice every preset in every universe
|
||||
uses one of these five Trek eras, so non-Trek themes play Trek telemetry — see
|
||||
universe that governs the visuals. Originally every preset in every universe
|
||||
used one of the five Trek eras, so non-Trek themes played Trek telemetry.
|
||||
Phase 3 gave three universes their own dedicated eras instead (Whoniverse →
|
||||
`who`, Bioships → `bioship`, and Ceres/Tycho/Rocinante → `belter`) — the
|
||||
remaining universes still borrow Trek telemetry. See
|
||||
[Preset → telemetry era reference](#preset--telemetry-era-reference) for the
|
||||
full per-preset mapping.
|
||||
full, corrected per-preset mapping.
|
||||
|
||||
---
|
||||
|
||||
@@ -105,7 +117,33 @@ than inventing loose frequencies — they are what makes the layer sound coheren
|
||||
matching the era's less "designed" sound.
|
||||
|
||||
Unpitched elements (relay clicks, sweeps, the Cardassian tone) generate their
|
||||
own frequencies and intentionally sit outside both scales.
|
||||
own frequencies and intentionally sit outside both scales. The three Phase 3
|
||||
eras below are unpitched entirely — none of them touch `lcarsPitches` or
|
||||
`tosFrequencies`, on purpose: they are meant to sound like mechanisms, not
|
||||
computers.
|
||||
|
||||
---
|
||||
|
||||
## Phase 3 telemetry eras
|
||||
|
||||
Added under audio_gaps.md Phase 3 to give three universes a telemetry
|
||||
vocabulary of their own instead of borrowed Trek chirps. Each is a private
|
||||
method (trailing underscore, by convention for the multi-event generators
|
||||
added in this phase) invoked once per scheduler tick from the same
|
||||
`playRandomTelemetrySound()` switch as the five Trek eras — but where a Trek
|
||||
era picks **one** discrete element, each Phase 3 era fires a **whole phrase**
|
||||
of several staggered transients scheduled on absolute `ctx` time in a single
|
||||
call.
|
||||
|
||||
| Era | Method (TelemetrySynth) | Universe(s) | Acoustic output |
|
||||
| --- | --- | --- | --- |
|
||||
| `who` | `synthesizeWhoMechanicalTelemetry_()` | Whoniverse (all 7 `tardis-*` presets) | 2–5 transients per tick, drawn at random from: dual-filtered toggle snaps (20–45 ms noise pulses through paired bandpass filters), 60–120 Hz spring-lever square clicks collapsing in pitch, and damped sine rotary-selector clunks. No electronic beeps. |
|
||||
| `bioship` | `synthesizeBioshipOrganicTelemetry_()` | Bioships (all 6 `bio-*` presets) | 2–4 events per phrase: asymmetric 30–90 Hz vascular-surge sine thumps (sometimes with a lub-dub echo beat), high-Q bandpass chitin-snap noise ticks, bandpass-filtered wet bioplasmic fluid pops, and AM-stepped membrane-flutter noise between 300–700 Hz. |
|
||||
| `belter` | `synthesizeBelterJuryRiggedTelemetry_()` | `sta-tycho`, `sta-ceres` (Space Stations) and `ind-rocinante` (Industrial) | 3–6 events per volley: jittered square relay pulses with randomized micro-dropouts, contact-bounce double/triple clicks, metallic bandpass ticks, and unstable "dying oscillator" clock pings — plus an occasional late catch-up sub-volley mimicking a station clock that skips then recovers. |
|
||||
|
||||
These three eras are documented in full, with source-material context, in
|
||||
[`sound_reference.md`](sound_reference.md) under each universe's "Phase 3
|
||||
additions" section.
|
||||
|
||||
---
|
||||
|
||||
@@ -182,11 +220,15 @@ no existing element has. In that case:
|
||||
|
||||
`telemetry.era` is assigned **per preset**, and it is the only thing that
|
||||
decides which elements the auto-scheduler fires. It is *not* derived from the
|
||||
universe. All 70 presets across all 10 universes currently use one of the five
|
||||
Star Trek eras, so non-Trek universes play Trek telemetry: a retrofuture profile
|
||||
can chatter in TOS warbles, and a living-ship profile can ring with the
|
||||
Cardassian sensor tone. If you hear a sound that seems foreign to the theme you
|
||||
are on, this table is where to look it up.
|
||||
universe. Originally all 70 presets across all 10 universes used one of the
|
||||
five Star Trek eras, so non-Trek universes played Trek telemetry: a
|
||||
retrofuture profile could chatter in TOS warbles, and a living-ship profile
|
||||
could ring with the Cardassian sensor tone. Phase 3 broke that pattern for
|
||||
three universes — see [Phase 3 telemetry eras](#phase-3-telemetry-eras) above —
|
||||
so Whoniverse, Bioships, and three `belter` presets (Tycho, Ceres, Rocinante)
|
||||
now have their own vocabulary instead. Everything else below still borrows
|
||||
Trek telemetry; if you hear a sound that seems foreign to the theme you are
|
||||
on, this table is where to look it up.
|
||||
|
||||
| Era | Elements fired |
|
||||
| --- | --- |
|
||||
@@ -195,6 +237,9 @@ are on, this table is where to look it up.
|
||||
| `tos` | TOS Computer Warble 60% · TOS Relay Click 40% |
|
||||
| `ds9` | Cardassian Sensor 50% · Single Chirp 50% |
|
||||
| `nx` | NX Hydraulic Relay 50% · NX Indicator Beep 50% |
|
||||
| `who` | `who`-era mechanical telemetry (see above) |
|
||||
| `bioship` | `bioship`-era organic telemetry (see above) |
|
||||
| `belter` | `belter`-era jury-rigged telemetry (see above) |
|
||||
|
||||
### Starfleet Command (10 presets — ds9 ×2 · nx ×1 · tng ×3 · tos ×2 · voyager ×2)
|
||||
|
||||
@@ -211,19 +256,19 @@ are on, this table is where to look it up.
|
||||
| Enterprise NCC-1701: Engineering (TOS) | `tos` | TOS Computer Warble 60% · TOS Relay Click 40% |
|
||||
| Enterprise NX-01: Command Bridge | `nx` | NX Hydraulic Relay 50% · NX Indicator Beep 50% |
|
||||
|
||||
### The Whoniverse (7 presets — ds9 ×1 · nx ×1 · tng ×2 · tos ×1 · voyager ×2)
|
||||
### The Whoniverse (7 presets — who ×7, all Phase 3)
|
||||
|
||||
| Preset | Era | Elements heard |
|
||||
| --- | --- | --- |
|
||||
| 1963 Classic Console (1st / 2nd Doctors) | `tos` | TOS Computer Warble 60% · TOS Relay Click 40% |
|
||||
| Victorian Secondary Console (4th Doctor) | `nx` | NX Hydraulic Relay 50% · NX Indicator Beep 50% |
|
||||
| The Coral Living TARDIS (9th / 10th Doctors) | `tng` | Single Chirp 45% · Double Chirp 30% · Ack Sequence 15% · Sensor Sweep 10% |
|
||||
| The Copper Workshop (11th Doctor) | `voyager` | Double Chirp 60% · Sensor Sweep 40% |
|
||||
| The Cold Machine (12th Doctor) | `ds9` | Cardassian Sensor 50% · Single Chirp 50% |
|
||||
| The Singing Crystal Console (13th Doctor) | `voyager` | Double Chirp 60% · Sensor Sweep 40% |
|
||||
| The Infinite White (14th / 15th Doctors) | `tng` | Single Chirp 45% · Double Chirp 30% · Ack Sequence 15% · Sensor Sweep 10% |
|
||||
| 1963 Classic Console (1st / 2nd Doctors) | `who` | `who`-era mechanical telemetry (2–5 transients/tick) |
|
||||
| Victorian Secondary Console (4th Doctor) | `who` | `who`-era mechanical telemetry (2–5 transients/tick) |
|
||||
| The Coral Living TARDIS (9th / 10th Doctors) | `who` | `who`-era mechanical telemetry (2–5 transients/tick) |
|
||||
| The Copper Workshop (11th Doctor) | `who` | `who`-era mechanical telemetry (2–5 transients/tick) |
|
||||
| The Cold Machine (12th Doctor) | `who` | `who`-era mechanical telemetry (2–5 transients/tick) |
|
||||
| The Singing Crystal Console (13th Doctor) | `who` | `who`-era mechanical telemetry (2–5 transients/tick) |
|
||||
| The Infinite White (14th / 15th Doctors) | `who` | `who`-era mechanical telemetry (2–5 transients/tick) |
|
||||
|
||||
### Industrial (8 presets — ds9 ×1 · nx ×3 · tos ×3 · voyager ×1)
|
||||
### Industrial (8 presets — belter ×1 · ds9 ×1 · nx ×3 · tos ×3, 1 Phase 3)
|
||||
|
||||
| Preset | Era | Elements heard |
|
||||
| --- | --- | --- |
|
||||
@@ -232,20 +277,20 @@ are on, this table is where to look it up.
|
||||
| Red Dwarf: Main Drive Corridor | `nx` | NX Hydraulic Relay 50% · NX Indicator Beep 50% |
|
||||
| Starbug 1: Cockpit Environment | `tos` | TOS Computer Warble 60% · TOS Relay Click 40% |
|
||||
| The Raza: Dark Matter Bridge | `ds9` | Cardassian Sensor 50% · Single Chirp 50% |
|
||||
| Rocinante: Combat Ops & Epstein Drive | `voyager` | Double Chirp 60% · Sensor Sweep 40% |
|
||||
| Rocinante: Combat Ops & Epstein Drive | `belter` | `belter`-era jury-rigged telemetry (3–6 events/volley) |
|
||||
| Eagle Transporter: Command Module | `tos` | TOS Computer Warble 60% · TOS Relay Click 40% |
|
||||
| Valley Forge: Agro-Dome Forest Hub | `nx` | NX Hydraulic Relay 50% · NX Indicator Beep 50% |
|
||||
|
||||
### Bioships (6 presets — ds9 ×1 · nx ×2 · tng ×1 · voyager ×2)
|
||||
### Bioships (6 presets — bioship ×6, all Phase 3)
|
||||
|
||||
| Preset | Era | Elements heard |
|
||||
| --- | --- | --- |
|
||||
| Moya: Leviathan Central Nexus | `tng` | Single Chirp 45% · Double Chirp 30% · Ack Sequence 15% · Sensor Sweep 10% |
|
||||
| Talyn: Gunship Neural Bridge | `ds9` | Cardassian Sensor 50% · Single Chirp 50% |
|
||||
| The Lexx: Primary Organ Bridge | `nx` | NX Hydraulic Relay 50% · NX Indicator Beep 50% |
|
||||
| Vorlon Cruiser: Sentient Core | `voyager` | Double Chirp 60% · Sensor Sweep 40% |
|
||||
| Wraith Hive Ship: Throne Chamber | `nx` | NX Hydraulic Relay 50% · NX Indicator Beep 50% |
|
||||
| Species 8472: Fluidic Bioship | `voyager` | Double Chirp 60% · Sensor Sweep 40% |
|
||||
| Moya: Leviathan Central Nexus | `bioship` | `bioship`-era organic telemetry (2–4 events/phrase) |
|
||||
| Talyn: Gunship Neural Bridge | `bioship` | `bioship`-era organic telemetry (2–4 events/phrase) |
|
||||
| The Lexx: Primary Organ Bridge | `bioship` | `bioship`-era organic telemetry (2–4 events/phrase) |
|
||||
| Vorlon Cruiser: Sentient Core | `bioship` | `bioship`-era organic telemetry (2–4 events/phrase) |
|
||||
| Wraith Hive Ship: Throne Chamber | `bioship` | `bioship`-era organic telemetry (2–4 events/phrase) |
|
||||
| Species 8472: Fluidic Bioship | `bioship` | `bioship`-era organic telemetry (2–4 events/phrase) |
|
||||
|
||||
### Retrofuture (8 presets — nx ×2 · tng ×2 · tos ×3 · voyager ×1)
|
||||
|
||||
@@ -295,15 +340,15 @@ are on, this table is where to look it up.
|
||||
| The Marauder: Havoc Shuttle Bridge | `ds9` | Cardassian Sensor 50% · Single Chirp 50% |
|
||||
| The Milano: M-Ship Cockpit Lounge | `voyager` | Double Chirp 60% · Sensor Sweep 40% |
|
||||
|
||||
### Space Stations (6 presets — ds9 ×1 · nx ×2 · tng ×1 · tos ×1 · voyager ×1)
|
||||
### Space Stations (6 presets — belter ×2 · ds9 ×1 · nx ×1 · tng ×1 · tos ×1, 2 Phase 3)
|
||||
|
||||
| Preset | Era | Elements heard |
|
||||
| --- | --- | --- |
|
||||
| Babylon 5: Core Control & Zocalo | `ds9` | Cardassian Sensor 50% · Single Chirp 50% |
|
||||
| Moonbase Alpha: Main Mission Control | `tos` | TOS Computer Warble 60% · TOS Relay Click 40% |
|
||||
| Sevastopol Station: Habitation Deck | `nx` | NX Hydraulic Relay 50% · NX Indicator Beep 50% |
|
||||
| Tycho Station: Asteroid Construction Bay | `voyager` | Double Chirp 60% · Sensor Sweep 40% |
|
||||
| Ceres Station: Sub-Crustal Tunnels | `nx` | NX Hydraulic Relay 50% · NX Indicator Beep 50% |
|
||||
| Tycho Station: Asteroid Construction Bay | `belter` | `belter`-era jury-rigged telemetry (3–6 events/volley) |
|
||||
| Ceres Station: Sub-Crustal Tunnels | `belter` | `belter`-era jury-rigged telemetry (3–6 events/volley) |
|
||||
| Gateway Station: Quarantine Transfer Deck | `tng` | Single Chirp 45% · Double Chirp 30% · Ack Sequence 15% · Sensor Sweep 10% |
|
||||
|
||||
### Comedy (5 presets — nx ×1 · tng ×2 · tos ×1 · voyager ×1)
|
||||
@@ -319,25 +364,28 @@ are on, this table is where to look it up.
|
||||
### Notes on the spread
|
||||
|
||||
- **Starfleet** is the only universe where the era always matches the fiction.
|
||||
- **Whoniverse** spans all five eras across its seven presets — the widest
|
||||
spread of any universe, and the most likely place to hear something
|
||||
unexpected.
|
||||
- **Whoniverse** and **Bioships** no longer borrow Trek eras at all as of
|
||||
Phase 3 — every preset in both universes runs its own dedicated era
|
||||
(`who`, `bioship`).
|
||||
- **Space Stations** and **Industrial** are mixed: Tycho, Ceres (Space
|
||||
Stations) and Rocinante (Industrial) run the Phase 3 `belter` era; the rest
|
||||
of both universes still borrow Trek eras.
|
||||
- **Retrofuture** leans on `tos` (3 of 8), which is at least era-plausible for
|
||||
mid-century-styled ships, but `Discovery One` and `The Searcher` are on full
|
||||
TNG LCARS.
|
||||
- **Bioships** has no acoustic relationship to any Trek era; `Talyn` on `ds9`
|
||||
produces the Cardassian tritone tone inside a living-ship profile.
|
||||
- **Comedy** and **Spaceball One** on `tos` produce the analog warble.
|
||||
TNG LCARS. Untouched by Phase 3's telemetry-era work.
|
||||
- **Comedy**, **Outlaw**, **Deep Space**, and **Military** are entirely
|
||||
Trek-era telemetry, also untouched by Phase 3.
|
||||
|
||||
Two consequences worth keeping in mind when editing:
|
||||
|
||||
1. Changing a preset's `telemetry.era` silently changes which sounds it makes.
|
||||
There is no UI anywhere that names the active era, so the change is audible
|
||||
but not visible.
|
||||
2. Any era value outside the five above falls through the `switch` in
|
||||
2. Any era value outside the eight above falls through the `switch` in
|
||||
`playRandomTelemetrySound()` to the `tng` default. A typo does not fail
|
||||
loudly — it just produces LCARS chirps.
|
||||
|
||||
If a universe should stop borrowing Trek telemetry, the fix is a new era
|
||||
vocabulary (new elements plus a new `case` in the era router), not a change to
|
||||
these preset assignments alone — the router has nothing else to offer them.
|
||||
vocabulary (new elements plus a new `case` in the era router) — exactly what
|
||||
Phase 3 did for `who`, `bioship`, and `belter` — not a change to preset
|
||||
assignments alone; the router has nothing else to offer them otherwise.
|
||||
|
||||
Reference in New Issue
Block a user