You've reached Albert Gräf's presence on Bitbucket. Here you can find pointers
to the source code and documentation of my functional programming
language Pure (now on Github) and related projects still mostly hosted
here on Bitbucket. In particular, there's also some software for Faust,
Grame's functional dsp programming language, Pd, Miller Puckette's
graphical computer music and multimedia environment, and Dave
Robillard's LV2, the new audio and MIDI plugin standard for Linux and
other Unix systems.
Please note that this site is in a perpetual state of construction, and also
serves as a grab bag for various other side projects. I will
hopefully turn it into a full website some time, but for the time being,
here's a brief overview of the available projects:
The pure-lang source code repository has the source code of the Pure
programming language interpreter and various addon modules. In particular,
there are the pd-pure and
pd-faust modules which let
you run Pure and Faust programs as Pd externals.
faust-lv2 is my latest and
greatest version of the LV2 plugin architecture for the Faust programming
language. This gives you a convenient way to create LV2 effect and
instrument plugins from Faust programs.
faust-vst is a port of
faust-lv2 to Steinberg's VST plugin standard. I recommend using LV2 if
possible, since it's an open standard. However, none of the commercial DAWs
seem to implement LV2 (yet), so this architecture gives you a way to run
your Faust plugins with those programs. Note that to compile the generated
plugins, you'll also need Steinberg's VST SDK which isn't redistributable,
so you need to download it yourself; please check the included README file
osc2midi-utils is a
collection of utilities to deal with TouchOSC layouts and
osc2midi map files. Currently it offers a converter from TouchOSC
layouts to osc2midi map files and a graphical frontend to the osc2midi
program, Spencer Jackson's configurable OSC-(Jack)MIDI bridge written in C.
Requires Pure, as well as Tcl/Tk and Gnocl.
NEW! The Pd-L2Ork Arch Package Repository
has binary packages for pd-l2ork, purr-data (Jonathan Wilkes' new
cross-platform variant of pd-l2ork which is still in beta at this time),
as well as builds of pd-pure and pd-faust for pd-l2ork/purr-data and all
required dependencies not readily available in the standard Arch
repositories. There's also an extensive README there with setup
instructions, list of related AUR packages, etc. Essentially the same set of
packages is also available for Ubuntu, please check the
Pd-L2Ork Ubuntu PPAs page for details.
pd-lv2plugin is an LV2 plugin
host for Pd, written in Pure. It provides a Pd external
which lets you run LV2 audio and MIDI plugins in Pd.
pd-mdnsbrowser is a
external for Pd written in Pure, which lets you discover and publish
services in the local network, so that your Pd patches can establish network
connections in an automatic fashion. This is a standalone version of the
oscbrowserobject in pd-touchosc (see below), but it isn't limited to OSC
services, so it can be used for any kind of TCP- or UDP-based service
running in the local Zeroconf domain.
NEW! pd-smmf: Documentation and
examples for the Pd "Simple MIDI Message Format", a symbolic MIDI
representation in Pd message format. This is used by most of my Pd externals
using MIDI in some way, but is useful in its own right if you need to pass
around MIDI data in Pd. Two abstractions midi-input.pd and midi-output.pd
are included to translate between Pd's built-in MIDI I/O and SMMF. (These
abstractions are just plain Pd patches which require no additional software
to work, but the other examples included in the package require pd-pure.)
pd-touchosc is a TouchOSC MIDI
bridge written in Pure. This is a collection of Pd externals and patches
which make it easy to interface Pd to TouchOSC, an OSC and MIDI
control surface for Android and iOS devices. Please note that this has
mostly been superseded by Spencer Jackson's osc2midi and my osc2midi-utils
package (see above).
pizmidi is a comprehensive
suite of VST MIDI plugins for Linux, Mac OS X and Windows. This is a fork of
the original source code by Reuben Vinal at Google Code
with some minor touches for Linux compatibility. An Arch PKGBUILD is available
in the AUR.
NEW! The Pure LAC09 examples are back! You can also download them as a tarball or a zip archive again. These are the accompanying materials for my presentation "Signal Processing in the Pure Programming Language" at the Linux Audio Conference 2009 at Parma, with some minor touches for compatibility with present-day Pure. They were originally on Pure's GoogleCode page, but got lost when GC closed its doors. Since the paper and the accompanying materials are still valid and may still be useful for Pure users, they have found a new home on Github now.
rigkontrol is a Pd patch
which translates control signals from Native Instrument's Guitar Rig Kontrol
foot switch to MIDI CC. You'll find this patch useful if you have a Rig Kontrol
device lying around which you want to put to good use by hooking it up to your
DAW or other MIDI-capable hard- and software. No special externals or addons
are required, so the patch should work with any Pd flavor out there. Only the
Rig Kontrol 1 (the original blue one) is supported right now, but adjusting the
patch to later GR Kontrol versions should be a piece of cake. :)
sclsyx is a little Pure script which
helps you create MIDI Tuning Standard (MTS) sysex or MIDI files from musical
tunings in Manuel Op de Coul's Scala
format. It can also print the sysex messages in a human-readable format on the
terminal, from where you can copy and paste the data into DAWs which support
manual entry of sysex messages. NEW! This program is also available as a
Pd external in the pd-smmf package,
The Faust-related software has been tested and is known to work with both the
stable Faust and the experimental Faust2 version available in the Faust
git repository. The Pd externals have been tested and work with both vanilla
Pd and with the pd-extended and pd-l2ork distributions.
Source tarballs and binary packages for Pure and related projects can be found
on the Download page of
the Pure project.
Users of Arch Linux may want to check out the Arch User Repositories for
ready-made packages (in particular, you can find the Pure packages
here and the other
AUR packages that I maintain here).
More details, including pointers to binary package repositories, can be found on
the Pure on Arch Linux wiki page. Moreover, Arch packages for pd-l2ork et
al can be found in my Pd-L2Ork Arch Package Repository.
I also maintain a reasonably complete and up-to-date collection of packages
for recent Ubuntu releases on my Launchpad page. This also offers packages
for Faust, Pd-L2Ork
and some other dependencies which aren't packaged elsewhere.
Mac OS X users can find Pure on MacPorts; please check the Pure on Mac
OS X wiki page for details. We also have binary packages for most of the
other projects available; please check the Download pages of the corresponding
projects for those.
Windows users can find pointers to binary packages for Pure and some of the
addon modules on the Addons wiki page.