U.S. patent number 3,809,789 [Application Number 05/314,681] was granted by the patent office on 1974-05-07 for computor organ using harmonic limiting.
This patent grant is currently assigned to Nippon Gakki Seizo Kabushiki Kaisha. Invention is credited to Ralph Deutsch.
United States Patent |
3,809,789 |
Deutsch |
May 7, 1974 |
COMPUTOR ORGAN USING HARMONIC LIMITING
Abstract
Harmonic limiting is employed in an electronic musical
instrument of the type wherein notes are produced by computing the
amplitudes at successive sample points of a musical waveshape and
converting these amplitudes to notes as the computations are
carried out in real time. Each amplitude is computed by
accumulating as many as W individually calculated waveshape
discrete Fourier components. In accordance with the present
invention, harmonic inhibit means are provided for limiting the
Fourier components included in each amplitude computation only to
those having frequencies below a certain value preferably within
the normal human hearing range.
Inventors: |
Deutsch; Ralph (Sherman Oaks,
CA) |
Assignee: |
Nippon Gakki Seizo Kabushiki
Kaisha (Hamamatsu, JA)
|
Family
ID: |
23220984 |
Appl.
No.: |
05/314,681 |
Filed: |
December 13, 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
Primary Examiner: Wilkinson; Richard B.
Assistant Examiner: Witkowski; Stanley J.
Attorney, Agent or Firm: Flam & Flam
Claims
1. In a musical 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 a
set of 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, said instrument providing a signal indicating which
order Fourier component currently is being calculated, 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 includes note selection
switches and harmonic inhibit logic for limiting the components in
said set only to those having a frequency below a certain value
within the normal human hearing range, said harmonic inhibit logic
comprising:
circuitry providing, in response to switch selection of each note,
a signal designating the highest order Fourier component to be
calculated for that note,
a comparator for comparing said highest-order-designating signal
and said order-indicating signal, and for providing an output when
the compared signals are equal,
inhibit circuitry for inhibiting calculation of higher order
Fourier
2. A musical instrument according to claim 1 wherein said certain
value is approximately 13 kHz, wherein said set normally includes
the first sixteen Fourier components for each note between C.sub.1
and G.sub.5, and wherein said set includes less than 16 Fourier
components for each note between
3. A musical instrument according to claim 1 comprising:
a clock providing timing pulses t.sub.cp establishing the Fourier
component calculation rate of said instrument,
a counter receiving said timing pulses t.sub.cp and establishing
each amplitude computation regular time interval t.sub.x, the count
of said counter during each computation interval establishing which
order Fourier component currently can be calculated by said
instrument, said
4. A musical instrument according to claim 3 wherein said
amplitudes are computed digitally and are converted by a
digital-to-analog converter, wherein said computation interval
t.sub.x is of fixed duration regardless of which note is being
produced, wherein said digital-to-analog conversion occurs at the
end of each interval t.sub.x, and wherein for notes having
inhibited Fourier components, the uninhibited components are
calculated in
5. In an electronic musical instrument of the type wherein the
amplitudes at successive sample points of a musical waveshape are
computed by individually calculating the waveshape discrete Fourier
components and combining said components to obtain each amplitude,
said amplitudes being converted to musical notes as said
computations are carried out, the Fourier components included in
each amplitude computation being limited only to those having
frequencies below a certain value, said instrument comprising:
a memory storing frequency numbers associated with each note and
establishing the separation between successive amplitude sample
points,
note selection means for accessing from said memory the frequency
number associated with a selected note,
means for providing, in response to selection of a note, a signal
designating the highest order L harmonic to be calculated for that
note,
Fourier component evaluation circuitry, utilizing said associated
frequency number, for calculating as many as W Fourier components
for each amplitude computation, all W of said components being
calculated and combined to obtain said amplitudes during production
of each note for which the W.sup.th component has a frequency below
said certain value, said evaluation circuitry providing a signal
indicating which Fourier component n currently is being
calculated,
a comparator for detecting coincidence between the values n and L,
and
harmonic inhibit logic, operative upon detection by said comparator
of coincidence between the values n and L, for inhibiting
calculation by said
6. A musical instrument according to claim 5 wherein said certain
value is
7. A musical instrument according to claim 5 wherein said memory
also stores a highest order harmonic designation code for each
note, said harmonic inhibit logic being responsive to the
designation code accessed from said memory together with said
associated frequency number when a
8. A musical instrument according to claim 7 wherein said code
itself
9. A musical instrument according to claim 7 further comprising a
harmonic limit memory containing certain L designating values, said
code causing access from said harmonic limit memory of the L
designating value
10. A musical instrument according to claim 5, said instrument
being polyphonic and comprising:
like means for separately computing a note-related amplitude for
each note played simultaneously, said note-related amplitudes being
summed to obtain each waveshape amplitude, and harmonic inhibit
logic operable separately to limit the Fourier components included
in the computation of each
11. A musical instrument according to claim 5 wherein different
subsets of said Fourier components are calculated concurrently in
separate parallel processing channels, said harmonic inhibit logic
being operable separately
12. A musical instrument according to claim 5 including a clock for
controlling the rate at which individual Fourier components are
calculated by said evaluation circuitry, said rate being
established by the single highest frequency f.sub.h of any
uninhibited component included in the amplitude computation for any
note, said rate being a multiple of the Nyquist frequency 2f.sub.h
times a safety factor S having a value greater
13. A musical instrument according to claim 12 wherein for a
polyphonic instrument capable of simultaneously producing K notes,
said multiple is K, and wherein for an instrument having P parallel
processing channels,
14. A musical instrument according to claim 5 wherein each
amplitude is computed within a fixed time interval t.sub.x, and
further comprising a clock establishing identifiable calculation
intervals within said interval t.sub.x during which certain of said
components may be calculated by said evaluation circuitry, said
harmonic inhibit logic being responsive to said identifiable
calculation intervals and to said value L for inhibiting
15. In an electronic musical instrument of the type having:
first means for computing during consecutive time intervals the
amplitudes X.sub.o (qR) of a waveshape, where q is an integer
incremented each time interval, in accordance with the relationship
##SPC3##
wherein L signifies the number of Fourier components included in
each amplitude computation for a particular note, W is the maximum
number of components included in the computation for any note
produced by said instrument, C.sub.n is the coefficient of the
corresponding n.sup.th Fourier component, and R is a number
specifying the period of said waveshape, said first means
comprising:
a harmonic coefficient memory storing said harmonic coefficients
C.sub.n,
a memory containing a table of sinusoid values,
a frequency number memory containing values R for a selectable set
of notes,
a keyboard including note selection switches, actuation of any
keyboard switch causing access from said frequency number memory of
the R value corresponding to the note selected by that actuated
key,
harmonic component evaluation circuitry utilizing said harmonic
coefficient memory and said table to calculate F.sup.(n) F.sup.(n)
= C.sub.n sin .pi./W nqR for each Fourier component in accordance
with the accessed value R, and
an accumulator for algebraically summing the calculated values
F.sup.(n), and
second means responsive to said first means for producing musical
notes for said computed amplitudes,
the improvement wherein for each produced note the value L is such
that all of the Fourier components included in the amplitude
computation have frequencies below some preselected frequency
within the human hearing range, said improvement comprising:
harmonic inhibit logic responsive to actuation of at least some
keyboard switches for inhibiting said harmonic component evaluation
circuitry from calculating F.sup.(n) for those Fourier components
of the note selected by said actuated switch which are higher in
frequency than said preselected
16. A musical instrument according to claim 15 wherein said
frequency number memory stores values of R together with codes
designating the value of L associated with each R value, and
wherein actuation of each key causes access from said frequency
number memory of the corresponding value R and of the L-designating
code associated therewith, and
wherein said harmonic inhibit logic is responsive to the accessed
L-designating code and inhibits access from said harmonic
coefficient memory of the coefficients associated with Fourier
components of order higher than L, thereby effectively preventing
calculation by said evaluation circuitry of harmonics having
frequencies above said
17. A musical instrument according to claim 16 wherein said
harmonic component evaluation circuitry calculates all W Fourier
components for each note unless inhibited, wherein said harmonic
inhibit logic comprises circuitry for detecting coincidence between
the value L designated by said code and a signal indicating which
Fourier component currently is being calculated by said evaluation
circuitry, said harmonic inhibit logic inhibiting readout from said
harmonic coefficient memory for the remainder of each amplitude
computation interval after detection of such
18. A musical instrument according to claim 17 wherein each
waveshape amplitude is computed in a fixed time interval t.sub.x
regardless of which note is being produced, said instrument
including a clock and a counter cooperating therewith to establish
said intervals t.sub.x, and wherein said Fourier component
indicating signal is derived from the timing output
19. A musical instrument according to claim 15 wherein said
evaluation circuitry provides a signal indicating which order
Fourier component currently is being evaluated, said harmonic
inhibit logic including;
circuitry, responsive to actuation of said certain keyboard
switches, for providing a signal specifying the value L for the
note selected by the actuated key,
a comparator for comparing said L-specifying signal and said
order-indicating signal, said comparator providing an output when
the compared signals are the same, and
means, responsive to said comparator output, for inhibiting
calculation of higher order Fourier components for the selected
note.
Description
BACKGROUND OF THE INVENTION
Field of the Invention
The present invention relates to a system for reducing the
computational rate requirements of 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. The system limits the Fourier components calculated for each
sample point to ones having a frequency below a selected value
within the human hearing range.
Related Applications
The present invention is related to the inventor's copending U.S.
patent applications Ser. No. 225,883, filed on Feb. 14, 1972
entitled COMPUTOR ORGAN and No. 298,365, filed on Oct. 17, 1972
entitled COMPUTOR ORGAN USING PARALLEL PROCESSING.
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 performed in
real time. 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 calculations are carried out at a constant
time rate regardless of the note fundamental frequency. One method
of reducing the computational rate requirement in a computor organ
of this type is set forth in the above mentioned U.S. patent
application entitled COMPUTOR ORGAN USING PARALLEL PROCESSING. In
that system, different subsets of the Fourier components are
computed in separate parallel processing channels. For example, in
a computer organ wherein sixteen Fourier components are evaluated
to obtain each sample point amplitude, the computational rate can
be halved by concurrently calculating eight components in one
processing channel and the other eight harmonics in a second,
parallel channel.
An object of the present invention is to provide another approach
for reducing the computational rate requirements of such a computor
organ. The computational rate is determined in part by the highest
frequency component generated by the system. Since the human
hearing range is limited, there is no need to generate components
above some upper value within that range. By limiting the
calculated Fourier components to such range, a significant
reduction in computation rate is achieved. Harmonic limiting can be
used by itself, or in conjunction with the previously described
parallel processing to obtain an even greater reduction in system
clock rate.
SUMMARY OF THE INVENTION
In a computor organ of the type described, the musical waveshape is
generated in real time. This advantageously (but not necessarily)
is achieved by computing each sample point amplitude in a fixed
time interval t.sub.x. All of the individual Fourier components are
calculated within that interval. For accurate waveshape synthesis,
the sample rate must be greater than the Nyquist frequency f.sub.N
which is twice the frequency f.sub.h of the highest Fourier
component evaluated by the system. 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. If 16 Fourier
components are calculated to synthesize this tone, the highest
frequency f.sub.h evaluated by the organ corresponds to the
sixteenth harmonic of C.sub.7. That is:
f.sub.h = 16f.sub.H = 16(2.093 kHz) = 33.488 kHz (1)
Accordingly, the Nyquist frequency f.sub.N is:
f.sub.N .gtoreq. 2f.sub.h = 66.976 kHz (2)
This sets the upper limit for the computation interval t.sub.x
as:
t.sub.x .ltoreq. 1/f.sub.N ( 3)
however, all of the individual harmonic calculations must be
carried out within this interval t.sub.x. Thus if sixteen Fourier
components are evaluated in a single channel, each calculation must
be performed in a clock time t.sub.cp =t.sub.x /16. Accordingly,
the system computational clock rate f.sub.c for a monophonic
instrument is given by:
f.sub.c = 1/t.sub.cp = 16/t.sub.x .gtoreq. 16 f.sub.N = 16(66.976
kHz) = 1.072 MHz (4)
For a polyphonic organ in which K notes may be played at once, the
harmonic components of all notes must be evaluated for 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 ( 5)
In a system where 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 f.sub.c .gtoreq. (12) (1.072 MHz) = 12.859 MHz
(6)
This relatively high computational clock rate may be reduced
significantly using the harmonic limiting system of the present
invention. The system takes advantage of the fact that for notes in
the fifth and sixth octaves, many of the higher harmonics are above
the hearing range of the average listener. For example (see Table I
below), the sixteenth harmonic of the note C.sub.6 (the key of C in
octave 6) is 16.744 kHz which is above the hearing range of the
average adult. At C.sub.7, the sixteenth harmonic is 33.488 kHz,
far outside the normal hearing range. Accurate waveshape synthesis
without significant loss of realism or fidelity can be achieved
using only those harmonics having frequencies below some limit
within the hearing range of the typical listener. By excluding
harmonic components above this limit from the wave-shape amplitude
computations, the Nyquist frequency is reduced, with concomitant
reduction in the system computational clock rate.
As an illustration, the waveshape amplitudes may be computed using
only those harmonics having a frequency below 12.9 kHz. As evident
from Table I, all sixteen Fourier components will be included in
the amplitude computations for each note up to and including
G.sub.5. For these notes, the sixteenth harmonic has a frequency
below 12.9 kHz. For G.sub..sub.#5 only fifteen Fourier components
will be included in the amplitude computation, since the sixteenth
harmonic has a frequency above 12.9 kHz. Similarly, for other notes
between G.sub..sub.#5 and C.sub.7 the amplitude computations will
be limited to the harmonics indicated in Table I. At C.sub.7, only
six components will be employed to synthesize the waveshape, since
the sixth harmonic has a frequency of 12.558 kHz and the seventh
harmonic lies above 12.9 kHz.
The Nyquist criteria discussed above may be applied to this
illustration to determine the system clock rate requirements. Since
the highest frequency component (the 13th harmonic of B.sub.5)
evaluated by the system has a frequency f.sub.h = 12.841 kHz, the
computational clock rate f.sub.c for a monophonic instrument
is:
f.sub.c .gtoreq. 16 f.sub.N .gtoreq. (16) (12) (12.841 kHz) = 410.9
kHz (7)
and the computational rate f.sub.c ' for a twelve note (K =12)
polyphonic system is:
f.sub.c ' .gtoreq. 12 f.sub.c = 4.930 MHz (8)
Thus for a computer organ in which the harmonic components are
limited to those below 12.9 kHz, the computational rate is reduced
by a factor of about 2.66 as compared with a system wherein all
sixteen harmonics are computed for every note up to C.sub.7.
Clearly this represents a very significant reduction in the system
computational rate, and permits the computor organ more readily to
be implemented using presently available microelectronic integrated
circuits.
TABLE I
Frequency Highest Harmonic Fundamental of 16th Less Than 12.9 kHz
Note Frequency Harmonic Frequency Harmonic (Hz) (kHz) (kHz) (L)
C.sub.228 5 554.4 8.870 D.sub.5 587.3 9.397 D.sub..sub.#5 622.3
9.957 E.sub.5 659.3 10.549 F.sub.5 698.5 11.176 F.sub..sub.#5 740.0
11.840 G.sub.5 784.0 12.544 G.sub..sub.#5 830.6 13.290 12.459 15
A.sub.5 880.0 14.080 12.320 14 A.sub..sub.#5 932.3 14.917 12.120 13
B.sub.5 987.8 15.805 12.841 13 C.sub.6 1046.5 16.744 12.558 12
C.sub..sub.#6 1108.7 17.740 12.196 11 D.sub.6 1174.7 18.795 11.747
10 D.sub.#.sub.6 1244.5 19.912 12.445 10 E.sub.6 1318.5 21.096
11.867 9 F.sub.6 1396.9 22.350 12.572 9 F.sub.#.sub.6 148.0 23.680
11.840 8 G.sub.6 1568.0 25.088 12.544 8 G.sub.#.sub.6 1661.2 26.579
11.628 7 A.sub.6 1760.0 28.160 12.320 7 A.sub.#.sub.6 1864.7 29.835
11.188 6 B.sub.6 1975.5 31.608 11.853 6 C.sub.7 2093.0 33.488
12.558 6
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 computer organ employing
harmonic limiting.
FIG. 2 is an electrical block diagram of a first embodiment of the
harmonic inhibit logic utilized in the computor organ of FIG.
1.
FIG. 3 shows typical musical waveshapes generated by a computor
organ employing the harmonic inhibit logic of FIG. 2.
FIG. 4 is a timing diagram illustrating inhibition of the Fourier
component calculations during generation of the musical waveshapes
illustrated in FIG. 3.
FIG. 5 is an electrical block diagram of an alternative embodiment
of the harmonic inhibit logic utilized by the computor organ of
FIG. 1.
FIG. 6 shows typical musical waveshapes generated using the
harmonic inhibit logic of FIG. 5.
FIG. 7 is a timing diagram illustrating harmonic limiting in a
polyphonic computor organ.
FIG. 8 is an electrical block diagram showing implementation of
harmonic limiting in a parallel processing computor organ.
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 operates to produce via a sound
system 11 a musical note selected by the keyboard switches 12. This
is accomplished by calculating the discrete Fourier components
associated with amplitudes at successive sample points of a
wave-shape characterizing the selected note. The components are
algebraically summed in an accumulator 13 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 14,
enabled by the t.sub.x signal on a line 15, to a digital-to-analog
converter 16 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 subsequently is
initiated, so that the analog voltage supplied from the converter
16 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 17. The wave shape 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
memory 18 and used in computing the Fourier components at each
sample point.
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,...,L designates the Fourier 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 Fourier component.
The value W designates the maximum number of Fourier components
included in any amplitude computation by the organ 10. In general,
the use of 16 harmonics (W = 16) is quite satisfactory for
synthesizing pipe organ sounds. The number L specifies the number
of Fourier components included in a specific amplitude computation.
In accordance with the present invention, the number L will depend
on which note is being generated. Appropriate harmonic inhibit
logic 20, illustrative embodiments of which are shown in FIGS. 2
and 5, limits the components only to those having frequencies below
a preselected value preferably within the human hearing range. As
discussed above, this reduces the computational rate requirements
of the instrument 10.
The computor organ 10 of FIG. 1 implements equation 9 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 L harmonic
components are calculated separately during successive time
intervals t.sub.cp established by a clock 21 and a counter 22. At
the first interval t.sub.cp1 the amplitude F.sup.(1) of the first
harmonic (n = 1) is calculated. This value F.sup.(1) is placed in
the accumulator 13. At the interval t.sub.cp2 the amplitude
F.sup.(2) of the second Fourier component is computed and added to
the accumulator 13 contents. At time t.sub.cp3 the third harmonic
amplitude F.sup.(3) is calculated and added to the accumulator 16.
The number W of iterations of this routine is controlled by the
harmonic inhibit logic 20 in cooperation with the counter 22. The
routine is terminated when all Fourier components associated with
the particular amplitude computation have been evaluated. Upon such
termination, the algebraic sum contained in the accumulator 13 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 13 is gated to the digital-to-analog converter 16 at
the end of the computation interval t.sub.x. The accumulator 13
then is cleared by the signal on the line 15, and computation of
the amplitude at the next sample point subsequently is initiated.
The value qR is incremented and the L 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 23 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 23. The selected value R is supplied to the adder 23
via a gate 24 enabled by the t.sub.x signal on the line 15. In
general, the adder 23 is of modulo M where M is the product of the
R number for any note times the number of points per period of that
note. The value M is a system design constant related in part to
the computational rate of the system.
To calculate each harmonic component, the values nqR (for n =
1,2,...,L) are obtained in a harmonic interval adder 25 which is
cleared before each amplitude computation cycle. Upon occurrence of
the first t.sub.cp clock pulse of a new cycle, the current value qR
contained in the note interval adder 23 is entered into the
harmonic interval adder 25 via a line 26 and a gate 27. At each
subsequent clock pulse t.sub.cp, the value qR is added to the
previous contents of the adder 25. As a result, the harmonic
interval adder 25 will contain the value nqR, where n = 1,2,...L
for the n.sup.th order harmonic component concurrently being
evaluated. Preferably the harmonic interval adder 25 also is of
modulo M.
An address decoder 28 accesses from a sinusoid table 29 the value
sin (.pi./W) nqR corresponding to the argument nqR received via a
line 30 from the harmonic interval adder 25. The sinusoid table 29
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 31, is multiplied
by the coefficient C.sub.n for the corresponding n.sup.th harmonic
by a multiplier 32. The multiplication product represents the
amplitude F.sup.(n) of the n.sup.th harmonic component and is
supplied via the line 33 to the accumulator 13. The appropriate
coefficient C.sub.n is accessed from the harmonic coefficient
memory 18 by an address control unit 34 advanced by timing signals
received from the counter 22 via a line 35. Readout from the
harmonic coefficient memory 18 is inhibited by the harmonic inhibit
logic 20 for those higher order Fourier components not included in
a particular amplitude computation. This is facilitated via an
enable/inhibit signal line 36.
FIG. 2 shows illustrative circuitry 20A useful as the harmonic
inhibit logic 20 of FIG. 1. With this circuitry, each waveshape
amplitude computation is performed in a fixed time interval
t.sub.x, regardless of how many Fourier components are included in
that computation. The interval t.sub.x is established by the
counter 22 which receives t.sub.cp pulses at the system clock rate
f.sub.c from the clock 21 via a line 37. The counter 22 preferably
is of modulo 16, and produces on the lines 35a - 35d a four-bit
binary signal designating the respective calculation timing pulses
t.sub.cp1 through t.sub.cp16. As indicated by the timing diagram of
FIG. 4, these timing signals occur sequentially within the time
interval t.sub.x. The t.sub.x signal is obtained as the counter 22
resets.
When a note between G.sub.#.sub.5 and C.sub.7 is selected at the
keyboard switches 12, an input will be provided to the logic 20A on
the correspondingly designated line. Encoding circuitry 40
including the OR gates 41 - 46 and a one-of-ten to binary encoder
47 provide on the lines 48a - 48d a signal specifying in binary
code the highest Fourier component (L) to be included in the
waveshape amplitude computation for that note.
At the beginning of each computation cycle, a flip-flop 49 is set
to "1" by the t.sub.x signal on the line 15. The "1" output of the
flip-flop 49 functions as an enable signal on the line 36 to the
harmonic coefficient memory 18. Thus during the initial computation
cycles t.sub.cp1, t.sub.cp2... the flip-flop 49 remains set to "1",
the memory 18 is enabled, and calculation of the Fourier
coefficients is not inhibited.
The computation pulses t.sub.cp1, t.sub.cp2,... from the counter 22
are compared with the maximum harmonic designation signal (L) on
the lines 48a - 48d by a comparator 50. When coincidence occurs,
indicating that the highest harmonic concurrently is being
evaluated and that subsequent harmonics must be inhibited, an
output signal is produced on the line 51 from the comparator 50.
After a brief delay (less than an interval t.sub.cp) provided by a
delay circuit 52, the coincidence output signal from the comparator
50 resets the flip-flop 49 to "0". This terminates the enable
signal on the line 36 and inhibits subsequent readout from the
harmonic coefficient memory 18. As a result, on subsequent
calculation times when higher harmonics normally would be
evaluated, the output of the harmonic coefficient memory 18 is
zero. The output F.sup.(n) of the harmonic amplitude multiplier 32
likewise is zero. The higher harmonics effectively are
inhibited.
The encoding circuitry 40 of course is selected with reference to
the highest harmonic (L) desired for each note being produced. Thus
for the illustrative example of Table I, the signals provided on
the lines 48a - 48d will correspond to the binary representation of
the value L listed in that table. For example, when the key
G.sub.#.sub.5 is selected, an input to the one-of-ten to binary
encoder 47 occurs on the line 54. The encoder 45 produces on the
lines 48a - 48d a signal L = 15. When the counter 22 reaches the
time interval t.sub.cp15, the signal on the lines 35a - 35d will be
identical to that on the lines 45a - 48d. As a result, the
comparator 50 will produce a coincidence output, thereby resetting
the flip-flop 49 and inhibiting readout from the harmonic
coefficient memory during the time t.sub.cp16 (see FIG. 4). The
sixteenth Fourier coefficient thus is not included in the amplitude
computation.
Similarly, when the note A.sub.#.sub.6, B.sub.6 or C.sub.7 is
selected, the OR gate 46 provides an output on a line 55, causing
the encoder 47 to provide on the lines 48a - 48d the binary
representation of the value L = 6. The comparator 50 then will
cause the flip-flop 49 to be reset to "0" after t.sub.cp6, thereby
effectively inhibiting calculation of the seventh through 16th
Fourier components.
When any note between C.sub.1 and G.sub.5 is selected, the encoder
circuitry 40 receives no input. Accordingly, the signal (binary
0000) on the lines 48a - 48d will represent L = 16. The flip-flop
49 will remain set at "1" throughout the entire computation cycle
and all sixteen harmonics will be calculated.
The harmonic coefficient memory 18 and the memory address control
34 advantageously are implemented using a commercially available
integrated circuit read-only-memory (ROM) such as the Signetics
type 8223. This device includes address control circuitry which
accepts a binary coded address like that provided on the lines 35,
and automatically accesses from the corresponding memory storage
location a word of up to eight bits. The same integrated circuit
includes memory output enable/inhibit circuitry controlled by a
"chip enable" input to which the line 36 (FIG. 2) may be connected.
The actual harmonic coefficient values stored in the memory 18 are
of course a design choice which will depend on the desired tonal
quality of the sound being produced by the organ 10. By way of
example only, the following Table II lists typical harmonic
coefficient values C.sub.n which will produce a diapason-type organ
sound.
TABLE II (DIAPASON)
Value stored in memory 18 (Relative (Decibel Coefficient Amplitude)
Equivalent) C.sub.1 127 0 db C.sub.2 71 -5 C.sub.3 90 -3 C.sub.4 36
-11 C.sub.5 23 -15 C.sub.6 25 -14 C.sub.7 8 -24 C.sub.8 8 -24
C.sub.9 4 -31 C.sub.10 4 -31 C.sub.11 2 -38 C.sub.12 2 -38 C.sub.13
2 -38 C.sub.14 1 -42 C.sub.15 1 -42 C.sub.16 1 -42
the one-of-ten to binary encoder 47 may comprise a conventional
diode array having ten input lines and four, binary coded output
lines. Such devices are shown in the standard text entitled
"Computer Logic" by Ivan Flores, Prentice Hall, 1960 at Chapter
11.8. The counter 22 may be implemented using a Signetics type 8280
four-bit binary counter contained in a single integrated circuit
chip. The comparator 50 may comprise a Signetics type 8269
integrated circuit four-bit comparator.
In an alternative version of the logic 20A, the encoding circuitry
40 may be eliminated. The number L specifying the highest Fourier
component to be computed for each note then may be stored in the
memory 17 along with the corresponding frequency number R. When a
note is selected at the switches 12, the associated L number will
be accessed from the memory 17 and supplied via the lines 54a-54d
directly to the comparator 50. The logic 20A will function as just
described to limit harmonic production.
Using the harmonic inhibit logic 20A of FIG. 2, the computor organ
10 of FIG. 1 will compute each sample point amplitude in a fixed
time interval t.sub.x regardless of how many Fourier components are
included in that computation. This is reflected by the waveforms of
FIG. 3, which indicate typical amplitude values supplied to the
digital-to-analog converter 16 during production of the notes
C.sub.7, F.sub.6 and G.sub.5. Although successive sample point
amplitudes are computed at fixed time intervals t.sub.x, the number
of points computed per period will differ for each note.
The system clock rate f.sub.c may have the minimum value given
above in equation 7 (or in Eq. 8 for a polyphonic system). In
practice however, the clock rate will be selected slightly higher
than the minimum value, to provide a safety factor S greater than
1.000 for the Nyquist criteria. To minimize the likelihood of
producing undesirable beat notes or noise, this safety factor may
be chosen to be slightly greater than 2.sup.1/12 which is the
interval between two adjacent tones in an equally tempered scale.
For example, the safety factor may be selected as S = 2
.sup.1.37/12 = 1.082. Using this safety factor, the Nyquist
frequency f.sub.N * and the clock rate f.sub.c * for a monophonic
instrument system will be:
f.sub.N * = Sf.sub.N = (1.082) (2) (12.841 kHz) = 27.797 kHz (11)
f.sub.c * = Sf.sub.c = 16 Sf.sub.N * = (1.082) (410.9 kHz) (12)
4.59 kHz
The clock 21 utilized with the logic 20A of FIG. 2 thus may have
this frequency f.sub.c *. For such an embodiment, the waveshape
amplitudes will be computed at successive fixed time intervals
t.sub.x = 1/f.sub.N * so that the number of sample points per
period of the generated note will be given by:
points/period = (period of note/computation interval) = f.sub.N
*/f(note) (13)
For example, for note C.sub.7 (f.sub.(C ) = 2.093 kHz) there will
be f.sub.N */f.sub.(C ) = (27.797 kHz)/(2.093 kHz) = 13.3 points
computed per period of the generated waveshape. Table III below
includes a list of the points per period for other notes between
C.sub.5 and C.sub.7. The frequency numbers R utilized with such a
monophonic, single channel embodiment also are set forth in Table
III. These values are obtained from the following relationship:
R = [W f(note)]/f.sub.N * (14)
for example, for C.sub.7 the frequency number is:
R.sub.(C ) = [(16)(2.093 kHz)]/[27.797 kHz] = 1.20474 (Eq. 15)
In general, the frequency numbers R are non-integers. Thus the note
interval adder 23 (FIG. 1) will not "reset" exactly to zero at the
end of each period of the generated waveshape, but rather to a
number which differs each period. Thus consecutive periods of the
same note will have sample point amplitudes slightly different than
those of the preceeding period. This effect is beneficial in a
polyphonic system since it provides "decoupling" when two notes are
played simultaneously.
TABLE III
Note Frequency R Number Points Period C.sub.7 2093.00 1.20474 13.3
B.sub.6 1975.53 1.13712 14.1 A.sub.#.sub.6 1864.65 1.07330 14.9
A.sub.6 1760.00 1.01306 15.8 G.sub.#.sub.6 1661.22 .95621 16.7
G.sub.6 1567.98 .90254 17.7 F.sub.#.sub.6 1479.98 .85188 18.8
F.sub.6 1396.91 .80407 19.9 E.sub.6 1318.51 .75894 21.1
D.sub.#.sub.6 1244.51 .71634 22.3 D.sub.6 1174.66 .67614 23.7
C.sub.#.sub.6 1108.73 .63819 25.1 C.sub.6 1046.50 .60237 26.6
B.sub.5 987.77 .56856 28.1 A.sub.#.sub.5 932.33 .53665 29.8 A.sub.5
880.00 .50653 31.6 G.sub.#.sub.5 830.61 .47810 33.5 G.sub.5 783.99
.45127 35.5 F.sub.#.sub.5 739.99 .42594 37.6 F.sub.5 698.46 .40203
39.8 E.sub.5 659.25 .37947 42.2 D.sub.#.sub.5 622.25 .35817 44.7
D.sub.5 587.33 .33807 47.3 C.sub.#.sub.5 554.36 .31909 50.1 C.sub.5
523.25 .30119 53.1
fig. 5 shows an alternative embodiment 20B for the harmonic inhibit
logic 20 of FIG. 1. In this embodiment, the counter 22b provides a
separate output on one of the sixteen lines designated t.sub.cp1
through t.sub.cp16 for each of the corresponding calculation times.
The harmonic coefficient memory 18b is implemented by a set of
sixteen registers 61a - 61p which store the respective harmonic
coefficients C.sub.1 through C.sub.16. The memory address control
34b readily is implemented by a set of gates 62a - 62p each
associated with the corresponding register 61a - 61p and operated
by the respective signals t.sub.cp1 - t.sub.cp16 received from the
counter 22. Thus when the first calculation timing signal t.sub.cp1
occurs, the gate 62a gates the coefficient C.sub.1 from the
register 61a via a buss 63 to the harmonic amplitude multiplier
32.
The harmonic inhibit logic 20B functions to reset the counter 22a
after the highest desired Fourier component has been calculated.
For example, if the key C.sub.7 is selected at the keyboard
switches 12, the signal on the C.sub.7 line is supplied via an OR
gate 64 to enable an AND gate 65. When the timing pulse t.sub.cp6
occurs, resulting in calculation of the sixth harmonic, the pulse
t.sub.cp6 is gated via the AND gate 65 to a buss 66. After a delay
of less than the time interval t.sub.cp, provided by a delay
circuit 67, the computation time interval pulse t.sub.x ' is
generated. This resets the counter 22b and terminates the current
waveshape amplitude computation. The seventh and higher Fourier
components are not evaluated, and computation of the waveshape
amplitude at the next sample point begins immediately. Eventually
the waveshape C.sub.7 shown in FIG. 6 will be generated.
When using the circuitry 20B of FIG. 5, the duration t.sub.x '
taken to compute each amplitude sample point will not be a constant
for all notes, but will depend on the number of Fourier components
computed for each note. Thus, for example, when the note
D.sub.#.sub.6 is selected, the signal provided via an OR gate 68
will enable an AND gate 69. During calculation of the tenth
harmonic, the signal t.sub.cp10 will be gated via the AND gate 69
onto the buss 66. This will cause termination of the amplitude
computation cycle after evaluation of the first ten Fourier
components, and immediately initiate computation of the next sample
point amplitude. As a result, the generated D.sub.#.sub.6 waveform
will have the appearance shown in FIG. 6. Note that for
D.sub.#.sub.6 each sample point interval has a duration t.sub.x
'.sub.(D ) = 10t.sub.cp, whereas for the C.sub.7 waveshape, the
duration t.sub.x '.sub.(C ) = 6t.sub.cp. The various OR gates 70 -
74 and AND gates 75 - 81 cooperate to gate onto the buss 66 the
timing signal t.sub.cp7 - t.sub.cp15 appropriate for limiting
harmonic generation for the selected note.
For notes between C.sub.1 and G.sub.5, all 16 harmonics are
generated. In this instance, the t.sub.cp16 signal on the line 82
is supplied directly to the buss 66 to reset the counter 22b and
terminate the computation cycle at the end of sixteen t.sub.cp
intervals. As a result, (FIG. 6) the notes G.sub.5 and D.sub.5 and
all others of lower fundamental frequency are generated with sample
point intervals of equal length t.sub.x ' = 16t.sub.cp. Of course,
each of these notes G.sub.5 through C.sub.1 will have a different
number of sample points per period.
Although only monophonic embodiments are illustrated in FIGS. 1 -
6, the invention is not so limited. Harmonic limiting thus can
advantageously be employed in a polyphonic system, such as that
described in the above identified patent application entitled
COMPUTOR ORGAN. In such a polyphonic system, the waveshape
amplitude supplied to the digital-to-analog converter is the sum of
the separately computed amplitudes for each note of the chord being
played. Such computation may be accomplished on a time sharing
basis, as illustrated diagrammatically in FIG. 7 for a (K = 3)
polyphonic system in which three notes may be played
simultaneously.
Referring to FIG. 7 each fixed computation interval t.sub.x
includes three consecutive subintervals t.sub.A, t.sub.B, t.sub.C
during which the amplitudes for three notes are computed
separately. Each of these subintervals includes 16 shorter
intervals t.sub.c '.sub.p ' during which the individual Fourier
components associated with the respective notes are calculated. For
example, if the chord C.sub.6, E.sub.6, G.sub.6 is played, the
C.sub.6 amplitude may be computed during the interval t.sub.A, and
the E.sub.6 and G.sub.6 amplitudes computed during the t.sub.B and
t.sub.C intervals respectively.
Harmonic limiting of the type described herein then may be utilized
independently during each subinterval t.sub.A, t.sub.B, t.sub.C to
inhibit calculation of harmonics above the respective L value for
the selected notes. Thus for the chord C.sub.6, E.sub.6, G.sub.6,
the harmonic limiting circuitry will inhibit Fourier component
calculation after evaluation of the L = 12, L = 9 and L = 8
components respectively during the intervals t.sub.A, t.sub.B and
t.sub.C, as indicated in FIG. 7.
FIG. 8 shows how harmonic limiting may be applied to a COMPUTOR
ORGAN USING PARALLEL PROCESSING such as that shown in the above
mentioned patent application Ser. No. 298,365. In the illustrated
system 90, the odd-valued Fourier components (n = 1,3,5,...) are
calculated in a first processing channel 91, and the even harmonics
(n = 2,4,6,...) concurrently are calculated in a parallel
processing channel 92. The individual components evaluated in the
channels 91 and 92 are summed in an adder circuit 93 and supplied
via a line 33' to an accumulator 13, digital-to-analog converter 16
and sound system 11 like that of FIG. 1. Note selection is
accomplished by keyboard or pedal switches 12 cooperating with a
frequency number memory 17' which supplies the selected R numbers
via a line 94 to both processing channels 91, 92.
The memory 17' may contain the L number itself, or some other coded
designation associated with this L number. When a note is selected
at the keyboard switches 12, the designation code is supplied via a
line 95 to a harmonic limit memory 96 advantageously implemented by
a Signetics type 8223 integrated circuit read-only-memory or like
device. The designation code causes the access control circuitry
96a to read out from the memory 96 the stored contents specifying
the highest order odd (L.sub.odd) and highest order even
(L.sub.even) Fourier component to be calculated. These values are
supplied via the respective lines 97, 98 to appropriate comparators
99, 100 associated with the respective processing channels 91, 92.
The comparator 99 compares the value L.sub.odd with a signal
supplied via a line 101 indicating which component presently is
being calculated in the channel 91. When coincidence is obtained,
the comparator 99 causes an inhibit circuit 102 to prevent
calculation by the channel 91 of all higher order odd Fourier
components. The comparator 100 and the inhibit circuit 103 function
in like manner for the channel 92.
By way of example, an arbitrary designation code "0001" may be
stored in the memory 17' together with the R numbers associated
with the notes C.sub.7, B.sub.6 and A.sub.#.sub.6. When one of
these notes is played, the code "0001" will be supplied to the
memory access control 96a, causing readout from a certain storage
location in the memory 96. This location advantageously contains
the values L.sub.odd = 5 and L.sub.even = 6. Accordingly,
calculations in the channels 91 and 92 will be inhibited
respectively after evaluation of the 5.sup.th and 6.sup.th Fourier
components, exactly as required for the illustrative L values of
Table I. Intending to claim all novel, useful and unobvious
features shown or described, the inventor makes the following
claims.
* * * * *