Personal tools
You are here: Home documentation developer 64BitLinux

Installing Pd-extended on a 64 bit Linux System

Other Logs

pd-extended-64studio - BuildingPdExtended64bitUbuntuIntrepid

Debian and Friends

Method 1: Build Pd-extended from the source

So far this is a roughout of the steps one person followed to build on 64 bit ubuntu Hardy. Any Debian-based system should be similar. The resulting build is not fully tested. Please refine these directions as you try your own builds. Hopefully these instructions will converge to a clear foolproof method for building in 64 bit, and this could then be added to a machine in the pd-extended autofarm.

See Building-pd-extended-64bit-Ubuntu-Intrepid for instructions on Ubuntu 8.10 Intrepid Ibex.

Resulting .deb binary

built on and for 64 bit ubuntu Hardy pd-0.41-extended.deb


what to do

why to do it

download pd-extended tarball

download Pd version >= 0.41.0

arrays don't work right in 64 bit for Pd < 0.41.0

build Pd vanilla

Gem needs to find the Pd headers and it is one way to help it find them

delete contents in Pd folder and replace with downloaded contents from Pd vanilla 0.41.0

Pd-extended build will now use Pd 0.41.0

edit scripts/auto-build/pd-extended-auto-builder and comment out line 48 (rsync) and lines 94-97

In this howto we are hacking up this pd-extended-auto-builder script to build the package. There's probably a better way (what is it?) In any case, apparently this script is for the build farm so it downloads the latest sources (?) and uploads the result? We don't want any downloading or uploading so we comment all of that out.

edit a couple of makefiles and change -m32 to -m64

Unfortunately there aren't good notes on which makefiles to edit. When building, you will get errors which refer to a stubs-32.h. Edit whatever makefile is causing the error and change the -m32 flag to -m64. (On my svn checkout of the extended 0.40.3 branch (May 2009), the offending makefiles were pd/extra/makefile and pd/extra/expr~/makefile. In HEAD they are corrected. -- jpburstrom)

sudo apt-get install libvorbis-dev libspeex-dev fakeroot libgsl0-dev dssi-dev liblo0-dev freeglut3-dev libimlib2-dev libbz2-dev libtheora-dev libmagick9-dev libfftw3-dev

these were some of library headers that were missing on the target system. Maybe an apt-get build-dep would be better?

add -fPIC at beginning of CFLAGS line to: /externals/gem2pdp/, /externals/pdp/opengl/Makefile.config, /externals/pdip/, and /externals/miXed/Makefile.common

without this, build breaks, and you will get instructions to do this.

download the latest Gem (was 0.91.1 at time of this howto), unpack into the pd-extended source folder, and rename the "gem-0.91.1" folder to "Gem"

build of extended was giving error claiming Gem was missing doc folder. If we are bothering to download the latest doc folder, might as well make sure Gem is the latest version for Pd-extended

edit gem2pdp/ and change lines 32-34 to refer to ../../Gem instead of ../../gem/Gem

gem2pdp wasn't building right because it couldn't find the gem headers.

cd scripts/auto-build && ./

try to build. When a break builds for a module, try to build that module separately with the ./configure and Makefiles associated with that module. Then try the autobuilder again

  • eventually the autobuilder script reports that it has successfully built a deb package


dpkg -i packages/linux_make/Pd-0.41.0-extended.deb

Problems and Fixes

what to do

why to do it

apt-get install tcllib

Pd stderr reports: "can't find package base64"


Pd console reports: "error parsing startup arguments"

Modules broken in 64 bit

This area is for listing modules that worked in 32 bit but don't work in 64 bit.

Questions & Answers



"make clean" for the entire pd-extended package?

cd pure-data/packages/linux_make && make clean

how to know which modules did not build correctly that should have?

Method 2: Install Pd-extended 32 bit on a 64 bit system using 32 bit libraries

The following procedure was followed to get 32-bit Pd-extended binary running on a 64 bit ubuntu Hardy machine. Instructions for any Debian-based system should be similar and perhaps added to this wiki page as they are discovered

note: these directions resulted in a partially-working install, but not fulling working. For example, no video files would load correctly. /usr/lib32/ is segfaulting.

  • install the core 32 bit libraries: sudo apt-get install ia32-libs

  • install getlibs:

  • download Pd-extended at:

  • install Pd-extended: sudo dpkg -i --force-architecture pd-extended-0.XX.deb

  • install the 32 bit libraries needed by Pd-extended:

    sudo getlibs -l \ \ \

    • note: this list of libraries and versions is specific to ubuntu Hardy. For a different Debian-based distribution, just run Pd, note what library it is complaining it is missing, then add the library with getlibs -l <library name>. You have to do this for each library, one by one.

downloading --hans, Wed, 18 Mar 2009 02:02:50 +0100

It might make more sense to use rsync to download the 0.41.4 pd-extended tree directly.


pd on Fedora 12 x86_64 --sl, Tue, 20 Apr 2010 00:14:00 +0200

Using the latest pd-0.42-5.src.tar.gz I have successfully built an rpm with 64bit libraries. The simplest method appears to be to use autoconf on the in the src directory. The pd-gui can be started by typing pd in the console. I have tested the audio connection with jack2 (1.9.4) and the midi with alsamidi - all appears to work although I noted that pd is using a depreciated api to connect to jack.

Here is the rpm spec file I used:

%define name    pd
%define _maj    0.42
%define _min    5
%define release

Name:           %{name}
Summary:        Real-time patchable audio and multimedia processor
Version:        %{_maj}.%{_min}
Release:        %{release}
License:        BSD, Other
Group:          Applications/Multimedia
Source0:        %{name}-%{_maj}-%{_min}.src.tar.gz
Source1:        %{name}.png

BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-buildroot

BuildRequires:  alsa-lib-devel
BuildRequires:  desktop-file-utils
BuildRequires:  dos2unix
BuildRequires:  fftw-devel
BuildRequires:  glibc
BuildRequires:  glibc-devel
BuildRequires:  gcc
BuildRequires:  jack-audio-connection-kit-devel
BuildRequires:  tcl-devel
BuildRequires:  tk-devel
BuildRequires:  xorg-x11-proto-devel

Requires:       alsa-lib
Requires:       glibc
Requires:       jack-audio-connection-kit
Requires:       tcl
Requires:       tk

# it is only a header file ..
Provides:       %{name}-devel

Pd gives you a canvas for patching together modules that analyze,
process, and synthesize sounds, together with a rich palette of
real-time control and I/O possibilities.  Similar to Max (Cycling74)
and JMAX (IRCAM).  A related software package named Gem extends Pd's
capabilities to include graphical rendering.

    Miller Puckette

%setup -q -n %{name}-%{_maj}-%{_min}

pushd src
%configure \
        --enable-alsa \
        --enable-jack \
        --enable-portmidi \
        --enable-portaudio \
        --enable-fftw \


dos2unix     doc/ doc/ doc/7.stuff/soundfile-tools/README.txt
%__chmod 644 doc/ doc/ doc/7.stuff/soundfile-tools/README.txt

pushd src

rm -rf %{buildroot}
%{__install} -dm 755 %{buildroot}%{_datadir}/pixmaps
%{__install} -dm 755 %{buildroot}%{_datadir}/applications/

pushd src
%__make DESTDIR=%{buildroot} install

# Icon
%{__install} -m 644 %{SOURCE1} \

# Desktop entry
%__cat > %{buildroot}%{_datadir}/applications/%{name}.desktop << EOF
[Desktop Entry]
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop

rm -rf %{buildroot}

%doc LICENSE.txt README.txt
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/bin
%dir %{_libdir}/%{name}/doc
%dir %{_libdir}/%{name}/extra

* Mon Apr 19 2010 Simon Lewis <> -
- Corrected bin location
* Mon Apr 19 2010 Simon Lewis <> -
- Build 1

Building Pd-extended on Fedora release 13 (Goddard) 64 bit

I have successfully build pd-extended on F13 x86_64. Works out very nice. Here is, what i did so far:

Installing the rpmfusion-repo

$ sudo rpm -Uvh
$ sudo rpm -Uvh
$ sudo yum clean all && sudo yum update

I rebuild the avifile package from ccrma. I might be, that you can skip this step, if you already installed the ccrma-repo and have avifile installed. I can't test here, if it will be working with installing directly from ccrma. (Give it a try and let me know.)

You need to have a working build-tree in your home. If you set it up, you can build you own avifile with:

$ cd ~/rpmbuild/SRPMS
$ wget
$ rpm -i avifile-0.7.45-3.fc13.ccrma.src.rpm
$ sudo yum install esound-devel libmad-devel faad2-devel qt3-devel
$ rpmbuild -bb ~/rpmbuild/SPECS/avifile.spec
$ sudo yum localinstall --nogpgcheck ~/rpmbuild/RPMS/x86_64/avifile-0.7.45-3.fc13.x86_64.rpm ~/rpmbuild/RPMS/x86_64/avifile-devel-0.7.45-3.fc13.x86_64.rpm

Prepare your system

You have to install a hole bunch of Packages to build all of pd-extended:

$ sudo yum install curl cvs subversion make autoconf gcc gcc-c++ automake bzip2 bitstream-vera-sans-mono-fonts tcl tcl-devel
tk tk-devel jack-audio-connection-kit jack-audio-connection-kit-devel alsa-lib alsa-lib-devel libogg libogg-devel libvorbis
libvorbis-devel fftw3 fftw3-devel speex speex-devel flac flac-devel ladspa ladspa-devel libsndfile libsndfile-devel lame
lame-devel xmms xmms-devel pcre pcre-devel postgresql-devel mysql-devel swig dssi-devel lua lua-devel flite flite-devel ant
SDL SDL-devel gsl gsl-devel libtheora libtheora-devel libtiff libtiff-devel libpng libpng-devel imlib2 imlib2-devel bzip2-devel
ImageMagick ImageMagick-devel libxml2 libxml2-devel libjpeg libjpeg-devel libdv libdv-devel libavc1394 libavc1394-devel
libmpeg3-devel ftgl-devel freetype freetype-devel ImageMagick-c++ ImageMagick-c++-devel libXv libXv-devel lcms lcms-devel
mesa-libGL mesa-libGL-devel mesa-libGLU mesa-libGLU-devel jasper jasper-devel ffmpeg ffmpeg-devel freeglut-devel opencv-devel
libquicktime libquicktime-devel faad2 faac ffmpeg-libs a52dec a52dec-devel libv4l libv4l-devel mysql-devel liblo-devel tcllib

Getting the pd-extended source

You can get the source, which i have used for this, here:

$ mkdir ~/source/puredata
$ cd  ~/source/puredata
$ rsync -av --delete rsync:// pd-extended/
$ cd pd-extended

Making some changes to the sources

Insert the following line at the top of "~/source/puredata/pd-extended/Gem/src/Pixes/videoV4L2.h"

#include <sys/stat.h>

Correcting the path for libquicktime

If not installed, install "findutils" first.

$ sudo yum install findutils

If the findutils installed sucessfully, run:

$ find ~/source/puredata/pd-extended/externals/pdp externals/pidip -type f -exec perl -p -i -e "s|<quicktime/|<lqt/|g" {} \; 

Now you are ready to build pd-extended

Change to the Build dir for the Linux and run "make install"

cd ~/source/puredata/pd-extended/packages/linux_make
make install

Now you should have a working pd-extended under the "build" dir. The dirs under that should copied to "/usr/local/" or added to your $PATH.

Running pd-extended

If you want to use pd-extended together with other audio output, pulseaudio might stand in your way.

For my situation, running "padsp" with "pd-extended" is my "work around". Not nice, but working. Better way may be to get jackd running with pulseaudio and connect pd-extended via jack, but unfortunely the "pulseaudio-module-jack" for Fedora seems to be currently broken.

Anyway, this works for me:

$ padsp pdextended -oss -audiobuf 70

Good Luck.

Powered by IEM Powered by Plone Section 508 WCAG Valid XHTML Valid CSS Usable in any browser