AbstractA musical instrument employing probabilistic wavetable-modification method of producing musical sound. A randomly initialized wavetable which is periodically accessed to provide an output signal which determines the musical sound. The output signal from the wavetable is probabilistically 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 stored (after possibly being modified) back into the wavetable to produce rich and natural musical sound.ClaimsWhat 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, including a wavetable unit for cyclically storing data values for a delay period N, including initialvalue means for storing input data values into said wavetable unit with said input data values having amplitudes determined at least in part randomly, including a modifier unit for combining two or more delayed data values from said wavetable unit toform a modified data value, and including selection means for selecting the modified data value as a stored value stored back into the wavetable unit for subsequent delay by the period N where the stored value forms the output signal, means for selectingthe stored value as the output signal at a rate independent of the pitch of the musical sound to be produced,
an output unit responsive to said output signal to produce the musical sund.
2. The musical instrument of claim 1 wherein said selection means includes means for selecting said modified data value or a delayed data value stochastically based upon a predetermined probability, d.
3. The instrument of claim 2 wherein said modifier unit includes an arithmetic unit for summing said 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 saidmodified 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 value has an amplitude yn at a sample time n greater than or equal to 0 where yn is given as follows, ##EQU7## where yn-N is the data value output from the wavetable after delay of N andwhere 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 loaded for an initial number of samples M into the wavetable and where rn is arandom number between 0 and 1 generated at sample time n.
6. The instrument of claim 5 wherein said output signal, at sample time n, is the data value having the amplitude yn.
7. The instrument of claim 5 wherein said wavetable unit is a random access memory, wherein the 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 ReadPointer address, and wherein said Write Pointer address and said Read Pointer address are offset by a number of addresses equal to the number, 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 initially stored in said wavetable represent “white noise”.
10. The instrument of claim 9 wherein said values of xn are given as follows:
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 fundamental frequency of the sound produced for a pitch number N is approximatelyequal to fs /(N d/2).
12. The instrument of claim 7 including means for storing said Write Pointer address, means for storing the pitch number, N, as an address offset, means for calculating said Read Pointer address by summing said Write Pointer address and N, andmeans 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 saidWrite 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 outputsignal.
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 modificationgenerator includes means for producing output signals representing the sound for each of said voices by probabilistic wavetable modification, and wherein said output unit in response to said output signals concurrently produces said musical sounds forall of said voices.
18. The instrument of claim 1 wherein said wavetable unit cyclically stores data values for a plurality of voices, each having a delay period specified by an independent pitch number, N, wherein said modifier unit modifies two or more delayeddata values for each voice from said wavetable unit to form a modified data value, for each voice, and wherein said generator includes means for storing either the modified data value or a delayed data value for each voice back into the wavetable unit asa stored data value for subsequent delay by the corresponding N where the stored 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 stored data value for each voice is to be stored, and including means for storing a delayperiod N for each voice, and means for determining a Read Pointer for each voice to designate the location of the delayed data values 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 pitch 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 stored data value for each voice is stored in said memory at a Write Pointer address unique to that corresponding voice and wherein the delayed datavalues 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 pitch number, 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 withthe 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 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 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 new data value for each voice and includes a low pass filter for filtering the analog value from said converter and wherein saidconverter receives a new 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 pitch number N for eachvoice, 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 for generating by wavetable modification an output signal representing the musical sound to be produced, including a wavetable unit for cyclically storing data values for a delay period defined by a pitchnumber N, including a modifier unit for combining two or more delayed data values from said wavetable unit to form a modified data value, and including selection means for selecting the modified data value or a delayed data value stochastically basedupon a predetermined probability as a stored value stored back into the wavetable unit for subsequent delay by the period N where the stored value forms the output signal,
an output unit responsive to said output signal to produce the musical sound.
29. The instrument of claim 28 wherein said predetermined probability equals unity whereby the stored value is always the modified data value, and has an amplitude yn at a sample time n where yn is given as follows,
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 signalamplitude 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, includingmeans 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 equalto the pitch number N.
31. The instrument of claim 30 wherein said values of xn represent white noise and are given as follows:
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 fundamental frequency of the sound produced for the pitch number N is approximatelyequal to fs /(N 1/2).
33. The instrument of claim 30 including means for storing said Write Pointer address, means for storing the pitch number N as an address offset, means for calculating said Read Pointer address by summing said Write Pointer address and N, andmeans 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 saidWrite 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 modificationgenerator includes means for producing output signals representing the sound for each of said voices by probabilistic wavetable modification, and wherein said output unit in response to said output signals concurrently produces said musical sounds forall 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 generatorcomprising,
a digital wavetable unit having a random access memory for cyclically storing data values for a delay period N,
initial value means for storing input data values into said wavetable unit with said input data values having amplitudes determined at least in part randomly,
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,
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 signalamplitude 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 38 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, d, and means for providingsaid probability, d.
40. A musical instrument for producing musical sound comprising,
input means for specifying a musical sound to be generated,
wavetable modification generator means including,
a wavetable unit for cyclically storing a plurality of data values for a delay period defined by a pitch number N,
a modifier unit for combining after said delay period delayed first and second ones of said data values from said wavetable unit to form a modified data value,
and selection means responsive to a selection signal for selecting either the modified data value or the first one of said delayed data values as a stored data value for storage into the wavetable unit for delay by said delay period where saidstored data value forms the output signal,
and selection signal means for generating said selection signal to cause said selection means to select the modified data value or the delayed first one of said data values stochastically with a probability, d,
an output unit responsive to said output signal to produce the musical sound.
41. 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, including a wavetable unit for cyclically storing data values for a delay period, including initialvalue means for storing input data values into said wavetable unit with said input data values having amplitudes determined at least in part randomly, including a modifier unit for combining two or more delayed data values from said wavetable unit toform a modified data value, and including selection means for selecting the modified data value as a stored value stored back into the wavetable unit for subsequent delay where the stored value forms the output signal,
an output unit responsive to said output signal to produce the musical sound.
42. 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 generatorcomprising,
a digital wavetable unit having a random access memory for cyclically storing data values for a delay period,
initial value means for storing input data values into said wavetable unit with said input data values having amplitudes determined at least in part randomly,
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 where the modified data value forms said output signal representing the musical sound to be produced.
43. 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, including a wavetable unit for cyclically storing data values for a delay period, including a modifierunit for combining two or more delayed data values from said wavetable unit to form a modified data value, and including selection means for selecting the modified data value as a stored value stored back into the wavetable unit for subsequent delaywhere the stored value forms the output signal,
an output unit responsive to said output signal to produce the musical sound.
44. 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 generatorcomprising,
a digital wavetable unit having a random access memory for cyclically storing data values for a delay period,
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 where the modified data value forms said output signal representing the musical sound to be produced.DescriptionBACKGROUND OF THE INVENTION
This invention relates to musical instruments and more specifically to digitally controlled electronic instruments and methods for generating musical sound.
Digitally controlled methods of generating musical sound operate by producing a sequence of digital numbers which are converted to electrical analog signals. The analog signals are amplified to produce musical sound through a conventionalspeaker. 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 thekeyboard 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 induced oscillationsproduced by conventional orchestral and other type instruments.
All musical sounds, whether of electronic or mechanical origin, can be described by Fourier spectra. The Fourier spectra describes musical sound in terms of its component frequencies which are represented as sinusoids. The whole musical soundis, therefore, a sum of the component frequencies, that is, a sum of sinusoids.
Under Fourier analysis, tones are classified as harmonic or inharmonic. A harmonic tone is periodic and can be represented by a sum of sinusoids having frequencies which are integral multiples of a fundamental frequency. The fundamentalfrequency 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 represented by a sum of sinusoids. The frequencies comprisingan inharmonic tone, however, usually do not have any simple relationship. Inharmonic instruments do not normally have any pitch associated with them. Instruments in the orchestra that are inharmonic include the percussion instruments, such as the bassdrum, 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 theharmonic summation method, a tone is produced by adding (or subtracting) a large number of amplitude-scaled sinusoids of different frequencies. The harmonic summation method, therefore, requires a large number of multiplications and additions to formeach sample. That process requires digital circuitry which is both expensive and inflexible. Accordingly, the digital design necessary to carry out the method of harmonic summation is computationally complex and leaves much to be desired.
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 thedesired 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 analogelectronic 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 areeconomically expensive to achieve.
In a typical example of a filter technique, a waveshape memory provides digital samples of one cycle of a waveshape to a loop circuit which includes a filter and a shift register. The digital waveshape samples read out from the waveshape memoryare caused to circulate at a predetermined rate of time in the loop circuit. A output from the loop circuit varies as time lapses, and is utilized as a musical tone.
The classical filter techniques result in systems in which the pitch frequency fs /N, is determined by division using an integer, N, and hence desirable variations due to non-integral division are not achieved.
In many prior art systems, the divisor, N, is forced to be an integer when shift-register or other fixed circuits are employed. Also, the integer is further limited to some power of 2 in order to facilitate processing. In order to vary thepitch, fs /N, the frequency fs must be varied. Such systems, however, cannot be extended readily and economically to multi-voice embodiments because, for example, each voice requires a different frequency, fs.
Both the harmonic summation and the filtering methods rely upon a linear combination of sinusoids and, hence, they are characterized as linear methods for generating musical sound. The linear property is apparent from the fact that multiplyingthe amplitude of the input function (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 amplitude multiplied by a factor of two.
U.S. Pat. No. 4,018,121 entitled METHOD OF SYNTHESIZING A MUSICAL SOUND to Chowning describes a non-linear method for generating musical sound. That nonlinear method employs a closed-form expression (based upon frequency modulation) torepresent the sum of an infinite number of sinusoids. That non-linear frequency modulation method produces a number of sinusoids which have frequencies which are the sum of the carrier frequency and integral multiples of the modulation frequency. Theamplitudes of the multiples of the modulation frequency are sums of Bessel functions. The non-linear frequency modulation method of Chowning is an improvement over previously used linear harmonic summation and filtering methods, and has found commercialapplication in music synthesizers.
U.S. Pat. No. 4,215,617 entitled MUSICAL INSTRUMENT AND METHOD FOR GENERATING MUSICAL SOUND to Moorer describes improved non-linear methods of musical sound generation in which the amplitudes of frequency components are not constrained to theBessel functions and in which finite spectra can be utilized, that is, spectra composed of the sum of a finite number of sinusoids.
In general, prior art methods of musical sound generation have employed deterministic techniques. Typically, the methods rely upon an input sample which has fixed parameters which specify the musical sound to be generated. Such input sampleswhen processed by a predetermined method result in a deterministic output signal which does not have the rich, natural sound of more traditional instruments.
While many linear and non-linear methods, like those described above, have been used with success for digital musical synthesis, they all have required fast and complex computational capability typically involving several multiplication steps persample in order to achieve rich, natural sounds. Such fast and complex computational capability results in musical instruments of high cost and complexity. This high cost and complexity has impeded the widespread availability of digital synthesis.
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 stillproduce rich and natural sounds. There is also a need for improved digital music synthesizers which can be constructed using conventional computer processors and conventional semiconductor chip technology.
In accordance with the above background, it is an objective of the present invention to provide an improved musical instrument and method of generating rich and natural musical sounds utilizing simple and conventional digital circuitry which doesnot require computational complexity.
SUMMARY OF THE INVENTION
The present invention is a musical instrument and method employing probabilistic wavetable-modification for producing musical sound. The musical instrument includes a keyboard or other input device, a wavetable-modification generator forproducing digital signals by probabilistic wavetable modification, and an output device for converting the digital signals into musical sound.
The generator includes a wavetable which is periodically accessed to provide an output signal which determines the musical sound. The output signal from the wavetable can be modified and is stored back into the wavetable directly or as modifieddata. A decision is made stochastically whether to modify the output signal before it is stored back into the wavetable. At some later time, the possibly modified stored signal is again accessed and thereby becomes a new output signal. This process isperiodically repeated whereby each new output signal is stored (after possibly being modified) back into the wavetable. The output signals are thus generated by probabilistic wavetable modification, in accordance with the present invention, and are usedto produce rich and natural musical sound.
In accordance with the present invention, at any time t, the signal yt which is stored back into the wavetable is a function of the result vt of accumulated modifications of the original contents xt of the wavetable, and a currentmodification component mt. Therefore, the signal yt is a function of vt and mt as follows:
In a digital sample embodiment, the nth sample of yt is given as yn. In general, the nth modification component, mn, is determined stochastically for each sample. For a particular sample n, mn may be such that nomodification is performed. In accordance with one embodiment of the type suitable for generating plucked-string sounds, the modification performed to generate yn is an average of a first delayed output yn-N and the previous delayed outputyn-(N 1).
In the plucked string embodiment, the nth value to be stored into the wavetable is given as follows: ##EQU1## where: xn =nth initial excitation sample
yn =output at nth sample
N=pitch number (approximately the desired period of the tone in samples)
yn-N =sample delayed by N
yn-(N 1) =sample delayed by N 1
rn =a random number uniformly distributed between 0 and 1 which is generated for the nth sample
M=duration of initial excitation (“pluck”) in samples
d=probability of modification (“decay probability”)
In the plucked string embodiment, the modification is implemented, for example, as a simple addition and binary shift (divide-by-two) of data stored in a wavetable. The location of data in the wavetable, in one digital memory embodiment, isdetermined by memory address pointers. A Read Pointer specifies the location of the delayed sample, yn-N. A “Read Pointer 1″ is offset from the Read Pointer by one and specifies the location of the delayed sample yn-(N 1). The modified value,yn, is stored into the wavetable at a location specified by a Write Pointer. The Write Pointer is offset from the Read Pointer by the pitch number, N.
In a multi-voice embodiment, the pitch number, N, is typically different for each voice. A Read Pointer and a Write Pointer are determined for each voice.
The present invention can be economically implemented and additionally provides a superior result, that is, the pitch frequency need not be divided by an integer, fs /N, but is fractionally different, for example, fs /(N 1/2). Thefractional difference between the number N and for example, the number N 1/2, introduces small variations in the pitch of the note generated and materially enhances the sound generated by the present invention.
Furthermore, the present invention employs a random access memory wavetable in which the approximate pitch number N maybe different for different voices so that the pitch can be readily changed by merely changing the pointers to locations in thememory.
The present invention employs a random number generator to provide the initial input to the wavetable. The random number initially stored in the memory is unrelated, in general, to the pitch of the desired sound, that is, is unrelated to thepitch number, N.
The wavetable-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.
BRIEFDESCRIPTION OF THE DRAWINGS
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-modification 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 utilizing a DIGITAR semiconductor chip.
FIG. 6 depicts a schematic electrical block diagram of the DIGITAR chip employed in the FIG. 5 musical instrument.
DETAILED DESCRIPTION
In FIG. 1, a digital synthesizer musical instrument is shown. The instrument includes an input unit 2 which specifies a musical sound to be generated, a wavetable-modification generator 3 for generating signals representing the sound to beproduced and an output unit 4 for producing the desired sound.
In FIG. 2, 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 6. The keyboard 5 is of conventional design and produces electrical signalsrepresenting, 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 typicallyincludes 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 asignal on the output bus 8 which in turn connects to the output unit 4. The output unit 4 converts the signal on bus 8 to the desired musical sound. Typically, the output unit 4 includes a digital-to-analog converter 9. Analog signals output from theconverter 9 connect through a low-pass filter 10 and an amplifier 11 to a speaker 12. The speaker 12 produces the desired musical sound.
In FIG. 2, the wavetable-modification generator 3 includes a wavetable 13, a modifier unit 14 and a control unit 15. The wavetable 13 acts like a delay device having a delay time, p. Modified signals from modifier unit 14 are stored in wavetable13 where they are delayed a period, p, before appearing on bus 16. Output signals from the wavetable on bus 16 are modified in modifier unit 14 and stored in wavetable 13. In a digital implementation, the delay time, p, is represented by N samples ofdata. As a digital device, wavetable 13 is a digital memory for storing N samples of data. For values of time, t, less than p, the wavetable 13 stores initial values of xt. For a digital system, it is quantized into N values of n so that forinitial conditions, xn has N initial values.
By way of background, the wavetable 13, in the absence of any modification in modification unit 14, will generate an output signal yt which is periodic with the delay time, p. When the original contents in the wavetable are xt, theoutput signal, yt, can be expressed as follows:
If time, t, is quantized to discrete values, n, and p equals N values of n, where N is an integer, and xn represents N discrete values of xt, when Eq. (1) can be written as follows:
Thus the initial contents of the wavetable are output repeatedly in a cyclical manner to produce an unchanging, periodic waveform which without modification is not musically satisfactory. Because a modification is usually made by themodification unit 14, Eqs. (1) and (2) do not apply to the output signal utilized in the present invention, except in the special case when the decay probability d is equal to 0.
In accordance with the present invention, at any time t, the signal yt which is stored back into the wavetable is a function of the result vt of accumulated modifications of the original contents xt of the wavetable, and a currentmodification component mt. Therefore, the signal yt is a function of vt and mt given by the following Eq. (3:)
In a digital sample embodiment, the nth sample of yt is given as yn. Using the delay operator, DN, to represent a delay of N cycles, yn is a function of vt, which is given by DN yn and the nthmodification factor mn as given in the following Eq. (4):
In connection with Eq. (4), the maximum number of samples stored, which determines the maximum value of N, can be any number. The greater the number of samples, the lower the frequency components which can be produced. In one example, 2568-bit samples are stored which allow N to be a maximum of 255. Also, many different types of modification components, mn, can be selected. For simplicity and economy, however, it is desired to have mn computationally simple. One simplemodification component will be described in connection with the generation of a plucked-string musical sound.
Plucked-String 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, yn-N, by one period of n. The output from the delay 26 forms oneinput, yn-(N 1), on line 28 to an arithmetic unit (AU) 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 bus 16 (which is the output fromdelay 26) and forms their sum. The shift input 29 to the arithmetic unit 27 causes the sum to be shifted one binary bit, thereby dividing the sum by two. The arithmetic unit 27 produces as its output 8 either this sum, or the unmodified input on bus16, depending on the decay probability d and a random number rn.
With the modifier unit of FIG. 3 connected in the wavetable-modification generator 3 of FIG. 2, a plucked string sound will be generated. The wavetable-modification generator 3 in FIG. 2 formed 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 thegenerator 3 to generate the desired output signal during a subsequent decay period. For simplicity in the subsequent analysis, it will be temporarily assumed that the decay probability d=1, and that the pluck duration M, is equal to the pitch number N.The output signal from the modifier unit 14 as it appears on line 8 in FIG. 2 is then given as follows for n greater than or equal to 0:
where xn is the input signal amplitude at sample n, yn is the output amplitude at sample n, and N is the desired pitch period (approximately) of the note in samples. For n less than 0, yn is defined to be 0.
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 obtained by selecting the values of xn in Eq. (5) as follows:
where A is the desired amplitude, and un has values 1 or -1 as a function of the output of a random number generator. The values of xn for n equal to 0, 1, . . . , (N-1) are stored in wavetable 13 as initial values existing prior toany modification by modifier unit 14.
Finally, the output yn is utilized by the output device 4 in FIG. 2 to generate the sound.
The use of a random noise burst rather than a predetermined waveform during the pluck adds materially to the realism of the sound produced. This is especially apparent when the same pitch is rapidly repeated (guitarist’s “tremolo”) since theindividual notes each have a unique timbre due to their different initializations.
Analysis of the Plucked String Sound
The input-output relation of Eq. (5) can be expressed differently by means of “delay operator” notation. We define the unit-sample delay operator, D, by the relation,
where xn is an arbitrary signal, and k is an integer. Multiplying a signal by Dk delays the signal in time by k samples. In these terms Eq. (5) becomes, ##EQU2## Solving Eq. (8) for the output signal yn yields,
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 such as xn or yn are denoted in lower case letters and thecorresponding z-transforms are denoted in upper case letters, for example X(z) or Y(z).
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 z-1 for D in Eq. (9) and transposing asfollows: ##EQU3## where,
Eqs. (9) and (10) describe one embodiment of the wavetable-modification generator 3 of FIG. 2. The feedback loop consists of a length N delay line Hb (z), implemented as wavetable 13, in series with a two-point average Ha (z),implemented as modifier unit 14. The input to wavetable 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=ej?T =cos (?T) j sin (?T) where T is the sampling period in seconds (T is the inverse of the sampling rate fs),?=2?f is radian frequency, f is frequency in Hz, and j=??1.
The frequency response of the plucked string instrument of FIG. 2 is given as follows:
where, ##EQU4##
The frequency response peaks at certain frequencies which correspond to the fundamental and overtones (partials) of the tone produced. These frequencies can be determined from the location of the poles of the transfer function H(z) (those valuesof z where Ha (z)Hb (z)=1) which corresponds to finding the complex roots of the polynomial of degree (N 1). Since in general it is not algebraically possible to find these roots analytically for large N, approximation methods must be used.
It is useful to consider the amplitude response and phase delay of the wavetable component, Hb, and the modifier component Ha, separately. The amplitude response is defined as the magnitude of the frequency response, and it gives thegain 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 Ga and Gb of each component Ha and Hb, respectively, is given as follows:
Thus, the delay line component Hb is lossless, and the two-point average Ha exhibits a gain which decreases with frequency according to the first quadrant of a cosine. All frequencies are restricted to the Nyquist limit, that is,|f|?