01 | PLUCK Decay Method 1: Simple Averaging | 1 | PLUCK-made vs. home-made random numbers | 2 | EXPSEG envelope | 3 | LINSEG envelope | 3B | Variation of duration/frequency on f73 | 4 | Adjustable pitchbend mechanism |
02 | PLUCK Decay Method 2: Stretched Averaging |
03 | PLUCK Decay Method 3: Simple Drum |
04 | PLUCK Decay Method 4: Stretched Drum |
05 | PLUCK Decay Method 5: Weighted Averaging |
06 | PLUCK Decay Method 6: 1st Order Recursive Filter |
In its simplest form the algorithm consists of averaging each two successive samples of a circular buffer (or wave-table), and then writing the average back to the buffer as the new sample value. The various harmonics of whatever initial spectrum are decaying to an almost pure sine wave, but at different rates. The initial buffer values are chosen as a function of the desired sound type. Plucked strings, with high partials, are best obtained if the circular buffer is filled with random values. As these are periodically repeated, the result is not noisy or hissing and, without decay algorithm, sounds like a reed organ. With the decay algorithm, it will sound like a plucked string. Using a different random buffer for each note adds a small variation to notes of the same pitch, resulting in even more natural sounding tones.
The implementation of the algorithm Yt = 1/2(Yt-p+Yt-p-1) is made extremely efficient by use of bit shifting operators. Multiplication is not necessary. Thus the technique can provide impressive real-time performance without loss of quality. (Karplus et al. 1989: pp. 467-480)
The process of averaging can be further specified by stretching the process in time, adding a roughness factor to control the range between pitch and noise, or combinations of both. (Jaffe et al. 1989: pp. 481-494)
Jaffe, David A. and Julius O. Smith 1983.
"Extensions of the Karplus-Strong Plucked-String Algorithm."
Computer Music Journal 7(2).
Reprinted in C.Roads, ed. 1989.
The Music Machine.
MIT Press, pp. 481-494.
15_01_1
additional parameters: none
In instrument 1 PLUCK uses a set of random numbers, made by PLUCK itself, while in instrument 2 the table f77 is created from the soundfile "Sflib/10_02_1.SF". This soundfile also contains random numbers, but gives additional control over the bandwidth of the noise. For both instruments the cyclic buffer of PLUCK contains 128 numbers and the chosen decay method is simple averaging. From each instrument two notes with a duration of a second are played.
NB: The instrument has no envelope to give the net impression of this unit generator.
Suggestions:
Use other audio soundfiles as well.
WAV and mp3
15_01_2
additional parameters: ibuf, if1
The EXPSEG envelope adds a decay pattern to the tones. The first section plays two PLUCK-made tones. In the second and third section, we use 10 different noise tables. The noises' bandwidth descends from 10000 Hz to 25 Hz in each section.
WAV and mp3
15_01_3
additional parameters:
This differs from 15_02_1 only by the type of envelope used: LINSEG. Linear decay has a distorting effect: it seems to decay like an event with a longer duration and then disappears all too suddenly.
As in the previous example, we apply a number of noises tables with different bandwidths to PLUCK's table input.
In the third section, we used a larger internal buffer: ibuf is 1024.
WAV and mp3
15_01_3B
additional parameters: ibuf, if1
One noise has been selected for further investigation: f73 (bandwidth is 2500 Hz). This noise yields the best quality of a plucked string tone.
Notes of various duration and frequency.
WAV and mp3
15_01_4
additional parameters: ibuf, if1, if2, igliss
A pitchbend mechanism implemented with an EXPSEG unit generator. The pitchbend ratio can be varied by the variable igliss. The right and left channel use different source soundfiles for PLUCK to produce subtle differences.