aboutsummaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2018-07-09 08:58:36 +0100
committerDavid Spencer <idlemoor@slackbuilds.org>2018-07-09 08:58:36 +0100
commit0101a2a22a15762b8fd9dbfaaa60655ea3da96c2 (patch)
tree1d8d0c9dafd319934905c3e3c73bd5403bde53bd /audio
parent3b015fee6acefa6c23ada34455b14febff0f921b (diff)
audio/unsf: Added (convert .sf2 files to GUS-type patches).
Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
Diffstat (limited to 'audio')
-rw-r--r--audio/unsf/README21
-rw-r--r--audio/unsf/git2targz.sh51
-rw-r--r--audio/unsf/slack-desc19
-rw-r--r--audio/unsf/unsf.SlackBuild90
-rw-r--r--audio/unsf/unsf.info10
5 files changed, 191 insertions, 0 deletions
diff --git a/audio/unsf/README b/audio/unsf/README
new file mode 100644
index 000000000000..38c97db2a373
--- /dev/null
+++ b/audio/unsf/README
@@ -0,0 +1,21 @@
+unsf (converts SoundFont .sf2 files into GUS-type instrument patches)
+
+UnSF is a tool to convert SoundFont (sf2) files into GUS patches. libunsf
+is a library that is used by UnSF.
+
+Some reasons you might want to do such a thing are:
+
+ - Your MIDI player can use GUS patches but doesn't know how to read
+ soundfonts.
+
+ - You want a convenient way of substituting patches or reassigning
+ banks of instruments by editing GUS config files.
+
+ - You need to modify patches by changing amplitude, stripping
+ envelopes, or make other changes that can easily be done by attaching
+ options in config files.
+
+Note: the set of patches created by unsf will be quite a bit larger
+that the original .sf2 file. As an example, FluidR3_GM.sf2 (from
+fluid-soundfont) is a 142MB file, and it converts to almost 2GB of patches
+(size increased by a factor of 13.5).
diff --git a/audio/unsf/git2targz.sh b/audio/unsf/git2targz.sh
new file mode 100644
index 000000000000..5ef1cd911073
--- /dev/null
+++ b/audio/unsf/git2targz.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+# Create source tarball from unsf git repo, with generated version
+# number. We don't include the git history in the tarball.
+
+# Note that this script doesn't need to be run as root. It does
+# need to be able to write to the current directory it's run from.
+
+PRGNAM=unsf
+CLONE_URL=https://github.com/psi29a/$PRGNAM.git
+
+# Last released version. Normally we'd use a git tag for this, but
+# upstream mentions a version 1.1 in their README... and there's no
+# 1.1 release tag!
+RELVER=1.1
+
+set -e
+
+GITDIR=$( mktemp -dt $PRGNAM.git.XXXXXX )
+rm -rf $GITDIR
+git clone $CLONE_URL $GITDIR
+
+CWD="$( pwd )"
+cd $GITDIR
+
+# Extract date from last entry in git log. git has so many useful
+# options that it's a PITA to find the one you need...
+DATE=$( git log --date=format:%Y%m%d --pretty=format:%cd -n1 )
+
+VERSION=${RELVER}+git$DATE
+
+rm -rf .git
+find . -name .gitignore -print0 | xargs -0 rm -f
+
+cd "$CWD"
+rm -rf $PRGNAM-$VERSION $PRGNAM-$VERSION.tar.xz
+mv $GITDIR $PRGNAM-$VERSION
+tar cvfJ $PRGNAM-$VERSION.tar.xz $PRGNAM-$VERSION
+
+cat <<EOF
+
+Archive created: $PRGNAM-$VERSION.tar.xz
+
+Update $PRGNAM.info with:
+
+VERSION="$VERSION"
+DOWNLOAD="http://urchlay.naptime.net/~urchlay/src/$PRGNAM-$VERSION.tar.xz"
+MD5SUM="$( md5sum $PRGNAM-$VERSION.tar.xz | cut -d' ' -f1 )"
+
+Don't forget to upload the new source!
+EOF
diff --git a/audio/unsf/slack-desc b/audio/unsf/slack-desc
new file mode 100644
index 000000000000..4c25cec3b0bb
--- /dev/null
+++ b/audio/unsf/slack-desc
@@ -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------------------------------------------------------|
+unsf: unsf (converts SoundFont .sf2 files into GUS-type instrument patches)
+unsf:
+unsf: UnSF is a tool to convert SoundFont (sf2) files into GUS
+unsf: patches. libunsf is a library that is used by UnSF.
+unsf:
+unsf:
+unsf:
+unsf:
+unsf:
+unsf:
+unsf:
diff --git a/audio/unsf/unsf.SlackBuild b/audio/unsf/unsf.SlackBuild
new file mode 100644
index 000000000000..37a428c7531b
--- /dev/null
+++ b/audio/unsf/unsf.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for unsf
+
+# Written by B. Watson (yalhcru@gmail.com)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+# Upstream hasn't done a proper release since 1.0, we use latest git.
+# Use git2targz.sh to prepare source tarballs, when it's time to update.
+
+PRGNAM=unsf
+VERSION=${VERSION:-1.1+git20180608}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -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 $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
+cd $PRGNAM-$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 {} \+
+
+# upstream forgot to create include/ in the src, revisit this later.
+sed -i 's#include/\(libunsf\.h\)#\1#' CMakeLists.txt
+
+mkdir -p build
+cd build
+ cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} \
+ -DMAN_INSTALL_DIR=/usr/man \
+ -DCMAKE_BUILD_TYPE=Release ..
+ make
+ make install/strip DESTDIR=$PKG
+cd ..
+
+# don't see a way to get cmake to skip the static lib/exe.
+rm -f $PKG/usr/bin/$PRGNAM-static $PKG/usr/lib$LIBDIRSUFFIX/*.a
+
+# install doesn't install the man page...
+mkdir -p $PKG/usr/man/man1/
+gzip -9c < $PRGNAM.1 > $PKG/usr/man/man1/$PRGNAM.1.gz
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a README* LICENSE $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}
diff --git a/audio/unsf/unsf.info b/audio/unsf/unsf.info
new file mode 100644
index 000000000000..b8f7b8e75cb4
--- /dev/null
+++ b/audio/unsf/unsf.info
@@ -0,0 +1,10 @@
+PRGNAM="unsf"
+VERSION="1.1+git20180608"
+HOMEPAGE="https://github.com/psi29a/unsf"
+DOWNLOAD="http://urchlay.naptime.net/~urchlay/src/unsf-1.1+git20180608.tar.xz"
+MD5SUM="936232090224001eda5248f927f02618"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="B. Watson"
+EMAIL="yalhcru@gmail.com"