One of the first things that becomes apparent upon the initial encounter with the Pure Data (PD) program is its versatility and unlimited possibilities of its utilization. It is not just an audio file editor, not just a video mixer, a synthesizer, or a graphic design assistant. The PD is all of these things simultaneously, and much more. It is capable of handling virtually any type of digital data, from prime numbers, audio-video sets, and MIDI signals up to web events. The end “product”, resulting from processing and manipulation of this vast array of data, is even more variable and unpredictable. If a musician, for instance, wishes to use computer’s CPU or complex mathematical formulas as the data source for an audio synthesizer, PD would be indispensable for these purposes. On the other hand, exactly the same data sources can also be used for creation of a video stream, since PD allows to control the color characteristics of the video image, the sequence of video fragments, speed of their playback, or parameters of 3D models.  Thus, given the infinite variety of data sources available for manipulation and limitless array of possible end results, working with PD becomes an exciting game.  The game where the rules are created and changed on the spot by the player; the game where the process of playing may be much more thrilling than the outcome, while the outcome may be unpredictable and quite surprising. 

I, as a musician, find these qualities of the PD program very attractive. The past several years, since I started using the PD, have been an exciting trip of research and experimentation with methods of manipulation, interpretation, and transformation of the audio material. Here I will describe several important concepts of PD that are most crucial in my personal work with this program. 

One of the most important features of PD is its handling of the audio signal input/output modules as autonomous objects, controlling the direction of the audio streams. Most of the other currently available audio software programs provide only limited number of possible ways to utilize these basic modules, usually just for recoding (in) and playback (out) of the audio data. PD, on the other hand, allows for infinite variety of manipulation of input and output modalities, creating a plethora of possible audio streams – parallel or series, discrete or continuous. Most remarkably, the module of audio input in PD can receive and interpret a signal from the audio output. 

This PD feature opens a vast field of possibilities for sound experimentation, especially useful in real-time live performances. An initial external audio stream (input) can be combined with the audio data resulted from the PD processing (output). Then these two (or more) sources can be used as a single object for even further manipulation. One can build various algorithms to be utilized as effect processors of the input signal, or one can record audio fragments into the memory buffer and then replay them parallel to the main audio stream. The audio stream itself can be divided into discrete parallel branches, allowing to control each of them separately. These audio branches can be multiplied, divided, added, deleted, or repeated. 

Simultaneous manipulation of the external audio stream and “internal” audio signal, created and mutated within the PD, results in an infinite cycle of sonic transformations. Such audio-loops may become a never-ending source of amusement and pleasure during the live performance. I frequently resort to this method of sound production and manipulation during my own live shows: sometimes one single tone signal played at the beginning of the performance, passed through several virtual samplers and effect processors within PD, may give rise to an all-night long exploration of every nook and cranny of the liquid – fractal aural space. 

This possibility of simultaneous recording and replaying the sound generated by PD without slowing down or halting its other working processes is, in my opinion, the key factor rendering this program so attractive for real-time sound design. Another major advantage is the PD’s ability to represent a recorded audio sample as an array of numbers. This permits easy and precise access to any time-point within the sample, by localizing its numerical value.   In addition, an audio recording represented by a number set may itself act as a controller of various events; for instance, it may become a sequencer or a set of MIDI-signals. This mode of operative storage of audio samples makes possible realization of various refined yet simple ways of audio playback – the sample can be fragmented to pieces of any length, played in any direction, at any speed, or as a loop.

An ability to process the MIDI signals is common among most currently available audio software programs, and PD is no exception. By using a set of modules for processing MIDI data, one can create new MIDI-programs that generate the audio output within PD or receive and process MIDI commands from a variety of the external sources (from MIDI sequencers to serial port data readers). Using the VST library, one can create a chain of VSTi synthesizers that are linked together and process the MIDI commands, or VST plug-ins for sound transformation. The number of modules one can employ is boundless. In fact, one of the main advantages of this program is the fact that a musician is not being limited by the defined set of modules designed to solve a narrow circle of problems. On the contrary, a specific program module can be designed and “built” to reach virtually any sonic objective of interest. The only limitations for one’s imagination would be the computer’s efficiency.

As mentioned above, besides its most common application – audio signal processing -  PD offers numerous options for working with other types of data. For instance, one may experiment with written texts, statistical data, or visual images, and create their sonic interpretations.  It is important to note that any operations occurring within the Pure Data program can be automatized. If one desires to build a robot-collaborator for a live performance or multimedia-installation – not a problem.

In conclusion, the Pure Data program has a universal modular collection of instruments and offers limitless possibilities for solving nontrivial problems while working with any type of digital data. Creatively using its various features, the multimedia-artists or musicians, even those without special programming skills, can relatively easily build programs tailored for realization of their unique ideas. PD makes the act of artistic creation an exhilarating game, permeated with a sense of adventure and discovery.