Albert Graef

Albert Gräf's home on Github

Welcome!

You’ve reached Albert Gräf’s presence on Github. I’m a computer scientist and mathematician working at the Johannes Gutenberg University (JGU) at Mainz, Germany. Here you can find pointers to the source code and documentation of my functional programming language Pure and some related projects, as well as some other 3rd party projects I’m involved in, most notably Jonathan Wilkes’ Purr Data. In particular, there’s also some software for Faust, Grame’s functional dsp programming language, Lua, PUC Rio’s nifty little script 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. (Most of my projects are on Github these days, but some of the older stuff is still hosted on Bitbucket.)

The Pure programming language

This is one of my flagship projects, a functional programming language based on term rewriting featuring an LLVM JIT compiler backend and a fairly extensive collection of add-on modules. The project has been somewhat dormant in the past few years, as I’ve been working on other things, and it requires the old LLVM 3.5 version, but it’s still perfectly usable. I’d say that there’s nothing else quite like it in the crowded space of modern programming languages, so give it a try!

Purr Data

Another flagship project that I contribute to is Jonathan Wilkes’ Purr Data, which is a flavor of Miller Puckette’s venerable Pd with a modern GUI and lots of bundled externals. Purr Data is a cross-platform version of Ico Bukvic’s Pd-l2ork, which in turn was forked from Hans-Christoph Steiner’s (popular, but discontinued) Pd-extended.

If you have been looking for a modern successor to Pd-extended, this is it. I’ve been using Purr Data in pretty much all my university courses since 2016, contributed a few bits and pieces over the years, and serve as co-developer, release master and Linux package maintainer in the project.

My Purr Data Github mirror provides a one-stop shop to make it easy for you to get your hands on the latest source and the available releases, including pre-built packages for Linux (maintained on the OBS), macOS, and Windows.

The computer music and multimedia corner

Most of the software you’ll find here is still written in Pure and/or C/C++. Recently I also started porting old and writing new software in the Lua language, which has a lighter runtime and is easier for beginners than Pure. Please note that with such a diverse software portfolio, the burden of maintenance becomes substantial, and thus I can’t possibly keep these updated at all times. If you find any issues with any of my projects, please submit a bug report (or, preferably, a pull request).

The Grab Bag

Here are some other related ports and utilities, as well as links to 3rd party software which you may find useful.

Notes

The Faust-related software has been tested and is known to work with recent Faust versions available in the Faust git repository. For the Lua modules and externals we recommend Lua 5.3 or later (some of them such as pd-lua may also still work with Lua 5.2, but no guarantees). The Pd externals have been tested and work with both vanilla Pd and with the pd-extended, pd-l2ork and purr-data distributions. (A few of the newer patches may require the latest and greatest purr-data to work properly, but this is mentioned on the corresponding project pages.)

Source tarballs and binary packages for Pure and related projects can be found on the Download page of the Pure project.