Abstract:
An ensemble effect is produced in a digital tone generator by providing a master data set of words having values corresponding to the relative amplitudes of equally spaced points along one cycle of a waveform of a musical tone in which the fundamental frequency is deleted. These values are read sequentially and repetitively from a memory to produce a first analog tone. A second analog tone is produced by multiplying a data set corresponding to the fundamental frequency by a low frequency sinusoid. The first and second analog tones are summed to yield a musical tone having an ensemble effect.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to electronic musical tone synthesizers and in particular is concerned with a digital tone generator producing an ensemble effect. 
     2. Description of the Prior Art 
     It is widely recognized that the tonal performance of an electronic musical instrument is enhanced by producing tones having an ensemble effect. The usual method of producing an ensemble effect is to generate two, or more, tones, whose fundamental frequencies differ by some small frequency difference. The motivation is to imitate the ensemble tone produced by a chorus of musical instruments which are not precisely in tune. It is this type of &#34;out-of-tune&#34; ensemble that produces the warm tone produced by a section of violins even when they are played in unison. 
     Various arrangements have been employed to electronically generate two simultaneous tones which are slightly detuned. The straightforward arrangement is to simply duplicate each tone generator and to use detuned clocks for each tone generator. Unfortunately the straightforward arrangement is usually an expensive solution because of the cost associated with duplicating the entire tone generation system. There is also the problem of using two clocks which must be only slightly out-of-tune and cannot be allowed to drift independently in frequency with changes in their ambient conditions. 
     Several arrangements have been developed for obtaining the two out-of-tune tone generators required for an ensemble effect by using only a single clock for both tone generators. Representative prior art is described in the following patents. 
     In U.S. Pat. No. 3,809,792, entitled &#34;Production Of Celeste In A Computor Organ,&#34; apparatus is described for producing a celeste effect in a tone generator wherein the amplitudes of successive sample points of a musical waveshape are computed in real time. The amplitude of each sample point is obtained by summing two sets of Fourier components. One set is associated with the true pitch of the selected note and the second set is generated at a slightly higher pitch. The net result is a celeste-like effect, or an ensemble effect. 
     In U.S. Pat. No. 4,112,803 entitled &#34;Ensemble And Anharmonic Generation In A Polyphonic Tone Synthesizer&#34; a method is described for producing two out-of-tune musical tones. The first tone is produced in the manner described in U.S. Pat. No. 4,085,644 entitled &#34;Polyphonic Tone Synthesizer.&#34; The second tone is produced by using the same waveshape data as that computed for the first tone and repetitively reading out the data from a memory while slowly advancing the starting memory address. This action is equivalent to producing a linear phase shift which produces a tone at an increased frequency with respect to the note clock used to address the waveshape data from the memories. The net result is the production of two out-of-tune musical tones by using only a single note clock and a low frequency timing source. 
     In U.S. Pat. No. 4,205,580 entitled &#34;Ensemble Effect In An Electronic Musical Instrument&#34; a method is described for producing an ensemble effect in a tone generator of the type described in the above referenced U.S. Pat. No. 4,085,644. The waveshape data stored in the master data set are converted to analog signals by means of two digital-to-analog converters. The ensemble effect is produced by transferring data to the second converter at the same rate that data is transferred to the first converter but by having either one data point deleted or repeated in the second data set. Because the second data set has one less, or one extra, data point, the resulting musical tones from the two digital-to-analog converters change phase linearly with respect to each other with each successive cycle of the waveshape and thereby produces the desired detuning for an ensemble effect. 
     SUMMARY OF THE INVENTION 
     The present invention is directed to apparatus for producing an ensemble effect in a musical tone generator in which the tonal effect of multiple tones is created by a single tone generator which uses two master data sets comprised of selected waveshape sample data points. 
     In a Polyphonic Tone Synthesizer of the type described in U.S. Pat. No. 4,085,644, a computation cycle and a data transfer cycle are repetitively and independently implemented to provide data which are converted to musical waveshapes. During the computation cycle a first and a second master data set are created by implementing a discrete Fourier algorithm using stored sets of harmonic coefficients which characterize preselected musical tones. The computations are carried out at a fast rate which may be nonsynchronous with any musical frequency. Preferably the harmonic coefficients and the orthogonal functions required by the Fourier algorithm are stored in digital form and the computations are carried out digitally. At the end of a computational cycle the master data sets are stored in separate registers. 
     Following a computation cycle, a transfer cycle is initiated during which the master data sets are transferred to preselected members of a multiplicity of tone generators. The output tone generation continues uninterrupted during the computation and transfer cycles. 
     A note clock, operating at a frequency corresponding to an actuated keyboard switch, is used to address out values of the first master data set stored in a tone generator into a digital-to-analog converter to produce a first output analog waveform. The same note clock is used to address out values of the second master data set which are stored in a corresponding tone generator. The note clock is divided in frequency by a factor of 512 and the divided clock rate is used to address successive trigonometric values stored in a sinusoid table. The addressed out values of the second master set are multiplied by the trigonometric values read out of the sinusoid table. The product data values are converted to an analog signal which is summed with the first output analog waveform to produce the ensemble effect. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     For a better understanding of the invention reference should be made to the accompanying drawings. 
     FIG. 1 is a block diagram of the ensemble tone generating system. 
     FIG. 2 is an alternative implementation of the ensemble tone generating system. 
     FIG. 3 is an alternative implementation which eliminates the fundamental note register. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The present invention is directed to an improvement in a musical tone generation system of a type that repetitively reads successive waveshape sample points from a memory at a rate corresponding to an actuated switch on an array of keyboard switches. The sample points accessed from the memory are converted to analog musical signals by means of a digital-to-analog converter. A tone generation system of this type is described in detail in U.S. Pat. No. 4,085,644 entitled &#34;Polyphonic Tone Synthesizer&#34; and which is hereby incorporated by reference. In the following description all elements of the system which are described in the referenced patent are identified by two digit numbers which correspond to the same numbered elements used in the patent. All system element blocks which are identified by three digit numbers correspond to elements added to the Polyphonic Tone Synthesizer to implement the improvements of the present invention to produce an ensemble tone effect. 
     The ensemble tone effect generation system is motivated by the well-known trigonometric identity for the sum of two sinusoid functions: 
     
         sin 2πf.sub.1 t+sin 2πf.sub.2 t=2 sin [2π(f.sub.1 +f.sub.2)t/2] cos [2π(f.sub.1 -f.sub.2)t/2].                         Eq. 1 
    
     Let 
     
         f.sub.2 =f.sub.1 -g                                        Eq. 2 
    
     where g is a small frequency increment. Substitute Eq. 2 in Eq. 1 to obtain ##EQU1## The last form of Eq. 3 is an approximation in which the frequency f 1  +g/2 is replaced by f 1 . Eq. 3 indicates that the sum of two sinusoid functions of slightly different frequencies can be generated by multiplying, or modulating, a sine function by the cosine function having one-half of the frequency difference as its argument. 
     Frequency comparisons of two musical frequencies are expressed in cents C according to the relation 
     
         C=K log f.sub.1 /f.sub.2                                   Eq. 4 
    
     where the constant K is defined as 
     
         K=1200/log 2.                                              Eq. 5 
    
     From Eq. 4, the frequency f 1  can be expressed as 
     
         f.sub.1 =f.sub.2 exp (C/K).                                Eq. 6 
    
     Substitute Eq. 6 in Eq. 2 to find the expression 
     
         g=f.sub.1 (A-1)/A                                          Eq. 7 
    
     where the constant A is defined as 
     
         A=exp (C/K).                                               Eq. 8 
    
     The modulation frequency g/2 for any specified detuning expressed in cents between two frequencies can be calculated from Eq. 7. Typical values are shown in Table 1. 
     
                       TABLE 1______________________________________Cents     Fraction (A-1)/2A                   Binary Fraction______________________________________1         0.00029       0.000 000 000 0012         0.00058       0.000 000 000 0103         0.00087       0.000 000 000 1004         0.00115       0.000 000 000 1015         0.00144       0.000 000 000 1106         0.00173       0.000 000 000 1117         0.00202       0.000 000 001 0008         0.00231       0.000 000 001 0019         0.00259       0.000 000 001 01110        0.00288       0.000 000 001 10011        0.00317       0.000 000 001 10112        0.00345       0.000 000 001 11013        0.00374       0.000 000 001 11114        0.00403       0.000 000 010 00115        0.00431       0.000 000 010 010______________________________________ 
    
     It is noted from the entries of Table 1 that a detuning frequency difference of 7 cents corresponds to the binary number 0.000 000 001 000. 7 cents is an advantageous choice for an ensemble detuning and the corresponding binary number fraction of 2 -9  =1/512 is easily implemented as a left binary shift of 9 bit positions. 
     In FIG. 1, the collection of keyswitches for the electronic musical instrument is shown generally by the system block labeled instrument keyboard switches 12. Whenever a keyswitch is actuated or released on a keyboard, note detect and assignor 14 detects such keyboard switch state changes and stores, for each actuated switch, information corresponding to the note within an octave, the octave number for the keyboard, and a keyboard identification number. This information is stored in a memory (not shown) which is a component of the note detect and assignor 14. The operation of a suitable note detect and assignor subsystem is described in U.S. Pat. No. 4,022,098 entitled &#34;Keyboard Switch Detect And Assignor&#34; which is hereby incorporated by reference. 
     A master data set comprising a set of points corresponding to equally spaced amplitude values for a musical waveshape is generated by the waveshape generator 201. While any of the known types of digital waveshape generators can be used to generate the master data set, it is advantageous to use the system disclosed in the previously referenced U.S. Pat. No. 4,085,644. 
     The general rule is that the maximum number of harmonics in the generated musical sounds is no greater than one-half of the number of equally spaced points defining one period of the musical waveshape. An advantageous choice is that of 64 data points which corresponds to a 32 harmonic capability for the musical tones. This is adequate for most electronic musical instruments. 
     A master data set is computed by the waveshape generator 201, as described in U.S. Pat. No. 4,085,644, with the omission of the first harmonic. This is done by setting to a zero value the magnitude of the first harmonic coefficient, used to calculate the master data set. The master data set is computed repetitively during a sequence of computation cycles. The computed master data is stored in a main register contained within the waveshape generator 201. 
     At the conclusion of a computation cycle, the master data set is transferred to a number of note registers which are components of a corresponding number of tone generators. 
     One such tone generator is shown explicitly in FIG. 1. A tone generator comprises the system blocks: note register 37, digital-to-analog converter 47, note clock 36, counter 101, sinusoid table 124, fundamental note register 137, multiplier 102, and digital-to-analog converter 115. The other tone generators, which are not shown, comprise similar system blocks. The output signals from the tone generators are added together in sum 55 and converted to audible sounds by means of the sound system 11. 
     As described in the referenced U.S. Pat. No. 4,085,644, the note select is used during the transfer cycle to direct the transfer of the master data set computed by the waveshape generator 201 in turn to each of the note registers contained in the tone tone generators such as the note register 37 shown in FIG. 1. 
     The fundamental note register 137 contains data corresponding to the missing first harmonic of the master data set. Thus the data stored in the fundamental note register are simply those corresponding to a sinusoid table for a complete sinusoid table of values corresponding to the number of data points comprising the master data set. This set of data points is called the fundamental data words. 
     The stored data is addressed simultaneously out of the note register 37 and the fundamental note register by means of timing signals generated by the note clock 36. The frequency of the note clock is controlled by the note detect and assignor 14 to correspond to the musical frequency of an actuated keyboard switch. This frequency is the fundamental musical frequency multiplied by the number of master data point values stored in the note register 37. Apparatus for implementing a note clock is described in U.S. Pat. No. 4,067,254 entitled &#34;Frequency Number Controlled Clocks.&#34; This patent is hereby incorporated by reference. 
     The timing pulses created by the note clock 36 are divided in frequency by means of the counter 101. The result is a divided sequence of timing signals. Counter 101 is implemented to count modulo 512. Each time counter 101 returns to its minimal count state because of its modulo implementation a RESET signal is generated. 
     Counter 138 is implemented to count modulo 64 and is incremented by the RESET signal generated by counter 101. 
     The sinusoid table 124 contains values of the trigonometric sinusoid functions cos (2πn/N) where N is the number of data points of the master data set stored in the note register 37 and the index n is an integer in the range n=1,2, . . . ,N. n is the memory address number for each sinusoid value selected in the sinusoid table 124. For the system implementation shown in FIG. 1, the fundamental note register 137 contains the values of sin (2πn/N). 
     Trigonometric sinusoid values are addressed out of the sinusoid table 124 in response to the state of the counter 138. The data values addressed out of the sinusoid table 124 are used to multiply, or scale, the data values addressed out of the fundamental note register 137 by means of the mutiplier 102. 
     It is recognized that the combination of the note clock 36, counters 101 and 138, sinusoid table 24, fundamental note register 137, and the multiplier 137 comprises an implementation of the right hand side of Eq. 3. The net result is that the analog signal provided by the digital-to-analog converter 115 comprises the sum of the fundamental of the generated musical tone and a fundamental that is out-of-tune by 7 cents. The two out-of-tune frequencies are added to the output of the digital-to-analog converter 37 by means of sum 55 to generate a composite signal that has the desired ensemble effect. 
     An alternative method of obtaining the data stored in the fundamental note register is to divide each computation cycle into two segments. During the first segment of a computation cycle only the first harmonic coefficient of the set of harmonic coefficients corresponding to a preselected musical tone color is used. The computed data points for the master data set obtained during the first computation segment are stored in the fundamental note registers for all of the tone generators. All the remaining members of the selected set of harmonic coefficients are used during the second computation segment to generate a master data set which is stored in a main register contained in the waveshape generator 201. 
     An alternative system configuration is shown in FIG. 2 for the basic system shown in FIG. 1 and previously described. In FIG. 2, the digital multiplier 102 of the system shown in FIG. 1 is replaced by a multiplying digital-to-analog converter 115. The digital trigonometric data values addressed out of the sinusoid table 124 are converted to analog signals which are used as the reference level for the digital-to-analog converter. In this fashion the digital-to-analog converter 115 provides an output analog signal which is the product of the data values read out of the fundamental note register 137 and the sinusoid table 124. 
     Since essentially the same data is stored in both the fundamental note register 137 and the sinusoid table 124, one of these devices can be eliminated by the expedient of time sharing a single device. Such a time sharing arrangement is shown in FIG. 3. 
     Data select 139 is used to address sinusoid values out from the sinusoid table 124 in response either to the sate of counter 140 or to the state of counter 138. Counter 140 is implemented to count modulo 64 and is incremented by means of the timing signals provided by the note clock 36. 
     Data select 139 will select data from counter 140 unless it receives a signal from the delay 142. In response to a signal from the delay 142, data select 139 will select data from counter 138. 
     The RESET signal from counter 101 that is used to increment the counter 138 is converted into a pulse by means of the edge detect 141. This pulse is delayed by means of the delay 142 so that the signal transferred to the data select 139 does not coincide with a change of state of the counter 140. 
     When data select 139 causes a sinusoid value to be addressed out of the sinusoid table 124 in response to the content of counter 138, data select 143 in response to a signal from delay 142 causes the sinusoid value to be transferred and stored in the register 144. 
     The sinusoid values addressed out of the sinusoid table 124 in response to the states of counter 140 are transferred by data select 143 to the digital-to-analog converter 115. 
     The contents of register 144 are converted to analog signals by means of the digital-to-analog converter 145. This converted analog signal is used as a reference signal for the digital-to-analog converter 115 as previously described in reference to the system shown in FIG. 2. 
     The output analog signal from the multiplying digital-to-analog converter is combined with the signal output from the digital-to-analog converter 47 in sum 55 to produce the desired musical tone having an ensemble effect. 
     It is evident from Table 1, that ensemble effects with different amounts of detuning can be obtained by implementing counter 101 to count by other than a modulo 512 configuration. A detuning control can readily be implemented by using a counter having a modulo count action that is adjustable in response to a control signal. Such variable counters are well-known devices.