Skip to content

Commit ec60dc1

Browse files
authored
Faust Box improvements (#182)
* add boxTGroup, boxHGroup, boxVGroup * add inputs, outputs, valid property to Box * remove faust.box.getBoxType * boxFromDSP now just returns a box * update libfaust to 2.69.3 * update JUCE to 7.0.8 * update pybind11 * update notebooks * update project version to 0.8.0
1 parent 35a9681 commit ec60dc1

File tree

569 files changed

+9130
-6588
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

569 files changed

+9130
-6588
lines changed

.github/workflows/all.yml

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,21 @@ jobs:
1111
build-ubuntu:
1212
runs-on: ubuntu-20.04
1313
strategy:
14+
# fail-fast: false
1415
matrix:
1516
include:
1617
- { python-version: "3.8", pythonLibPath: "/opt/python/cp39-cp38/lib", pythonInclude: "/opt/python/cp38-cp38/include/python3.8", cibwbuild: "cp38-manylinux_x86_64"}
1718
- { python-version: "3.9", pythonLibPath: "/opt/python/cp39-cp39/lib", pythonInclude: "/opt/python/cp39-cp39/include/python3.9", cibwbuild: "cp39-manylinux_x86_64"}
1819
- { python-version: "3.10", pythonLibPath: "/opt/python/cp310-cp310/lib", pythonInclude: "/opt/python/cp310-cp310/include/python3.10", cibwbuild: "cp310-manylinux_x86_64"}
1920
- { python-version: "3.11", pythonLibPath: "/opt/python/cp311-cp311/lib", pythonInclude: "/opt/python/cp311-cp311/include/python3.11", cibwbuild: "cp311-manylinux_x86_64"}
21+
- { python-version: "3.12", pythonLibPath: "/opt/python/cp312-cp312/lib", pythonInclude: "/opt/python/cp312-cp312/include/python3.12", cibwbuild: "cp312-manylinux_x86_64"}
2022
# - { python-version: "3.8", pythonLibPath: "/opt/python/cp39-cp38/lib", pythonInclude: "/opt/python/cp38-cp38/include/python3.8", cibwbuild: "cp38-manylinux_aarch64"}
2123
# - { python-version: "3.9", pythonLibPath: "/opt/python/cp39-cp39/lib", pythonInclude: "/opt/python/cp39-cp39/include/python3.9", cibwbuild: "cp39-manylinux_aarch64"}
2224
# - { python-version: "3.10", pythonLibPath: "/opt/python/cp310-cp310/lib", pythonInclude: "/opt/python/cp310-cp310/include/python3.10", cibwbuild: "cp310-manylinux_aarch64"}
2325
# - { python-version: "3.11", pythonLibPath: "/opt/python/cp311-cp311/lib", pythonInclude: "/opt/python/cp311-cp311/include/python3.11", cibwbuild: "cp311-manylinux_aarch64"}
2426

2527
steps:
26-
- uses: actions/checkout@v3
28+
- uses: actions/checkout@v4
2729
with:
2830
submodules: true
2931

@@ -45,7 +47,7 @@ jobs:
4547
sh download_libfaust.sh
4648
4749
- name: Build wheels
48-
uses: pypa/cibuildwheel@v2.15.0
50+
uses: pypa/cibuildwheel@v2.16.2
4951
env:
5052
CIBW_PLATFORM: linux
5153
CIBW_BUILD: ${{ matrix.cibwbuild }}
@@ -60,7 +62,7 @@ jobs:
6062
CIBW_TEST_COMMAND: "rm -rf dawdreamer/*.so* && cd {project}/tests && python -m pytest -v ."
6163
CIBW_ARCHS: auto64
6264
CIBW_ARCHS_LINUX: auto64 aarch64 # On an Linux Intel runner with qemu installed, build Intel and ARM wheels
63-
CIBW_TEST_SKIP: "*38* *39* *311*" # Only care about 310 (current Google Colab version)
65+
CIBW_TEST_SKIP: "*38* *39* *311* *312*" # Only care about 310 (current Google Colab version)
6466

6567
- uses: actions/upload-artifact@v3
6668
with:
@@ -70,7 +72,7 @@ jobs:
7072
build-ubuntu-docker:
7173
runs-on: ubuntu-20.04
7274
steps:
73-
- uses: actions/checkout@v3
75+
- uses: actions/checkout@v4
7476
with:
7577
submodules: true
7678

@@ -80,15 +82,17 @@ jobs:
8082
build-windows:
8183
runs-on: ${{ matrix.os }}
8284
strategy:
85+
# fail-fast: false
8386
matrix:
8487
include:
8588
- { os: windows-2022, python-version: "3.8", CIBW-BUILD: "cp38*"}
8689
- { os: windows-2022, python-version: "3.9", CIBW-BUILD: "cp39*"}
8790
- { os: windows-2022, python-version: "3.10", CIBW-BUILD: "cp310*"}
8891
- { os: windows-2022, python-version: "3.11", CIBW-BUILD: "cp311*"}
92+
- { os: windows-2022, python-version: "3.12", CIBW-BUILD: "cp312*"}
8993

9094
steps:
91-
- uses: actions/checkout@v3
95+
- uses: actions/checkout@v4
9296
with:
9397
submodules: true
9498

@@ -137,6 +141,7 @@ jobs:
137141
CIBW_TEST_COMMAND: "cd /D {project}\\tests && python -m pytest -v ."
138142
CIBW_ARCHS: auto64
139143
CIBW_BUILD: ${{matrix.CIBW-BUILD}}
144+
CIBW_TEST_SKIP: "*312*"
140145

141146
- uses: actions/upload-artifact@v3
142147
with:
@@ -160,17 +165,20 @@ jobs:
160165
build-macos:
161166
runs-on: ${{ matrix.os }}
162167
strategy:
168+
# fail-fast: false
163169
matrix:
164170
include:
165171
- { os: macos-11, build: cp39-macosx_x86_64, python-version: "3.9", ARCHS: "x86_64" }
166172
- { os: macos-11, build: cp310-macosx_x86_64, python-version: "3.10", ARCHS: "x86_64" }
167173
- { os: macos-11, build: cp311-macosx_x86_64, python-version: "3.11", ARCHS: "x86_64" }
174+
- { os: macos-11, build: cp312-macosx_x86_64, python-version: "3.12", ARCHS: "x86_64" }
168175
- { os: macos-11, build: cp39-macosx_arm64, python-version: "3.9", ARCHS: "arm64" }
169176
- { os: macos-11, build: cp310-macosx_arm64, python-version: "3.10", ARCHS: "arm64" }
170177
- { os: macos-11, build: cp311-macosx_arm64, python-version: "3.11", ARCHS: "arm64" }
178+
- { os: macos-11, build: cp312-macosx_arm64, python-version: "3.12", ARCHS: "arm64" }
171179

172180
steps:
173-
- uses: actions/checkout@v3
181+
- uses: actions/checkout@v4
174182
with:
175183
submodules: true
176184

@@ -194,14 +202,14 @@ jobs:
194202
sh download_libfaust.sh
195203
196204
- name: Build wheels ${{ matrix.python-version }}
197-
uses: pypa/cibuildwheel@v2.15.0
205+
uses: pypa/cibuildwheel@v2.16.2
198206
env:
199207
# note that the Projucer project refers to PYTHONMAJOR and pythonLocation, so they must be set here
200208
PYTHONMAJOR: ${{ matrix.python-version }}
201209
MACOSX_DEPLOYMENT_TARGET: 11.0
202210
CIBW_BUILD_VERBOSITY: 1
203211
CIBW_BEFORE_BUILD: |
204-
export pythonLocation=$(python3-config --prefix)
212+
export pythonLocation=$(python${{matrix.python-version}}-config --prefix)
205213
otool -L $pythonLocation/bin/python3
206214
xcodebuild ARCHS="${{matrix.ARCHS}}" ONLY_ACTIVE_ARCH=NO -configuration Release-${{matrix.ARCHS}} -project Builds/MacOSX/DawDreamer.xcodeproj/ CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED="NO" CODE_SIGN_ENTITLEMENTS="" CODE_SIGNING_ALLOWED="NO"
207215
cd Builds/MacOSX/build/Release-${{matrix.ARCHS}}
@@ -212,7 +220,7 @@ jobs:
212220
CIBW_ARCHS: auto64
213221
CIBW_ARCHS_MACOS: ${{matrix.ARCHS}}
214222
CIBW_ENVIRONMENT_MACOS: ARCHS="${{matrix.ARCHS}}"
215-
CIBW_TEST_SKIP: "*arm64*"
223+
CIBW_TEST_SKIP: "*arm64* *312*"
216224

217225
- uses: actions/upload-artifact@v3
218226
with:

Builds/LinuxMakefile/Makefile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ ifeq ($(CONFIG),Debug)
3939
TARGET_ARCH :=
4040
endif
4141

42-
JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DDEBUG=1" "-D_DEBUG=1" "-DPIP_JUCE_EXAMPLES_DIRECTORY=QzpcdG9vbHNcSlVDRVxleGFtcGxlcw==" "-DSAMPLER_SKIP_UI" "-DJUCE_MODAL_LOOPS_PERMITTED" "-DHAVE_LIBSAMPLERATE" "-DUSE_BUILTIN_FFT" "-DUSE_PTHREADS" "-DBUILD_DAWDREAMER_FAUST" "-DBUILD_DAWDREAMER_RUBBERBAND" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=0.7.4" "-DJUCE_APP_VERSION_HEX=0x704" $(shell $(PKG_CONFIG) --cflags alsa freetype2 gl) -pthread -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/lilv/src -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/lilv -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/sratom -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/sord/src -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/sord -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/serd -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/lv2 -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/VST3_SDK -I../../thirdparty/JUCE/modules/juce_audio_processors/format_types/VST3_SDK -I../../JuceLibraryCode -I../../JuceLibraryCode/modules -I../../thirdparty -I../../thirdparty/pybind11/include -I../../thirdparty/faust/architecture -I../../thirdparty/faust/compiler -I../../thirdparty/faust/compiler/boxes -I../../thirdparty/faust/compiler/documentator -I../../thirdparty/faust/compiler/draw -I../../thirdparty/faust/compiler/draw/device -I../../thirdparty/faust/compiler/draw/schema -I../../thirdparty/faust/compiler/errors -I../../thirdparty/faust/compiler/evaluate -I../../thirdparty/faust/compiler/extended -I../../thirdparty/faust/compiler/generator -I../../thirdparty/faust/compiler/generator/interpreter -I../../thirdparty/faust/compiler/normalize -I../../thirdparty/faust/compiler/parallelize -I../../thirdparty/faust/compiler/parser -I../../thirdparty/faust/compiler/patternmatcher -I../../thirdparty/faust/compiler/propagate -I../../thirdparty/faust/compiler/signals -I../../thirdparty/faust/compiler/tlib -I../../thirdparty/faust/compiler/transform -I../../thirdparty/faust/compiler/utils -I../../thirdparty/libsamplerate/src -I../../thirdparty/libsamplerate/include $(CPPFLAGS)
42+
JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DDEBUG=1" "-D_DEBUG=1" "-DPIP_JUCE_EXAMPLES_DIRECTORY=QzpcdG9vbHNcSlVDRVxleGFtcGxlcw==" "-DSAMPLER_SKIP_UI" "-DJUCE_MODAL_LOOPS_PERMITTED" "-DHAVE_LIBSAMPLERATE" "-DUSE_BUILTIN_FFT" "-DUSE_PTHREADS" "-DBUILD_DAWDREAMER_FAUST" "-DBUILD_DAWDREAMER_RUBBERBAND" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=0.8.0" "-DJUCE_APP_VERSION_HEX=0x800" $(shell $(PKG_CONFIG) --cflags alsa freetype2 gl) -pthread -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/lilv/src -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/lilv -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/sratom -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/sord/src -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/sord -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/serd -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/lv2 -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/VST3_SDK -I../../thirdparty/JUCE/modules/juce_audio_processors/format_types/VST3_SDK -I../../JuceLibraryCode -I../../JuceLibraryCode/modules -I../../thirdparty -I../../thirdparty/pybind11/include -I../../thirdparty/faust/architecture -I../../thirdparty/faust/compiler -I../../thirdparty/faust/compiler/boxes -I../../thirdparty/faust/compiler/documentator -I../../thirdparty/faust/compiler/draw -I../../thirdparty/faust/compiler/draw/device -I../../thirdparty/faust/compiler/draw/schema -I../../thirdparty/faust/compiler/errors -I../../thirdparty/faust/compiler/evaluate -I../../thirdparty/faust/compiler/extended -I../../thirdparty/faust/compiler/generator -I../../thirdparty/faust/compiler/generator/interpreter -I../../thirdparty/faust/compiler/normalize -I../../thirdparty/faust/compiler/parallelize -I../../thirdparty/faust/compiler/parser -I../../thirdparty/faust/compiler/patternmatcher -I../../thirdparty/faust/compiler/propagate -I../../thirdparty/faust/compiler/signals -I../../thirdparty/faust/compiler/tlib -I../../thirdparty/faust/compiler/transform -I../../thirdparty/faust/compiler/utils -I../../thirdparty/libsamplerate/src -I../../thirdparty/libsamplerate/include $(CPPFLAGS)
4343
JUCE_CPPFLAGS_DYNAMIC_LIBRARY := "-DJucePlugin_Build_VST=0" "-DJucePlugin_Build_VST3=0" "-DJucePlugin_Build_AU=0" "-DJucePlugin_Build_AUv3=0" "-DJucePlugin_Build_AAX=0" "-DJucePlugin_Build_Standalone=0" "-DJucePlugin_Build_Unity=0" "-DJucePlugin_Build_LV2=0"
4444
JUCE_CFLAGS_DYNAMIC_LIBRARY := -fPIC -fvisibility=hidden
4545
JUCE_LDFLAGS_DYNAMIC_LIBRARY := -shared
@@ -62,7 +62,7 @@ ifeq ($(CONFIG),Release)
6262
TARGET_ARCH :=
6363
endif
6464

65-
JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DNDEBUG=1" "-DPIP_JUCE_EXAMPLES_DIRECTORY=QzpcdG9vbHNcSlVDRVxleGFtcGxlcw==" "-DSAMPLER_SKIP_UI" "-DJUCE_MODAL_LOOPS_PERMITTED" "-DHAVE_LIBSAMPLERATE" "-DUSE_BUILTIN_FFT" "-DUSE_PTHREADS" "-DBUILD_DAWDREAMER_FAUST" "-DBUILD_DAWDREAMER_RUBBERBAND" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=0.7.4" "-DJUCE_APP_VERSION_HEX=0x704" $(shell $(PKG_CONFIG) --cflags alsa freetype2 gl) -pthread -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/lilv/src -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/lilv -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/sratom -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/sord/src -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/sord -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/serd -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/lv2 -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/VST3_SDK -I../../thirdparty/JUCE/modules/juce_audio_processors/format_types/VST3_SDK -I../../JuceLibraryCode -I../../JuceLibraryCode/modules -I../../thirdparty -I../../thirdparty/pybind11/include -I../../thirdparty/faust/architecture -I../../thirdparty/faust/compiler -I../../thirdparty/faust/compiler/boxes -I../../thirdparty/faust/compiler/documentator -I../../thirdparty/faust/compiler/draw -I../../thirdparty/faust/compiler/draw/device -I../../thirdparty/faust/compiler/draw/schema -I../../thirdparty/faust/compiler/errors -I../../thirdparty/faust/compiler/evaluate -I../../thirdparty/faust/compiler/extended -I../../thirdparty/faust/compiler/generator -I../../thirdparty/faust/compiler/generator/interpreter -I../../thirdparty/faust/compiler/normalize -I../../thirdparty/faust/compiler/parallelize -I../../thirdparty/faust/compiler/parser -I../../thirdparty/faust/compiler/patternmatcher -I../../thirdparty/faust/compiler/propagate -I../../thirdparty/faust/compiler/signals -I../../thirdparty/faust/compiler/tlib -I../../thirdparty/faust/compiler/transform -I../../thirdparty/faust/compiler/utils -I../../thirdparty/libsamplerate/src -I../../thirdparty/libsamplerate/include $(CPPFLAGS)
65+
JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DNDEBUG=1" "-DPIP_JUCE_EXAMPLES_DIRECTORY=QzpcdG9vbHNcSlVDRVxleGFtcGxlcw==" "-DSAMPLER_SKIP_UI" "-DJUCE_MODAL_LOOPS_PERMITTED" "-DHAVE_LIBSAMPLERATE" "-DUSE_BUILTIN_FFT" "-DUSE_PTHREADS" "-DBUILD_DAWDREAMER_FAUST" "-DBUILD_DAWDREAMER_RUBBERBAND" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=0.8.0" "-DJUCE_APP_VERSION_HEX=0x800" $(shell $(PKG_CONFIG) --cflags alsa freetype2 gl) -pthread -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/lilv/src -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/lilv -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/sratom -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/sord/src -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/sord -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/serd -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK/lv2 -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/LV2_SDK -I../../JuceLibraryCode/modules/juce_audio_processors/format_types/VST3_SDK -I../../thirdparty/JUCE/modules/juce_audio_processors/format_types/VST3_SDK -I../../JuceLibraryCode -I../../JuceLibraryCode/modules -I../../thirdparty -I../../thirdparty/pybind11/include -I../../thirdparty/faust/architecture -I../../thirdparty/faust/compiler -I../../thirdparty/faust/compiler/boxes -I../../thirdparty/faust/compiler/documentator -I../../thirdparty/faust/compiler/draw -I../../thirdparty/faust/compiler/draw/device -I../../thirdparty/faust/compiler/draw/schema -I../../thirdparty/faust/compiler/errors -I../../thirdparty/faust/compiler/evaluate -I../../thirdparty/faust/compiler/extended -I../../thirdparty/faust/compiler/generator -I../../thirdparty/faust/compiler/generator/interpreter -I../../thirdparty/faust/compiler/normalize -I../../thirdparty/faust/compiler/parallelize -I../../thirdparty/faust/compiler/parser -I../../thirdparty/faust/compiler/patternmatcher -I../../thirdparty/faust/compiler/propagate -I../../thirdparty/faust/compiler/signals -I../../thirdparty/faust/compiler/tlib -I../../thirdparty/faust/compiler/transform -I../../thirdparty/faust/compiler/utils -I../../thirdparty/libsamplerate/src -I../../thirdparty/libsamplerate/include $(CPPFLAGS)
6666
JUCE_CPPFLAGS_DYNAMIC_LIBRARY := "-DJucePlugin_Build_VST=0" "-DJucePlugin_Build_VST3=0" "-DJucePlugin_Build_AU=0" "-DJucePlugin_Build_AUv3=0" "-DJucePlugin_Build_AAX=0" "-DJucePlugin_Build_Standalone=0" "-DJucePlugin_Build_Unity=0" "-DJucePlugin_Build_LV2=0"
6767
JUCE_CFLAGS_DYNAMIC_LIBRARY := -fPIC -fvisibility=hidden
6868
JUCE_LDFLAGS_DYNAMIC_LIBRARY := -shared
@@ -281,6 +281,11 @@ $(JUCE_OBJDIR)/execinfo.cmd:
281281
-@if [ -z "$(V_AT)" ]; then echo "Checking if we need to link libexecinfo"; fi
282282
$(V_AT)printf "int main() { return 0; }" | $(CXX) -x c++ -o $(@D)/execinfo.x -lexecinfo - >/dev/null 2>&1 && printf -- "-lexecinfo" > "$@" || touch "$@"
283283

284+
$(JUCE_OBJDIR)/cxxfs.cmd:
285+
-$(V_AT)mkdir -p $(@D)
286+
-@if [ -z "$(V_AT)" ]; then echo "Checking if we need to link stdc++fs"; fi
287+
$(V_AT)printf "int main() { return 0; }" | $(CXX) -x c++ -o $(@D)/cxxfs.x -lstdc++fs - >/dev/null 2>&1 && printf -- "-lstdc++fs" > "$@" || touch "$@"
288+
284289
clean:
285290
@echo Cleaning DawDreamer
286291
$(V_AT)$(CLEANCMD)

0 commit comments

Comments
 (0)