1. A musical instrument wherein the amplitudes at successive sample points of a musical waveshape are computed at certain regular time intervals, comprising:
2. A musical instrument according to claim 1 further comprising;
3. A musical instrument according to claim 2 wherein said means for obtaining comprises;
4. A musical instrument according to claim 1 wherein said computing is performed digitally and wherein said means for converting comprises a sound system and a digital-to-analog converter receiving said waveshape amplitudes at the end of each computation and providing to said sound
5. In a musical instrument:
6. A musical instrument comprising:
7. A musical instrument according to claim 6 wherein said harmonic component evaluation circuitry comprises;
8. A musical instrument according to claim 7 wherein said sin calculation circuitry comprises;
9. A musical instrument according to claim 8 together with means for selecting a value R comprising a frequency number memory containing values of R associated with selectable musical notes, some of said R values being non-integers, wherein N represents the number of computed amplitude intervals per period of the highest selectable note, and wherein said note
10. A musical instrument according to claim 9 wherein said memory address decoder rounds off the argument KnqR to address said sinusoid table
11. A musical instrument according to claim 6, said instrument being polyphonic, said first means using time sharing to compute the amplitudes for a plurality of selected notes, the number of said notes not to exceed M, each amplitude being computed in an interval tx ' ≤ tx
12. A musical instrument according to claim 6 further comprising;
13. A musical instrument according to claim 12 wherein fH is the frequency of the highest musical note selectable by said note selection switches, wherein NH is the number of amplitudes Xo (qR) computed by said first means per period of said highest musical note, and including a clock directing computation by said first means of each of said amplitudes Xo (qR) in a time interval tx = (1/NH fH).
14. A musical instrument according to claim 13 further comprising gating circuitry enabling said second means at each time interval tx = 1/NH fH) to convert said amplitude Xo (qR) computed for the
15. A musical instrument according to claim 14, said instrument being monophonic, each of said amplitudes Xo (qR) being computed in a time
16. A musical instrument according to claim 6 wherein said memory and said table are digital devices in which said coefficients and values are stored in digital form, wherein said first means for computing functions digitally, and wherein said second means comprises a digital-to-analog
17. A musical instrument according to claim 6 wherein note selection is accomplished by;
18. A musical instrument according to claim 6 further comprising a scaler, cooperating with said first means, for scaling the values Cn during
19. A musical instrument according to claim 18 wherein said scaler is operative to scale said values Cn during successive periods of said
20. A musical instrument according to claim 6 further comprising transient control means, cooperating with said first means, for scaling said harmonic coefficients as said coefficients are utilized in the individual
21. A musical instrument according to claim 20 further comprising means for
22. A musical instrument according to claim 6 wherein said first means comprises:
23. A musical instrument according to claim 22 further comprising circuitry cooperating with said stop tab switches for providing to said harmonic component evaluation circuitry the combination of both sets of stored harmonic coefficients when both said first and second stop tab switches are actuated, said instrument thereby producing notes having the combined
24. A musical instrument according to claim 6 further including transient control means, cooperating with said first means, for scaling said harmonic coefficients as said coefficients are utilized in the individual Fourier component calculations, and transient control means comprising:
25. A musical instrument according to claim 24 wherein said program control circuitry accesses progressively increasing scale factors during the
26. A musical instrument according to claim 24 wherein said program control circuitry accesses progressively decreasing scale factors during the final
27. A musical instrument according to claim 26 further comprising keyboard switches, closure of any keyboard switch causing said first and second means to produce a note, said program control circuitry causing said first and second means to continue to produce said note after said switch is
28. In a musical instrument of the type including generation means wherein a musical waveshape is synthesized by computing in real time the amplitudes at successive sample points of that waveshape, said waveshape amplitudes being converted to musical signals as the computations are carried out, each waveshape amplitude being computed by individually calculating the constituent harmonic components of that musical waveshape and summing these harmonic components, the relative amplitudes of said harmonic components being established by a set of harmonic coefficients, the improvement comprising:
29. In a musical instrument of the type including generation means wherein a musical waveshape is synthesized by computing in real time the amplitudes at successive sample points of that waveshape, said waveshape amplitudes being converted to musical signals as the computations are carried, out, each waveshape amplitude being computed by individually calculating the constituent harmonic components of that musical waveshape and summing these harmonic components, the relative amplitudes of said harmonic components being established by a set of harmonic coefficients, the improvement comprising:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to an electronic musical instrument wherein tones are produced by computing the amplitudes at successive sample points of a complex waveshape and converting these amplitudes to musical sounds as the computations are carried out.
2. Description of the Prior Art
The advantages of digital waveshape generation in an electronic musical instrument are outlined in the inventor's U.S. Pat. No. 3,515,792 entitled DIGITAL ORGAN. Such advantages include:
A. accurate, realistic simulation of any air driven organ pipe tone or other instrument sound such as a piano, flute, horn, bell or string;
B. production of the same waveshape, and hence tonal quality, regardless of which note or octave is being played;
C. use of a single frequency standard which does not determine the waveshape of the produced note;
D. simplified implementation of both foundation and mutation stops;
E. controlled selection of the attack and decay characteristics of the produced musical notes;
F. implementation of multiple voices without requiring additional oscillators or frequency standards;
G. all electronic operation; and
H. ease of construction using batch fabricated, digital microelectronic techniques.
In the organ described in U.S. Pat. No. 3,515,792, musical notes are produced by storing a digital representation of a waveshape characteristic e.g. of an organ pipe tone, and repetitively reading out this stored waveshape at a selectable clock rate determining the fundamental frequency of the produced note. Stored in the waveshape memory are the actual amplitude values at a plurality of sample points, or the incremental difference in amplitude between successive sample points. A frequency synthesizer produces a clock signal at a rate determined by the note selected on the organ keyboard or pedals. The stored amplitudes or amplitude increments are read out of the memory repetitively at the selected clock rate (which differs for each note) to generate the selected musical tone. Attack and decay is provided by programmed division, or division and subtraction, of the read out amplitude or increment values.
An object of the present invention is to provide an electronic musical instrument wherein waveshape synthesis is accomplished in a manner totally different from that known in the prior art, yet exhibiting all of the above listed advantages of digital wave-shape generation.
SUMMARY OF THE INVENTION
The foregoing objective is achieved by providing an electronic musical instrument wherein the sample point amplitudes of a complex waveshape are computed at regular time intervals, and the amplitudes converted to musical notes as the computations are carried out. A discrete Fourier algorithm is implemented to calculate the individual harmonic components at each sample point, using a stored set of harmonic coefficients which characterize the resultant waveshape. The computations are carried out at a constant time rate regardless of the note fundamental frequency. Depression of a manual or pedal key causes selection of a frequency number R used in the Fourier computation to establish the period of the musical note. Preferably, the harmonic coefficients and the frequency numbers are stored in digital form, and the computations are carried out digitally.
In one embodiment, closure of an instrument keyboard switch causes the corresponding frequency number R to be added to the previous contents of a note interval adder to specify the sample point at which the amplitude is calculated. For each such sample point, the amplitudes of W harmonic components are calculated individually by multiplying the coefficient associated with each harmonic by a sin value related to the sample point. The harmonic component amplitudes are summed algebraically in an accumulator to obtain the net amplitude at the sample point. The sample point amplitudes are converted to an analog voltage, as by a digital-to-analog converter, for input to a sound system which reproduces the musical note. The resultant sound has a tonal quality determined by the stored harmonic coefficient values, yet is produced without actual storage of a digital representation of a waveshape. The calculations are performed at a rate independent of the period of the produced note.
In a polyphonic system the amplitudes associated with two or more selected notes are computed independently on a time shared basis, then combined for input to the digital-to-analog converter. Foundation and mutation stops may be implemented by appropriate selection of the stored harmonic coefficient values. Multiple voices can be produced by adding the harmonic coefficients associated with each selected stop. Attack, decay and other note transient effects are obtained by programmatically scaling the harmonic coefficients used in the amplitude computations.
BRIEF DESCRIPTION OF THE DRAWINGS
A detailed description of the invention will be made with reference to the accompanying drawings wherein like numerals designate like components in the several figures.
FIG. 1 is a block diagram of a monophonic computor organ in accordance with the present invention.
FIG. 2 is a program flow chart of the note generation algorithm employed in the present invention.
FIG. 3 shows typical musical waveshapes generated by the musical instrument of FIG. 1.
FIG. 3A illustrates the typical harmonic spectra of a tibia organ pipe tone.
FIG. 3B is a timing diagram illustrating computation of the wave-shape amplitude at a sample point.
FIG. 4 is a block diagram of a computor organ embodiment having multiple voices and provision for attach and decay control of each note.
FIG. 5 is a block diagram showing other means for obtaining programmed attack, decay or amplitude modulation of the produced musical notes.
FIG. 6 is a block diagram of a polyphonic electronic musical instrument in accordance with the present invention.
FIG. 7 is a timing diagram associated with the polyphonic system of FIG. 6.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
The following detailed description is of the best presently contemplated modes of carrying out the invention. This description is not to be taken in a limiting sense, but is made merely for the purpose of illustrating the general principles of the invention since the scope of the invention is best defined by the appended claims.
Structural and operational characteristics attributed to forms of the invention first described shall also be attributed to forms later described, unless such characteristics are obviously inapplicable or unless specific exception is made.
The computer organ 10 of FIG. 1 operates to produce via a sound system 11 a musical note selected by closing one of the keyboard switches 12. FIG. 3 illustrates typical musical waveshapes supplied to the sound system 11 via a line 13 when the keyboard switch associated with the musical note C7, D#6 or C6 respectively is selected. As described below, each waveshape is produced by computing the amplitude at successive sample points, and converting these amplitudes to tones as the computations are carried out.
The amplitude computations occur at regular time intervals tx, as plotted along the abscissa of FIG. 3. The period of the computed waveshape, and hence the fundamental frequency of the generated note, is established by a frequency number R selected by the keyboard switches 12. A set of such frequency numbers corresponding to the notes of the instrument is stored in a frequency number memory 14. The shape of the produced musical note is established by a set of harmonic coefficients Cn stored in a memory 15 and used in computing the amplitude at each sample point.
It is well known that a musical sound charcteristic of a particular instrument includes sinusoidal components at the fundamental and other generally harmonically related frequencies. The relative amplitudes of these components determine the tonal quality of the sound independent of the relative phase of the components. This is illustrated by the typical harmonic spectra of an eight foot tibia organ pipe shown in FIG. 3A. The characteristic tibia waveform includes a sinusoidal component at the fundamental frequency f and another sinusoidal component of lesser amplitude at the third harmonic frequency 3f.
A musical signal reproduced by a sound system 11 having an amplifier and speaker generally consists of an analog voltage having a waveshape (i.e. voltage as a function of time) which is a "super-position" or composite of the harmonic components of the corresponding sound. Such a complex waveshape may be described mathematically in terms of its harmonic components by the well known Fourier equations. Since the human ear is insensitive to phase, a musical waveshape is adequately represented by Fourier representations having only sin or only cos terms.
In the present invention, the waveshape amplitude Xo (qR) at each sample point is computed in accordance with the following discrete Fourier representation of a sampled periodic complex waveshape: ##SPC1##
where R is the frequency number mentioned above, and n =1,2,3...,W=N/2 designates the harmonic component being evaluated.
As illustrated by FIG. 3A, n = 1 corresponds to the fundamental, n = 2 to the second harmonic, n = 3 to the third harmonic, and so forth. The harmonic coefficient Cn specifies the relative amplitude of the respective nth harmonic component. For the tibia sound of FIG. 3A, the coefficient C3 will be slightly less than the coefficient C1, and all other coefficients will be 0. The number W = N/2 designates how many harmonics are included in the amplitude calculation. This number is a design choice, however the use of 16 harmonics (W = 16) is quite satisfactory for synthesizing pipe organ sounds.
The circuitry 10 of FIG. 1 implements equation 1 by computing the amplitude value Xo (qR) for each sample point during a time interval tx. The individual harmonic component amplitudes F(n) = Cn sin (π/W) nqR for each of the W harmonic components are calculated separately during successive time intervals tc = tx /W as illustrated by the timing diagram of FIG. 3B. At the first interval tc = 1 the amplitude F(1) of the first harmonic (n = 1) is calculated. This value F(1) is placed in an accumulator 16 (FIG. 1). At the interval tc = 2 the second harmonic amplitude F(2) is computed and added to the accumulator 16 contents. In the case of the 8 feet tibia F(2) = 0. At time tc = 3 the third harmonic amplitude F(3) is calculated and added to the accumulator 16. This routine is iterated until all W harmonic components have been calculated; the resultant algebraic sum then contained in the accumulator 16 will correspond to the amplitude Xo (qR) for the sample point designated by the value qR.
At the end of the computation interval tx = Wtc the waveshape amplitude Xo (qR) in the accumulator 16 is provided via a gate 17 to a digital-to-analog converter 18. This converter 18 outputs a voltage on the line 13 corresponding to the waveshape amplitude just evaluated. Computation of the amplitude at the next sample point immediately is initiated. The value q is incremented and the W harmonic component amplitudes F(n) are calculated for the sample point designated by the new value of qR. Eventually, the entire waveshape (FIG. 3) will be generated, the sound system 11 reproducing the musical note as the amplitude computations are carried out.
The computor organ 10 includes a clock 20 which provides timing signals tc on a line 21. A counter 22 provides an output for each N/2 pulses received from the clock 20; this output on the line 23 comprises a computation interval timing signal tx. The tx signal enables the gate 17 and clears the accumulator 16 in preparation for the next amplitude computation.
At the beginning of a computation cycle the frequency number R selected by a depressed keyboard switch 12 and supplied via a gate 24 is added to the previous contents of a note interval adder 25. Initially the adder 25 may be empty, so that during the first computation cycle the note interval adder 25 contents will be qR = 1R. At the beginning of the next computation cycle the value R will be added to the previous contents (1R), so that the adder 25 will contain 2R. In general, the note interval adder 25 will contain the value qR identifying the sample point at which the waveshape amplitude currently is being evaluated.
The note interval adder 25 preferably comprises a conventional adder circuit of modulo N. When the sum in the adder 25 exceeds the value N the adder "resets" and begins summing again. As will become apparent, such resetting of the note interval adder 25 occurs near the end of each period of the generated waveshape. The gate 24 is enabled by the interval signal tx, thus the same value qR is present on a line 26 from the adder 25 throughout the computation cycle. This value qR, supplied via a gate 27, is added to the contents of a harmonic interval adder 28 at each clock time tc. The harmonic interval adder 28 is cleared before each computation cycle, so that at time tc = 1 the contents of the harmonic interval adder 28 will be qR. For the second timing interval tc = 2 the adder 28 contents will be 2qR. Thus the harmonic interval adder 28 will contain the value nqR for the nth harmonic component currently being evaluated. Preferably the harmonic interval adder 28 also is of modulo N.
The value sin (π/W) nqR is obtained from a sinusoid table 29 under control of a memory address decoder 30. The sinusoid table 29 may comprise a read only memory storing values of sin (π/W) φ for 0≤φ≤2W at intervals of D, where D is called the resolution constant of the memory. The memory address decoder 30 accesses from the sinusoid table 29 the value sin (π/W) nqR corresponding to the argument nqR received from the harmonic interval adder 28.
The value sin (π/W) nqR, supplied via a line 32, is multiplied by the coefficient Cn for the corresponding nth harmonic by a multiplier 33. The multiplication product represents the amplitude F(n) of nth harmonic component and is supplied via a line 34 to the accumulator 16.
The appropriate coefficient Cn is accessed from the harmonic coefficient memory 15 by an address control unit 35 synchronized to the clock pulses tc. The memory 15 may comprise an end-around shift register containing the values Cn in consecutive order and shifted by the control unit 35 upon each occurrence of a clock pulse tc.
The equation 1 algorithm implemented by the computor organ 10 is depicted in program flow chart form in FIG. 2. Referring thereto, at the beginning of each computation cycle a check is made (block 41) to determine if a keyboard switch 12 is still selected. If so, the value n is reset to 0 (block 42) and the next computation cycle initiated at block 43. If a key is not still selected, a note decay operation described below in connection with FIG. 4 is initiated (block 44).
Block 43 -- Upon occurrence of the timing signal tx, the frequency number R is gated to the note interval adder 25 to establish therein a new value of qR.
Block 45 -- The timing signal tx also clears the harmonic interval adder 28 and the accumulator 16. The subroutine 46 is entered for the first time via the path 47 to calculate the amplitude F(1) of the first harmonic component.
Block 48 -- The timing pulse tc gates the contents of the note interval adder 25 to the harmonic interval adder 28 to obtain the new value of nqR.
Block 49 -- The memory address decoder 30 is used to look up the value sin (π/W) nqR in the sinusoid table 29.
Blocks 50 and 51 -- The clock pulse tc also increments the value of n in the counter 22 and causes the memory address control 35 to access from the memory 15 the coefficient Cn associated with the nth harmonic.
Blocks 52 and 53 -- The harmonic amplitude multiplier 33 is used to calculate the amplitude F(n) of the nth harmonic component, which is added to the previous contents of the accumulator 16.
Block 54 -- A determination is made as to whether all N/2 harmonic components have been calculated. If not, the exit path 55 is taken back to the block 48 and the subroutine 46 is iterated for the next harmonic component. When all components have been evaluated, the path 56 is taken to the block 57.
Block 57 -- The contents of the accumulator 16, representing the amplitude value Xo (qR), is gated to the digital-to-analog converter 18; the path 58 is followed back to the block 41. If the key is still depressed, the entire routine 40 is repeated to calculate the waveshape amplitude at next sample point identified by the incremented value of qR.
The frequency numbers R stored in the memory 14 are related to the fundamental frequencies of the musical notes produced by the computor organ 10, to the computation time interval tx, and to the number of amplitude sample points N for the note of highest fundamental frequency fH produced by the organ. For example, if the frequency number R for such note of highest frequency is selected as unity, then with a computation time interval tx given by tx = (1/NfH) exactly N sample point amplitudes will be computed for that note. The values R for notes of lower frequency readily can be ascertained, knowing that the frequency ratio of any two contiguous notes in an equally tempered musical scale is 2. In general, the frequency numbers R for notes other than that of highest frequency fH will be non-integers.
By way of example, the following Table 1 lists the frequency, frequency number R, and number of sample points per period for each note in octave six. The note C7 (the key of C in octave 7) is designated as the note of highest fundamental frequency produced by the computor organ 10, and hence is assigned the frequency number R of unity. In this example, N = 32 sample points are computed for the note C7, this value of N being satisfactory for accurate synthesis for an organ pipe or most other musical sounds.
Note Frequency R Number of Sample (Hz) - Points per Period C7 2093.00 1.0000 32.00 B6 1975.53 0.9443 33.90 A 6 1864.66 0.8913 35.92 A6 1760.00 0.8412 38.06 G 6 1661.22 0.7940 40.32 G6 1567.98 0.7494 42.72 F 6 1479.98 0.7073 45.26 F6 1396.91 0.6676 47.95 E6 1318.51 0.6301 50.80 D 6 1244.51 0.5947 53.82 D6 1174.66 0.5613 57.02 C 6 1108.73 0.5298 60.41 C6 1046.50 0.5000 64.00
using the illustrative values of Table I, the computation time interval tx is 14.9 microseconds, as evaluated using tx = 1/NfH. If W harmonic components are calculated for each sample point, then the frequency fc of the clock 20 is given by:
fc = 1/tc = W/tx = WNfH (2)
again using Table I, with W = N/2 = 16, the clock 20 will have a frequency of 1.072 MHz.
Since the frequency number R for most notes is a non-integer, the value nqR in general also will be a non-integer. The sinusoid table 29 contains a set of sin values separated by the resolution constant D mentioned above. It may happen that a value nqR present in the harmonic interval adder 28 does not correspond exactly to a stored sin value. In such instance, the memory address decoder 30 may round off the value nqR so as to access from the sinusoid table 29 the closest stored sin value. Alternatively, the decoder 30 may access the next lower stored sin value, or the next higher such value. Of course, the smaller the resolution constant D, and hence the greater the number of entries in the sinusoid table 29, the smaller will be the round off error in evaluating sin (π/W) nqR.
Recall that at the beginning of each computation cycle, the frequency number R is added to the contents of the note interval adder 25 to obtain a new value qR. The following table II lists these values qR for the notes A#6, G6 and C7 for several timing intervals between tx = 1 and tx = 45.
Computation qR Interval tx A 6 G6 C7 1 0.8913 0.7494 1.0000 2 1.7826 1.4988 2.0000 3 2.6739 2.2482 3 4 3.5652 2.9976 4 5 4.4565 3.7470 5 6 5.3478 4.4964 6 -- -- -- -- -- -- 31 27.6303 23.2314 31.0000 32 28.5216 23.9808 0.0000 33 29.4129 24.7302 1.0000 34 30.3042 25.4796 2 35 31.1955 26.2290 3 36 0.0868 26.9784 4 37 0.9781 27.7278 5 38 1.8694 28.4772 6 39 2.7607 29.2266 7 40 3.6520 29.9760 8 41 4.5433 30.7254 9 42 5.4346 31.4748 10 43 6.3259 0.2242 11 44 7.2172 0.9736 12 45 8.1085 1.7230 13.0000
for the fundamental or first harmonic (n = 1) the values of Table II also represent the argument nqR for which the sinusoid table 29 is accessed. Thus these values determine the period or fundamental frequency of the generated waveshape. Thus the period of the note C7 is computed in exactly 32 intervals tx, as illustrated in FIG. 3. For the note C7, the modulo N note interval adder 25 "resets" exactly to zero at the interval tx = 32.
For notes having non-integer frequency members R, the note interval adder 25 will not "reset" exactly to zero, but rather to a number which differs each period. From Table II it is apparent that for the first period of the note A#6 the note interval adder 25 (if initially empty) will contain 0.8913, but at the beginning of the second period will reset to 0.0868. Thus consecutive periods of the same note will have sample point amplitudes slightly different from those of the preceeding period. This is illustrated in FIG. 3 for the note D#6. The amplitude 59 at the first sample point (tx = 54) of the second period differs from the amplitude computed at the first sample point of both the preceeding period and the succeeding period. This effect is beneficial since it provides "decoupling" when two different notes are played simultaneously.
FIG. 4 shows implementation of multiple voicing in the computor organ 10. Several harmonic coefficient memories 15a, 15b. . . 15d are provided, each containing a different set of coefficients Cn. Appropriate stop tabs determine which coefficients are used in the waveshape amplitude computation, and hence establish the voice or tonal quality of the generated musical sound.
As an example, the harmonic coefficient memory 15a may contain coefficient values for generation of an 8' tibia tone, while the memory 15b may have coefficients producing an 8' diapason sound. To select the diapason, the stop tab switch STb is closed, so that coefficients from the memory 15b are supplied to the multiplier 33 via adders 61, 62 and a scaler 63 when accessed by the memory address control 35. If both the tibia stop tab STa and the diapason stop tab STb are selected, the coefficients from the memories 15a and 15b are algebraically summed by an adder 61 and supplied to the multiplier 33. The resultant waveshape will be characteristic of the combined tibia and diapason tones.
As an alternative, a separate memory may store coefficients producing a composite tone. Thus the memory 15c (FIG. 4) may store coefficients for a flute voice, the memory 15d contain values for a bourdon pipe, and the memory 15c' contain coefficients (equal to the sum of the values contained in the memories 15c and 15d) producing a combined flute and bourdon sound. When the flute stop tab STc is selected but the bourdon stop tab STd is not selected, a gate 64 is enabled to supply the values Cn from the memory 15c to the multiplier 33. A flute sound results. When only the bourdon stop tab STd is selected, coefficients from the memory 15d are supplied via a gate 65 to the multiplier 33. When both the flute and bourdon stop tabs are selected, the gates 64 and 65 are disabled, and the coefficients defining the combined waveshape are supplied from the memory 15c' via a gate 66 to the multiplier 33. Use of an adder 62 permits combination of one or both stops STa, STb with one or both stops STc, STd.
To simulate the inherent mechanical lag in initiating and ending the sound produced by an air driven organ pipe, it is necessary to shape appropriately the rise (attack) and fall (decay) of each note. Circuitry 67 for achieving such amplitude control in the computor organ 10 also is shown in FIG. 4. The circuitry 67 functions to scale the harmonic coefficients Cn supplied to the multiplier 33 in programmed relationship to the number of periods of the generated note. In a pipe organ, the attack and decay duration each is approximately seven periods of the fundamental frequency of that note.
To initiate attack, a detection circuit 68 senses the closure of any keyboard switch 12 at the beginning of a note and provides an "attack" mode signal on a line 69. Scale factors of progressively increasing value are accessed from a memory 70 by a transient memory address control circuit 71 cooperating with an attack/decay cycle counter 72. Occurrence of the "attack" mode signal on the line 69 resets the cycle counter 72 to zero. A signal supplied on a line 73 when the note interval adder 25 "resets" advances the cycle counter 72 at the end of each waveshape period. The counter 72 and control 71 cause a different scale factor to be supplied from the attack memory 70 to the coefficient scaler during each successive period of the generated note. The scaler 63 multiplies each harmonic coefficient Cn by the currently supplied factor. As a result, the overall amplitude of the generated waveshape increases progressively from zero to maximum value during the attack period.
After seven note periods have been generated, the attack/decay cycle counter 72 will stop incrementing and the attack memory 70 will supply to the scaler 63 the value of unity. As a result, during the sustain portion of the note being played, the coefficient scaler 63 will pass on to the multiplier 33 the unaltered values Cn supplied from the selected harmonic coefficient memory 15. When the keyboard switch 12 is released at the end of a note, the switch close-open detect circuit 68 will supply a "decay" mode signal on the line 69. As a result, a decay hold control 74 will cause the frequency number memory 14 to continue to output the value R selected by the keyboard switch just released. Generation of the note will continue for a preselected number of periods established by the attack/decay cycle counter 72. During this decay duration, a memory 75 will supply decay scale factors to the coefficient scaler 63 under direction of the transient memory address control 71.
The memory 75 may supply scale factors progressively decreasing in value for each of seven periods of the generated waveform. At the end of these seven periods, the attack/decay cycle counter 72 and the decay hold control 74 will stop output of the frequency number R from the memory 14. This will terminate note generation at the end of the decay duration.
The attack and decay scale factors may be selected to provide unusual note amplitude effects. Moreover, the attack and decay durations need not be exactly seven period of the produced note, but may be of longer or shorter. The attack/decay cycle counter might be replaced by other timing circuitry. Similar scale factor coefficient modification might be utilized during the sustain portion of a note. The accessed scale factors may be constant during computation of all sample point amplitudes for a given waveform period, or may be of different value for successive sample point amplitude computations. The scale factors even may differ for calculation of different harmonic components at the same sample point. It may be desirable only to scale the harmonic coefficients associated with a particular voice. To accomplish this, output of the adder 62 (FIG. 4) may feed directly to the harmonic amplitude multiplier 33. The scale factors then may be utilized by a coefficient scaler 63a in circuit with the output of the particular harmonic coefficient memory 15a.
An alternative programmed amplitude control circuit is shown in FIG. 5. Referring thereto, the scale factor memories 70', 75' are accessed by a transient memory address control 71' receiving input from an attack/decay program control 76. the program control 76 establishes which attack or decay scale factor is supplied to a coefficient scaler 63b during any amplitude or harmonic component calculation. Scale factor selection may be a function of time, as established by a clock signal supplied on a line 77, may depend on how many note periods have been generated, as indicated by the line 73 period signal, or may be determined manually via an input 78. The control 76 might include a read only or random access memory containing a program directing generation of unusual amplitude effects.
In the embodiment of FIG. 5 the scaler 63b only modifies coefficients from a memory 15e selected by a stop tab STe. The output of the scaler 63b may be combined in an adder 79 with the scaler 63 output (FIG. 4) for input to the harmonic amplitude multiplier 33. Alternatively, the scale factor memories 70', 75' may be connected directly to the coefficient scaler 63 of FIG. 4.
The computer organ 10 of FIG. 1 is a monophonic instrument which can produce only one musical note at a time. A polyphonic computer organ 80 capable of playing two notes at a time is shown in FIG. 6. The system readily can be expanded to generate several (M) notes at once.
In the computor organ 80, certain of the amplitude computation circuitry is duplicated in the respective channels A and B. When two keyboard instrument switches 12 are depressed at the same time, a channel assigner 81 allocates the channel A equipment to computation of one selected note, and assigns the channel B equipment to the other selected note. Waveform amplitude computations for each sample point are carried out on a time shared basis, as indicated by the timing diagram of FIG. 7. During the first half of each computation interval tx the channel A note amplitude is computed and added to the accumulator 16'. The amplitude of the channel B note is computed during the second half of the interval tx and also added to the accumulator 16'. Thus at the end of each computation cycle, the accumulator 16' contains an amplitude value equal to the sum of the amplitudes of each selected note at the same sample point. Upon occurrence of the tx timing pulse, this total amplitude is supplied via a gate 17' to a digital-to-analog converter 18' and sound system 11' corresponding to the like numbered units of the computer organ (FIG. 1).
Since there are many keyboard switches 12 and only two (in general, M) channels available for note computation, time division multiplexing is employed. A multiplexer 82 periodically scans all of the switches 12, a complete scan occurring in less time than the computation interval tx, and provides to the channel assigner 81 signals indicating which keys are selected. In turn, the channel assigner 81 directs the frequency number memory 14' to supply to channel A (during the first half of the computation cycle) the frequency number R for one selected note, and to supply the frequency number R for the other selected note to the channel B during the second half of the computation interval tx.
Channel A incorporates a gate 24A, a note interval adder 25A, a gate 27A and a harmonic interval adder 28A all corresponding to the like numbered but unlettered components of the computer organ 10. These units cooperate to provide on a line 32A the appropriate value nqR for each harmonic component of the channel A note, such values occurring at the computation clock times tc (A) shown in FIG. 7.
A channel gate 83 operated by the assigner 81 directs these values nqR to a memory address decoder 30' which accesses the corresponding value sin (π/W) nqR from a sinusoid table 29' for input to a harmonic amplitude multiplier 33'. Simultaneously, the appropriate coefficients Cn are supplied to the multiplier 33' from a channel A harmonic coefficient memory 15A' enabled by a memory assigner 84 operated by the channel assigner 81. The multiplier 33' computes the harmonic component amplitudes F(n) for the channel A note and supplies these to the accumulator 16'.
Similarly, during the second half of each computation cycle, the values nqR for the channel B note are produced by the frequency number memory 14' and the units 24B, 25B, 27B and 28B. These nqR values are supplied via a line 32B and the channel gate 83 to the memory address decoder 30'. The corresponding values sin (π/W) nqR are provided to the multiplier 33', which simultaneously receives harmonic coefficients Cn from a channel B harmonic coefficient memory 15B'. The computed harmonic component amplitudes F(n) for the channel B note are supplied by the multiplier 33' to the accumulator 16' in unison with the clock pulses tC (B) shown in FIG. 7.
The pulse tx (FIG. 7) enables the gate 17' to pass the composite waveshape amplitude from the accumulator 16' to the digital-to-analog converter 18'. The resultant musical sound reproduced by the sound system 11' is a composite of the two (generally, N) simultaneously selected notes.
Timing pulses for the computer organ 80 are supplied by a clock 20' and a counter 22' (FIG. 6). The computation interval tx may be the same as in the embodiment of FIG. 1. If the amplitudes for M notes are computed during each interval tx, the basic clock interval for the computor organ 80 is tc ' = tc /M where tc is as specificed for the computor organ 10. The clock 20' provides such pulses tc ' to the counter 22' which is of modulo (N/2 × M).
Appropriate outputs from the counter 22' provide the signals tc (A) and tc (B) used to time harmonic component calculations in the respective A and B channels. The counter 22' also provides outputs tx (A) and tx (B) (see FIG. 7) used to clear the harmonic interval adders 28A, 28B and to enable the gates 24A, 24B. The counter 22' "resets" at the end of each (N/2 × M) clock times tc ', and provides a computation interval pulse tx upon such resetting.
Harmonic and mutation stops are easily mechanized in the inventive computor organ. A harmonics stop e.g., a 4', 2' or 1' tibia or diapason is characterized in that the note which must be sounded is an even harmonic of the depressed key. Thus, if the key B2 is selected with a 4' stop, the note which actually must be produced is (2 × B2) = B3. When a mutation stop (e.g. 2 2/3 foot flute or 1 3/5 foot diapason) is selected, the note sounded is not an even harmonic of the key which is depressed.
In the present invention, harmonic and mutation stops can be implemented by the use of appropriate harmonic coefficient values. Such a voice generation scheme is illustrated in Table III for a tibia tone. ##SPC2##
As indicated in FIG. 3A, the eight foot tibia voice consists of a fundamental and a third harmonic; only the coefficients C1 and C3 are non-zero. The 4 foot tibia voice has components at twice the freuqency of the 8 foot tibia and can be implemented by a set of coefficients wherein only C2 and C6 are non-zero (see Table III). When this set is selected, depression of the B2 key will produce a B3 sound having tibia tonal quality, exactly as required. Similarly, a 2 foot tibia sound results from use of non-zero coefficients C4 and C12 with all other values of Cn equal to zero.
A one foot tibia tone is achieved using a single non-zero coefficient C8. The third harmonic coefficient for the 1 foot tibia would be the value C24, which is not present in a sixteen harmonic (W=16) system.
Table III also indicates that the 2 2/3 foot tibia and 1 3/5 foot tibia mutation stops can be implemented using coefficient sets respectively in which the values C3 and C9 are non-zero and in which the coefficients C5 and C15 are non-zero.
Various modifications of the computer organ disclosed herein should be apparent to those skilled in the art. For example, a Fourier algorithm utilizing only cosine components, or sin and cos components, might be employed. The table 29 then would contain cos, or sin and cos, values, rather than only sin values. While a digital mechanization has been disclosed, this is not necessary; the waveshape computations could be carried out in analog form.
The various components of the computer organ disclosed herein are conventional circuits well known in the digital computer art. As indicated by the following Tables A and B, many of these items are available commercially as integrated circuit components. ##SPC3##