aboutsummaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorultima <ultima@FreeBSD.org>2017-08-21 15:02:57 +0800
committerultima <ultima@FreeBSD.org>2017-08-21 15:02:57 +0800
commit869c0314348746e80d5d721b03e64dbba6ec1b3b (patch)
tree48c367789fac5c68d85f7b8e53b114ad4dc6d7b0 /audio
parent33f61d7ab525383c5da3c9e262b243b7c02cd413 (diff)
downloadfreebsd-ports-gnome-869c0314348746e80d5d721b03e64dbba6ec1b3b.tar.gz
freebsd-ports-gnome-869c0314348746e80d5d721b03e64dbba6ec1b3b.tar.zst
freebsd-ports-gnome-869c0314348746e80d5d721b03e64dbba6ec1b3b.zip
Synthpod is an LV2 host. It can be run as a standalone app and be used as a
tool for live performances or general audio and event filtering. It was conceptualized to fill the gap between pure textual (e.g. SuperCollider) and pure visual flow (e.g. Pure Data) audio programming paradigms. Potential fields of application may include: * Live audio synthesis * Real-time event scripting * Non-linear signal routing * Advanced control automation * Advanced event filtering * Live mixing * Live coding * Algorithmic composition * Interfacing to expressive controllers WWW: https://open-music-kontrollers.ch/lv2/synthpod PR: 221319 Submitted by: Yuri Victorovich (maintainer) Reviewed by: matthew (mentor) Approved by: matthew (mentor) Differential Revision: https://reviews.freebsd.org/D12094
Diffstat (limited to 'audio')
-rw-r--r--audio/Makefile1
-rw-r--r--audio/synthpod-lv2/Makefile82
-rw-r--r--audio/synthpod-lv2/distinfo3
-rw-r--r--audio/synthpod-lv2/files/patch-CMakeLists.txt39
-rw-r--r--audio/synthpod-lv2/pkg-descr18
-rw-r--r--audio/synthpod-lv2/pkg-message16
-rw-r--r--audio/synthpod-lv2/pkg-plist47
7 files changed, 206 insertions, 0 deletions
diff --git a/audio/Makefile b/audio/Makefile
index 93cd1570a3d2..6083759a291a 100644
--- a/audio/Makefile
+++ b/audio/Makefile
@@ -770,6 +770,7 @@
SUBDIR += sweep
SUBDIR += swh-lv2
SUBDIR += swhplugins
+ SUBDIR += synthpod-lv2
SUBDIR += taglib
SUBDIR += taglib-extras
SUBDIR += taglib-sharp
diff --git a/audio/synthpod-lv2/Makefile b/audio/synthpod-lv2/Makefile
new file mode 100644
index 000000000000..4d25533b5903
--- /dev/null
+++ b/audio/synthpod-lv2/Makefile
@@ -0,0 +1,82 @@
+# Created by: Yuri Victorovich <yuri@rawbw.com>
+# $FreeBSD$
+
+PORTNAME= synthpod
+PORTVERSION= g20170810
+CATEGORIES= audio
+PKGNAMESUFFIX= -lv2
+
+MAINTAINER= yuri@rawbw.com
+COMMENT= Lightweight Nonlinear LV2 Plugin Container
+
+LICENSE= ART20
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+BUILD_DEPENDS= lv2>0:audio/lv2
+LIB_DEPENDS= liblilv-0.so:audio/lilv \
+ libserd-0.so:devel/serd \
+ libsord-0.so:devel/sord \
+ libsratom-0.so:audio/sratom
+
+USES= cmake compiler:c++11-lib pkgconfig localbase
+USE_GITHUB= yes
+GH_ACCOUNT= OpenMusicKontrollers
+GH_TAGNAME= 07cae54
+USE_CXXSTD= c++11
+
+CMAKE_ARGS= -DBUILD_ALSA="OFF"
+
+OPTIONS_DEFINE= JACK DUMMY DOT
+OPTIONS_DEFAULT=JACK X11 SHOW KX
+OPTIONS_GROUP= UI
+OPTIONS_GROUP_UI= X11 GTK2 GTK3 QT4 QT5 SHOW KX
+OPTIONS_SUB= yes
+
+DUMMY_DESC= Build DUMMY standalone host
+DOT_DESC= Build Dot exporter
+KX_DESC= Build external-ui sandbox
+JACK_DESC= Build JACK standalone host
+X11_DESC= Build X11 sandbox
+GTK2_DESC= Build GTK-2 sandbox
+GTK3_DESC= Build GTK-3 sandbox
+QT4_DESC= Build Qt-4 sandbox
+QT5_DESC= Build Qt-5 sandbox
+SHOW_DESC= Build show-iface sandbox
+
+DOT_CMAKE_ON= -DBUILD_DOT="ON"
+DUMMY_CMAKE_ON= -DBUILD_DUMMY="ON"
+DUMMY_LIB_DEPENDS= libuv.so:devel/libuv
+GTK2_CMAKE_ON= -DBUILD_UI="ON" -DBUILD_SANDBOX_GTK2="ON"
+GTK2_LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
+ libfreetype.so:print/freetype2
+GTK2_USE= XORG=x11,xcb,xext GL=gl,glu GNOME=glib20,gtk20,gdkpixbuf2,atk,cairo,pango gettext-runtime
+GTK3_CMAKE_ON= -DBUILD_UI="ON" -DBUILD_SANDBOX_GTK3="ON"
+GTK3_USE= XORG=x11,xcb,xext GL=glu GNOME=glib20,gtk30,gdkpixbuf2,atk,cairo,pango gettext-runtime
+JACK_LIB_DEPENDS= libjack.so:audio/jack \
+ libuv.so:devel/libuv
+JACK_CMAKE_OFF= -DBUILD_JACK="OFF"
+KX_CMAKE_ON= -DBUILD_UI="ON" -DBUILD_SANDBOX_KX="ON"
+KX_USE= XORG=x11,xcb,xext GL=glu
+QT4_CMAKE_ON= -DBUILD_UI="ON" -DBUILD_SANDBOX_QT4="ON"
+QT4_USE= XORG=x11,xcb,xext GL=glu QT4=corelib,gui
+QT5_BROKEN= Build fails: https://github.com/OpenMusicKontrollers/synthpod/issues/10
+QT5_CMAKE_ON= -DBUILD_UI="ON" -DBUILD_SANDBOX_QT5="ON"
+QT5_USE= XORG=x11,xcb,xext GL=glu QT5=core,gui
+SHOW_USE= XORG=x11,xcb,xext GL=glu
+SHOW_CMAKE_ON= -DBUILD_UI="ON" -DBUILD_SANDBOX_SHOW="ON"
+X11_CMAKE_ON= -DBUILD_UI="ON" -DBUILD_SANDBOX_X11="ON"
+X11_LIB_DEPENDS= libxcb-icccm.so:x11/xcb-util-wm
+X11_USE= XORG=x11,xcb,xext GL=gl,glu
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MX11} || ${PORT_OPTIONS:MGTK2} || ${PORT_OPTIONS:MGTK3} || ${PORT_OPTIONS:MQT4} || ${PORT_OPTIONS:MQT5} || ${PORT_OPTIONS:MSHOW} || ${PORT_OPTIONS:MKX}
+PLIST_SUB+= UI=""
+.else
+PLIST_SUB+= UI="@comment "
+.endif
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|share/man|man|' ${WRKSRC}/bin/CMakeLists.txt
+
+.include <bsd.port.mk>
diff --git a/audio/synthpod-lv2/distinfo b/audio/synthpod-lv2/distinfo
new file mode 100644
index 000000000000..ea65f202295f
--- /dev/null
+++ b/audio/synthpod-lv2/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1503280076
+SHA256 (OpenMusicKontrollers-synthpod-g20170810-07cae54_GH0.tar.gz) = 319dc6ababcf867cd7ae628931b1c99fba842d634245675ac600d611a4df362d
+SIZE (OpenMusicKontrollers-synthpod-g20170810-07cae54_GH0.tar.gz) = 2336518
diff --git a/audio/synthpod-lv2/files/patch-CMakeLists.txt b/audio/synthpod-lv2/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..a3efaee39e34
--- /dev/null
+++ b/audio/synthpod-lv2/files/patch-CMakeLists.txt
@@ -0,0 +1,39 @@
+--- CMakeLists.txt.orig 2017-08-06 12:24:04 UTC
++++ CMakeLists.txt
+@@ -34,6 +34,15 @@ include_directories(${PROJECT_SOURCE_DIR
+ include_directories(${PROJECT_SOURCE_DIR}/zero_worker.lv2)
+ include_directories(${PROJECT_SOURCE_DIR}/zero_writer.lv2)
+
++# FreeBSD: clock_nanosleep was missing and was added to 11-STABLE in r317618
++CHECK_FUNCTION_EXISTS(clock_nanosleep HAVE_CLOCK_NANOSLEEP_FUNCTION)
++if(${HAVE_CLOCK_NANOSLEEP_FUNCTION})
++ MESSAGE("-- FreeBSD: clock_nanosleep exists")
++else()
++ MESSAGE("-- FreeBSD: clock_nanosleep DOES NOT EXIST and will be replaced with nanosleep")
++ execute_process(COMMAND sed -i'.bak' -E "s|clock_nanosleep\\\(CLOCK_[A-Z]+, TIMER_ABSTIME, |nanosleep\\\(|" bin/synthpod_dummy.c bin/synthpod_sandbox_show.c bin/synthpod_sandbox_kx.c)
++endif()
++
+ set(SYNTHPOD_BIN_DIR "bin")
+ add_definitions("-DSYNTHPOD_BIN_DIR=\"${CMAKE_INSTALL_PREFIX}/${SYNTHPOD_BIN_DIR}/\"")
+
+@@ -92,16 +101,16 @@ option(BUILD_DUMMY "Build DUMMY standalo
+
+ option(BUILD_DOT "Build Dot exporter" OFF)
+
+-option(BUILD_UI "Build graphical user interface(s)" ON)
++option(BUILD_UI "Build graphical user interface(s)" OFF)
+
+ include(CMakeDependentOption)
+-cmake_dependent_option(BUILD_SANDBOX_X11 "Build X11 sandbox" ON "BUILD_UI" OFF)
++cmake_dependent_option(BUILD_SANDBOX_X11 "Build X11 sandbox" OFF "BUILD_UI" OFF)
+ cmake_dependent_option(BUILD_SANDBOX_GTK2 "Build GTK-2 sandbox" OFF "BUILD_UI" OFF)
+ cmake_dependent_option(BUILD_SANDBOX_GTK3 "Build GTK-3 sandbox" OFF "BUILD_UI" OFF)
+ cmake_dependent_option(BUILD_SANDBOX_QT4 "Build Qt-4 sandbox" OFF "BUILD_UI" OFF)
+ cmake_dependent_option(BUILD_SANDBOX_QT5 "Build Qt-5 sandbox" OFF "BUILD_UI" OFF)
+-cmake_dependent_option(BUILD_SANDBOX_SHOW "Build show-iface sandbox" ON "BUILD_UI" OFF)
+-cmake_dependent_option(BUILD_SANDBOX_KX "Build external-ui sandbox" ON "BUILD_UI" OFF)
++cmake_dependent_option(BUILD_SANDBOX_SHOW "Build show-iface sandbox" OFF "BUILD_UI" OFF)
++cmake_dependent_option(BUILD_SANDBOX_KX "Build external-ui sandbox" OFF "BUILD_UI" OFF)
+
+ if(BUILD_SANDBOX_X11)
+ add_definitions("-DSANDBOX_X11")
diff --git a/audio/synthpod-lv2/pkg-descr b/audio/synthpod-lv2/pkg-descr
new file mode 100644
index 000000000000..59c8b40ffc48
--- /dev/null
+++ b/audio/synthpod-lv2/pkg-descr
@@ -0,0 +1,18 @@
+Synthpod is an LV2 host. It can be run as a standalone app and be used as a
+tool for live performances or general audio and event filtering.
+
+It was conceptualized to fill the gap between pure textual (e.g. SuperCollider)
+and pure visual flow (e.g. Pure Data) audio programming paradigms.
+
+Potential fields of application may include:
+* Live audio synthesis
+* Real-time event scripting
+* Non-linear signal routing
+* Advanced control automation
+* Advanced event filtering
+* Live mixing
+* Live coding
+* Algorithmic composition
+* Interfacing to expressive controllers
+
+WWW: https://open-music-kontrollers.ch/lv2/synthpod
diff --git a/audio/synthpod-lv2/pkg-message b/audio/synthpod-lv2/pkg-message
new file mode 100644
index 000000000000..ec941a7a4644
--- /dev/null
+++ b/audio/synthpod-lv2/pkg-message
@@ -0,0 +1,16 @@
+======================================================================
+You installed SynthPod: Lightweight Nonlinear LV2 Plugin Container
+
+The major way to run it is to plug the LV2 plugin container to the
+Jack sound server:
+
+$ synthpod_jack -g
+
+This shows you the design window where you can arrange plugins to
+achieve the topology you like.
+
+Please don't forget to connect SynthPod input and output in Jack. You
+can normally do this with the UI command qjackctl from audio/qjackctl.
+
+SynthPod is currently in alpha stage.
+======================================================================
diff --git a/audio/synthpod-lv2/pkg-plist b/audio/synthpod-lv2/pkg-plist
new file mode 100644
index 000000000000..e4f7a51624a2
--- /dev/null
+++ b/audio/synthpod-lv2/pkg-plist
@@ -0,0 +1,47 @@
+%%DUMMY%%bin/synthpod_dummy
+%%DOT%%bin/synthpod_dot
+%%JACK%%bin/synthpod_jack
+%%X11%%bin/synthpod_sandbox_x11
+%%GTK2%%bin/synthpod_sandbox_gtk2
+%%GTK3%%bin/synthpod_sandbox_gtk3
+%%QT4%%bin/synthpod_sandbox_qt4
+%%QT5%%bin/synthpod_sandbox_qt5
+%%SHOW%%bin/synthpod_sandbox_show
+%%KX%%bin/synthpod_sandbox_kx
+%%X11%%bin/synthpod_ui
+%%UI%%lib/lv2/synthpod.lv2/Abel-Regular.ttf
+%%UI%%lib/lv2/synthpod.lv2/synthpod_nk.so
+lib/lv2/synthpod.lv2/manifest.ttl
+lib/lv2/synthpod.lv2/synthpod.so
+lib/lv2/synthpod.lv2/synthpod.ttl
+lib/lv2/synthpod.lv2/synthpod_ui.ttl
+lib/synthpod/lv2/manifest.ttl
+lib/synthpod/lv2/synthpod_bundle.so
+lib/synthpod/lv2/synthpod_bundle.ttl
+%%DUMMY%%share/applications/synthpod_dummy.desktop
+%%JACK%%share/applications/synthpod_jack.desktop
+%%JACK%%share/icons/hicolor/256x256/apps/synthpod.png
+%%DUMMY%%man/man1/synthpod_dummy.1.gz
+%%JACK%%man/man1/synthpod_jack.1.gz
+%%X11%%man/man1/synthpod_sandbox.1.gz
+%%DATADIR%%/atom.png
+%%DATADIR%%/atom_inverted.png
+%%DATADIR%%/audio.png
+%%DATADIR%%/automaton.png
+%%DATADIR%%/cancel.png
+%%DATADIR%%/control.png
+%%DATADIR%%/cv.png
+%%DATADIR%%/download.png
+%%DATADIR%%/event.png
+%%DATADIR%%/event_inverted.png
+%%DATADIR%%/house.png
+%%DATADIR%%/layers.png
+%%DATADIR%%/menu.png
+%%DATADIR%%/midi.png
+%%DATADIR%%/osc.png
+%%DATADIR%%/patch.png
+%%DATADIR%%/plus.png
+%%DATADIR%%/settings.png
+%%DATADIR%%/time.png
+%%DATADIR%%/user.png
+%%DATADIR%%/xpress.png