diff --git a/audio/neuralrack-lv2/Makefile b/audio/neuralrack-lv2/Makefile index 1f34ce28e8b7..683fb99498a4 100644 --- a/audio/neuralrack-lv2/Makefile +++ b/audio/neuralrack-lv2/Makefile @@ -1,43 +1,47 @@ PORTNAME= neuralrack DISTVERSIONPREFIX= v -DISTVERSION= 0.3.2 +DISTVERSION= 0.4.1 CATEGORIES= audio PKGNAMESUFFIX= -lv2 MAINTAINER= yuri@FreeBSD.org COMMENT= NeuralRack is a Neural Model and Impulse Response File loader WWW= https://github.com/brummer10/NeuralRack LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= lv2>0:audio/lv2 \ - xxd:sysutils/xxd -LIB_DEPENDS= libjack.so:audio/jack \ - libsndfile.so:audio/libsndfile + xxd:sysutils/xxd \ + ${LOCALBASE}/include/eigen3/Eigen:math/eigen3 +LIB_DEPENDS= libfreetype.so:print/freetype2 \ + libjack.so:audio/jack \ + libsndfile.so:audio/libsndfile \ + libasound.so:audio/alsa-lib USES= compiler:c++20-lang gmake gnome localbase pkgconfig xorg USE_GNOME= cairo USE_XORG= x11 USE_GITHUB= yes GH_ACCOUNT= brummer10 GH_TUPLE= \ - brummer10:libxputty:a4ca80c:brummer10_libxputty/libxputty \ + brummer10:libxputty:a1a89fab276a49aff1e9810de9c73f3ae6ce462d:brummer10_libxputty/libxputty \ HiFi-LoFi:FFTConvolver:f2cdeb04c42141d2caec19ca4f137398b2a76b85:HiFi_LoFi_FFTConvolver/FFTConvolver \ - mikeoliphant:NeuralAudio:02b6f79:neural_audio/NeuralAudio \ + mikeoliphant:NeuralAudio:606d57a57a6534218bb635ca778c85b8fdd3929a:neural_audio/NeuralAudio \ mikeoliphant:RTNeural:5909c44:RTNeural/NeuralAudio/deps/RTNeural \ xtensor-stack:xsimd:a00c81f7b9e808a42aedcf7da2fbb1f9a636da34:xtensor_stack_xsimd/NeuralAudio/deps/RTNeural/modules/xsimd \ - mikeoliphant:NeuralAmpModelerCore:e181f61efb8d05d34add45b5eecb3893ff21177c:NeuralAmpModelerCore/NeuralAudio/deps/NeuralAmpModelerCore \ - Chowdhury-DSP:math_approx:f6d55e7:math_approx/NeuralAudio/deps/math_approx + mikeoliphant:NeuralAmpModelerCore:4c0ee78b71abd5eb20aec58562e7540f43caac3b:NeuralAmpModelerCore/NeuralAudio/deps/NeuralAmpModelerCore \ + Chowdhury-DSP:math_approx:f6d55e70f0c5e888d3a0c4e252b02b530210c78a:math_approx/NeuralAudio/deps/math_approx #WRKSRC= ${WRKDIR}/NeuralRack-${PORTVERSION} WRKSRC= ${WRKDIR}/NeuralRack-${DISTVERSION}${DISTVERSIONSUFFIX} MAKEFILE= makefile -CXXFLAGS+= -I${WRKSRC}/NeuralAudio/deps/RTNeural/modules/Eigen +CXXFLAGS+= -I${LOCALBASE}/include/eigen3 \ + -I${WRKSRC}/NeuralAudio/deps/RTNeural/modules/Eigen BUILD_CONFLICTS= portaudio # because portaudio is built with the JACK option off, but neuralrack finds it and assumes that JACK is enabled there .include diff --git a/audio/neuralrack-lv2/distinfo b/audio/neuralrack-lv2/distinfo index 46a87ee08f9a..cb82170e7601 100644 --- a/audio/neuralrack-lv2/distinfo +++ b/audio/neuralrack-lv2/distinfo @@ -1,17 +1,17 @@ -TIMESTAMP = 1775973879 -SHA256 (brummer10-neuralrack-v0.3.2_GH0.tar.gz) = 18e78f6dd7cd20657665afff61117a977f555083868fe4f76b1d98303561ea0e -SIZE (brummer10-neuralrack-v0.3.2_GH0.tar.gz) = 291406 -SHA256 (brummer10-libxputty-a4ca80c_GH0.tar.gz) = dea80ae61d349ed0f7f9420d08ca127443f018ee92a63b1d4c7bff68c198393c -SIZE (brummer10-libxputty-a4ca80c_GH0.tar.gz) = 578803 +TIMESTAMP = 1790189122 +SHA256 (brummer10-neuralrack-v0.4.1_GH0.tar.gz) = 3c943a0923bbd000a03681071d0e5f5dfa99f1dd2037420e54ce35bdb74633a4 +SIZE (brummer10-neuralrack-v0.4.1_GH0.tar.gz) = 314991 +SHA256 (brummer10-libxputty-a1a89fab276a49aff1e9810de9c73f3ae6ce462d_GH0.tar.gz) = 17207b9961eedfeaff78ea2256f95e3afb0d10c2ab8c58079a8a8a8981b83fc5 +SIZE (brummer10-libxputty-a1a89fab276a49aff1e9810de9c73f3ae6ce462d_GH0.tar.gz) = 758378 SHA256 (HiFi-LoFi-FFTConvolver-f2cdeb04c42141d2caec19ca4f137398b2a76b85_GH0.tar.gz) = 38c7c4d9d2973f80df152993eda871c8ffaf886f9d7185301a890f3f656142a2 SIZE (HiFi-LoFi-FFTConvolver-f2cdeb04c42141d2caec19ca4f137398b2a76b85_GH0.tar.gz) = 14537 -SHA256 (mikeoliphant-NeuralAudio-02b6f79_GH0.tar.gz) = c09f96b33f17dc3700ef717cefbe94eb4a66df312c07b3e9da4c2eb0e117bb44 -SIZE (mikeoliphant-NeuralAudio-02b6f79_GH0.tar.gz) = 265874 +SHA256 (mikeoliphant-NeuralAudio-606d57a57a6534218bb635ca778c85b8fdd3929a_GH0.tar.gz) = 66f8dc466ebc0fddbefcc1288a44d9998a362954d11e7f057e8176ae41568abe +SIZE (mikeoliphant-NeuralAudio-606d57a57a6534218bb635ca778c85b8fdd3929a_GH0.tar.gz) = 404819 SHA256 (mikeoliphant-RTNeural-5909c44_GH0.tar.gz) = bef7afb429ddc400680f30033b20fa961c4b5bc3adc72aaac3989505da7f402b SIZE (mikeoliphant-RTNeural-5909c44_GH0.tar.gz) = 2649579 SHA256 (xtensor-stack-xsimd-a00c81f7b9e808a42aedcf7da2fbb1f9a636da34_GH0.tar.gz) = f1c485107ae0b29069a88bf9619d2d93eaed8321ae03a83d7fc437da85d5b9fd SIZE (xtensor-stack-xsimd-a00c81f7b9e808a42aedcf7da2fbb1f9a636da34_GH0.tar.gz) = 217905 -SHA256 (mikeoliphant-NeuralAmpModelerCore-e181f61efb8d05d34add45b5eecb3893ff21177c_GH0.tar.gz) = e732c6e204597d4059aa01f5f416034383dac13d26859b97ef4b97ba0cb3ab39 -SIZE (mikeoliphant-NeuralAmpModelerCore-e181f61efb8d05d34add45b5eecb3893ff21177c_GH0.tar.gz) = 161453 -SHA256 (Chowdhury-DSP-math_approx-f6d55e7_GH0.tar.gz) = d99c190fb6868a66ed1ef19a370a0b1dbf1f7096939955d92f94a6efd39e2de5 -SIZE (Chowdhury-DSP-math_approx-f6d55e7_GH0.tar.gz) = 38069 +SHA256 (mikeoliphant-NeuralAmpModelerCore-4c0ee78b71abd5eb20aec58562e7540f43caac3b_GH0.tar.gz) = 4e9998ae116c3805089165d7da8c5f79ee004771731fa44e47dde30f96eab276 +SIZE (mikeoliphant-NeuralAmpModelerCore-4c0ee78b71abd5eb20aec58562e7540f43caac3b_GH0.tar.gz) = 797112 +SHA256 (Chowdhury-DSP-math_approx-f6d55e70f0c5e888d3a0c4e252b02b530210c78a_GH0.tar.gz) = 3c638ff556d7874c01ccc327a84b9b09ed2334846341195e3f0d26803418a432 +SIZE (Chowdhury-DSP-math_approx-f6d55e70f0c5e888d3a0c4e252b02b530210c78a_GH0.tar.gz) = 38099 diff --git a/audio/neuralrack-lv2/files/patch-NeuralAudio_NeuralAudio_LSTM.h b/audio/neuralrack-lv2/files/patch-NeuralAudio_NeuralAudio_LSTM.h new file mode 100644 index 000000000000..acacd707a2c3 --- /dev/null +++ b/audio/neuralrack-lv2/files/patch-NeuralAudio_NeuralAudio_LSTM.h @@ -0,0 +1,15 @@ +-- Fix NeuralAudio compatibility with newer Eigen by using Eigen::lastN. +-- Eigen::placeholders::lastN is not available in the Eigen version shipped +-- with FreeBSD, which causes the NeuralRack build to fail. + +--- NeuralAudio/NeuralAudio/LSTM.h.orig 2026-07-23 18:33:39 UTC ++++ NeuralAudio/NeuralAudio/LSTM.h +@@ -37,7 +37,7 @@ namespace NeuralAudio + constexpr static long hOffset = InputSize; + + public: +- auto GetHiddenState() const { return state(Eigen::placeholders::lastN(HiddenSize)); }; ++ auto GetHiddenState() const { return state(Eigen::lastN(HiddenSize)); }; + + void SetNAMWeights(std::vector::iterator& weights) + { diff --git a/audio/neuralrack-lv2/files/patch-NeuralAudio_NeuralAudio_LSTMDynamic.h b/audio/neuralrack-lv2/files/patch-NeuralAudio_NeuralAudio_LSTMDynamic.h new file mode 100644 index 000000000000..dc32d203ca65 --- /dev/null +++ b/audio/neuralrack-lv2/files/patch-NeuralAudio_NeuralAudio_LSTMDynamic.h @@ -0,0 +1,15 @@ +-- Fix NeuralAudio compatibility with newer Eigen by using Eigen::lastN. +-- Eigen::placeholders::lastN is not available in the Eigen version shipped +-- with FreeBSD, which causes the NeuralRack build to fail. + +--- NeuralAudio/NeuralAudio/LSTMDynamic.h.orig 2026-07-23 18:33:39 UTC ++++ NeuralAudio/NeuralAudio/LSTMDynamic.h +@@ -45,7 +45,7 @@ namespace NeuralAudio + { + } + +- auto GetHiddenState() const { return state(Eigen::placeholders::lastN(hiddenSize)); }; ++ auto GetHiddenState() const { return state(Eigen::lastN(hiddenSize)); }; + + void SetNAMWeights(std::vector::iterator& weights) + { diff --git a/audio/neuralrack-lv2/files/patch-NeuralAudio_deps_NeuralAmpModelerCore_NAM_get__dsp.h b/audio/neuralrack-lv2/files/patch-NeuralAudio_deps_NeuralAmpModelerCore_NAM_get__dsp.h new file mode 100644 index 000000000000..13f32e12ae19 --- /dev/null +++ b/audio/neuralrack-lv2/files/patch-NeuralAudio_deps_NeuralAmpModelerCore_NAM_get__dsp.h @@ -0,0 +1,16 @@ +-- Avoid macro conflicts with system macros (major, minor, patch) on BSD systems +-- by undefining them before the Version class definition. + +--- NeuralAudio/deps/NeuralAmpModelerCore/NAM/get_dsp.h.orig 2026-09-23 18:46:14 UTC ++++ NeuralAudio/deps/NeuralAmpModelerCore/NAM/get_dsp.h +@@ -23,6 +23,10 @@ class IVersionSupportChecker (public) + virtual Supported support(const std::string& version) const = 0; + }; + ++// Avoid conflicts with system macros on BSD systems ++#undef major ++#undef minor ++#undef patch + class Version + { + public: diff --git a/audio/neuralrack-lv2/files/patch-NeuralRack_makefile b/audio/neuralrack-lv2/files/patch-NeuralRack_makefile index 70a7a74ee045..d9438fe60cea 100644 --- a/audio/neuralrack-lv2/files/patch-NeuralRack_makefile +++ b/audio/neuralrack-lv2/files/patch-NeuralRack_makefile @@ -1,41 +1,53 @@ ---- NeuralRack/makefile.orig 2025-05-28 06:33:50 UTC +-- FreeBSD port patch for NeuralRack/makefile: +-- 1. Translate amd64 to x86_64 for UNAME_M (FreeBSD uses amd64, the build system expects x86_64) +-- 2. Use DESTDIR check instead of root user check for install directory selection +-- 3. Use PREFIX for install directories instead of hardcoded /usr paths +-- 4. Comment out root-only install guard for standalone binary + +--- NeuralRack/makefile.orig 2026-09-23 18:39:31 UTC +++ NeuralRack/makefile -@@ -2,16 +2,16 @@ +@@ -2,17 +2,17 @@ # check on which OS we build UNAME_S := $(shell uname -s) # check which architecture we build on - UNAME_M := $(shell uname -m) -+ UNAME_M := $(shell uname -m | sed 's/amd64/x86_64/) ++ UNAME_M := $(shell uname -m | sed 's/amd64/x86_64/') # check which architecture we build for TARGET_ARCH = UNKNOWN # check if user is root user = $(shell whoami) - ifeq ($(user),root) - INSTALL_DIR = /usr/lib/lv2 - EXE_INSTALL_DIR = /usr/bin - CLAP_INSTAL_DIR = /usr/lib/clap - VST2_INSTAL_DIR = /usr/lib/vst +- VST3_INSTALL_DIR = /usr/lib/vst3 + ifneq ($(DESTDIR),) + INSTALL_DIR = $(PREFIX)/lib/lv2 + EXE_INSTALL_DIR = $(PREFIX)/bin + CLAP_INSTAL_DIR = $(PREFIX)/lib/clap + VST2_INSTAL_DIR = $(PREFIX)/lib/vst ++ VST3_INSTALL_DIR = $(PREFIX)/lib/vst3 else INSTALL_DIR = ~/.lv2 - EXE_INSTALL_DIR = ~/bin -@@ -484,13 +484,12 @@ ifneq ("$(wildcard ../bin/$(EXEC_NAME)$(EXE_EXT))","") - $(QUIET)mkdir -p $(DESTDIR)$(EXE_INSTALL_DIR)/ - $(QUIET)cp -r ../bin/$(EXEC_NAME)$(EXE_EXT) $(DESTDIR)$(EXE_INSTALL_DIR)/$(EXEC_NAME)$(EXE_EXT) - + #EXE_INSTALL_DIR = ~/bin +@@ -528,7 +528,7 @@ ifneq ("$(wildcard ../bin/$(EXEC_NAME)$(EXE_EXT))","") + @$(B_ECHO) "$(BUNDLE) skipped$(reset)" + endif + ifneq ("$(wildcard ../bin/$(EXEC_NAME)$(EXE_EXT))","") - ifeq ($(user),root) + #ifeq ($(user),root) - $(QUIET)mkdir -p $(DESTDIR)$(DESKAPPS_DIR) + @$(B_ECHO) "Install $(EXEC_NAME)$(EXE_EXT) to $(DESTDIR)$(EXE_INSTALL_DIR)/$(reset)" + $(QUIET)mkdir -p $(DESTDIR)$(EXE_INSTALL_DIR)/ + $(QUIET)cp -r ../bin/$(EXEC_NAME)$(EXE_EXT) $(DESTDIR)$(EXE_INSTALL_DIR)/$(EXEC_NAME)$(EXE_EXT) +@@ -536,9 +536,8 @@ ifneq ("$(wildcard ../bin/$(EXEC_NAME)$(EXE_EXT))","") $(QUIET)cp $(STANDALONE_DIR)$(NAME).desktop $(DESTDIR)$(DESKAPPS_DIR)$(NAME).desktop $(QUIET)mkdir -p $(DESTDIR)$(PIXMAPS_DIR) $(QUIET)cp $(STANDALONE_DIR)$(NAME).svg $(DESTDIR)$(PIXMAPS_DIR)$(NAME).svg - $(QUIET)update-desktop-database || true + @$(B_ECHO) ". ., done$(reset)" - endif + #endif - @$(B_ECHO) ". ., done$(reset)" else @$(B_ECHO) "$(EXEC_NAME)$(EXE_EXT) standalone skipped$(reset)" + endif diff --git a/audio/neuralrack-lv2/pkg-plist b/audio/neuralrack-lv2/pkg-plist index a691ac6be3a2..2bebc8920ae1 100644 --- a/audio/neuralrack-lv2/pkg-plist +++ b/audio/neuralrack-lv2/pkg-plist @@ -1,9 +1,10 @@ bin/Neuralrack lib/clap/NeuralRack.clap lib/lv2/Neuralrack.lv2/NeuralRack.ttl lib/lv2/Neuralrack.lv2/Neuralrack.so lib/lv2/Neuralrack.lv2/Neuralrack_ui.so lib/lv2/Neuralrack.lv2/manifest.ttl lib/vst/NeuralRackvst.so +lib/vst3/NeuralRackVST3.vst3/Contents/x86_64-freebsd/NeuralRackVST3.so share/applications/NeuralRack.desktop share/pixmaps/NeuralRack.svg