Pure Data as a plugin, with a new GUI
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 2 年前 | ||
| 27 天前 | ||
| 2 个月前 | ||
| 27 天前 | ||
| 3 个月前 | ||
| 4 个月前 | ||
| 4 年前 | ||
| 1 年前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 4 年前 | ||
| 1 个月前 |
plugdata
围绕 Pure Data 构建的插件包装器,可在众多数字音频工作站(DAW)中进行模块化编程。
plugdata 是 Pure Data 的插件包装器,采用 JUCE 构建全新图形用户界面(GUI)。该项目仍在开发中(WIP),可能存在一些漏洞。默认情况下,它附带 ELSE 外部对象与抽象集合。其目标是为广大数字音频工作站(DAW)用户提供更舒适的模块化编程体验。它也可用作 pure-data 的独立替代品。
欢迎加入 Discord 社区,分享模块程序、报告问题或请求功能:https://discord.gg/eT2RxdF9Nq
安装
-Windows:
- 从最新的official release获取安装程序
-MacOS:
- 选项 1:从最新的official release获取安装程序
- 选项 2:安装homebrew cask。此版本非我维护,可能已过时。
-Linux:
-
选项 1:OBS 仓库/软件包 该仓库包含 plugdata、plugdata-vst3 和 plugdata-lv2 软件包(部分发行版上为 lv2-plugdata 和 vst3-plugdata)。如果您获取的是未包含仓库的软件包,则仅包含独立版本。
-
选项 2:Arch 用户仓库(仅适用于 Arch)。 提供用于最新稳定版的plugdata-bin软件包,或用于最新实验版构建的plugdata-git软件包。
-
选项 3:从最新的official release获取二进制文件
您也可以从我们的website下载最新的实验版构建。
构建
git clone --recursive https://github.com/plugdata-team/plugdata.git
cd plugdata
mkdir build && cd build
cmake .. (the generator can be specified using -G"Unix Makefiles", -G"Xcode" or -G"Visual Studio 16 2019" -A x64)
cmake --build .
重要提示:
- 构建 CLAP 插件时,plugdata 需要 cmake 3.21 或更高版本。如果使用旧版本的 cmake,CLAP 插件构建将被禁用。
- 确保已初始化并更新 git 子模块!您可以在克隆时使用
--recursive选项,或在 plugdata 仓库中执行git submodule update --init --recursive。 - 在 Linux 上,Juce 框架需要安装依赖项,请参考 Linux Dependencies.md 并使用完整命令。
- CMake 构建系统已通过 Unix Makefiles、XCode、Visual Studio 17 2022 和 Visual Studio 16 2019 的测试。
- 额外构建选项:
- -DQUICK_BUILD=1 将跳过编译时间较长的对象(所有 Gem 对象、sfz~ 和基于 ffmpeg 的音频播放器)。
- 也可以通过传递 "-DENABLE_GEM=0"、"-DENABLE_SFIZZ=0"、"-DENABLE_FFMPEG=0" 分别禁用 Gem、sfz~ 和 ffmpeg。
- 您可以通过传递 -DENABLE_PERFETTO=1 来启用 Google Perfetto 性能跟踪库。这篇 博客文章 提供了有关如何使用它的更多见解。
- 要跟踪函数调用并获取性能信息,请将
TRACE_COMPONENT()添加到您想要跟踪的函数体中。 - 一种更快捷的方法是使用 Python 3 脚本
Resources/Scripts/add_perfetto_tracepoints.py,该脚本会将TRACE_COMPONENT()调用添加到提供的.cpp文件中匹配的函数体中。这意味着您无需手动在各处添加TRACE_COMPONENT()。要使用此脚本,您必须安装最新的llvm(>= 19.1.3) 和兼容的libclang包。 - 建议在
Release模式下编译,以获得最准确的分析信息。
- 要跟踪函数调用并获取性能信息,请将
添加您自己的外部对象
您可以通过将外部对象与 plugdata 一起重新编译,在 plugdata 的插件版本中使用外部对象。这可以通过对 plugdata 进行以下修改来实现:
- 将您的源代码添加到 Libraries/CMakeLists.txt 中的 "externals" 目标。或者,源文件可以放在 Libraries/ELSE/Source 文件夹中,因为该文件夹中的所有 .c 文件都会被自动编译。
- 在 Source/Pd/Setup.cpp 中,添加您的外部对象的设置函数。调用设置函数的最佳位置是在 libpd_init_pdlua 内部。initialiseELSE 和 initialiseCyclone 也可以工作,但副作用是这些外部对象也将在 else/* 和 cyclone/* 前缀下可用。
企业赞助商
许可协议
本项目使用 JUCE 框架,该框架基于 GNU Affero 通用公共许可证(AGPL-3.0) 进行许可。因此,编译后的应用程序(使用 JUCE 构建的完整程序)将依据 AGPL-3.0 条款进行分发。
本仓库中直接包含的 plugdata 源代码(不包含任何第三方子模块)采用常规的 GPL-3.0 许可证。
plugdata 所包含的第三方组件(pure-data、pd-else、pd-cyclone、pd-lua、libwebp、liblzma、heavylib、fftw3、ffmpeg、sfz~ 以及其他众多组件)均依据其各自的许可协议进行授权。
鸣谢
- 徽标由 Joshua A.C. Newman 设计,Bas de Bruin 制作
- Pierre Guillot 开发的 Camomile
- Alexandre Torres Porres 开发的 ELSE
- Krzysztof Czaja、Hans-Christoph Steiner、Fred Jan Kraan、Alexandre Torres Porres、Derek Kwan、Matt Barber 及其他开发者开发的 cyclone(注:包含 Cyclone 是为了为 Max 用户提供一个便捷的入门途径,但 ELSE 包含了 Cyclone 中多个对象的替代方案,而 Pure Data Vanilla 本身也有一些替代方案。不仅如此,那些未被 Cyclone 克隆的对象在 ELSE 中也有替代方案,详见:此链接)
- Claude Heiland-Allen、Albert Graef 及其他开发者开发的 pd-lua
- Miller Puckette 及其他开发者开发的 Pure Data
- Peter Brinkmann、Dan Wilcox 及其他开发者开发的 libpd
- 最初由 Enzien Audio 开发,后由 Wasted Audio 维护并现代化的 Heavy/hvcc
- Raw Material Software Ltd. 开发的 Juce
- Rasmus Andersson 设计的 Inter 字体