mlua-pulse 0.1.0

Lua-friendly music composition and audio export bindings built on tunes and mlua
Documentation
# 故障排查


## 你会学到什么


- 按症状定位太小声、电流声、刺耳、FLAC 大、MIDI 小声和导出慢。
- 区分编曲问题、混音问题、导出格式问题和环境问题。
- 找到对应章节继续深入处理。

## 适合谁读


当你已经能运行示例,但听感或导出结果不对时读本章。它是排错入口,不替代每个专题章节。

## 前置知识


- [混音]../02-sound-design/mixing.md
- [响度标准化]loudness.md

## 心智模型


排错时先看症状属于哪一层:

```text
Lua 参数 -> 编曲密度 -> 音色/效果 -> 渲染/标准化 -> 文件格式 -> 播放环境
```

越靠前的问题,越不应该靠最后的 limiter 或 normalize 解决。越靠后的问题,越不应该回头乱改音乐材料。

## 最小可运行例子


```lua
song:export_wav("output/check.wav", {
  sample_rate = 44100,
  normalize = "rms",
  target_db = -16.0,
  true_peak_db = -1.0,
})
```

如果这类标准设置仍然难听,优先检查轨道音量、音色、效果和段落密度。

## 参数和边界


声音太小:检查轨道音量是否过低,再使用 `normalize = "rms"`。如果是 MIDI 文件太小声,调 `midi_velocity_gain` 和 `midi_min_velocity`。

电流声或爆音:先降低轨道音量,减少极短时值,控制 FM/颗粒/高频合成器,添加 limiter 作为保护。已经削波的音频无法被标准化完全修复。

刺耳:降低亮音色音量,使用低通 filter,把 cutoff 从 `2400..4200` 试起,减少 delay/reverb mix。

FLAC 大:检查位深是否 24-bit,内容是否短、噪声多、颗粒多或瞬态强。FLAC 不保证比 WAV 小。

导出慢:使用 `cargo run --release --example <name>`,减少 debug 渲染,必要时尝试 `--features gpu`。

播放失败但导出成功:播放依赖本机声卡和系统后端;导出是核心路径,不需要声卡。

## 常见陷阱


不要看到 MIDI 小声就改 `target_db`。MIDI 不吃音频标准化。

不要看到 FLAC 大就认为导出坏了。先对比位深、时长和内容。

不要看到播放失败就认为作品无法导出。无声卡环境应运行导出示例和测试,而不是播放预览。

## 进阶用法


建立排错顺序:先导出只含鼓和低音的 WAV,再逐层加入和声、旋律、装饰。哪一层加入后出问题,就回到那一层处理音量、音区、合成和效果。

对于完整曲子,可以先导出每个 phrase 的短版,确认段落各自不刺耳,再导出全曲。这样比直接听三分钟成品更容易定位。

## 相关章节


- [混音]../02-sound-design/mixing.md
- [WAV、FLAC、MIDI]wav-flac-midi.md
- [PCM 流]pcm-streaming.md
- [性能]performance.md