mirror of
https://github.com/Boof2015/prism.git
synced 2026-08-12 05:10:51 +02:00
initial support for linux vst
This commit is contained in:
@@ -34,8 +34,14 @@ set(PRISM_NATIVE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../native/src)
|
||||
option(PRISM_DEV_SERVER "Load the webview UI from the Vite dev server instead of the embedded bundle" OFF)
|
||||
|
||||
# Build controls. Defaults preserve the full local build; CI narrows these to
|
||||
# the formats that are actually packaged.
|
||||
set(PRISM_PLUGIN_FORMATS "AU;VST3;Standalone" CACHE STRING "JUCE plugin formats to build")
|
||||
# the formats that are actually packaged. AU is macOS-only, so Linux/Windows
|
||||
# default to the portable VST3 + Standalone set.
|
||||
if(APPLE)
|
||||
set(PRISM_DEFAULT_PLUGIN_FORMATS "AU;VST3;Standalone")
|
||||
else()
|
||||
set(PRISM_DEFAULT_PLUGIN_FORMATS "VST3;Standalone")
|
||||
endif()
|
||||
set(PRISM_PLUGIN_FORMATS "${PRISM_DEFAULT_PLUGIN_FORMATS}" CACHE STRING "JUCE plugin formats to build")
|
||||
option(PRISM_COPY_PLUGIN_AFTER_BUILD "Copy built plugins into user plugin folders after build" ON)
|
||||
|
||||
# Embed the built webview bundle once; every scope plugin shares it (the C++ tells
|
||||
|
||||
+35
-2
@@ -4,8 +4,8 @@ JUCE 8 plugins (VST3 / AU / Standalone) that render Prism's scopes inside a DAW
|
||||
one plugin per scope: **spectrum, oscilloscope, vectorscope, spectrogram, VU meter,
|
||||
loudness meter, waveform**. They **reuse Prism's existing C++ DSP** (`native/src/*.cpp`)
|
||||
and the **existing React canvas UI** (`src/plugin-ui`, importing the unchanged
|
||||
visualizers from `src/renderer/visualizers/`). Built for macOS and Windows; Linux
|
||||
untested but should follow the same recipe.
|
||||
visualizers from `src/renderer/visualizers/`). VST3 is built for macOS, Windows,
|
||||
and Linux; AU is macOS-only.
|
||||
|
||||
## How it fits together
|
||||
|
||||
@@ -79,6 +79,39 @@ DAWs scan both.
|
||||
|
||||
Dev-server mode works the same as macOS: `-DPRISM_DEV_SERVER=ON` + `npm run plugin-ui:dev`.
|
||||
|
||||
## Build & run (Linux)
|
||||
|
||||
Prereqs: CMake >= 3.22, Ninja, GCC/Clang, Node.js, and JUCE's Linux GUI/WebView
|
||||
dependencies. On Ubuntu 24.04+:
|
||||
|
||||
```sh
|
||||
sudo apt-get install build-essential cmake ninja-build pkg-config \
|
||||
libasound2-dev libjack-jackd2-dev ladspa-sdk libcurl4-openssl-dev \
|
||||
libfreetype-dev libfontconfig1-dev libx11-dev libxcomposite-dev \
|
||||
libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev \
|
||||
libwebkit2gtk-4.1-dev libglu1-mesa-dev mesa-common-dev
|
||||
```
|
||||
|
||||
```sh
|
||||
npm install
|
||||
npm run plugin-ui:build
|
||||
cmake -B plugin/build -S plugin -G Ninja -DCMAKE_BUILD_TYPE=Release -DPRISM_PLUGIN_FORMATS=VST3
|
||||
cmake --build plugin/build --target PrismInstallerPlugins --parallel
|
||||
```
|
||||
|
||||
Built bundles land under `plugin/build/Prism*_artefacts/Release/VST3/`. Copy the
|
||||
seven `Prism *.vst3` directories to one of the standard Linux VST3 scan paths:
|
||||
|
||||
- User-local: `$HOME/.vst3`
|
||||
- System-wide: `/usr/lib/vst3`
|
||||
- System-wide local: `/usr/local/lib/vst3`
|
||||
|
||||
The Linux `.deb` and `.rpm` release packages install Prism's VST3 bundles to
|
||||
`/usr/lib/vst3` and remove only those seven bundles on package removal. The Linux
|
||||
`tar.gz` release includes `resources/plugins/install-vst3.sh`, which installs to
|
||||
`$HOME/.vst3` by default or `/usr/lib/vst3` with `--system`. The AppImage is
|
||||
portable app-only and does not install DAW plugins.
|
||||
|
||||
## Notes
|
||||
|
||||
- **Refresh rate (macOS):** frames are emitted on `juce::VBlankAttachment` (synced to the
|
||||
|
||||
Reference in New Issue
Block a user