Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 10 Jul 2021 18:54:10 GMT
From:      Yuri Victorovich <yuri@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 5ac0ca9320dd - main - audio/jmatconvol: New port: Real-time convolution engine for dense matrix of short convolutions
Message-ID:  <202107101854.16AIsAGu020876@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by yuri:

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

commit 5ac0ca9320ddfd8175260577ba5e1231e42cf6fa
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2021-07-10 18:36:38 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2021-07-10 18:54:05 +0000

    audio/jmatconvol: New port: Real-time convolution engine for dense matrix of short convolutions
---
 audio/Makefile                        |  1 +
 audio/jmatconvol/Makefile             | 29 +++++++++++++++++++++++++++++
 audio/jmatconvol/distinfo             |  3 +++
 audio/jmatconvol/files/patch-Makefile | 11 +++++++++++
 audio/jmatconvol/pkg-descr            | 20 ++++++++++++++++++++
 5 files changed, 64 insertions(+)

diff --git a/audio/Makefile b/audio/Makefile
index 645b60f4f504..d3b427a3c3c0 100644
--- a/audio/Makefile
+++ b/audio/Makefile
@@ -329,6 +329,7 @@
     SUBDIR += jamulus
     SUBDIR += jconvolver
     SUBDIR += jid3lib
+    SUBDIR += jmatconvol
     SUBDIR += juk
     SUBDIR += juke
     SUBDIR += julius
diff --git a/audio/jmatconvol/Makefile b/audio/jmatconvol/Makefile
new file mode 100644
index 000000000000..6265a7eca5cf
--- /dev/null
+++ b/audio/jmatconvol/Makefile
@@ -0,0 +1,29 @@
+PORTNAME=	jmatconvol
+DISTVERSION=	0.4.2
+CATEGORIES=	audio
+MASTER_SITES=	https://kokkinizita.linuxaudio.org/linuxaudio/downloads/
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Real-time convolution engine for dense matrix of short convolutions
+
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/../COPYING
+
+LIB_DEPENDS=	libfftw3.so:math/fftw3 \
+		libfftw3f.so:math/fftw3-float \
+		libjack.so:audio/jack \
+		libsndfile.so:audio/libsndfile
+
+USES=		gmake localbase:ldflags tar:bz2
+
+WRKSRC_SUBDIR=	source
+
+EXES=		bin/fmatconvol \
+		bin/jmatconvol
+
+PLIST_FILES=	${EXES}
+
+post-install:
+	@cd ${STAGEDIR}${PREFIX} && ${STRIP_CMD} ${EXES}
+
+.include <bsd.port.mk>
diff --git a/audio/jmatconvol/distinfo b/audio/jmatconvol/distinfo
new file mode 100644
index 000000000000..f6a2b52e70f8
--- /dev/null
+++ b/audio/jmatconvol/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1625894239
+SHA256 (jmatconvol-0.4.2.tar.bz2) = 975ffed85a5c322a5223cd863e58fa8bb4ed772ebaab092739ed8cf074e61cfc
+SIZE (jmatconvol-0.4.2.tar.bz2) = 5293502
diff --git a/audio/jmatconvol/files/patch-Makefile b/audio/jmatconvol/files/patch-Makefile
new file mode 100644
index 000000000000..ea77e9d70735
--- /dev/null
+++ b/audio/jmatconvol/files/patch-Makefile
@@ -0,0 +1,11 @@
+--- Makefile.orig	2021-07-10 05:36:02 UTC
++++ Makefile
+@@ -24,7 +24,7 @@ BINDIR ?= $(PREFIX)/bin
+ VERSION = 0.4.2
+ CPPFLAGS += -MMD -MP -DVERSION=\"$(VERSION)\"
+ CXXFLAGS += -O2 -Wall
+-CXXFLAGS += -march=native
++CXXFLAGS += ${FREEBSD_CXXFLAGS_SIMD}
+ LDLIBS += -lsndfile -lfftw3f -lfftw3 -lpthread
+ 
+ 
diff --git a/audio/jmatconvol/pkg-descr b/audio/jmatconvol/pkg-descr
new file mode 100644
index 000000000000..d5bbabdca567
--- /dev/null
+++ b/audio/jmatconvol/pkg-descr
@@ -0,0 +1,20 @@
+Jconvolver is a Convolution Engine for JACK, based on FFT convolution and using
+non-uniform partition sizes: small ones at the start of the IR and building up
+to the most efficient size further on. It can perform zero-delay processing with
+moderate CPU load. Jconvolver uses the convolution engine designed for Aella, a
+convolution application for reverberation processing (to be announced later).
+This distributes the calculation over up to five threads, one for each partition
+size, running at priorities just below the the one of JACK's processing thread.
+This engine is a separate library that will be documented as soon as I can find
+the time.
+
+Main features:
+* Any matrix of convolutions between up to up 64 inputs and 64 outputs, as long
+  as your CPU(s) can handle it.
+* Allows trading off CPU load to processing delay, and remains efficient even
+  when configured for zero delay.
+* Sparse and diagonal matrices are handled as efficiently as dense ones. No CPU
+  cycles or memory resources are wasted on empty cells in the matrix, nor on
+  empty partitions if IRs are of different length.
+`
+WWW: https://kokkinizita.linuxaudio.org/linuxaudio/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202107101854.16AIsAGu020876>