CA1215869A - Wavetable-modification instrument and method for generating musical sound - Google Patents

Wavetable-modification instrument and method for generating musical sound

Info

Publication number
CA1215869A
CA1215869A CA000446482A CA446482A CA1215869A CA 1215869 A CA1215869 A CA 1215869A CA 000446482 A CA000446482 A CA 000446482A CA 446482 A CA446482 A CA 446482A CA 1215869 A CA1215869 A CA 1215869A
Authority
CA
Canada
Prior art keywords
wavetable
instrument
data value
voice
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
CA000446482A
Other languages
French (fr)
Inventor
Alexander R. Strong
Kevin J. Karplus
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Leland Stanford Junior University
Original Assignee
Leland Stanford Junior University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Leland Stanford Junior University filed Critical Leland Stanford Junior University
Application granted granted Critical
Publication of CA1215869A publication Critical patent/CA1215869A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/02Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/471General musical sound synthesis principles, i.e. sound category-independent synthesis methods
    • G10H2250/475FM synthesis, i.e. altering the timbre of simple waveforms by frequency modulating them with frequencies also in the audio range, resulting in different-sounding tones exhibiting more complex waveforms

Abstract

ABSTRACT
A musical instrument employing a wavetable-modification method of producing musical sound. A wavetable which is periodically accessed to provide an output signal which determines the musical sound. The output signal from the wavetable is modified and stored back into the wavetable as modified data. The modified data, after a delay, is accessed from the wavetable and thereby becomes a new output signal. This process is periodically repeated whereby each new output signal is modified and stored back into the wavetable to produce rich and natural musical sound.

Description

I

W~VETABLE~MODIFICATION INSTRUMENT
AND METHOD Lowry GENERATING MUSICAL SOUND
Inventors. Alexander Robert strong and Kevin John Karplus BACRGROIJND OF THE INVENTION

This invention relates to musical instruments and more specifically to digitally controlled electronic incitory mints and methods for generating musical sound.

Digitally controlled methods of generating musical sound operate my producing a sequence of digital numbers which are converted to electrical analog signals. The analog signals are amplified to produce musical sound through a conventional speaker Musical instruments which employ digital control are constructed with a keyboard or other input device and with digital electronic circuits responsive to the keyboard. The electronic circuits digitally process signals in response to the keyboard and digitally generate oscillations which form the sound in the speaker These digitally generated oscillations are distinguished from oscillations generated by analog oscillators and are distinguished from mechanically in-duped oscillations produced by conventional orchestral and other type instruments STAN 3411 Delta (S80-20 83/01/~7 All musical sounds, whether of electronic or mechanical origin, can be described by Fourier spectra. The Fourier spectra describes musical wound in terms of its component frequencies which art represented as sinus-oils. the whole musical sound is wherefore, a sum of the component frequencies, that is, a gum of sinusoids.

Under Fourier analysis, Jones are classified as harmonic or inharmonic A harmonic Cowan is periodic and can he represented by a sum of sinusoids having frequencies which are integral multiples of a fundamental frequency.
The fundamental frequency is the pitch of the tone.
Harmonic instruments of the orchestra include the strings, the brasses, and the woodwinds. An inharmonic tone is not periodic, although it often can be repro sensed by a sum of sinusoids. The frequencies compare-sing an inharmonic tone, however, usually do not have any simple relationship. Inharmonic instruments do not normally have any pitch associated with them. Incitory-mints in the orchestra thaw are inharmonic include the percussion instruments, such as the bass drum, the snare drum, the cymbal and others.

Electronically controlled musical instruments have relied upon forming selected Fourier spectra as a basis for producing musical sound. One known type of digital musical instrument employs a harmonic summation method of music generation. In the harmonic summation method, a tone is produced by adding (or subtracting) a number of amplitude-scaled sinusoids of different frequencies.
The harmonic summation method, however, requires a complex addition (or subtraction process to form each sample. That process require digital circuitry which is both expensive and inflexible. Accordingly, the digital design necessary to carry out the method of STAN 3411 DEL/A (S80-20) -2-harmonic summation is computational complex and leaves much to be desirer Another known type of musical instrument employs the filtering method of music generation. In the filtering method, a complex electrical waveform, such as a square wave or a saw-tooth pulse train, is filtered by one or more filters to select the desired frequency components.
Thereafter, the filtered frequency components are combined to form the electrical signal which drives the speaker. The filtering method is commonly used to synthesize human speech and has often been used with analog electronic organs. The filtering method is comparatively inflexible since each sample relies upon the stored values of fixed samples In order to achieve natural sound, the filtering method requires a large number of multiplication steps which are economically expensive to achieve.

Both the harmonic summation and the filtering methods rely upon a linear combination of sinusoids and, hence J
they are characterized as linear methods for generating musical sound. The linear property is apparent from the fact that multiplying the amplitude of the input lung-lion (sinusoids for harmonic summation or a pulse train for filtering by a factor of two results in an output waveform with the same tone quality and with an amply-tune multiplied by a factor of two.

United States Patent 4,018,121 entitled "METRO OF
SYNTHESIZING A MUSICAL SOUND" to Crowning describes a non-linear method for generating musical sound That nonlinear method employs a closed-form expression (based upon frequency modulation) to represent the sum of an infinite number of sinusoids. That non-linear frequency STAN 3411 DEL/A (S80-20~ -3-83/01~27 I Lo modulation method produces a number of sinusoids which have frequencies. which are the sum ox the carries frequency and integral multiples of the modulation frequency. The amply uses of the multiples of the modulation frequency are sums of easily functions. The nonlinear frequency modulation method of Crowning is an improvement over previously used linear harmonic sum-motion and filtering methods, and has found commercial application in music synthesizers.

United Staves Patent 4,215,617 entitled "MUSICAL INCITORY-MINT AND METHOD FOR GENERATING MUSICAL SOUND" to Moorer describes improved non-linear methods of musical sound generation in which the amplitudes of frequency combo-newts are not constrained to the Bessel functions and in which finite spectra can be utilized, that is, spectra composed ox the sum of a finite number of sinusoid.

While many linear and nonlinear methods, like those described above, have been used with success for digital musical synthesis, they all have required fast and complex computational capability in order to achieve rich, natural sounds. Such fast and complex compute-tonal capability results in musical instruments of high cost and complexity. This high cost and complexity has impeded the widespread availability of digital Cynthia-skis .

Accordingly, there is a need for improved musical instruments employing digital synthesis which can be used with digital circuits requiring slower and less complex computational capability than that required by prior techniques, but which still produce rich and natural sounds. There is also a need for improved digital music synthesizers which can be constructed STAN 3411 DEL/A (S30-20) -4-LO I I
using conventional computer processors and conventional semiconductor chip technology.

In accordance with the above background, it it an objective of the present invention to provide an imp proved musical instrument and method of generating rich and natural musical sounds utilizing simple and convent tonal digital circuitry which does not require compute-tonal complexity SUMMARY OF TIE INVENTION
. _ _ The present invention is a musical instrument and method employing wavetable-modification for producing musical sound. The musical instrument includes a keyboard or other input device, a wavetable-modification generator for producing digital signals by wave table modification, and an output device for converting the digital signals into musical sound.

The generator includes a wave table which is periodically accessed to provide an output signal which determines the musical sound. The output signal from the wave table is modified and stored back into the wave table as modified data. The modified data, after a delay, is accessed from the wave table and thereby becomes a new output sunnily This process is periodically repeated whereby each new output signal is modified and stored back into the wave table. The new output signals are thus generated by wave table modification, in accordance with the present invention, and are used to produce rich and natural musical sound.

In accordance with the present invention, at any time, t, the modified signal, ye, which is stored back into STAN 3411 DEL/A (S80-20) I

the wave table is a function of the original contents of the wave table, it, and a modification component, my.
~hereforeO the signal ye is a function of it and my as follows:

Ye = fit my) In digital sample embodiment, the nth sample Of Ye it given as ye. Using the delay operator 9 dun, for a wave table exhibiting a delay of N cycles, when Yin is a function of the nth value, on, of it and the delayed value Of Yin given by d Yin times the modification component m as given in the following equation:

Yin Ion d Ynmn) In accordance with one embodiment of the type suitable for generating plucked-string sounds, the modification performed to generate the next modified value, Yin, is an average of a first delayed output Yin N and the previous delayed output Yn-(N+1) In the plucked string embodiment, the modified nth value to be tired back into the wave table is given as follows:
y = x + [Yin N + Yin (N+1)]/2 where:
On = nth sample from wave table where On is equal to O for n greater than (Nil) Yin = modified output at nth sample STAN 3411 DEL/A (S80-20) -6-N wave table delay (approximately thy desired pitch period of the note in samples) Yin = sample delayed by N

Yin (Nil) = sample delayed by No In the plucked string embodiment, the modification it implemented, for example, as a simple addition and binary shift (divide-by-~wo) of data stored in a wave table r The location ox data in the wave table, in one distal memory embodiment, is determined by memory address pointers. A Read Pointer specifies the location of the delayed sample, Yin My A "Read Pointer + Al is offset from the Read Pointer by one and specifies the location of the delayed sample Yn_~N+1).
value, Yin, is stored into the wave table at a location specified by a Write Pointer. The Write Pointer is offset from the Read Pointer by the pitch delay No In a multi-voice embodiment, the pitch delay N is typically different for each voice. A Read Pointer and a Write Pointer are determined for each voice.

The wavetabl2-modification method of the present invention achieves the objective of providing an improved digital instrument which can be implemented with low computational requirements The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention as illustrated in the accompanying drawings.

STAN 3411 DEL/A (S80-20) -7-Fig, 1 depicts an electrical block diagram of a musical instrument incorporating the present invention.

Fig 2 depicts an expanded electrical block diagram of the Fig. 1 musical instrument.

Fig 3 depicts a schematic electrical block diagram of the modifier unit which forms a portion of the wavetable-modifieation generator in the Fig. 2 musical instrument.

Fig. 4 depicts a graph of the amplitude versus frequency of the output signal during the first fifteen periods for a typical note of musical instrument of the Fig. 2 and Fig. 3 type.

Fig. 5 depicts an electrical block diagram of one embodiment of the present invention which is constructed utiiizin~ a DIGITAL semiconductor chip.

Fig. 6 depicts a schematic electrical block diagram of the DIGITAL chip employed in the Fig. 5 musical instrument.

STAN 3411 DEL/A (S80-20) -8-So ' Do Lo D~6C~ Ox In Fig. 19 a digital synthesizer musical instrument is shown. The instrument includes an input unit 2 which specifies a musical wound to be generated, a wavetable-modification generator 3 for generating signals representing the sound Jo be produced and an output unit 4 for producing the desired sound, In Fig. I, further details of the Fig 1 instrument are shown. The input unit 2 typically includes a keyboard 5 which connects electrical signals to an interface JO
The keyboard 5 is of conventional design and produce electrical signals representing, among other things, which keys are depressed. While keyboard 5 is a typical device for specifying notes to be played, any other type of input for specifying a note to be played can be employed. Additionally, the input unit 2 typically includes means for specifying the force (amplitude) of the note and the duration of the note to be played.

The interface unit 6 encodes the keyboard information (pitch, amplitude, and duration) and transmits it to the control unit of the wavetable-modification generator 3.
The generator 3, in response to the signals from the input unit 2, generates a signal on the output bus 8 which in turn connects to the output unit 4. The output unit 4 converts the signal on hut 8 to the desired musical sound. Typically 9 the output unit 4 includes a digital-to-analog converter 9. Analog signals output from the converter 9 connect through a Lopez filter 10 and an amplifier 11 to a speaker 12. The speaker 12 produces the desired musical sound.

STAN 3411 DEL/A (S80-20) -9-,.

In Fig 2, the wavetable-modification generator 3 includes a wave table 13, a modifier unit 14 and a control unit 15. The wave able 13 acts like a delay device having a delay time, p. Modified signals from modifier unit 14 are stored in wave table 13 where they are delayed a period, p, before appearing on bus 16.
Output signals from the wave table on bus 16 are modified in modifier unit 14 and stored in wettable 13~ In a digital implementation, the delay time p, is represented by N samples of data. As a digital device, wave table 13 is a digital memory for storing N samples of data. For values of time, t, less than pi the wettable 13 stores initial values of it. For a digital system, t is quantized into N values of n so that for initial conditions, on has N initial values.

By way of background, the wave table 13, in the absence of any modification in modification unit 14, will generate an output signal Ye which is periodic with the delay time, p. When the original contents in the delay line are it, the output signal, ye, can be expressed as follows:

Ye = Yip = It ~13 If time, t, is quantized to discrete values, n, and p equals N values of n, where N is an integer, and on represents N discrete values of it, then En. (1) can be written as follows:

Yin = Yin on I

Because a modification is made by the modification unit 14, Ens. I and (2) do not apply to the output signal utilized in the present invention.

STAN 3411 DEL/A (S80-20) -10-. UP
In accordance with the present invention, at any time, t, the modified signal, Ye, which is stored back into the wave table is a function of the original contents of the wave table it, and a modification component, my.
Therefore, the signal Ye is a function of it and my as given by the following En. I

y = fox m ) (3) In a digital sample embodiment, the nth sample Of Ye is given as Yin and using the delay operator, dun, for a wave table exhibiting a delay of N cycles, Yin is a function of the n value of on and the delayed value of Yin given by dNyn times the modification factor my as given in the following En. (4):

Yin - (On 9 d Ynmn) In connection with En. (4), the maximum number of samples stored for the value N can be any number. The greater the number of samples, the lower the frequency components which can be produced. In one example, 256 8-bit samples are stored. Also, many different types of modification components, my, can be selected. For simplicity and economy, however, it is desired to have my computational simple One simple modification component will be described in connection with the generation of a plucked-string musical sound.

Plucked-Strin~ Sound In Fig. 3, further details of a modifier unit 14 for generating plucked string musical sounds are shown. The unit 14 includes a delay 26 which delays the signal on bus 16, Yin by one period of n. The output from the delay 26 forms one input Yn-lN+l)~ on line 28 to an STAN 3411 DEL/A (S80-20 .

3L58~
arithmetic unit (All) 27~ The other input to the arithmetic unit 27 is derived directly from the bus 16.
The arithmetic unit 27 adds the value on bus 16 to the previous value on buy 16 (which is the output from delay 26~ and forms their sum. The shift input 29 to thy arithmetic unit 27 causes the sum to be shifted one binary hit, thereby dividing the sum by two.

Wit the modifier unit of fig. 3 connected in the wavetable-modification generator 3 of Fig. I a plucked string sound will be generated The wavetable-modific-anion generator 3 in Fig. 2 wormed using the modifier unit 14 of Fig 3 is analogous, in some ways, to a digital filter. The digital filter in the form of generator 3 simulates the string of a mechanically vibrating stringed instrument. A short input signal to the digital filter represents the "pluck" of the "string" and excites the generator 3 to generate the desired output signal during a subsequent decay period.
The output signal from the modifier unit 14 as it appears on line 8 in Fig. 2 is given us follows:
..

Yin on Yin N Yin /2 15) where I is the input signal amplitude at sample n, Yin is the output amplitude at sample n, and N is the desired pitch period (approximately of the note in samples.

The basic plucked string sound is obtained by exciting the generator 3, for example, with a short burst of "white noise". A burst of white noise is attained by selecting the values of on in En. (5) as follows:

On = Aunt when n=0,1,2,.,.,(N~1) (61) STAN 3411 DEL/A (S80-20) -12-LS~6~ go On = it when nun . ~Ç~1 where is the desired amplitude, and us has values Al or -1 as a function of the output of a random number genera or. The values of On for n equal to 0, 1, OWE
No ore stored in wave table 13 as initial values existing prior to any modification by modifier unit 14.

Finally, the output Yin is utilized by the output device 4 in Fig. 2 to generate the sound beginning at the time when n equals N.

Analysis of the Plucked String Sound The input-output relation of En. l53 can be expressed differently by means of "delay operator" notation. We define the unit sample delay operator, d, by the no Latin, k d on Ink I

where on is an arbitrary signal, and k is an integer.
Multiplying a signal by do delays the signal in time by k samples. In these terms En. I becomes, Yin = On ~dNyn + dun 1Yn~/2 = On d [(l+d)/2~yn. (8) Solving En. (8) for the output signal Yin yields, Yin = xn/[l-[ll~d)/2]d I. (9) Linear delay-operator equations convert immediately to z-transform equations by replacing each time signal by its z-transform, and replacing d by z 1. Time signals STFD2/W~V
STAN 3411 DEL/A (S80-20) -13-!

such as on or Yin are denoted in lower case letters and the corresponding transforms are denoted in upper case letters, for example K or v.

The transfer function of a (linear time invariant) digital filter is the z transform of the input The transfer function of the plucked string simulator of Fig.' 2 is found therefore by substituting 2 1 for d in En. (9) and transposing as follows:
Ho = YUCCA Liz 1)/2]z N]
= 1/[1 [Ha(z~3[Hb~z)]]. ~10) where, Halt) = (1 + z I

Hb~z) = z Ens. (9) and lo) describe one embodiment of the wavetable-modification generator 3 of Fig. 2. The feedback loop consists of a length N delay line Hub, implemented as wave table 13, in series with a two-point average He, implemented as modifier unit 14. The input to wave table 13 is at terminal 20 and the output from modifier unit 14 is at terminal 21. Terminal 21 is connected to terminal 20 in a feedback relation which forms a closed loop.

The frequency response of the Fig. 3 generator is defined as the transfer function evaluated at z = eta =
Cousteau) + joint where T is the sampling period in seconds IT is the inverse of the sampling rate f5), =

STAN 3411 DEL/A (S80-20) -14-of it radian frequency f is frequency in Ho, and j a I

The frequency response of the plucked string instrument of Fig. 2 is given a follows:

Hut = H~(ei~T)Hb(ei~T)~ (if) where, (eye [lye ~]/~ = e j~T/2 Cousteau) e cost (12) To = e ANT = e-j2~fNT tl3) It is useful to consider the amplitude response and phase delay of the wave table component, Hub, and the modifier component Ha, separately The amplitude response is defined as the magnitude of the frequency response, and it gives the gain as a function of frequency. The phase delay is defined as minus the complex angle of the frequency response divided by radian frequency, and it gives the time delay (in seconds experienced by a sinusoid at each frequency.

The amplitude response Go and Go of each component Ha and Hub, respectively, is given as follows:

Go - aye Cousteau)¦ = cost ~14) Gb(f~ = byway 1 (15) Thus, the delay line component Hub is loss less and the two-point average Ha exhibits a gain which decreases STAN 3411 DEL/A (S80-20) -15-owlet so with frequency according to the first quadrant of a cosine All frequencies are restricted to the Nyquist limit, what it, PI s I In this range, we have ¦cosl~fT)¦ = cos5~fT).

It is more convenient to define phase delay in units of samples rather than seconds. The phase delays of Ha and by on sample are given as follows:

Pa = Huge To = 1/2, (16 Pub byway To = N . ~17 where, '7/" denotes the complex angle of z.

The ~wo-point average He has phase delay equal to one-half a sample 1/2, and the delay line has a phase delay equal to its length, N. Since the total loop consists of Ha (modifier unit 14~ and Hub (wave table 13) in series, we have a loop gain given as follows:
Loop Gain = Go Go I = coy (oft), (18) and the effective loop length is given as follows:

g c Pb(f~ = N + 1/2 (samples) ~19 or each sinusoidal frequency f Hzu In synthesizing a single plucked string note, N samples of white noise at amplitude A are supplied by the wave table 13 and the output sound occurs immediately after the first N samples. The delay line Hub STAN 3411 DEL/A (S80-20) ~16-I
represented by wave table 13 it essentially filled with scaled random numbers at time 0 and need employ no other input signal. Since the two-point average pa from modifier unit 14 is constantly changing, the contents of the loop and the output signal Yin are not periodic.
However the output signal it close Jo periodic and, therefore, the term "period" in this application is intoned to mean nearly periodic or quasi-periodic.
Each "period" of the synthetic string sound corresponds to the contents of the delay line (wettable 13) at a particular time, and each period equals a mildly low-passed version of the previous period. More precisely, a running two-point average of the samples offset by one period gives the next period in the output waveform. Since the effective loop length is N + 1/2 samples, the period is best defined to be NT + T/2 seconds where T is the sampling period and is equal to l/f5 where is is the sampling frequency. Experience shows that the quantity NT + T/2 corresponds well with perceived pitch period.

Decay of Harmonics -Since the output signal Yin is quasi-periodic, the output signal doe not consist of discrete sinusoids.
Essentially the output signal has many narrow bands of energy decaying to zero at different rates. When these energy bands are centered at frequencies which are an integer multiple of a lowest frequency, they will be referred to as "harmonics". When the frequency components are not necessarily uniformly spaced, the term "partial" will be used to emphasize the possibility of inharmonicity~

Consider a partial at frequency f Ho circulating in the loop. On each pass through the loop, the partial STAN 3411 DEL/A (S80-20) -17-suffers an attenuation equal to the loop amplitude response, Ga(f1Gb(fl equal Jo cost~fT), what is, One Period's Tunisian = coy fit .

Since the raindrop time in the loop equals N + 1/Z
samples, the number of trips through the loop after n samples ant seconds) is equal to nun 1/2) tf5/(N 1/2). Thus the 'attenuation factor, aft at time t - nut is given as follows:

aft) = tCOs(~f~)~[tfs/(N + 1/2)~ ~20) For example, an initial partial amplitude A at time 0 becomes amplitude Oaf at time t seconds, where f is the frequency of the partial.

The time constant", Of, of an exponential decay is traditionally defined as the time when the amplitude has decayed to 1/e, that is, to approximately 0.37 times its initial value. The time constant at frequency f is found by equaling En. (20) to e t/(Cf~ and solving for Of as follows (note that is = l/T):

Of - ton all = -Len + 1/2)T]/[ln cosi~fT)] (seconds) ~21) For audit it is normally more useful to define the time constant of decay as the time it takes to decay -60 dub or to 0..001 times the initial value. In this case, we equate En. (20) to 0.001 and solve for to This value of t is often called t60. Conversion from Of to t60(f) is accomplished in the following manner-t60(f) = ln(lOOO)cf ~22) STFD2~WAVSTAN 3411 DEL/A (S80-20) -18-that is, approximately 6.91cf, ..
For example, if a sinusoid at frequency f Ho has amplitude A a time 0, when at time t60(f) it has amplitude Aa~(t~O(f)~ = A/1000, or it is 60dB below its starting level.

the` above analysis describes the attenuation due to propagation components around the loop It does not, however, incorporate components which do not "fit" in the loop and which are quickly destroyed by self-interference. This self-interference is analogous to a physical string which is mechanically vibrating.
Any excitation may be applied to the string, but after the excitation ceases, the remaining energy quickly assumes a quasi-periodic nature determined primarily by the length of the string.

In a similar manner, even though the loop in the Fig. 2 instrument is initialized with random numbers, after a very short time the primary frequencies present in the loop will be those which have an integral number of periods in N + l/2 samples. These frequencies are all multiples of the lowest frequency, called the fund amen-tat frequency, whose period exactly matches the loop length N 1/2. This lowest frequency, fly provides the pitch frequency of the note and is given as follows:

if = 1/[tN + 1/2~T] = fS/tN + 1/2~. ~23) where, is = sampling frequency T = l/f5 = sampling period STAN 3411 DEL/A (S80-20) -19-I
I, .
Setting f to the harmonic series beginning with if as hollows, ok = I - klfg/(N + l/2)3, ~24 where, ' k = 1~2,...Nt2, gives the decay factor at time t for the kth harmonic as hollows:
a = [cos(~fkT)]flt. (25) Similarly, the time constant per harmonic is given in seconds as follows:
I = tJ[ln a]
= -[l/[flln(cos(~fkT~] (26) Fig. 4 shows the spectral evolution during the first fifteen periods of a note having a period of 128 samples from an instrument of the Figs 2 and 3 type. A length 128 Fast Fourier transform FIT was computed every other period, that is, for n equal to 0, 2, 4, ..., 14~
Note that the higher harmonics decay faster; this mimics the behavior of an actual string, where the higher harmonics dissipate their energy faster.

In certain alternative embodiments, where the modifier unit 14 has Ha considered more generally than a STFD2t~AV
STAN 3411 DEL/A ~S80-20) -20-I I
two-point average, the attenuation factor of the oh harmonic after t seconds it given a follows:

a arts Park) ] ] ' (27) where Galf~sl for stability. The phase delay Park is the same at all harmonic frequencies ok.

Similarly when pa is considered more generally, the time constant of decay for each harmonic it given in seconds as follows:
I = -[(N Pa(fk))/(~sln~a(2~k l)] I

Sixteen Voice Embodiment In Fig. 5, a 16-voice embodiment of the Fig. 2 instrument employing a modifier unit of the Fig. 3 type is shown.

In Fig. 5, the wave table 13 is a random access memory (RAM) having sixteen different storage resigns one for each of sixteen voices. Each of the storage regions has w~ve-tabl~ storage locations for 256 8-bit bytes.
Accordingly, N is a maximum of 256 for any voice. The wavetable-modification generator 3 also includes an 8-bit output register 36 and a DIGITAL unit 35. The DIGITAL unit 35 performs the modifications of the type previously described in connection with the modifier unit of Fig. 3 for all sixteen YOice9 of the Fig. 5 instrument. The DIGITAL unit 35 has a 12-bit address bus 38 connected to address the wave table 13.
Additionally, the unit 35 connects to the 8 bit data bus 37. Data bus 37 also connects the wave table 13 to the output register 36. Input unit 2 is connected by bus 7 STAN 3411 DEL/A lS80-20) -21-37. Data bus 37 also connects the wave table 13 to the output resist r 36. Input unit 2 is connected by bus 7 to the common data bus 37. The output register 36 connects by 8-bit bus 8 as an input to the output unit 4 and as a Dow input to ho wave table 13.

Fllrther details of the DIGITAL unit 35 of Fig. 5 are shown in Fig. 6.

In Fig. 6, the data bus 37 connects as an input to the data-in latch 45 and receives an output from the instate gates OWE The Dunn latch 45 and the instate gates 46 connect to the common data bus 47 which is identified as the B bus. Data is input to and output from the DIGITAL unit of Fig. 6 over the B bus 47 and data bus 8.

In Fig 6, an A bus 48 is utilized to carry the address to an address register 49. Address register 49 connects its output to a 12 bit address Gus 38 which provides addresses to the wave table 13 in Fig. 5. The four low-order output bits on bus 50, from the address resister 49, are encoded to specify one of the 16 voices. The bus 50 also connects as an input to the voice-match comparator 52.

In Fig 6, the Mu latch 53 receives data from the Bus 47 when the latch signal Mu-L is asserted. The bit toga-lions in latch 53 are designated coy at, ..., C7 0 The 8-bit output prom the latch 57 connects to a number of inputs. The high order bits at, ..., c7 connect as an input to the zero detector 40. Zero detector 40 detects when all of the bits clue ..., c7 are O's and respond lively asserts an output on line 98. The output on line 98, when asserted, is a latch signal to the 1-bit mode STUN 3411 ALA (S80-20~ -22 ~2~36~
latch 91. Mode latch 91 receives thy coy bit from latch 53. When the coy bit lo eked into latch 91 is a logical 0, it indicate that the parameter mode has been selected. When the bit in latch 91 is a logical 1, it indicates that the pitch/amplitude mode has been selected. The output from latch 91 connects as an input to NOR gate 97. Gate 97 receives its other inputs from the zero detector 40 and the c4 bit from latch 53. when zero detector 40 senses with a non-asserted output that all of the wits at, ..., c7 are not logical 0 and latch 91 stores a 0 to indicate that the parameter mode is called for, gate 97 is satisfied when c4 is zero to provide a latch signal to the voice latch 90. Voice latch 90, in response to the latch signal from gate 97, stores the bits coy ,.., c3 from the Mu latch 53. In this manner, a new voice is selected to allow different parameters for that voice to be changed The output prom the voice latch 90 connects as the other input to the voice match comparator 52. When the voice identified in the voice latch 90 corresponds to the voice being addressed by the address latch 49, the output from comparator 52 is asserted on line 54.

In Fig. 6, the output line 54 from the voice-match comparator 52 connects as enable inputs to the AND gates 94 and 95. Gates 94 and 95 are, therefore, enabled whenever the voice identified in latch 90 is the same as the voice being addressed by the address latch 49.

The other input to AND gate 94 is the output from thy mode latch 91 on line 85. Gate 94 will be satisfied, therefore, whenever the voice match occurs and the mode latch go indicates that the unit is in the pitch/amplitude mode. AND Nate 94 controls the opera-lion of the multiplexer 92.

STAN 3411 DEL/A (S80-20) -23-~3/01/27 I

multiplexer 92 receives one data input from the Mu latch 53 and the other input from the Bus 47. When gate 94 is satisfied, the multiplexer 92 selects the lower input from the latch 53 and loads a new pitch or amplitude value into the Pot stave 56l of the shift register 56.
When gate 94 is not satisfied, multiplexer 92 selects thy data on the B bus which is derived from the Plop stage 5616 of the shift register 56.

In a similar manner, the AND gate 95 is satisfied when the mode latch 91 is in the parameter mode. When satisfied, gate 95 controls the parameter multiplexer 93 to select the lower input to load new parameter values from the Mu latch 53 into the Pot stage 55-1 of the shift register 55~ When gate 95 is not satisfied, multiplexer 93 selects via bus 44 the Plop data from stage 551~ to be reinserted into the Pot stage 551.

In the manner described, in response to commands in the latch 53, new pitches or amplitudes can be inserted into the corresponding voice location in the hit register 56 or new parameters can be inserted into the corresponding voice location in the shift register 55.

In Fig. I, the arithmetic unit 62 is a conventional 12-bit device which, among other things, adds 12-bit data received on each of its two input ports Unit 62 is partitioned into an 8-bit high-order portion and a 4-bit low-order portion. The carry-out from the low-order portion is Orbed with the line 43 signal to form the carry-in to the horder portion. A carry-in 1 on line 43 is used to add +1 to the high-order 8-bit portion under control of the kern unit 64 when the low-order four bits in latch 61 have been cleared to 0 by the Z-B signal. One of the input ports for the STAN 3411 DEL/A (S80 20) -24--arithmetic unit 62 is fed from the Betty latch 60 and the other input port it fed prom the 12-bit B latch 61.
The A latch 60 derives its input from the A bus 48 and the B latch derives its input from the B bus 47. An 8-bit R latch 65 connects data from the high-order 8 bits of the bus 47 Jo the corresponding high-order 8 bits of the A bus 48. A Betty T latch 66 connects to and from the A bus 48 for use as a register for storing the current Write Pointer address. The 13-bit output from the arithmetic unit 62 connects to a 13-bit C latch 67 either directly or after inversion in inserter 63.
The C latch 67 connects the low-order twelve bits of its output to the A bus 48 when the C-R/A signal is asserted and connects the high-order eight bits directly to the B
bus 47 when the C-R/B signal is asserted. Selecting the high-order eight bits from the 13-bit latch 67 effectively shifts by 1-bit, that is divides by 2 any 8 bit number in the C latch 67.

In Fig. 6, the decay/compute unit 58 is a selector for selecting different probability values idyll from the random bit generator as a function of the rate specified by bits c0, at, c2 from field 55-1 and by the coherence bit c3 from field 55-2 of the Plop stage 5516. The outputs from unit 58 are the Proud and the " PROBE n lines.

The output on the PROBE line is a logical 1 only ox the time and logical 0 the other half of the time except when the coherence bit c3 is asserted, in which case the output on the PROBE line is the same in a current cycle as it was in the previous cycle. The PROBE line is one input to the control logic 71 and also is an input to the AND gate 39. The gate 39 derives its other input from the c7 bit, the dither bit, from the STFD2/~AV
STAN 3411 DEL/A (S80-20) -25-r output field 55-3 of the stage 5516. ho output from gate 39 form one ox the control inputs to the carry in unit 64.

The Proud line output from the unit 5B has either a 1 or a 0 state where the probability of being a 1 it controlled as a function of the 3-bit output from the field 55-1, command bits c0, at, c2. In this manner, the` Proud line has 1 or 0 logical states with top relative probability select blew The Proud line connects as one input to the carry-in unit 64 and as another input to the latch So. The input to the E
latch 59 selects either the true or complement value of the quantity stored in the E latch to be grated out onto the B bus 47 as a function of the 1 or 0 state, respectively, of the Proud line.

In Fig. 6, the Proud line connects as the other input to the carry-in unit 64. The carry-in unit 64 is a selector unit for selecting either the Proud line or the output from the AND gate 39 as the signal to control the carry-in line 43, When the "do" line from control logic 71 it asserted, the gate 39 line is selected. When the control line fend is asserted from control logic 71, then the Proud line from the unit 58 is selected.

The effect of selecting the Proud line during the decay operation is to permit decay stretching to occur. Under the operation with no decay stretching, the carry-in from the unit 64 on line 43 adds a +1 value to the Read Pointer address to allow the Read Pointer +1 address to be calculated. For decay stretching, however, the addition of Al is inhibited some number of times so that the Read Pointer address is used twice rather than using the Read Pointer Al address Under these conditions, STAN 3411 DEL/A ISSUE) -26-Jo thwacks is no modification to the data value read from the Read Pointer address and the same data value it placed back into the Write Pointer address. The greater the frequency with which the +1 addition is inhibited, the longer the stretching. The Proud line also is used during the pluck operation Jo select different initial values of amplitude !' DIGITAL Control The control of the DOTTER unit of Fig. 6 is carried out by control (CURL) logic 71. Control logic 71 contain-uou51y cycles through seven control cycles where each Seychelles a first phase and a second phase. The control cycles are designated as 11, 12; 21, 22~ I 72.
All of the cycles I 72 axe collectively referred to as one logic-array cycle or simply as a logic cycle.

A number of control lines 73 are output from the control logic 71 and connect throughout the Fig. 6 unit and in some cases to the Fly. 5 instrument.

The control lines 73 form the control logic 71 and their functions are indicated in the following TABLE I.

STAN 3411 Delta (S80-20) -27-ç ~L2~51!~

TABLE I
,_ LIVE FUNCTION

E L Latch B By Data into E Latch 59 Moe watch B Bus Data into Mu Latch 58 DORIA ate Data from DO Latch 45 onto B Bus 47 E-R Gate Data from E Latch I Jo Bus 48 if P is 1 T-L Latch A Bus Data into T Latch 66 T-R Gate Data from T Latch 60 to A Bus 48 fend Carry-in Bit 4 Selected from Random Bit Generator 57 do Kern Bit 4 Selected from Gate 39 Rebus A and B Busses Charged to R L Latch Bus B Data into R Latch 65 R-R Gate Data from R Latch 65 to A Bus
2 B Zero Low-Order 4 wits of B Latch 61 ABEL Latch Data into A and B Latches from Busses A and B
Prey Clear C Latch 67 Charged to l's Complement C-L Latch Data from Line 69 into C Latch 67 Unless C-L
is 1 C-L Latch Data from Line 72 into C Latch 67 Unless R is 1 C-R/A Gate Data from C Latch 67 to A Bus 48 C-R/B Gate Data from C Latch 67 to B Bus 47 if P is 1 Ad-L Latch Data from A Bus into Add Latch 49 Spy Special Cycle Latches Output Register 36 DO-R Gate Data on B Bus through Gates 46 to Data Bus 8 DX-L Latch Bus 8 Data into DO Latch 45 S-1 Internal Shift of Registers 55 and So does not Affect Plop nor Voice Number Stored S-2 Shift of Registers 55 and 56, Changes Plop and Changes Random Bit STAN 3411 DEL/A (S80-20) -28-on TALE I, the postscript L for each o he signal lines indicates thaw a latching function into a latch occurs. A postscript R indicates that a read (gate out) function from the lath circuit occurs.

The following TABLE II depicts the binary and other states of each of the lines identified in TALE I for each phase of the seven control cycles produced by control logic 71 of Fig. 6.

The P and P signals for thy line E-R and C-R/B, no-spectively J ore determined by the c5 and c6 bits from staves 55-5 and 55-4 of register stamp 5516. If bits c5 and c6 are both I , then P is 1 and P is O,. when P is 1, it indicates the plucking period for selecting the amplitude from the E latch 59 to the B bus 47. When P
is 1, the output data is selected from the C latch 67 to the B bus 47. The L signal for line C-L is the 1 or 0 state of the line C-L. The signal in the line C-L is a 1 in the harp mode, that is, local parameter bit c4 is 0 and c5 it 1. In the drum mode us and c6 both U), R
is the "PROBE" signal from unit 58. The D signal in the "fend" line is the complement of c7 (the dither bit).
In the Z-B line, the 0 symbol indicates that either a 0 or 1 can be present.

STAN 3411 DELTA (S80-20) -29-twill I ~2~5~
TABLE I I
Line 1 2 1 2 3132 41 42 51 52 61 I 71 7 , I, _ Mu L 1 0 û O 0 O O O O O O 0 E -R, 0 0 0 0 0 0 0 0 0 0 0 0 P 0 I; R 0 0 0 0 0 0 0 0 0 () 1 0 0 0 fend 0 0 0 0 0 0 0 0 0 D 0 0 0 0 do 0 0 0 0 0 l 0 0 0 0 0 0 0 0 Rebus O 1 0 1 0 1 0 1 û 1 0 1 0 R-R 0 n o o o o o o 1 o o o o o Z-B 1 0 p 0 1 0 0 0 1 0 P . 0 0 0 Prey 1 0 1 0 1 0 1 0 1 0 1 0 C-L 0 l 0 0 0 1 0 0 0 L 0 0 0 ..
C-L O O O O O O O û O R 0 0 0 0 C-R/B 0 0 0 0 0 0 0 0 0 0 0 0 p Ad-L 0 0 1 û O 0 1 0 0 0 1 0 0 0 Spy O O O O O O O O O O O 1 1 DO-R 1 0 1 0 l 0 1 0 1 0 1 0 1 0 DILL 0 1 0 1 0 1 0 l 0 1 0 1 0 S-l 0 0 1 1 0 n o o o o o o o o S-2 0 0 0 0 0 0 0 0 0 0 1 1 û O

STUFFED WOVE
STAN 3411 DEL/A ~S80-20) -30-2~L5~
Command Control The operation of the DIGIT unit of Fig. 6 is under control of commands. Each command ha 8 bits which are designated from horder to low-order as c7, c6,..~, coy There are two modes for interpreting commands, the parameter mode and the pi~ch/amplitude mode. During the parameter mode, parameters useful for the operation of the Fig. 6 device are loaded from an external source such as input unit 2. During the pitch amplitude mode, pitches or amplitudes are specified from the external source.

During the phase I of Mach logic cycle, the data from the data-in latch 45 is stored into the Mu latch 53.
During phase 11, the mode of the cycle is detected and stored in mode latch 91 of Fig. 6 for determining the Pot data entry locations of the control shif~-registers 55 and 56.

To enter the parameter mode, the command bits on bus 7 are all O's. To enter the pitch/amplitude (pow mode, on bus 7, the command bits c7, c6, c5, c4, c3, c2, at are all 0's and the command bit coy is 1.

Parameter Mode When in the parameter mode Mode latch 91 set to I
there are two types of parameters, global parameters which are defined when the command bit c4 is 0 and local parameters when c4 is 1. In order to describe the commands, it is useful to group them in terms of the high-order nibble including the four high-order bits c7, c6, c5, c4 and the low order nibble including the four larder bits c3, c2, at and coy The four high-order bits and the four low-order bits can each have their 1 and 0 binary states represented by a hexadecimal STAN 3411 DEL/A (S80-203 -31-~2~865~
character, For example, when the four high-order bits are 0, the hexadecimal character oh indicates that all bits are 0. When the four low-order bits are 0001, then the hexadecimal character lo is used to indicate that he wits have these values. In order to indicate that all four bits are all lo 5, the hexadecimal character I
is utilized. Hexadecimal characters are indicated by a subscript "h" representing base 16 binary numbers That it, each hexadecimal character is expandable to four binary bits.

The command codes for the parameter mode are given by the following TABLE III.

STAN 3411 DEL/A (S80-20) -32-S~365~

TABLE III
REX BINARY FUNCTION
7, I us, c4, c3, c2, clue c0 h~h 0 enter par mod Glue 0 0 0 0 0 0 0 enter p/a mode GLOBAL PER
;
Shucks 1 1 0 0 X X X X select voice XXXX
EhXh " 1 1 1 0 X X X X select voice, rest 57 LOCAL PA
lhXh 1 X X X X drum (dither 3hXh l 1 guitar (dither 5hXh 0 1 0 l harp (dither) 7hXh 0 1 1 l pluck Dither 9hXh 1 0 0 1 drum BhXh 1 0 1 1 guitar DhXh 1 1 0 1 harp FhXh 1 1 1 1 pluck _ FUNCTION
Xh0h Always Decay (Stretch 1) Cohere Xhlh decay Probability 1/2 (Stretch I Cohere Oh h Decay Probability 1/4 (Stretch 4) Cohere Xh3h Decay Probability 1/8 (Stretch 8) Cohere Xh4h Decay Probability 1/16 (Stretch 163 Cohere Xh5h Decay Probability 1/32 (Stretch 32) Cohere Xh6h Decay Provability 1/64 stretch 64) Cohere Xh7h Never Decay stretch Infinity) Cohere Xh8h Always Decay stretch 1) Independent Xh9h Decay Probability l/2 (Stretch 2) Independent Shah Decay Probability 1/4 (Stretch I Independent XhBh Decay Probability 1/8 (Stretch 8) Independent XhCh Decay Probability 1/16 (Stretch 16) Independent XhDh Decay Probability 1/32 (Stretch 32~ Independent Zoo Decay Probability 1/64 (Stretch 64) Independent XhFh Never Decay (stretch Infinity) Independent STAN 3411 DEL/A (S80-203 ~33-2~6~
The various parameter sex forth in TABLE III provide for many different variations in the basic plucked string sound. In the present example, there are three types of plucking instruments which are defined by the high-order nibble. Those instruments are the drum (lhXh3, thy gawks ~3hXh) and ho harp (5hXh~. In addition to the three types of instruments, the energization, thaw is, the "pluck" is specified by the local parameter 7hXh. The presence or absence of a modulation bit (called a dither Kit) is also controlled by the local parameter high-order nybblen The character Oh in TABLE III indicates that the nibble can have any value.

In TALE III, the low-order nibbles of the local parameters for the last sixteen entries specify the decay characteristics.

The eight entries in the following TABLE IV show representative examples of parameters specified.

STAN 3411 DEL/A (S80-20) -34-36~
TABLE IV

HEX FUNCTION

LOCAL PAR
.
7h9h Symmetric Pluck it Random Noise) 7hBh Asymmetric Pluck 11~8 Inversion) Good for 1' Subsequent Harp Decay 3h8h Guitar starch 1) Dither, don ' t Cohere 9hgh Drum (Stretch 2) no Dither or Cohere Dh8h Harp Stretch 1) no Dither or Cohere 7h8h "Jam" Constant DhFh Odd Harmonics "Organ" Mode BhFh All Harmonics "Organ Mode In opportune during the local parameter mode, the data value of the command bits c2, at, c0 are stored in the
3-bit field 55-1 of the shift register 55. The coherence control bit c3 is stored in the l-bit field 55-2. The control bits c7, c6, and c5 are stored in the l-bit fields 55-3, 55-4, and 55-5.

When mode latch 91 indicates that a local parameter mode is present and comparator 52 indicates that the voile located in the bottom stage 55~ of the shift register 55 it the correct one, then the local parameters are grated from the B bus 47 into the bottom stage 551 of the shift register 55. During each logic array cycle ("logic cycle"), comprising all cycles (both phases) 1 through 7 of TABLE II, the contents of the shift register stages 55 and 56 are shifted one stage That is, the data in the bottom stages 551 and 561 is shifted to the next adjacent stages 552 and 562 and so on until the data in STAN 3411 DEL/A tS80-20) -35-I
stages 5515 and 56l5 it shifted into the top stages 5516 and 56l6, respectively. The 16 stag 550~ 551~
16 561~ 562' -I 5616 correspond to the 16 different voices of the Fig. 5 and the Fig.
instrument.

zany different control parameters can be stored in the shift register 55. The basic operation of the instrument, however, it the same regardless of these parameters as will be described now in connection with the operation during the pi~ch/ampli~ude mode.

Pitch/Amplitude Mode During the pitch/amplitude mode, each sound is constructed from an initial pluck at some amplitude followed by a decay at some specified pitch. In Fig. 6, the sixteen 8-bit staves of the shift register 56 are employed during the "pluck" period to store the maximum amplitude of the pluck and thereafter during the decay period to store the pitch period.

The pitch/amplitude mode is entered when the Oily code is detected in the Mu latch 53 during the first phase of the seven-cycle logic cycle of TABLE II. If the pitch/
amplitude mode is being entered for the first time in connection with a note ox a given pitch, then the Oily code will be followed by the amplitude of the pluck sound and that amplitude will be stored in the bottom register stage Pot 561. This amplitude stored in the shift register stage 561 is utilized to fill the wave table unit 13 of Fig. 5 with appropriate initial values. Either the positive or negative amplitude value icky stored at each location in the wave table for that voice as a function of the 1 or 0 output of random bit generator 57 in Fig. 6.

STAN 3411 DEL/A (S80-20) -36-The manner it which the Fig. 6 circuitry lords the amplitude into the wave table is a follows. During thy first cycle, I the next address location it obtained from the C latch 67 and stored in the T latch 66. The amplitude value it accessed from the Prop stage 5616 and transferred over the Bus 47 to the E latch OWE

In '! cycle 61, the address from the T latch 66 is tr~nsfPrred Jo the address latch 49 and to the A latch 60~ The B latch 61 is loaded with a -1 so that in cycle 72~ the address in the C latch 67 has been decrement Ed by -1. In cycle 71' either the plus or minus amplitude value stored in the E latch 59 is grated through the Data out gates 46 for storage in the memory location of address latch 49. This process is repeated until the wave table is filled with the plus or minus values of amplitude. While the wave table is being filled, output data equal to the plus or minus values of the amplitude are supplied to the output unit 4. These values of the amplitude constitute the plucking sound. The plucking sound is present for the duration that the wave table is being filled with the plus and minus amplitude values.

At the appropriate time specified by a command which terminates the plucking phase and starts the decay phase, the pitch/amplitude mode is again entered and the pitch period number, N, is entered into the bottom shift register stage (Pot) 561. As logic cycles are completed, commands are executed for each one of the sixteen voices.

During the decay portion of the pitch amplitude mode, the instrument of Figs. 5 and 6 continues to perform the operations as set forth in En. (5) above in the following manner.

STAN 3411 DEL/A ~S80-20) -37-The Fix. 6 unit employs a common Write Pointer for all sixteen voices. The Roy Pointer points to tube address in the wave table at which the currently modified data value is to be pored. The Write Pointer is stored in the T latch 66 of Fig. 6. The low-order four hits in the T latch represent thy voice field of the address and correspond to the voice field output from address latch 49 one Betty bus 50. The high-order 8 bits in the T
latch 66 (and correspondingly on bus 51 from address latch 49) represent the write address within the wave table location fox any particular voice. During each logic cycle the seven cycles of TABLE II), the Write Pointer in latch 66 is decrement Ed by one count.

In operation, a Read Pointer unique for each voice is calculated during each logic cycle by adding the pitch number, N, obtained from the shift register top location 56160 Plop, of register 56. The Read Pointer is calculated at a memory address which it N locations behind the Write Pointer. In the particular embodiment of Fig. 6, the addresses in the T latch 66 are decrement Ed once each logic cycle. Therefore, N
locations behind the Write Pointer in latch 66 is achieved by adding N to the address in latch 66. If thy address in latch 66 were changed by incrementing, then the N would be subtracted from the address in latch 66.
The Read Pointer selects data that was stored N cycles previously. That data is modified and stored into the address specified by the Write Pointer.

In the present example, the modification is in accordance with En. (5). The data specified by a lead Pointer + 1" is the data No address away from the address in the T latch 66. The data at the N and the No locations it summed, divided by two and then STAN 3411 DEL/A (S80-20) -38-I
rewritten into the address specified by he write Pointer (in the T latch 66).

The normal decay operation carries out the modification part ox En. (5) in the manner outlined in the following TABLE V when no new commands are being given.

` TABLE V
, TO A BUS FROM A TO B FROM B
CYCLE FROM BUS TO BUS FROM GUS TO TO C
11 C TEA Plop B
12 Read Pointer 21 C Add 31 Din R
32 Read Pointer + 1 41 C Add Plop Pot I
51 R A Din B
52 Sum 61 T Audrey (-1) B

'71 Sum/2 Dour In TABLE V, the last cycle 72~ decrements the address in the T register by one. That decrement Ed value is the Write Pointer which is stored in the C latch 67 at the time that a new logic cycle commences at cycle 11. In STAN 3411 DEL/A (S80-20~ -39-US
Silas 11~ the Write Pointer it grated from latch 67 to the buy 48 and from where to the latch 66 and the A
latch 60 In cycle 11, the pitch Lyons N of the current voice represented by thy low-order bits in the T watch 66~
appears on the B buy designated as Plop in TABLE V), and that value is lathed into the B latch 61. It cycle 11,; the value in the A latch 60 and the pitch length N
in the B latch 61 are added in the adder 62 to provide the Read Pointer in the C latch 67 at cycle 12.

In cycle 21, the Read Pointer in the C latches is grated over the A bus 48 Jo the address latch 49 where it it propagated over bus 38 to address the wave table 13 in Fig. I Thus addressed, wave able 13 provides the data value on bus 8 and it is stored in the data-in latch.
In cycle 31~ the data-in value in the data-in latch 45 is grated over the B bus 47 and stored in the R latch 65~
At cycle 32i the carry-in unit 64 conditionally causes Al lo be added to the contents of the sum of the A and B
latches thereby adding I to the value in the C latch.
Since the prior value in the C latch was the Read Pointer (T + No, the new number in the C latch after cycle 32 is the Read Pointer Al (T N + 1).

In cycle 41~ the Read Pointer +1 in the C latch 67 is transferred over the A bus to thy address latch 49.
From address latch 49, the Read Pointer Al addresses the wave table 13 to provide a new data value latched into the data-in latch 45 in cycle 51~

In cycle 51~ the data value obtained by the Read Pointer is grated from the R latch 65 to the A latch 60 and the other value of data obtained from the Read Pointer I is STAN 3411 DEL/A (S80-20) -40 83~01/27 grated over the B bus 47 to the B latch 61, These two data values are then added by adder I to provide the Sum in the C latch 67 in cycle I

In cycle Al, the write Pointer from the T latch 66 is grated over the A Gus 48 Jo the address latch 49 and to the A latch 60~

Inkwell 61, the preset value of -l on the bus is latched into the B latch and thereafter added by adder 62 to the Write Pointer in the A latch Jo form the new Write Pointer (T - I which it latched into the C latch in cycle 72. Also, in cycle 61, the Sum from the C
latch is grated out from the C latch 67 with a one bit shift to the B Gus 47 and sated out through the tri-~tate gate 46 to the bus 8 for storage in the wave table unit 13 at the Write Pointer (To address. At this point in time, two successive values of data at the Read Pointer and the Read Pointer I addresses have been fetched, added and averaged all in accordance with En.
(5) previously described. Also at cycle 72~ the decrement Ed value (T-1) of the Write Pointer has been formed and stored into the C latch 67.

The flew value of the Write Pointer defines a different voice since the low-order four bits have been changed.
Similarly the shift register 56 has been stepped one stage so that the pitch number N previously in the Plop location 5616 has been circulated over the B bus back into the Pot location 56l.

A new value ox the pitch length, N, or a different voice is now stored in the Plop location 5616. That new value of pitch is again used to form the Read Pointer by execution of a complete logic cycle of TABLE V type.

STAN 3411 DEL/A ~S80-20) -41-~3/01/27 f This calculation for each of the sixteen voice is performed by sixteen different executions of the logic cycle of the TABLE V type. After the sixteen executions of the TABLE V logic cycle, the T latch 66 continues to be decrement Ed. When decrement Ed, the karat after the sixteenth decremation carries to the higher order 8-bits within the T latch 66 so that a new location within the wave table is accessed for each voice. In this manner, all of the locations within the wave table unit 13 for each of the sixteen voices are accessed in a manner which, or each voice, performs the calculations previously described in connection with En. (OWE

The transfer of a sample to the output unit 4 of Fig. 5 occurs once at the end of the TABLE V cycle, in cycle 71. After sixteen executions of the TABLE V logic cycle, sixteen samples, one for each voice, have been output to the output unit 4. Thereafter, with sixteen more executions of the TABLE V logic cycle, sixteen additional samples, one for each voice, are output to the output unit 4. It should be noted that the outputs to the output unit 4 are not added but are merely time multiplexed, one at a time for each voice. Each sample is converted in the digital/analog converter 9 to an analog signal which is Lopez filtered in filter 10.
The signal on line 18 represents the sound from all sixteen voices as if the outputs on bus 8 had been added prior to the conversion in the digital/analog converter 9. The time multiplexing through a digital/ analog converter followed by Lopez filtering is the equivalent of fir t adding and thereafter digital/analog converting.

The output signal on bus 8 occurs at a sampling ire-quench of approximately 20K Ho for each voice. Since STAN 3411 DEL/A ~S80~20) ~42-I
all sixteen voices provide an output in a cyclic manner, a new signal appears on the data buy 8 sixteen times as fast a the sampling frequency for a frequency of 320~
Ho, which is the logic cycle frequency. The logic cycle frequency it the time that it takes to complete all of the seven cycles of the TABLE II type. Each of the cycles within the logic cycle of TALE II occurs at seven times the frequency of the complete logic cycle, that it, at 2.~4M Ho. These values ox the sampling frequency, the logic cycle frequency, and each sub cycle frequency within the logic cycle are merely given as representative. Any frequencies can be selected. The particular preferred embodiment described operated with the basic clock frequency between EM Ho and EM Ho.
Accordingly, the sampling frequency, Us, for each voice is 1/112 the clock frequency of the Digital Unit 35. In the particular embodiment described, the sampling frequency, Us, is the same for all of the sixteen voices.

Command Swig The instrument of Fig 5 and Fig. 6 assumes that the input unit 2 provide input commands in appropriate sequences. In the command sequences, amplitudes for defining the amplitude of a pluck are entered into the shift register 56 as part of a pluck mode and similarly, the pitch number for defining the pitch of each voile is entered as part of the decay mode for that particular voice. In this regard, it should be noted that two values for the command codes are prohibited for entering amplitudes or pitch numbers. The two value prohibited are hh and Oily. These values are prohibited since they are used to change between pitch/amplitude and parameter mode. These values are not particularly useful, however, as pitches because a pitch of 2 is the STAN 3411 DEL/A (S80-20) -43-~3/01/27 I I
Nyquist frequency Furthermore, these amplitudes can by obtained by using their inures ~FhFh and Foe). When doing a symmetric pluck, the maximum amplitude is FhF~
and the minimum is owe. A typical example of command sequence for playing a maximum amplitude guitar note is shown in the following TABLE VIM

TABLE VI

COMMAND HO FUNCTION

1 hh Enter Parameter Mode (set fat 91 to 0) Shea Choose Voice 5 load fat 90 with 5) 3 7h9h Start Plucking (read E fat 59)
4 0h1h p/a Mode set fat 91 TV 1) FhFh Maximum Amplitude (load FhFh into Pot) 6 hh Enter Parameter Mode (set fat 91 to 0) (Commands for Other Voices) K 0 hh Enter Parameter Mode (set fat 91 to 0) K l Shea Choose Voice 5 Again (load fat 90 with 5) K + 2 oily Back to p/a Mode (set fat 91 to 1) K 3 Foe Pitch Period 240 load Foe into 561) K 4 hh Enter Parameter Mode set fat 91 to 0) K 5 Bh8h Guitar Mode, Stretch 1, No Dither, no Cohere (load Bh~h into 551) In order to demonstrate that the Fig. 5 instrument perform the En. I function, a simplified example is useful. The example uses a memory which has M storage STAN 3411 DEL/A (S80-20) -44-~%~
locations where M is equal to 10. It is assumed that the pitch length, N, it equal to 6. The Write Pointer (considering only the horder bits associated with a single voice) has the values 9, I 7, I 1, O.

It it assumed that the ten locations 0, 1, OWE, 9 in memory are initially filled with thy data values A, B, ..., J, respectively where those data values have either a positive or negative quantity as determined by the 1 or O output, respectively, of a random bit generator The logic cycles of the TABLE II type are numbered 1, 2, 3, ...~ lo, ... corresponding only to the cycles for a single voice Actually there are sixteen times as many cycles, one for each voice, but only those cycles corresponding to a single voice have been numbered With these simplified assumptions, the following TABLE VII represents the relationship between the write Pointer, the Stored Data in the memory addresses associated with the Write Pointer, end the Read Pointer and the Read Pointer + 1.

STFD2/~IAV

STAN 3411 DELTA (S80-20) -45-Table VII

LOGIC WRITE READ REAR
CYCLE POINTER STORED DATA POINTER POINTER + 1 F
' 4 E

1 9 (F + Go 5 6 2 8 (E + F)/2 4 5 3 7 (D Eye 3 4 4 6 (C Do 2 3 By + C)/2 1 2 6 4 (A + By 0 7 3 [(F Go Aye 9 0 8 2 [(E + F~/2 + (F + G)/2]/2 8 9 9 1 [(D Eye + (E I F~/23/2 7 8 lo o r (c Do + (D + Eye 6 7 11 9 [tub + C~/2 + (C D)/21/2 5 6 12 8 AYE + By + (B + C)/23/2 4 5 13 7 [[(F + Go + Aye + 3 4 (A + B)/2]/2 14 6 . 2 3 . l 2 16 4 . 0 17 3 . 9 0 18 2 . 8 7 19 . 1 . 7 In TABLE VII, prior to Logic Cycle l, the Stored Data it the data values A, B, ..., J as previously described.
Those values could be, for example, +8, -8, -8, +8, -8, I +8, +8, -8 and +8.

STFD2/~AV
STAN 3411 DEL/A tS80-20) -46-29~
In Logic Cycle l, stoxagP location 9 designate by the Write Pointer is filled with the average of the quantities accessed at the addresses defined by the Read Pointer and the read Pointer + I The Read Pointer points to the address 5 which is stored with the data value F. The Read Pointer 1 points to the address 6 which is the data value G. Accordingly, in the Logic Cycle 1, the Stored Data is (I + Go that is, 8 with the` values previously selected for example.

In the Logic Cycle 2, the Stored Data is the quantity (E + F)/2, that is, Q. Similarly, each of the cycles is similar until in Logic Cycle 6, the storage location of the Write Pointer 4 is the quantity (A I that is, O.

In Logic Cycle 7, however, the read Pointer points to the location 9 which was stored with the quantity (F +
G3/2 in Logic Cycle 1. The Logic Cycle 7 is six cycles displaced from the Logic Cycle 1. The value averaged with the values stored in Logic Cycle 1 is the value stored in the cycle prior Write Pointer cycle 0, that is, the original data value A. The data value A is seven cycles displaced accordingly, the average between the 6-cycle displacement and the 7-cycle displacement is I that is, the pitch number is N +
cycles.

Summary of Sixteen Voice Embodiment The sixteen voice embodiment of Fig. 5 has each voice independently controllable for a value of pitch, determined by the pitch number N. Each voice has a sampling rate of approximately 20K Ho. Each sample time is sixteen voice cycles, each of which is a logic cycle STAN 3411 DEL/A ~S80-20) ~47-83~01/27 So comprised of seven clock cycles. The sampling frequency it 1/112 the clock frequency of the Digital Unit.

Each voice can be in one of four modes, plucking guitar decay drum decay or harp decay. Each of the decay algorithms allows decay stretching during the decay operation with the stretching factor, 5, equal to 1, 2, 4, I 16, 32, So t or infinity. The factor multiplies the unstretched decay time by the value of s. The stretching is implemented by not incrementing the Read Pointer by +1 in selected logic cycles.

During the plucking operation, the output to the digital/analog converter in the output unit 4 can be randomly amplitude A or 255 - A, that is, the complement. The probability of inversion Jo 255 - A is l/S where S is the stretching factor determined by the "Proud" control to the E latch 59 of Fig. 6. Under these conditions, thy digital/analog converter 9 of Fig.
2 is centered at 128.

..
In the guitar and drum instruments, the blend factors (one minus the probability of selecting the complement from the C latch) are 1 and respectively The harp instrument it the drum with a blend factor of 0. A
blend factor of 0 means the complement is always select ted from the C latch. Therefore, the value in the wave table is complemented on each pass thereby dropping the frequency an octave and leaving only the odd harmony its. This operation extends the range down an octave and adds a somewhat unusual timber to the higher ox-tats The dither bit, c7, is provided as an option to counteract the effects of round of error.

STAN 3411 DEL/A (S80-20) -48-!
I,' ' :.
The coherence blip c4" is provided as a means of linking several voices. this technique can be used to increase the overall amplitude of a note over what which could be achieved by a single voice. It can also be used to provide a "swell" at the beginning of a note by initially exciting two coherent sroice~ with equal and opposite amplitudes (complete cancellation hence silence) and later turning off the coherence bit.
Jo In the Fig. 5 embodiment, the Dowager Unit 35 examines the input bus 7 from the input unit 2 only once per logic cycle (once every seven clock cycles during the Sup Cry cycle). Therefore, it is necessary for the control byte to be held at least seven cycles by the interface unit 6 before a new command it issued. The interface unit 6 can be any conventional device, such as a microprocessor chip, or a control register which is grated out by the Spy signal from the Digital Unit 35~
Also, since the control memory in the Unit 35 utilizes the shift registers 55 and 56 in Fig. 6, commands that affect only one voice must be held until that voice has been stepped to the bottom location 551 or 561.
Therefore, commands which are intended to affect a single voice should be hold by the interface unit for at least 112 clock cycles.

FURTHER AND OTHER EMBODIMENTS

The sixteen voice embodiment previously described utilized a common Write Pointer and a different Read Pointer calculated for each voice. Also the sampling frequency is was the same for each voice. While these conditions were convenient, they are not limitations of the present invention. More generally, a Write Pointer STAN 3411 DEL/A [S80-20) -49-f and a Read Pointer may be independently determined for each voice and each sampling frequency, I and also be separately determined for each voice.

Further to voice embodiment of the present invention exists when, in the Fig 2 instrument, the modifier unit 14 is implemented as an 8080 microprocessor. In such a microprocessor embodiment, a program suitable for doing the modification is set forth in the following TABLE
VIII.

STAN 3411 DEL/A (S80-20) -50-S LABEL OPAQUED ARTS COMMENT
1. LOOP: DCR~5J bump the Road Pointer not changed So pointer wraps around a 256 long buffer 2. ADD M add Yin for voice 2 I WRIER) divide by two 4. STUCCO B store Yin for voice 2
5. XCHG(4) set up HO to access voice l
6. ; MOVIE BUM read I for voile 1
7. Adele B add voices together
8. OUGHT) DAY output both voices
9. DCRi5~ L decrement read Pointer
10. MOVES) AIR A loaded with on
11, ADD M A loaded with A + x
12. OR divide by two
13. MOW BY BY loaded with write Pointer
14. DCRI5) C doormen Write Pointer 2 (and sex condition codes B not changed, so pointer wraps
15. COUNT: STUCCO B store Ann (voice 1)
16. START: XCHG(4) setup HO for voice 2
17` MOVIE) ARM A loaded with Ye N 1 voice 2)
18. MOVIE) By BY loaded with Write Pointer
19. END: JNZ(10) LOOP every 256 samples check duration counter first compensating for extra time
20. STUCCO B Yin Yn_N_1 (voice 2)
21. DCR(5~ L advance Read Pointer
22. DCR(5) E advance Read Pointer
23. DCR(5~ C advance Write Pointer 2
24. LDA(13) DUO load duration counter STAN 3411 DELTA (S80-20) -51 T~BL VIII (Concluded) S LABEL OPAQUED ARTS COMMENT
25. DCR(5) A A loaded with Awl and set condition code
26. STY) DUO store d~cremented timer
27~ XC~Gl4) setup AL for voice 1 280 MOVIE By BY loaded with Write Pointer 29. MOW ARM A loaded with Yin voice 13 30. OUT JNZ(10) COUNT if time not up, continue 31~ RET else done with notes In TABLE VIII, the entry point is START. The registers within the BYWAY processor include a C latch, a DE
register, and an AL register DUO is a location in memory. The C register stores the low-order half of the Write Pointer. The DE register stores the Read Pointer for voice 2. The HO register stores the Read Pointer for voice 1. The DUO register stores the address of the current byte. Accordingly, DUO is stepped through 256 sample counts. The DUO register wraps around so that after counting through 256 counts, it commence to count through a second set of 256 counts and so forth In TABLE VIII, the program routine is exited whenever the decay time has elapsed by proceeding from statement 30 to statement 31~ If the decay time has not elapsed, the statement 30 jumps to the COUNT statement 15 and continues processing.

The manner of determining the modification of the En. (5) type is that of a circular buffer technique A
common Write Pointer is shared by all voices. Each STAN 3411 DEL/A (S80 20~ -52 83~01/27 So voice has a separate Read Pointer. Both the Write Pointer and the Road Pointer for each voice are pepped once per execution of the LOOP. The pitch number, No fox each voice, TV is not pored explicitly but rather is the difference between the Write Pointer and the Read Pointer for that Voice the Write Pointer for voice 1 it formed using the B and C registers by moving contents of register H to B. The Write Pointer is formed by moving the contents of register D to register By The low order byte in register C 3 in the register pairs BY
is incremented or decrement Ed without affecting the high-order byte B.

the TABLE VIII routine handles the sampling frequency timing by decrementing a timer DUO once every 256 samples.

While the 2 voice embodiment its another example of the wave table modification method of the present invention, the particular implementation, with current MicroPro censor technology is only adequate to handle two voices.
Of course, as microprocessors with treater and greater capability are produced, then the circular buffet techniques described will be able to implement a greater number of voices.

In the Fig. 5 instrument, the hither harmonics decay much faster than the lower harmonics, so that the tone decays to an almost pure sine wave, no matter what initial spectrum it has, eventually decaying to a constant value silence).

Many alternative initial conditions can be specified.
In concrete terms, this amounts to reloading the wave table with appropriate values. The initial values STAN 3411 DEL/A (S80-20) -53 83/~1/27 I 69 Jo .,;., I.
can form a wine wave; triangle wave, OX any other desired waveform. However, it it generally not nieces-spry to do anything Jo complicated. Since it it desire able to have many high harmonics initially the buffer in the Fig. 5 instrument is filled with random values This produces a plucked-string sound very similar to a guitar. One fast way to fill the bluffer is to use two level randomness. Mathematically, the initial conditions are given as follows for n between N and I

Yin = PA, probability (291) ye = -A, probability (292) Single-bit randomness of this form is easily produced with a feedback shi~t-register for the random bit generator 57 it Fig. 5. Such an embodiment is simpler than a full random word generator. The parameter A
provides for amplitude control, with the amplitude of the output directly proportional to A.

After a note has been played, it is not always necessary to reload the buffer with random values before playing the next note. If the tone has not decayed too far, the result is a slur between the two pitches. This technique is particularly effective if the circular buffer technique is used, wince increases in N merely utilize grab more of the previous samples, while a similar increase using a decreasing counter would give undefined values past the end of the buffer wave table If the initial buffer load is periodic with a period that divides M, the tone has a pitch that corresponds to the periodicity of the buffer load, which is a harmonic of N. This harmonic trick is implemented ho filling STAN 3411 DEL/A ISSUE) -54-~3/01/~7 5~6~
half (or third, quarter, ...) of the buffer with randomness when duplicating those sample to fill the rest of the buffer. wince short buffers (small N) delay much faster Han long buffers, this provides a way Jo lengthen high pitched notes The decay-stretching method mentioned below is an additional more general, more powerful and more ~ime-intensive method or achieving the same result One variant replaces Yn_N_l with Yn_N~1~ c g g pitch to N rather than No. In a single voice algorithm, this variant permits compensation to period N
by using the extra time of the wrap-around in the decreasing counter technique. If the extra time it set to half the normal sample time, then the average sampling rate is T~1+1/2N). This means that the frequency of the tone is l/~(T)(N-l/j2N)~].

Shortening the decay times is harder to achieve than lengthening them. One possibility is to change the recurrence to one that smooths out the waveform faster.
For example, Yin on [Yn-N-l+2yn-N+yn-N-~lJ/4 (30) The algorithm of En. (30) takes more compute power, so the shortened decay time is usually offset by an increase in the time it takes to compute a sample. the variations described below can be applied to the En. (30) algorithm as easily as to the En. (5) allegro-item.

A simple variation of the basic En. I algorithm yields drum timbres. The simplest description of the drum variant is a probabilistic recurrence relation:

STAN 3411 DEL/A (S80-20) -55-I
Yin Lenin Yn_N_l), probability b ill Yin tenon + Yin probability lo (312) The normal initial conditions are two-level randomness.

Thy parameter b is called the blend factor. With a blend factor of one, the algorithm reduces to the basic plucked-~tring algorithm, with N controlling the pitch.
With a blend factor of one-half, the sound is drum-like.
Intermediate values produce ~oundg intermediate between plucked stying and drum, some of which are quite interesting musically. Values less Han % are also interesting. Note that b = requires only a single bit of randomness on each sample. Using arbitrary values fox b requires a comparison with a full random word.

For b close to I, the buffer length does not control the pitch of the tone, as the sound is aperiodic. Instead it controls the decay time of the noise burst. For large N around 200) and a sampling period of about 50 microseconds, the effect is that of a snare drum. For small N (around 20), the effect is that of a Tom Tom Intermediate values provide intermediate timbres, allowing smooth transition from one drum sound to another. For these drum sounds, the buffer can be filled with a constant (A) initially, as the algorithm will create the randomness itself.

Using small word sizes like 8 bits) makes round-off error a problem. To the algorithms described, round-off error is not random, but a consistent rounding-down of the samples. This effect significantly reduces the decay time of the fundamental frequency (when compared to the theoretical decay time, or the decay time when STAN 3411 DEL/A (S80-20~ -56-~2~S~6~ I
the algorithm is computed with much larger word sizes).
The effect can be almost eliminated by randomly adding O
or 1 I Yin N Ye before dividing by I this bi~twiddle technique lengthens the final decay of gee fundamental roughly back to its theoretical decay time, without appreciably lengthening the initial attack of the tone.

To get longer decay times for plucked string or drum) t decay-stre~ching can be used. For drums, this has the effect of increasing the "snare" sound, allowing smaller values of N to be used The recurrence relation for stretched sounds is Yin Yin probability bud (321) Yin Yin probability if by d)(322~
Yin Yin + Yn_N_l) probability by (323) Yin Yin + Yn-N-l) probability (webbed ~324) The new parameter d is called the decay-rate multiplier and lies in the range O to 1. Sometimes for convenience we talk about the stretch factor s = l/d. Note that the decay rate multiplier and blend factors are independent, so the arrhythmia can be implemented with two separate tests, an no multiplies are needed The decay time of the tone is approximately proportional to s. The pith of the sound is also affected by d, as the period is now approximately N + Ed. The optimum choice for d depends on the sampling rate, N, and the effect desired. By choosing d approximately proportional to N or N , the decay rates of the higher pitches can be made comparable to the decay rates for the lower ones. Note that for STFD2/~V
STAN 3411 DEL/A (S80 20) -57-owlet ~2~L~86~
do the recurrence relation impulse Jo that of the unstretched algorithm. For do the sound does not decay. If by this it the wave table synthesis algorithm of En. I if by white noise is produced It drum sounds are not desired, b can be set to one, simplifying the algorithm. With random buffer loads, the. sound is a plucked string, with decay time proportional to d. If non-random buffer loads are used with blue and large values of s, woodwind-like sounds Jan be produced The embodiments described have employed a single sampling frequency, is, for all of one or more voices.
Of course, is can be made different for each voice. For example, the clock frequency for the clock unit (ILK) in Fig. 6 can be made a variable by a program command of a quantity Q from bus 47 (or otherwise) which provides control of the frequency to the control logic 71. The clock frequency is divided by Q and a different value of Q can be provided for each voice so that each voice has a different sampling frequency. Also the sampling frequency for any voice can vary as a function of time by varying Q as a function of time.

The embodiments of the present invention have been implemented using a single digital-to-analog converter for all voices in a multi-voic~ instrument. In an alternative embodiment, each voice may have its own digital-to-analog converter and the analog outputs from a plurality of such converters can then be summed, for example, in a summing amplifier before the low-pass filter 10 of Fig, 2.

STAN 3411 DEL/A (S80-20) ~58-I ~2~5~6~
While the invention has been particularly shown and described with reference to preferred embodiment thereof, it will be understood by those skilled it the art that the foregoing and and other change in form and detail may be made wherein without departing from the spirit and scope of he invention.

STAN 3411 DEL/A (S80-20) -59-

Claims (40)

What is claimed is:
1. A musical instrument for producing musical sound comprising, input means for specifying a musical sound to be generated, wavetable-modification generator means for generating by wavetable modification an output signal representing the musical sound to be produced, an output unit responsive to said output signal to produce the musical sound.
2. The instrument of Claim 1 wherein said wavetable modification generator means includes a wavetable unit for cyclically storing data values for a delay period N, includes a modifier unit for combining two or more delayed data values from said wavetable unit to form a modified data value, and includes means for storing the modified data value back into the wavetable unit for subsequent delay by the period N where the modified data value forms the output signal.
3. The instrument of Claim 2 wherein said modifier unit includes an arithmetic unit for summing said two different data values from said wavetable unit and for dividing the summed data value by a number greater than unity to form said modified data value.
4. The instrument of Claim 3 wherein said number greater than unity is 2 whereby said two or more delayed data values from said wavetable unit are averaged.
5. The instrument of Claim 2 wherein said modified data value has an amplitude yn at a sample time n where yn is given as follows, yn = xn + [yn-N + yn-(N+1)]/2 where yn-N is the data value output from the wavetable after delay of N and where yn-(N+1) is the data value output from the wavetable after a delay of N 1 and where xn is an input data value at sample time n having a signal amplitude initially loaded into the wavetable.
6. The instrument of Claim 5 wherein said output signal is the modified data value having the amplitude yn.
7. The instrument of Claim 5 wherein said wavetable unit is a random access memory, wherein the modified data value, yn, is stored in said memory at a Write Pointer address and wherein the data value yn-N is stored in said memory at a Read Pointer address, and wherein said Write Pointer address and said Read Pointer address are offset by a number of addresses equal to the delay period N,
8. The instrument of Claim 7 wherein the data value yn-(N+1) is stored in said memory at a Read Pointer +1 address which is offset from said Read Pointer address by +1.
9. The instrument of Claim 5 wherein the values of xn stored in said wavetable represent "white noise".
10. The instrument of Claim 9 wherein said values of xn are given as follows:

xn Aun, when n=0,1,2,...,(N 1) xn 0, when n?N

where un is determined as +1 or -1 as a function of the output of a random number generator and where A is some amplitude.
11. The instrument of Claim 5 including control means for producing the values of yn for the output signal at a sampling frequency, fs, and wherein the pitch of the fundamental frequency of the sound produced is equal to fs/(N+?).
12. The instrument of Claim 7 including means for storing said Write Pointer address, means for storing the delay period N as an address offset, means for calculating said Read Pointer address by summing said Write Pointer address and N, and means for sequentially changing said Write Pointer address to a new address for each value of yn stored.
13. The instrument of Claim 12 wherein means for sequentially changing said Write Pointer address includes means for decrementing said Write Pointer address.
14. The instrument of Claim 7 including means for storing said Write Pointer address, means for storing said Read Pointer address offset by an integer proportioned to N from said Write Pointer address, and means for sequentially changing said Write Pointer address and said Read Pointer address whereby the offset between said Write Pointer address and Read Pointer address remains the same.
15. The instrument of Claim 2 wherein said generator means includes means for generating modified data values at a sampling frequency.
16. The instrument of Claim 2 wherein said data values are digital and wherein said output unit includes a digital-to-analog converter, a low-pass filter, an amplifier and a speaker for producing the musical sound in response to said output signal.
17. The instrument of Claim 1 wherein said wavetable modification generator generates musical sound for a plurality of voices, wherein said input unit includes means for specifying one or more of said voices, wherein said wavetable modification generator includes means for producing output signals representing the sound for each of said voices by wavetable modification, and wherein said output unit in response to said output signals concurrently produces said musical sounds for all of said voices.
18. The instrument of Claim 1 wherein said wavetable modification generator means includes a wavetable unit for cyclically storing data values for each voice, each having a different delay period N, includes a modifier unit for modifying two or more delayed data values for each voice from said wavetable unit to form a modified data value, for each voice from said wavetable unit to form a modified data value for each voice, and includes means for storing the modified data value for each voice back into the wavetable unit for subsequent delay by the corresponding period N where the modified data value for each voice forms the output signal.
19. The instrument of Claim 18 including means for storing and updating a Write Pointer each cycle to specify the location in the wavetable at which the modified data value for each voice is is be stored, and including means for storing a delay period N for each voice, and means for determining a Read Pointer for each voice to designate the location of the modified data value for each voice in the wavetable memory.
20. The instrument of Claim 19 wherein said Write Pointer is common for all of said voices and wherein said generator includes means for adding the delay number N for each voice to the Write Pointer to provide the Read Pointer for each voice.
21. The instrument of Claim 20 wherein the wavetable is a random access memory, wherein the modified data value for each voice is stored in said memory at a Write Pointer address unique to that corresponding voice and wherein the delayed data values are stored in memory locations determined by a Read Pointer address for each voice and wherein said Write Pointer and Read Pointer addresses for each voice are offset by a number equal to the delay period N for each voice.
22. The instrument of Claim 21 wherein the Write Pointer address includes a low-order field for uniquely identifying each different voice and includes a high-order field for identifying the location within a portion of the memory associated with the voice identified in the corresponding low-order field.
23. The instrument of Claim 22 wherein said generator includes means for decrementing said Write Pointer each time a modified data value is stored at the location specified by said Write Pointer.
24. The instrument of Claim 23 wherein the sampling frequency, fs, is the same for each voice.
25. The instrument of Claim 24 including means for providing said modified data values at a logic cycle frequency which is the number of voices times fs.
26. The instrument of Claim 25 wherein the output unit includes a digital-to-analog converter for receiving each modified data value for each voice and includes a low pass filter for filtering the analog value from aid converter and wherein said converter receives a new modified data value at said logic cycle frequency whereby the output from said low pass filter is a signal representing the musical sound for all of the voices.
27. The instrument of Claim 18 including means for storing a Write Pointer and means for storing a Read Pointer for each voice, said Write Pointer having an address offset from said Read Pointer for each voice by the delay period N for each voice, respectively, and including means for updating both said Write Pointer and said Read Pointer concurrently for each voice whereby the offset N between the Read Pointer and the Write Pointer for each voice is maintained.
28. A musical instrument for producing musical sound comprising, input means for specifying a musical sound to be generated, wavetable-modification generator means including a digital wavetable unit having a random access memory for cyclically storing data values for a delay period N, including a modifier unit having an arithmetic unit for summing two ox more delayed data values from said wavetable unit and for dividing the summed data value by a number greater than unity to form a modified data value, and including means for storing the modified data value back into the memory for subsequent delay by the period N where the modified data value forms an output signal representing the musical sound to be produced, an output unit responsive to said output signal to produce the musical sound.
29. The instrument of Claim 2 wherein said modified data value has an amplitude yn at a sample time n where yn is given as follows, yn = xn + [yn-N + yn-(N+1)]/2 where yn-N is the data value output from the wavetable after delay of N and where yn-(N+l) is the data value output from the wavetable after a delay of N + 1 and where xn is an input data value at sample time n having a signal amplitude initially loaded into the wavetable .
30. The instrument of Claim 29 including means for storing the modified data value, yn, in said memory at a Write Pointer address, including means for storing the data value yn-N in said memory at a Read Pointer address, including means for storing the data value yn-(N+1) in said memory at a Read Pointer +1 address which is offset from said Read Pointer address by +1 and wherein said Write Pointer address and said Read Pointer address are offset by a number of addresses equal to the delay period N.
31. The instrument of Claim 30 wherein said values of xn represent white noise and are given as follows:

xn = Aun, when n=0,1,2,...,(N?1) Xn = 0, when n?N

where un is determined as +1 or -1 as a function of the output of a random number generator and where A is some amplitude.
32. The instrument of Claim 29 including control means for producing the values of yn for the output signal at a sampling frequency, fs, whereby the pitch of the fundamental frequency of the sound produced is equal to fs/(N+?).
33. The instrument of Claim 30 including means for storing said Write Pointer address, means for storing the delay period N as an address offset, means for calculating said Read Pointer address by summing said Write Pointer address and N, and means for sequentially changing said Write Pointer address to a new address for each value of yn stored.
34. The instrument of Claim 30 including means for storing said Write Pointer address, means for storing said Read Pointer address offset by an integer proportional to N from said Write Pointer address, and means for sequentially changing said Write Pointer address and said Read Pointer address whereby the offset between said Write Pointer address and Read Pointer address remains substantially the same.
35. The instrument of Claim 28 wherein said wavetable modification generator generates musical sound for a plurality of voices, wherein said input unit includes means for specifying one or more of said voices, wherein said wavetable modification generator includes means for producing output signals representing the sound for each of said voices by wavetable modification, and wherein said output unit in response to said output signals concurrently produces said musical sounds for all of said voices.
36. A wavetable-modification generator for use with a musical instrument having an input unit for specifying a musical sound to be generated and having an output unit responsive to an output signal to produce musical sound said generator comprising, a digital wavetable unit having a random access memory for cyclically storing data values for a delay period N, a modifier unit having an arithmetic unit for summing two or more delayed data values from said wavetable unit and for dividing the summed data value by a number greater than unity to form a modified data value, and means for storing the modified data value back into the memory for subsequent delay by the period N
where the modified data value forms said output signal representing the musical sound to be produced.
37. The generator of Claim 36 wherein said modified data value has an amplitude yn at a sample time n where yn is given as follows, yn = xn + [yn-N + yn-(N+1)]/2 where yn-N is the data value output from the wavetable after delay of N and where yn-(N+1) is the data value output from the wavetable after a delay of N + 1 and where xn is an input data value at sample time n having a signal amplitude initially loaded into the wavetable.
38. The instrument of Claim 28 including control means connected to said modifier unit for altering the manner in which said modified data value is formed.
39. The instrument of Claim 29 wherein said control means includes a random number generator connected to control the selection of said delayed data values in accordance with a predetermined statistical probability.
40. A method of producing musical sound compris-ing, specifying with input means a musical sound to be generated, generating by wavetable modification an output signal representing the musical sound to be produced, producing the musical sound in an output unit responsive to said output signal.
CA000446482A 1983-02-02 1984-01-31 Wavetable-modification instrument and method for generating musical sound Expired CA1215869A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US46327083A 1983-02-02 1983-02-02
US463,270 1983-02-02

Publications (1)

Publication Number Publication Date
CA1215869A true CA1215869A (en) 1986-12-30

Family

ID=23839519

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000446482A Expired CA1215869A (en) 1983-02-02 1984-01-31 Wavetable-modification instrument and method for generating musical sound

Country Status (5)

Country Link
EP (1) EP0124197B1 (en)
JP (3) JPH0776871B2 (en)
AU (1) AU570669B2 (en)
CA (1) CA1215869A (en)
DE (1) DE3484690D1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1215869A (en) * 1983-02-02 1986-12-30 Alexander R. Strong Wavetable-modification instrument and method for generating musical sound
IT1169083B (en) * 1983-11-18 1987-05-27 Arrigo Sestero MUSICAL DUALIZER DEVICE AND RELATED DUALIZATION PROCEDURE
DE3504382A1 (en) * 1985-02-08 1986-08-14 Rainer Dipl.-Ing. 8000 München Gallitzendörfer Electronic musical instrument
US4754680A (en) * 1985-09-10 1988-07-05 Casio Computer Co., Ltd. Overdubbing apparatus for electronic musical instrument
JP2591198B2 (en) * 1989-12-12 1997-03-19 ヤマハ株式会社 Electronic musical instrument
JP4218624B2 (en) * 2004-10-18 2009-02-04 ヤマハ株式会社 Musical sound data generation method and apparatus
US11871207B1 (en) 2022-09-07 2024-01-09 International Business Machines Corporation Acoustic editing

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4133241A (en) * 1975-05-27 1979-01-09 Nippon Gakki Seizo Kabushiki Kaisha Electronic musical instrument utilizing recursive algorithm
JPS5858679B2 (en) * 1975-12-16 1983-12-26 ヤマハ株式会社 Denshigatsuki
JPS5858678B2 (en) * 1977-01-17 1983-12-26 ヤマハ株式会社 electronic musical instruments
JPS5848109B2 (en) * 1977-01-17 1983-10-26 ヤマハ株式会社 electronic musical instruments
US4249447A (en) * 1978-06-30 1981-02-10 Nippon Gakki Seizo Kabushiki Kaisha Tone production method for an electronic musical instrument
JPS557734A (en) * 1978-06-30 1980-01-19 Nippon Musical Instruments Mfg Synthesizing musical sound
JPS557733A (en) * 1978-06-30 1980-01-19 Nippon Musical Instruments Mfg Synthesizing musical sound
US4272649A (en) * 1979-04-09 1981-06-09 Williams Electronics, Inc. Processor controlled sound synthesizer
US4351218A (en) * 1981-04-02 1982-09-28 Kawai Musical Instrument Mfg. Co., Ltd. Recursive formant generator for an electronic musical instrument
JPS5883894A (en) * 1981-11-12 1983-05-19 松下電器産業株式会社 Digital musical note modulator
CA1215869A (en) * 1983-02-02 1986-12-30 Alexander R. Strong Wavetable-modification instrument and method for generating musical sound

Also Published As

Publication number Publication date
AU570669B2 (en) 1988-03-24
JPS59187398A (en) 1984-10-24
JPH0830955B2 (en) 1996-03-27
JPH0776871B2 (en) 1995-08-16
JPH07152382A (en) 1995-06-16
AU2395384A (en) 1984-08-09
EP0124197B1 (en) 1991-06-12
DE3484690D1 (en) 1991-07-18
JP2606791B2 (en) 1997-05-07
EP0124197A2 (en) 1984-11-07
JPH08110782A (en) 1996-04-30
EP0124197A3 (en) 1987-01-14

Similar Documents

Publication Publication Date Title
US4649783A (en) Wavetable-modification instrument and method for generating musical sound
EP0149896A2 (en) Method and apparatus for dynamic reproduction of transient and steady state voices in an electronic musical instrument
US4184403A (en) Method and apparatus for introducing dynamic transient voices in an electronic musical instrument
JPH01101590A (en) Electronic musical instrument
US4108036A (en) Method of and apparatus for electronically generating musical tones and the like
USRE31653E (en) Electronic musical instrument of the harmonic synthesis type
CA1215869A (en) Wavetable-modification instrument and method for generating musical sound
JPH0412476B2 (en)
US4215617A (en) Musical instrument and method for generating musical sound
US4440058A (en) Digital tone generation system with slot weighting of fixed width window functions
JPS6140118B2 (en)
EP0235538B1 (en) Waveform generator for electronic musical instrument
US4270430A (en) Noise generator for a polyphonic tone synthesizer
US4300432A (en) Polyphonic tone synthesizer with loudness spectral variation
US4273018A (en) Nonlinear tone generation in a polyphonic tone synthesizer
JP2619242B2 (en) Electronic musical instruments that generate musical tones with time-varying spectra
US4513651A (en) Generation of anharmonic overtones in a musical instrument by additive synthesis
JPH0254559B2 (en)
JPH0754428B2 (en) Music signal generator
KR100190484B1 (en) Musical tone generating apparatus
JPS5816198B2 (en) electronic musical instruments
US4084472A (en) Electronic musical instrument with tone generation by recursive calculation
JPS54133317A (en) Electronic musical instrument
JPS5938598B2 (en) musical tone generator
JP3278066B2 (en) Formant sound synthesizer

Legal Events

Date Code Title Description
MKEX Expiry