Files
SoundGame/tools/stable-audio-3/optimized/mlx/ableton/README.md
T
SoundGame Dev f0f0a9b50e 初始提交:3 款纯音频游戏 + 共享引擎 + 完整文档与资产管线
- 共享引擎(app/src/main):GestureEngine 6 手势识别、AudioEngine 三层音频
  (ExoPlayer BGM 交叉淡入 / 对白 ducking / SoundPool 低延迟)、Game/GameEngine
  状态机接口、MainActivity 全屏封面 + TalkBack
- 《声命线》storyline:末世互动广播剧,3 幕 8 抉择点 4 结局
- 《声东击西》reflex:听声辨位反应,12 波战斗 + BGM 三档 BPM 变速
- 《暗室》escape:3x3 网格密室逃脱,钥匙→铁柜→保险丝→电箱→大门谜题链
- 文档:setup(从零搭建)/ architecture(架构)/ engine-api(引擎 API)/
  asset-pipeline(资产流水线)/ games/*(三款游戏设计文档)
- 资产管线:Qwen3-TTS 对白 + 程序合成音效/BGM + Mureka BGM 的 gen 脚本与台账,
  全部 ogg 资产入库可复现
- env.d 环境脚本:android/tts 入库;sfx/mureka 含密钥不入库,仅提交 .example.sh 模板
2026-08-29 13:00:34 +08:00

2.0 KiB

Ableton Live integration (Experimental!)

Insert sa3 generations directly into Ableton Live at the current playhead position.

Two pieces work together:

File Where it runs
AudioInserter/ Inside Ableton — a MIDI Remote Script that listens on a local socket
insert_audio.py On the command line — sends files to that socket

1. Install the AudioInserter Remote Script

There are two places Ableton looks for Remote Scripts on Mac:

Location Notes
~/Music/Ableton/User Library/Remote Scripts/ Recommended — persists across Ableton updates
/Applications/Ableton Live *.app/Contents/App-Resources/MIDI Remote Scripts/ Works, but gets wiped when you update Ableton

Install into the User Library (create the folder if it doesn't exist yet):

mkdir -p ~/Music/Ableton/User\ Library/Remote\ Scripts
cp -r AudioInserter ~/Music/Ableton/User\ Library/Remote\ Scripts/AudioInserter

Then in Ableton: Preferences → MIDI → Control Surfaces — add a new surface and choose AudioInserter. No MIDI port needed.

Verify it's running:

python3 insert_audio.py --ping
# ✓ Ableton is connected and ready

2. Insert audio

# Insert a specific file at the current playhead
python3 insert_audio.py /path/to/out.wav

# Insert whatever wav was most recently dropped on your Desktop
python3 insert_audio.py

# Watch a folder and auto-insert each new file as it appears
python3 insert_audio.py --watch ~/Desktop

The track is named after the file by default. If the env var _SA3_LAST_PROMPT is set, that prompt text is used as the track name instead — handy if you wrap sa3 in a shell alias.

3. Typical workflow with sa3

# Generate
./sa3 --prompt "driving techno loop" --dit medium --decoder same-l --out out.wav

# Insert
python3 ableton/insert_audio.py out.wav

Or use watch mode: start it once and every out.wav you generate lands in Ableton automatically:

python3 ableton/insert_audio.py --watch /path/to/sa3/output/dir