Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 10 Jul 2021 18:54:09 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: 1cdb3592ba72 - main - audio/jconvolver: New port: Real-time convolution engine
Message-ID:  <202107101854.16AIs9JE020851@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=1cdb3592ba7250c8bccdf2f8cd26da768edb9fc0

commit 1cdb3592ba7250c8bccdf2f8cd26da768edb9fc0
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2021-07-10 18:33:32 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2021-07-10 18:54:04 +0000

    audio/jconvolver: New port: Real-time convolution engine
---
 audio/Makefile                        |  1 +
 audio/jconvolver/Makefile             | 31 +++++++++++++++++++++++++++++++
 audio/jconvolver/distinfo             |  3 +++
 audio/jconvolver/files/patch-Makefile | 11 +++++++++++
 audio/jconvolver/pkg-descr            | 20 ++++++++++++++++++++
 5 files changed, 66 insertions(+)

diff --git a/audio/Makefile b/audio/Makefile
index f56d1f60d3d5..645b60f4f504 100644
--- a/audio/Makefile
+++ b/audio/Makefile
@@ -327,6 +327,7 @@
     SUBDIR += jalv
     SUBDIR += jalv-select
     SUBDIR += jamulus
+    SUBDIR += jconvolver
     SUBDIR += jid3lib
     SUBDIR += juk
     SUBDIR += juke
diff --git a/audio/jconvolver/Makefile b/audio/jconvolver/Makefile
new file mode 100644
index 000000000000..17128c215449
--- /dev/null
+++ b/audio/jconvolver/Makefile
@@ -0,0 +1,31 @@
+PORTNAME=	jconvolver
+DISTVERSION=	1.1.0
+CATEGORIES=	audio
+MASTER_SITES=	https://kokkinizita.linuxaudio.org/linuxaudio/downloads/
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Real-time convolution engine
+
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/../COPYING
+
+LIB_DEPENDS=	libclthreads.so:devel/clthreads \
+		libfftw3f.so:math/fftw3-float \
+		libjack.so:audio/jack \
+		libsndfile.so:audio/libsndfile \
+		libzita-convolver.so:audio/zita-convolver
+
+USES=		gmake localbase:ldflags tar:bz2
+
+WRKSRC_SUBDIR=	source
+
+EXES=		bin/fconvolver \
+		bin/jconvolver \
+		bin/makemulti
+
+PLIST_FILES=	${EXES}
+
+post-install:
+	@cd ${STAGEDIR}${PREFIX} && ${STRIP_CMD} ${EXES}
+
+.include <bsd.port.mk>
diff --git a/audio/jconvolver/distinfo b/audio/jconvolver/distinfo
new file mode 100644
index 000000000000..4a46a8120589
--- /dev/null
+++ b/audio/jconvolver/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1625872660
+SHA256 (jconvolver-1.1.0.tar.bz2) = ac5a11372d7325929c86966c7d2288a9276e65c43b29a50017c37a5e660ed80d
+SIZE (jconvolver-1.1.0.tar.bz2) = 381046
diff --git a/audio/jconvolver/files/patch-Makefile b/audio/jconvolver/files/patch-Makefile
new file mode 100644
index 000000000000..8f6a79981cf2
--- /dev/null
+++ b/audio/jconvolver/files/patch-Makefile
@@ -0,0 +1,11 @@
+--- Makefile.orig	2021-07-10 18:18:12 UTC
++++ Makefile
+@@ -25,7 +25,7 @@ BINDIR ?= $(PREFIX)/bin
+ VERSION = 1.1.0
+ CPPFLAGS += -MMD -MP -DVERSION=\"$(VERSION)\"
+ CXXFLAGS += -O2 -Wall
+-CXXFLAGS += -march=native
++CXXFLAGS += ${FREEBSD_CXXFLAGS_SIMD}
+ 
+ 
+ all:	jconvolver fconvolver makemulti
diff --git a/audio/jconvolver/pkg-descr b/audio/jconvolver/pkg-descr
new file mode 100644
index 000000000000..d5bbabdca567
--- /dev/null
+++ b/audio/jconvolver/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.16AIs9JE020851>