可以在noisecraft.app试用 NoiseCraft,并在 noisecraft.app/browse 浏览其他用户共享的项目。目前,这在Chrome、Firefox和Edge中可以使用,但在Safari中由于其网络音频实现的问题而不能可靠地使用。
NoiseCraft正在开发中。可能会存在一些bug,而且目前还缺乏对移动设备的支持。
设计原则:NoiseCraft遵循简约的理念:没有Web框架,只有普通的JS/HTML/CSS有意将依赖关系降至最低优先考虑用户需要的功能避免冗余特征和特征蠕变在用户界面设计方面:最小化学习曲线并减少摩擦保持用户界面简单整洁尽可能避免使用下拉菜单和隐藏选项使用大多数用户可能熟悉的组合键和控件避免歧义,尽可能使用已知/现有的术语可视化编程语言设计:只有一种数据类型:浮点数控制信号和音频信号没有区别Practicalconsiderations:避免图像和声音样本以保持较低的带宽/服务器成本避免声音样本也迫使人们思考如何产生声音NoiseCraft使用多页设计,而不是单页应用程序。这意味着新建、帮助和浏览链接会打开新选项卡。这可以帮助用户避免在单击其他选项卡时意外丢失他们的工作,并使得能够向新用户发送指向/browse和/help页面的直接链接。用户界面使用即时模式GUI。也就是说,每次对模型执行操作时,都会重新绘制UI。这使得实现诸如撤消/重做之类的功能变得微不足道,因为可以简单地存储以前项目状态的副本。它还减少了UI和模型之间的耦合。在实践中,缓存用于避免为每个状态更改重新绘制整个用户界面。音频由AudioView类生成(参阅public/audioview.js),当模型中发生状态更改时会更新音频。这会将音频图编译成JavaScript代码,然后可以在后台进程(AudioWorklet)中运行。只使用网络音频API来输出声音,而不是用于声音合成。这有助于保证为给定项目产生的声音在任何浏览器或设备上都是相同的。项目文件以易于解析的JSON格式(.ncft)保存,最终可以构建外部工具。例如,可以想象NoiseCraft项目可以编译成VST。
评论