audio/jack2: Added (Jack Sound Server).

Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
This commit is contained in:
Yanes Checcacci Balod 2014-02-03 11:53:37 +01:00 committed by Erik Hanson
parent e1c0f254a9
commit b337ddfd01
4 changed files with 165 additions and 0 deletions

36
audio/jack2/README Normal file
View file

@ -0,0 +1,36 @@
jackdmp (aka JACK2) is a C++ version of the JACK low-latency audio
server for multi-processor machines. It is a new implementation
of the JACK server core features that aims in removing some
limitations of the JACK1 design. The activation system has been
changed for a data flow model and lock-free programming techniques
for graph access have been used to have a more dynamic and
robust system.
- jackdmp use a new client activation model that allows simultaneous
client execution (on a smp machine) when parallel clients exist
in the graph (client that have the same inputs). This activation model
allows to better use available CPU on a smp machine, but also works
on a mono-processor machine.
- jackdmp use a lock-free way to access (read/write) the client graph,
thus allowing connections/disconnection to be done without
interrupting the audio stream. The result is that
connections/disconnections are glitch-free.
- jackdmp can work in 2 different modes at the server level :
- synchronous activation : in a given cycle, the server waits for
all clients to be finished (similar to normal jackd)
- asynchronous activation : in a given cycle, the server does not
wait for all clients to be finished and use output buffer
computed the previous cycle.
The audible result of this mode is that if a client is not activated
during one cycle, other clients may still run and the resulting audio
stream will still be produced (even if its partial in some way).
This mode usually result in fewer (less audible) audio glitches in a
loaded system.
NOTE: this package conflicts with jack-audio-connection-kit: install
only one of the two.
Optional dependencies are celt, libffado and opus.

View file

@ -0,0 +1,100 @@
#!/bin/sh
# Slackware build script for jack2
# Copyright (c) 2014, Yanes Checcacci Balod <yanes@pobox.com>, Brazil
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=jack2
PRGNAMFILE=jack # for opening file! Don't change it !!!
VERSION=1.9.9.5
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAMFILE-$VERSION
tar xvjf $CWD/$PRGNAMFILE-$VERSION.tar.bz2
cd $PRGNAMFILE-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./waf configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--classic \
--profile \
--dbus \
--alsa
./waf build
./waf install --destdir=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

10
audio/jack2/jack2.info Normal file
View file

@ -0,0 +1,10 @@
PRGNAM="jack2"
VERSION="1.9.9.5"
HOMEPAGE="http://jackaudio.org"
DOWNLOAD="http://jackaudio.org/downloads/jack-1.9.9.5.tar.bz2"
MD5SUM="6c9de6b89db9d7076fa2ce222816cf4c"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="%README%"
MAINTAINER="Yanes Checcacci Balod"
EMAIL="yanes@pobox.com"

19
audio/jack2/slack-desc Normal file
View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
jack2: jack2 (Jack Sound Server)
jack2:
jack2: JACK is system for handling real-time, low latency audio (and MIDI).
jack2: It can connect a number of different applications to an audio device,
jack2: as well as allowing them to share audio between themselves.
jack2: Its clients can run in their own processes (ie. as normal apps), or
jack2: run in their own processes (ie. as normal applications), or can run
jack2: within the JACK server (ie. as a "plugin"). JACK also has support for
jack2: distributing audio processing across a network, both fast & reliable
jack2: LANs as well as slower, less reliable WANs.
jack2: