每个合成器都始于振荡器。这篇文章记录 TaroSynth 的第一步:用 JUCE 的 DSP 模块实现 Sine、Saw、Square 三种基础波形,并让它们响应 MIDI 音高。

关键经验是:音频回调里永远不要分配内存、不要加锁。所有查找表和缓冲区都在 prepareToPlay 里预分配好,processBlock 只做纯计算。

下一篇讲包络——让声音有“形状”的 ADSR。