ohmtech-rdi / eurorack-blocks

Software to Hardware Prototyping for Eurorack using C++, Max/Gen~ or Faust
Other
296 stars 19 forks source link

Use relative path to erbb from max module to configure and build #548

Closed eliottparis closed 1 year ago

eliottparis commented 1 year ago

This PR fixes #544 by using relative path to erbb from max module to configure and build in erb.build.js script.

ohmtech-rdi commented 1 year ago

@OmsInSerial Could you please give this fix a try? It modifies the way we build from inside of Max. The idea for you to test would be to load one of your Max patch, save, and see if any errors pop-up in the Max console. Thanks!

ohmtech-rdi commented 1 year ago

Report from @OmsInSerial (report has been tempered to obfuscate name)

node.script: artifacts already exists, skipping.
param: Param osc2_depth_cv_in_plugged has no minimum; default to using min=0.
param: Param osc2_depth_cv_in_plugged has no maximum; default to using max=1.
param: Param index_cv_in_plugged has no minimum; default to using min=0.
param: Param index_cv_in_plugged has no maximum; default to using max=1.
param: Param mix_cv_in_plugged has no minimum; default to using min=0.
param: Param mix_cv_in_plugged has no maximum; default to using max=1.
param: Param audio_in1_plugged has no minimum; default to using min=0.
param: Param audio_in1_plugged has no maximum; default to using max=1.
param: Param osc1_depth_cv_in_plugged has no minimum; default to using min=0.
param: Param osc1_depth_cv_in_plugged has no maximum; default to using max=1.
param: Param audio_in2_plugged has no minimum; default to using min=0.
param: Param audio_in2_plugged has no maximum; default to using max=1.
param: Param osc1_ratio_cv_in_plugged has no minimum; default to using min=0.
param: Param osc1_ratio_cv_in_plugged has no maximum; default to using max=1.
param: Param osc2_ratio_cv_in_plugged has no minimum; default to using min=0.
param: Param osc2_ratio_cv_in_plugged has no maximum; default to using max=1.
gen~: exported: Macintosh HD:/Users/***/Documents/projects/OmsInSerial/FMEinheit/artifacts/module_max.cpp
node.script: Build starting
node.script: module: /Users/***/Documents/projects/OmsInSerial/FMEinheit/
node.script: Configuring...
node.script: Error: /Applications/Xcode.app/Contents/Developer/usr/bin/python3: can't open file '/Users/***/Documents/projects/OmsInSerial/FMEinheit/../../build-system/scripts/erbb': [Errno 2] No such file or directory
node.script: child process exited with code 2
node.script: Building...
node.script: Error: /Applications/Xcode.app/Contents/Developer/usr/bin/python3: can't open file '/Users/***/Documents/projects/OmsInSerial/FMEinheit/../../build-system/scripts/erbb': [Errno 2] No such file or directory
node.script: child process exited with code 2
Capture d’écran 2023-06-09 à 10 53 15
eliottparis commented 1 year ago

@OmsInSerial Thanks for testing 🙏! @ohmtech-rdi I think you are right, my bad!

I made a fixup that should resolve that.

As the Eurorack-blocks Max package is just an alias created with ~/eurorack-blocks/max$ ln -s "$(pwd)/Eurorack-blocks" ~/Documents/Max\ 8/Packages/Eurorack-blocks as stated in the documentation, the path to erbb is now crafted from the erb.build.js script dirname.

Note: @OmsInSerial With that modification, I think there is no need to have Errb: [...]/eurorack-blocks/build-system in the search paths.

What do you both think?

ohmtech-rdi commented 1 year ago

the path to erbb is now crafted from the erb.build.js script dirname.

On this, I think we should take the same approach as we do in Python:

With that modification, I think there is no need to have Errb: [...]/eurorack-blocks/build-system in the search paths

I think it's still needed when loading a user patch, so that the user patch can find the eurorack-blocks patch? (inside Max)

OmsInSerial commented 1 year ago

@eliottparis

git pull
Updating fd8e0fa..bd2aef2
Fast-forward
 max/Eurorack-blocks/javascript/erb.build.js | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

Removed Erbb path in MAX File preferences. Then, saving in Max:

node.script: artifacts already exists, skipping.
gen~: exported: Macintosh HD:/Users/xxxxxxx/Documents/projects/OmsInSerial/Boardtest/artifacts/module_max.cpp
node.script: Build starting
node.script: module: /Users/xxxxxxx/Documents/projects/OmsInSerial/Boardtest/
node.script: Configuring...
node.script: child process exited with code 0
node.script: Building...
node.script: ACTION Max
node.script: ACTION UI
node.script: ACTION VCV Rack
node.script: COPY eurorack-blocks/include/erb/vcvrack/resource/rogan.6ps.svg
node.script: COPY eurorack-blocks/include/erb/vcvrack/resource/rogan.5ps.svg
node.script: COPY eurorack-blocks/include/erb/vcvrack/resource/rogan.3ps.svg
node.script: COPY eurorack-blocks/include/erb/vcvrack/resource/rogan.2ps.svg
node.script: COPY eurorack-blocks/include/erb/vcvrack/resource/rogan.2s.black.svg
node.script: COPY eurorack-blocks/include/erb/vcvrack/resource/rogan.1ps.svg
node.script: COPY eurorack-blocks/include/erb/vcvrack/resource/rogan.1s.black.svg
node.script: COPY eurorack-blocks/include/erb/vcvrack/resource/rogan.1s.svg
node.script: COPY eurorack-blocks/include/erb/vcvrack/resource/sifam.dbn151.white.svg
node.script: COPY eurorack-blocks/include/erb/vcvrack/resource/sifam.drn111.white.svg
node.script: COPY eurorack-blocks/include/erb/vcvrack/resource/songhuei.9mm.svg
node.script: COPY eurorack-blocks/include/erb/vcvrack/resource/thonk.pj398sm.knurled.svg
node.script: COPY eurorack-blocks/include/erb/vcvrack/resource/dailywell.2ms.1.svg
COPY eurorack-blocks/include/erb/vcvrack/resource/thonk.pj398sm.hex.svg
node.script: COPY eurorack-blocks/include/erb/vcvrack/resource/dailywell.2ms.2.svg
node.script: COPY eurorack-blocks/include/erb/vcvrack/resource/dailywell.2ms.3.svg
node.script: CXX eurorack-blocks/src/Button.cpp
node.script: CXX eurorack-blocks/src/GateOut.cpp
CXX eurorack-blocks/src/detail/Debounce.cpp
node.script: CXX eurorack-blocks/src/detail/Animation.cpp
CXX eurorack-blocks/src/detail/Sdram.cpp
node.script: CXX eurorack-blocks/src/detail/Sram.cpp
node.script: CXX eurorack-blocks/src/vcvrack/BoardGeneric.cpp
node.script: CXX eurorack-blocks/include/gen_dsp/genlib.cpp
node.script: CXX plugin_vcvrack.cpp
node.script: CXX Boardtest_erbb.cpp
node.script: CXX Boardtest_erbui.cpp
node.script: CXX module_max_alt.cpp
node.script: LINK plugin.dylib
node.script: PACKAGE Release Boardtest
node.script: INSTALL /Users/xxxxxxx/Documents/Rack2/plugins/Boardtest/
node.script: child process exited with code 0

So it seems the soft link resolves the issue!

ohmtech-rdi commented 1 year ago

Removed Erbb path in MAX File preferences.

@OmsInSerial Actually, isn't this mandatory to make sure that MAX can find the eurorack-blocks patch?

eliottparis commented 1 year ago

Actually, isn't this mandatory to make sure that MAX can find the eurorack-blocks patch?

As Eurorack-blocks is in Max Packages directory, it will be added to the Max search path automatically, so the patch and resources will be found.

ohmtech-rdi commented 1 year ago

As Eurorack-blocks is in Max Packages directory, it will be added to the Max search path automatically, so the patch and resources will be found.

Ah right, so in the documentation:

~/eurorack-blocks$ cd max
~/eurorack-blocks/max$ ln -s "$(pwd)/Eurorack-blocks" ~/Documents/Max\ 8/Packages/Eurorack-blocks

That's what make it work, right?

eliottparis commented 1 year ago

That's what make it work, right?

Yes exactly