aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2021-07-10 18:33:32 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2021-07-10 18:54:04 +0000
commit1cdb3592ba7250c8bccdf2f8cd26da768edb9fc0 (patch)
tree1ac88cedf76a01903ef08dc6f5895e940e2041ea
parent75380d06bc33604a7a1f7a4e7272a731ab09c09b (diff)
downloadports-1cdb3592ba7250c8bccdf2f8cd26da768edb9fc0.tar.gz
ports-1cdb3592ba7250c8bccdf2f8cd26da768edb9fc0.zip
audio/jconvolver: New port: Real-time convolution engine
-rw-r--r--audio/Makefile1
-rw-r--r--audio/jconvolver/Makefile31
-rw-r--r--audio/jconvolver/distinfo3
-rw-r--r--audio/jconvolver/files/patch-Makefile11
-rw-r--r--audio/jconvolver/pkg-descr20
5 files changed, 66 insertions, 0 deletions
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/