跳到正文
Hacker News· n1m21n·· 7 天前AI 评分34

Infinite:开源节点式 DAW,面向视觉、音乐与代码

Show HN: Infinite – open-source node-based DAW for visuals, music and code

AI 导读

Naman Soni(n1m21n)发布开源免费音视频工作站 Infinite,支持 macOS、Windows 和 Linux,通过统一节点画布整合实时 GPU 图像/视频合成、程序化 3D 与物理、模块化合成器机架及 AU/VST3 插件托管。内置 300+ 节点类型,并提供嵌入式编程语言 Field,可按代码所触及的域自动推断运行位置。

正文 · AI 翻译

Infinite: a DAW for you. Visuals, music and code on one canvas.

Discord YouTube Tutorial Platform License n1m21n%2FInfinite | Trendshift

Infinite 是由 Naman Soni(n1m21n)制作的免费开源视听工作站。一个统一的基于节点的视听模块化工作站,适用于 macOS、Windows 和 Linux。实时 GPU 图像/视频合成、程序化 3D 几何与物理,以及带有原生 AU 和 VST3 插件托管的完整模块化合成器机架——全部通过通用调制图互联。大多数节点只做一件固定的事;Field 是 Infinite 的内嵌编程语言,让你编写节点所做的事。

Infinite Screenshot

下载

macOS Windows x64 Windows ARM64 Linux

始终是最新版本。所有文件、校验和与发行说明都在 Releases 页面。


视频教程

初次接触 Infinite? 在 YouTube 上观看完整演示与工作流教程:
🔗 Infinite 视频演示与教程


亮点

  • 编排时间线:与节点画布并存的完整基于片段的编排编辑器——基于同一 BPM 走带的高精度调度、切割工具、轨道组、框选多选、拖放媒体导入、实时波形/视频缩略图渲染,以及渲染/导出队列。
  • 双同步 DAG 引擎:高吞吐 GPU 纹理管线(GLSL / OpenGL 3.2 Core)与采样精确、基于拉取的音频图同步运行,并绑定到全局 BPM 走带。
  • 通用跨域调制:通过 LFO、CV 音序器、实时音频 FFT 频谱分析或视频分析,调制任意着色器参数、3D 变换、音频合成器控制或托管插件滑块。
  • 音频合成与物理建模:波表振荡器、模态金属物理谐振器、实时颗粒引擎、PaulStretch 频谱拉伸器、多采样播放器和 8 轨鼓机。
  • AU 与 VST3 插件托管:托管第三方 Audio Unit(macOS)和 VST3(macOS、Windows、Linux)插件,支持原生 GUI 窗口和可自动化/可调制的参数控制。
  • 程序化 3D 与物理求解器:网格、3D 样条、点散射、单次绘制调用 GPU 实例化(Instance on Points)、PBD 布料/软体物理、粒子系统和 PBR 渲染(Cook-Torrance GGX + ACES 色调映射 + 32 位 HDRI)。
  • 2D 着色器与生成式特效:32 种混合模式、实时 GLSL 编辑器、视频与摄像头播放、Syphon(macOS)/ Spout(Windows)零拷贝视频 I/O、通过网络进行 NDI 视频输入/输出(需要免费的 NDI 运行时)、反应扩散,以及设备端 ML 主体背景移除。

节点库概览

Infinite 具有 300+ 模块化节点类型:

领域 关键节点
2D 与视频 图像、文件夹幻灯片、视频(硬件加速)、Syphon In / Spout In、NDI In、绘画/绘制画布、GLSL 公式编辑器、Sketch(JavaScript 绘制的图像,支持 SVG 动画)、形状(SDF)、噪声与渐变斜坡
2D 特效与调色 模糊、泛光、故障(6 种模式)、扭曲、波纹、置换、半色调、曲线(RGB/亮度样条)、抖动、颜色斜坡、.cube LUT、渐变映射、调色板提取
合成与遮罩 混合(32 种模式)、图层堆栈、移除背景(设备端 ML 分割)、色度/亮度键控、反馈循环、反应扩散、重合成
3D 几何与特效 Primitives、USD/OBJ/PLY/STL/glTF/GLB 导入、3D 文字、3D 曲线、点分布、Sketch 3D(JavaScript 构建的网格)、网格解构、Delaunay 网格、Voronoi 单元、Decimate、曲线操作、Taubin 平滑、阵列、实例化、Metaballs
3D 场景与渲染 相机(轨道/透视/正交)、灯光、32 位 HDRI 环境、PBR 材质、ACES 色调映射、多重采样抗锯齿
合成器与声音 波表合成器、金属模态谐振器、颗粒合成器、PaulStretch、Molder / Grain Molder(频谱重合成)、采样器、Slicer(起音检测采样切片器)、8 轨鼓机音序器、16 打击垫 MPC 采样器(复音,每垫模式 / 速度量化同步 / 音量 / 音高 / 声像 / 速度 / 微调 / 淡入淡出,全部可调制)、Looper(录制 / 叠加,速度同步,延迟补偿,采样器式回放控制)、多波形振荡器
Field 语言 Field Modifier、Field Primitive、Field Effect、Field Synth、Field Pixel、Field Graph — 见下文
音符与 MIDI 实时 MIDI 输入/时钟、琶音器、音符音序器、Chorder、Strum、弹跳球(物理音符)、Humanizer、量化器、MIDI 文件播放器、MIDI 输出(硬件和虚拟端口,CC 和时钟)、Field Notes(播放音符的 Field 脚本)
音频 FX 与插件 AU / VST3 插件宿主、滤波器、EQ、动态处理、前瞻限制器、延迟、混响、失真/饱和、音高与频率移调器、合唱、移相器、共振峰
调制器与分析 LFO、Random、Pattern CV、包络跟随器、Math、XY Pad、音频分析(8 段 FFT / 起音)、图像分析(亮度 / 运动)、手 / 脸 / 姿态跟踪(相机到调制器,通过 Tracking 包)
输出与 I/O 空间混音器(带头部跟踪的 3D 耳机混音)、PNG 快照、带同步音频的 H.264/MOV 视频录制、Syphon Out / Spout Out、NDI Out

完整目录,包括每个节点的引脚和参数,都在节点参考手册中。

Infinite 还可以无头渲染,没有窗口:在命令行中直接从 .inf 文本文件生成图片、视频和声音。参见无头用户指南(Markdown)。

Infinite Modular Node Graph


Field:编写节点做什么

Infinite 中的其他每个节点都做一件固定的事——Blur 节点模糊,Delay 节点延迟。Field 节点不同:你编写一个简短的内核,Field 根据代码触及的内容推断它在哪里运行。

col = vec3(uv.x, uv.y, 0.5)              // once per pixel, on the GPU — a shader
P.y += sin(P.x * 4.0 + t) * 0.2          // once per point in a mesh — a geometry deformer
out = in * gain                          // once per audio sample — a DSP effect

这就是整个语言背后的一个理念:一个内核,对域的每个元素运行一次,永远如此。你从不声明它在哪里运行——域(以及因此它编译到的后端)是被推断出来的。Field 目前涵盖五个域和七种节点类型:

节点 域 功能
Field Modifier element 对现有几何体逐顶点内核——修改 P、N、uv、Cd 和自定义属性
Field Primitive element 从头生成程序化点几何体(Circle、Spiral、Grid Lattice、Fibonacci Sphere、Helix、Torus Knot)
Field Effect sample 逐采样音频 DSP 内核;in/out,state 用于每声部内存,param 用于旋钮
Field Synth sample 使用相同采样编译器的复音音符驱动合成器声部,用 freq/gate 代替音频输入
Field Pixel pixel 逐像素内核直接编译为 GLSL;state 单元,[wrap] 支持反馈和模板
Field Notes sample 逐样本音符内核:note(pitch, vel, len) 发送音符,而 tick(div)、deg(d)、rand() 和 beat 读取传输
Field Graph graph 在编辑时运行一次——emit()/connect()/set()/place() 以声明方式将真实的 Infinite 节点挂载并连接成一个 bundle(“Instrument Mode” 将其折叠为一个盒子;“Unpack to Canvas” 将其重新展开)

任何 element/pixel/sample 内核也可以在其代码中直接声明 dynamic pins,为节点添加真实的、可连线、可保存/加载安全的 I/O,而无需改动 C++。完成的设备——内核加参数加预设——可保存、加载、导出和导入为可移植的 .field 文件,因此 Field patch 可以像音频插件预设一样分享。完整的语言参考——语法、域传输操作符、保留字,以及完整的节点/格式参考——见 Field Language Manual。

Field Pixel Editor


安装与快速开始

预构建应用(macOS、Windows 和 Linux)

从 GitHub Releases 下载适用于你平台的最新构建:macOS 用 Infinite.dmg,Windows 用 Infinite-windows-x64.zip / Infinite-windows-ARM64.zip,Linux 用 Infinite-x86_64.AppImage。

macOS(Infinite 未经 Apple 公证,因此首次启动需要额外一步)

  1. 打开 DMG 并将 Infinite.app 拖到 Applications。
  2. Double-click Fix & Open Infinite.command in the DMG and press y. It clears the download flag on Infinite only, then opens it.
    • 或者手动操作:先尝试打开一次 Infinite,然后 System Settings → Privacy & Security → Open Anyway(macOS 15 及更高版本),或右键点击 Infinite.app → Open(较旧的 macOS)。
    • 或在终端中:xattr -dr com.apple.quarantine /Applications/Infinite.app

Windows

  1. 解压适用于你的 CPU 的 x64 或 ARM64 构建。
  2. 运行 Infinite.exe。该构建未进行代码签名,因此 Windows SmartScreen 可能会提示“Windows protected your PC”:点击 More info,然后点击 Run anyway。每次下载只会询问一次。

Linux

  1. chmod +x Infinite-x86_64.AppImage
  2. 运行 ./Infinite-x86_64.AppImage。它捆绑了静态 AppImage 运行时,因此无需安装 libfuse2。如果它在容器中或没有 /dev/fuse 的系统上运行,请改用 ./Infinite-x86_64.AppImage --appimage-extract-and-run。

从源码构建

macOS

要求:CMake 3.16+ 和 Xcode Command Line Tools。

git clone https://github.com/n1m21n/Infinite.git
cd Infinite
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j8
open build/Infinite.app

要创建独立的 DMG 安装程序,请运行 ./package.sh。

Windows

要求:CMake 3.16+ 和 Visual Studio 2022/2026(MSVC v143+,使用 C++ 的桌面开发)。

git clone https://github.com/n1m21n/Infinite.git
cd Infinite
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
.\build\Release\Infinite.exe

要创建打包的可移植文件夹,请运行 powershell -ExecutionPolicy Bypass -File package.ps1。

Linux

要求:CMake 3.16+、C++20 编译器(Clang 或 GCC)、Ninja,以及 tools/linux/deps-apt.sh 中的开发包(X11/GLFW/ALSA/fontconfig 头文件等)。x86_64,glibc ≥ 2.35(Ubuntu 22.04+ 或同等版本),如果你希望结果与已发布的 AppImage 的最低要求一致。

git clone https://github.com/n1m21n/Infinite.git
cd Infinite
tools/linux/deps-apt.sh   # installs build + runtime deps via apt
tools/linux/build.sh      # configures + builds build-linux/Infinite
./build-linux/Infinite

要打包可移植的 AppImage,请运行 tools/linux/package-appimage.sh build-linux artifacts-linux。 可通过 tools/linux/local.sh build 获得容器化开发环境(无需本地安装依赖)——详情请参阅该脚本。


架构

src/
├── core/         # INode DAG engine, ImageCable, Transport, Modulation, GLUtil, Mesh
├── nodes/        # 160+ Node implementations (2D, 3D, Audio, Synth, Notes, Modulation)
├── audio/        # Audio engine, DSP kernels, Wavetable core, Plugin hosting (AU/VST3)
└── platform/     # OS layer: macOS (CoreAudio/AU/AVFoundation) | Windows (WASAPI/WinMM/Media Foundation/GDI+) | Linux (ALSA/GLFW/X11/VST3)

更深入的实现指南请参阅 ARCHITECTURE.md 和 docs/CODE_STANDARDS.md。


Linux 特有的已知限制

Linux 构建与 macOS/Windows 具有相同的节点图和文件格式,但存在以下平台差距:

  • 没有 Syphon/Spout 等效功能——无法与其他应用进行零拷贝视频 I/O。
  • 不支持 Audio Unit (AU) 托管——仅支持 VST3(与 Windows 相同)。
  • 不支持 LV2 插件托管。
  • 不支持复杂文字排版(没有 HarfBuzz)——拉丁文字可正确渲染,但从右到左和复杂文字(阿拉伯语、天城文等)可能无法正确渲染。
  • VST3 插件编辑器窗口需要 X11 或 XWayland;没有 XWayland 的纯 Wayland 会话无法显示插件 GUI。
  • 仅支持 x86_64——未发布 arm64 构建。

贡献

欢迎贡献、错误报告和节点创意!


现有技术与致谢

Infinite 所基于的工具和论文列于 ACKNOWLEDGEMENTS.md,做出贡献的人员致谢于 CONTRIBUTING.md。


引用与署名

如果你撰写、评论或基于 Infinite 进行构建,请按以下方式署名:Infinite, by Naman Soni (n1m21n), https://infinitedevices.org。GitHub 的“Cite this repository”按钮使用 CITATION.cff。


许可证

Infinite 的源代码依据 MIT License 授权。
默认构建包含 VST3 插件托管,链接 Steinberg VST3 SDK(GPLv3)。使用 -DINFINITE_ENABLE_VST3=OFF 构建可获得纯 MIT 二进制文件。

来源:Hacker News · github.com