From 6bbb16be7151d93bcddcf8a92f81cb657b0fe170 Mon Sep 17 00:00:00 2001 From: jd-13 Date: Wed, 22 Nov 2023 23:00:28 +0000 Subject: [PATCH] Move docker images to separate repo --- .github/workflows/build-plugin-ci-images.yml | 40 -------------- DockerFiles/clang13/Dockerfile | 43 --------------- DockerFiles/gcc10/Dockerfile | 44 --------------- README.md | 56 +++++++------------- 4 files changed, 18 insertions(+), 165 deletions(-) delete mode 100644 .github/workflows/build-plugin-ci-images.yml delete mode 100644 DockerFiles/clang13/Dockerfile delete mode 100644 DockerFiles/gcc10/Dockerfile diff --git a/.github/workflows/build-plugin-ci-images.yml b/.github/workflows/build-plugin-ci-images.yml deleted file mode 100644 index 83afead9..00000000 --- a/.github/workflows/build-plugin-ci-images.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Build plugin CI images - -on: [push, pull_request] - -jobs: - BuildClang: - runs-on: ubuntu-latest - - steps: - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and push - uses: docker/build-push-action@v5 - with: - context: "{{defaultContext}}:DockerFiles/clang13/." - push: true - tags: jackd13/audioplugins:clang13 - - BuildGCC: - runs-on: ubuntu-latest - - steps: - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and push - uses: docker/build-push-action@v5 - with: - context: "{{defaultContext}}:DockerFiles/gcc10/." - push: true - tags: jackd13/audioplugins:gcc10 \ No newline at end of file diff --git a/DockerFiles/clang13/Dockerfile b/DockerFiles/clang13/Dockerfile deleted file mode 100644 index f4a2e9b2..00000000 --- a/DockerFiles/clang13/Dockerfile +++ /dev/null @@ -1,43 +0,0 @@ -FROM ubuntu:jammy - -# Prevents "Configuring tzdata" dialog from stalling build -ENV DEBIAN_FRONTEND=noninteractive - -CMD bash - -# Basics -RUN apt-get update -RUN apt-get install -y apt-utils libasound2-dev webkit2gtk-4.0 x11proto-xinerama-dev -RUN apt-get install -y wget unzip git subversion curl libcurl4-gnutls-dev cppcheck cmake - -# Catch -RUN wget https://github.com/catchorg/Catch2/releases/download/v2.13.0/catch.hpp -P "/home/catch/" -ENV CATCH_PATH /home/catch/ - -# Clang -RUN apt-get install -y software-properties-common -RUN wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - -RUN add-apt-repository -y "deb http://apt.llvm.org/$(lsb_release -c -s)/ llvm-toolchain-$(lsb_release -c -s)-13 main" -RUN apt-get update -RUN apt-get install -y clang-13 clang-tidy - -ENV PATH /opt/llvm/bin:$PATH -ENV CXX clang++-13 - -# Valgrind -RUN apt-get install -y valgrind - -# VST SDK -RUN wget https://www.steinberg.net/vst3sdk -RUN unzip vst3sdk -d /home - -# JUCE SDK -ARG JUCE_VERSION=7.0.9 -RUN wget https://github.com/juce-framework/JUCE/releases/download/${JUCE_VERSION}/juce-${JUCE_VERSION}-linux.zip -RUN unzip juce-${JUCE_VERSION}-linux.zip -d /home -ENV JUCE_PATH /home/JUCE - -# Pluginval -RUN wget https://github.com/Tracktion/pluginval/releases/download/v0.2.9/pluginval_Linux.zip -RUN unzip pluginval_Linux.zip -d /home -ENV PLUGINVAL /home/pluginval diff --git a/DockerFiles/gcc10/Dockerfile b/DockerFiles/gcc10/Dockerfile deleted file mode 100644 index 3828e788..00000000 --- a/DockerFiles/gcc10/Dockerfile +++ /dev/null @@ -1,44 +0,0 @@ -FROM ubuntu:jammy - -# Prevents "Configuring tzdata" dialog from stalling build -ENV DEBIAN_FRONTEND=noninteractive - -CMD bash - -# Basics -RUN apt-get update -RUN apt-get install -y apt-utils libasound2-dev webkit2gtk-4.0 x11proto-xinerama-dev -RUN apt-get install -y wget unzip git subversion curl libcurl4-gnutls-dev cppcheck cmake - -# Catch -RUN wget https://github.com/catchorg/Catch2/releases/download/v2.13.0/catch.hpp -P "/home/catch/" -ENV CATCH_PATH /home/catch/ - -# GCC -RUN apt-get install -y software-properties-common -RUN add-apt-repository ppa:ubuntu-toolchain-r/test -RUN apt-get update -RUN apt-get install -y g++-10 - -ENV CC /usr/bin/gcc-10 -ENV CXX /usr/bin/g++-10 -ENV COVERAGE_COMMAND /usr/bin/gcov-10 -ENV COVERAGE_FLAGS --coverage - -# Valgrind -RUN apt-get install -y valgrind - -# VST SDK -RUN wget https://www.steinberg.net/vst3sdk -RUN unzip vst3sdk -d /home - -# JUCE SDK -ARG JUCE_VERSION=7.0.9 -RUN wget https://github.com/juce-framework/JUCE/releases/download/${JUCE_VERSION}/juce-${JUCE_VERSION}-linux.zip -RUN unzip juce-${JUCE_VERSION}-linux.zip -d /home -ENV JUCE_PATH /home/JUCE - -# Pluginval -RUN wget https://github.com/Tracktion/pluginval/releases/download/v0.2.9/pluginval_Linux.zip -RUN unzip pluginval_Linux.zip -d /home -ENV PLUGINVAL /home/pluginval diff --git a/README.md b/README.md index fe6b49a2..093696aa 100644 --- a/README.md +++ b/README.md @@ -8,57 +8,57 @@ # WE-Core A set of core libraries for useful DSP related classes that are used by multiple White Elephant -Audio VSTs and Audio Units. +Audio VSTs and Audio Units. This is a headers only library, to use the DSP classes in your own projects add the include path: -`/WECore`. +`/WECore`. ## DSP Classes -The naming convention is that each class is prefixed with the product it was developed for. +The naming convention is that each class is prefixed with the product it was developed for. ## APIs * __ModulationSource__ - provides a standard interface for classes which provide a modulation signal * __EffectsProcessor__ - provides a standard interface for classes which do audio processing on mono and stereo signals -### Modulation: +### Modulation: * __RichterLFO__ - substantial functionality with tempo sync, phase sync, and multiple wave types and parameters, can accept a ModulationSource to modulate its parameters * __AREnvelopeFollowerSquareLaw__ & __AREnvelopeFollowerFullWave__ - two different attack/release envelope follower implementations -### Filters: -* __CarveNoiseFilter__ - a simple filter to remove noise at the extremes of human hearing -* __SongbirdFormantFilter__ - Contains multiple SongbirdBandPassFilters, designed to create vowel sounds +### Filters: +* __CarveNoiseFilter__ - a simple filter to remove noise at the extremes of human hearing +* __SongbirdFormantFilter__ - Contains multiple SongbirdBandPassFilters, designed to create vowel sounds * __SongbirdFilterModule__ - Contains two SongbirdFormantFilters which can be blended between, with -multiple supported vowel sounds built in -* __TPTSVFilter__ - Topology preserving filter, configurable as high pass, low pass, or peak +multiple supported vowel sounds built in +* __TPTSVFilter__ - Topology preserving filter, configurable as high pass, low pass, or peak * __MONSTRCrossover__ - A crossover filter made of several MONSTRBand units which can be provided with an EffectsProcessor to do any form of audio processing on that band -### Distortion: +### Distortion: * __CarveDSPUnit__ - A waveshaping distortion module with multiple wave shapes, pre and post gain control, -and a "tweak" control which morphs the selected wave shape +and a "tweak" control which morphs the selected wave shape -### Stereo Processing: +### Stereo Processing: * __StereoWidthProcessor__ - Enables narrowing or widening of the stereo image -## Documentation +## Documentation Documentation is available at: https://jd-13.github.io/WE-Core/ -## Required Libraries -Some classes within this library require: +## Required Libraries +Some classes within this library require: A Collection of Useful C++ Classes for Digital Signal Processing: https://github.com/vinniefalco/DSPFilters -LookAndFeel classes are for building UIs using the JUCE library: https://www.juce.com/ +LookAndFeel classes are for building UIs using the JUCE library: https://www.juce.com/ -cURL (for the experimental auto update functionality): https://curl.haxx.se/libcurl/ +cURL (for the experimental auto update functionality): https://curl.haxx.se/libcurl/ ## Builds and Testing Each DSP module has its own set of tests, found under the `WECore` directory. The file `CMakeLists.txt` can be used to create executable binarys which run the tests. This is done as -follows: +follows: export WECORE_HOME= export WECORE_SRC=$WECORE_HOME/WECore @@ -71,23 +71,3 @@ follows: This produces the binaries: * `WECoreTest` - Contains the standard set of unit tests * `WECoreTestPerf` - Contains unit tests for measuring performance - -### Docker -Docker containers are available on Docker hub for clang and gcc which are able to build and run the tests for this project. They are available at the tags: -* jackd13/audioplugins:clang10 -* jackd13/audioplugins:gcc10 - -To build a container locally and push to Docker hub (using the clang example): - - cd DockerFiles/clang10 - docker build --tag /audioplugins:clang10 . - docker push /audioplugins:clang10 - -Or on an arm64 mac: - - cd DockerFiles/clang10 - docker buildx build --platform linux/amd64,linux/arm64 --push --tag /audioplugins:clang10 . - -To run locally in a Docker container: - - docker run --rm -v $(pwd):/home/WECore -it jackd13/audioplugins:clang10