diff options
author | B. Watson <yalhcru@gmail.com> | 2018-07-09 08:58:36 +0100 |
---|---|---|
committer | David Spencer <idlemoor@slackbuilds.org> | 2018-07-09 08:58:36 +0100 |
commit | 0101a2a22a15762b8fd9dbfaaa60655ea3da96c2 (patch) | |
tree | 1d8d0c9dafd319934905c3e3c73bd5403bde53bd | |
parent | 3b015fee6acefa6c23ada34455b14febff0f921b (diff) | |
download | slackbuilds-0101a2a22a15762b8fd9dbfaaa60655ea3da96c2.tar.gz |
audio/unsf: Added (convert .sf2 files to GUS-type patches).
Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
-rw-r--r-- | audio/unsf/README | 21 | ||||
-rw-r--r-- | audio/unsf/git2targz.sh | 51 | ||||
-rw-r--r-- | audio/unsf/slack-desc | 19 | ||||
-rw-r--r-- | audio/unsf/unsf.SlackBuild | 90 | ||||
-rw-r--r-- | audio/unsf/unsf.info | 10 |
5 files changed, 191 insertions, 0 deletions
diff --git a/audio/unsf/README b/audio/unsf/README new file mode 100644 index 0000000000..38c97db2a3 --- /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 0000000000..5ef1cd9110 --- /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 0000000000..4c25cec3b0 --- /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 0000000000..37a428c753 --- /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 0000000000..b8f7b8e75c --- /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" |