这个项目能做什么
SyntaxWave是一个面向实时编程表演者和算法音乐探索者的实验性音频编程环境。它不采用基于时间线的DAW,而是将代码视为乐器:一种自定义领域特定语言,包含振荡器、包络、滤波器、延迟线和颗粒合成的关键词,编译为向量化音频操作,README声称典型补丁的编译时间低于五毫秒。
运行时分为四层描述。编辑器层提供基于浏览器的IDE,具备语法高亮、DSL自动补全、内联文档和通过操作变换实现的协作编辑。编译层将DSL解析为中间表示,JIT编译为WebAssembly,并将缓冲区生成调度到GPU。音频层使用平台后端(WASAPI、CoreAudio、ALSA,以Web Audio API作为回退)进行采样精确调度和多通道路由。网络层构建WebRTC网格,每个节点既是生产者也是消费者,通过基于CRDT的状态同步使并发编辑收敛到相同输出。
协作是核心功能:参与者共享分布式音频图,可以分享代码片段、静音或独奏彼此的贡献,并将流合并到主输出。README声明节点间延迟低于15毫秒,边缘节点间网络延迟预算低于30毫秒。主时间线浏览器将每个参与者的代码变更显示为轨道,下方附带波形。
神经分析管道从实时音频中提取节拍网格、调性、起音模式和音色描述符,将频谱图、色谱图和波形簇反馈到编辑器作为视觉反馈。手势控制将MIDI推子、加速度计或摄像头追踪的手部位置映射到任意DSL变量。插件架构允许用Rust或C编写的合成单元、效果和分析模块编译为WebAssembly并在会话中热加载。
声明的技术规格包括可配置采样率从44.1 kHz到384 kHz,缓冲区大小从32到4096个采样,每节点最多512个同时发声,wasm32-wasi插件ABI,以及支持Windows 10/11、macOS 12+、Linux(x86_64、aarch64)和Chrome/Firefox/Edge。项目以单个可执行文件分发,启动本地Web服务器和音频后端,在浏览器中打开界面。最小示例为`sine freq:440 gain:0.3`,通过Ctrl+Enter执行。
面向舞台的功能包括多光标编辑、代码历史擦洗、冻结模式(在准备下一段时保持当前输出)和隐藏UI界面的投影视图。界面在桌面、平板和移动设备上响应式适配,支持触摸手势和减负移动模式。UI字符串、工具提示和错误消息提供十六种语言,DSL接受本地化关键词别名(例如`sinus`或`正弦波`)。README还宣传通过集成聊天和知识库提供全天候人工支持。
项目在MIT许可证下发布,邀请实时编程社区、DSP研究者和语言爱好者贡献;README提到一个插件仓库,包含超过两百个社区贡献的合成单元,以及定期在线代码即兴活动。免责声明指出实时音频可能产生响亮或意外的声音,用户应谨慎监控输出电平。
评论
0 评分人数达到10人后显示
登录后参与讨论。