NoiseCraft 基于浏览器的可视化音频分析平台开源项目

我要开发同款
匿名用户2022年02月24日
28阅读
开发技术JavaScriptHTML/CSS
所属分类多媒体工具、应用工具
授权协议GPL-2.0

作品详情

NoiseCraft是一个基于浏览器的可视化编程语言和平台,用于声音合成和音乐制作,目的是创造一个开放的音乐思想交流社区。

其目标是创建一个开放交流音乐思想的社区。该设计大致受到PureData、Max/MSP以及其他可视化编程语言的启发。NoiseCraft基于WebAudio和WebMIDIAPI等技术构建,并在Web浏览器中运行。该计划是让该应用程序在可预见的未来保持免费使用和无广告。

可以在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。

查看全文
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论