From c27e2411b30b4169242fa084c060f77ba3b94e32 Mon Sep 17 00:00:00 2001 From: Akinimaginable Date: Mon, 27 Jan 2025 17:06:38 +0100 Subject: [PATCH 01/58] cmake-linux-platform CI --- .github/workflows/cmake-linux-platform.yml | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/workflows/cmake-linux-platform.yml diff --git a/.github/workflows/cmake-linux-platform.yml b/.github/workflows/cmake-linux-platform.yml new file mode 100644 index 0000000..8f4d20f --- /dev/null +++ b/.github/workflows/cmake-linux-platform.yml @@ -0,0 +1,33 @@ +# This starter workflow is for a CMake project running on a single platform. There is a different starter workflow if you need cross-platform coverage. +# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-multi-platform.yml +name: CMake on a single platform (GNU/Linux) + +on: + push: + branches: [ "dev" ] + pull_request: + branches: [ "dev" ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install dependencies + run: apt-get update -y --no-install-recommends && \ + apt-get install -y --no-install-recommends 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 + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} From cb3512530120565ae5be9c781f41031028e55901 Mon Sep 17 00:00:00 2001 From: Akinimaginable Date: Mon, 27 Jan 2025 17:13:18 +0100 Subject: [PATCH 02/58] Update cmake-linux-platform.yml --- .github/workflows/cmake-linux-platform.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cmake-linux-platform.yml b/.github/workflows/cmake-linux-platform.yml index 8f4d20f..607085c 100644 --- a/.github/workflows/cmake-linux-platform.yml +++ b/.github/workflows/cmake-linux-platform.yml @@ -20,8 +20,9 @@ jobs: uses: actions/checkout@v4 - name: Install dependencies - run: apt-get update -y --no-install-recommends && \ - apt-get install -y --no-install-recommends 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 + run: | + sudo apt-get update -y --no-install-recommends + sudo apt-get install -y --no-install-recommends 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 - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. From c18d3a43d8e13f73f11ce7407815e00ce3d2699f Mon Sep 17 00:00:00 2001 From: Akinimaginable Date: Mon, 27 Jan 2025 17:18:26 +0100 Subject: [PATCH 03/58] Update cmake-linux-platform.yml --- .github/workflows/cmake-linux-platform.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/cmake-linux-platform.yml b/.github/workflows/cmake-linux-platform.yml index 607085c..86cb3d2 100644 --- a/.github/workflows/cmake-linux-platform.yml +++ b/.github/workflows/cmake-linux-platform.yml @@ -24,6 +24,9 @@ jobs: sudo apt-get update -y --no-install-recommends sudo apt-get install -y --no-install-recommends 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 + - name: Add submodules + run: git submodule update + - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type From ebaa7d264569fef3a0737caa8590b2262c1164b9 Mon Sep 17 00:00:00 2001 From: Akinimaginable Date: Mon, 27 Jan 2025 17:06:38 +0100 Subject: [PATCH 04/58] Add CI for Linux platform --- .github/workflows/cmake-linux-platform.yml | 41 ++++++++++++++++++++++ .gitignore | 8 +++-- .idea/vcs.xml | 1 + CMakeLists.txt | 2 +- 4 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/cmake-linux-platform.yml diff --git a/.github/workflows/cmake-linux-platform.yml b/.github/workflows/cmake-linux-platform.yml new file mode 100644 index 0000000..b3845ec --- /dev/null +++ b/.github/workflows/cmake-linux-platform.yml @@ -0,0 +1,41 @@ +# This starter workflow is for a CMake project running on a single platform. There is a different starter workflow if you need cross-platform coverage. +# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-multi-platform.yml +name: CMake on a single platform (GNU/Linux) + +on: + push: + branches: [ "dev" ] + pull_request: + branches: [ "dev" ] + +env: + BUILD_TYPE: Release + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: false # Don't fetch submodules + fetch-depth: 1 + + - name: Get JUCE submodule + run: | + git submodule init JUCE + git submodule update --depth 1 JUCE + + - name: Install dependencies + run: | + sudo apt-get update -y --no-install-recommends + sudo apt-get install -y --no-install-recommends 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 + + - name: Configure CMake + run: | + mkdir build/ + cd build/ + cmake .. -G "Unix Makefiles" + + - name: Build + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} diff --git a/.gitignore b/.gitignore index 4a5b5e3..46980b6 100644 --- a/.gitignore +++ b/.gitignore @@ -4,8 +4,12 @@ .idea/**/dictionaries # Compiled sources -cmake-build-debug -build-ios +cmake-build-debug/ +build-ios/ +build/ + +# JUCE dependencies +JUCE/ # macOS specific .DS_Store diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 154f836..324efc6 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -3,5 +3,6 @@ + \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index dfc0798..c3b45c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -73,7 +73,7 @@ target_compile_definitions(kAmp # JUCE_WEB_BROWSER and JUCE_USE_CURL would be on by default, but you might not need them. JUCE_WEB_BROWSER=0 # If you remove this, add `NEEDS_WEB_BROWSER TRUE` to the `juce_add_gui_app` call JUCE_USE_CURL=0 # If you remove this, add `NEEDS_CURL TRUE` to the `juce_add_gui_app` call - JUCE_IOS=1 + # JUCE_IOS=1 JUCE_APPLICATION_NAME_STRING="$" JUCE_APPLICATION_VERSION_STRING="$") From 251905b23be18f49eaf0449ea885644fcd9003c7 Mon Sep 17 00:00:00 2001 From: NottarJohnny Date: Mon, 3 Mar 2025 19:52:04 +0100 Subject: [PATCH 05/58] =?UTF-8?q?Mise=20en=20place=20de=20l'architecture?= =?UTF-8?q?=20de=20mani=C3=A8re=20=C3=A0=20avoir=20un=20premier=20effet=20?= =?UTF-8?q?fonctionnel.=20Le=20code=20est=20=C3=A0=20revoir=20en=20termes?= =?UTF-8?q?=20de=20qualit=C3=A9=20et=20de=20logique.=20Le=20composant=20de?= =?UTF-8?q?=20connexion=20s'affiche=20correctement=20mais=20le=20composant?= =?UTF-8?q?=20DelayComponent=20n'est=20pas=20rendu=20visuellement.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/editor.xml | 4 +-- CMakeLists.txt | 2 ++ include/AbstractEffect.h | 19 ++++++++++++ include/AudioBuffer.h | 12 +++++++ include/ConnectionComponent.h | 19 ++++++++++++ include/DelayComponent.h | 20 ++++++++++++ include/DelayEffect.h | 20 ++++++++++++ include/EffectComponent.h | 16 ++++++++++ include/EffectComponentFactory.h | 10 ++++++ include/IEffect.h | 10 ++++++ include/MainComponent.h | 15 +++++++-- include/Manager.h | 15 +++++++++ include/Pedalboard.h | 20 ++++++++++++ include/PedalboardComponent.h | 17 ++++++++++ include/TopMenuBarComponent.h | 14 +++++++++ src/AudioBuffer.cpp | 9 ++++++ src/EffectComponentFactory.cpp | 10 ++++++ src/MainComponent.cpp | 27 +++++++++++----- src/Manager.cpp | 25 +++++++++++++++ src/Pedalboard.cpp | 43 ++++++++++++++++++++++++++ src/components/ConnectionComponent.cpp | 41 ++++++++++++++++++++++++ src/components/DelayComponent.cpp | 26 ++++++++++++++++ src/components/EffectComponent.cpp | 6 ++++ src/components/PedalboardComponent.cpp | 28 +++++++++++++++++ src/effects/DelayEffect.cpp | 40 ++++++++++++++++++++++++ 25 files changed, 456 insertions(+), 12 deletions(-) create mode 100644 include/AbstractEffect.h create mode 100644 include/AudioBuffer.h create mode 100644 include/ConnectionComponent.h create mode 100644 include/DelayComponent.h create mode 100644 include/DelayEffect.h create mode 100644 include/EffectComponent.h create mode 100644 include/EffectComponentFactory.h create mode 100644 include/IEffect.h create mode 100644 include/Manager.h create mode 100644 include/Pedalboard.h create mode 100644 include/PedalboardComponent.h create mode 100644 include/TopMenuBarComponent.h create mode 100644 src/AudioBuffer.cpp create mode 100644 src/EffectComponentFactory.cpp create mode 100644 src/Manager.cpp create mode 100644 src/Pedalboard.cpp create mode 100644 src/components/ConnectionComponent.cpp create mode 100644 src/components/DelayComponent.cpp create mode 100644 src/components/EffectComponent.cpp create mode 100644 src/components/PedalboardComponent.cpp create mode 100644 src/effects/DelayEffect.cpp diff --git a/.idea/editor.xml b/.idea/editor.xml index e62c182..7c47d31 100644 --- a/.idea/editor.xml +++ b/.idea/editor.xml @@ -2,6 +2,7 @@