LADSPA

From CBLFS
Revision as of 22:38, 20 July 2009 by Tdshepard (talk | contribs) (LADSPA added as a New Package)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
Download Source: http://www.ladspa.org/download/ladspa_sdk_1.13.tgz

Introduction to LADSPA

LADSPA is the "Linux Audio Developer's Simple Programming API," whose goal is to provide a versatile audio plug-in capability similar to VST. It is deliberately designed to be extremely simple. As described on the project web site, "The 'S' in 'LADSPA' is meant seriously." The LADSPA development "framework" consists of just one C header file, plus the development tools you will build here.

Project Homepage: http://www.ladspa.org


Common Build Instructions

The build system is not autotools based. However, the makefile is so simple that you will probably want to simply edit and run the makefile manually.

Build the package

cd src
edit makefile
    INSTALL_PLUGINS_DIR = ...
    INSTALL_INCLUDE_DIR = ...
    INSTALL_BINARY_DIR = ...
make

Install the package

make install
create multiarch wrappers for all 3 binaries

Here is a script that automates this process, while also adding DESTDIR capability, which is missing in the original makefile:

cat > build.sh << "EOF"
: ${CLFS_LIB32:="lib"}
: ${CLFS_LIBN32:="lib32"}
: ${CLFS_LIB64:="lib64"}
: ${CLFS_LIB:="lib"}

eval CLFS_LIB='$'CLFS_LIB${USE_ARCH} &&
eval BUILD='$'BUILD${USE_ARCH} &&
eval LD_BUILD='$'LD_BUILD${USE_ARCH} &&

pushd src &&

if [ -e makefile-original ]; then

    make clean
    mv -f -v makefile-original makefile

fi

CLFS_LIB=${CLFS_LIB} \
sed -i-original \
    -e 's/$(INSTALL_PLUGINS_DIR)/$(DESTDIR)$(INSTALL_PLUGINS_DIR)/g' \
    -e 's/$(INSTALL_INCLUDE_DIR)/$(DESTDIR)$(INSTALL_INCLUDE_DIR)/g' \
    -e 's/$(INSTALL_BINARY_DIR)/$(DESTDIR)$(INSTALL_BINARY_DIR)/g' \
    -e "s|/usr/local|/usr|g" \
    -e "s|/lib/|/${CLFS_LIB}/|g" \
    makefile &&

make \
    DESTDIR=${DESTDIR} \
    CC="gcc ${BUILD}" \
    CPP="g++ ${BUILD}" \
    LD="ld ${LD_BUILD}" &&

make install &&

if [ "$USE_ARCH" != "" ]; then

    mv -v ${DESTDIR}/usr/bin/analyseplugin ${DESTDIR}/usr/bin/analyseplugin-${USE_ARCH} &&
    mv -v ${DESTDIR}/usr/bin/applyplugin ${DESTDIR}/usr/bin/applyplugin-${USE_ARCH} &&
    mv -v ${DESTDIR}/usr/bin/listplugins ${DESTDIR}/usr/bin/listplugins-${USE_ARCH}

fi

if [ "${USE_ARCH}" == "64" ]; then

    ln -sfv multiarch_wrapper ${DESTDIR}/usr/bin/analyseplugin &&
    ln -sfv multiarch_wrapper ${DESTDIR}/usr/bin/applyplugin &&
    ln -sfv multiarch_wrapper ${DESTDIR}/usr/bin/listplugins

fi

popd
EOF

chmod +x build.sh


Non-Multilib

Compile and install the package:

./build.sh

Multilib

32Bit

Compile and install the package:

USE_ARCH=32 ./build.sh

N32

Compile and install the package:

To Do: (Please Contribute. It is intended that "USE_ARCH=N32 ./build.sh" should work.)

64Bit

Compile and install the package:

USE_ARCH=64 ./build.sh

Configuring

An environment variable, LADSPA_PATH, is required.

cat > /etc/profile.d/50-ladspa.sh << "EOF"
export LADSPA_PATH=/usr/lib/ladspa:/usr/lib32/ladspa:/usr/lib64/ladspa
EOF

Contents

Installed Directories: /usr/lib{,32,64}/ladspa
Installed Programs: analyseplugin, applyplugin, listplugins
Installed Libraries: amp.so, delay.so, filter.so, noise.so, sine.so

Short Descriptions

analyseplugin, applyplugin, listplugins are tools for inspecting and testing ladspa plug-ins.
amp.so, delay.so, filter.so, noise.so, sine.so are sample plug-ins
/usr/include/ladspa.h is the API, in its entirety. The comments in this (well-commented) header file comprise the API documentation.

Tools for Generating Plugins

Plugin Libraries

Hosts