Computor Organ Using Parallel Processing

Deutsch May 7, 1

Patent Grant 3809788

U.S. patent number 3,809,788 [Application Number 05/298,365] was granted by the patent office on 1974-05-07 for computor organ using parallel processing. This patent grant is currently assigned to Nippon Gakki Seizo Kabushiki Kaisha. Invention is credited to Ralph Deutsch.


United States Patent 3,809,788
Deutsch May 7, 1974

COMPUTOR ORGAN USING PARALLEL PROCESSING

Abstract

Parallel processing is used in a computor organ of the type wherein musical notes are produced by computing at regular time intervals the amplitudes at successive points of a musical waveshape, and converting the amplitudes to tones as the computations are carried out. Each amplitude is evaluated by concurrently calculating in parallel channels different subsets of the Fourier components for the same point, then combining the components to obtain the waveshape amplitude. In a typical embodiment, low order harmonic components are calculated in one channel and high order harmonics in another channel; in another embodiment, odd and even harmonics are calculated in separate, parallel channels. A recirculating shift register, shifted in unison with successive component calculations, advantageously stores the harmonic coefficients used in the amplitude calculations.


Inventors: Deutsch; Ralph (Sherman Oaks, CA)
Assignee: Nippon Gakki Seizo Kabushiki Kaisha (Hamamatsu, JA)
Family ID: 23150188
Appl. No.: 05/298,365
Filed: October 17, 1972

Current U.S. Class: 84/608; 84/623
Current CPC Class: G10H 7/105 (20130101)
Current International Class: G10H 7/10 (20060101); G10H 7/08 (20060101); G10h 001/06 (); G10h 005/02 ()
Field of Search: ;84/1.01,1.03,1.11,1.12,1.19-1.24

References Cited [Referenced By]

U.S. Patent Documents
3515792 June 1970 Deutsch
3610799 October 1971 Watson
3610801 October 1971 Fredkin et al.
3696201 October 1972 Arsem et al.
3697661 October 1972 Deutsch
3639913 February 1972 Watson
3740450 June 1973 Deutsch
3743755 July 1973 Watson
3755608 August 1973 Deutsch
3763364 October 1973 Deutsch et al.
Primary Examiner: Wilkinson; Richard B.
Assistant Examiner: Witkowski; Stanley J.
Attorney, Agent or Firm: Flam & Flam

Claims



Intending to claim all novel, useful and unobvious features shown or

1. In a muscial instrument of the type wherein the amplitudes of a waveshape are computed for successive waveshape sample points at certain regular time intervals from stored harmonic coefficient values, each amplitude being computed by individually calculating the constituent Fourier components of said waveshape, each Fourier component being calculated by multiplying a trigonometric function of the waveshape sample point by a harmonic coefficient value which establishes the relative amplitude of that Fourier component, at least some of said components being calculated sequentially, said calculated components being combined to obtain the waveshape amplitude at each sample point, musical notes being produced by converting said computed waveshape amplitudes for successive sample points to musical sounds as said computations are carried out, the improvement wherein said instrument comprises:

a recirculating shift register for storing said harmonic coefficient values,

means for shifting said register in unison with said sequential calculations,

means for accessing from said register the harmonic coefficient associated with the Fourier component currently being calculated, and,

a multiplier for multiplying said trigonometric function by said accessed

2. A musical instrument according to claim 1 further comprising;

one or more storage devices each containing a set of harmonic coefficients associated with a particular instrument voice, and

means for transferring a selected set of said coefficients from one of said

3. A musical instrument according to claim 2 wherein said means for transferring transfers individual coefficients into said register during

4. A musical instrument according to claim 2 wherein said means for transferring includes load circuitry which transfers individual coefficients into said register during successive ones of said certain

5. A musical instrument according to claim 2 wherein said means for transferring includes an adder circuit which combines the coefficients of two or more sets, the combined coefficients being transferred into said

6. A musical instrument comprising:

two or more parallel processing channels for calculating within a regular time interval t.sub.x respective different subsets of Fourier components F.sup.(n) associated with the amplitude X.sub.o (qR) of a musical waveshape at a certain sample point, each component F.sup.(n) being calculated according to the equation

F.sup.(n) =C.sub.n sin (.pi./W) nqR

wherein C.sub.n is a coefficient associated with the n.sup.th harmonic, wherein qR designates said certain sample point and wherein W is the number of components calculated to obtain each amplitude,

means for providing to each of said parallel processing channels signals representing the values nqR for the subset of Fourier components calculated in that processing channel,

each processing channel including:

a memory storing the harmonic coefficients C.sub.n for the subset of components evaluated in that channel,

a sinusoid table comprising a memory storing the values of sin (.pi./W) .phi. for 0.ltoreq..phi..ltoreq.2W at intervals of D where D is a resolution constant,

harmonic components evaluation circuitry, responsive to the values nqR provided to that processing channel, and utilizing said memory and said sinusoid table to calculate F.sup.(n) =C.sub.n sin (.pi./W) nqR for each of the Fourier components calculated in that processing channel,

an accumulator for combining said calculated Fourier components to obtain the waveshape amplitude X.sub.o (qR) at said certain sample point according to the relationship ##SPC4##

where N is the total number of components evaluated for each sample point,

control means for causing said processing channels and said accumulator to perform said calculating and combining operations repetitively for successive sample points during successive regular time intervals t.sub.x, and

converter means for producing musical sounds from said obtained amplitudes

7. An instrument according to claim 6 wherein low order harmonic components having the values n = 1,2,3,... W/2 are calculated in one channel and high order harmonic components having the values n = (W/2 + 1), (W/2 + 2) ,..., W are calculated in another, parallel channel, and wherein said means for providing comprises:

a keyboard,

a frequency number memory storing values of R for selectable notes, a certain value R being accessed from said memory upon actuation of a corresponding key on said keyboard,

a note interval adder incremented by the selected value R at the beginning of each interval t.sub.x, the content of said note interval adder representing the value qR,

a harmonic interval adder cleared before each interval t.sub.x and incremented by the value qR during successive calculation subintervals within each interval t.sub.x, the contents of said harmonic interval adder representing the values nqR for n = 1,2,3,... W/2, signals representing said values being provided to said one channel,

a multiplier for multiplying the value qR from said note interval adder by (W/2) to obtain the value (W/2) qR throughout said interval t.sub.x, and

an adder for adding the value (W/2) qR from said multiplier to the currently available value nqR for n = 1,2,...,W from said harmonic

8. An instrument according to claim 6 wherein odd harmonic components are calculated in one channel and even harmonic components are calculated in another, parallel channel, and wherein said means for providing comprises:

a keyboard,

a frequency number memory storing values of R for selectable notes, a certain value R being accessed from said memory upon actuation of a corresponding key on said keyboard,

a note interval adder incremented by the value R at the beginning of each interval t.sub.x, the content of said note interval adder representing the value qR,

first and second harmonic interval adders each cleared before each interval t.sub.x,

means for loading the value qR from said note interval adder into the first harmonic interval adder and the value 2qR into the second harmonic interval adder during the first calculation subinterval within said interval t.sub.x, and

means for adding the value 2qR to the contents of each harmonic interval adder at each subsequent calculation subinterval within said interval t.sub.x, signals representing the contents of said harmonic interval adders being provided respectively to said parallel processing channels.

9. An instrument according to claim 6 wherein each harmonic coefficient memory comprises a recirculating shift register shifted in unison with

10. An instrument according to claim 6 wherein said control means comprises:

a clock providing timing pulses at harmonic component calculation subintervals t.sub.cp, and

a counter receiving said clock timing pulses and providing one computation interval pulse t.sub.x for each W/P subinterval pulses t.sub.cp received thereby, wherein W is the total number of Fourier components calculated to obtain said amplitude, and P is the number of parallel channels.
Description



BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates to an electronic musical instrument wherein parallel processing is used to reduce the computational rate requirements of the system. Tones are produced by computing the amplitudes at successive sample points of a complex waveshape using parallel channels to calculate subsets of the Fourier components, and converting these amplitudes to musical sounds as the computations are performed in real time.

Related Applications

The present invention is related to the COMPUTOR ORGAN described in the inventor's copending U.S. Patent application Ser. No. 225,883 filed on Feb. 14, 1972.

Description of the Prior Art

A unique method of digital waveshape generation in an electronic musical instrument is disclosed in the above mentioned U.S. patent application entitled COMPUTOR ORGAN. Therein, waveshape synthesis is accomplished by computing the sample point amplitudes of a complex waveshape at regular time intervals, and converting these amplitudes 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.

An objective of using parallel processing in a computor organ of this type is to reduce the computational rate requirements of the system. The waveshape is synthesized in real time. Thus each amplitude calculation must be completed within a fixed time interval t.sub.x established by the pitch or frequency f.sub.H of the highest note on the organ keyboard and the number N of amplitude sample points for the highest frequency note. If exactly N sample point amplitudes are computed for that note, the computational time interval t.sub.x is given by:

t.sub.x = 1/Nf.sub.H ( 1)

all of the Fourier components associated with each amplitude computation must be calculated within the time interval t.sub.x. Thus if W harmonic components are individually, sequentially evaluated for each sample point, each component must be calculated with a time interval t.sub.c given by:

t.sub.c = t.sub.x /W (2)

for a monophonic instrument, this requires a system computational clock rate f.sub.c of:

f.sub.c = 1/t.sub.c = W/t.sub.x = WNf.sub.H ( 3)

by way of example, the highest eight-foot pitch on a standard organ keyboard is C.sub.7 which has a fundamental frequency f.sub.H = 2.093 kHz. Although a design choice, the use of 16 harmonics (W = 16) is quite satisfactory for producing realistic organ pipe sounds. To accomplish accurate sampled amplitude synthesis of a note containing 16 harmonics, the waveshape should be evaluated at at least 32 sample points per cycle. This criteria will avoid the phenomenon of "frequency aliasing" which might occur if the system sample rate is less than the Nyquist frequency f.sub.N which is twice the frequency of the highest harmonic component. If the note C.sub.7 is evaluated at exactly N = 32 sample points, the computational time inverval is:

t.sub.x = 1/(32) (2.093 kHz) = 1.49 msec

Accordingly, for a monophonic instrument having a single processing channel, the system computational clock rate is:

f.sub.c = (16) (32) (2.093kHz) = 1.07 MHz

For a polyphonic organ in which K notes may be played at once, the harmonic components of all notes must be evaluated at each sample point, within the time interval t.sub.x. Thus for a polyphonic, single channel instrument, the system computational clock rate f.sub.c ' is given by:

f.sub.c ' = Kf.sub.c ( 4)

For the example above, in a system wherein K = 12, permitting ten keys and two pedal notes to be played simultaneously, the computational clock rate f.sub.c ' is:

f.sub.c ' = (12) (1.07 MHz) = 12.8 MHz

This relatively high computational clock rate may be reduced significantly using parallel processing, and it is the principal objective of the present invention to provide computor organs employing such parallel processing. The reduction in clock rate afforded by such instruments is readily visualized. If half of the harmonic components (i.e., W/2 components) are evaluated in a first processing channel and the other W/2 components are calculated in a second, parallel processing channel, then the computational clock rate is cut in half. In general, if P = the number of parallel processing channels employed, then for a monophonic organ the computational clock rate f.sub.cp is given by:

f.sub.cp = f.sub.c /P (5)

for a polyphonic, parallel processing system the computational clock rate f.sub.cp ' is:

f.sub.cp ' = (Kf.sub.c /P) = Kf.sub.cp ( 6)

Accordingly, for the above example, if two parallel processing channels are used (P = 2), the monophonic and polyphonic (K = 12) system computational clock rates f.sub.cp and f.sub.cp ' respectively are:

f.sub.cp = 0.53 MHz

f.sub.cp ' 6.4 MHz

Use of such parallel processing, with the concomitant reduction in computational rate, permits the computor organ more readily to be implimented using presently available microelectronic integrated circuits.

SUMMARY OF THE INVENTION

The foregoing and other objectives are achieved by providing a computor organ employing parallel processing. The instrument includes two or more computation channels which concurrently evaluate different subsets of Fourier components. These components are combined to obtain the amplitude values at successive sample points of a musical waveshape. The amplitudes are converted to musical tones as the computations are carried out in real time.

By employing parallel processing, the system computation clock rate is reduced, even though all Fourier components for each amplitude sample point are computed within a constant time interval. In illustrative two channel embodiments, low and high order harmonic components, or odd and even harmonics, are calculated concurrently in separate channels. The tonal quality of the synthesized musical sounds is established by a set of harmonic coefficients used in the amplitude calculations. Advantageously, these coefficients are contained in a recirculating shift register which is shifted in unison with the individual Fourier component calculations. Such a recirculating shift register harmonic coefficient memory, useful in a parallel processing computor organ, also is disclosed.

BRIEF DESCRIPTION OF THE DRAWINGS

A detailed description of the invention will be made with reference to the accompanying drawings, wherein like numerals designate corresponding parts in the several figures.

FIG. 1 is an electrical block diagram of a computor organ employing parallel processing, wherein low order harmonic components are calculated in one channel and high order harmonics are evaluated in another channel.

FIG. 2 is an electrical block diagram of a computor organ employing parallel processing wherein odd and even harmonic components are calculated respectively in separate parallel channels.

FIG. 3 is an electrical block diagram showing the use of recirculating shift registers to supply harmonic coefficient values to the parallel computation channels of a computor organ like that of FIG. 1 or 2.

FIG. 4 is a simplified electrical logic diagram showing load circuitry useful with the recirculating shift registers of FIG. 3.

FIG. 5 is a timing diagram illustrating one mode of operation of the system of FIG. 3.

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 best is 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 computor organ 10 of FIG. 1 utilizes parallel processing to produce via a sound system 11 a musical note selected by the keyboard switches 12. This is accomplished by calculating in parallel computation channels 13a, 13b the discrete Fourier components associated with amplitudes at successive sample points of a waveshape characterizing the selected note. The components are algebraically summed in an accumulator 14 which, at the end of each computation time interval t.sub.x contains the amplitude at the current sample point. This amplitude is provided via a gate 15, enabled by the t.sub.x signal on a line 16, to a digital-to-analog converter 17 which supplies to the sound system 11 a voltage corresponding to the waveshape amplitude just computed. Computation of the amplitude at the next sample point immediately is initiated, so that the analog voltage supplied from the converter 17 comprises a musical waveshape generated in real time.

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 19. The waveshape itself, and hence the tonal quality of the produced musical note, is established by a set of harmonic coefficients C.sub.n stored in a pair of memories 20a, 20b and used in computing the Fourier components at each sample point.

In the present invention, the waveshape amplitude X.sub.o (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.

The value n = 1 corresponds to the fundamental, n = 2 to the second harmonic, n = 3 to the third harmonic, and so forth. The harmonic coefficient C.sub.n specifies the relative amplitude of the respective n.sup.th harmonic component. The number W = N/2 designates how many harmonics are included in the amplitude computation. This number is a design choice, however, the use of 16 harmonics (W = 16) is quite satisfactory for synthesizing pipe organ sounds.

In the parallel processing computor organ 10 of FIG. 1, equation 7 is implemented by computing the amplitude value x.sub.o (qR) for each sample point during a time interval t.sub.x. The individual harmonic component amplitudes F.sup.(n) = C.sub.n sin (.pi./W) nqR for each of the W harmonic components are calculated separately. In the embodiment of FIG. 1, the low order harmonic components, for values n = 1,2, ..., W/2 are calculated in the channel 13a and the high order components, for the values n = (W/2 + 1), (W/2 + 2),...,W are evaluated in the parallel channel 13b.

The harmonic calculations are carried on concurrently. For example, while the amplitude of the fundamental (n = 1) is being calculated in the first channel 13a, the component amplitude of the 9th harmonic (n = 9) is computed in the other channel 13b. The two values F.sup.(1) and F.sup.(9) thus produced on the respective lines 21a, 21b are summed algebraically in an adder 22. The sum is supplied via a line 23 to the accumulator 14. The next harmonic components F.sup.(2) and F.sup.(10) then are calculated concurrently in the channels 13a and 13b, summed by the adder 22 and added to the contents of the accumulator 14. This routine is iterated until all W harmonic components have been calculated. The resultant algebraic sum then contained in the accumulator 14 will correspond to the amplitude ##SPC2##

for the sample point designated by the value qR.

As noted earlier, the waveshape amplitude x.sub.o (qR) in the accumulator 14 is gated to the digital-to-analog converter 17 at the end of the computation interval t.sub.x. The accumulator 14 then is cleared by the signal on the line 16, and computation of the amplitude at the next sample point immediately is initiated. The value qR is incremented and the W harmonic component amplitudes F.sup.(n) are calculated for the sample point designated by the new value of qR. Eventually the entire waveshape will be generated, the sound system 11 reproducing the musical note as the amplitude computations are carried out.

In the system of FIG. 1, a note interval adder 25 contains the value qR identifying the sample point at which the waveshape amplitude currently is being evaluated. This value qR is incremented at the beginning of each computation interval t.sub.x by adding the selected frequency number R to the previous contents of the adder 25. The selected value R is supplied to the adder 25 via a gate 26 enabled by the t.sub.x signal on the line 16. Preferably the adder 25 is of modulo N.

To calculate the low order harmonic components, the values nqR (for n = 1,2,...,W/2) are obtained in a harmonic interval adder 27 which is cleared before each amplitude computation cycle. Upon occurrence of the first clock pulse t.sub.cp of a new cycle, the current value qR contained in the mode interval adder 25 is entered into the harmonic interval adder 27 via a line 28 and a gate 29. At each subsequent clock pulse t.sub.cp, the value qR is added to the previous contents of the adder 27. As a result, the harmonic interval adder 27 will contain the value nqR, where n = 1,2,...,W/2 for the n.sup.th low order harmonic component currently being evaluated in the channel 13a. Preferably the harmonic interval adder 34 also is of modulo N.

An address decoder 31a accesses from a sinusoid table 32a the value sin (.pi./W) nqR corresponding to the argument nqR received via a line 33 from the harmonic interval adder 27. The sinusoid table 32a may comprise a read only memory storing values of sin (.pi./W) .phi. for 0 .ltoreq. .phi. .ltoreq. 2W at intervals of D, where D is called the resolution constant of the memory.

The value sin (.pi./W) nqR, supplied via a line 34a, is multiplied by the coefficient C.sub.n for the corresponding n.sup.th harmonic by a multiplier 35a. The multiplication product represents the amplitude F.sup.(n) of the n.sup.th harmonic component and is supplied via the line 21a to the adder 22. The appropriate coefficient C.sub.n is accessed from the low order harmonic coefficient memory 20a by an address control unit 36 advanced by the clock pulses t.sub.cp.

To evaluate the high order harmonic components, the values (W/2 +n) qR for n = 1,2,...W/2 are obtained at successive clock times t.sub.cp. Thus the value qR contained in the note interval adder 25 is multiplied by the value W/2 in a multiplier 37. The quotient (W/2) qR is added to the value nqR present on the line 33 by an adder 38. The sum, present on a line 39, is the value (W/2 + n) qR.

A memory address decoder 31b accesses from a sinusoid table 32b the value sin (.pi./W) (W/2 + n) qR. That sin value, supplied via a line 34b, is multiplied by the corresponding high order harmonic coefficient C.sub.n, supplied from a memory 20b, in a multiplier 35b. The multiplication product, supplied via the line 21b to the adder 22, represents the amplitude F.sup.(n) of the currently evaluated, high order harmonic component.

Thus during each amplitude computation cycle t.sub.x, the values F.sup.(n) = C.sub.n sin (.pi./W) nqR for n = 1,2,3,...,W/2 are calculated successively in the channel 13a upon occurrence of successive clock pulses t.sub.cp. Concurrently, the high order harmonic components F.sup.(n) for values n = (W/2 + 1), (W/2 + 2) ,..., W are calculated in the channel 13b.

Thus all W Fourier components are calculated in exactly W/P = W/2 clock cycles t.sub.cp, corresponding to the computation time interval t.sub.x. In the embodiment of FIG. 1, a clock 41 produces the pulses t.sub.cp on a line 42. A counter 43 of modulo W/2 provides one pulse t.sub.x on the line 16 for each W/2 pulses t.sub.cp received on the line 42. Using the parallel processing system of FIG. 1, the rate f.sub.cp of the clock 41 is equal to W/2t.sub.x or exactly one-half of the clock rate which would be required if all W harmonic components were calculated serially in the computation interval t.sub.x.

In the parallel processing computer organ 50 of FIG. 2, the odd harmonic components (n = 1,3,5,...) are calculated in a first channel 51a, while the even harmonic components (n = 2,4,6,...) are evaluated concurrently in a second channel 50b. The keyboard switches 12', the frequency number 19', the gate 26' and the note interval adder 25' correspond in operation to the like numbered, but unprimed, components shown in FIG. 1. These components provide on a line 28' a signal representing the value qR identifying the sample point at which the waveshape amplitude currently is being evaluated. Separate harmonic interval adders 52a, 52b are associated with the respective channels 50a, 50b. At successive calculation intervals t.sub.cp, the harmonic interval adder 52a is used to accumulate nqR for odd values of n, while the values nqR for even values of n are obtained in the adder 52b. For this purpose, a "times two" multiplier 53 provides on a line 54 a signal representing the value 2qR throughout each computation interval t.sub.x.

A clock 41' of frequency f.sub.cp provides calculation clock pulses t.sub.cp on a line 42'. A counter 55 of modulo W/2 provides one computation time interval pulse t.sub.x on a line 16' for each W/2 pulses t.sub.cp received from the clock 41'. In addition, the counter 52 provides pulses at the calculation clock time t.sub.cp1 on a line 56a, and at the times t.sub.cp2 through t.sub.cp(W/2) on the respective lines 56b - 56h. The timing pulses t.sub.cp2 - t.sub.cp(W/2) all are provided via an OR gate 57 to a line 58.

Upon occurrence of the first calculation clock pulse t.sub.cp1, the value qR is supplied via a gate 60 to the harmonic interval adder 52a. At successive clock times t.sub.cp2 through t.sub.cp(W/2) the value 2qR, supplied from the line 54 via a gate 61, is added to the contents of the harmonic interval adder 52a. Thus at successive clock times t.sub.cp the contents of the adder 52a will contain nqR for odd values of n. A memory address decoder 31a' accesses from a sinusoid table 32a' the value sin (.pi./W) nqR corresponding to the argument nqR received from the adder 52a. This sin value is multiplied by the appropriate odd harmonic coefficient C.sub.n supplied from a memory 20a' utilizing a multiplier 35a'. The quotient, representing the value F.sup.(n) for the corresponding odd value of n, is provided via a line 21a' to an adder 22'. Accessing of the memory 20a' is under control of a memory address control unit 36' advanced by the clock pulses t.sub.cp.

A similar operation occurs in the channel 51b, except that the harmonic interval adder 52b accumulates nqR even values of n. To this end, at each calculation interval t.sub.cp the value 2qR, supplied from the line 54 via a gate 62, is added to the contents of the harmonic interval adder 52b. A memory address decoder 31b' accesses from a sinusoid table 32b' the value sin (.pi./W) nqR corresponding to the argument nqR received from the adder 52b. This sin value is multiplied by the appropriate even harmonic coefficient C.sub.n from the memory 20b' utilizing a multiplier 35b', and the product is supplied via a line 21b' to the adder 22'. The adder 22' sums the odd and even harmonic component pair simultaneously evaluated in the parallel channels 51a and 51b, and supplies the sum via a line 23' to an accumulator, digital-to-analog converter and sound system like that shown in FIG. 1.

In the two channel systems of FIGS. 1 and 2, half of the W harmonics are calculated concurrently in each of the parallel processing. Thus in each computation interval t.sub.x eight calculation cycles t.sub.cp are required to calculate 16 (W=16) harmonics.

Additional parallel channels may be employed. For example, four parallel channels may be used, calculating one-fourth of the W harmonic components in each channel. In such instance, the clock frequency f.sub.cp would be one-quarter that required of a single channel system. In general, the clock frequency will be inversely proportional to the number of parallel channels. Nor is there any requirement that the same number of harmonic components be evaluated in each channel. Thus a three channel system may be set up where five harmonic components are calculated in one channel, five different components in a second channel, and six other components are evaluated in a third channel. Of course, the calculations all must be done within the time period t.sub.x, but the order in which they are performed is not important, since it is merely the sum accumulated in the accumulator 14 (FIG. 1) which represents the amplitude at the waveshape sample point qR and which is gated via the digital-to-analog-converter 17 to the sound system 11.

Nor is the invention limited to the evaluation or the low order harmonics in one channel and high order harmonics in another channel, or to separate, parallel calculation of odd and even harmonics. Indeed any subset of harmonics may be evaluated in either channel. Parallel processing also may be employed in systems wherein certain of the components are non-harmonic. Further, although only monophonic instruments are shown in FIGS. 1 and 2, it is clearly to be understood that parallel processing in accordance with the present invention also can be employed in polyphonic computor organs or like instruments.

The harmonic coefficient memories 20a, 20b (FIG. 1) advantageously may be implemented using recirculating shift registers. Such an arrangement is shown in FIG. 3 wherein a recirculating shift register 65a contains the low order harmonic coefficient values C.sub.1 through C.sub.(W/2) used in the processing channel 13a, and another shift register 65b contains the high order coefficients C.sub.(W/2) through C.sub.W used with the parallel processing channel 13b. By way of example, in a computor calculating W=16 harmonic components, the shift registers 65a and 65b respectively will contain the coefficients C.sub.1 through C.sub.8 and C.sub.9 through C.sub.16. In a similar arrangement useful with the instrument 50 of FIG. 2, the registers 65a, 65b would contain the harmonic coefficient values C.sub.n for odd and even values of n respectively.

The register 65a is shifted one position to the left (as viewed in FIG. 3) at each clock pulse t.sub.cp supplied on the line 16. As such shifting occurs, the coefficient value present in the end register position 66a is transferred via a line 67a, certain load circuitry 68a, and a line 69a back to the position 70a at the other end of the shift register 65a. The shift register 65b is similarly connected.

With this arrangement, upon occurrence of the first clock pulse (t.sub.cp1) for a particular calculation cycle, the coefficient C.sub.1 will be available via the line 71a to the harmonic amplitude multiplier 35a, and the coefficient C.sub.9 will be supplied to the multiplier 35b via a line 71b. When the next pulse (t.sub.cp2) occurs, the recirculating registers 65a, 65b will shift one position to the left, so that the respective coefficients C.sub.2 and C.sub.10 are supplied via the lines 71a, 71b to the multipliers 35a, 35b. This operation continues throughout the computation cycle, until all of the harmonic coefficients stored in the registers 65a, 65b are supplied to the multipliers 35a, 35b. As discussed earlier, the next computation cycle (for an incremented value of qR) begins immediately, and again the stored coefficients are supplied from the registers 65a, 65b to the parallel processing organ. The process continues as long as a selected note is being generated.

Recall that the coefficient values C.sub.n establish the waveshape of the generated musical notes. Thus, it is the value of these coefficients which will determine whether the sounds produced by the computor organ will have the characteristics of e.g., a diapason, a tibia or a bourdon voice. An arrangement for supplying different sets of harmonic coefficients to the shift registers 65a, 65b also is shown in FIG. 3. This arrangement facilitates organ voice selection by the use of "stop tab" switches.

To this end, a first set "A" of harmonic coefficients are maintained in a storage device 73A, and a different set "B" of coefficients are stored in a memory 73B. When the stop tab switch ST.sub.A is closed, the coefficients from the storage device 73A are transferred via an adder 74, the lines 75a, 75b and the load circuitry 68a, 68b into the shift registers 65a, 65b. Using the harmonic coefficients "A" then available in the registers 65a, 65b, the computor organ may e.g., produce a diapason sound.

If the stop tab switch ST.sub.A is opened and the switch ST.sub.B closed, the set "B" of coefficients maintained in the storage device 73B will be supplied via the adder 74 to the shift registers 65a, 65b. Thereafter, the computer organ will produce a different sound, for example, a tibia, established by the coefficient set "B". The arrangement of FIG. 3 also permits use of combined voices. Thus if both stop tab switches ST.sub.A and ST.sub.B are closed, the coefficient sets "A" and "B" will be summed by the adder 74, and the combined coefficients supplied via the load circuitry 68a, 68b to the shift registers 65a, 65b. As a result, the organ will produce a sound representative of the combined selected stops. Of course, additional stops may be implemented using other storage devices (not shown), together with appropriate selection switches and combining circuitry.

Illustrative means for transferring coefficients from the storage device 73A or 73B to the recirculating shift registers 65a, 65b is shown in FIGS. 3 and 4, and by the timing diagram of FIG. 5. In this arrangement, individual coefficients are transferred during successive computation cycles, so that when a new stop tab is selected, the change in voice occurs gradually over approximately W/2 time intervals t.sub.x. This changeover time is sufficiently rapid so as to be unobjectionable to a listener.

In the arrangement shown, a counter 76 of modulo (W/2 + 1) receives the calculation clock pulses t.sub.cp from the line 16. The counter 76 provides one "LOAD" pulse on a line 77 for each (W/2 + 1) pulses t.sub.cp received from the clock 41. The LOAD pulses advance a storage access control unit 78 which causes successive harmonic coefficients to be read from the selected storage device 73A or 73B. Each LOAD pulse also causes the accessed coefficients to be transferred by the load circuitry 68a, 68b onto the lines 69a, 69b in place of the coefficinets previously in the shift register end positions 66a, 66b. Thus, on occurrence of each LOAD pulse, a new harmonic coefficient is transferred into each shift register 65a and 65b. The process is repeated until all of the coefficients from the selected storage device 73a, 73b have been transferred.

The load circuitry 68a, 68b may be implemented using the circuit shown in FIG. 4. There, a three-input AND gate 81 receives as inputs the signal from the end shift register position 66a, the shift pulses t.sub.cp from the line 16, and the output of an inverter 82 which receives the LOAD pulses from the line 77.

When no LOAD pulse is present on the line 77, the output of the inverter 82 is high. In this instance, the AND gate 81 transfers the coefficient signal from the line 67a onto the line 69a each time a shift pulse t.sub.cp is received. Recirculation is implemented.

Upon occurrence of a LOAD pulse on the line 78, the output of the inverter 82 will be low, disabling the AND gate 81 and hence inhibiting recirculation of the coefficient received from the register position 66a. However, the LOAD signal enables another AND gate 83 which transfers the new harmonic coefficient supplied via the line 75a onto the line 69a. As a result, the new coefficient value will be entered into the register end position 70a instead of the value previously in the register position 66a. When this process is repeated W/2 times, all of the new coefficients will be present in the shift registers 65a, 65b.

The LOAD pulses need not be inhibited after all of the new coefficients have been transferred into the registers 65a, 65b. The reason is that on successive cycles, at the time of each LOAD pulse occurrence, the coefficient supplied on the line 75a will be identical to that present on the line 67a from the position 66a. As a consequence, the signal returned on the line 69a will be identical to that which would have been recirculated if the LOAD pulse had been inhibited.

The timing diagram of FIG. 5 illustrates the shift register 65a, 65b reloading process. In the example, the shift registers initially contain the coefficients C.sub.1A through C.sub.16A of the set "A". The stop tab ST.sub.B is selected at the time designated by the arrow 85. During the next computation cycle, the coefficient C.sub.1B and C.sub.9B of the newly selected set "B" are transferred by the load circuitry 68a, 68b to the shift registers 65a, 65b. During the following computation cycle, at a time (W/2 + 1) t.sub.cp after transfer of the coefficients C.sub.1B, C.sub.9B, the next coefficients C.sub.2B and C.sub.10B are loaded into the registers. This procedure is iterated until all coefficients of the set "B" have been loaded.

Other timing arrangements may be used for transfer of harmonic coefficients into the shift registers 65a, 65b. Note also that each coefficient C.sub.n may be represented by a multi-bit binary number. In such instance, each shift register position would contain a byte equal to the number of bits representing each coefficient. Additional circuits like that of FIG. 4 may be employed for each bit.

Selection of the coefficient values C.sub.n is a design choice. By way of example, the storage devices 73A, 73B may contain the sets of coefficients listed in TABLE I below and associated with typical pipe organ sounds. Decimal values of the coefficients are listed. In a digital computor organ, these values typically would be stored in the equivalent binary form. The listed coefficients indicate the relative amplitude of each Fourier component; the corresponding decibel values also are tabulated. ##SPC3##

The frequency numbers R stored in the memory 19 are related to the fundamental frequencies of the musical notes produced by the computor organ 10, to the computation time interval t.sub.x, and to the number of amplitude sample points N for the note of highest fundamental frequency f.sub.H 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 t.sub.x given by t.sub.x = 1/Nf.sub.H 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 f.sub.H will be non-integers.

By way of example, the following Table II lists the frequency, frequency number R, and number of sample points per period for each note in octave six. The note C.sub.7 (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 C.sub.7, this value of N being satisfactory for accurate synthesis for an organ pipe or most other musical sounds. --------------------------------------------------------------------------- TABLE II

NOTE FREQUENCY R Number of Sample (Hz) Points per Period __________________________________________________________________________ C.sub.7 2093.00 1.0000 32.00 B.sub.6 1975.53 0.9443 33.90 A .sub.6 1864.66 0.8913 35.92 A.sub.6 1760.00 0.8412 38.06 G .sub.6 1661.22 0.7940 40.32 G.sub.6 1567.98 0.7494 42.72 F .sub.6 1479.98 0.7073 45.26 F.sub.6 1396.91 0.6676 47.95 E.sub.6 1318.51 0.6301 50.80 D .sub.6 1244.51 0.5947 53.82 D.sub.6 1174.66 0.5613 57.02 C .sub.6 1108.73 0.5298 60.41 C.sub.6 1046.50 0.5000 64.00 __________________________________________________________________________

thus there is provided a parallel processing computor organ wherein the calculation clock rate is substantially lower than for systems which do not employ parallel processing.

* * * * *


uspto.report is an independent third-party trademark research tool that is not affiliated, endorsed, or sponsored by the United States Patent and Trademark Office (USPTO) or any other governmental organization. The information provided by uspto.report is based on publicly available data at the time of writing and is intended for informational purposes only.

While we strive to provide accurate and up-to-date information, we do not guarantee the accuracy, completeness, reliability, or suitability of the information displayed on this site. The use of this site is at your own risk. Any reliance you place on such information is therefore strictly at your own risk.

All official trademark data, including owner information, should be verified by visiting the official USPTO website at www.uspto.gov. This site is not intended to replace professional legal advice and should not be used as a substitute for consulting with a legal professional who is knowledgeable about trademark law.

© 2024 USPTO.report | Privacy Policy | Resources | RSS Feed of Trademarks | Trademark Filings Twitter Feed