1作者: lukeweston1234大约 1 个月前
我一直在构建 Legato,一个用 Rust 编写的实时音频图框架。它的设计理念介于 PureData/MaxMSP(基于图的、可视化路由)和 JUCE 之间。<p>它的核心是一个用于图定义的极简运行时和 DSL(领域特定语言)。它没有循环、分支或评估。它纯粹用于连接节点。如果你需要真正的逻辑,可以用 Rust 编写一个自定义节点,注册它,然后将其放入图中。<p>这样,你可以轻松地用 Rust 扩展框架,而不必学习 SuperCollider 或 CSound。<p>除了用 Rust 添加节点之外,你还可以组合节点的宏/模板/patch(我还不确定哪个名字最好),然后像常规节点一样调用它们:<p>patch voice(attack = 200.0) { in freq gate audio { sine: mod, sine: carrier, adsr { attack: $attack, ... } }<p><pre><code> freq &gt;&gt; mod.freq mod &gt;&gt; carrier.freq gate &gt;&gt; adsr.gate carrier &gt;&gt; adsr[1] { adsr }</code></pre> }<p>Patches 会内联到同一个扁平的内存分配中,因此为复音生成 voice * 5 在内存布局上不会太困难。<p>在链接的仓库中有更好的例子。它们也可以“组合”,所以你可以在 patch b 中使用 patch a,等等。<p>目前的主要目标是硬件——想法是你可以构建一个 VST、软件合成器或 groovebox,并使用我正在开发的 NixOS 镜像将其部署在嵌入式 Linux(树莓派等)上(尽管这不是必需的)。<p>目前我正在使用 CPAL 来处理跨平台的音频 API。<p>我目前正在开发几个 groovebox,我将开源它们,可能是在音序器领域。<p>许可证是 AGPLv3,并附带一个额外的权限文件,该文件免除了大多数创意项目(VST、合成器、groovebox)的源代码披露,这些项目不包含 DAW/AI 功能。<p>还处于早期阶段(尚未发布 0.1.0 版本),但 DSL 解析器、图执行器、midi 工具和一些节点正在工作,对我自己来说,我已经发现它很有生产力了。<p>正在寻找反馈、贡献者,以及希望试用该项目的人。<p>在接下来的几周内,我可能会开始在各种平台上发布一些视频演示,因为它已经到了一个实际上很有趣可以用来演出的地步。<p>仓库:<a href="https://github.com/legato-dsp/legato" rel="nofollow">https://github.com/legato-dsp/legato</a> 文档:<a href="https://legato.gg" rel="nofollow">https://legato.gg</a>
2作者: rhysfonixone大约 1 个月前
这是 Axion,一个完全在浏览器中运行的吉他效果器。我最初构建它,是想在创作和制作专辑时给自己提供帮助,后来决定把它做成一个正式的产品。 很想听听大家的反馈。