2008-08-27 65 views
1

我需要在ARM Cortex-M3内核中实现wavetable synthesizer。我正在寻找任何代码或工具来帮助我开始。免费的波表合成器?

我所知道的this AVR implementation。我实际上将它转换为PIC。现在我正在寻找类似的东西,但听起来好一点。

ANSI C代码会很棒。任何代码片段(C或C++),样本,工具或只是一般信息将不胜感激。

谢谢。

回答

0

任何ARM合成器,最好的,是可以改变的,在不到一天wavescanner。从文件中扫描波形或以数学方式生成这些波形在音频方面几乎是相同的,WT以零处理成本提供大量波形库,您需要波形,WT振荡器代码本身为20行。因此将波形旋钮从3更改为100,以指示您正在读取哪个WAV,使用斜坡/计数器读取WAV文件(作为阵列)。 WT固定。

从7岁合成器的经验,我建议你改变20线你最喜欢的合成器的振荡器功能,以适应它读取波阵列。 WT只使用20行逻辑,合成器的其余部分更为重要:LFO's,滤波器,输入参数,预设存储器...使用您最喜爱的合成器,并找到WT波形库作为WAV文件和文件夹,并替换您的fav合成器振荡器与WT功能,它听起来几乎相同,只有较低的处理成本。

甲合成器通常使用仙,SQR,锯床,对于波抗锯齿OSC功能...

甲波表合成合成器使用大约20行的代码,在它的基极,和波的10/20/100ds各自理想情况下每个八度采样波。如果你可以得到一个波形声音库,合成器只是循环,变调,声音和专业合成器也可以有多个八度来混合八度。从WAV列表

WTfunction =

  • 负载WAV文件划分为N个阵列
  • 变化波形=选择波形阵列
  • 在期望赫兹
  • 读取的波形阵列

wavescanner功能=

  • 交叉淡化在2个波之间并将xfade分配给LFO,即正弦和xfade。

在所有合成器中,包络,滤波器,幅度,所有其他函数独立于波形生成函数。

请记住,合成器最强大的心理声学工具是偏离音符的数字音调,它被称为一齐失调,合成器的声音特性主要来自合唱和一致失调。

WT的要么是单波段的更长的部分,在更先进的合成器。单周期的东西是超级容易写入代码。先进的WT以每八度音阶进行采样,波形持续N个周期,甚至2-3秒,即钢琴,这意味着它们通过八度改变音质,因此复杂的WT以每八度音程交叉渐变并具有多个八度音程记录。