git: c4e6e4751c3c - main - audio/ratatouille-lv2: New port: Neural model loader and mixer

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

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

commit c4e6e4751c3c46b949d47ee459db662745a201e7
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2025-03-27 05:45:35 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2025-03-27 06:52:48 +0000

    audio/ratatouille-lv2: New port: Neural model loader and mixer
---
 audio/Makefile                                     |  1 +
 audio/ratatouille-lv2/Makefile                     | 28 +++++++++++++++++++
 audio/ratatouille-lv2/distinfo                     |  3 ++
 .../files/patch-Ratatouille_makefile               | 32 ++++++++++++++++++++++
 audio/ratatouille-lv2/pkg-descr                    | 11 ++++++++
 audio/ratatouille-lv2/pkg-plist                    | 20 ++++++++++++++
 6 files changed, 95 insertions(+)

diff --git a/audio/Makefile b/audio/Makefile
index 303b05a4e943..c18a615ee8fd 100644
--- a/audio/Makefile
+++ b/audio/Makefile
@@ -686,6 +686,7 @@
     SUBDIR += qtractor
     SUBDIR += quimup
     SUBDIR += qxgedit
+    SUBDIR += ratatouille-lv2
     SUBDIR += raul
     SUBDIR += rawrec
     SUBDIR += re
diff --git a/audio/ratatouille-lv2/Makefile b/audio/ratatouille-lv2/Makefile
new file mode 100644
index 000000000000..a38c7b771420
--- /dev/null
+++ b/audio/ratatouille-lv2/Makefile
@@ -0,0 +1,28 @@
+PORTNAME=	ratatouille
+DISTVERSION=	0.9.10
+CATEGORIES=	audio
+MASTER_SITES=	https://github.com/brummer10/Ratatouille.lv2/releases/download/v${DISTVERSION}/
+PKGNAMESUFFIX=	-lv2
+DISTNAME=	Ratatouille.lv2-v${DISTVERSION}-src
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Neural model loader and mixer
+WWW=		https://github.com/brummer10/Ratatouille.lv2
+
+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 tar:xz xorg
+USE_GNOME=	cairo
+USE_XORG=	x11
+
+WRKSRC=		${WRKDIR}/Ratatouille.lv2-v${DISTVERSION}
+
+MAKEFILE=	makefile
+
+.include <bsd.port.mk>
diff --git a/audio/ratatouille-lv2/distinfo b/audio/ratatouille-lv2/distinfo
new file mode 100644
index 000000000000..577a3e77ab32
--- /dev/null
+++ b/audio/ratatouille-lv2/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1743052704
+SHA256 (Ratatouille.lv2-v0.9.10-src.tar.xz) = 524e13dfe75febeb6c30719c3fbd0a949cd700d9d03ea91035c96f4c385799f6
+SIZE (Ratatouille.lv2-v0.9.10-src.tar.xz) = 5222280
diff --git a/audio/ratatouille-lv2/files/patch-Ratatouille_makefile b/audio/ratatouille-lv2/files/patch-Ratatouille_makefile
new file mode 100644
index 000000000000..4b321b7e4c39
--- /dev/null
+++ b/audio/ratatouille-lv2/files/patch-Ratatouille_makefile
@@ -0,0 +1,32 @@
+--- Ratatouille/makefile.orig	2025-03-17 06:46:26 UTC
++++ Ratatouille/makefile
+@@ -7,9 +7,9 @@
+ 	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
+@@ -476,13 +476,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/ratatouille-lv2/pkg-descr b/audio/ratatouille-lv2/pkg-descr
new file mode 100644
index 000000000000..b4196d785b16
--- /dev/null
+++ b/audio/ratatouille-lv2/pkg-descr
@@ -0,0 +1,11 @@
+Ratatouille is a Neural Model loader and mixer for Linux/Windows.
+
+It can load two models, which can be *.nam files with the Neural Amp Modeler
+module, or *.json or .aidax files with the RTNeural module.
+
+You can also load just a single model file, in that case the "Blend" control
+will do nothing. When you've loaded a second model, the "Blend" control will
+blend between the two models and mix them to simulate your specific tone.
+
+Ratatouille using parallel processing for the neural models, so, loading a
+second neural model wouldn't be remarkable on the dsp load.
diff --git a/audio/ratatouille-lv2/pkg-plist b/audio/ratatouille-lv2/pkg-plist
new file mode 100644
index 000000000000..25eaf809ca7a
--- /dev/null
+++ b/audio/ratatouille-lv2/pkg-plist
@@ -0,0 +1,20 @@
+bin/Ratatouille
+lib/lv2/Ratatouille.lv2/Ratatouille.so
+lib/lv2/Ratatouille.lv2/Ratatouille.ttl
+lib/lv2/Ratatouille.lv2/Ratatouille_ui.so
+lib/lv2/Ratatouille.lv2/manifest.ttl
+lib/lv2/Ratatouille.lv2/modgui.ttl
+lib/lv2/Ratatouille.lv2/modgui/icon-ratatouille.html
+lib/lv2/Ratatouille.lv2/modgui/knobs/knob.png
+lib/lv2/Ratatouille.lv2/modgui/pedals/Ratatouille.png
+lib/lv2/Ratatouille.lv2/modgui/screenshot-ratatouille.png
+lib/lv2/Ratatouille.lv2/modgui/script-ratatouille.js
+lib/lv2/Ratatouille.lv2/modgui/stylesheet-ratatouille.css
+lib/lv2/Ratatouille.lv2/modgui/switches/eject.png
+lib/lv2/Ratatouille.lv2/modgui/switches/normalise.png
+lib/lv2/Ratatouille.lv2/modgui/switches/normalize.png
+lib/lv2/Ratatouille.lv2/modgui/switches/powerswitch.png
+lib/lv2/Ratatouille.lv2/modgui/switches/switch3.png
+lib/lv2/Ratatouille.lv2/modgui/thumbnail-ratatouille.png
+share/applications/Ratatouille.desktop
+share/pixmaps/Ratatouille.svg