-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
13 changed files
with
10,187 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
name: build | ||
|
||
on: | ||
push: | ||
branches: | ||
- '*' | ||
pull_request: | ||
branches: | ||
- '*' | ||
|
||
jobs: | ||
linux: | ||
strategy: | ||
matrix: | ||
target: [linux-arm64, linux-armhf, linux-i686, linux-riscv64, linux-x86_64] | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: recursive | ||
- uses: distrho/dpf-makefile-action@v1 | ||
with: | ||
target: ${{ matrix.target }} | ||
|
||
macos: | ||
strategy: | ||
matrix: | ||
target: [macos-intel, macos-universal] | ||
runs-on: macos-12 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: recursive | ||
- uses: distrho/dpf-makefile-action@v1 | ||
with: | ||
target: ${{ matrix.target }} | ||
|
||
windows: | ||
strategy: | ||
matrix: | ||
target: [win32, win64] | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: recursive | ||
- uses: distrho/dpf-makefile-action@v1 | ||
with: | ||
target: ${{ matrix.target }} | ||
|
||
pluginval: | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: recursive | ||
- uses: distrho/dpf-makefile-action@v1 | ||
with: | ||
target: pluginval |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
/bin/ | ||
/build/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
[submodule "dpf"] | ||
path = dpf | ||
url = https://github.com/DISTRHO/DPF.git | ||
[submodule "dpf-widgets"] | ||
path = dpf-widgets | ||
url = https://github.com/DISTRHO/DPF-Widgets.git | ||
[submodule "hvcc"] | ||
path = hvcc | ||
url = https://github.com/Wasted-Audio/hvcc.git |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
Permission to use, copy, modify, and/or distribute this software for any purpose with | ||
or without fee is hereby granted, provided that the above copyright notice and this | ||
permission notice appear in all copies. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD | ||
TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN | ||
NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL | ||
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER | ||
IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN | ||
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
#!/usr/bin/make -f | ||
# Makefile for hvcc-plugins # | ||
# ------------------------- # | ||
# Created by falkTX | ||
# | ||
|
||
include dpf/Makefile.base.mk | ||
|
||
# --------------------------------------------------------------------------------------------------------------------- | ||
# helper macros | ||
|
||
PLUGINS = $(subst plugins/,,$(wildcard plugins/*)) | ||
|
||
# CUSTOM_TTL = $(subst custom-ttl/,,$(wildcard custom-ttl/*)) | ||
# MODGUIS = $(subst custom-ttl/,,$(subst /modgui,,$(wildcard custom-ttl/*/modgui))) | ||
|
||
# --------------------------------------------------------------------------------------------------------------------- | ||
# build rules | ||
|
||
all: pregen | ||
# $(foreach p,$(CUSTOM_TTL),cp custom-ttl/${p}/*.ttl bin/${p}.lv2/;) | ||
# $(foreach p,$(MODGUIS),cp -r custom-ttl/${p}/modgui bin/${p}.lv2/;) | ||
|
||
pregen: plugins dpf/utils/lv2_ttl_generator$(APP_EXT) | ||
@$(CURDIR)/dpf/utils/generate-ttl.sh | ||
|
||
plugins: $(PLUGINS:%=build/%/dpf) $(PLUGINS:%=build/%/dpf-widgets) $(PLUGINS:%=build/%/Makefile) | ||
$(foreach p,$(PLUGINS),$(MAKE) DPF_PATH=$(CURDIR)/dpf DPF_TARGET_DIR=$(CURDIR)/bin -C build/${p} plugin;) | ||
|
||
build/%/dpf: dpf | ||
-@mkdir -p build/$* | ||
ln -s $(abspath $<) $@ | ||
|
||
build/%/dpf-widgets: dpf-widgets | ||
-@mkdir -p build/$* | ||
ln -s $(abspath $<) $@ | ||
|
||
build/%/Makefile: hvcc/build/bin/hvcc plugins/%/plugin.json plugins/%/plugin.pd | ||
./hvcc/build/bin/hvcc plugins/$*/plugin.pd -m plugins/$*/plugin.json -n "$(lastword $(subst -, ,$*))" -g dpf -o $(@D) | ||
|
||
dpf/utils/lv2_ttl_generator$(APP_EXT): | ||
$(MAKE) -C dpf/utils/lv2-ttl-generator | ||
|
||
hvcc/build/bin/hvcc: | ||
cd hvcc && python3 setup.py install --no-compile --install-layout unix --prefix $(CURDIR)/hvcc/build | ||
|
||
# --------------------------------------------------------------------------------------------------------------------- | ||
# cleanup | ||
|
||
clean: | ||
$(MAKE) clean -C dpf/utils/lv2-ttl-generator | ||
rm -rf bin build | ||
|
||
# --------------------------------------------------------------------------------------------------------------------- | ||
|
||
.PHONY: plugins |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
hvcc-plugins | ||
============ | ||
|
||
Collection of hvcc based audio plugins used in MOD Audio. | ||
Stored in a single source code repository to make it easy for contributors and MOD staff to add and maintain these plugins. | ||
|
||
This source code repository has the following contents: | ||
|
||
- **custom-ttl** - LV2 ttl files modified by hand, based on the generated DPF output, that adds a bit more information and meta-data to a plugin | ||
- **dpf** - the plugin framework used to get CLAP, LV2, VST2, VST3 formats from a single implementation; | ||
for MOD we only care about the LV2 format for now | ||
- **dpf-widgets** - optional, UI widgets for DPF that allow these generated plugins to include a desktop UI | ||
- **hvcc** - the tools that convert puredata patches into C and C++ and integrates with DPF | ||
- **plugins** - the actual plugins, 1 folder by plugin, in which we have the puredata patch(es) and the hvcc specific configuration | ||
- **presets** - optional, LV2 presets to be included on the MOD plugin store builds of each plugin | ||
|
||
### ADDING NEW PLUGINS | ||
|
||
#### PLUGIN | ||
|
||
This repository builds plugins as present in the `plugins` folder. | ||
Each folder should follow the naming convention of "brandname-pluginame", with a single dash as separator and no spaces or special characters. | ||
|
||
Inside each plugin folder there are at least 3 files: | ||
|
||
- plugin.json | ||
- plugin.pd | ||
- README.md | ||
|
||
The first file is meant for hvcc, it sets up branding, plugin categories and audio port count. | ||
It is safe to copy this file to another plugin for a starting point, but then make sure to edit the fields as necessary. | ||
The URI of the plugin **must** match the folder name in the style of "urn:hvcc:brandname:pluginname" (so keep the "urn:hvcc:" and change the rest) | ||
|
||
Then we have the puredata entry point file as `plugin.pd`. | ||
It can reference and include other files on this same directory, but the entry point **must have this filename**. | ||
|
||
And finally a readme just to give some details on the plugin and any relevant information. | ||
|
||
### BUILDING | ||
|
||
For building you will need a POSIX-compliant compiler (GCC or Clang) plus GNU Make. | ||
Building is a simple as running `make` after cloning this repository, assuming you have the needed tools installed. | ||
|
||
Note that this repository uses git submodules, so cloning with `git clone --recursive` is required. | ||
|
||
After building you will find CLAP, LV2, VST2 and VST3 plugin builds in a newly created `./bin` directory. | ||
Alternatively you can download nightly builds from the [generated GitHub actions](https://github.com/moddevices/hvcc-plugins/actions/workflows/build.yml). | ||
|
||
#### BUILDING FOR MOD | ||
|
||
If you already have "bootstrapped" [mod-plugin-builder](https://github.com/moddevices/mod-plugin-builder) before, building for e.g. MOD Dwarf is as simple as: | ||
|
||
``` | ||
make moddwarf | ||
``` | ||
|
||
Change `moddwarf` to `modduo` or `modduox` if applicable. | ||
|
||
After building, you can directly push the bundle into a MOD unit over USB by running: | ||
|
||
```sh | ||
make modpush | ||
``` |
Submodule dpf-widgets
added at
73e9aa
Oops, something went wrong.