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>