1. Albert Graef
  2. agraef.bitbucket.org




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.

  • The Pure Language and Library Documentation is available in html and pdf format.

  • sublime-pure provides Pure language support for the Sublime Text editor.

  • 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 for details.

  • 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 lv2plugin~ which lets you run LV2 audio and MIDI plugins in Pd.

  • pd-mdnsbrowser is a Zeroconf 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 oscbrowser object 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, see above.

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.