Abstract:
An electronic musical instrument of the type which synthesizes a musical waveshape from a preselected set of harmonic coefficients is disclosed in which the tonal effects of a set of intramanual couplers is produced. The desired tonal effect is obtained by selecting particular subsets of the harmonic coefficients and combining the selected subsets in response to actuated tone switches.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to electronic musical tone synthesis and in particular is concerned with the selection of harmonics to imitate intramanual coupling. 
     2. Description of the Prior Art 
     Intramanual couplers are commonly used in the implementation of both theatre and concert type organs. Intramanual couplers are used to cause a selected combination of notes to sound for each actuated keyboard switch. Concert organs usually have intramanual couplers designed as octave couplers such as a 16-foot or a 4-foot coupler. If the 4-foot coupler is actuated, for example, then each note played on the keyboard will simultaneously cause the same tone to be played one octave higher than the actuated note. The use of intramanual couplers permit the musician to produce a large ensemble of notes while actually keying a relatively small number of keyswitches. 
     Intramanual couplers were skillfully employed in the design of theatre organs to produce a very large number of stops from a comparatively few ranks of pipes. In this design, which is called unification, the intramanual coupling is selectively implemented for an individual rank of pipes rather than for the entire keyboard as is the case for a concert organ. For example, the set of intramanual couplers for a tibia rank of pipes are frequently implemented to provide stops at 8&#39;, 4&#39;, 22/3&#39;, 1 3/5&#39; and 1&#39; pitch. 
     Intramanual couplers can, at least theoretically, be easily implemented in a digital musical tone generator or in an analog musical tone generator. An example of an electronic intramanual coupling arrangement is described in U.S. Pat. No. 3,697,661 entitled &#34;Multiplexed Pitch Generator System For Use In A Keyboard Musical Instrument.&#34; In the disclosed system, the keyboard switches are scanned by means of a time division multiplexing arrangement. The intramanual coupling is implemented by delaying a pulse associated with an actuated keyswitch and reinserting the pulse at a later time slot corresponding to the desired intramanual coupling spacing. 
     A practical problem arises when one implements intramanual coupling in most types of digital tone generators. Each actuated intramanual coupler requires an additional set of tone generators that can be assigned to the keyboard having the intramanual couplers. The digital tone generators are a relatively expensive subsystem of a digital musical tone generator and it is costly to increase the number of these generators. Herein is an apparent paradox. Intramanual couplers were originally used to inexpensively expand the tonal resources of an organ. While analog organs can exploit this economical tone expansion scheme of intramanual couplers, the use of intramanual couplers for a digital musical tone generator may be a luxury subsystem. 
     A system design intended to imitate the tonal response of an intramanual coupler for a unified organ design has been employed in the implementation of digital musical tone generators. The underlying scheme is one that is called harmonic suppression. In this scheme a 4-foot stop is obtained by using a waveshape in which all the odd-numbered harmonic components are eliminated. A 22/3-foot stop is obtained by using a waveshape corresponding to the third harmonic sequence of the 3,6,9,12,15, . . . , harmonics. A 2-foot stop is obtained by using a waveshape corresponding to the fourth harmonic sequence of the 4,8,12,16, . . . , harmonics. 
     In U.S. Pat. No. 4,085,644 entitled &#34;Polyphonic Tone Synthesizer&#34; a system is described whereby the tonal effect of unified stops is obtained by storing sets of harmonic coefficients having the appropriate missing harmonic coefficients. 
     In U.S. Pat. No. 4,286,491 entitled &#34;Unified Tone Generation In A Polyphonic Tone Synthesizer&#34; a system is described for creating the tonal effect of unified stops by the combination of three master data sets each of which corresponds to a period of the generated musical tone. The three master data sets are computed separately from stored sets of even and odd harmonic coefficient values. The master data set values are combined using their symmetric properties and are transferred sequentially to a digital-to-analog converter in repetitive cycles at a rate proportional to the unison pitch of the corresponding keyboard note to produce the tone color of a combination of unified tones. 
     Harmonic suppression does not provide the identical tonal effect of intramanual coupling for a mutation coupler such as a 22/3-foot or 1 3/5-foot coupler. Harmonic suppression provides an exact third or fifth harmonic base tone while intramanual mutation couplers are implemented to actuate the nearest musical note to the true third or fifth harmonic base note. Thus harmonic suppression schemes provide an approximation to the tonal effects produced by mutation intramanual couplers. 
     SUMMARY OF THE INVENTION 
     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. A sequence of computation cycles is implemented during each of which a master data set is created using a set of harmonic coefficients which are selected by actuated tone switches and which are selectively augmented in response to the actuation of a set of unification stop switches. At the end of each computation cycle, the computed master data set is stored in a main register. 
     Following each individual computation cycle, a transfer cycle is initiated during which the stored master data set is transferred to a note register which is an element of each of a number of tone generators. The tone generators are assigned to actuated keyboard switches. The data stored in a note register is repetitively and sequentially read out to a digital-to-analog converter at a rate corresponding to the fundamental frequency associated with its assigned actuated keyboard switch. The output tone generation continues uninterrupted during the computation and transfer cycles. 
     An object of the present invention is to provide the tonal effects of intramanual couplings without increasing the number of tone generators assigned to a keyboard. 
     Another object of the present invention is to provide the tonal effects of intramanual couplers for any preselected set of harmonic coefficients, or a combination of preselected harmonic coefficients, without increasing the memory size of the stored harmonic coefficients. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The detailed description of the invention is made with reference to the accompanying drawings wherein like numerals designate like components in the figures. 
     FIG. 1 is a schematic diagram of an embodiment of the invention. 
     FIG 2 is a schematic diagram of the harmonic select 201. 
     FIG. 3 is a schematic diagram of the data select 212. 
     FIG. 4 is a schematic diagram of an alternate embodiment of the invention. 
     FIG. 5 is another alternative embodiment of the invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The present invention is directed toward a polyphonic tone generator in which harmonic coefficients are selectively added to produce the tonal effect of intramanual coupling. The tone generator is incorporated into a musical tone generator of the type which synthesizes musical waveshapes by implementing a discrete Fourier transform algorithm. A tone generation system of this variety is described in detail in U.S. Pat. No. 4,085,644 entitled &#34;Polyphonic Tone Synthesizer.&#34; This patent 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 appearing in the referenced patent. All system element blocks which are identified by three digit numbers correspond to system elements added to the Polyphonic Tone Synthesizer or correspond to combinations of several elements appearing in the referenced patent. 
     FIG. 1 shows an embodiment of the present invention which is described as a modification and adjunct to the system described in U.S. Pat. No. 4,085,644. As described in the referenced patent, the Polyphonic Tone Synthesizer includes an array of instrument keyboard switches 12. If one or more of the keyboard switches has a switch status change and is actuated (&#34;on&#34; position), the note detect and assignor 14 encodes the detected keyboard switch having the status change to an actuated state and stores the corresponding encoded note information for the actuated keyswitches. One member of a set of tone generators, contained in the system block labeled tone generators 101, is assigned to each actuated keyswitch. 
     A suitable note detect and assignor subsystem is described in U.S. Pat. No. 4,022,098 which is hereby incorporated by reference. 
     When one or more keyswitches have been actuated, the executive control 16 initiates a repetitive sequence of computation cycles. During each computation cycle, a master data set consisting of 64 data words, or points, is computed in a manner described below and stored in the main register 34. The 64 data words are generated using a combination harmonic sequence comprising 32 harmonic coefficients which is provided at the output of the summer 230. 
     The 64 data words in the master data set correspond to the amplitudes of 64 equally spaced points of one cycle of the audio waveform for the musical tone produced by a corresponding one of the tone generators 101. The general rule is that the maximum number of harmonics in the audio tone spectra is no more than one-half of the number of data points in one complete waveshape period. Therefore, a master data set comprising 64 data words corresponds to a maximum of 32 harmonics. 
     At the completion of each computation cycle in the repetitive sequence of computation cycles, a transfer cycle is initiated during which the master data set residing in the main register 34 is transferred to each note register corresponding to the tone generators in the tone generators 101 which have been assigned to an actuated keyswitch. Each tone generator has an associated note register. 
     The master data set stored in a note register is read out sequentially and repetitively and transferred to a digital-to-analog converter at a rate determined by a note clock associated with the note register. The note clock timing signals correspond to the fundamental frequency of the musical note associated with the actuated switch to which the corresponding tone generator has been assigned by the note detect and assignor 14. 
     The note clocks can be implemented in any one of a wide variety of implementing adjustable frequency timing clocks. Advantageously the note clocks may be implemented as voltage controlled oscillators. One such implementation in the form of voltage controlled oscillators is described in detail in U.S. Pat. No. 4,067,254 which is hereby incorporated by reference. 
     A digital-to-analog converter is contained in the system block labeled sound system 11. The musical waveshape produced by the digital-to-analog converter is transformed into an audible sound by means of a sound system consisting of a conventional amplifier and speaker subsystem which are also contained in the system block labeled sound system 11. 
     As described in the referenced U.S. Pat. No. 4,085,644 it is desirable to be able to continuously recompute and store the generated master data sets during a repetitive sequence of computation cycles and to load this data into the associated note registers while the actuated keys remain actuated, or depressed, on the keyboards. 
     In the manner described in the referenced U.S. Pat. No. 4,085,644, the harmonic counter 20 is initialized to its minimal, or zero, count state at the start of each computation cycle. Each time that the word counter 19 is incremented so that it returns to its initial, or minimal count state because of its modulo counting implementation, a signal is provided which increments the count state of the harmonic counter 20. The word counter 19 is implemented to count modulo 64 which is the number of data words in the master data set which is generated and stored in the main register 34. The harmonic counter 20 is implemented to count modulo 32. This number corresponds to the maximum number of harmonics consistent with a master data set comprising 64 words. 
     At the start of each computation cycle, the accumulator in the adder-accumulator 21 is initialized to a zero value. Each time that the word counter 19 is incremented, the adder-accumulator adds the current count state of the harmonic counter 20 to the sum contained in the accumulator. This addition is implemented to be modulo 64. 
     The content of the accumulator in the adder-accumulator 21 is used by the memory address decoder 23 to access trigonometric sinusoid values from the sinusoid table 24. The sinusoid table 24 is advantageously implemented as a read only memory storing values of the trigonometric function sin (2πφ/64) for 0≦φ≦64 at intervals of D. D is a table resolution constant. 
     The multiplier 28 multiplies the trigonometric value read out of the sinusoid table by a harmonic coefficient provided by the summer 230. The product value formed by the multiplier 28 is furnished as one input to the adder 33. 
     The contents of the main register 34 are initialized to a zero value at the start of a computation cycle. Each time that the word counter 19 is incremented, the content of the main register 34 at an address corresponding to the count state of the word counter is read out and furnished as an input to the adder. The sum of the inputs to the adder 33 are stored in the main register 34 at a memory location equal, or corresponding, to the count state of the word counter 19. After the word counter 19 has been cycled for 32 complete cycles of 64 counts, the main register 34 will contain the master data set. 
     FIG. 2 is a schematic block diagram of the harmonic select 201. The memory address decoder 25 reads out harmonic coefficients from the harmonic coefficient memory 27 in response to the count state of the harmonic counter 20. The accessed harmonic coefficients from the harmonic coefficient memory 27 are stored in the harmonic shift register 204. 
     The harmonic shift register 204 is implemented as a serial-input device with parallel output terminals. The parallel output data from the harmonic shift register 204 is provided to the set of data select devices 250, 208,212, 216, and 220. 
     Counter-2 202 is implemented to count modulo 2. This modulo number is called a preselected counting number. Counter 203 is implemented to count modulo 16. Each time that the counter-2 220 is incremented so that it returns to its initial, or minimal, count state a reset signal is generated. This generated reset signal is used to increment the count state of the counter 203. 
     The count states of the counter 203 are decoded onto separate select lines by a binary count state decoder which is an element of the data select 250. The decoded count state data appearing on the select lines are used to select the corresponding output data provided to the data select 250 by the harmonic shift register 204. The net result is that the output data from the data select 250 consists of the harmonic coefficient sequence corresponding to the harmonic sequence 1,2,3,4, . . . ,16. The output harmonic coefficients from the data select 250 occur at a time sequence corresponding to the 2,4,6, . . . ,32 count states of the harmonic counter 20. In this fashion the harmonic coefficient sequence provided from the output of the data select 250 corresponds to the harmonic coefficients for a 4-foot stop having the same first 16 harmonic coefficient values as the tone determined by the harmonic coefficients read out from the harmonic coefficient memory 27. The harmonic coefficient sequence provided at the output of the data select 250 are furnished to the summer 230 if the switch S2 is actuated (&#34; closed&#34; or &#34;on&#34; position). 
     Counter-3 205 is implemented to count modulo a value of three for the preselected counting number. Counter 206 is implemented to count modulo 10. Each time that counter-3 205 is incremented so that it returns in its initial, or minimal, count state a reset signal is generated. This generated reset signal is used to increment the count state of the counter 206. 
     Adder 207 adds a constant value corresponding to the binary value of decimal 2 to the count state of the counter 206. This added constant value is a preselected offset number. The binary output data from the adder 207 are decoded onto separated select lines by a binary state decoder which is an element of the data selected 208. The decoded count state data appearing on the select lines are used to select the corresponding output data provided to the data select 208 by the harmonic shift register 204. The net result is that the output data from the data select 208 consists of the harmonic coefficient sequence corresponding to the harmonic sequence 1,2,3, . . . ,10. The output harmonic coefficient sequence from the data select 208 occurs at a time sequence corresponding to the 3,6,9, . . . ,30 count states of the harmonic counter 20. In this fashion the output of the data select 208 corresponds to the harmonic coefficients for a 22/3-foot stop having the same first valued 10 harmonic coefficients as the tone determined by the harmonic coefficients read out from the harmonic coefficient memory 27. The harmonic coefficient sequence provided at the output of the data select 208 is furnished to the summer 230 if the switch S3 is actuated. 
     In a fashion analogous to that described for the 22/3-foot harmonic coefficient selection, the combination of the counter-4 209, counter 210, adder 211 and the data select 212 provides a harmonic coefficient sequence corresponding to a 2-foot stop. 
     In a fashion analogous to that described for the 22/3-foot harmonic selection, the combination of the counter-5 213, counter 214, adder 215 and the data select 216 provides a harmonic coefficient sequence corresponding to a 1 3/5-foot stop. 
     The output harmonic coefficient sequences passed by the the actuation of their corresponding tone switches S1 through S6 are combined by means of the summer 230 to form a combination harmonic coefficient sequence. 
     In a fashion analogous to that described for the 22/3-foot harmonic coefficient selection, the combination of the counter-8 217, counter 218, adder 219 and the data select 220 provides a harmonic coefficient sequence corresponding to a 1-foot stop. 
     Table 1 lists the harmonic sequence for the harmonic coefficients that are stored in the harmonic shift register for the 32 count states of the harmonic counter 20. The remainder of the count states 17 to 32 have been omitted from Table 1 since it is obvious how the omitted entries are written. 
     
                                           TABLE 1__________________________________________________________________________Harmonics for coefficients stored in shift registerOutput tap 1 2 3 4 5 6 7 8 9 10                     11                       12                         13                           14                             15                               16__________________________________________________________________________1     1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 02     2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 03     3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 04     4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 05     5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 06     6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 07     7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 08     8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 09     9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 010    10   9 8 7 6 5 4 3 2 1 0 0 0 0 0 011    11   10     9 8 7 6 5 4 3 2 1 0 0 0 0 012    12   11     10       9 8 7 6 5 4 3 2 1 0 0 0 013    13   12     11       10         9 8 7 6 5 4 3 2 1 0 0 014    14   13     12       11         10           9 8 7 6 5 4 3 2 1 0 015    15   14     13       12         11           10             9 8 7 6 5 4 3 2 1 016    16   15     14       13         12           11             10               9 8 7 6 5 4 3 2 1__________________________________________________________________________ 
    
     FIG. 3 shows the logic for implementing the data select 212. The top timing diagram illustrates the timing pulses used to increment the harmonic counter 20. The middle timing diagram shows the count states of the counter-4 209. The bottom timing diagram illustrates the timing of the data furnished by the adder 211. The numbers correspond to the decimal equivalent of the count state of the counter-4 209 incremented by 3+1. The one increment is used for the decimal equivalence of equating the initial &#34;0&#34; binary state of the counter-4 209 to the decimal value of &#34;one.&#34; 
     The output of the adder 211 comprises four parallel data lines. The binary states of these four data lines are decoded into the input signals to the set of AND-gates 274 through 281 with the aid of the INVERTOR-gates 270 through 273. The decoding is such a &#34;1&#34; binary logic state will be generated by the AND-gate 274 when the binary number output of the adder-211 is 3; a &#34;1&#34; binary logic state will be generated by the AND-gate 275 when the binary number output of the adder 211 is 4. The other decoding operates in a similar fashion and the AND-gate 281 will create a binary &#34;1&#34; logic output state when the binary number output of the adder 211 is 28. 
     The binary logic output states of the set of AND-gates 274 through 281 are used by the set of AND-gates 282-289 to select the indicated output data ports from the harmonic shift register 204. While the output data lines from the harmonic shift register are shown as single lines, this is to be understood as a drawing convenience to represent a plurality of data lines whose number corresponds to the number of binary bits in the binary representation of a harmonic coefficient. Similarly the single output line for the set of AND-gates 282 through 289 each represents a plurality of lines. The output data from the set of AND-gates 282 through 289 are furnished to the switch S4 by the OR-gate 290. 
     The other data selects 250, 208, 216, and 220 are implemented in a manner analogous to that shown in FIG. 3 for the select gate 212. 
     FIG. 4 illustrates an alternate embodiment of the present invention which employs FIFO (first-in first-out) registers in the implementation of the harmonic select 210. The memory address decoder 25 reads out harmonic coefficients from the harmonic coefficient memory 27 in response to the count state of the harmonic counter 20. The accessed harmonic coefficients from the harmonic coefficient memory 27 are stored in the set of FIFO registers 231 through 235. Each FIFO register is cleared at the start of a computation cycle in response to a RESET signal provided by the executive control 16. 
     As each of the counters 202, 205, 209, 213, 217 is incremented to return to its initial count state, a reset signal is generated. In response to a reset signal generated by one of these counters, a harmonic coefficient value is read out of the associated FIFO register. 
     The action of a counter and its associated FIFO register provides the desired timing and selection of harmonic coefficients. For example, consider the combination of the counter-4 209 and the FIFO register 233. When the harmonic counter 20 is at its initial count state, the first harmonic coefficient is addressed out of the harmonic coefficient memory and is stored in the FIFO register 233. When the harmonic counter 20 reaches a count state corresponding to the decimal number 4, the FIFO register 233 will contain the first four harmonic coefficients that have been read out from the harmonic coefficient memory 27. At this time, the counter-4 209 returns to its minimal count state and generates a reset signal. In response to this reset signal, the first harmonic coefficient is read out from the FIFO register 233 and furnished to the input terminals of the switch S4. When the harmonic counter 20 reaches a count state corresponding to the decimal number 8, the FIFO register 233 will contain the harmonic coefficients corresponding to the harmonic number sequence 2, . . . ,8. At this time, the counter-4 209 again returns to its minimal count state and generates a reset signal. In response to this reset signal, the second harmonic coefficient is read out from the FIFO register 233 and furnished to the input terminals of the switch S4. 
     The above operation is repeated until the harmonic counter 20 reaches its full decimal count of 32 at which time the computation cycle has been completed. 
     The present invention can also be incorporated into other tone generators of the type which synthesize musical waveshapes by implementing a Fourier-type transformation employing a selected set of harmonic coefficients. A system of this category is described in U.S. Pat. No. 3,809,786 entitled &#34;Computer Organ.&#34; This patent is hereby incorporated by reference. 
     FIG. 5 illustrates a tone generation system which incorporates the present invention into the Computer Organ described in the referenced patent. The system blocks shown in FIG. 5 are numbered to be 300 plus the corresponding block numbers shown in FIG. 1 of the referenced patent. 
     A closure of a keyswitch contained in the instrument keyboard switches causes a corresponding frequency number to be accessed out from the frequency number memory 314. The accessed frequency number is added repetitively to the contents of the note interval adder 325. The content of the note interval adder 325 specifies the sample point at which a waveshape amplitude is calculated. For each sample point, the amplitudes of a number of harmonic components are calculated individually by multiplying harmonic coefficient values furnished by the summer 230 with trigonometric sinusoid values read out from the sinusoid table 321. The multiplication is accomplished by means of the harmonic amplitude multiplier 333. The harmonic component amplitudes are summed algebraically in the accumulator 316 to obtain the net amplitude at a waveshape sample point. The sample point amplitudes are converted into an analog signal by means of the digital-to-analog converter 318. The resultant analog signal is then furnished to the sound system 311. 
     The sinusoid table 329 stores values of the trigonometric function sin (2πn/64). These function values correspond to a waveshape having 64 points per period for the highest fundamental frequency musical pitch generated by the system. 
     The harmonic coefficients read out of the harmonic coefficient memory 315 in response to the memory address control 335 are processed by the harmonic select 201 in the manner previously described for the tone generation system shown in FIG. 1. 
     A polyphonic tone generator for the Computer Organ is implemented by time sharing the functions previously described in a sequence of time slots. Each time slot corresponds to a detected actuated keyswitch and thus corresponds to an individual tone generator. The accumulator 316 sums the computation of points for one sequence of time slots and the combined data point is furnished to the digital-to-analog convertor 318.