home *** CD-ROM | disk | FTP | other *** search
- The following attachment, while is a public record, contains copyrighted
- material as to its format. The pictures, however, seem to be freely
- distributable. This attachment is solely for your enjoyment, and is not
- intended for use in the legal setting. The text attachment has been
- slightly edited to remove preliminary legalese. Please do not
- re-distribute in any form on a web page, ftp site, etc.
-
- Enjoy.
-
- =====================================
- SOUND INTERFACE CIRCUIT
-
- (C) FORMAT ONLY 1996 KNIGHT-RIDDER IN- ALL RTS. RESERV.
-
- PATENT NO.: 4,677,890
- ISSUED: July 07, 1987 (19870707)
- INVENTOR(s): Yannes, Robert J., Media, PA (Pennsylvania), US (United States
- of America), (
- APPL. NO.: 6-455,974
- FILED: February 27, 1983 (19830227)
-
- ABSTRACT
-
- A sound interface circuit is implemented in large scale integrated
- circuitry (LSI) on a single chip to provide 3 voice electronic music
- synthesizer/sound effects, and is compatible with instructions from
- commercially available microprocessors; whereof a wide range,
- high-resolution control of pitch (frequency) tone color (harmonic content)
- and dynamics (volume) is achieved and specialized control circuitry
- minimizes software overhead, facilitating use in arcade/home video games
- and low cost musical instruments.
-
- DESCRIPTION OF THE DRAWINGS
-
- The features, operation and advantages of this invention will be readily
- understood from a reading of the following detailed description of the
- invention with the accompanying drawings in which like numerals refer to
- like elements and in which:
-
- FIG. 1 is a block circuit diagram of the system environment application
- of the invention.
-
- FIG. 2 is a block circuit diagram of the invention.
-
- FIG. 3 is a timing diagram for the "read cycle" of the circuit of the
- invention.
-
- FIG. 4 is a timing diagram for the "write cycle" of the circuit of the
- invention.
-
- FIGS. 5 (a) and (b) show a response curve for a string instrument
- frequency response curve and that provided by the invention, respectively.
-
- FIGS. 6 (a) and (b) show a frequency response curve for a percussion
- instrument and that provided by the invention, respectively.
-
- FIGS. 7(a) and (b) show a frequency response curve for an organ and that
- provided by the invention, and a unique synthesized sound, respectively.
-
- FIG. 8 is a detailed block circuit diagram for the data buffers 33 of
- FIG. 2.
-
- FIG. 9 is a detailed block circuit diagram for the potentiometer
- interface 39 of FIG. 2.
-
- FIG. 10 is a detailed block circuit diagram for the modulator 55 of FIG.
- 2.
-
- FIG. 11 is a circuit diagram for the switch 69 of FIG. 2
-
- FIG. 12 is a block circuit diagram for the tone oscillator 41 of FIG. 2.
-
- FIG. 13 is a block circuit diagram for the envelope generator 49 of FIG.
- 2; and
-
- FIG. 14 is a block circuit diagram for the volume controller 61 of FIG.
- 2.
- FIG. 15 is a block circuit diagram for the filter 65 of FIG. 2.
-
- BACKGROUND OF THE INVENTION
-
- The invenlion relates to sound synthesizer and sound effects generator
- circuits, and particularly to single chip implemented circuits compatible
- with discrete logic or LSI processors for generating sound effects and/or
- musical notes when used independently or with external audio sources.
-
- An object of this invention is to provide a sound synthesizer circuit on
- a single LSI chip which is compatible with NMOS technology.
-
- A second object of this invention is to provide such a circuit which is
- capable of generation of 3 separate tones with a frequency of 0 to 4 KHz.
-
- A third object of this invention is to provide such a circuit which is
- capable of generating 4 waveforms from each of the 3 separate tone
- generators/oscillators.
- Another object of this invention is to provide such a circuit with 3
- amplitude modulators with a range of 48 dB.
-
- Another object of this invention is to provide such a circuit with 3
- envelope generators capable of exponential responses for "attack rate" of 2
- ms to 8 s, for "decay rate" of 6 ms. to 24 s, for "sustain level" of 0 to
- peak volume, and for "release rate" of 6 ms to 24 s.
-
- A further object of this invention is to provide such a circuit with ring
- modulation, oscillator synchronization and programmable filter
- capabilities.
-
- SUMMARY OF THE INVENTION
-
- The objects of this invention are realized in an LSI, NMOS implemented
- three "voice" synthesizer circuit which is interfaced between a sound
- instruction source and a sound production element, which synthesizer
- generates the electronic signals needed to drive the sound production
- element.
-
- The invention generates or synthesizes 3 "voices" which can be used
- independently or in conjunction with each other (or external audio sources)
- to create complex sounds. Each voice is provided by a tone
- Oscillator/Waveform Generator, an Envelope Generator and an Amplitude
- Modulator. The Tone Oscillator controls the pitch of the voice over a wide
- range. The Oscillator produces four waveforms at the selected frequency,
- with the unique harmonic content of each waveform providing simple control
- of tone "color". The volume dynamics of the oscillator are controlled by
- the Amplitude Modulator under the direction of the Envelope Generator. When
- triggered, the Envelope Generator creates an amplitude envelope with
- programmable rates of increasing and decreasing volume. In addition to the
- three voices, a programmable filter is provided for generating complex,
- dynamic tone colors via substractive synthesis.
-
- A microprocessor reads the changing output of the third Oscillator and
- third Envelope Generator. These outputs can be used as a source of
- modulation information for creating vibrato, frequency/filter sweeps and
- similar effects. The third oscillator can also act as a random number
- generator for games. Two A/D converters are provided for interfacing with
- potentiometers. These can be used for "paddles" in a game environment or as
- a front panel controls in a music synthesizer. External audio signals can
- be processed, thereby allowing duplicate circuits of the invention to be
- daisy-chained or mixed in complex polyphonic systems.
-
- DETAILED DESCRIPTION OF THE INVENTION
-
- A sound interface circuit is provided by a programmably adjustable 3
- voice (i.e. tone) sound frequency synthesizer (i.e. generator) whose
- frequency range, waveform and wave characteristics (i.e. ramp to a peak or
- "attack rate", fall off or "decay rate" to a sustain level, steady state
- "note" frequency or "sustain level" and fall off to zero or "release rate")
- are programmably selectable.
-
- The synthesizer is provided on a single-chip in a LSI (large scale
- integration) circuit using NMOS technology and is information compatible
- with commercially available microprocessors such as the Commodore 6505. A
- wide range of frequencies, high resolution control of pitch, tone color
- (harmonic content) and dynamics (volume) is possible. Control circuitry
- minimizes the software instructions needed.
- A typical application for the invention shown in FIG. 1; here the sound
- interface circuit invention 11 is utilized in conjunction with a
- microprocessor 13 in a arcade/home video game device or in a low cost
- musical instrument. The microprocessor 13 receives clock pulses from a
- clock circuit 15 which is driven by a 1 MHz oscillator 17. The
- microprocessor 13 provides address decoding or address line information 19
- to the sound interface circuit 11. Microprocessor 13 also provides program
- instructions to specify the frequency for each of the 3 tone oscillators
- within the sound interface circuit 11, as well as the waveform for each
- oscillator, this waveform being selectable from the class of triangular
- waves, soft tooth waves, variable pulse (i.e. square waves) or noise (white
- noise). Each of the three oscillators resident in the sound interface
- circuit 11 may be instructed to generate one of the selected wave forms or
-
- each oscillator generate the same waveform of different frequency and
- envelope. The microprocessor 13 also provides program instructions to three
- amplitude modulators within the sound interface circuit to instruct each as
- to the "volume" output. Three envelope generators also receive programmable
- instructions as to attack rate, decay rate, sustain rate, and release rate.
-
- The sound interface circuit 11 also contains a programmable filter whose
- "notch" is adjustable as well as its resonance, as well as cut-off range
- and roll-off. This programmable filter receives instructions from the
- microprocessor 13.
-
- The programmable filter also has a low pass, band pass, and high pass
- filter sections which are selectably operable under instructions from the
- microprocessor 13.
-
- All of the above processor 13 instructions are transferred between the
- microprocessor 13 and the sound interface circuit 11 via the data lines 21.
- A reset circuit 23 whose function is either operator initiated or clock
- initiated resets both the microprocessor 13 and the sound interface circuit
- 11 functions via the information line 25.
-
- The sound interface circuit 11 receives instructions from operator and/or
- "player" controlled input paddles 27. This circuit 11 also receives
- auxiliary audio input 29 and provides audio output 31.
-
- A circuit block diagram, FIG. 2, shows the sound interface circuit 11 of
- FIG. 1. Data buffers 33 receive the instructions via the data lines 21 from
- the microprocessor 13. These data buffers 33 feed a data bus 35 which is
- interconnected with each of the circuit subsystems of the sound interface
- circuit 11. Access information fed via other data lines 21 is provided to
- an access control circuit 37.
-
- Operator instructions via operator paddles 27 is input to a plurality of
- potentiometers 39 which are connected to the data bus 35.
-
- Three individual and independent tone oscillators 41, 43, and 45 each
- generate an independent waveform and are operated under instructions from
- the data bus 35. The tone oscillators 41, 43, 45 are interconnected via
- synchronization instruction lines 47.
-
- Three discrete and independently operating envelope generators 49, 51,
- and 53 each receive individual instructions from the data bus 35
- connection.
-
- The first tone oscillator 41 and the first envelope generator 49 outputs
- are connected to a first amplitude modulator 55, while the second tone
- oscillator 43 and second envelope generator 51 outputs are connected to a
- second amplitude modulato 57 and the output of the third tone oscillator 45
- and the third envelope generator 53 are connected to a third amplitude
- modulato 59 Each of the tone oscillators is independently capable of
- providing a square wave, saw tooth wave, triangular wave or white noise,
- while each envelope generator defines the attack rate, decay rate, sustain
- level and release rate of the "tone" or "voice" to be generated.
-
- Each amplitude modulator 55, 57, 59, provides a "sound frequency"
- envelope which is either fed directly into a volume controller 61 via data
- line 63 or fed directly into a filter 65 via information line 67. This
- selection between information line 63 and 67 being selectively made
- individually or in unison by individual instruction word responsive
- switches 69, 71, 73, whereof switch 69 is connected on the output of
- amplitude modulator 55, switch 71 is connected on the output of amplitude
- modulator 57 and switch 73 is connected on the output of amplitude
- modulator 59. The switch 73 also has a disconnect position 68 so that the
- output of the third amplitude modulator 59 can be cut out of the system
- altogether.
-
- Frequency range tuning capacitors 75 are connected to the filter 65. The
- output of the filter 65 is fed to the volume controller 61 whose output is
- fed through an amplifier 77 as the audio output 31.
-
- The auxiliary audio input 29 can be selectably fed through the switch 79
- to either the volume controller 61 or the filter 65.
-
- The electronic circuitry which implements each of the elements described
- hereinabove in conjunction with FIG. 2 are program instruction controlled
- or program instruction checked or adjusted.
-
- There are 29 eight-bit registers in the circuit 11 which control the
- generation of sound. These registers are either WRITE only or READ only and
- are listed below in Table 1.
-
- TABLE 1
- Register
- ADDRESS REG #
- DATA REG REG
- No. A4
- A3
- A2
- A1
- A0
- (HLX)
- D7 Through D0
- NAME TYPE
- VOICE 1
- 00 0 0 0 0 0 00 FREQ LO WRITE-only
- 01 0 0 0 0 1 01 FREQ HI WRITE-only
- 02 0 0 0 1 0 02 PW LO WRITE-only
- 03 0 0 0 1 1 03 PW HI WRITE-only
- 04 0 0 1 0 0 04 CONTROL REG WRITE-only
- 05 0 0 1 0 1 05 ATTACK/DECAY
- WRITE-only
- 06 0 0 1 1 0 06 SUSTAIN/RELEASE
- WRITE-only
- VOICE 2
- 07 0 0 1 1 1 07 FREQ LO WRITE-only
- 08 0 1 0 0 0 08 FREQ HI WRITE-only
- 09 0 1 0 0 1 09 PW LO WRITE-only
- 10 0 1 0 1 0 0A PW HI WRITE-only
- 11 0 1 0 1 1 0B CONTROL REG WRITE-only
- 12 0 1 1 0 0 0C ATTACK/DECAY
- WRITE-only
- 13 0 1 1 0 1 0D SUSTAIN/RELEASE
- WRITE-only
- VOICE 3
- 14 0 1 1 1 0 0E FREQ LO WRITE-only
- 15 0 1 1 1 1 0F FREQ HI WRITE-only
- 16 1 0 0 0 0 10 PW LO WRITE-only
- 17 1 0 0 0 1 11 PW HI WRITE-only
- 18 1 0 0 1 0 12 CONTROL REG WRITE-only
- 19 1 0 0 1 1 13 ATTACK/DECAY
- WRITE-only
- 20 1 0 1 0 0 14 SUSTAIN/RELEASE
- WRITE-only
- FILTER
- 21 1 0 1 0 1 15 FC LO WRITE-only
- 22 1 0 1 1 0 16 FC HI WRITE-only
- 23 1 0 1 1 1 17 RES/FILT WRITE-only
- 24 1 1 0 0 0 18 MODE/VOL WRITE-only
- MISC
- 25 1 1 0 0 1 19 POTX READ-only
- 26 1 1 0 1 0 1A POTY READ-only
- 27 1 1 0 1 1 1B OSC3/RANDOM READ-only
- 28 1 1 1 0 0 1C ENV3 READ-only
-
- The description of each register is as follows:
-
- Voice 1
-
- FREQ. LO/FREQ. HI (Registers 00,01):
-
- Together these registers form a 16-bit number which linearly controls the
- frequency of oscillator 41. The frequency is determined by the following
- equation:Fout=(Fn * Fclk/16777216) HZ
-
- where Fn is the 16-bit number in the frequency registers and Fclk is the
- system clock. For a standard 1.8 Mhz clock, the frequency is given
- by:Fout=(Fn * 0.0596) Hz
- Frequency resolution is sufficient for any tuning scale and allows sweeping
- from note to note (portamento) with no discernable frequency steps.
-
- PW LO/PW HI Registers 02,03:
-
- Together these registers form a 12-bit number which linearly controls the
- pulse width (duty cycle) of the pulse waveform on oscillator 41. The pulse
- width is determined by the following equation:PWout=(PWn/49.95)%
-
- Where PWn is the 12-bit number in the pulse width register. The pulse
- width resolution allows the width to be smoothly swept with no discernable
- stepping. The pulse waveform of oscillator 41 must be selected in order for
- the pulse width registers to have any audible effect. A value of 0 or 4095
- in the pulse width registers will produce a constant DC output, while a
- value of 2048 will produce a square wave.
-
- Control Register (Register 04);
-
- This register contains eight control bits which select various options on
- oscillator 41:
-
- Gate (Bit 0)--The gate bit controls the envelope generator for voice 1.
- When this bit is set to a one, the envelope generator 49 is gated
- (triggered) and the attack/decay/sustain cycle is initiated. When the bit
- is rest to a zero, the release cycle begins. The envelope generator 41
- controls the amplitude of oscillator 41 appearing at the audio outlet of
- modulator 55. Therefore, the gate bit must be set (along with suitable
- envelope parameters) for the selected output of oscillator 41 to be
- audible.
-
- SYNC (Bit 1)--The sync bit, when set to a one, synchronizes the
- fundamental frequency of oscillator 41 with the fundamental frequency of
- oscillator 45, producing "hard xync" effects. Varying the frequency of
- oscillator 41 with respect to oscillator 45 produces a wide range of
- complex harmonic structures from voice 1 at the frequency of oscillator 45.
- In order for synchronization to occur oscillator 45 must be set to some
- frequency other than zero but preferably lower than the frequency of
- oscillator 41. No other paraments of voice 3 have any effect on
- synchronization.
- RING MOD (Bit 2) The ring mod bit, when set to a one, replaces the
- triangle waveform output of oscillator 41 with a "ring modulated"
- combination of oscillators 41 and 45. Varying the frequency of oscillator 1
- with respect to oscillator 3 produces a wide range of non-harmonic overtone
- structures for creating bell or song sounds and for special effects. In
- order for ring modulation to be audible, the triangular waveform of
- oscillator 41 must be selected and oscillator 45 must be set to some
- frequency other than zero. No other parameters of voice 3 have any effect
- on ring modulation.
-
- TEST (Bit 3)--The test bit, when set to a one, resets and locks
- oxcillator 41 at zero until the test bit is cleared. The noise waveform
- output of oscillator 41 is also reset and the pulse waveform output is held
- at a DC level. Normally this bit is used for testing purposes, however, it
- can be used to synchronize oscillator 41 to external events, allowing the
- generation of highly complex waveforms under real-time software control.
-
- TRIANGULAR (Bit 4)--When set to a one, the triangular waveform output of
- oscillator 41 is selected. The triangular waveform is low in harmonics and
- has a mellow, flute-like quality.
-
- SAWTOOTH (Bit 5)--When set to a one, the sawtooth waveform output of
- oscillator 41 is selected. The sawtooth waveform is rich in even and odd
- harmonics and has a bright, brassy quality.
-
- SQUARE (Bit 6)--When set to a one, the pulse waveform output of
- oscillator 41 is selected. The harmonic content of this waveform can be
- adjusted by the pulse width registers, producing tone qualities ranging
- from a bright, hollow sqaure wave to a nasal, reedy pulse. Sweeping the
- pulse width in real time produces a dynamic "phasing" effect which adds a
- sense of motion to the sound. Rapidly jumping between the different pulse
- widths can produce interesting harmonic sequences.
-
- NOISE (Bit 7)--When set to a one, the noise outlet waveform of oscillator
- 41 is selected. This output is a random signal which changes at the
- frequency of oscillator 41. The sound quality can be varied from a low
- rumbling to hissing white noise via the oscillator 41 frequency registers.
- Noise is useful in creating explosings, gunshots, jet engines, wind, surf
- and other unpitched sounds, as well as snare drums and cymbals. Sweeping
- the oscillator frequency with noise selected produces a dramatic rushing
- effect.
-
- One of the output waveforms must be selected for oscillator 41 to be
- audible, however, it is not necessary to de-select waveforms to silence the
- output of voice 1. The amplitude of voice 1 at the final output is a
- function of the envelope generator 49 only.
-
- Oscillator output waveforms are not additive. If more than one output
- waveform is selected simultaneously, the result will be a logical ANDing of
- the waveforms.
-
- ATTACK/DECAY (Register 05): Bits 4-7 of this register select 1 of 16
- attack rates for the voice 1 envelope generator 49. The attack rate
- determines how rapidly the output of voice 1 rises from zero to peak
- amplitude when the envelope generator 49 is gated.
-
- Bits 0-3 of this register select 1 of 16 decay rates for the envelope
- generator 49. The decay cycle follows the attack cycle and the decay rate
- determines how rapidly the output falls from the peak amplitude to the
- selected sustain level.
-
- SUSTAIN/RELEASE (Register 06): Bits 4-7 of this resistor select 1 of 16
- sustain levels for the envelope generator 49. The sustain cycle follows the
- decay cycle and the output of voice 1 will remain at the selected sustain
- amplitude as long as the gate bit remains set. The sustain levels range
- from zero to peak amplitude in 16 linear steps, with a sustain value of 0
- selecting zero amplitude and a sustain value of 15 (HF) selecting the peak
- amplitude. A sustain value of 0 would cause voice 1 to sustain at an
- amplitude one-half the peak amplitude reached by the attack cycle.
-
- Bits 0-3 of the register select 1 of 16 release rates for the envelope
- generator 49. The release cycle follows the sustain cycle when the gate bit
- is reset to zero. At this time, the the output of voice 1 will fall from
- the sustain amplitude to zero amplitude at the selected release rate. The
- 16 release rates are identical to the decay rates.
-
- The cycling of the envelope generator 49 can be altered at any point via
- the gate bit. The envelope generator 49 can be gated and released without
- restriction. If the gate bit is reset before the envelope has finished the
- attack cycle, the release cycle will immediately begin starting from
- whatever amplitude had been reached. If the envelope is then gated again
- (before the release cycle has reached zero amplitude), another attack cycle
- will begin starting from whatever amplitude had been reached. This
- technique can be used to generate complex amplitude envelopes via real time
- software control.
-
- Registers 07 to 00 control the second oscillator 43 and the second
- envelope generators to provide voice z, and are identical to the structure
- and operation of the register 00 to 06 described above to control the first
- oscillator 41 and the first envelope generator 49 to provide voice 1, with
- the following exceptions:
-
- When selected, the instruction initiates a SYNC synchronization of
- oscillator 43 with oscillator 41.
-
- When selected the ring mod instruction replaces the triangle output of
- oscillator 43 with a "ring modulated" combination of oscillators 41 and 43.
-
- Voice 3
- Registers OE to 14 control the generation of Voice 3 via the control of
- oscillator 45 and envelope generator 53 and are functionally identical in
- structure and operation to registers 00-06 with these exceptions:
-
- When selected the SYNC instruction initiates a synchronization of
- oscillator 45 with oscillator 43 via line 47.
-
- When selected, the RING MOD instruction replaces the triangle output of
- oscillator 45 with the "ring modulated" combination of oscillators 43 and
- 45.
-
- Typical operation of a voice consists of selecting the desired
- parameters: frequency, waveform,effects (SYNC, RING MOD) and envelope
- rates, then gating the voice whenever the sound is desired. The sound can
- be sustained for any length of time and terminated by clearing the gate
- bit. Each voice can be used separately, with independent parameters and
- gating, or in unison to create a single powerful voice. When used in unison
- a slight detuning of each oscillator or tuning to musical intervals creates
- a rich, animated sound.
- Filter 65:
-
- FC LO/FC HI (Registers 15 to 16)--Together these registers form an 11-bit
- number which linearly controls the cutoff (or center) frequency of the
- programmable filter 65. The approximate cutoff frequency is determined by
- the following equation:FCout=((6.6E-8 +FCn * 1.28E-8)/C) Hz
-
- Where FCn is the 11-bit number in the cutoff registers and C is the value
- of the two filter capacitors 75 connected to the filter 65. For the
- recommended capacitor value of 2200 pF, the approximate range of the filter
- 15 is 30 Hz-12 kHz according to the following equation:FCout=(30+FCn * 5.8)
- Hz
-
- The frequency range of the filter 65 can be altered to suit specific
- applications.
-
- RES/FILT (Register 17)--Bits 4-7 of this register (RESO,RES3) control the
- resonance of the filter 65. Resonance is a peaking effect which emphasizes
- frequency components at the cutoff frequency of the filter 65, causing a
- sharper sound. There are 16 resonance settings, ranging linearly from no
- resonance (0) to maximum resonance (15 or $F).
-
- Bits 0-3 determine which signals from among Voice 1, 2 and 3 will be
- routed through the filter 65: via the switches 69, 71, 73 respectively.
-
- FILT 1 (Bit 0)--When set to a zero. Voice 1 from modulator 55 appears
- directly at the audio output and the filter 65 has no effect on it. When
- set to a one, Voice 1 will be processed through the filter and the harmonic
- content of Voice 1 will be altered according to the selected Filter
- parameters.
-
- FILT 2 (Bit 1)--Same as bit 0 for Voice 2.
-
- FILT 3 (Bit 2)--Same as bit 0 for Voice 3.
-
- FILTEX (Bit 3)--Same as bit 0 for external audio input.
-
- MODE/VOL (Register 18)--Bits 4-7 of this register select various Filter
- mode and output options:
- LP (Bit 4)--When set to a one, the "low pass" mode of the filter 65 is
- selected and sent to the audio output 31 via volume controller controller
- 61. For a given filter 65 input signal, all frequency components below the
- filter cutoff frequency are passed unaltered, while all frequency
- components above the cutoff are attenuated a a rate of 12 dB/octive. The
- "low pass" mode produces full-bodied sounds.
-
- BP (Bit 5)--Same as bit 4 for the "band pass" mode. All frequency
- components above and below the cutoff are attenuated at a rate of 6
- dB/octive. The band pass mode produces thin, open sounds.
-
- HP (Bit 6)--Sume as bit 4 for the High Pass output. All frequency
- components above the cutoff are passed unaltered, while all frequency
- components below the Cutoff are attenuated at a rate of 12 dB/Octabe. The
- High Pass mode produces tinny, buzzy sounds.
-
- 3 OFF (Bit 7)--When set to a one, the output of modulator 59 i.e., Voice
- 3, disconnected from the direct audio path 63 to volume controller 61.
- Switching Voice 3 to bypass the filter 65 (FILT 3-0) and setting switch 73
- to the "off" position prevents Voice 3 from reaching the audio output 31.
- This allows Voice 3 (modulator 59 output) to be used for modulation
- purposes without any undesirable output.
-
- The filter 65 outputs are additive and multiple filter modes may be
- selected simultaneously. For example, both LP and HP modes can be selected
- to produce a "Notch" (or Band Reject) filter 65 response. In order for the
- filter 65 to have any audible effect, at least one filter output must be
- selected and at least one Voice must be routed through the Filter. The
- Filter is, perhaps, the most important element in register number 10 as it
- allows the generation of complex tone colors via subtractive synthesis (the
- Filter is used to eliminate specific frequency components from a
- harmonically-rich input signal). The best results are achieved by varying
- the Cutoff Frequency in realtime. Further discussion of the Filter appears
- in Appendix C.
-
- Bits 0-3 (VOL0-VOL3) select 1 of 16 overall volume levels for the volume
- controller 61 providing the final composite audio output 31. The output
- volume 61 levels range from no output (0) to maximum volume (15 or OF) in
- 16 linear steps. This control can be used as a static volume control for
- balancing levels in multi-chip systems or for creating dynamic volume
- effects, such as tremolo.
-
- POTX (Register 19)--Th1s register allows the microprocessor 13 to read
- the position of the potentiometer 39 tied to POTX signal 27. Values range
- from 0 at minimum resistance, to 255 (FF) at maximum resistance. The value
- is updated every 512 clock cycles.
-
- POTY (Register lA)--Same as POTX for the pot 29 tied to the POTY signal
- 27.
-
- OSC/3 RANDOM (Register 18)--This register allows the microprocessor 11 to
- read the upper 8 output bits of oscillator 45. The character of the numbers
- generated is directly related to the waveform selected. If the "sawtooth"
- waveform of oscillator 45 is selected, this register will present a series
- of numbers incrementing from 0 to 255 (FF) at a rate determined by the
- frequency of oscillator 45. If the "triangle" waveform is selected, the
- output will increment from 0 up to 255, then decrement down to 0. If the
- pulse square waveform is selected, the output will jump between 0 and 255.
- Selecting the "noise" waveform will produce a series of random numbers,
- therefore, this register can be used as a random number generator for
- games. There are numerous timing and sequencing applications for the OSC 3
- register, however, the chief function is probably that of a modulation
- generator. The numbers generated by this register can be added, via
- software, to the oscillator or filter frequency registers or the pulse
- width registers in real-time. Many dynamic effects can be generated in this
- matter. Siren-like sounds can be created by adding the OSC 3 sawtooth
- output to the frequency control of another oscillator. Synthesizer "sample
- and hold" effects can be produced by adding the OSC 3 "noise" output to the
- filter frequency control registers. Vibrato can be produced by setting
- oscillator 45 to a frequency around 7 Hz and adding the OSC 3 "triangle"
- output (with proper scaling) to the frequency control of another
- oscillator. An unlimited range of effects are available by altering the
- frequency of oscillator 45 and scaling the OSC 3 output. Normally, when
- oscillator 45 is used for modulation, the audio output of voice 3 should be
- eliminated (3 OFF=1).
-
- ENV 3 (Register 10)--Sames as OSC 3, but this register allows the
- microprocessor 13 to read the output of the voice 3 envelope generator 53.
- This output can be added to the filter frequency to produce harmonic
- envelopes, and similar effects. "Phaser" sounds can be created by adding
- this output to the frequency control registers of an oscillator. The voice
- 3 envelope generator 53 must be gated in order to produce any output from
- this register. The OSC 3 register, however, always reflects the changing
- output of the oscillator 45 and is not affected in any way by the envelope
- generator 53.
-
- FIG. 3 shows the timing diagram and symbol table for a "read cycle"
- operation of the sound interface circuit 11. FIG. 4 shows the timing
- diagram for a "write cycle" operation of the sound interface circuit 11.
-
- Each of the four-part ADSR (attack, decay, sustain, release) envelope
- generators 49, 51, 53 has been proven in electronic music to provide the
- optimum trade-off between flexibility and ease of amplitude control.
- Appropriate selection of envelope parameters allows the simulation of a
- wide range of percussion and sustained instruments. The violin is a good
- example of a sustained instrument. The violinist controls the volume by
- bowing the instrument. Typically, the volume builds slowly, reaches a peak,
- then drops to an intermediate level. The violinist can maintain this level
- for as long as desired, then the volume is allowed to slowly die away. A
- comparison of a type violin response curve, FIG. 5(a), is shown against the
- frequency response curve generated by the sound interface circuit 11, FIG.
- 5(b). The "tone" can be generated by the circuit 11 at the intermediate
- sustain level for as long as desired. The tone will not begin to die away
- until "Gate" is cleared. With minor alterations, this basic envelope can be
- used for brass and woodwinds as well as strings.
-
- An entirely different form of envelope is produced by percussion
- instruments such as drums, cymbals and gongs, as well as certain keyboards
- such as pianos and harpsichords. The percussion envelope is characterized
- by a nearly instantaneous "attack", immediately followed by a "decay" to
- zero volume. Percussion instruments cannot be sustained at a constant
- amplitude. For example, the instant a drum is struck, the sound reaches
- full volume and decays rapidly regardless of how it was struck A typical
- cymbal frequency response envelope is represented in FIG. 6(a). A
- synthesized frequency response from the circuit 11 is represented in FIG.
- 6(b).
-
- For the frequency response of FIG. 6(a) the tone immediately begins to
- decay to zero amplitude after the peak is reached. The circuit 11 can
- accurately synthesize this response regardless of when Gate is cleared. The
- amplitude envelope pianos and harpsichords is somewhat more complicated,
- but can be generated. These instruments reach full volume when a key is
- first struck. The amplitude immediately begins to die away slowly as long
- as the key remains depressed. If the key is released before the sound has
- fully died away, the amplitude will immcdiately drop to zero. These typical
- synthesized frequency responses are shown as FIG. 6(b).
-
- The most simple envelope is that of the organ. When a key is pressed, the
- tone immediately reaches full volume and remains there When the key is
- released, the tone drops immediately to zero volume. The frequency response
- curve for a typical organ zero volume. The frequency response curve for a
- typical organ "note" is shown as FIG. 7(a). The circuit 11 can accurately
- synthesize this frequency response. As synthesized the tone decays slowly
- until "Gate" is cleared, at which point the amplitude drops rapidly to
- zero.
-
- The circuit 11 has the ability to create original sounds rather than
- simulations of acoustic instruments. The circuit 11 is capable of creating
- envelopes which do not correspond to any "real" instruments. A good example
- would be the "backwards" envelope, whihc is characterized by a slow attack
- and rapid decay, which sounds very much like an instrument that has been
- recorded on tape then played backwards. This frequency response envelope is
- shown as FIG. 7(b).
-
- Many unique sounds can be created by applying the amplitude envelope of
- one "instrument" to the harmonic structure of another. This produces sounds
- similar to familiar acoustic instruments, yet notably different. In
- general, sound is quite subjective and experimentaion with various envelope
- rates and harmonic contents will be necessary in order to achieve the
- desired sound.
-
- The circuit elements of the sound interface circuit 11 shown in block
- diagram representation as FIG. 2, can be implemented using various hardware
- structures. Whether implemented as discrete components or as a monolithic
- large scale integrated circuit, these circuit elements are implemented
- using known structural elements and design concepts such as capacitors,
- field effect transistors (FET) registers, transistor gates and so forth.
-
- Data buffers 33 are shown in greater detail in FIG. 8. Oscillator 101
- feeds pulse frequency signals to a read-write cycle generator 103 which
- receives information from the microprocessor 13 via the data bus 35. The
- output from the read-write cycle generator is fed to an address buffer 105
- which in turn feeds an address decoder 107 to provide an instruction word
- 109, which when the circuit 11 is an 8-bit machine is transferred over the
- 8 data lines 109.
-
- The potentiometer interface 39 of FIG. 2 is implemented as shown in FIG.
- 9. The analog input 27 from the player control potentiometer is fed to an
- analog digital converter 111 which in turn feeds a counter 113. The counter
- 113 feeds a latched register 115 which has an 8 bit output 109(a).
-
- The amplitude modulator 55 can be further implemented as shown in FIG.
- 10. Control logic 117 receives the output signal from the envelope
- generator 119 and the output signal from the shaper 121 and provides
- control pulses to a modulator 123 which is driven by the oscillator 101.
- The control logic 117 also provides control instructions to an up-down
- counter 125 which in turn feeds information to the modulator 123. The
- output of the modulator 123 is connected to a digital analog converter 127
- which in turn provides the output 129 from the modulator 55. Up-down
- counter 125 also feeds a sustained comparator 131 which is connected to a
- divider 133. The divider 133 provides a divide by 1, divide by 30, divide
- by 16, divide by 4 and divide by 2 signals to the control logic 117.
-
- The switch 69 of FIG. 2 is implemented as shown in FIG. 11. Here a pair
- of FETs 135 and 137 implement the switch. These FETs 135, 137 each receive
- the modulator output 129 on their source pin and provide separate and
- independent outputs 139, 141, respectively, which are mutually exclusive
- through the cross-coupling of the FET 135, 137. The FET 135 or 137 is
- switched to conduction through an instruction signal 142.
-
- The tone oscillator 41 which provides the waveform generation function,
- FIG. 12, includes an individual and dedicated oscillator 143. Instruction
- words from the data bus 35 are input into a first control register 145 and
- a separate second control register 147. The first control register 145 is
- connected to and controls a frequency divider 149. The frequency divider
- 149 feeds a digital waveform select generator 151 which generates any of
- the four desired waveforms (sawtooth 153, triangular 155, square 157, and
- noise 159). Each of the waveforms generated by the generator 151 is fed via
- an individual line to the shaper digital to analog converter 161 which
- provides the analog representation of the waveform as output 121. The
- waveforms 153, 155, 157, 159, are provided by the generator 151 on a
- mutually exclusive basis under the control of the control register 147.
-
- Envelope generator 49 is shown in greater detail as FIG. 13. An
- instruction register 163 recives information from the data bus 35 and
- controls the operation of an envelope generator 165 which is driven from
- the oscillator 143 to provide the output 119.
-
- The volume controller 161 is implemented as an instruction register 167
- which controls the operation of an attenuator 169 to provide an output to
- the amplifier 77. The instruction register 167 receives instructions from
- the data bus 35 while the attenuator receives an input signal from digital
- filter 65 output 171 or from the output 139 of the switch 69.
-
- The filter 65 is implemented as shown in FIG. 15. A register 173 holds
- notch location information, high pass filter selection instructions, low
- pass filter selection instructions, band pass filter selection instructions
- and resonance frequency selection instruction which are received from the
- data bus 35. This register 173 sets a digital filter 175 which processes
- the analog output of the modulator 155 by a connection to its digital to
- analog converter 127 output 129. The output from the digital filter which
- either performs high pass, low pass or band pass functions on a mutually
- exclusive basis is gated by a gate 177 together to provide the output 171
- which is fed to the attenuator 169.
-
- Two non-overlapping clock pulses, the first clock pulse being designated
- ( PHI 1) and the second clock pulse being designated ( PHI 2) provide two
- operational periods for all of the circuitry described above in connection
- with FIGS. 8 through 15. The first clock pulse ( PHI 1) period allows for a
- transfer of information and conditioning of the circuitry. The second clock
- pulse ( PHI 2) establishes the logical operation or processing time period.
-
- The description of the circuitry above in regards to FIGS. 8-14 also
- provides a description of the circuitry for the oscillators 43, 45,
- envelope generators 51, 53, modulators 57,59 and switches 71,73,79.
-
- The above description of the invention is intended to be illustrative and
- is not intended to be taken in the limiting sense. Changes and
- modifications can be made without departing from the intent and scope
- thereof.
-
- What is claimed is:
-
- 1. A sound interface circuit for selectively generating a plurality of
- voices, for use in a home video game circuit, said name circuit having a
- programmable microprocessor holding digital instruction signals, analog
- game player inputs and providing a first and second non-overlapping clock
- pulses, comprising:
- data buffer circuit means for receiving said miroprocessor instruction
- signals for providing control instructions;
- a data bus connected to said buffer means for carrying said control
- instructions connected from said data buffer means;
- a means connected to said analog game play inputs for analog to digital
- transformation of each said analog player input to digital player
- instructions, said player instructions being fed to said data bus;
- a first, second and third tone oscillator circuit means, each individually
- operated and independently structured, for each providing a separate tone
- frequency according to a digital instruction signals from said data bus;
- a first, second and third envelope generator circuit means each
- individually operated and independently structured for each providing a
- frequency envelope format according to a digital instruction signals from
- said data bus;
- a first, second and third amplitude modulator circuit means, each
- independently structured for each providing an amplitude modulated signal,
- said first modulator circuit means being connected to said first tone
- oscillator circuit means and said first envelope generator circuit means,
- said second modulator circuit means being connected to said second tone
- oscillator circuit means and said second envelope generator circuit means,
- said third modulator circuit means being connected to said third tone
- oscillator circuit means and said third envelope generator means;
- a digital filter circuit means for shaping a signal, said digital filter
- circuit means operating according to digital instruction signals from said
- data bus and being connected thereto;
- a volume controller connected on said digital filter signals circuit means
- output and operative according to a digital instruction from said data bus;
- and being connected thereto; and
- switch circuit means for selectively interconnecting any of said first,
- second and third amplitude modulator circuit means outputs with said
- digital filter means.
- 2. The circuit of claim 1 wherein said switch circuit means also
- selectively interconnects any of said first, second and third amplitude
- circuit means outputs with said volume controller.
-
- 3. The circuit of claim 2 wherein said switch circuit means also
- selectively interconnects said game player analog to digital transformer
- means to said digital filter circuit means and said volume controller.
-
- 4. The circuit of claim 3 wherein said data buffer circuit means
- comprises:
- an oscillator;
- a read/write cycle generator connected to said oscillator and said
- microprocessor instruction signals;
- an address buffer connected to said read/write cycle generator; and
- an address decoder connected to said address buffer and to said data bus
- on its output.
-
- 5. The circuit of claim 4 wherein said analog transformer means includes:
- an A/D converter connected to said a said analog player input;
- a counter connected to said A/D converter output; and
- a latched register connected to said counter output, said latched register
- output being connected to said data bus.
-
- 6. The circuit of claim 5 wherein each said first, second and third tone
- oscillator means include structure as follows:
- a first control register connected to said data bus;
- a second control register connected to said data bus;
- a first dedicated oscillator;
- a frequency divider connected to said first dedicated oscillator and said
- first control register output;
- a digital wave form selection generator connected to said second control
- register output and said frequency divider output, said selection generator
- providing an output being either a triangular wave, a square wave or white
- nosie; and
- a signal shaper connected to the outputs of said wave form selection
- generator.
-
- 7. The circuit of claim 6 wherein said digital filter circuit means
- includes:
- a first register for holding notch location, high select, low select, band
- select and reasonance instruction signals, said first register having its
- input connected to said data bus;
- a digital filter connected to said first register output and to said first
- modulator, this digital filter having a high pass, low pass and band pass
- outputs; and
- a gate connected to said high pass, said low pass and said band pass
- outputs to gate said signals through on an exclusive basis.
-
- 8. The circuit of claim 7 wherein each said first second and third
- modulator circuit means include structure as follows:
- a control logic circuit having an input connection from a respective
- envelope generator;
- a modulator connected to said control logic circuit output said modulator
- having an input connection from said oscillator;
- an up-down counter connected to said control logic circuit output, said
- up-down counter having an output to said modulator;
- a D/A converter connected to said modulator out put;
- a sustain comparator connected to said up-down counter output; and
- a divider connected to said sustain comparator output, said divider output
- being connected back to said control logic circuit.
-
-