Language selection

Search

Patent 1215869 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent: (11) CA 1215869
(21) Application Number: 446482
(54) English Title: WAVETABLE-MODIFICATION INSTRUMENT AND METHOD FOR GENERATING MUSICAL SOUND
(54) French Title: INSTRUMENT ET METHODE DE GENERATION DE SONS MUSICAUX PAR RETROACTION
Status: Expired
Bibliographic Data
(52) Canadian Patent Classification (CPC):
  • 84/1.1
(51) International Patent Classification (IPC):
  • G10H 1/00 (2006.01)
  • G10H 7/02 (2006.01)
(72) Inventors :
  • STRONG, ALEXANDER R. (United States of America)
  • KARPLUS, KEVIN J. (United States of America)
(73) Owners :
  • BOARD OF TRUSTEES OF THE LELAND STANFORD JUNIOR UNIVERSITY (United States of America)
(71) Applicants :
(74) Agent: GOWLING LAFLEUR HENDERSON LLP
(74) Associate agent:
(45) Issued: 1986-12-30
(22) Filed Date: 1984-01-31
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data:
Application No. Country/Territory Date
463,270 United States of America 1983-02-02

Abstracts

English Abstract


ABSTRACT
A musical instrument employing a wavetable-modification
method of producing musical sound. A wavetable which is
periodically accessed to provide an output signal which
determines the musical sound. The output signal from
the wavetable is modified and stored back into the
wavetable as modified data. The modified data, after a
delay, is accessed from the wavetable and thereby
becomes a new output signal. This process is
periodically repeated whereby each new output signal is
modified and stored back into the wavetable to produce
rich and natural musical sound.


Claims

Note: Claims are shown in the official language in which they were submitted.



What is claimed is:
1. A musical instrument for producing musical
sound comprising,
input means for specifying a musical sound to
be generated,
wavetable-modification generator means for
generating by wavetable modification an output signal
representing the musical sound to be produced,
an output unit responsive to said output
signal to produce the musical sound.

2. The instrument of Claim 1 wherein said
wavetable modification generator means includes a
wavetable unit for cyclically storing data values for a
delay period N, includes a modifier unit for combining
two or more delayed data values from said wavetable unit
to form a modified data value, and includes means for
storing the modified data value back into the wavetable
unit for subsequent delay by the period N where the
modified data value forms the output signal.

3. The instrument of Claim 2 wherein said
modifier unit includes an arithmetic unit for summing
said two different data values from said wavetable unit
and for dividing the summed data value by a number
greater than unity to form said modified data value.

4. The instrument of Claim 3 wherein said number
greater than unity is 2 whereby said two or more delayed
data values from said wavetable unit are averaged.

-60-


5. The instrument of Claim 2 wherein said
modified data value has an amplitude yn at a sample time
n where yn is given as follows,

yn = xn + [yn-N + yn-(N+1)]/2

where yn-N is the data value output from the
wavetable after delay of N and where yn-(N+1) is the
data value output from the wavetable after a delay of
N 1 and where xn is an input data value at sample time
n having a signal amplitude initially loaded into the
wavetable.

6. The instrument of Claim 5 wherein said output
signal is the modified data value having the amplitude
yn.
7. The instrument of Claim 5 wherein said
wavetable unit is a random access memory, wherein the
modified data value, yn, is stored in said memory at a
Write Pointer address and wherein the data value yn-N is
stored in said memory at a Read Pointer address, and
wherein said Write Pointer address and said Read Pointer
address are offset by a number of addresses equal to the
delay period N,

8. The instrument of Claim 7 wherein the data
value yn-(N+1) is stored in said memory at a Read
Pointer +1 address which is offset from said Read
Pointer address by +1.

9. The instrument of Claim 5 wherein the values
of xn stored in said wavetable represent "white noise".

-61-

10. The instrument of Claim 9 wherein said values
of xn are given as follows:

xn Aun, when n=0,1,2,...,(N 1)
xn 0, when n?N

where un is determined as +1 or -1 as a
function of the output of a random number generator and
where A is some amplitude.

11. The instrument of Claim 5 including control
means for producing the values of yn for the output
signal at a sampling frequency, fs, and wherein the
pitch of the fundamental frequency of the sound produced
is equal to fs/(N+?).

12. The instrument of Claim 7 including means for
storing said Write Pointer address, means for storing
the delay period N as an address offset, means for
calculating said Read Pointer address by summing said
Write Pointer address and N, and means for sequentially
changing said Write Pointer address to a new address for
each value of yn stored.

13. The instrument of Claim 12 wherein means for
sequentially changing said Write Pointer address
includes means for decrementing said Write Pointer
address.

-62-

14. The instrument of Claim 7 including means for
storing said Write Pointer address, means for storing
said Read Pointer address offset by an integer
proportioned to N from said Write Pointer address, and
means for sequentially changing said Write Pointer
address and said Read Pointer address whereby the offset
between said Write Pointer address and Read Pointer
address remains the same.

15. The instrument of Claim 2 wherein said
generator means includes means for generating modified
data values at a sampling frequency.

16. The instrument of Claim 2 wherein said data
values are digital and wherein said output unit includes
a digital-to-analog converter, a low-pass filter, an
amplifier and a speaker for producing the musical sound
in response to said output signal.

17. The instrument of Claim 1 wherein said
wavetable modification generator generates musical sound
for a plurality of voices, wherein said input unit
includes means for specifying one or more of said
voices, wherein said wavetable modification generator
includes means for producing output signals representing
the sound for each of said voices by wavetable
modification, and wherein said output unit in response
to said output signals concurrently produces said
musical sounds for all of said voices.

-63-

18. The instrument of Claim 1 wherein said
wavetable modification generator means includes a
wavetable unit for cyclically storing data values for
each voice, each having a different delay period N,
includes a modifier unit for modifying two or more
delayed data values for each voice from said wavetable
unit to form a modified data value, for each voice from
said wavetable unit to form a modified data value for
each voice, and includes means for storing the modified
data value for each voice back into the wavetable unit
for subsequent delay by the corresponding period N where
the modified data value for each voice forms the output
signal.

19. The instrument of Claim 18 including means for
storing and updating a Write Pointer each cycle to
specify the location in the wavetable at which the
modified data value for each voice is is be stored, and
including means for storing a delay period N for each
voice, and means for determining a Read Pointer for each
voice to designate the location of the modified data
value for each voice in the wavetable memory.

20. The instrument of Claim 19 wherein said Write
Pointer is common for all of said voices and wherein
said generator includes means for adding the delay
number N for each voice to the Write Pointer to provide
the Read Pointer for each voice.

-64-


21. The instrument of Claim 20 wherein the
wavetable is a random access memory, wherein the
modified data value for each voice is stored in said
memory at a Write Pointer address unique to that
corresponding voice and wherein the delayed data values
are stored in memory locations determined by a Read
Pointer address for each voice and wherein said Write
Pointer and Read Pointer addresses for each voice are
offset by a number equal to the delay period N for each
voice.

22. The instrument of Claim 21 wherein the Write
Pointer address includes a low-order field for uniquely
identifying each different voice and includes a
high-order field for identifying the location within a
portion of the memory associated with the voice
identified in the corresponding low-order field.

23. The instrument of Claim 22 wherein said
generator includes means for decrementing said Write
Pointer each time a modified data value is stored at the
location specified by said Write Pointer.

24. The instrument of Claim 23 wherein the
sampling frequency, fs, is the same for each voice.

25. The instrument of Claim 24 including means for
providing said modified data values at a logic cycle
frequency which is the number of voices times fs.

-65-


26. The instrument of Claim 25 wherein the output
unit includes a digital-to-analog converter for
receiving each modified data value for each voice and
includes a low pass filter for filtering the analog
value from aid converter and wherein said converter
receives a new modified data value at said logic cycle
frequency whereby the output from said low pass filter
is a signal representing the musical sound for all of
the voices.

27. The instrument of Claim 18 including means for
storing a Write Pointer and means for storing a Read
Pointer for each voice, said Write Pointer having an
address offset from said Read Pointer for each voice by
the delay period N for each voice, respectively, and
including means for updating both said Write Pointer and
said Read Pointer concurrently for each voice whereby
the offset N between the Read Pointer and the Write
Pointer for each voice is maintained.

-66-

28. A musical instrument for producing musical
sound comprising,
input means for specifying a musical sound to
be generated,
wavetable-modification generator means
including a digital wavetable unit having a random
access memory for cyclically storing data values for a
delay period N, including a modifier unit having an
arithmetic unit for summing two ox more delayed data
values from said wavetable unit and for dividing the
summed data value by a number greater than unity to form
a modified data value, and including means for storing
the modified data value back into the memory for
subsequent delay by the period N where the modified data
value forms an output signal representing the musical
sound to be produced,
an output unit responsive to said output
signal to produce the musical sound.

29. The instrument of Claim 2 wherein said
modified data value has an amplitude yn at a sample time
n where yn is given as follows,

yn = xn + [yn-N + yn-(N+1)]/2

where yn-N is the data value output from the
wavetable after delay of N and where yn-(N+l) is the
data value output from the wavetable after a delay of
N + 1 and where xn is an input data value at sample time
n having a signal amplitude initially loaded into the
wavetable .

-67-

30. The instrument of Claim 29 including means for
storing the modified data value, yn, in said memory at a
Write Pointer address, including means for storing the
data value yn-N in said memory at a Read Pointer
address, including means for storing the data value
yn-(N+1) in said memory at a Read Pointer +1 address
which is offset from said Read Pointer address by +1 and
wherein said Write Pointer address and said Read Pointer
address are offset by a number of addresses equal to the
delay period N.

31. The instrument of Claim 30 wherein said values
of xn represent white noise and are given as follows:

xn = Aun, when n=0,1,2,...,(N?1)
Xn = 0, when n?N

where un is determined as +1 or -1 as a
function of the output of a random number generator and
where A is some amplitude.

32. The instrument of Claim 29 including control
means for producing the values of yn for the output
signal at a sampling frequency, fs, whereby the pitch of
the fundamental frequency of the sound produced is equal
to fs/(N+?).

33. The instrument of Claim 30 including means for
storing said Write Pointer address, means for storing
the delay period N as an address offset, means for
calculating said Read Pointer address by summing said
Write Pointer address and N, and means for sequentially
changing said Write Pointer address to a new address for
each value of yn stored.

-68-


34. The instrument of Claim 30 including means for
storing said Write Pointer address, means for storing
said Read Pointer address offset by an integer
proportional to N from said Write Pointer address, and
means for sequentially changing said Write Pointer
address and said Read Pointer address whereby the offset
between said Write Pointer address and Read Pointer
address remains substantially the same.

35. The instrument of Claim 28 wherein said
wavetable modification generator generates musical sound
for a plurality of voices, wherein said input unit
includes means for specifying one or more of said
voices, wherein said wavetable modification generator
includes means for producing output signals representing
the sound for each of said voices by wavetable
modification, and wherein said output unit in response
to said output signals concurrently produces said
musical sounds for all of said voices.

-69-


36. A wavetable-modification generator for use
with a musical instrument having an input unit for
specifying a musical sound to be generated and having an
output unit responsive to an output signal to produce
musical sound said generator comprising,
a digital wavetable unit having a random
access memory for cyclically storing data values for a
delay period N,
a modifier unit having an arithmetic unit for
summing two or more delayed data values from said
wavetable unit and for dividing the summed data value by
a number greater than unity to form a modified data
value, and
means for storing the modified data value back
into the memory for subsequent delay by the period N
where the modified data value forms said output signal
representing the musical sound to be produced.

37. The generator of Claim 36 wherein said
modified data value has an amplitude yn at a sample time
n where yn is given as follows,

yn = xn + [yn-N + yn-(N+1)]/2

where yn-N is the data value output from the
wavetable after delay of N and where yn-(N+1) is the
data value output from the wavetable after a delay of
N + 1 and where xn is an input data value at sample time
n having a signal amplitude initially loaded into the
wavetable.

38. The instrument of Claim 28 including control
means connected to said modifier unit for altering the
manner in which said modified data value is formed.

-70-


39. The instrument of Claim 29 wherein said
control means includes a random number generator
connected to control the selection of said delayed data
values in accordance with a predetermined statistical
probability.

40. A method of producing musical sound compris-
ing,
specifying with input means a musical sound to
be generated,
generating by wavetable modification an output
signal representing the musical sound to be produced,
producing the musical sound in an output unit
responsive to said output signal.

-71-

Description

Note: Descriptions are shown in the official language in which they were submitted.



I




W~VETABLE~MODIFICATION INSTRUMENT
AND METHOD Lowry GENERATING MUSICAL SOUND
Inventors. Alexander Robert strong
and Kevin John Karplus

BACRGROIJND OF THE INVENTION

This invention relates to musical instruments and more
specifically to digitally controlled electronic incitory
mints and methods for generating musical sound.

Digitally controlled methods of generating musical sound
operate my producing a sequence of digital numbers which
are converted to electrical analog signals. The analog
signals are amplified to produce musical sound through a
conventional speaker Musical instruments which employ
digital control are constructed with a keyboard or other
input device and with digital electronic circuits
responsive to the keyboard. The electronic circuits
digitally process signals in response to the keyboard
and digitally generate oscillations which form the sound
in the speaker These digitally generated oscillations
are distinguished from oscillations generated by analog
oscillators and are distinguished from mechanically in-
duped oscillations produced by conventional orchestral
and other type instruments

STFD2/WAV
STAN 3411 Delta (S80-20
83/01/~7

All musical sounds, whether of electronic or mechanical
origin, can be described by Fourier spectra. The
Fourier spectra describes musical wound in terms of its
component frequencies which art represented as sinus-
oils. the whole musical sound is wherefore, a sum of
the component frequencies, that is, a gum of sinusoids.

Under Fourier analysis, Jones are classified as harmonic
or inharmonic A harmonic Cowan is periodic and can he
represented by a sum of sinusoids having frequencies
which are integral multiples of a fundamental frequency.
The fundamental frequency is the pitch of the tone.
Harmonic instruments of the orchestra include the
strings, the brasses, and the woodwinds. An inharmonic
tone is not periodic, although it often can be repro
sensed by a sum of sinusoids. The frequencies compare-
sing an inharmonic tone, however, usually do not have
any simple relationship. Inharmonic instruments do not
normally have any pitch associated with them. Incitory-
mints in the orchestra thaw are inharmonic include the
percussion instruments, such as the bass drum, the snare
drum, the cymbal and others.

Electronically controlled musical instruments have
relied upon forming selected Fourier spectra as a basis
for producing musical sound. One known type of digital
musical instrument employs a harmonic summation method
of music generation. In the harmonic summation method,
a tone is produced by adding (or subtracting) a number
of amplitude-scaled sinusoids of different frequencies.
The harmonic summation method, however, requires a
complex addition (or subtraction process to form each
sample. That process require digital circuitry which
is both expensive and inflexible. Accordingly, the
digital design necessary to carry out the method of

STFD2/WAV
STAN 3411 DEL/A (S80-20) -2-
83/01/27

harmonic summation is computational complex and leaves
much to be desirer

Another known type of musical instrument employs the
filtering method of music generation. In the filtering
method, a complex electrical waveform, such as a square
wave or a saw-tooth pulse train, is filtered by one or
more filters to select the desired frequency components.
Thereafter, the filtered frequency components are
combined to form the electrical signal which drives the
speaker. The filtering method is commonly used to
synthesize human speech and has often been used with
analog electronic organs. The filtering method is
comparatively inflexible since each sample relies upon
the stored values of fixed samples In order to achieve
natural sound, the filtering method requires a large
number of multiplication steps which are economically
expensive to achieve.




Both the harmonic summation and the filtering methods
rely upon a linear combination of sinusoids and, hence J
they are characterized as linear methods for generating
musical sound. The linear property is apparent from the
fact that multiplying the amplitude of the input lung-
lion (sinusoids for harmonic summation or a pulse train
for filtering by a factor of two results in an output
waveform with the same tone quality and with an amply-
tune multiplied by a factor of two.

United States Patent 4,018,121 entitled "METRO OF
SYNTHESIZING A MUSICAL SOUND" to Crowning describes a
non-linear method for generating musical sound That
nonlinear method employs a closed-form expression (based
upon frequency modulation) to represent the sum of an
infinite number of sinusoids. That non-linear frequency

STFD2/WAV
STAN 3411 DEL/A (S80-20~ -3-
83/01~27

I Lo
modulation method produces a number of sinusoids which
have frequencies. which are the sum ox the carries
frequency and integral multiples of the modulation
frequency. The amply uses of the multiples of the
modulation frequency are sums of easily functions. The
nonlinear frequency modulation method of Crowning is an
improvement over previously used linear harmonic sum-
motion and filtering methods, and has found commercial
application in music synthesizers.

United Staves Patent 4,215,617 entitled "MUSICAL INCITORY-
MINT AND METHOD FOR GENERATING MUSICAL SOUND" to Moorer
describes improved non-linear methods of musical sound
generation in which the amplitudes of frequency combo-
newts are not constrained to the Bessel functions and in
which finite spectra can be utilized, that is, spectra
composed ox the sum of a finite number of sinusoid.

While many linear and nonlinear methods, like those
described above, have been used with success for digital
musical synthesis, they all have required fast and
complex computational capability in order to achieve
rich, natural sounds. Such fast and complex compute-
tonal capability results in musical instruments of high
cost and complexity. This high cost and complexity has
impeded the widespread availability of digital Cynthia-

skis .

Accordingly, there is a need for improved musical instruments employing digital synthesis which can be
used with digital circuits requiring slower and less
complex computational capability than that required by
prior techniques, but which still produce rich and
natural sounds. There is also a need for improved
digital music synthesizers which can be constructed

STFD2/WAV
STAN 3411 DEL/A (S30-20) -4-
83/01/27

LO I I
using conventional computer processors and conventional
semiconductor chip technology.

In accordance with the above background, it it an
objective of the present invention to provide an imp
proved musical instrument and method of generating rich
and natural musical sounds utilizing simple and convent
tonal digital circuitry which does not require compute-
tonal complexity

SUMMARY OF TIE INVENTION
. _ _

The present invention is a musical instrument and method
employing wavetable-modification for producing musical
sound. The musical instrument includes a keyboard or
other input device, a wavetable-modification generator
for producing digital signals by wave table modification,
and an output device for converting the digital signals
into musical sound.

The generator includes a wave table which is periodically
accessed to provide an output signal which determines
the musical sound. The output signal from the wave table
is modified and stored back into the wave table as
modified data. The modified data, after a delay, is
accessed from the wave table and thereby becomes a new
output sunnily This process is periodically repeated
whereby each new output signal is modified and stored
back into the wave table. The new output signals are
thus generated by wave table modification, in accordance
with the present invention, and are used to produce rich
and natural musical sound.

In accordance with the present invention, at any time,
t, the modified signal, ye, which is stored back into

STFD2/WAV
STAN 3411 DEL/A (S80-20) I
83/01/27

the wave table is a function of the original contents of
the wave table, it, and a modification component, my.
~hereforeO the signal ye is a function of it and my as
follows:

Ye = fit my)

In digital sample embodiment, the nth sample Of Ye it
given as ye. Using the delay operator 9 dun, for a
wave table exhibiting a delay of N cycles, when Yin is a
function of the nth value, on, of it and the delayed
value Of Yin given by d Yin times the modification
component m as given in the following equation:

Yin Ion d Ynmn)

In accordance with one embodiment of the type suitable
for generating plucked-string sounds, the modification
performed to generate the next modified value, Yin, is an
average of a first delayed output Yin N and the previous
delayed output Yn-(N+1)

In the plucked string embodiment, the modified nth value
to be tired back into the wave table is given as
follows:
y = x + [Yin N + Yin (N+1)]/2
where:
On = nth sample from wave table where
On is equal to O for n greater than (Nil)
Yin = modified output at nth sample

STUD 2 WOVE
STAN 3411 DEL/A (S80-20) -6-
83/01/27

N wave table delay (approximately thy
desired pitch period of the note in
samples)

Yin = sample delayed by N

Yin (Nil) = sample delayed by No
In the plucked string embodiment, the modification it
implemented, for example, as a simple addition and
binary shift (divide-by-~wo) of data stored in a
wave table r The location ox data in the wave table, in
one distal memory embodiment, is determined by memory
address pointers. A Read Pointer specifies the location
of the delayed sample, Yin My A "Read Pointer + Al is
offset from the Read Pointer by one and specifies the
location of the delayed sample Yn_~N+1).
value, Yin, is stored into the wave table at a location
specified by a Write Pointer. The Write Pointer is
offset from the Read Pointer by the pitch delay No

In a multi-voice embodiment, the pitch delay N is
typically different for each voice. A Read Pointer and
a Write Pointer are determined for each voice.

The wavetabl2-modification method of the present
invention achieves the objective of providing an
improved digital instrument which can be implemented
with low computational requirements

The foregoing and other objects, features and advantages
of the invention will be apparent from the following
more particular description of preferred embodiments of
the invention as illustrated in the accompanying
drawings.

STFD2/WAV
STAN 3411 DEL/A (S80-20) -7-
83/01/27



Fig, 1 depicts an electrical block diagram of a musical
instrument incorporating the present invention.

Fig 2 depicts an expanded electrical block diagram of
the Fig. 1 musical instrument.

Fig 3 depicts a schematic electrical block diagram of
the modifier unit which forms a portion of the
wavetable-modifieation generator in the Fig. 2 musical
instrument.

Fig. 4 depicts a graph of the amplitude versus frequency
of the output signal during the first fifteen periods
for a typical note of musical instrument of the Fig. 2
and Fig. 3 type.

Fig. 5 depicts an electrical block diagram of one
embodiment of the present invention which is constructed
utiiizin~ a DIGITAL semiconductor chip.

Fig. 6 depicts a schematic electrical block diagram of
the DIGITAL chip employed in the Fig. 5 musical
instrument.




STFD2/WAV
STAN 3411 DEL/A (S80-20) -8-
83/01/27

So

' Do Lo D~6C~ Ox

In Fig. 19 a digital synthesizer musical instrument is
shown. The instrument includes an input unit 2 which
specifies a musical wound to be generated, a
wavetable-modification generator 3 for generating
signals representing the sound Jo be produced and an
output unit 4 for producing the desired sound,

In Fig. I, further details of the Fig 1 instrument are
shown. The input unit 2 typically includes a keyboard 5
which connects electrical signals to an interface JO
The keyboard 5 is of conventional design and produce
electrical signals representing, among other things,
which keys are depressed. While keyboard 5 is a typical
device for specifying notes to be played, any other type
of input for specifying a note to be played can be
employed. Additionally, the input unit 2 typically
includes means for specifying the force (amplitude) of
the note and the duration of the note to be played.

The interface unit 6 encodes the keyboard information
(pitch, amplitude, and duration) and transmits it to the
control unit of the wavetable-modification generator 3.
The generator 3, in response to the signals from the
input unit 2, generates a signal on the output bus 8
which in turn connects to the output unit 4. The output
unit 4 converts the signal on hut 8 to the desired
musical sound. Typically 9 the output unit 4 includes a
digital-to-analog converter 9. Analog signals output
from the converter 9 connect through a Lopez filter
10 and an amplifier 11 to a speaker 12. The speaker 12
produces the desired musical sound.


STFD2/WAV
STAN 3411 DEL/A (S80-20) -9-
83/01/27

,.

In Fig 2, the wavetable-modification generator 3
includes a wave table 13, a modifier unit 14 and a
control unit 15. The wave able 13 acts like a delay
device having a delay time, p. Modified signals from
modifier unit 14 are stored in wave table 13 where they
are delayed a period, p, before appearing on bus 16.
Output signals from the wave table on bus 16 are modified
in modifier unit 14 and stored in wettable 13~ In a
digital implementation, the delay time p, is
represented by N samples of data. As a digital device,
wave table 13 is a digital memory for storing N samples
of data. For values of time, t, less than pi the
wettable 13 stores initial values of it. For a digital
system, t is quantized into N values of n so that for
initial conditions, on has N initial values.

By way of background, the wave table 13, in the absence
of any modification in modification unit 14, will
generate an output signal Ye which is periodic with the
delay time, p. When the original contents in the delay
line are it, the output signal, ye, can be expressed as
follows:

Ye = Yip = It ~13

If time, t, is quantized to discrete values, n, and p
equals N values of n, where N is an integer, and on
represents N discrete values of it, then En. (1) can be
written as follows:

Yin = Yin on I

Because a modification is made by the modification unit
14, Ens. I and (2) do not apply to the output signal
utilized in the present invention.

STFD2/WAV
STAN 3411 DEL/A (S80-20) -10-
83/01/27


. UP
In accordance with the present invention, at any time,
t, the modified signal, Ye, which is stored back into
the wave table is a function of the original contents of
the wave table it, and a modification component, my.
Therefore, the signal Ye is a function of it and my as
given by the following En. I

y = fox m ) (3)

In a digital sample embodiment, the nth sample Of Ye is
given as Yin and using the delay operator, dun, for a
wave table exhibiting a delay of N cycles, Yin is a
function of the n value of on and the delayed value of
Yin given by dNyn times the modification factor my as
given in the following En. (4):

Yin - (On 9 d Ynmn)
In connection with En. (4), the maximum number of
samples stored for the value N can be any number. The
greater the number of samples, the lower the frequency
components which can be produced. In one example, 256
8-bit samples are stored. Also, many different types of
modification components, my, can be selected. For
simplicity and economy, however, it is desired to have
my computational simple One simple modification
component will be described in connection with the
generation of a plucked-string musical sound.

Plucked-Strin~ Sound
In Fig. 3, further details of a modifier unit 14 for
generating plucked string musical sounds are shown. The
unit 14 includes a delay 26 which delays the signal on
bus 16, Yin by one period of n. The output from the
delay 26 forms one input Yn-lN+l)~ on line 28 to an

STFD2/WAV
STAN 3411 DEL/A (S80-20
83/01/27


.

3L58~
arithmetic unit (All) 27~ The other input to the
arithmetic unit 27 is derived directly from the bus 16.
The arithmetic unit 27 adds the value on bus 16 to the
previous value on buy 16 (which is the output from delay
26~ and forms their sum. The shift input 29 to thy
arithmetic unit 27 causes the sum to be shifted one
binary hit, thereby dividing the sum by two.

Wit the modifier unit of fig. 3 connected in the
wavetable-modification generator 3 of Fig. I a plucked
string sound will be generated The wavetable-modific-
anion generator 3 in Fig. 2 wormed using the modifier
unit 14 of Fig 3 is analogous, in some ways, to a
digital filter. The digital filter in the form of
generator 3 simulates the string of a mechanically
vibrating stringed instrument. A short input signal to
the digital filter represents the "pluck" of the
"string" and excites the generator 3 to generate the
desired output signal during a subsequent decay period.
The output signal from the modifier unit 14 as it
appears on line 8 in Fig. 2 is given us follows:
..

Yin on Yin N Yin /2 15)
where I is the input signal amplitude at sample n, Yin
is the output amplitude at sample n, and N is the
desired pitch period (approximately of the note in
samples.

The basic plucked string sound is obtained by exciting
the generator 3, for example, with a short burst of
"white noise". A burst of white noise is attained by
selecting the values of on in En. (5) as follows:

On = Aunt when n=0,1,2,.,.,(N~1) (61)

STFD2/WAV
STAN 3411 DEL/A (S80-20) -12-
83/01/27

LS~6~ go
On = it when nun . ~Ç~1

where is the desired amplitude, and us has values
Al or -1 as a function of the output of a random number
genera or. The values of On for n equal to 0, 1, OWE
No ore stored in wave table 13 as initial values
existing prior to any modification by modifier unit 14.

Finally, the output Yin is utilized by the output device
4 in Fig. 2 to generate the sound beginning at the time
when n equals N.

Analysis of the Plucked String Sound
The input-output relation of En. l53 can be expressed
differently by means of "delay operator" notation. We
define the unit sample delay operator, d, by the
no Latin,
k




d on Ink I

where on is an arbitrary signal, and k is an integer.
Multiplying a signal by do delays the signal in time by
k samples. In these terms En. I becomes,
Yin = On ~dNyn + dun 1Yn~/2

= On d [(l+d)/2~yn. (8)
Solving En. (8) for the output signal Yin yields,

Yin = xn/[l-[ll~d)/2]d I. (9)

Linear delay-operator equations convert immediately to
z-transform equations by replacing each time signal by
its z-transform, and replacing d by z 1. Time signals

STFD2/W~V
STAN 3411 DEL/A (S80-20) -13-
83/01/27

!

such as on or Yin are denoted in lower case letters and
the corresponding transforms are denoted in upper case
letters, for example K or v.

The transfer function of a (linear time invariant)
digital filter is the z transform of the input The
transfer function of the plucked string simulator of
Fig.' 2 is found therefore by substituting 2 1 for d in
En. (9) and transposing as follows:
Ho = YUCCA Liz 1)/2]z N]
= 1/[1 [Ha(z~3[Hb~z)]]. ~10)
where,
Halt) = (1 + z I

Hb~z) = z

Ens. (9) and lo) describe one embodiment of the
wavetable-modification generator 3 of Fig. 2. The
feedback loop consists of a length N delay line Hub,
implemented as wave table 13, in series with a two-point
average He, implemented as modifier unit 14. The
input to wave table 13 is at terminal 20 and the output
from modifier unit 14 is at terminal 21. Terminal 21 is
connected to terminal 20 in a feedback relation which
forms a closed loop.

The frequency response of the Fig. 3 generator is
defined as the transfer function evaluated at z = eta =
Cousteau) + joint where T is the sampling period in
seconds IT is the inverse of the sampling rate f5), =

STFD2/WAV
STAN 3411 DEL/A (S80-20) -14-
83/01/27

of it radian frequency f is frequency in Ho, and
j a I

The frequency response of the plucked string instrument
of Fig. 2 is given a follows:

Hut = H~(ei~T)Hb(ei~T)~ (if)

where,

(eye [lye ~]/~ = e j~T/2 Cousteau)

e cost (12)

To = e ANT = e-j2~fNT tl3)

It is useful to consider the amplitude response and
phase delay of the wave table component, Hub, and the
modifier component Ha, separately The amplitude
response is defined as the magnitude of the frequency
response, and it gives the gain as a function of
frequency. The phase delay is defined as minus the
complex angle of the frequency response divided by
radian frequency, and it gives the time delay (in
seconds experienced by a sinusoid at each frequency.

The amplitude response Go and Go of each component Ha
and Hub, respectively, is given as follows:

Go - aye Cousteau)¦ = cost ~14)

Gb(f~ = byway 1 (15)

Thus, the delay line component Hub is loss less and the
two-point average Ha exhibits a gain which decreases

STFD2/WAV
STAN 3411 DEL/A (S80-20) -15-
owlet

so
with frequency according to the first quadrant of a
cosine All frequencies are restricted to the Nyquist
limit, what it, PI s I In this range, we have
¦cosl~fT)¦ = cos5~fT).

It is more convenient to define phase delay in units of
samples rather than seconds. The phase delays of Ha and
by on sample are given as follows:

Pa = Huge To = 1/2, (16
Pub byway To = N . ~17

where,

'7/" denotes the complex angle of z.




The ~wo-point average He has phase delay equal to
one-half a sample 1/2, and the delay line has a phase
delay equal to its length, N. Since the total loop
consists of Ha (modifier unit 14~ and Hub (wave table 13)
in series, we have a loop gain given as follows:
Loop Gain = Go Go I = coy (oft), (18)

and the effective loop length is given as follows:

g c Pb(f~ = N + 1/2 (samples) ~19

or each sinusoidal frequency f Hzu




In synthesizing a single plucked string note, N samples
of white noise at amplitude A are supplied by the
wave table 13 and the output sound occurs immediately
after the first N samples. The delay line Hub

STFD2/WAV
STAN 3411 DEL/A (S80-20) ~16-
83/01/27

I
represented by wave table 13 it essentially filled with
scaled random numbers at time 0 and need employ no other
input signal. Since the two-point average pa from
modifier unit 14 is constantly changing, the contents of
the loop and the output signal Yin are not periodic.
However the output signal it close Jo periodic and,
therefore, the term "period" in this application is
intoned to mean nearly periodic or quasi-periodic.
Each "period" of the synthetic string sound corresponds
to the contents of the delay line (wettable 13) at a
particular time, and each period equals a mildly
low-passed version of the previous period. More
precisely, a running two-point average of the samples
offset by one period gives the next period in the output
waveform. Since the effective loop length is N + 1/2
samples, the period is best defined to be NT + T/2
seconds where T is the sampling period and is equal to
l/f5 where is is the sampling frequency. Experience
shows that the quantity NT + T/2 corresponds well with
perceived pitch period.

Decay of Harmonics
-
Since the output signal Yin is quasi-periodic, the output
signal doe not consist of discrete sinusoids.
Essentially the output signal has many narrow bands of
energy decaying to zero at different rates. When these
energy bands are centered at frequencies which are an
integer multiple of a lowest frequency, they will be
referred to as "harmonics". When the frequency
components are not necessarily uniformly spaced, the
term "partial" will be used to emphasize the possibility
of inharmonicity~

Consider a partial at frequency f Ho circulating in the
loop. On each pass through the loop, the partial

STFD2/WAV
STAN 3411 DEL/A (S80-20) -17-
83/01/27

suffers an attenuation equal to the loop amplitude
response, Ga(f1Gb(fl equal Jo cost~fT), what is,

One Period's Tunisian = coy fit .

Since the raindrop time in the loop equals N + 1/Z
samples, the number of trips through the loop after n
samples ant seconds) is equal to nun 1/2)
tf5/(N 1/2). Thus the 'attenuation factor, aft at
time t - nut is given as follows:

aft) = tCOs(~f~)~[tfs/(N + 1/2)~ ~20)

For example, an initial partial amplitude A at time 0
becomes amplitude Oaf at time t seconds, where f is
the frequency of the partial.

The time constant", Of, of an exponential decay is
traditionally defined as the time when the amplitude has
decayed to 1/e, that is, to approximately 0.37 times its
initial value. The time constant at frequency f is
found by equaling En. (20) to e t/(Cf~ and solving for
Of as follows (note that is = l/T):

Of - ton all

= -Len + 1/2)T]/[ln cosi~fT)] (seconds) ~21)

For audit it is normally more useful to define the time
constant of decay as the time it takes to decay -60 dub
or to 0..001 times the initial value. In this case, we
equate En. (20) to 0.001 and solve for to This value of
t is often called t60. Conversion from Of to t60(f) is
accomplished in the following manner-

t60(f) = ln(lOOO)cf ~22)

STFD2~WAVSTAN 3411 DEL/A (S80-20) -18-
83/01/27

I 69
that is, approximately 6.91cf,

..
For example, if a sinusoid at frequency f Ho has
amplitude A a time 0, when at time t60(f) it has
amplitude Aa~(t~O(f)~ = A/1000, or it is 60dB below its
starting level.

the` above analysis describes the attenuation due to
propagation components around the loop It does not,
however, incorporate components which do not "fit" in
the loop and which are quickly destroyed by
self-interference. This self-interference is analogous
to a physical string which is mechanically vibrating.
Any excitation may be applied to the string, but after
the excitation ceases, the remaining energy quickly
assumes a quasi-periodic nature determined primarily by
the length of the string.

In a similar manner, even though the loop in the Fig. 2
instrument is initialized with random numbers, after a
very short time the primary frequencies present in the
loop will be those which have an integral number of
periods in N + l/2 samples. These frequencies are all
multiples of the lowest frequency, called the fund amen-
tat frequency, whose period exactly matches the loop
length N 1/2. This lowest frequency, fly provides the
pitch frequency of the note and is given as follows:

if = 1/[tN + 1/2~T] = fS/tN + 1/2~. ~23)

where,

is = sampling frequency

T = l/f5 = sampling period

STFD2/WAV
STAN 3411 DEL/A (S80-20) -19-
83/01/27

I
I, .
Setting f to the harmonic series beginning with if as
hollows,
ok = I - klfg/(N + l/2)3, ~24
where,
' k = 1~2,...Nt2,

gives the decay factor at time t for the kth harmonic as
hollows:
a = [cos(~fkT)]flt. (25)

Similarly, the time constant per harmonic is given in
seconds as follows:
I = tJ[ln a]
= -[l/[flln(cos(~fkT~] (26)

Fig. 4 shows the spectral evolution during the first
fifteen periods of a note having a period of 128 samples
from an instrument of the Figs 2 and 3 type. A length
128 Fast Fourier transform FIT was computed every
other period, that is, for n equal to 0, 2, 4, ..., 14~
Note that the higher harmonics decay faster; this mimics
the behavior of an actual string, where the higher
harmonics dissipate their energy faster.

In certain alternative embodiments, where the modifier
unit 14 has Ha considered more generally than a



STFD2t~AV
STAN 3411 DEL/A ~S80-20) -20-
-83/01/27

I I
two-point average, the attenuation factor of the oh
harmonic after t seconds it given a follows:

a arts Park) ] ] ' (27)

where Galf~sl for stability. The phase delay Park is
the same at all harmonic frequencies ok.

Similarly when pa is considered more generally, the
time constant of decay for each harmonic it given in
seconds as follows:
I = -[(N Pa(fk))/(~sln~a(2~k l)] I

Sixteen Voice Embodiment
In Fig. 5, a 16-voice embodiment of the Fig. 2
instrument employing a modifier unit of the Fig. 3 type
is shown.

In Fig. 5, the wave table 13 is a random access memory
(RAM) having sixteen different storage resigns one for
each of sixteen voices. Each of the storage regions has
w~ve-tabl~ storage locations for 256 8-bit bytes.
Accordingly, N is a maximum of 256 for any voice. The
wavetable-modification generator 3 also includes an
8-bit output register 36 and a DIGITAL unit 35. The
DIGITAL unit 35 performs the modifications of the type
previously described in connection with the modifier
unit of Fig. 3 for all sixteen YOice9 of the Fig. 5
instrument. The DIGITAL unit 35 has a 12-bit address
bus 38 connected to address the wave table 13.
Additionally, the unit 35 connects to the 8 bit data bus
37. Data bus 37 also connects the wave table 13 to the
output register 36. Input unit 2 is connected by bus 7

STFD2/WAV
STAN 3411 DEL/A lS80-20) -21-
83/01/27

37. Data bus 37 also connects the wave table 13 to the
output resist r 36. Input unit 2 is connected by bus 7
to the common data bus 37. The output register 36
connects by 8-bit bus 8 as an input to the output unit 4
and as a Dow input to ho wave table 13.

Fllrther details of the DIGITAL unit 35 of Fig. 5 are
shown in Fig. 6.

In Fig. 6, the data bus 37 connects as an input to the
data-in latch 45 and receives an output from the
instate gates OWE The Dunn latch 45 and the
instate gates 46 connect to the common data bus 47
which is identified as the B bus. Data is input to and
output from the DIGITAL unit of Fig. 6 over the B bus 47
and data bus 8.

In Fig 6, an A bus 48 is utilized to carry the address
to an address register 49. Address register 49 connects
its output to a 12 bit address Gus 38 which provides
addresses to the wave table 13 in Fig. 5. The four
low-order output bits on bus 50, from the address
resister 49, are encoded to specify one of the 16
voices. The bus 50 also connects as an input to the
voice-match comparator 52.

In Fig 6, the Mu latch 53 receives data from the Bus 47
when the latch signal Mu-L is asserted. The bit toga-
lions in latch 53 are designated coy at, ..., C7 0 The
8-bit output prom the latch 57 connects to a number of
inputs. The high order bits at, ..., c7 connect as an
input to the zero detector 40. Zero detector 40 detects
when all of the bits clue ..., c7 are O's and respond
lively asserts an output on line 98. The output on line
98, when asserted, is a latch signal to the 1-bit mode

STFD2/WAV
STUN 3411 ALA (S80-20~ -22
83/01/27

~2~36~
latch 91. Mode latch 91 receives thy coy bit from latch
53. When the coy bit lo eked into latch 91 is a logical
0, it indicate that the parameter mode has been
selected. When the bit in latch 91 is a logical 1, it
indicates that the pitch/amplitude mode has been
selected. The output from latch 91 connects as an input
to NOR gate 97. Gate 97 receives its other inputs from
the zero detector 40 and the c4 bit from latch 53. when
zero detector 40 senses with a non-asserted output that
all of the wits at, ..., c7 are not logical 0 and latch
91 stores a 0 to indicate that the parameter mode is
called for, gate 97 is satisfied when c4 is zero to
provide a latch signal to the voice latch 90. Voice
latch 90, in response to the latch signal from gate 97,
stores the bits coy ,.., c3 from the Mu latch 53. In
this manner, a new voice is selected to allow different
parameters for that voice to be changed The output
prom the voice latch 90 connects as the other input to
the voice match comparator 52. When the voice
identified in the voice latch 90 corresponds to the
voice being addressed by the address latch 49, the
output from comparator 52 is asserted on line 54.

In Fig. 6, the output line 54 from the voice-match
comparator 52 connects as enable inputs to the AND gates
94 and 95. Gates 94 and 95 are, therefore, enabled
whenever the voice identified in latch 90 is the same as
the voice being addressed by the address latch 49.

The other input to AND gate 94 is the output from thy
mode latch 91 on line 85. Gate 94 will be satisfied,
therefore, whenever the voice match occurs and the mode
latch go indicates that the unit is in the
pitch/amplitude mode. AND Nate 94 controls the opera-
lion of the multiplexer 92.

STFD2/WAV
STAN 3411 DEL/A (S80-20) -23-
~3/01/27

I

multiplexer 92 receives one data input from the Mu latch
53 and the other input from the Bus 47. When gate 94 is
satisfied, the multiplexer 92 selects the lower input
from the latch 53 and loads a new pitch or amplitude
value into the Pot stave 56l of the shift register 56.
When gate 94 is not satisfied, multiplexer 92 selects
thy data on the B bus which is derived from the Plop
stage 5616 of the shift register 56.

In a similar manner, the AND gate 95 is satisfied when
the mode latch 91 is in the parameter mode. When
satisfied, gate 95 controls the parameter multiplexer 93
to select the lower input to load new parameter values
from the Mu latch 53 into the Pot stage 55-1 of the
shift register 55~ When gate 95 is not satisfied,
multiplexer 93 selects via bus 44 the Plop data from
stage 551~ to be reinserted into the Pot stage 551.

In the manner described, in response to commands in the
latch 53, new pitches or amplitudes can be inserted into
the corresponding voice location in the hit register
56 or new parameters can be inserted into the
corresponding voice location in the shift register 55.

In Fig. I, the arithmetic unit 62 is a conventional
12-bit device which, among other things, adds 12-bit
data received on each of its two input ports Unit 62
is partitioned into an 8-bit high-order portion and a
4-bit low-order portion. The carry-out from the
low-order portion is Orbed with the line 43 signal to
form the carry-in to the horder portion. A carry-in
1 on line 43 is used to add +1 to the high-order 8-bit
portion under control of the kern unit 64 when the
low-order four bits in latch 61 have been cleared to 0
by the Z-B signal. One of the input ports for the

STFD2/WAV
STAN 3411 DEL/A (S80 20) -24--
83/01/27

arithmetic unit 62 is fed from the Betty latch 60 and
the other input port it fed prom the 12-bit B latch 61.
The A latch 60 derives its input from the A bus 48 and
the B latch derives its input from the B bus 47. An
8-bit R latch 65 connects data from the high-order 8
bits of the bus 47 Jo the corresponding high-order 8
bits of the A bus 48. A Betty T latch 66 connects to
and from the A bus 48 for use as a register for storing
the current Write Pointer address. The 13-bit output
from the arithmetic unit 62 connects to a 13-bit C latch
67 either directly or after inversion in inserter 63.
The C latch 67 connects the low-order twelve bits of its
output to the A bus 48 when the C-R/A signal is asserted
and connects the high-order eight bits directly to the B
bus 47 when the C-R/B signal is asserted. Selecting the
high-order eight bits from the 13-bit latch 67
effectively shifts by 1-bit, that is divides by 2 any
8 bit number in the C latch 67.

In Fig. 6, the decay/compute unit 58 is a selector for
selecting different probability values idyll from the
random bit generator as a function of the rate specified
by bits c0, at, c2 from field 55-1 and by the coherence
bit c3 from field 55-2 of the Plop stage 5516. The
outputs from unit 58 are the Proud and the " PROBE n
lines.

The output on the PROBE line is a logical 1 only ox
the time and logical 0 the other half of the time
except when the coherence bit c3 is asserted, in which
case the output on the PROBE line is the same in a
current cycle as it was in the previous cycle. The
PROBE line is one input to the control logic 71 and also
is an input to the AND gate 39. The gate 39 derives its
other input from the c7 bit, the dither bit, from the

STFD2/~AV
STAN 3411 DEL/A (S80-20) -25-
83/01/27

r
output field 55-3 of the stage 5516. ho output from
gate 39 form one ox the control inputs to the carry in
unit 64.

The Proud line output from the unit 5B has either a 1 or
a 0 state where the probability of being a 1 it
controlled as a function of the 3-bit output from the
field 55-1, command bits c0, at, c2. In this manner,
the` Proud line has 1 or 0 logical states with top
relative probability select blew The Proud line
connects as one input to the carry-in unit 64 and as
another input to the latch So. The input to the E
latch 59 selects either the true or complement value of
the quantity stored in the E latch to be grated out onto
the B bus 47 as a function of the 1 or 0 state,
respectively, of the Proud line.

In Fig. 6, the Proud line connects as the other input to
the carry-in unit 64. The carry-in unit 64 is a
selector unit for selecting either the Proud line or the
output from the AND gate 39 as the signal to control the
carry-in line 43, When the "do" line from control logic
71 it asserted, the gate 39 line is selected. When the
control line fend is asserted from control logic 71,
then the Proud line from the unit 58 is selected.

The effect of selecting the Proud line during the decay
operation is to permit decay stretching to occur. Under
the operation with no decay stretching, the carry-in
from the unit 64 on line 43 adds a +1 value to the Read
Pointer address to allow the Read Pointer +1 address to
be calculated. For decay stretching, however, the
addition of Al is inhibited some number of times so that
the Read Pointer address is used twice rather than using
the Read Pointer Al address Under these conditions,

STFD2/WAV
STAN 3411 DEL/A ISSUE) -26-
83/01/27

Jo
thwacks is no modification to the data value read from the
Read Pointer address and the same data value it placed
back into the Write Pointer address. The greater the
frequency with which the +1 addition is inhibited, the
longer the stretching. The Proud line also is used
during the pluck operation Jo select different initial
values of amplitude
!'
DIGITAL Control
The control of the DOTTER unit of Fig. 6 is carried out
by control (CURL) logic 71. Control logic 71 contain-
uou51y cycles through seven control cycles where each
Seychelles a first phase and a second phase. The control
cycles are designated as 11, 12; 21, 22~ I 72.
All of the cycles I 72 axe collectively referred
to as one logic-array cycle or simply as a logic cycle.

A number of control lines 73 are output from the control
logic 71 and connect throughout the Fig. 6 unit and in
some cases to the Fly. 5 instrument.

The control lines 73 form the control logic 71 and their
functions are indicated in the following TABLE I.




STFD2/WAV
STAN 3411 Delta (S80-20) -27-
83/01/27

ç ~L2~51!~

TABLE I
,_

LIVE FUNCTION

E L Latch B By Data into E Latch 59
Moe watch B Bus Data into Mu Latch 58
DORIA ate Data from DO Latch 45 onto B Bus 47
E-R Gate Data from E Latch I Jo Bus 48 if P is 1
T-L Latch A Bus Data into T Latch 66
T-R Gate Data from T Latch 60 to A Bus 48
fend Carry-in Bit 4 Selected from Random Bit Generator 57
do Kern Bit 4 Selected from Gate 39
Rebus A and B Busses Charged to
R L Latch Bus B Data into R Latch 65
R-R Gate Data from R Latch 65 to A Bus
2 B Zero Low-Order 4 wits of B Latch 61
ABEL Latch Data into A and B Latches from Busses A and B
Prey Clear C Latch 67 Charged to l's Complement
C-L Latch Data from Line 69 into C Latch 67 Unless C-L
is 1
C-L Latch Data from Line 72 into C Latch 67 Unless R is 1
C-R/A Gate Data from C Latch 67 to A Bus 48
C-R/B Gate Data from C Latch 67 to B Bus 47 if P is 1
Ad-L Latch Data from A Bus into Add Latch 49
Spy Special Cycle Latches Output Register 36
DO-R Gate Data on B Bus through Gates 46 to Data Bus 8
DX-L Latch Bus 8 Data into DO Latch 45
S-1 Internal Shift of Registers 55 and So does not
Affect Plop nor Voice
Number Stored
S-2 Shift of Registers 55 and 56, Changes Plop and

Changes Random Bit



STFD2/WAV
STAN 3411 DEL/A (S80-20) -28-
83/01/27

on TALE I, the postscript L for each o he signal
lines indicates thaw a latching function into a latch
occurs. A postscript R indicates that a read (gate out)
function from the lath circuit occurs.

The following TABLE II depicts the binary and other
states of each of the lines identified in TALE I for
each phase of the seven control cycles produced by
control logic 71 of Fig. 6.

The P and P signals for thy line E-R and C-R/B, no-
spectively J ore determined by the c5 and c6 bits from
staves 55-5 and 55-4 of register stamp 5516. If bits c5
and c6 are both I , then P is 1 and P is O,. when P is
1, it indicates the plucking period for selecting the
amplitude from the E latch 59 to the B bus 47. When P
is 1, the output data is selected from the C latch 67 to
the B bus 47. The L signal for line C-L is the 1 or 0
state of the line C-L. The signal in the line C-L is
a 1 in the harp mode, that is, local parameter bit c4 is
0 and c5 it 1. In the drum mode us and c6 both U), R
is the "PROBE" signal from unit 58. The D signal in the
"fend" line is the complement of c7 (the dither bit).
In the Z-B line, the 0 symbol indicates that either a 0
or 1 can be present.




STFD2/WAV
STAN 3411 DELTA (S80-20) -29-
twill

I ~2~5~
TABLE I I
Line 1 2 1 2 3132 41 42 51 52 61 I 71 7
, I, _
EN 1 0 0 0 0 0 1 0 0 0 0 0 0 0
Mu L 1 0 û O 0 O O O O O O 0
DORIA 0 0 0 0 1 0 0 0 1 0 0 0 0 0
E -R, 0 0 0 0 0 0 0 0 0 0 0 0 P 0
TL 1 0 0 0 0 0 0 0 0 0 D 0 0

I; R 0 0 0 0 0 0 0 0 0 () 1 0 0 0
fend 0 0 0 0 0 0 0 0 0 D 0 0 0 0
do 0 0 0 0 0 l 0 0 0 0 0 0 0 0
Rebus O 1 0 1 0 1 0 1 û 1 0 1 0
R-L 0 0 0 0 1 0 0 0 0 0 0 0 0 0

R-R 0 n o o o o o o 1 o o o o o
Z-B 1 0 p 0 1 0 0 0 1 0 P . 0 0 0
ABEL 1 0 O 0 0 0 0 0 1 0 1 0 0 0
Prey 1 0 1 0 1 0 1 0 1 0 1 0
C-L 0 l 0 0 0 1 0 0 0 L 0 0 0
..
C-L O O O O O O O û O R 0 0 0 0
C-R/A 1 0 1 0 0 0 1 0 0 0 0 0 1 0
C-R/B 0 0 0 0 0 0 0 0 0 0 0 0 p
Ad-L 0 0 1 û O 0 1 0 0 0 1 0 0 0

Spy O O O O O O O O O O O 1 1
DO-R 1 0 1 0 l 0 1 0 1 0 1 0 1 0
DILL 0 1 0 1 0 1 0 l 0 1 0 1 0
S-l 0 0 1 1 0 n o o o o o o o o
S-2 0 0 0 0 0 0 0 0 0 0 1 1 û O



STUFFED WOVE
STAN 3411 DEL/A ~S80-20) -30-
83/01/27

2~L5~
Command Control
The operation of the DIGIT unit of Fig. 6 is under
control of commands. Each command ha 8 bits which are
designated from horder to low-order as c7, c6,..~,
coy There are two modes for interpreting commands, the
parameter mode and the pi~ch/amplitude mode. During the
parameter mode, parameters useful for the operation of
the Fig. 6 device are loaded from an external source
such as input unit 2. During the pitch amplitude mode,
pitches or amplitudes are specified from the external
source.

During the phase I of Mach logic cycle, the data from
the data-in latch 45 is stored into the Mu latch 53.
During phase 11, the mode of the cycle is detected and
stored in mode latch 91 of Fig. 6 for determining the
Pot data entry locations of the control shif~-registers
55 and 56.

To enter the parameter mode, the command bits on bus 7
are all O's. To enter the pitch/amplitude (pow mode,
on bus 7, the command bits c7, c6, c5, c4, c3, c2, at
are all 0's and the command bit coy is 1.

Parameter Mode
When in the parameter mode Mode latch 91 set to I
there are two types of parameters, global parameters
which are defined when the command bit c4 is 0 and local
parameters when c4 is 1. In order to describe the
commands, it is useful to group them in terms of the
high-order nibble including the four high-order bits c7,
c6, c5, c4 and the low order nibble including the four
larder bits c3, c2, at and coy The four high-order
bits and the four low-order bits can each have their 1
and 0 binary states represented by a hexadecimal

STFD2/WAV
STAN 3411 DEL/A (S80-203 -31-
83/01/27

~2~865~
character, For example, when the four high-order bits
are 0, the hexadecimal character oh indicates that all
bits are 0. When the four low-order bits are 0001, then
the hexadecimal character lo is used to indicate that
he wits have these values. In order to indicate that
all four bits are all lo 5, the hexadecimal character I
is utilized. Hexadecimal characters are indicated by a
subscript "h" representing base 16 binary numbers That
it, each hexadecimal character is expandable to four
binary bits.

The command codes for the parameter mode are given by
the following TABLE III.




STFD2/WAV
STAN 3411 DEL/A (S80-20) -32-
83/01/27

S~365~

TABLE III
REX BINARY FUNCTION
7, I us, c4, c3, c2, clue c0
h~h 0 enter par mod
Glue 0 0 0 0 0 0 0 enter p/a mode
GLOBAL PER
;
Shucks 1 1 0 0 X X X X select voice XXXX
EhXh " 1 1 1 0 X X X X select voice, rest 57
LOCAL PA
lhXh 1 X X X X drum (dither
3hXh l 1 guitar (dither
5hXh 0 1 0 l harp (dither)
7hXh 0 1 1 l pluck Dither
9hXh 1 0 0 1 drum
BhXh 1 0 1 1 guitar
DhXh 1 1 0 1 harp
FhXh 1 1 1 1 pluck
_ FUNCTION
Xh0h Always Decay (Stretch 1) Cohere
Xhlh decay Probability 1/2 (Stretch I Cohere
Oh h Decay Probability 1/4 (Stretch 4) Cohere
Xh3h Decay Probability 1/8 (Stretch 8) Cohere
Xh4h Decay Probability 1/16 (Stretch 163 Cohere
Xh5h Decay Probability 1/32 (Stretch 32) Cohere
Xh6h Decay Provability 1/64 stretch 64) Cohere
Xh7h Never Decay stretch Infinity) Cohere
Xh8h Always Decay stretch 1) Independent
Xh9h Decay Probability l/2 (Stretch 2) Independent
Shah Decay Probability 1/4 (Stretch I Independent
XhBh Decay Probability 1/8 (Stretch 8) Independent
XhCh Decay Probability 1/16 (Stretch 16) Independent
XhDh Decay Probability 1/32 (Stretch 32~ Independent
Zoo Decay Probability 1/64 (Stretch 64) Independent
XhFh Never Decay (stretch Infinity) Independent

STFD2/WAV
STAN 3411 DEL/A (S80-203 ~33-
83/01/27

2~6~
The various parameter sex forth in TABLE III provide
for many different variations in the basic plucked
string sound. In the present example, there are three
types of plucking instruments which are defined by the
high-order nibble. Those instruments are the drum
(lhXh3, thy gawks ~3hXh) and ho harp (5hXh~. In
addition to the three types of instruments, the
energization, thaw is, the "pluck" is specified by the
local parameter 7hXh. The presence or absence of a
modulation bit (called a dither Kit) is also controlled
by the local parameter high-order nybblen The character
Oh in TABLE III indicates that the nibble can have any
value.

In TALE III, the low-order nibbles of the local
parameters for the last sixteen entries specify the
decay characteristics.

The eight entries in the following TABLE IV show
representative examples of parameters specified.




STFD2/WAV
STAN 3411 DEL/A (S80-20) -34-
83/01/27

36~
TABLE IV

HEX FUNCTION

LOCAL PAR
.
7h9h Symmetric Pluck it Random Noise)
7hBh Asymmetric Pluck 11~8 Inversion) Good for
1' Subsequent Harp Decay
3h8h Guitar starch 1) Dither, don ' t Cohere



9hgh Drum (Stretch 2) no Dither or Cohere
Dh8h Harp Stretch 1) no Dither or Cohere
7h8h "Jam" Constant
DhFh Odd Harmonics "Organ" Mode
BhFh All Harmonics "Organ Mode


In opportune during the local parameter mode, the data
value of the command bits c2, at, c0 are stored in the
3-bit field 55-1 of the shift register 55. The
coherence control bit c3 is stored in the l-bit field
55-2. The control bits c7, c6, and c5 are stored in the
l-bit fields 55-3, 55-4, and 55-5.

When mode latch 91 indicates that a local parameter mode
is present and comparator 52 indicates that the voile
located in the bottom stage 55~ of the shift register 55
it the correct one, then the local parameters are grated
from the B bus 47 into the bottom stage 551 of the shift
register 55. During each logic array cycle ("logic
cycle"), comprising all cycles (both phases) 1 through 7
of TABLE II, the contents of the shift register stages
55 and 56 are shifted one stage That is, the data in
the bottom stages 551 and 561 is shifted to the next
adjacent stages 552 and 562 and so on until the data in

STFD2/WAV
STAN 3411 DEL/A tS80-20) -35-
83/01/27

I
stages 5515 and 56l5 it shifted into the top stages 5516
and 56l6, respectively. The 16 stag 550~ 551~
16 561~ 562' -I 5616 correspond to the 16
different voices of the Fig. 5 and the Fig.
instrument.

zany different control parameters can be stored in the
shift register 55. The basic operation of the
instrument, however, it the same regardless of these
parameters as will be described now in connection with
the operation during the pi~ch/ampli~ude mode.

Pitch/Amplitude Mode
During the pitch/amplitude mode, each sound is
constructed from an initial pluck at some amplitude
followed by a decay at some specified pitch. In Fig. 6,
the sixteen 8-bit staves of the shift register 56 are
employed during the "pluck" period to store the maximum
amplitude of the pluck and thereafter during the decay
period to store the pitch period.

The pitch/amplitude mode is entered when the Oily code
is detected in the Mu latch 53 during the first phase of
the seven-cycle logic cycle of TABLE II. If the pitch/
amplitude mode is being entered for the first time in
connection with a note ox a given pitch, then the Oily
code will be followed by the amplitude of the pluck
sound and that amplitude will be stored in the bottom
register stage Pot 561. This amplitude stored in the
shift register stage 561 is utilized to fill the
wave table unit 13 of Fig. 5 with appropriate initial
values. Either the positive or negative amplitude value
icky stored at each location in the wave table for that
voice as a function of the 1 or 0 output of random bit
generator 57 in Fig. 6.

STFD2/WAV
STAN 3411 DEL/A (S80-20) -36-
83/01/27

The manner it which the Fig. 6 circuitry lords the
amplitude into the wave table is a follows. During thy
first cycle, I the next address location it obtained
from the C latch 67 and stored in the T latch 66. The
amplitude value it accessed from the Prop stage 5616 and
transferred over the Bus 47 to the E latch OWE

In '! cycle 61, the address from the T latch 66 is
tr~nsfPrred Jo the address latch 49 and to the A latch
60~ The B latch 61 is loaded with a -1 so that in cycle
72~ the address in the C latch 67 has been decrement Ed
by -1. In cycle 71' either the plus or minus amplitude
value stored in the E latch 59 is grated through the Data
out gates 46 for storage in the memory location of
address latch 49. This process is repeated until the
wave table is filled with the plus or minus values of
amplitude. While the wave table is being filled, output
data equal to the plus or minus values of the amplitude
are supplied to the output unit 4. These values of the
amplitude constitute the plucking sound. The plucking
sound is present for the duration that the wave table is
being filled with the plus and minus amplitude values.

At the appropriate time specified by a command which
terminates the plucking phase and starts the decay
phase, the pitch/amplitude mode is again entered and the
pitch period number, N, is entered into the bottom shift
register stage (Pot) 561. As logic cycles are
completed, commands are executed for each one of the
sixteen voices.

During the decay portion of the pitch amplitude mode,
the instrument of Figs. 5 and 6 continues to perform the
operations as set forth in En. (5) above in the
following manner.

STFD2/WAV
STAN 3411 DEL/A ~S80-20) -37-
83/01/27

The Fix. 6 unit employs a common Write Pointer for all
sixteen voices. The Roy Pointer points to tube address
in the wave table at which the currently modified data
value is to be pored. The Write Pointer is stored in
the T latch 66 of Fig. 6. The low-order four hits in
the T latch represent thy voice field of the address and
correspond to the voice field output from address latch
49 one Betty bus 50. The high-order 8 bits in the T
latch 66 (and correspondingly on bus 51 from address
latch 49) represent the write address within the
wave table location fox any particular voice. During
each logic cycle the seven cycles of TABLE II), the
Write Pointer in latch 66 is decrement Ed by one count.

In operation, a Read Pointer unique for each voice is
calculated during each logic cycle by adding the pitch
number, N, obtained from the shift register top location
56160 Plop, of register 56. The Read Pointer is
calculated at a memory address which it N locations
behind the Write Pointer. In the particular embodiment
of Fig. 6, the addresses in the T latch 66 are
decrement Ed once each logic cycle. Therefore, N
locations behind the Write Pointer in latch 66 is
achieved by adding N to the address in latch 66. If thy
address in latch 66 were changed by incrementing, then
the N would be subtracted from the address in latch 66.
The Read Pointer selects data that was stored N cycles
previously. That data is modified and stored into the
address specified by the Write Pointer.

In the present example, the modification is in
accordance with En. (5). The data specified by a lead
Pointer + 1" is the data No address away from the
address in the T latch 66. The data at the N and the
No locations it summed, divided by two and then

STFD2/WAV
STAN 3411 DEL/A (S80-20) -38-
83/01/27

I
rewritten into the address specified by he write
Pointer (in the T latch 66).

The normal decay operation carries out the modification
part ox En. (5) in the manner outlined in the following
TABLE V when no new commands are being given.

` TABLE V
,

TO A BUS FROM A TO B FROM B
CYCLE FROM BUS TO BUS FROM GUS TO TO C
11 C TEA Plop B
12 Read Pointer
21 C Add
22
31 Din R
32 Read Pointer + 1
41 C Add Plop Pot
I
51 R A Din B
52 Sum
61 T Audrey (-1) B
62
'71 Sum/2 Dour
72 T
In TABLE V, the last cycle 72~ decrements the address in
the T register by one. That decrement Ed value is the
Write Pointer which is stored in the C latch 67 at the
time that a new logic cycle commences at cycle 11. In

STFD2/WAV
STAN 3411 DEL/A (S80-20~ -39-
83/01/27

US
Silas 11~ the Write Pointer it grated from latch 67 to
the buy 48 and from where to the latch 66 and the A
latch 60

In cycle 11, the pitch Lyons N of the current voice
represented by thy low-order bits in the T watch 66~
appears on the B buy designated as Plop in TABLE V),
and that value is lathed into the B latch 61. It cycle
11,; the value in the A latch 60 and the pitch length N
in the B latch 61 are added in the adder 62 to provide
the Read Pointer in the C latch 67 at cycle 12.

In cycle 21, the Read Pointer in the C latches is grated
over the A bus 48 Jo the address latch 49 where it it
propagated over bus 38 to address the wave table 13 in
Fig. I Thus addressed, wave able 13 provides the data
value on bus 8 and it is stored in the data-in latch.
In cycle 31~ the data-in value in the data-in latch 45
is grated over the B bus 47 and stored in the R latch 65~
At cycle 32i the carry-in unit 64 conditionally causes
Al lo be added to the contents of the sum of the A and B
latches thereby adding I to the value in the C latch.
Since the prior value in the C latch was the Read
Pointer (T + No, the new number in the C latch after
cycle 32 is the Read Pointer Al (T N + 1).

In cycle 41~ the Read Pointer +1 in the C latch 67 is
transferred over the A bus to thy address latch 49.
From address latch 49, the Read Pointer Al addresses the
wave table 13 to provide a new data value latched into
the data-in latch 45 in cycle 51~

In cycle 51~ the data value obtained by the Read Pointer
is grated from the R latch 65 to the A latch 60 and the
other value of data obtained from the Read Pointer I is

STFD2/WAV
STAN 3411 DEL/A (S80-20) -40
83~01/27

grated over the B bus 47 to the B latch 61, These two
data values are then added by adder I to provide the
Sum in the C latch 67 in cycle I

In cycle Al, the write Pointer from the T latch 66 is
grated over the A Gus 48 Jo the address latch 49 and to
the A latch 60~

Inkwell 61, the preset value of -l on the bus is
latched into the B latch and thereafter added by adder
62 to the Write Pointer in the A latch Jo form the new
Write Pointer (T - I which it latched into the C latch
in cycle 72. Also, in cycle 61, the Sum from the C
latch is grated out from the C latch 67 with a one bit
shift to the B Gus 47 and sated out through the
tri-~tate gate 46 to the bus 8 for storage in the
wave table unit 13 at the Write Pointer (To address. At
this point in time, two successive values of data at the
Read Pointer and the Read Pointer I addresses have been
fetched, added and averaged all in accordance with En.
(5) previously described. Also at cycle 72~ the
decrement Ed value (T-1) of the Write Pointer has been
formed and stored into the C latch 67.

The flew value of the Write Pointer defines a different
voice since the low-order four bits have been changed.
Similarly the shift register 56 has been stepped one
stage so that the pitch number N previously in the Plop
location 5616 has been circulated over the B bus back
into the Pot location 56l.

A new value ox the pitch length, N, or a different
voice is now stored in the Plop location 5616. That new
value of pitch is again used to form the Read Pointer by
execution of a complete logic cycle of TABLE V type.

STFD2/WAV
STAN 3411 DEL/A ~S80-20) -41-
~3/01/27

f
This calculation for each of the sixteen voice is
performed by sixteen different executions of the logic
cycle of the TABLE V type. After the sixteen executions
of the TABLE V logic cycle, the T latch 66 continues to
be decrement Ed. When decrement Ed, the karat after
the sixteenth decremation carries to the higher order
8-bits within the T latch 66 so that a new location
within the wave table is accessed for each voice. In
this manner, all of the locations within the wave table
unit 13 for each of the sixteen voices are accessed in a
manner which, or each voice, performs the calculations
previously described in connection with En. (OWE

The transfer of a sample to the output unit 4 of Fig. 5
occurs once at the end of the TABLE V cycle, in cycle
71. After sixteen executions of the TABLE V logic
cycle, sixteen samples, one for each voice, have been
output to the output unit 4. Thereafter, with sixteen
more executions of the TABLE V logic cycle, sixteen
additional samples, one for each voice, are output to
the output unit 4. It should be noted that the outputs
to the output unit 4 are not added but are merely time
multiplexed, one at a time for each voice. Each sample
is converted in the digital/analog converter 9 to an
analog signal which is Lopez filtered in filter 10.
The signal on line 18 represents the sound from all
sixteen voices as if the outputs on bus 8 had been added
prior to the conversion in the digital/analog converter
9. The time multiplexing through a digital/ analog
converter followed by Lopez filtering is the
equivalent of fir t adding and thereafter digital/analog
converting.

The output signal on bus 8 occurs at a sampling ire-
quench of approximately 20K Ho for each voice. Since

STFD2/WAV
STAN 3411 DEL/A ~S80~20) ~42-
83/01/27

I
all sixteen voices provide an output in a cyclic manner,
a new signal appears on the data buy 8 sixteen times as
fast a the sampling frequency for a frequency of 320~
Ho, which is the logic cycle frequency. The logic cycle
frequency it the time that it takes to complete all of
the seven cycles of the TABLE II type. Each of the
cycles within the logic cycle of TALE II occurs at
seven times the frequency of the complete logic cycle,
that it, at 2.~4M Ho. These values ox the sampling
frequency, the logic cycle frequency, and each sub cycle
frequency within the logic cycle are merely given as
representative. Any frequencies can be selected. The
particular preferred embodiment described operated with
the basic clock frequency between EM Ho and EM Ho.
Accordingly, the sampling frequency, Us, for each voice
is 1/112 the clock frequency of the Digital Unit 35. In
the particular embodiment described, the sampling
frequency, Us, is the same for all of the sixteen
voices.

Command Swig
The instrument of Fig 5 and Fig. 6 assumes that the
input unit 2 provide input commands in appropriate
sequences. In the command sequences, amplitudes for
defining the amplitude of a pluck are entered into the
shift register 56 as part of a pluck mode and similarly,
the pitch number for defining the pitch of each voile is
entered as part of the decay mode for that particular
voice. In this regard, it should be noted that two
values for the command codes are prohibited for entering
amplitudes or pitch numbers. The two value prohibited
are hh and Oily. These values are prohibited since
they are used to change between pitch/amplitude and
parameter mode. These values are not particularly
useful, however, as pitches because a pitch of 2 is the

STFD2/WAV
STAN 3411 DEL/A (S80-20) -43-
~3/01/27

I I
Nyquist frequency Furthermore, these amplitudes can by
obtained by using their inures ~FhFh and Foe). When
doing a symmetric pluck, the maximum amplitude is FhF~
and the minimum is owe. A typical example of command
sequence for playing a maximum amplitude guitar note is
shown in the following TABLE VIM

TABLE VI

COMMAND HO FUNCTION

1 hh Enter Parameter Mode (set fat 91 to 0)
Shea Choose Voice 5 load fat 90 with 5)
3 7h9h Start Plucking (read E fat 59)
4 0h1h p/a Mode set fat 91 TV 1)
FhFh Maximum Amplitude (load FhFh into Pot)
6 hh Enter Parameter Mode (set fat 91 to 0)


(Commands for Other Voices)

K 0 hh Enter Parameter Mode (set fat 91 to 0)
K l Shea Choose Voice 5 Again (load fat 90 with 5)
K + 2 oily Back to p/a Mode (set fat 91 to 1)
K 3 Foe Pitch Period 240 load Foe into 561)
K 4 hh Enter Parameter Mode set fat 91 to 0)
K 5 Bh8h Guitar Mode, Stretch 1, No Dither,
no Cohere (load Bh~h into 551)

In order to demonstrate that the Fig. 5 instrument
perform the En. I function, a simplified example is
useful. The example uses a memory which has M storage

STFD2/WAV
STAN 3411 DEL/A (S80-20) -44-
83/01/27

~%~
locations where M is equal to 10. It is assumed that
the pitch length, N, it equal to 6. The Write Pointer
(considering only the horder bits associated with a
single voice) has the values 9, I 7, I 1, O.

It it assumed that the ten locations 0, 1, OWE, 9 in
memory are initially filled with thy data values A, B,
..., J, respectively where those data values have
either a positive or negative quantity as determined by
the 1 or O output, respectively, of a random bit
generator The logic cycles of the TABLE II type are
numbered 1, 2, 3, ...~ lo, ... corresponding only to the
cycles for a single voice Actually there are sixteen
times as many cycles, one for each voice, but only those
cycles corresponding to a single voice have been
numbered With these simplified assumptions, the
following TABLE VII represents the relationship between
the write Pointer, the Stored Data in the memory
addresses associated with the Write Pointer, end the
Read Pointer and the Read Pointer + 1.




STFD2/~IAV


STAN 3411 DELTA (S80-20) -45-


83/01/27



Table VII

LOGIC WRITE READ REAR
CYCLE POINTER STORED DATA POINTER POINTER + 1
9 J

6 G
F
' 4 E

1 B
0 A
1 9 (F + Go 5 6
2 8 (E + F)/2 4 5
3 7 (D Eye 3 4
4 6 (C Do 2 3
By + C)/2 1 2
6 4 (A + By 0
7 3 [(F Go Aye 9 0
8 2 [(E + F~/2 + (F + G)/2]/2 8 9
9 1 [(D Eye + (E I F~/23/2 7 8
lo o r (c Do + (D + Eye 6 7
11 9 [tub + C~/2 + (C D)/21/2 5 6
12 8 AYE + By + (B + C)/23/2 4 5
13 7 [[(F + Go + Aye + 3 4
(A + B)/2]/2
14 6 . 2 3
. l 2
16 4 . 0
17 3 . 9 0
18 2 . 8 7
19 . 1 . 7
0

In TABLE VII, prior to Logic Cycle l, the Stored Data it
the data values A, B, ..., J as previously described.
Those values could be, for example, +8, -8, -8, +8, -8,
I +8, +8, -8 and +8.



STFD2/~AV
STAN 3411 DEL/A tS80-20) -46-
83/01/27

29~
In Logic Cycle l, stoxagP location 9 designate by the
Write Pointer is filled with the average of the
quantities accessed at the addresses defined by the Read
Pointer and the read Pointer + I The Read Pointer
points to the address 5 which is stored with the data
value F. The Read Pointer 1 points to the address 6
which is the data value G. Accordingly, in the Logic
Cycle 1, the Stored Data is (I + Go that is, 8 with
the` values previously selected for example.

In the Logic Cycle 2, the Stored Data is the quantity
(E + F)/2, that is, Q. Similarly, each of the cycles is
similar until in Logic Cycle 6, the storage location of
the Write Pointer 4 is the quantity (A I that is,
O.

In Logic Cycle 7, however, the read Pointer points to
the location 9 which was stored with the quantity (F +
G3/2 in Logic Cycle 1. The Logic Cycle 7 is six cycles
displaced from the Logic Cycle 1. The value averaged
with the values stored in Logic Cycle 1 is the value
stored in the cycle prior Write Pointer cycle 0, that
is, the original data value A. The data value A is
seven cycles displaced accordingly, the average
between the 6-cycle displacement and the 7-cycle
displacement is I that is, the pitch number is N +
cycles.

Summary of Sixteen Voice Embodiment
The sixteen voice embodiment of Fig. 5 has each voice
independently controllable for a value of pitch,
determined by the pitch number N. Each voice has a
sampling rate of approximately 20K Ho. Each sample time
is sixteen voice cycles, each of which is a logic cycle

STFD2/WAV
STAN 3411 DEL/A ~S80-20) ~47-
83~01/27

So
comprised of seven clock cycles. The sampling frequency
it 1/112 the clock frequency of the Digital Unit.

Each voice can be in one of four modes, plucking guitar
decay drum decay or harp decay. Each of the decay
algorithms allows decay stretching during the decay
operation with the stretching factor, 5, equal to 1, 2,
4, I 16, 32, So t or infinity. The factor multiplies
the unstretched decay time by the value of s. The
stretching is implemented by not incrementing the Read
Pointer by +1 in selected logic cycles.

During the plucking operation, the output to the
digital/analog converter in the output unit 4 can be
randomly amplitude A or 255 - A, that is, the
complement. The probability of inversion Jo 255 - A is
l/S where S is the stretching factor determined by the
"Proud" control to the E latch 59 of Fig. 6. Under
these conditions, thy digital/analog converter 9 of Fig.
2 is centered at 128.

..
In the guitar and drum instruments, the blend factors
(one minus the probability of selecting the complement
from the C latch) are 1 and respectively The harp
instrument it the drum with a blend factor of 0. A
blend factor of 0 means the complement is always select
ted from the C latch. Therefore, the value in the
wave table is complemented on each pass thereby dropping
the frequency an octave and leaving only the odd harmony
its. This operation extends the range down an octave
and adds a somewhat unusual timber to the higher ox-
tats

The dither bit, c7, is provided as an option to
counteract the effects of round of error.

STFD2/WAV
STAN 3411 DEL/A (S80-20) -48-
83/01/27

!
I,' ' :.
The coherence blip c4" is provided as a means of linking
several voices. this technique can be used to increase
the overall amplitude of a note over what which could be
achieved by a single voice. It can also be used to
provide a "swell" at the beginning of a note by
initially exciting two coherent sroice~ with equal and
opposite amplitudes (complete cancellation hence
silence) and later turning off the coherence bit.
Jo
In the Fig. 5 embodiment, the Dowager Unit 35 examines
the input bus 7 from the input unit 2 only once per
logic cycle (once every seven clock cycles during the Sup
Cry cycle). Therefore, it is necessary for the control
byte to be held at least seven cycles by the interface
unit 6 before a new command it issued. The interface
unit 6 can be any conventional device, such as a
microprocessor chip, or a control register which is
grated out by the Spy signal from the Digital Unit 35~
Also, since the control memory in the Unit 35 utilizes
the shift registers 55 and 56 in Fig. 6, commands that
affect only one voice must be held until that voice has
been stepped to the bottom location 551 or 561.
Therefore, commands which are intended to affect a
single voice should be hold by the interface unit for at
least 112 clock cycles.

FURTHER AND OTHER EMBODIMENTS

The sixteen voice embodiment previously described
utilized a common Write Pointer and a different Read
Pointer calculated for each voice. Also the sampling
frequency is was the same for each voice. While these
conditions were convenient, they are not limitations of
the present invention. More generally, a Write Pointer

STFD2/WAV
STAN 3411 DEL/A [S80-20) -49-
83/01/27

f
and a Read Pointer may be independently determined for
each voice and each sampling frequency, I and also be
separately determined for each voice.

Further to voice embodiment of the present invention
exists when, in the Fig 2 instrument, the modifier unit
14 is implemented as an 8080 microprocessor. In such a
microprocessor embodiment, a program suitable for doing
the modification is set forth in the following TABLE
VIII.




STFD2/WAV
STAN 3411 DEL/A (S80-20) -50-
83/01/27

TABLE VIII 121S869

S LABEL OPAQUED ARTS COMMENT
1. LOOP: DCR~5J bump the Road Pointer not changed
So pointer wraps around a 256 long
buffer
2. ADD M add Yin for voice 2
I WRIER) divide by two
4. STUCCO B store Yin for voice 2
5. XCHG(4) set up HO to access voice l
6. ; MOVIE BUM read I for voile 1
7. Adele B add voices together
8. OUGHT) DAY output both voices
9. DCRi5~ L decrement read Pointer
10. MOVES) AIR A loaded with on
11, ADD M A loaded with A + x
12. OR divide by two
13. MOW BY BY loaded with write Pointer
14. DCRI5) C doormen Write Pointer 2 (and sex
condition codes B not changed, so
pointer wraps
15. COUNT: STUCCO B store Ann (voice 1)
16. START: XCHG(4) setup HO for voice 2
17` MOVIE) ARM A loaded with Ye N 1 voice 2)
18. MOVIE) By BY loaded with Write Pointer
19. END: JNZ(10) LOOP every 256 samples check duration
counter first compensating for extra
time
20. STUCCO B Yin Yn_N_1 (voice 2)
21. DCR(5~ L advance Read Pointer
22. DCR(5) E advance Read Pointer
23. DCR(5~ C advance Write Pointer 2
24. LDA(13) DUO load duration counter


STFD2/WAV
STAN 3411 DELTA (S80-20) -51
83/01/27


T~BL VIII (Concluded)

S LABEL OPAQUED ARTS COMMENT
25. DCR(5) A A loaded with Awl and set condition
code
26. STY) DUO store d~cremented timer
27~ XC~Gl4) setup AL for voice 1

280 MOVIE By BY loaded with Write Pointer
29. MOW ARM A loaded with Yin voice 13
30. OUT JNZ(10) COUNT if time not up, continue
31~ RET else done with notes

In TABLE VIII, the entry point is START. The registers
within the BYWAY processor include a C latch, a DE
register, and an AL register DUO is a location in
memory. The C register stores the low-order half of the
Write Pointer. The DE register stores the Read Pointer
for voice 2. The HO register stores the Read Pointer
for voice 1. The DUO register stores the address of the
current byte. Accordingly, DUO is stepped through 256
sample counts. The DUO register wraps around so that
after counting through 256 counts, it commence to count
through a second set of 256 counts and so forth

In TABLE VIII, the program routine is exited whenever
the decay time has elapsed by proceeding from statement
30 to statement 31~ If the decay time has not elapsed,
the statement 30 jumps to the COUNT statement 15 and
continues processing.

The manner of determining the modification of the
En. (5) type is that of a circular buffer technique A
common Write Pointer is shared by all voices. Each

STFD2/WAV
STAN 3411 DEL/A (S80 20~ -52
83~01/27

So
voice has a separate Read Pointer. Both the Write
Pointer and the Road Pointer for each voice are pepped
once per execution of the LOOP. The pitch number, No
fox each voice, TV is not pored explicitly but rather
is the difference between the Write Pointer and the Read
Pointer for that Voice the Write Pointer for voice 1
it formed using the B and C registers by moving contents
of register H to B. The Write Pointer is formed by
moving the contents of register D to register By The
low order byte in register C 3 in the register pairs BY
is incremented or decrement Ed without affecting the
high-order byte B.

the TABLE VIII routine handles the sampling frequency
timing by decrementing a timer DUO once every 256
samples.

While the 2 voice embodiment its another example of the
wave table modification method of the present invention,
the particular implementation, with current MicroPro
censor technology is only adequate to handle two voices.
Of course, as microprocessors with treater and greater
capability are produced, then the circular buffet
techniques described will be able to implement a greater
number of voices.

In the Fig. 5 instrument, the hither harmonics decay
much faster than the lower harmonics, so that the tone
decays to an almost pure sine wave, no matter what
initial spectrum it has, eventually decaying to a
constant value silence).

Many alternative initial conditions can be specified.
In concrete terms, this amounts to reloading the
wave table with appropriate values. The initial values

STFD2/WAV
STAN 3411 DEL/A (S80-20) -53
83/~1/27

I 69 Jo
.,;., I.
can form a wine wave; triangle wave, OX any other
desired waveform. However, it it generally not nieces-
spry to do anything Jo complicated. Since it it desire
able to have many high harmonics initially the buffer
in the Fig. 5 instrument is filled with random values
This produces a plucked-string sound very similar to a
guitar. One fast way to fill the bluffer is to use
two level randomness. Mathematically, the initial
conditions are given as follows for n between N and I

Yin = PA, probability (291)
ye = -A, probability (292)

Single-bit randomness of this form is easily produced
with a feedback shi~t-register for the random bit
generator 57 it Fig. 5. Such an embodiment is simpler
than a full random word generator. The parameter A
provides for amplitude control, with the amplitude of
the output directly proportional to A.

After a note has been played, it is not always necessary
to reload the buffer with random values before playing
the next note. If the tone has not decayed too far, the
result is a slur between the two pitches. This
technique is particularly effective if the circular
buffer technique is used, wince increases in N merely
utilize grab more of the previous samples, while a
similar increase using a decreasing counter would give
undefined values past the end of the buffer wave table

If the initial buffer load is periodic with a period
that divides M, the tone has a pitch that corresponds to
the periodicity of the buffer load, which is a harmonic
of N. This harmonic trick is implemented ho filling

STFD2/WAV
STAN 3411 DEL/A ISSUE) -54-
~3/01/~7


5~6~
half (or third, quarter, ...) of the buffer with
randomness when duplicating those sample to fill the
rest of the buffer. wince short buffers (small N) delay
much faster Han long buffers, this provides a way Jo
lengthen high pitched notes The decay-stretching
method mentioned below is an additional more general,
more powerful and more ~ime-intensive method or
achieving the same result

One variant replaces Yn_N_l with Yn_N~1~ c g g
pitch to N rather than No. In a single voice
algorithm, this variant permits compensation to period N
by using the extra time of the wrap-around in the
decreasing counter technique. If the extra time it set
to half the normal sample time, then the average
sampling rate is T~1+1/2N). This means that the
frequency of the tone is l/~(T)(N-l/j2N)~].

Shortening the decay times is harder to achieve than
lengthening them. One possibility is to change the
recurrence to one that smooths out the waveform faster.
For example,

Yin on [Yn-N-l+2yn-N+yn-N-~lJ/4 (30)

The algorithm of En. (30) takes more compute power, so
the shortened decay time is usually offset by an
increase in the time it takes to compute a sample. the
variations described below can be applied to the
En. (30) algorithm as easily as to the En. (5) allegro-
item.

A simple variation of the basic En. I algorithm yields
drum timbres. The simplest description of the drum
variant is a probabilistic recurrence relation:

STFD2/WAV
STAN 3411 DEL/A (S80-20) -55-
83/01/27

I
Yin Lenin Yn_N_l), probability b ill

Yin tenon + Yin probability lo (312)
The normal initial conditions are two-level randomness.

Thy parameter b is called the blend factor. With a
blend factor of one, the algorithm reduces to the basic
plucked-~tring algorithm, with N controlling the pitch.
With a blend factor of one-half, the sound is drum-like.
Intermediate values produce ~oundg intermediate between
plucked stying and drum, some of which are quite
interesting musically. Values less Han % are also
interesting. Note that b = requires only a single bit
of randomness on each sample. Using arbitrary values
fox b requires a comparison with a full random word.

For b close to I, the buffer length does not control the
pitch of the tone, as the sound is aperiodic. Instead
it controls the decay time of the noise burst. For
large N around 200) and a sampling period of about 50
microseconds, the effect is that of a snare drum. For
small N (around 20), the effect is that of a Tom Tom
Intermediate values provide intermediate timbres,
allowing smooth transition from one drum sound to
another. For these drum sounds, the buffer can be
filled with a constant (A) initially, as the algorithm
will create the randomness itself.

Using small word sizes like 8 bits) makes round-off
error a problem. To the algorithms described, round-off
error is not random, but a consistent rounding-down of
the samples. This effect significantly reduces the
decay time of the fundamental frequency (when compared
to the theoretical decay time, or the decay time when

STFD2/WAV
STAN 3411 DEL/A (S80-20~ -56-
83/01/27

~2~S~6~ I
the algorithm is computed with much larger word sizes).
The effect can be almost eliminated by randomly adding O
or 1 I Yin N Ye before dividing by I this
bi~twiddle technique lengthens the final decay of gee
fundamental roughly back to its theoretical decay time,
without appreciably lengthening the initial attack of
the tone.

To get longer decay times for plucked string or drum) t
decay-stre~ching can be used. For drums, this has the
effect of increasing the "snare" sound, allowing smaller
values of N to be used The recurrence relation for
stretched sounds is

Yin Yin probability bud (321)

Yin Yin probability if by d)(322~
Yin Yin + Yn_N_l) probability by (323)

Yin Yin + Yn-N-l) probability (webbed ~324)

The new parameter d is called the decay-rate multiplier
and lies in the range O to 1. Sometimes for convenience
we talk about the stretch factor s = l/d. Note that the
decay rate multiplier and blend factors are independent,
so the arrhythmia can be implemented with two separate
tests, an no multiplies are needed The decay time of
the tone is approximately proportional to s. The pith
of the sound is also affected by d, as the period is now
approximately N + Ed. The optimum choice for d depends
on the sampling rate, N, and the effect desired. By
choosing d approximately proportional to N or N , the
decay rates of the higher pitches can be made comparable
to the decay rates for the lower ones. Note that for

STFD2/~V
STAN 3411 DEL/A (S80 20) -57-
owlet

~2~L~86~
do the recurrence relation impulse Jo that of the
unstretched algorithm. For do the sound does not
decay. If by this it the wave table synthesis
algorithm of En. I if by white noise is produced

It drum sounds are not desired, b can be set to one,
simplifying the algorithm. With random buffer loads,
the. sound is a plucked string, with decay time
proportional to d. If non-random buffer loads are used
with blue and large values of s, woodwind-like sounds Jan
be produced

The embodiments described have employed a single
sampling frequency, is, for all of one or more voices.
Of course, is can be made different for each voice. For
example, the clock frequency for the clock unit (ILK) in
Fig. 6 can be made a variable by a program command of a
quantity Q from bus 47 (or otherwise) which provides
control of the frequency to the control logic 71. The
clock frequency is divided by Q and a different value of
Q can be provided for each voice so that each voice has
a different sampling frequency. Also the sampling
frequency for any voice can vary as a function of time
by varying Q as a function of time.

The embodiments of the present invention have been
implemented using a single digital-to-analog converter
for all voices in a multi-voic~ instrument. In an
alternative embodiment, each voice may have its own
digital-to-analog converter and the analog outputs from
a plurality of such converters can then be summed, for
example, in a summing amplifier before the low-pass
filter 10 of Fig, 2.


STFD2/WAV
STAN 3411 DEL/A (S80-20) ~58-
83/01/27

I ~2~5~6~
While the invention has been particularly shown and
described with reference to preferred embodiment
thereof, it will be understood by those skilled it the
art that the foregoing and and other change in form and
detail may be made wherein without departing from the
spirit and scope of he invention.




STFD2/WAV
STAN 3411 DEL/A (S80-20) -59-
83/01/27

Representative Drawing

Sorry, the representative drawing for patent document number 1215869 was not found.

Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date 1986-12-30
(22) Filed 1984-01-31
(45) Issued 1986-12-30
Expired 2004-01-31

Abandonment History

There is no abandonment history.

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Application Fee $0.00 1984-01-31
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
BOARD OF TRUSTEES OF THE LELAND STANFORD JUNIOR UNIVERSITY
Past Owners on Record
None
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Drawings 1993-07-19 3 129
Claims 1993-07-19 12 428
Abstract 1993-07-19 1 20
Cover Page 1993-07-19 1 20
Description 1993-07-19 59 2,353