@@ -18,7 +18,7 @@ exploration tool for working with Stable Audio 3 workflows.
1818## Stable Audio 3 Focus
1919
2020The app exposes a local FastAPI server, a browser dashboard, generated WAV files,
21- metadata JSON, and provider switching across mock, Python, MLX, and future API
21+ metadata JSON, and provider switching across mock, Python, MLX, and Stability API
2222routes. It keeps technical Stable Audio controls visible while adding a germ workflow
2323layer for sound matter, micro modules, culture, strain, mutation, pruning,
2424propagation, listening, curation, and harvest.
@@ -48,9 +48,11 @@ Official Stable Audio references:
4848 incubated evolution.
4949- Control layer for audio-to-control, safe OSC, MIDI intent, CV-safe exports, and
5050 control ancestry, including the norns/Fates OSC bridge.
51- - Listener prompt enhancement and heuristic scoring through ` /listener/enhance `
52- and ` /listener/score ` , with optional local Ollama fallback.
53- - Earworm 0.1 export of generated metadata into local context-chain sessions.
51+ - Neutral, editable prompt compilation through ` /listener/enhance ` , local DSP-only
52+ signal checks through ` /listener/score ` , and explicit re-listening through oída at
53+ ` /listener/relisten ` . Machine listening and audio understanding stay in oída.
54+ - Earworm 0.4-compatible export of generated metadata into local context-chain
55+ sessions, plus Akousma spec v1.3 lineage, kinship, and covenant-aware handoffs.
5456- Shared audio player with waveform drawing, metadata preview, path copy, open, and
5557 Finder reveal.
5658- Diagnostics for provider readiness and Hugging Face access.
@@ -112,6 +114,9 @@ Native macOS app (embeds the same dashboard, supervises the same daemon):
112114apps/macos/script/build_and_run.sh
113115```
114116
117+ The build stages the runnable bundle at ` apps/germ.app ` . To build it without
118+ launching it, use ` apps/macos/script/build_and_run.sh --build-only ` .
119+
115120Tailscale launch for another device in the same tailnet:
116121
117122``` bash
@@ -170,10 +175,13 @@ GERM_MAX_IMAGE_MB=8
170175GERM_ENABLE_CLOUD_VISION=0
171176GERM_LISTENER_MAX_AUDIO_MB=50
172177GERM_LISTENER_MAX_DURATION_SECONDS=600
178+ STABILITY_API_KEY= # optional: hosted Stable Audio 3
179+ GERM_STABILITY_API_URL=https://api.stability.ai
180+ GERM_STABILITY_POLL_SECONDS=10
181+ GERM_OIDA_URL=http://127.0.0.1:8765
182+ GERM_OIDA_TIMEOUT_SECONDS=1800
173183GERM_RELOAD=1 # launch_germ.command only: start uvicorn with --reload
174184GERM_TAILSCALE_IP=... # scripts/run_tailscale.sh only: override the auto-detected IP
175- OLLAMA_BASE_URL=http://127.0.0.1:11434
176- OLLAMA_MODEL=llama3.2
177185```
178186
179187The older ` GERMINATOR_* ` names are still accepted as fallbacks for compatibility.
@@ -240,8 +248,8 @@ request is recorded, but a render already inside the model call may finish norma
240248- Propagation: continuation workflow for loops, tails, beds, and textures.
241249- Strains: creative LoRA palette and Culture Mix scaffold.
242250- Herbarium: archive view over saved outputs.
243- - Listener: prompt enhancer, heuristic scorer , repair proposals, and optional
244- local Ollama prompt enhancement with no mandatory cloud key.
251+ - Listener: a neutral prompt compiler, local signal checks , repair proposals, and
252+ the oída re-listening bridge. ** Oída hears. germ cultivates. **
245253- Lab: placeholders for SAME latents, dataset prep, model comparison, benchmarks,
246254 and agent experiments.
247255
@@ -268,10 +276,10 @@ sections.
268276
269277## Listener
270278
271- Listener can enhance a rough idea into a Stable Audio prompt, merge a negative
272- prompt, score WAV files with bounded local DSP features, propose loop-seam repair
273- ranges, and fall back to local Ollama when available. It does not require a cloud
274- LLM API for the app to run .
279+ Listener normalizes a rough idea without injecting a modality, scores WAV files with
280+ bounded local DSP features, and proposes measured loop-seam repairs. Re-listening and
281+ prompt derivation are delegated to oída; germ does not embed a listening or
282+ audio-understanding model and requires no general-purpose LLM API .
275283
276284## API
277285
@@ -299,6 +307,7 @@ POST /lora/strength
299307GET /listener/providers
300308POST /listener/enhance
301309POST /listener/score
310+ POST /listener/relisten
302311GET /strains
303312POST /strains
304313GET /strains/{strain_id}
@@ -336,7 +345,7 @@ curl -X POST http://127.0.0.1:5178/generate \
336345 -d ' {
337346 "provider": "mock",
338347 "model": "mock-sine",
339- "prompt": "TrackType: SFX, dry close-microphone loop of metallic friction",
348+ "prompt": "dry close-microphone loop of metallic friction",
340349 "negative_prompt": "speech, vocals, melody, long reverb",
341350 "duration": 3.0,
342351 "steps": 8,
@@ -378,8 +387,8 @@ Generated metadata keeps existing compatibility fields and adds germ identity fi
378387
379388Each generated metadata record also includes an ` earworm ` block with deterministic
380389session, asset, and provenance IDs. Use ` POST /earworm/export ` to write a local
381- Earworm 0.1 session JSON from a metadata path. The cross-stack fixture lives at
382- ` tests/fixtures/germ-organism-mapping. session.json ` .
390+ Earworm context- session JSON from a metadata path. The export shape remains
391+ compatible with Earworm's current v0.4 session schema contract .
383392
384393## Development Notes
385394
0 commit comments