git: d9d1869011d9 - main - audio/neuralrack-lv2: New port: NeuralRack is a Neural Model and Impulse Response File loader

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Thu, 27 Mar 2025 01:43:45 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d9d1869011d9e62fa21649d1dce6e60949285e63

commit d9d1869011d9e62fa21649d1dce6e60949285e63
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2025-03-27 01:30:58 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2025-03-27 01:43:43 +0000

    audio/neuralrack-lv2: New port: NeuralRack is a Neural Model and Impulse Response File loader
---
 audio/Makefile                                     |  1 +
 audio/neuralrack-lv2/Makefile                      | 41 ++++++++++++++++
 audio/neuralrack-lv2/distinfo                      | 13 +++++
 .../neuralrack-lv2/files/patch-NeuralRack_makefile | 57 ++++++++++++++++++++++
 audio/neuralrack-lv2/pkg-descr                     | 16 ++++++
 audio/neuralrack-lv2/pkg-plist                     |  7 +++
 6 files changed, 135 insertions(+)

diff --git a/audio/Makefile b/audio/Makefile
index c844d8e3cc92..303b05a4e943 100644
--- a/audio/Makefile
+++ b/audio/Makefile
@@ -518,6 +518,7 @@
     SUBDIR += ncpamixer
     SUBDIR += ncspot
     SUBDIR += netease-music-tui
+    SUBDIR += neuralrack-lv2
     SUBDIR += noise-repellent-lv2
     SUBDIR += noise-suppression-for-voice-lv2
     SUBDIR += normalize
diff --git a/audio/neuralrack-lv2/Makefile b/audio/neuralrack-lv2/Makefile
new file mode 100644
index 000000000000..0d24d4539a36
--- /dev/null
+++ b/audio/neuralrack-lv2/Makefile
@@ -0,0 +1,41 @@
+PORTNAME=	neuralrack
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.1.3
+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
+
+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:9775b74862e3c10d482b35b38ad74865b9afc75c:brummer10_libxputty/libxputty \
+		jatinchowdhury18:RTNeural:a8ae9c5af21cba309d06bce71a2008a9a13ab65b:jatinchowdhury18_RTNeural/RTNeural \
+			xtensor-stack:xsimd:a00c81f7b9e808a42aedcf7da2fbb1f9a636da34:xtensor_stack_xsimd/RTNeural/modules/xsimd \
+		sdatkinson:NeuralAmpModelerCore:e181f61efb8d05d34add45b5eecb3893ff21177c:sdatkinson_NeuralAmpModelerCore/NeuralAmpModelerCore \
+		HiFi-LoFi:FFTConvolver:f2cdeb04c42141d2caec19ca4f137398b2a76b85:HiFi_LoFi_FFTConvolver/FFTConvolver
+
+WRKSRC=		${WRKDIR}/NeuralRack-${PORTVERSION}
+
+MAKEFILE=	makefile
+
+CXXFLAGS+=	-I${WRKSRC}/RTNeural/modules/Eigen
+
+post-install:
+	@${REINPLACE_CMD} -i '' -e 's|Neuralrack|NeuralRack|' ${STAGEDIR}${PREFIX}/lib/lv2/NeuralRack.lv2/*.ttl
+
+.include <bsd.port.mk>
diff --git a/audio/neuralrack-lv2/distinfo b/audio/neuralrack-lv2/distinfo
new file mode 100644
index 000000000000..02e3309bceb7
--- /dev/null
+++ b/audio/neuralrack-lv2/distinfo
@@ -0,0 +1,13 @@
+TIMESTAMP = 1743015953
+SHA256 (brummer10-neuralrack-v0.1.3_GH0.tar.gz) = a2597483165805b073243bfb6aac37715e0181d42e4407a8323580720f62e3ab
+SIZE (brummer10-neuralrack-v0.1.3_GH0.tar.gz) = 630632
+SHA256 (brummer10-libxputty-9775b74862e3c10d482b35b38ad74865b9afc75c_GH0.tar.gz) = ad8cdf0dcbac1372664b301b481f31d84166f2e5bd0e08e67b32595e7a135584
+SIZE (brummer10-libxputty-9775b74862e3c10d482b35b38ad74865b9afc75c_GH0.tar.gz) = 577796
+SHA256 (jatinchowdhury18-RTNeural-a8ae9c5af21cba309d06bce71a2008a9a13ab65b_GH0.tar.gz) = 63aa3b252fb1d24dd55563f3f3d854f66e6aeb39c41ff8280f297bfb2d0c8bf8
+SIZE (jatinchowdhury18-RTNeural-a8ae9c5af21cba309d06bce71a2008a9a13ab65b_GH0.tar.gz) = 2494879
+SHA256 (xtensor-stack-xsimd-a00c81f7b9e808a42aedcf7da2fbb1f9a636da34_GH0.tar.gz) = f1c485107ae0b29069a88bf9619d2d93eaed8321ae03a83d7fc437da85d5b9fd
+SIZE (xtensor-stack-xsimd-a00c81f7b9e808a42aedcf7da2fbb1f9a636da34_GH0.tar.gz) = 217905
+SHA256 (sdatkinson-NeuralAmpModelerCore-e181f61efb8d05d34add45b5eecb3893ff21177c_GH0.tar.gz) = e732c6e204597d4059aa01f5f416034383dac13d26859b97ef4b97ba0cb3ab39
+SIZE (sdatkinson-NeuralAmpModelerCore-e181f61efb8d05d34add45b5eecb3893ff21177c_GH0.tar.gz) = 161453
+SHA256 (HiFi-LoFi-FFTConvolver-f2cdeb04c42141d2caec19ca4f137398b2a76b85_GH0.tar.gz) = 38c7c4d9d2973f80df152993eda871c8ffaf886f9d7185301a890f3f656142a2
+SIZE (HiFi-LoFi-FFTConvolver-f2cdeb04c42141d2caec19ca4f137398b2a76b85_GH0.tar.gz) = 14537
diff --git a/audio/neuralrack-lv2/files/patch-NeuralRack_makefile b/audio/neuralrack-lv2/files/patch-NeuralRack_makefile
new file mode 100644
index 000000000000..cac1717fe2b6
--- /dev/null
+++ b/audio/neuralrack-lv2/files/patch-NeuralRack_makefile
@@ -0,0 +1,57 @@
+--- NeuralRack/makefile.orig	2025-03-26 15:38:12 UTC
++++ NeuralRack/makefile
+@@ -2,14 +2,14 @@
+ 	# 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/')
+ 	# 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
++	ifneq ($(DESTDIR),)
++	INSTALL_DIR = $(PREFIX)/lib/lv2
++	EXE_INSTALL_DIR = $(PREFIX)/bin
+ 	else 
+ 	INSTALL_DIR = ~/.lv2
+ 	EXE_INSTALL_DIR = ~/bin
+@@ -30,9 +30,6 @@ ifeq ($(TARGET), Linux)
+ # check if clang is available
+ ifeq ($(TARGET), Linux)
+   CXX_VERSION = $(shell clang++ --version 2>/dev/null)
+-  ifneq ($(CXX_VERSION),)
+-    CXX := clang++    
+-  endif
+ endif
+ 
+ # get flags supported by CPU
+@@ -142,7 +139,7 @@ endif
+ 
+ 	NAME = NeuralRack
+ 	space := $(subst ,, )
+-	EXEC_NAME := Neuralrack
++	EXEC_NAME := NeuralRack
+ 	BUNDLE = $(EXEC_NAME).lv2
+ 	LIB_DIR := ../libxputty/libxputty/
+ 	HEADER_DIR := $(LIB_DIR)include/
+@@ -438,13 +435,13 @@ 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)
+ 
+-  ifeq ($(user),root)
++  #ifeq ($(user),root)
+ 	$(QUIET)mkdir -p $(DESTDIR)$(DESKAPPS_DIR)
+ 	$(QUIET)cp $(STANDALONE_DIR)$(EXEC_NAME).desktop $(DESTDIR)$(DESKAPPS_DIR)$(EXEC_NAME).desktop
+ 	$(QUIET)mkdir -p $(DESTDIR)$(PIXMAPS_DIR)
+ 	$(QUIET)cp $(STANDALONE_DIR)$(EXEC_NAME).svg $(DESTDIR)$(PIXMAPS_DIR)$(EXEC_NAME).svg 
+-	$(QUIET)update-desktop-database || true
+-  endif
++	#$(QUIET)update-desktop-database || true
++  #endif
+ 	@$(B_ECHO) ". ., done$(reset)"
+ else
+ 	@$(B_ECHO) "$(EXEC_NAME)$(EXE_EXT) standalone skipped$(reset)"
diff --git a/audio/neuralrack-lv2/pkg-descr b/audio/neuralrack-lv2/pkg-descr
new file mode 100644
index 000000000000..58ee3751d101
--- /dev/null
+++ b/audio/neuralrack-lv2/pkg-descr
@@ -0,0 +1,16 @@
+NeuralRack is a Neural Model and Impulse Response File loader.
+
+It supports *.nam files with the Neural Amp Modeler engine, or *.json or .aidax
+files with the RTNeural engine.
+
+NeuralRack emulate a simple guitar effect chain with a pedal, a EQ a Amplifier
+and a Stereo Cabinet.
+
+Optional, NeuralRack could run the complete process in buffered mode to reduce
+the dsp load. The resulting latency will be reported to the host so that it
+could be compensated. For information the resulting latency will be shown on
+the GUI.
+
+NeuralRack supports resampling when needed to match the expected sample rate of
+the loaded models. Both models and the IR Files may have different expectations
+regarding the sample rate.
diff --git a/audio/neuralrack-lv2/pkg-plist b/audio/neuralrack-lv2/pkg-plist
new file mode 100644
index 000000000000..38d9c78977dc
--- /dev/null
+++ b/audio/neuralrack-lv2/pkg-plist
@@ -0,0 +1,7 @@
+bin/NeuralRack
+lib/lv2/NeuralRack.lv2/NeuralRack.so
+lib/lv2/NeuralRack.lv2/NeuralRack.ttl
+lib/lv2/NeuralRack.lv2/NeuralRack_ui.so
+lib/lv2/NeuralRack.lv2/manifest.ttl
+share/applications/NeuralRack.desktop
+share/pixmaps/NeuralRack.svg