plugdata:基于JUCE的Pure Data插件包装器,提供全新GUI与ELSE扩展

Pure Data as a plugin, with a new GUI

分支12Tags38
文件最后提交记录最后更新时间
2 个月前
2 年前
27 天前
2 个月前
27 天前
3 个月前
4 个月前
4 年前
1 年前
4 个月前
2 个月前
3 年前
1 年前
4 年前
1 个月前

Logo

plugdata

围绕 Pure Data 构建的插件包装器,可在众多数字音频工作站(DAW)中进行模块化编程。

Workflows

Downloads Release License

Discord

app darkmode

plugdata 是 Pure Data 的插件包装器,采用 JUCE 构建全新图形用户界面(GUI)。该项目仍在开发中(WIP),可能存在一些漏洞。默认情况下,它附带 ELSE 外部对象与抽象集合。其目标是为广大数字音频工作站(DAW)用户提供更舒适的模块化编程体验。它也可用作 pure-data 的独立替代品。

欢迎加入 Discord 社区,分享模块程序、报告问题或请求功能:https://discord.gg/eT2RxdF9Nq

LIRA-8

安装

-Windows:

-MacOS:

-Linux:

您也可以从我们的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 MakefilesXCodeVisual Studio 17 2022Visual 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 字体

项目介绍

将Pure Data作为插件使用,并配备全新图形用户界面。【此简介由AI生成】

定制我的领域
472.27 K101访问 GitHub