Open Source

Building my first Pure Data patch.

I’ve been an hardcore fan of open-source software (OSS) for years but never relied on it to the point where I felt confident in using an OSS as a tool to build my work on.

And there are good reasons to be scared of using OSS professionally. Especially if the outcome of your work as an artist depends on that of an unknown community of non full-time developers who don’t have time to take into account your level of IT knowledge, learning curve and, in particular, your time, when building and upgrading a software.

It is a well known issue that using OSS is often more time consuming and daunting – both as a first time and as an experienced user – than using proprietary software. Pure Data is a very good example of this.

Pure Data is an open source visual programming environment that runs on anything from personal computers to embedded devices and smartphones [..]. It is a major branch of the family of patcher programming languages known as Max (Max/FTS, ISPW Max, Max/MSP, etc), originally developed by Miller Puckette at IRCAM. (Pure Data Website)

Don’t get me wrong. Pure Data is a brilliant programming language with an endless potential and a relatively stable community of developers, most of which are also artists.

But sometimes this is not enough.

A part-time community of developers will never be able to manage the large scale upgrades that lead to a stable product, which should be canvas to the work of professionals at all levels. Hence the reason why the old-fashioned proprietary software Max/MSP has become a standard against Pd for artists and engineers in the creative industries.

“I have to wonder how anything actually gets done in the open-source community. In general, the collective crowd has to be a royal pain to work with. And that’s why any large-scale project within that community goes so slowly […]. But I wonder if all open-source projects will eventually go the way of all software. Upgrade after upgrade adds more and more complexity, to the point where the software begins to get bogged down under its own weight. How many open-source projects have you seen in which the code gets leaner and meaner rather than fatter and fatter?” (John Dvorak, PC Mag, 2007)

Example of a typical PD patch.

I still gave Pure Data a go and, after just about three weeks of trials and errors, I decided to build a simple FM synthesiser with a few additional features. Besides having to download three different versions of the software before I could stick with a definitive one (Pd-extended in my case), everything else went fairly smoothly.

For the core of the synth, the Frequency Modulation, I took one of the built-in Pd examples as a first building block and created the rest from there.

Screenshot of my first Pd Patch

The synth features a table (pitchmod) modulated by two frequencies, Modulation deptht and Carrier frequency, through multiplication and sum of numbers to the original wavetable. The signal is sent to the oscillator, which output is split into two: while one signal goes into the autopan subpatch — responsible for shifting the audio from left to right at a controllable rate — the other goes into the next multiplication object. I’ve also created a simple dry/wet slider that controls the depth of the auto-pan.

Auto-pan patch

Before the signal is sent to the final output, this is directed through the freeverb~ object, a Pd in-built reverb with some controllable parameters. Final touches are the visualisers for the resulting waveform, as well as RMS meters, play and mute buttons.

After all, I’m quite satisfied with the results. The patch does what I’d expect it to do and there are no unwanted clicks and pops (I’ve done a good amount of work with line objects!). However, the synth still lacks a few fundamental functions that I am planning on studying and implementing soon, such as the option for playing notes trough external midi, randomising parameters, and saving presets.

The patch can be freely downloaded here. Feel free to test it out and make upgrades.

Francesco Imola is a London-based musician, weekend photographer, and current Sound Design student at the University of Greenwich.