即时编译器
这是一个Golang库,其中包含x86-64汇编程序(请参见“ asm /”)和可编译为x86-64(请参见“ ir /”)的高级中间表示形式。
动机
该项目的初衷是能够将复杂的Sequencer和Synthesizer定义编译为机器代码(请参阅我的 )项目,但是由于它仍未达到其最初目标,因此已变得更加通用。 :thumbs_up: 有一个非常,非常早期的原型,但它没有做多少呢。
与许多其他合成器一样,在bleep中,我们通过将较小的构件(例如正弦波,延迟滤波器等)组合成较大的乐器来构建复杂的声音:
+---- sine wave
/
delay <
\
+---- sqaure wave
我们最终得到了一个子合成器和滤波器树,它们共同构成了最终的声音...
...这很好,但在计算上也可能很昂贵。 特别是在同时播放多个单独的合成器时。
昂贵的原因之一是因为代码从一个块跳到另一个块,基本上是在解释树。 如果我们可以将所有内容快速编译为一个函数,那不是很好吗? 也许。 找出这是一个稍微
1