Presented here is a very basic MIDI Step Sequencer for Pure Data. It's locked to playing 16th notes, but the tempo and number of steps can be changed. The pattern can also be transposed. Finally, it comes with a decent random pattern creation system, ideal for that 'dead batteries in a 303' style sequence.
The top right window displays the pitches for the steps, selectable between -12 and +12 semitones. The center right window the velocity (where 0 means no note is played). The bottom window shows the currently playing step. Obviously, as a MIDI Sequencer, it doesn't actually produce audio on it's own: you'll need to route the MIDI to the instrument of your choice.
The patch itself is fairly simple; there's nothing in there a novice Pure Data-er familiar with basic messaging and lists couldn't grasp. Adding multiple pattern support would be a simple, yet interesting addition for the eager coder.
Here's a short audio demo of it at work: here, MIDI is output from Pure Data using the Mac IAC MIDI Driver (use MIDI Yoke on Windows) into Aspect, which is playing a nice analogue mono synth bass sound.
Download the patch for Pure Data here.
UPDATE: New version posted here.
Showing posts with label open source. Show all posts
Showing posts with label open source. Show all posts
Saturday, 17 April 2010
Sunday, 28 February 2010
Karplus-Strong guitar string synthesis with Pure Data
Presented here is a Pure Data patch that generates, without samples, a fairly decent acoustic guitar sound. This uses the Karplus Strong algorithm, in which an initial noise burst is fed into a tuned delay line (a delay line whose length equals the period of the desired frequency). The string's vibration is damped by a lowpass filter in the delay's feedback line.
The synth is built from six instances of this karpluck~ abstraction, one instance representing a single string. Each is synthesized in complete isolation: in this simple model there is no sympathetic resonance crossover between the strings.
Patch articulation comes from a simple strummer sub-patch. This generates a random sequence of chords in a pattern typical of an acoustic guitar player. A very small latency (strum_speed) emulates the short time delay between each string being plucked as the plectrum moves across all six strings. Width effects the width of the initial noise burst, with higher widths producing a brighter sound. Decay and cutoff set the amount of attenuation and filtering, respectively, in the delay feedback.
Here is the patch in action:
Download the patch for Pure Data here.
The synth is built from six instances of this karpluck~ abstraction, one instance representing a single string. Each is synthesized in complete isolation: in this simple model there is no sympathetic resonance crossover between the strings.
Patch articulation comes from a simple strummer sub-patch. This generates a random sequence of chords in a pattern typical of an acoustic guitar player. A very small latency (strum_speed) emulates the short time delay between each string being plucked as the plectrum moves across all six strings. Width effects the width of the initial noise burst, with higher widths producing a brighter sound. Decay and cutoff set the amount of attenuation and filtering, respectively, in the delay feedback.
Here is the patch in action:
Download the patch for Pure Data here.
Sunday, 8 February 2009
Probabilistic Step Sequencing meets Cellular Automaton with Elysium
Aleatoricism is defined as "art created by exploiting randomness". From Pierre Boulez's experimentation with controlled chance to Brian Eno's use of Koan to produce Generative Music 1, it's a well explored area of music composition. Even Roland's TB-303 offered prospects for the aleatoric explorer: leaving the battery removed for a short time corrupted the sequencer memory, generating 64 tracks of random acid.
Elysium is a probabilistic sequencer, developed by LucidMac Software and available (for free) on Mac OS X. It's a pure sequencer, not a synthesizer or a host. It doesn't produce any sound itself, but generates a MIDI stream that can be used to drive any MIDI consuming application or hardware. Despite this, syncing with a DAW such as Logic or Live running on the same machine as Elysium is completely pain-free; no additional configuration was required to get it working.
The Elysium interface is made up of a grid of hex cells, each representing a note of a certain pitch. Playheads move across the grid in sync with the tempo. By placing tokens on cells, the playheads (which are spewed out at specified tempo from a Generate token) can be made to perform an action: a Note token causes the note on the underlying grid to be played; a Split token divides a single playhead into several, each launching out at different trajectories; a Rebound token bounces the playhead back in the opposite direction.

Tokens can also be assigned probabilities, only performing their functions on a roll of the virtual dice: 50% of the time, this playhead will rebound; 25% of the time, this note will play. Using this system, constantly varying pieces of music that would be tricky to compose using traditional sequencers can easily be easily generated.
Watching playheads creep across a grid is somewhat reminiscent of John Conway's cellular automaton Life simulation. The interface is simple to use, but not necessarily intuitive at first glance. Reading the introductory documentation, which is scant but does well in explaining the basics, is advised.
Elysium is currently only available for Mac OS X. It was recently released as open-source under the MIT license, so there is a chance of seeing a port to other operating systems. More information about Elysium can be found at http://lucidmac.com/products/elysium
Elysium is a probabilistic sequencer, developed by LucidMac Software and available (for free) on Mac OS X. It's a pure sequencer, not a synthesizer or a host. It doesn't produce any sound itself, but generates a MIDI stream that can be used to drive any MIDI consuming application or hardware. Despite this, syncing with a DAW such as Logic or Live running on the same machine as Elysium is completely pain-free; no additional configuration was required to get it working.
The Elysium interface is made up of a grid of hex cells, each representing a note of a certain pitch. Playheads move across the grid in sync with the tempo. By placing tokens on cells, the playheads (which are spewed out at specified tempo from a Generate token) can be made to perform an action: a Note token causes the note on the underlying grid to be played; a Split token divides a single playhead into several, each launching out at different trajectories; a Rebound token bounces the playhead back in the opposite direction.

Tokens can also be assigned probabilities, only performing their functions on a roll of the virtual dice: 50% of the time, this playhead will rebound; 25% of the time, this note will play. Using this system, constantly varying pieces of music that would be tricky to compose using traditional sequencers can easily be easily generated.
Watching playheads creep across a grid is somewhat reminiscent of John Conway's cellular automaton Life simulation. The interface is simple to use, but not necessarily intuitive at first glance. Reading the introductory documentation, which is scant but does well in explaining the basics, is advised.
Elysium is currently only available for Mac OS X. It was recently released as open-source under the MIT license, so there is a chance of seeing a port to other operating systems. More information about Elysium can be found at http://lucidmac.com/products/elysium
Subscribe to:
Posts (Atom)