Programmable Digital Synthesizer: PDSynth

Reading Time: 4 minutes

PDSynth is a toolkit to create programmable digital synthesizers made using the Pure Data visual development environment.

The name derives from the acronym of the sentence: Programmable Digital Synthesizer. But also the acronym PDSynth allows to indicate a synth made with Pure Data (Pd): the well known visual development environment for multimedia applications used to implement the toolkit.


The PDSynth modules implement different sound generation and processing systems and are all controllable via the Open Sound Control (OSC) protocol. Users can easily create and interconnect the modules together to build high-level architecture for real-time sound synthesis and processing.

Open Sound Control

The OSC protocol was chosen because it is become, along the years, a standard format for sharing data related to musical performance (parameters, sequences of notes, gestures) between musical instruments (mainly synthesizers and electronic instruments), calculators and other multimedia devices.
Open Sound Control was chosen because it allows to easily create a reliable and robust communication system among the various modules inside Pd allowing, also, a simple exchange of network messages to and from the outside. In fact, the OSC messages can be easily managed through the native message system provided by Pure Data. All this simplifies the creation of the control systems of the modules and allows to control the synthesizers through external controllers and control surfaces. Moreover, the OSC protocol allows to have both an higher data resolution and greater parameter space than what is offered by the MIDI protocol.

Software: Pure Data

First sample patch of PDSynth.
Programmable digital synthesizer PDSynthClick here to download the latest version of PDSynth.

PDSynth currently offers five sound generation modules that emulate the behavior of classic analog synth oscillators. The modules offer the possibility of generating the following waveforms:

  • GENPulse – band-limited pulse train generator;
  • GENSawTooth – band-limited saw tooth wave generator;
  • GENSin – sine wave generator based on the osc~ Pd object
  • GENSquare – band-limited square wave generator;
  • GENTriangle – band-limited triangle wave generator.

In addition to sound generation modules, were also implemented patches that implement filters. So far, three different filters of the fourth order have been created:

  • FLTBandPass – band pass filter based on the vcf~ Pd object;
  • FLTHighPass – high pass filter based on the hip~ Pd object;
  • FLTLowPass – low pass filter based on the lop~ Pd object.

Two modules were also developed to generate envelopes:

  • ENVTable – envelope generator defined through a table;
  • ENVADSR4 – ADSR type envelope generator.

The ENVTable module generates a time envelope by reading data contained in a table. While, the ENVADSR4 module realizes a four-state ADSR envelope generator with fourth order polynomial interpolation.

Hardware

Starting from the initial idea to develop an exclusively software environment, we tried to use DIY controllers based on the Arduino prototyping platform to control the modules of the toolkit. This first experiments encouraged to broaden the vision of the toolkit by incorporating, therefore, both software development and the design of hardware devices to control the software architectures. The intent of the project has therefore been transformed into the creation of an environment for prototyping and developing portable electronic musical instruments and synthesizers.

PDSynth-00

On the hardware side, the project was oriented towards the realization of physical devices, equipped with potentiometers, sensors and other interaction systems. PDSynth-00 is the first DIY prototype of a controller made by Artis Lab, in Spring 2016, that is born from the idea of an hardware device useful to control the synthesis and sound processing architectures created with the PDSynth toolkit. This project was developed almost contemporaneously with the realization of the Cap-Pad prototype.

PDSynth-00-Arduino controller

PDSynth-00 is a reprogrammable electronic musical instrument that can perform different functions depending on the software that is loaded into the Arduino board. It is equipped with six slide potentiometers and twelve buttons. Everything is contained in a simple and light container made of plywood shaped using a laser cutting machine. PDSynth-00 can be interfaced with Pure Data through the Firmata protocol. By this way the data relating to the position of the six cursors and the status of the buttons can be sent to the program listening on the serial port and used to perform action or modify parameters inside the PDSynth patches.

This video shows how to use PDSynth-00 to control the modules of the example patch shown above.

SynthBerry Pi

SynthBerry Pi was born as a natural evolution of the PDSynth-00. The Arduino prototype is not autonomous, it is only useful for controlling the PDSynth modules running on a computer. SynthBerry Pi, instead, integrates controller and computer through the use of a Raspberry Pi mini computer allowing to create an autonomous device able to generate sound that can be modified via a control surface.

SynthBerryPI-1 Pure Data Raspberry PiWatch here the first two video tutorials dedicated to SynthBerry Pi.

Leave a Reply

Your email address will not be published. Required fields are marked *