diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index c8f2557..728d978 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -4,7 +4,7 @@ on:
push:
env:
- CACHE_VERSION: 31
+ CACHE_VERSION: 32
CARDINAL_UNDER_WINE: 1
DEBIAN_FRONTEND: noninteractive
HOMEBREW_NO_AUTO_UPDATE: 1
@@ -47,7 +47,7 @@ jobs:
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
sudo apt-get update -qq
- sudo apt-get install -yqq g++-aarch64-linux-gnu libdbus-1-dev:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 qemu-user-static
+ sudo apt-get install -yqq g++-aarch64-linux-gnu libasound2-dev:arm64 libdbus-1-dev:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 libpulse-dev:arm64 libsdl2-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 qemu-user-static
- name: Set up ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
@@ -80,7 +80,7 @@ jobs:
run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
- name: Pack binaries
run: |
- tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-arm64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst) ../CardinalJACK ../CardinalNative
+ tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-arm64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst -e clap) ../CardinalJACK ../CardinalNative
- uses: actions/upload-artifact@v2
with:
name: ${{ github.event.repository.name }}-linux-arm64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
@@ -131,7 +131,7 @@ jobs:
echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
sudo apt-get update -qq
- sudo apt-get install -yqq g++-arm-linux-gnueabihf libdbus-1-dev:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf qemu-user-static
+ sudo apt-get install -yqq g++-arm-linux-gnueabihf libasound2-dev:armhf libdbus-1-dev:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf libpulse-dev:armhf libsdl2-dev:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf qemu-user-static
- name: Set up ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
@@ -164,7 +164,7 @@ jobs:
run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
- name: Pack binaries
run: |
- tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-armhf-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst) ../CardinalJACK ../CardinalNative
+ tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-armhf-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst -e clap) ../CardinalJACK ../CardinalNative
- uses: actions/upload-artifact@v2
with:
name: ${{ github.event.repository.name }}-linux-armhf-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
@@ -211,7 +211,7 @@ jobs:
run: |
sudo dpkg --add-architecture i386
sudo apt-get update -qq
- sudo apt-get install -yqq g++-multilib libdbus-1-dev:i386 libgl1-mesa-dev:i386 libglib2.0-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386
+ sudo apt-get install -yqq g++-multilib libasound2-dev:i386 libdbus-1-dev:i386 libgl1-mesa-dev:i386 libglib2.0-dev:i386 libpulse-dev:i386 libsdl2-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386
- name: Set up ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
@@ -244,7 +244,7 @@ jobs:
run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
- name: Pack binaries
run: |
- tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-i686-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst) ../CardinalJACK ../CardinalNative
+ tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-i686-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst -e clap) ../CardinalJACK ../CardinalNative
- uses: actions/upload-artifact@v2
with:
name: ${{ github.event.repository.name }}-linux-i686-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
@@ -285,7 +285,7 @@ jobs:
- name: Set up dependencies
run: |
sudo apt-get update -qq
- sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
+ sudo apt-get install -yqq libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libpulse-dev libsdl2-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
- name: Set up ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
@@ -316,7 +316,7 @@ jobs:
run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
- name: Pack binaries
run: |
- tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-x86_64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst) ../CardinalJACK ../CardinalNative
+ tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-x86_64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst -e clap) ../CardinalJACK ../CardinalNative
- uses: actions/upload-artifact@v2
with:
name: ${{ github.event.repository.name }}-linux-x86_64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
@@ -341,19 +341,22 @@ jobs:
- name: Set up dependencies
run: |
sudo apt-get update -qq
- sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev liblo-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
+ sudo apt-get install -yqq libasound2-dev libdbus-1-dev libgl1-mesa-dev liblo-dev libpulse-dev libsdl2-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
- name: Build linux x86_64 (debug)
env:
LDFLAGS: -static-libgcc -static-libstdc++
run: |
make features
- make DEBUG=true -j $(nproc)
+ # multiple jobs for building carla, deps and plugins
+ make DEBUG=true carla deps dgl plugins resources -j $(nproc)
+ # single job for final build stage, otherwise we might killed due to OOM
+ make DEBUG=true -j 1
- name: Set sha8
id: slug
run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
- name: Pack binaries
run: |
- tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-x86_64-debug-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst)
+ tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-x86_64-debug-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst -e clap)
- uses: actions/upload-artifact@v2
with:
name: ${{ github.event.repository.name }}-linux-x86_64-debug-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
@@ -385,7 +388,7 @@ jobs:
- name: Set up dependencies
run: |
sudo apt-get update -qq
- sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev liblo-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev libarchive-dev libjansson-dev libsamplerate0-dev libsndfile1-dev libspeexdsp-dev
+ sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev liblo-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev libarchive-dev libfftw3-dev libjansson-dev libsamplerate0-dev libsndfile1-dev libspeexdsp-dev
- name: Build linux x86_64 (sysdeps)
run: |
make features
@@ -413,16 +416,18 @@ jobs:
src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
src/Rack/dep/zstd-1.4.5
key: macos-intel-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }}
- - name: Set up ccache
- uses: hendrikmuhs/ccache-action@v1.2
- with:
- key: ccache-macos-intel-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }}
- name: Build extra dependencies
run: |
if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi
export PATH="/usr/local/opt/ccache/libexec:${PATH}"
./deps/PawPaw/bootstrap-cardinal.sh macos && ./deps/PawPaw/.cleanup.sh macos
+ - name: Set up ccache
+ if: steps.cache.outputs.cache-hit == 'true'
+ uses: hendrikmuhs/ccache-action@v1.2
+ with:
+ key: ccache-macos-intel-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }}
- name: Build macOS intel (base)
+ if: steps.cache.outputs.cache-hit == 'true'
run: |
if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi
export PATH="/usr/local/opt/ccache/libexec:${PATH}"
@@ -430,6 +435,7 @@ jobs:
make features
make CIBUILD=true NOOPT=true WITH_LTO=${{ env.WITH_LTO }} -j $(sysctl -n hw.logicalcpu)
- name: Build macOS intel (AU using juce)
+ if: steps.cache.outputs.cache-hit == 'true'
env:
MACOSX_DEPLOYMENT_TARGET: '10.8'
run: |
@@ -441,6 +447,7 @@ jobs:
pushd jucewrapper/build; cmake -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.8 -DCMAKE_OSX_SYSROOT="macosx" -DCMAKE_BUILD_TYPE=Release .. && make VERBOSE=1 -j $(sysctl -n hw.logicalcpu); popd
mv jucewrapper/build/*_artefacts/Release/AU/*.component bin/
- name: Build macOS intel (packaging)
+ if: steps.cache.outputs.cache-hit == 'true'
env:
MACOS_ARCHS: 'x86_64'
run: |
@@ -497,16 +504,18 @@ jobs:
src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
src/Rack/dep/zstd-1.4.5
key: macos-universal-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }}
- - name: Set up ccache
- uses: hendrikmuhs/ccache-action@v1.2
- with:
- key: ccache-macos-universal-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }}
- name: Build extra dependencies
run: |
if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi
export PATH="/usr/local/opt/ccache/libexec:${PATH}"
./deps/PawPaw/bootstrap-cardinal.sh macos-universal && ./deps/PawPaw/.cleanup.sh macos-universal
+ - name: Set up ccache
+ if: steps.cache.outputs.cache-hit == 'true'
+ uses: hendrikmuhs/ccache-action@v1.2
+ with:
+ key: ccache-macos-universal-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }}
- name: Build macOS universal (base)
+ if: steps.cache.outputs.cache-hit == 'true'
run: |
if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi
export PATH="/usr/local/opt/ccache/libexec:${PATH}"
@@ -514,6 +523,7 @@ jobs:
make features
make CIBUILD=true NOOPT=true WITH_LTO=${{ env.WITH_LTO }} -j $(sysctl -n hw.logicalcpu)
- name: Build macOS universal (AU using juce)
+ if: steps.cache.outputs.cache-hit == 'true'
env:
MACOSX_DEPLOYMENT_TARGET: '10.12'
run: |
@@ -524,6 +534,7 @@ jobs:
pushd jucewrapper/build; cmake -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_OSX_ARCHITECTURES='arm64;x86_64' -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 -DCMAKE_OSX_SYSROOT="macosx" -DCMAKE_BUILD_TYPE=Release .. && make VERBOSE=1 -j $(sysctl -n hw.logicalcpu); popd
mv jucewrapper/build/*_artefacts/Release/AU/*.component bin/
- name: Build macOS universal (packaging)
+ if: steps.cache.outputs.cache-hit == 'true'
env:
MACOS_ARCHS: 'arm64,x86_64'
run: |
@@ -675,70 +686,70 @@ jobs:
path: |
*.tar.gz
- wasm:
- runs-on: ubuntu-20.04
- steps:
- - uses: actions/checkout@v2
- with:
- submodules: recursive
- - name: Set up cache
- id: cache
- uses: actions/cache@v2
- with:
- path: |
- ~/PawPawBuilds
- src/Rack/dep/bin
- src/Rack/dep/include
- src/Rack/dep/lib
- src/Rack/dep/share
- src/Rack/dep/jansson-2.12
- src/Rack/dep/libarchive-3.4.3
- src/Rack/dep/libsamplerate-0.1.9
- src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
- src/Rack/dep/zstd-1.4.5
- key: wasm-v${{ env.CACHE_VERSION }}
- - name: Set up dependencies
- run: |
- [ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk
- cd ~/PawPawBuilds/emsdk && ./emsdk install latest && ./emsdk activate latest
- - name: Build extra dependencies
- run: |
- source ~/PawPawBuilds/emsdk/emsdk_env.sh
- ./deps/PawPaw/bootstrap-cardinal.sh wasm && ./deps/PawPaw/.cleanup.sh wasm
- - name: Build wasm cross-compiled
- run: |
- source ~/PawPawBuilds/emsdk/emsdk_env.sh
- pushd deps/PawPaw; source local.env wasm; popd
- make features
- make CIBUILD=true NOOPT=true USE_GLES2=true -j $(nproc)
- - name: Set sha8 (non-release)
- if: startsWith(github.ref, 'refs/tags/') != true
- id: slug1
- run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
- - name: Set sha8 (release)
- if: startsWith(github.ref, 'refs/tags/')
- id: slug2
- run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
- - name: Set sha8
- id: slug
- run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
- - name: Pack binaries
- run: |
- cd bin; zip -r -9 ../${{ github.event.repository.name }}-wasm-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.zip $(ls *.html *.data *.js *.wasm)
- - uses: actions/upload-artifact@v2
- with:
- name: ${{ github.event.repository.name }}-wasm-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
- path: |
- *.zip
- - uses: softprops/action-gh-release@v1
- if: startsWith(github.ref, 'refs/tags/')
- with:
- tag_name: ${{ github.ref_name }}
- name: ${{ github.ref_name }}
- draft: false
- prerelease: false
- files: |
- *.zip
+ #wasm:
+ #runs-on: ubuntu-20.04
+ #steps:
+ #- uses: actions/checkout@v2
+ #with:
+ #submodules: recursive
+ #- name: Set up cache
+ #id: cache
+ #uses: actions/cache@v2
+ #with:
+ #path: |
+ #~/PawPawBuilds
+ #src/Rack/dep/bin
+ #src/Rack/dep/include
+ #src/Rack/dep/lib
+ #src/Rack/dep/share
+ #src/Rack/dep/jansson-2.12
+ #src/Rack/dep/libarchive-3.4.3
+ #src/Rack/dep/libsamplerate-0.1.9
+ #src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
+ #src/Rack/dep/zstd-1.4.5
+ #key: wasm-v${{ env.CACHE_VERSION }}
+ #- name: Set up dependencies
+ #run: |
+ #[ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk
+ #cd ~/PawPawBuilds/emsdk && ./emsdk install latest && ./emsdk activate latest
+ #- name: Build extra dependencies
+ #run: |
+ #source ~/PawPawBuilds/emsdk/emsdk_env.sh
+ #./deps/PawPaw/bootstrap-cardinal.sh wasm && ./deps/PawPaw/.cleanup.sh wasm
+ #- name: Build wasm cross-compiled
+ #run: |
+ #source ~/PawPawBuilds/emsdk/emsdk_env.sh
+ #pushd deps/PawPaw; source local.env wasm; popd
+ #make features
+ #make CIBUILD=true NOOPT=true USE_GLES2=true -j $(nproc)
+ #- name: Set sha8 (non-release)
+ #if: startsWith(github.ref, 'refs/tags/') != true
+ #id: slug1
+ #run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
+ #- name: Set sha8 (release)
+ #if: startsWith(github.ref, 'refs/tags/')
+ #id: slug2
+ #run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
+ #- name: Set sha8
+ #id: slug
+ #run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
+ #- name: Pack binaries
+ #run: |
+ #cd bin; zip -r -9 ../${{ github.event.repository.name }}-wasm-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.zip $(ls *.html *.data *.js *.wasm)
+ #- uses: actions/upload-artifact@v2
+ #with:
+ #name: ${{ github.event.repository.name }}-wasm-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
+ #path: |
+ #*.zip
+ #- uses: softprops/action-gh-release@v1
+ #if: startsWith(github.ref, 'refs/tags/')
+ #with:
+ #tag_name: ${{ github.ref_name }}
+ #name: ${{ github.ref_name }}
+ #draft: false
+ #prerelease: false
+ #files: |
+ #*.zip
wasm-mini:
runs-on: ubuntu-20.04
@@ -881,7 +892,7 @@ jobs:
run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
- name: Pack binaries
run: |
- cd bin; zip -r -9 ../${{ github.event.repository.name }}-win32-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.zip $(ls | grep -e lv2 -e vst)
+ cd bin; zip -r -9 ../${{ github.event.repository.name }}-win32-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.zip $(ls | grep -e lv2 -e vst -e clap)
- uses: actions/upload-artifact@v2
with:
name: ${{ github.event.repository.name }}-win32-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
@@ -973,7 +984,7 @@ jobs:
run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
- name: Pack binaries
run: |
- cd bin; zip -r -9 ../${{ github.event.repository.name }}-win64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.zip $(ls | grep -e lv2 -e vst)
+ cd bin; zip -r -9 ../${{ github.event.repository.name }}-win64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.zip $(ls | grep -e lv2 -e vst -e clap)
- uses: actions/upload-artifact@v2
with:
name: ${{ github.event.repository.name }}-win64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
@@ -1115,7 +1126,7 @@ jobs:
--leak-check=no \
--track-origins=yes \
--suppressions=./dpf/utils/valgrind-dpf.supp \
- /usr/lib/carla/carla-bridge-native lv2 "" ${p} 1>/dev/null; \
+ /usr/lib/carla/carla-bridge-native lv2 "" ${p}; \
done
- name: Test VST2 plugin
run: |
@@ -1126,7 +1137,7 @@ jobs:
--leak-check=no \
--track-origins=yes \
--suppressions=./dpf/utils/valgrind-dpf.supp \
- /usr/lib/carla/carla-bridge-native vst2 ./${p} "" 1>/dev/null; \
+ /usr/lib/carla/carla-bridge-native vst2 ./${p} ""; \
done
- name: Test VST3 plugin
run: |
@@ -1137,5 +1148,5 @@ jobs:
--leak-check=no \
--track-origins=yes \
--suppressions=./dpf/utils/valgrind-dpf.supp \
- /usr/lib/carla/carla-bridge-native vst3 ./bin/${p} "" 1>/dev/null; \
+ /usr/lib/carla/carla-bridge-native vst3 ./bin/${p} ""; \
done
diff --git a/README.md b/README.md
index f167b7b..64313e1 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
*Cardinal, the Rack!*
Cardinal is a free and open-source virtual modular synthesizer plugin,
-available as JACK standalone and AU, LV2, VST2 and VST3 audio plugin for FreeBSD, Linux, macOS and Windows.
+available as JACK standalone and AU, LV2, VST2, VST3 and CLAP audio plugin for FreeBSD, Linux, macOS and Windows.
It is based on the popular [VCV Rack](https://vcvrack.com/) but with a focus on being a fully self-contained plugin version.
More specifically, this is a [DPF-based](https://github.com/DISTRHO/DPF/)
@@ -25,7 +25,8 @@ All VCV branding has been removed (to the best of our knowledge) in order to avo
Cardinal should be considered stable, if you spot any bugs please report them.
Currently the following should be noted:
-- Windows 32bit builds do not work well [#80](https://github.com/DISTRHO/Cardinal/issues/80)
+- CLAP support is a work-in-progress [DPF#383](https://github.com/DISTRHO/DPF/issues/383)
+- Windows 32bit builds still have a few problematic modules [#80](https://github.com/DISTRHO/Cardinal/issues/80)
### Stable release
@@ -62,9 +63,10 @@ All variants have MIDI input and output support.
### Main
-This variant provides 8 audio inputs and outputs and 10 CV inputs and outputs.
+This variant provides 8 audio inputs and outputs and 10 CV inputs and outputs.
-NOTE: Due to AU and VST2 formats not supporting CV ports, this variant is not available for those formats.
+NOTE: Due to AU and VST2 formats not supporting CV ports, this variant is not available for those formats.
+NOTE: This variant is not available in CLAP yet, to be added in a later release
### Synth
diff --git a/dpf b/dpf
index 5ddaeef..8f664b4 160000
--- a/dpf
+++ b/dpf
@@ -1 +1 @@
-Subproject commit 5ddaeefc47bd215c630b372304461a62f3464924
+Subproject commit 8f664b4d346ba8c40e6a5a0909ca813654721b1a
diff --git a/plugins/AS b/plugins/AS
index 93aa1d0..b5fdb76 160000
--- a/plugins/AS
+++ b/plugins/AS
@@ -1 +1 @@
-Subproject commit 93aa1d0bbb2550bf05998e331e603e87425aeb91
+Subproject commit b5fdb76c79688207e56bd5b07b01e9c63a102797
diff --git a/plugins/ArableInstruments b/plugins/ArableInstruments
index 890448f..6f09e9d 160000
--- a/plugins/ArableInstruments
+++ b/plugins/ArableInstruments
@@ -1 +1 @@
-Subproject commit 890448f087e3ab47eac391f9bcfe03f7bbd2123e
+Subproject commit 6f09e9d3e6a1c9b862ca2421227d33fdc4834e2d
diff --git a/plugins/Bidoo b/plugins/Bidoo
index 97f61b3..69c8a23 160000
--- a/plugins/Bidoo
+++ b/plugins/Bidoo
@@ -1 +1 @@
-Subproject commit 97f61b3616a6e0935ac84f02b1e35734413c6b34
+Subproject commit 69c8a23d0182b5ef50c23b1870c354b4e30811d1
diff --git a/plugins/Cardinal/src/AudioToCVPitch.cpp b/plugins/Cardinal/src/AudioToCVPitch.cpp
index 89d9e69..2c79720 100644
--- a/plugins/Cardinal/src/AudioToCVPitch.cpp
+++ b/plugins/Cardinal/src/AudioToCVPitch.cpp
@@ -95,6 +95,14 @@ struct AudioToCVPitch : Module {
configParam(PARAM_TOLERANCE, 0.f, 99.f, kDefaultTolerance, "Tolerance", " %");
}
+ ~AudioToCVPitch() override
+ {
+ if (pitchDetector != nullptr)
+ del_aubio_pitch(pitchDetector);
+ del_fvec(detectedPitch);
+ del_fvec(inputBuffer);
+ }
+
void process(const ProcessArgs& args) override
{
float cvPitch = lastUsedOutputPitch;
diff --git a/plugins/DrumKit b/plugins/DrumKit
index 7681d30..d44b52e 160000
--- a/plugins/DrumKit
+++ b/plugins/DrumKit
@@ -1 +1 @@
-Subproject commit 7681d30ac0b9246605d3d8d71dc7e25030748ec6
+Subproject commit d44b52e9bf8915c06382bfd1a41a460bafbfd671
diff --git a/plugins/JW-Modules b/plugins/JW-Modules
index f7399c4..356588d 160000
--- a/plugins/JW-Modules
+++ b/plugins/JW-Modules
@@ -1 +1 @@
-Subproject commit f7399c473735c0a5bec95bb40953e781f9a47ca4
+Subproject commit 356588ddb142dab99837af58681bc0d8afb88e4c
diff --git a/plugins/MSM b/plugins/MSM
index abe3c24..2ebac75 160000
--- a/plugins/MSM
+++ b/plugins/MSM
@@ -1 +1 @@
-Subproject commit abe3c24d40b11d31f9f38b2125eff9280c77ad1b
+Subproject commit 2ebac7567be4dbb00128b5d7aaccfdf4aac26e81
diff --git a/plugins/Makefile b/plugins/Makefile
index 0dd3b97..8f4e0c0 100644
--- a/plugins/Makefile
+++ b/plugins/Makefile
@@ -525,7 +525,7 @@ PLUGIN_FILES += $(filter-out Bidoo/src/dep/resampler/main.cpp,$(wildcard Bidoo/s
PLUGIN_FILES += BidooDark/plugin.cpp
# modules/types which are present in other plugins
-BIDOO_CUSTOM = ChannelDisplay InstantiateExpanderItem LadderFilter $(DRWAV)
+BIDOO_CUSTOM = ChannelDisplay InstantiateExpanderItem LadderFilter PitchShifter $(DRWAV)
BIDOO_CUSTOM_PER_FILE = channel channel filterType
# --------------------------------------------------------------
@@ -546,6 +546,9 @@ PLUGIN_FILES += $(wildcard ChowDSP/src/*/*.cpp)
PLUGIN_FILES += $(wildcard ChowDSP/src/*/*/*.cpp)
PLUGIN_FILES += $(wildcard ChowDSP/lib/r8lib/*.cpp)
+# modules/types which are present in other plugins
+CHOWDSP_CUSTOM = sign
+
# --------------------------------------------------------------
# CatroModulo
@@ -832,6 +835,9 @@ PARABLE_CUSTOM = Clouds CustomPanel CloudsWidget FreezeLight clouds stmlib
PLUGIN_FILES += $(filter-out PathSet/src/plugin.cpp,$(wildcard PathSet/src/*.cpp))
+# modules/types which are present in other plugins
+PATHSET_CUSTOM = PitchShifter
+
# --------------------------------------------------------------
# PinkTrombone
@@ -880,7 +886,7 @@ PLUGIN_FILES += $(filter-out stocaudio/src/plugin.cpp,$(wildcard stocaudio/src/*
PLUGIN_FILES += $(filter-out unless_modules/src/unless.cpp,$(wildcard unless_modules/src/*.cpp))
# modules/types which are present in other plugins
-UNLESS_MODULES_CUSTOM = Selection
+UNLESS_MODULES_CUSTOM = Selection sign
# --------------------------------------------------------------
# ValleyAudio
@@ -964,7 +970,7 @@ VALLEYAUDIO_CUSTOM_PER_FILE = TempoKnob
PLUGIN_FILES += $(filter-out voxglitch/src/plugin.cpp,$(wildcard voxglitch/src/*.cpp))
# modules/types which are present in other plugins
-VOXGLITCH_CUSTOM = $(DRWAV) ADSR AudioFile Looper Readout
+VOXGLITCH_CUSTOM = ADSR AudioFile Looper Readout
VOXGLITCH_CUSTOM_PER_FILE = AudioBuffer GateSequencer Grain SamplePlayer Sequencer SequencerDisplay VoltageSequencer
# --------------------------------------------------------------
diff --git a/plugins/PathSet b/plugins/PathSet
index de53c78..30e35f9 160000
--- a/plugins/PathSet
+++ b/plugins/PathSet
@@ -1 +1 @@
-Subproject commit de53c78658c42638b7c356b78d1559634644f733
+Subproject commit 30e35f9414329ed6545ef328fd5951d4cf583362
diff --git a/plugins/PinkTrombone b/plugins/PinkTrombone
index 87ecd0f..1e96d7b 160000
--- a/plugins/PinkTrombone
+++ b/plugins/PinkTrombone
@@ -1 +1 @@
-Subproject commit 87ecd0ff5212a65b064444362e76c9bf94c01826
+Subproject commit 1e96d7b898eca6101f438dfd8224d713985486e2
diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp
index a0fe9f5..229dd31 100644
--- a/plugins/plugins.cpp
+++ b/plugins/plugins.cpp
@@ -2527,6 +2527,7 @@ static void initStatic__PathSet()
p->addModel(modelAstroVibe);
p->addModel(modelGlassPane);
p->addModel(modelNudge);
+ p->addModel(modelOneShot);
}
}
@@ -2719,18 +2720,16 @@ static void initStatic__Voxglitch()
p->addModel(modelDigitalSequencerXP);
p->addModel(modelGlitchSequencer);
p->addModel(modelGhosts);
- p->addModel(modelGoblins);
- p->addModel(modelGrainEngine);
p->addModel(modelGrainEngineMK2);
p->addModel(modelGrainEngineMK2Expander);
p->addModel(modelGrainFx);
+ p->addModel(modelGrooveBox);
+ p->addModel(modelGrooveBoxExpander);
p->addModel(modelHazumi);
p->addModel(modelLooper);
p->addModel(modelRepeater);
p->addModel(modelSamplerX8);
p->addModel(modelSatanonaut);
- p->addModel(modelGrooveBox);
- p->addModel(modelGrooveBoxExpander);
p->addModel(modelWavBank);
p->addModel(modelWavBankMC);
p->addModel(modelXY);
diff --git a/plugins/voxglitch b/plugins/voxglitch
index e856cfb..c47c0a1 160000
--- a/plugins/voxglitch
+++ b/plugins/voxglitch
@@ -1 +1 @@
-Subproject commit e856cfb4dbc255165d22294e80e13957241d2c80
+Subproject commit c47c0a104c9ebd6814d8e8f616113a21ad97756f
diff --git a/src/Makefile.cardinal.mk b/src/Makefile.cardinal.mk
index a03f268..19c1218 100644
--- a/src/Makefile.cardinal.mk
+++ b/src/Makefile.cardinal.mk
@@ -21,6 +21,8 @@ endif
ifneq ($(STATIC_BUILD),true)
+STATIC_PLUGIN_TARGET = true
+
CWD = ../../carla/source
include $(CWD)/Makefile.deps.mk
diff --git a/utils/create-macos-installer.sh b/utils/create-macos-installer.sh
index a465d2d..a757dd5 100755
--- a/utils/create-macos-installer.sh
+++ b/utils/create-macos-installer.sh
@@ -9,8 +9,8 @@ else
exit
fi
-rm -rf res jack native au lv2 vst2 vst3
-mkdir jack native au lv2 vst2 vst3
+rm -rf res jack native au lv2 vst2 vst3 clap
+mkdir jack native au lv2 vst2 vst3 clap
mv Cardinal.app jack/CardinalJACK.app
mv CardinalNative.app native/CardinalNative.app
@@ -19,10 +19,12 @@ mv *.component au/
mv *.lv2 lv2/
mv *.vst vst2/
mv *.vst3 vst3/
+mv *.clap clap/
cp -RL lv2/Cardinal.lv2/resources res
rm -rf lv2/*.lv2/resources
rm -rf vst2/*.vst/Contents/Resources
rm -rf vst3/*.vst3/Contents/Resources
+rm -rf clap/*.clap/Contents/Resources
pkgbuild \
--identifier "studio.kx.distrho.cardinal.resources" \
@@ -66,6 +68,12 @@ pkgbuild \
--root "${PWD}/vst3/" \
../dpf-cardinal-vst3bundles.pkg
+pkgbuild \
+ --identifier "studio.kx.distrho.plugins.cardinal.clapbundles" \
+ --install-location "/Library/Audio/Plug-Ins/CLAP/" \
+ --root "${PWD}/clap/" \
+ ../dpf-cardinal-clapbundles.pkg
+
cd ..
sed -e "s|@builddir@|${PWD}/build|" \
diff --git a/utils/inno/win32.iss b/utils/inno/win32.iss
index cff7ed9..e1b2294 100644
--- a/utils/inno/win32.iss
+++ b/utils/inno/win32.iss
@@ -27,6 +27,7 @@ Name: native; Description: "Standalone (Native)"; Types: custom;
Name: lv2; Description: "LV2 plugin"; Types: normal;
Name: vst2; Description: "VST2 plugin"; Types: normal;
Name: vst3; Description: "VST3 plugin"; Types: normal;
+Name: clap; Description: "CLAP plugin"; Types: normal;
[Files]
#include "resources.iss"
@@ -59,6 +60,8 @@ Source: "..\..\bin\Cardinal.vst\*.*"; DestDir: "{commoncf32}\VST2\Cardinal.vst";
Source: "..\..\bin\Cardinal.vst3\Contents\x86-win\Cardinal.vst3"; DestDir: "{commoncf32}\VST3\Cardinal.vst3\Contents\x86-win"; Components: vst3; Flags: ignoreversion;
Source: "..\..\bin\CardinalFX.vst3\Contents\x86-win\CardinalFX.vst3"; DestDir: "{commoncf32}\VST3\CardinalFX.vst3\Contents\x86-win"; Components: vst3; Flags: ignoreversion;
Source: "..\..\bin\CardinalSynth.vst3\Contents\x86-win\CardinalSynth.vst3"; DestDir: "{commoncf32}\VST3\CardinalSynth.vst3\Contents\x86-win"; Components: vst3; Flags: ignoreversion;
+; clap
+Source: "..\..\bin\Cardinal.clap\*.*"; DestDir: "{commoncf32}\CLAP\Cardinal.clap"; Components: clap; Flags: ignoreversion;
[Icons]
Name: "{commonprograms}\Cardinal (JACK)"; Filename: "{app}\Cardinal.exe"; IconFilename: "{app}\distrho.ico"; WorkingDir: "{app}"; Comment: "Virtual modular synthesizer plugin (JACK variant)"; Components: jack;
diff --git a/utils/inno/win64.iss b/utils/inno/win64.iss
index 90cfa81..d519ca8 100644
--- a/utils/inno/win64.iss
+++ b/utils/inno/win64.iss
@@ -28,6 +28,7 @@ Name: native; Description: "Standalone (Native)"; Types: custom;
Name: lv2; Description: "LV2 plugin"; Types: normal;
Name: vst2; Description: "VST2 plugin"; Types: normal;
Name: vst3; Description: "VST3 plugin"; Types: normal;
+Name: clap; Description: "CLAP plugin"; Types: normal;
[Files]
#include "resources.iss"
@@ -60,6 +61,8 @@ Source: "..\..\bin\Cardinal.vst\*.*"; DestDir: "{commoncf64}\VST2\Cardinal.vst";
Source: "..\..\bin\Cardinal.vst3\Contents\x86_64-win\Cardinal.vst3"; DestDir: "{commoncf64}\VST3\Cardinal.vst3\Contents\x86_64-win"; Components: vst3; Flags: ignoreversion;
Source: "..\..\bin\CardinalFX.vst3\Contents\x86_64-win\CardinalFX.vst3"; DestDir: "{commoncf64}\VST3\CardinalFX.vst3\Contents\x86_64-win"; Components: vst3; Flags: ignoreversion;
Source: "..\..\bin\CardinalSynth.vst3\Contents\x86_64-win\CardinalSynth.vst3"; DestDir: "{commoncf64}\VST3\CardinalSynth.vst3\Contents\x86_64-win"; Components: vst3; Flags: ignoreversion;
+; clap
+Source: "..\..\bin\Cardinal.clap\*.*"; DestDir: "{commoncf64}\CLAP\Cardinal.clap"; Components: clap; Flags: ignoreversion;
[Icons]
Name: "{commonprograms}\Cardinal (JACK)"; Filename: "{app}\Cardinal.exe"; IconFilename: "{app}\distrho.ico"; WorkingDir: "{app}"; Comment: "Virtual modular synthesizer plugin (JACK variant)"; Components: jack;
diff --git a/utils/macOS/package.xml.in b/utils/macOS/package.xml.in
index 381a28b..ca2f4da 100644
--- a/utils/macOS/package.xml.in
+++ b/utils/macOS/package.xml.in
@@ -27,6 +27,9 @@
dpf-cardinal-vst3bundles.pkg
+
+ dpf-cardinal-clapbundles.pkg
+
@@ -35,5 +38,6 @@
+