Geonik's Plucked String

an application of Physical Modelling Synthesis
by George Nicolaidis

Description

Physical Modelling Synthesis

Up to now, all the synthesis methods have been attempts to reproduce (or model) the waveform of a particular instrument or sound. The technique of physical modeling is however fundamentally different. With physical modeling it is the actual physics of the instrument and its playing technique which are modelled by the computer. Typically, a physical model instrument takes the form of a recursive algorithm in which the contents of a delay line (the length of which corresponds to the number of samples required to produce one period of waveform at some desired pitch) are subject to some kind of modification process on each cycle of the recursion. The initial contents of the delay line, and the details of the modification process play a key role in determining the character of the sound produced, and every effort is made to bring these into line with the way the acoustics of a given instrument really operates. This generator takes a look at the one of the earliest and simplest examples of a physical model - the Karplus-Strong "Pluck-String" algorithm.

The Karplus-Strong Plucked String Algorithm

Looking for new and computationally efficient methods of sound synthesis, Alex Strong was the first to find this new synthesis method. Essentially, the algorithm could be described as a variation on wavetable synthesis, an important distinction, however, being that the wavetable data is not kept constant, but subject to modification on each period.

What's new

Release 1 | Initial release
Release 2 | 50% faster, dynamic channel allocation
Release 3 | 10-20% faster, sound isn't cut when user presses 'Stop'

Usage

> P a r a m e t e r s

Note | While every note is acceptable, notes below C-3 produce garbage and notes above C-6 are de-tuned. Be careful !
Volume | Not much to say about this one
Slide to note | When set, the note currently playing slides to the note on the same line
Dampening factor | Increasing this parameter makes the sound shorter

> A t t r i b u t e s

Dynamic Range | When the sound output by a channel drops below a certain level, the channel stops running to preserve CPU time and becomes available for new notes when dynamic allocation is enabled. This attribute specifies the dynamic range of each channel, ie the distance between the louder and the quieter sound measured in dB.
Default Volume | When the volume for a new note is not specified, this is used.
Dynamic Channels | Setting this to other than zero enables dynamic allocation of channels. It is equal to the maximum number of channels to play at any time, including normal parameter channels. Dynamic allocation means that new notes don't cut the sound of precious ones, as long as there are free channels. When no more channels are available, the quietest channel plays the new note.

Notes

The Jaffe-Smith extension to the algorithm is not implemented.

Contact Information

Author | George Nicolaidis
Email | geonik@egnatia.ee.auth.gr
HomePage | http://egnatia.ee.auth.gr/~geonik/home