Index: head/audio/Makefile =================================================================== --- head/audio/Makefile +++ head/audio/Makefile @@ -770,6 +770,7 @@ SUBDIR += sweep SUBDIR += swh-lv2 SUBDIR += swhplugins + SUBDIR += synthpod-lv2 SUBDIR += taglib SUBDIR += taglib-extras SUBDIR += taglib-sharp Index: head/audio/synthpod-lv2/Makefile =================================================================== --- head/audio/synthpod-lv2/Makefile +++ head/audio/synthpod-lv2/Makefile @@ -0,0 +1,82 @@ +# Created by: Yuri Victorovich +# $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 + +.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 Index: head/audio/synthpod-lv2/distinfo =================================================================== --- head/audio/synthpod-lv2/distinfo +++ head/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 Index: head/audio/synthpod-lv2/files/patch-CMakeLists.txt =================================================================== --- head/audio/synthpod-lv2/files/patch-CMakeLists.txt +++ head/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") Index: head/audio/synthpod-lv2/pkg-descr =================================================================== --- head/audio/synthpod-lv2/pkg-descr +++ head/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 Index: head/audio/synthpod-lv2/pkg-message =================================================================== --- head/audio/synthpod-lv2/pkg-message +++ head/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. +====================================================================== Index: head/audio/synthpod-lv2/pkg-plist =================================================================== --- head/audio/synthpod-lv2/pkg-plist +++ head/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