U.S. patent number 3,809,786 [Application Number 05/225,883] was granted by the patent office on 1974-05-07 for computor organ.
This patent grant is currently assigned to Deutsch Research Laboratories, Ltd.. Invention is credited to Ralph Deutsch.
United States Patent |
3,809,786 |
Deutsch |
May 7, 1974 |
**Please see images for:
( Certificate of Correction ) ** |
COMPUTOR ORGAN
Abstract
Musical notes are produced in a computor organ or like musical
instrument by computing the amplitudes at succesive sample points
of a complex waveshape and converting these amplitudes to notes as
the computations are carried out. A discrete Fourier algorithm is
implemented to compute each amplitude from a stored set of harmonic
coefficients C.sub.n and a selected frequency number R, generally a
non-integer, establishing the waveshape period. The computations,
preferably digital, occur at regular time intervals t.sub.x
independent of the waveshape period. At each interval t.sub.x the
number R is added to the contents of a harmonic interval adder to
specify the waveshape sample point gR, where g = 1,2,3.... For each
point gR, W individual harmonic component values sin C.sub.n
sin.pi./WngR are calculated, where n = 1,2,3..., W. These values
are algebraically summed to obtain the waveshape amplitude, which
is supplied to a digital-to-analog converter and a sound system for
reproduction of the generated musical note. Attack, decay and other
note amplitude modulation effects are obtained by programmatically
scaling the harmonic coefficients. Foundation and mutation stops
are implemented by appropriate selection of the stored harmonic
coefficient values. Multiple voices are produced by adding the
harmonic coefficients associated with each selected stop. In a
polyphonic system, time sharing and multiplexing may be used to
calculate separately the sample point amplitudes for each selected
note, these amplitudes being combined to reproduce the resultant
musical sound.
Inventors: |
Deutsch; Ralph (Sherman Oaks,
CA) |
Assignee: |
Deutsch Research Laboratories,
Ltd. (Sherman Oaks, CA)
|
Family
ID: |
22846660 |
Appl.
No.: |
05/225,883 |
Filed: |
February 14, 1972 |
Current U.S.
Class: |
84/608; 84/617;
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.24
;340/172.5 |
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
Intending to claim all novel, useful and unobvious features shown
or
1. A musical instrument wherein the amplitudes at successive sample
points of a musical waveshape are computed at certain regular time
intervals, comprising:
a memory storing a set of harmonic coefficients each specifying the
relative amplitude of a respective one of a set of sinusoidal
harmonic components which constitute said musical waveshape,
means, operative during each regular time interval, for separately
evaluating each of said harmonic components by multiplying the
coefficient value for that harmonic component, accessed from said
memory, by a sinusoid value associated with that component at each
sample point, the argument of said sinusoid value being the product
of a number designating said sample point times the order of said
harmonic component,
means for accumulating said evaluated harmonic components to obtain
the waveshape amplitude at each sample point, and
2. A musical instrument according to claim 1 further
comprising;
means for selecting a number indicative of the interval between
successive sample points,
a note interval adder, operative each successive amplitude
computation time interval, to add said selected number to the sum
previously contained in said note interval adder, the resultant
contents of said note interval adder representing said sample point
designating number, and
means for obtaining said sinusoid values in response to the
contents of said note interval adder, said sinusoid values being
provided to said
3. A musical instrument according to claim 2 wherein said means for
obtaining comprises;
a harmonic interval adder cleared before each amplitude computation
time interval and operative during said time interval repeatedly to
add the contents of said note interval adder to the sum previously
in said harmonic interval adder, the contents of said harmonic
interval adder representing said arguments,
a sinusoid table, and
sinusoid table accessing circuitry for accessing from said table
the sinusoid values corresponding to the arguments developed in
said harmonic
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:
first means for computing the generalized Fourier components of a
periodic complex waveshape at successive sample points, said
Fourier components being computed separately for each sample point,
said computations occurring at a clock rate independent of the
period of said waveshape,
accumulator means for algebraically adding, the component values
computed by said first means to obtain the waveshape amplitude at
said each sample point, and
means for providing musical notes from the waveshape amplitudes
obtained in said accumulator means, and wherein said first means
comprises:
note selection means for selecting a frequency number establishing
the separation between successive sample points, said number
thereby establishing the period of the resultant musical note,
a note interval adder, operative during each successive amplitude
computation, to add said selected number of the sum previously
contained in said note interval adder, the resultant contents of
said note interval adder representing the sample point for which
said waveshape amplitude is computed,
means for obtaining a trigonometric value, the argument of said
trigonometric value being the product of the said sample point
designated by the contents of said note interval adder times the
order of said harmonic component,
a harmonic coefficient memory storing values designating the
relative amplitude of each harmonic component,
a multiplier for multiplying each obtained trigonometric value by
the corresponding relative amplitude value accessed from said
harmonic coefficient memory, the products of such multiplication
being the calculated harmonic component values which are added by
said accumulator
6. A musical instrument comprising:
first means for computing at regular time intervals t.sub.x the
amplitudes X.sub.o (gR) of a waveshape, where q is an integer
incremented each time interval t.sub.x, in accordance with the
relationship ##SPC4##
where n = 1,2,3,...W and W is the number of harmonic components
defining said waveshape, C.sub.n is the coefficient of the
corresponding n.sup.th harmonic component, and R is a number
specifying the period of said waveshape, said first means
comprising:
a memory storing said harmonic coefficients C.sub.n,
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 component evaluation circuitry utilizing said memory and
said table to calculate F.sup.(n) =C.sub.n sin(.pi./W)nqR for each
of the W harmonic components in accordance with a selected value R,
and
an accumulator for algebraically summing the calculated values
F.sup.(n), and
second means responsive to said first means for providing musical
notes
7. A musical instrument according to claim 6 wherein said harmonic
component evaluation circuitry comprises;
a note interval adder for adding said selected value R to the
previous contents of said note interval adder at the beginning of
each time interval t.sub.x, the contents of said note interval
adder thereby representing gR,
sin calculation circuitry responsive to the contents of said note
interval adder for calculating the term sin (.pi./W) nqR for n =
1,2,3...,W and
a harmonic amplitude multiplier for multiplying each such
calculated term sin (.pi./W) nqR by the coefficient C.sub.n for the
corresponding n.sup.th harmonic component, the products of such
multiplication being supplied to
8. A musical instrument according to claim 7 wherein said sin
calculation circuitry comprises;
a harmonic interval adder, cleared at the beginning of each time
interval t.sub.x, for repetitively adding the value qR obtained
from said note interval adder to the previous contents of said
harmonic interval adder, the contents of said harmonic interval
adder thereby representing nqR where n equals the number of such
repetitive additions since the beginning of each time interval
t.sub.x,
wherein said sinusoid table memory is addressed by the argument
KnqR where K is a constant, and
a memory address decoder for addressing said sinusoid table memory
in response to the value nqR contained in said harmonic interval
adder, to access from said sinusoid table memory the corresponding
stored value
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 t.sub.x ' .ltoreq. t.sub.x
12. A musical instrument according to claim 6 further
comprising;
a frequency number memory storing values of R,
note selection switches, and
a multiplexer accessing from said memory, on a time shared basis
for use by said first means for computing, values of R selected by
said switches.
13. A musical instrument according to claim 12 wherein f.sub.H is
the frequency of the highest musical note selectable by said note
selection switches, wherein N.sub.H is the number of amplitudes
X.sub.o (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 X.sub.o (qR) in a
time interval t.sub.x = (1/N.sub.H fH).
14. A musical instrument according to claim 13 further comprising
gating circuitry enabling said second means at each time interval
t.sub.x = 1/N.sub.H f.sub.H) to convert said amplitude X.sub.o (qR)
computed for the
15. A musical instrument according to claim 14, said instrument
being monophonic, each of said amplitudes X.sub.o (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;
a frequency number memory storing selectable values of R, at least
some of which are non-integers, chosen to produce notes in an
equally tempered musical scale,
note selection switches, and
circuitry for accessing from said frequency number memory the
values of R selected by said switches for utilization by said first
means for
18. A musical instrument according to claim 6 further comprising a
scaler, cooperating with said first means, for scaling the values
C.sub.n during
19. A musical instrument according to claim 18 wherein said scaler
is operative to scale said values C.sub.n 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:
first and second memories respectively storing different sets of
harmonic coefficients selected to produce notes of first and second
tonal quality, and
first and second stop tab switches for selecting respectively
whether said first or second memory is used by said harmonic
component evaluation
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:
a scale factor memory,
program control circuitry operative during note production to
access certain scale factors from said scale factor memory, and
a coefficient scaler for scaling said harmonic coefficients by
amounts specified by said accessed scale factors, and for supplying
the scaled harmonic coefficients to said harmonic component
evaluation circuitry for
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:
a first memory storing a first set of harmonic coefficients having
non-zero values for harmonics of certain frequencies,
a second memory storing a second set of harmonic coefficients
having non-zero values only for the harmonics of twice said certain
frequencies,
a first stop tab switch and circuitry for providing said first set
of harmonic coefficients to said generation means when said first
stop tab switch is closed, and
a second stop tab switch and circuitry for providing said second
set of harmonic coefficients to said generation means when said
second stop tab switch is closed, utilization of said second set of
coefficients to compute said waveshape amplitudes producing notes
of like tonal quality but twice the fundamental frequency of notes
produced by utilization of
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:
one memory storing one set of harmonic coefficients having non-zero
values for harmonics of certain frequencies including the
fundamental, said values being selected so that utilization of said
one set of coefficients produces notes having the tonal quality of
a particular 8 foot organ pipe,
another memory storing another set of harmonic coefficients having
like, non-zero values only for the harmonics of i = 2,3,4,5, or 8
times said certain frequencies,
stop tab switches and circuitry for selectively providing said one
or said other set of harmonic coefficients respectively to said
generation means, utilization of said other set of coefficients to
compute said waveshape amplitudes producing notes having said
particular organ pipe tonal quality but of 4 feet, 2 2/3 feet, 2
feet, 1 3/5 feet, or 1 foot rank respectively for i = 2,3,4,5, and
8.
Description
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 C.sub.7, D.sub..sub.#6 or C.sub.6
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 t.sub.x,
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 C.sub.n 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 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.
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 C.sub.n specifies the relative
amplitude of the respective n.sup.th harmonic component. For the
tibia sound of FIG. 3A, the coefficient C.sub.3 will be slightly
less than the coefficient C.sub.1, 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 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 during successive time
intervals t.sub.c = t.sub.x /W as illustrated by the timing diagram
of FIG. 3B. At the first interval t.sub.c = 1 the amplitude
F.sup.(1) of the first harmonic (n = 1) is calculated. This value
F.sup.(1) is placed in an accumulator 16 (FIG. 1). At the interval
t.sub.c = 2 the second harmonic amplitude F.sup.(2) is computed and
added to the accumulator 16 contents. In the case of the 8 feet
tibia F.sup.(2) = 0. At time t.sub.c = 3 the third harmonic
amplitude F.sup.(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 X.sub.o (qR) for
the sample point designated by the value qR.
At the end of the computation interval t.sub.x = Wt.sub.c the
waveshape amplitude X.sub.o (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.sup.(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 t.sub.c 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 t.sub.x. The
t.sub.x 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 t.sub.x, 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
t.sub.c. The harmonic interval adder 28 is cleared before each
computation cycle, so that at time t.sub.c = 1 the contents of the
harmonic interval adder 28 will be qR. For the second timing
interval t.sub.c = 2 the adder 28 contents will be 2qR. Thus the
harmonic interval adder 28 will contain the value nqR for the
n.sup.th harmonic component currently being evaluated. Preferably
the harmonic interval adder 28 also is of modulo N.
The value sin (.pi./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 (.pi./W)
.phi. for 0.ltoreq..phi..ltoreq.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
(.pi./W) nqR corresponding to the argument nqR received from the
harmonic interval adder 28.
The value sin (.pi./W) nqR, supplied via a line 32, is multiplied
by the coefficient C.sub.n for the corresponding n.sup.th harmonic
by a multiplier 33. The multiplication product represents the
amplitude F.sup.(n) of n.sup.th harmonic component and is supplied
via a line 34 to the accumulator 16.
The appropriate coefficient C.sub.n is accessed from the harmonic
coefficient memory 15 by an address control unit 35 synchronized to
the clock pulses t.sub.c. The memory 15 may comprise an end-around
shift register containing the values C.sub.n in consecutive order
and shifted by the control unit 35 upon each occurrence of a clock
pulse t.sub.c.
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 t.sub.x, 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 t.sub.x 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.sup.(1) of the first harmonic component.
Block 48 -- The timing pulse t.sub.c 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 (.pi./W) nqR in the sinusoid table 29.
Blocks 50 and 51 -- The clock pulse t.sub.c 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 C.sub.n associated
with the n.sup.th harmonic.
Blocks 52 and 53 -- The harmonic amplitude multiplier 33 is used to
calculate the amplitude F.sup.(n) of the n.sup.th 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 X.sub.o (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 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 1 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 I
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
using the illustrative values of Table I, the computation time
interval t.sub.x is 14.9 microseconds, as evaluated using t.sub.x =
1/Nf.sub.H. If W harmonic components are calculated for each sample
point, then the frequency f.sub.c of the clock 20 is given by:
f.sub.c = 1/t.sub.c = W/t.sub.x = WNf.sub.H (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 (.pi./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.sub..sub.#6, G.sub.6 and C.sub.7
for several timing intervals between t.sub.x = 1 and t.sub.x =
45.
TABLE II
Computation qR Interval t.sub.x A .sub.6 G.sub.6 C.sub.7 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
C.sub.7 is computed in exactly 32 intervals t.sub.x, as illustrated
in FIG. 3. For the note C.sub.7, the modulo N note interval adder
25 "resets" exactly to zero at the interval t.sub.x = 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.sub..sub.#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.sub..sub.#6. The amplitude 59 at the first
sample point (t.sub.x = 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
C.sub.n. 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 ST.sub.b 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 ST.sub.a
and the diapason stop tab ST.sub.b 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 ST.sub.c is selected but the bourdon stop tab ST.sub.d is not
selected, a gate 64 is enabled to supply the values C.sub.n from
the memory 15c to the multiplier 33. A flute sound results. When
only the bourdon stop tab ST.sub.d 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 ST.sub.a, ST.sub.b with one or both stops ST.sub.c,
ST.sub.d.
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 C.sub.n 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 C.sub.n 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 C.sub.n 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 ST.sub.e. 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 t.sub.x 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 t.sub.x 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
t.sub.x 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 t.sub.x, 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 t.sub.x.
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 t.sub.c (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 (.pi./W) nqR from a sinusoid table 29' for
input to a harmonic amplitude multiplier 33'. Simultaneously, the
appropriate coefficients C.sub.n 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.sup.(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 (.pi./W)
nqR are provided to the multiplier 33', which simultaneously
receives harmonic coefficients C.sub.n from a channel B harmonic
coefficient memory 15B'. The computed harmonic component amplitudes
F.sup.(n) for the channel B note are supplied by the multiplier 33'
to the accumulator 16' in unison with the clock pulses t.sub.C (B)
shown in FIG. 7.
The pulse t.sub.x (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 t.sub.x may be
the same as in the embodiment of FIG. 1. If the amplitudes for M
notes are computed during each interval t.sub.x, the basic clock
interval for the computor organ 80 is t.sub.c ' = t.sub.c /M where
t.sub.c is as specificed for the computor organ 10. The clock 20'
provides such pulses t.sub.c ' to the counter 22' which is of
modulo (N/2 .times. M).
Appropriate outputs from the counter 22' provide the signals
t.sub.c (A) and t.sub.c (B) used to time harmonic component
calculations in the respective A and B channels. The counter 22'
also provides outputs t.sub.x (A) and t.sub.x (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
.times. M) clock times t.sub.c ', and provides a computation
interval pulse t.sub.x 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 B.sub.2 is
selected with a 4' stop, the note which actually must be produced
is (2 .times. B.sub.2) = B.sub.3. 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 C.sub.1 and
C.sub.3 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 C.sub.2 and C.sub.6 are non-zero
(see Table III). When this set is selected, depression of the
B.sub.2 key will produce a B.sub.3 sound having tibia tonal
quality, exactly as required. Similarly, a 2 foot tibia sound
results from use of non-zero coefficients C.sub.4 and C.sub.12 with
all other values of C.sub.n equal to zero.
A one foot tibia tone is achieved using a single non-zero
coefficient C.sub.8. The third harmonic coefficient for the 1 foot
tibia would be the value C.sub.24, 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 C.sub.3 and C.sub.9 are non-zero
and in which the coefficients C.sub.5 and C.sub.15 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##
* * * * *