home *** CD-ROM | disk | FTP | other *** search
/ ftp.elysium.pl / ftp.elysium.pl.tar / ftp.elysium.pl / docs / cbm_patents / SID.TXT < prev    next >
Text File  |  2010-08-07  |  46KB  |  852 lines

  1. The following attachment, while is a public record, contains copyrighted
  2. material as to its format. The pictures, however, seem to be freely
  3. distributable. This attachment is solely for your enjoyment, and is not
  4. intended for use in the legal setting. The text attachment has been
  5. slightly edited to remove preliminary legalese. Please do not
  6. re-distribute in any form on a web page, ftp site, etc.
  7.  
  8. Enjoy.
  9.  
  10. =====================================
  11. SOUND INTERFACE CIRCUIT
  12.  
  13. (C) FORMAT ONLY 1996 KNIGHT-RIDDER IN-  ALL RTS. RESERV.
  14.  
  15. PATENT NO.:  4,677,890
  16. ISSUED:      July 07, 1987 (19870707)
  17. INVENTOR(s): Yannes, Robert J., Media, PA (Pennsylvania), US (United States
  18.              of America), (
  19. APPL. NO.:   6-455,974
  20. FILED:       February 27, 1983 (19830227)
  21.  
  22. ABSTRACT
  23.  
  24. A  sound  interface  circuit  is  implemented  in  large  scale  integrated
  25. circuitry  (LSI)  on  a  single  chip  to  provide 3 voice electronic music
  26. synthesizer/sound   effects,  and  is  compatible  with  instructions  from
  27. commercially    available    microprocessors;   whereof   a   wide   range,
  28. high-resolution  control of pitch (frequency) tone color (harmonic content)
  29. and  dynamics  (volume)  is  achieved  and  specialized  control  circuitry
  30. minimizes  software  overhead,  facilitating use in arcade/home video games
  31. and low cost musical instruments.
  32.  
  33. DESCRIPTION OF THE DRAWINGS
  34.  
  35. The  features, operation and advantages of this invention will be readily
  36. understood  from  a  reading  of  the following detailed description of the
  37. invention  with  the  accompanying drawings in which like numerals refer to
  38. like elements and in which:
  39.  
  40. FIG.  1  is a block circuit diagram of the system environment application
  41. of the invention.
  42.  
  43. FIG. 2 is a block circuit diagram of the invention.
  44.  
  45. FIG.  3  is  a  timing diagram for the "read cycle" of the circuit of the
  46. invention.
  47.  
  48. FIG.  4  is  a timing diagram for the "write cycle" of the circuit of the
  49. invention.
  50.  
  51. FIGS.  5  (a)  and  (b)  show  a  response  curve for a string instrument
  52. frequency response curve and that provided by the invention, respectively.
  53.  
  54. FIGS.  6  (a)  and  (b)  show a frequency response curve for a percussion
  55. instrument and that provided by the invention, respectively.
  56.  
  57. FIGS.  7(a) and (b) show a frequency response curve for an organ and that
  58. provided by the invention, and a unique synthesized sound, respectively.
  59.  
  60. FIG.  8  is  a  detailed block circuit diagram for the data buffers 33 of
  61. FIG. 2.
  62.  
  63. FIG.  9  is  a  detailed  block  circuit  diagram  for  the potentiometer
  64. interface 39 of FIG. 2.
  65.  
  66.  FIG. 10 is a detailed block circuit diagram for the modulator 55 of FIG.
  67. 2.
  68.  
  69. FIG. 11 is a circuit diagram for the switch 69 of FIG. 2
  70.  
  71. FIG. 12 is a block circuit diagram for the tone oscillator 41 of FIG. 2.
  72.  
  73. FIG.  13 is a block circuit diagram for the envelope generator 49 of FIG.
  74. 2; and
  75.  
  76. FIG.  14  is a block circuit diagram for the volume controller 61 of FIG.
  77. 2.
  78. FIG. 15 is a block circuit diagram for the filter 65 of FIG. 2.
  79.  
  80. BACKGROUND OF THE INVENTION
  81.  
  82. The  invenlion  relates  to sound synthesizer and sound effects generator
  83. circuits,  and  particularly to single chip implemented circuits compatible
  84. with  discrete  logic or LSI processors for generating sound effects and/or
  85. musical notes when used independently or with external audio sources.
  86.  
  87. An  object of this invention is to provide a sound synthesizer circuit on
  88. a single LSI chip which is compatible with NMOS technology.
  89.  
  90. A  second  object of this invention is to provide such a circuit which is
  91. capable of generation of 3 separate tones with a frequency of 0 to 4 KHz.
  92.  
  93. A  third  object  of this invention is to provide such a circuit which is
  94. capable  of  generating  4  waveforms  from  each  of  the  3 separate tone
  95. generators/oscillators.
  96. Another  object  of  this  invention  is to provide such a circuit with 3
  97. amplitude modulators with a range of 48 dB.
  98.  
  99. Another  object  of  this  invention  is to provide such a circuit with 3
  100. envelope generators capable of exponential responses for "attack rate" of 2
  101. ms  to  8 s, for "decay rate" of 6 ms. to 24 s, for "sustain level" of 0 to
  102. peak volume, and for "release rate" of 6 ms to 24 s.
  103.  
  104. A further object of this invention is to provide such a circuit with ring
  105. modulation,    oscillator    synchronization    and   programmable   filter
  106. capabilities.
  107.  
  108. SUMMARY OF THE INVENTION
  109.  
  110. The  objects  of  this invention are realized in an LSI, NMOS implemented
  111. three  "voice"  synthesizer  circuit  which  is  interfaced between a sound
  112. instruction  source  and  a  sound  production  element,  which synthesizer
  113. generates  the  electronic  signals  needed  to  drive the sound production
  114. element.
  115.  
  116. The  invention  generates  or  synthesizes  3  "voices" which can be used
  117. independently or in conjunction with each other (or external audio sources)
  118. to   create   complex   sounds.   Each   voice   is   provided  by  a  tone
  119. Oscillator/Waveform  Generator,  an  Envelope  Generator  and  an Amplitude
  120. Modulator.  The Tone Oscillator controls the pitch of the voice over a wide
  121. range.  The  Oscillator  produces four waveforms at the selected frequency,
  122. with  the unique harmonic content of each waveform providing simple control
  123. of  tone  "color".  The volume dynamics of the oscillator are controlled by
  124. the Amplitude Modulator under the direction of the Envelope Generator. When
  125. triggered,  the  Envelope  Generator  creates  an  amplitude  envelope with
  126. programmable  rates of increasing and decreasing volume. In addition to the
  127. three  voices,  a  programmable  filter is provided for generating complex,
  128. dynamic tone colors via substractive synthesis.
  129.  
  130. A  microprocessor  reads  the changing output of the third Oscillator and
  131. third  Envelope  Generator.  These  outputs  can  be  used  as  a source of
  132. modulation  information  for  creating vibrato, frequency/filter sweeps and
  133. similar  effects.  The  third  oscillator  can  also act as a random number
  134. generator  for  games. Two A/D converters are provided for interfacing with
  135. potentiometers. These can be used for "paddles" in a game environment or as
  136. a  front  panel controls in a music synthesizer. External audio signals can
  137. be  processed,  thereby  allowing duplicate circuits of the invention to be
  138. daisy-chained or mixed in complex polyphonic systems.
  139.  
  140. DETAILED DESCRIPTION OF THE INVENTION
  141.  
  142. A  sound  interface  circuit  is  provided by a programmably adjustable 3
  143. voice  (i.e.  tone)  sound  frequency  synthesizer  (i.e.  generator) whose
  144. frequency  range, waveform and wave characteristics (i.e. ramp to a peak or
  145. "attack  rate",  fall  off or "decay rate" to a sustain level, steady state
  146. "note" frequency or "sustain level" and fall off to zero or "release rate")
  147. are programmably selectable.
  148.  
  149. The  synthesizer  is  provided  on  a  single-chip  in a LSI (large scale
  150. integration)  circuit  using  NMOS technology and is information compatible
  151. with  commercially  available microprocessors such as the Commodore 6505. A
  152. wide  range  of  frequencies,  high resolution control of pitch, tone color
  153. (harmonic  content)  and  dynamics  (volume) is possible. Control circuitry
  154. minimizes the software instructions needed.
  155. A  typical  application for the invention shown in FIG. 1; here the sound
  156. interface   circuit   invention  11  is  utilized  in  conjunction  with  a
  157. microprocessor  13  in  a  arcade/home  video  game device or in a low cost
  158. musical  instrument.  The  microprocessor  13  receives clock pulses from a
  159. clock   circuit  15  which  is  driven  by  a  1  MHz  oscillator  17.  The
  160. microprocessor  13 provides address decoding or address line information 19
  161. to  the sound interface circuit 11. Microprocessor 13 also provides program
  162. instructions  to  specify  the frequency for each of the 3 tone oscillators
  163. within  the  sound  interface  circuit 11, as well as the waveform for each
  164. oscillator,  this  waveform  being  selectable from the class of triangular
  165. waves, soft tooth waves, variable pulse (i.e. square waves) or noise (white
  166. noise).  Each  of  the  three  oscillators  resident in the sound interface
  167. circuit  11 may be instructed to generate one of the selected wave forms or
  168.  
  169. each  oscillator  generate  the  same  waveform  of different frequency and
  170. envelope. The microprocessor 13 also provides program instructions to three
  171. amplitude modulators within the sound interface circuit to instruct each as
  172. to the "volume" output. Three envelope generators also receive programmable
  173. instructions as to attack rate, decay rate, sustain rate, and release rate.
  174.  
  175. The  sound interface circuit 11 also contains a programmable filter whose
  176. "notch"  is  adjustable  as well as its resonance, as well as cut-off range
  177. and  roll-off.  This  programmable  filter  receives  instructions from the
  178. microprocessor 13.
  179.  
  180. The  programmable  filter  also  has a low pass, band pass, and high pass
  181. filter  sections  which are selectably operable under instructions from the
  182. microprocessor 13.
  183.  
  184. All  of  the  above processor 13 instructions are transferred between the
  185. microprocessor 13 and the sound interface circuit 11 via the data lines 21.
  186. A  reset  circuit  23  whose function is either operator initiated or clock
  187. initiated resets both the microprocessor 13 and the sound interface circuit
  188. 11 functions via the information line 25.
  189.  
  190. The sound interface circuit 11 receives instructions from operator and/or
  191. "player"  controlled  input  paddles  27.  This  circuit  11  also receives
  192. auxiliary audio input 29 and provides audio output 31.
  193.  
  194. A  circuit block diagram, FIG. 2, shows the sound interface circuit 11 of
  195. FIG. 1. Data buffers 33 receive the instructions via the data lines 21 from
  196. the  microprocessor  13.  These data buffers 33 feed a data bus 35 which is
  197. interconnected  with  each of the circuit subsystems of the sound interface
  198. circuit  11.  Access information fed via other data lines 21 is provided to
  199. an access control circuit 37.
  200.  
  201. Operator  instructions via operator paddles 27 is input to a plurality of
  202. potentiometers 39 which are connected to the data bus 35.
  203.  
  204. Three  individual  and  independent  tone oscillators 41, 43, and 45 each
  205. generate  an  independent waveform and are operated under instructions from
  206. the  data  bus  35.  The tone oscillators 41, 43, 45 are interconnected via
  207. synchronization instruction lines 47.
  208.  
  209. Three  discrete  and  independently operating envelope generators 49, 51,
  210. and   53  each  receive  individual  instructions  from  the  data  bus  35
  211. connection.
  212.  
  213. The  first tone oscillator 41 and the first envelope generator 49 outputs
  214. are  connected  to  a  first  amplitude modulator 55, while the second tone
  215. oscillator  43  and second envelope generator 51 outputs are connected to a
  216. second amplitude modulato 57 and the output of the third tone oscillator 45
  217. and  the  third  envelope  generator  53 are connected to a third amplitude
  218. modulato  59  Each  of  the  tone  oscillators  is independently capable of
  219. providing  a  square  wave, saw tooth wave, triangular wave or white noise,
  220. while  each envelope generator defines the attack rate, decay rate, sustain
  221. level and release rate of the "tone" or "voice" to be generated.
  222.  
  223. Each  amplitude  modulator  55,  57,  59,  provides  a  "sound frequency"
  224. envelope  which is either fed directly into a volume controller 61 via data
  225. line  63  or  fed  directly  into a filter 65 via information line 67. This
  226. selection  between  information  line  63  and  67  being  selectively made
  227. individually  or  in  unison  by  individual  instruction  word  responsive
  228. switches  69,  71,  73,  whereof  switch  69  is connected on the output of
  229. amplitude  modulator  55, switch 71 is connected on the output of amplitude
  230. modulator  57  and  switch  73  is  connected  on  the  output of amplitude
  231. modulator  59.  The switch 73 also has a disconnect position 68 so that the
  232. output  of  the  third  amplitude modulator 59 can be cut out of the system
  233. altogether.
  234.  
  235. Frequency  range tuning capacitors 75 are connected to the filter 65. The
  236. output  of the filter 65 is fed to the volume controller 61 whose output is
  237. fed through an amplifier 77 as the audio output 31.
  238.  
  239. The  auxiliary audio input 29 can be selectably fed through the switch 79
  240. to either the volume controller 61 or the filter 65.
  241.  
  242. The  electronic circuitry which implements each of the elements described
  243. hereinabove  in  conjunction with FIG. 2 are program instruction controlled
  244. or program instruction checked or adjusted.
  245.  
  246. There  are  29  eight-bit  registers  in the circuit 11 which control the
  247. generation of sound. These registers are either WRITE only or READ only and
  248. are listed below in Table 1.
  249.  
  250.                                   TABLE 1
  251.  Register
  252.      ADDRESS   REG #
  253.                     DATA    REG         REG
  254. No.  A4
  255.        A3
  256.          A2
  257.            A1
  258.              A0
  259.                (HLX)
  260.                     D7 Through D0
  261.                             NAME        TYPE
  262.                                          VOICE 1
  263. 00   0 0 0 0 0 00           FREQ LO     WRITE-only
  264. 01   0 0 0 0 1 01           FREQ HI     WRITE-only
  265. 02   0 0 0 1 0 02           PW LO       WRITE-only
  266. 03   0 0 0 1 1 03           PW HI       WRITE-only
  267. 04   0 0 1 0 0 04           CONTROL REG WRITE-only
  268. 05   0 0 1 0 1 05           ATTACK/DECAY
  269.                                         WRITE-only
  270. 06   0 0 1 1 0 06           SUSTAIN/RELEASE
  271.                                         WRITE-only
  272.                                         VOICE 2
  273. 07   0 0 1 1 1 07           FREQ LO     WRITE-only
  274. 08   0 1 0 0 0 08           FREQ HI     WRITE-only
  275. 09   0 1 0 0 1 09           PW LO       WRITE-only
  276. 10   0 1 0 1 0 0A           PW HI       WRITE-only
  277. 11   0 1 0 1 1 0B           CONTROL REG WRITE-only
  278. 12   0 1 1 0 0 0C           ATTACK/DECAY
  279.                                         WRITE-only
  280. 13   0 1 1 0 1 0D           SUSTAIN/RELEASE
  281.                                         WRITE-only
  282.                                         VOICE 3
  283. 14   0 1 1 1 0 0E           FREQ LO     WRITE-only
  284. 15   0 1 1 1 1 0F           FREQ HI     WRITE-only
  285. 16   1 0 0 0 0 10           PW LO       WRITE-only
  286. 17   1 0 0 0 1 11           PW HI       WRITE-only
  287. 18   1 0 0 1 0 12           CONTROL REG WRITE-only
  288. 19   1 0 0 1 1 13           ATTACK/DECAY
  289.                                         WRITE-only
  290. 20   1 0 1 0 0 14           SUSTAIN/RELEASE
  291.                                         WRITE-only
  292.                                         FILTER
  293. 21   1 0 1 0 1 15           FC LO       WRITE-only
  294. 22   1 0 1 1 0 16           FC HI       WRITE-only
  295. 23   1 0 1 1 1 17           RES/FILT    WRITE-only
  296. 24   1 1 0 0 0 18           MODE/VOL    WRITE-only
  297.                                         MISC
  298. 25   1 1 0 0 1 19           POTX        READ-only
  299. 26   1 1 0 1 0 1A           POTY        READ-only
  300. 27   1 1 0 1 1 1B           OSC3/RANDOM READ-only
  301. 28   1 1 1 0 0 1C           ENV3        READ-only
  302.  
  303. The description of each register is as follows:
  304.  
  305. Voice 1
  306.  
  307. FREQ. LO/FREQ. HI (Registers 00,01):
  308.  
  309. Together these registers form a 16-bit number which linearly controls the
  310. frequency  of  oscillator  41. The frequency is determined by the following
  311. equation:Fout=(Fn * Fclk/16777216) HZ
  312.  
  313. where  Fn  is  the 16-bit number in the frequency registers and Fclk is the
  314. system  clock.  For  a  standard  1.8  Mhz  clock,  the  frequency is given
  315. by:Fout=(Fn * 0.0596) Hz
  316. Frequency resolution is sufficient for any tuning scale and allows sweeping
  317. from note to note (portamento) with no discernable frequency steps.
  318.  
  319. PW LO/PW HI Registers 02,03:
  320.  
  321. Together these registers form a 12-bit number which linearly controls the
  322. pulse  width (duty cycle) of the pulse waveform on oscillator 41. The pulse
  323. width is determined by the following equation:PWout=(PWn/49.95)%
  324.  
  325. Where  PWn  is  the  12-bit number in the pulse width register. The pulse
  326. width  resolution allows the width to be smoothly swept with no discernable
  327. stepping. The pulse waveform of oscillator 41 must be selected in order for
  328. the  pulse width registers to have any audible effect. A value of 0 or 4095
  329. in  the  pulse  width  registers will produce a constant DC output, while a
  330. value of 2048 will produce a square wave.
  331.  
  332. Control Register (Register 04);
  333.  
  334. This register contains eight control bits which select various options on
  335. oscillator 41:
  336.  
  337. Gate  (Bit  0)--The gate bit controls the envelope generator for voice 1.
  338. When  this  bit  is  set  to  a  one,  the  envelope  generator 49 is gated
  339. (triggered)  and  the attack/decay/sustain cycle is initiated. When the bit
  340. is  rest  to  a  zero,  the release cycle begins. The envelope generator 41
  341. controls  the  amplitude  of oscillator 41 appearing at the audio outlet of
  342. modulator  55.  Therefore,  the  gate  bit must be set (along with suitable
  343. envelope  parameters)  for  the  selected  output  of  oscillator  41 to be
  344. audible.
  345.  
  346. SYNC  (Bit  1)--The  sync  bit,  when  set  to  a  one,  synchronizes the
  347. fundamental  frequency  of  oscillator 41 with the fundamental frequency of
  348. oscillator  45,  producing  "hard  xync"  effects. Varying the frequency of
  349. oscillator  41  with  respect  to  oscillator  45  produces a wide range of
  350. complex harmonic structures from voice 1 at the frequency of oscillator 45.
  351. In  order  for  synchronization  to occur oscillator 45 must be set to some
  352. frequency  other  than  zero  but  preferably  lower  than the frequency of
  353. oscillator   41.  No  other  paraments  of  voice  3  have  any  effect  on
  354. synchronization.
  355. RING  MOD  (Bit  2)  The  ring  mod  bit, when set to a one, replaces the
  356. triangle   waveform  output  of  oscillator  41  with  a  "ring  modulated"
  357. combination of oscillators 41 and 45. Varying the frequency of oscillator 1
  358. with respect to oscillator 3 produces a wide range of non-harmonic overtone
  359. structures  for  creating  bell  or song sounds and for special effects. In
  360. order  for  ring  modulation  to  be  audible,  the  triangular waveform of
  361. oscillator  41  must  be  selected  and  oscillator  45 must be set to some
  362. frequency  other  than zero. No other parameters of voice 3 have any effect
  363. on ring modulation.
  364.  
  365. TEST  (Bit  3)--The  test  bit,  when  set  to  a  one,  resets and locks
  366. oxcillator  41  at  zero  until the test bit is cleared. The noise waveform
  367. output of oscillator 41 is also reset and the pulse waveform output is held
  368. at  a DC level. Normally this bit is used for testing purposes, however, it
  369. can  be  used to synchronize oscillator 41 to external events, allowing the
  370. generation of highly complex waveforms under real-time software control.
  371.  
  372. TRIANGULAR  (Bit 4)--When set to a one, the triangular waveform output of
  373. oscillator  41 is selected. The triangular waveform is low in harmonics and
  374. has a mellow, flute-like quality.
  375.  
  376. SAWTOOTH  (Bit  5)--When  set  to  a one, the sawtooth waveform output of
  377. oscillator  41  is  selected. The sawtooth waveform is rich in even and odd
  378. harmonics and has a bright, brassy quality.
  379.  
  380. SQUARE  (Bit  6)--When  set  to  a  one,  the  pulse  waveform  output of
  381. oscillator  41  is  selected.  The harmonic content of this waveform can be
  382. adjusted  by  the  pulse  width registers, producing tone qualities ranging
  383. from  a  bright,  hollow  sqaure wave to a nasal, reedy pulse. Sweeping the
  384. pulse  width  in real time produces a dynamic "phasing" effect which adds a
  385. sense  of  motion to the sound. Rapidly jumping between the different pulse
  386. widths can produce interesting harmonic sequences.
  387.  
  388. NOISE (Bit 7)--When set to a one, the noise outlet waveform of oscillator
  389. 41  is  selected.  This  output  is  a  random  signal which changes at the
  390. frequency  of  oscillator  41.  The  sound quality can be varied from a low
  391. rumbling  to hissing white noise via the oscillator 41 frequency registers.
  392. Noise  is  useful in creating explosings, gunshots, jet engines, wind, surf
  393. and  other  unpitched  sounds, as well as snare drums and cymbals. Sweeping
  394. the  oscillator  frequency  with noise selected produces a dramatic rushing
  395. effect.
  396.  
  397. One  of  the  output  waveforms  must be selected for oscillator 41 to be
  398. audible, however, it is not necessary to de-select waveforms to silence the
  399. output  of  voice  1.  The  amplitude  of  voice 1 at the final output is a
  400. function of the envelope generator 49 only.
  401.  
  402. Oscillator  output  waveforms  are  not additive. If more than one output
  403. waveform is selected simultaneously, the result will be a logical ANDing of
  404. the waveforms.
  405.  
  406. ATTACK/DECAY  (Register  05):  Bits  4-7  of this register select 1 of 16
  407. attack  rates  for  the  voice  1  envelope  generator  49. The attack rate
  408. determines  how  rapidly  the  output  of  voice  1 rises from zero to peak
  409. amplitude when the envelope generator 49 is gated.
  410.  
  411. Bits  0-3  of  this  register select 1 of 16 decay rates for the envelope
  412. generator  49.  The decay cycle follows the attack cycle and the decay rate
  413. determines  how  rapidly  the  output  falls from the peak amplitude to the
  414. selected sustain level.
  415.  
  416. SUSTAIN/RELEASE  (Register  06): Bits 4-7 of this resistor select 1 of 16
  417. sustain levels for the envelope generator 49. The sustain cycle follows the
  418. decay  cycle  and the output of voice 1 will remain at the selected sustain
  419. amplitude  as  long  as  the gate bit remains set. The sustain levels range
  420. from  zero  to peak amplitude in 16 linear steps, with a sustain value of 0
  421. selecting  zero amplitude and a sustain value of 15 (HF) selecting the peak
  422. amplitude.  A  sustain  value  of  0  would  cause voice 1 to sustain at an
  423. amplitude one-half the peak amplitude reached by the attack cycle.
  424.  
  425. Bits  0-3  of  the register select 1 of 16 release rates for the envelope
  426. generator 49. The release cycle follows the sustain cycle when the gate bit
  427. is  reset  to  zero. At this time, the the output of voice 1 will fall from
  428. the  sustain  amplitude to zero amplitude at the selected release rate. The
  429. 16 release rates are identical to the decay rates.
  430.  
  431. The  cycling of the envelope generator 49 can be altered at any point via
  432. the  gate  bit. The envelope generator 49 can be gated and released without
  433. restriction.  If the gate bit is reset before the envelope has finished the
  434. attack  cycle,  the  release  cycle  will  immediately  begin starting from
  435. whatever  amplitude  had  been reached. If the envelope is then gated again
  436. (before the release cycle has reached zero amplitude), another attack cycle
  437. will  begin  starting  from  whatever  amplitude  had  been  reached.  This
  438. technique can be used to generate complex amplitude envelopes via real time
  439. software control.
  440.  
  441. Registers  07  to  00  control  the  second  oscillator 43 and the second
  442. envelope  generators to provide voice z, and are identical to the structure
  443. and operation of the register 00 to 06 described above to control the first
  444. oscillator  41 and the first envelope generator 49 to provide voice 1, with
  445. the following exceptions:
  446.  
  447. When  selected,  the  instruction  initiates  a  SYNC  synchronization of
  448. oscillator 43 with oscillator 41.
  449.  
  450. When  selected  the  ring mod instruction replaces the triangle output of
  451. oscillator 43 with a "ring modulated" combination of oscillators 41 and 43.
  452.  
  453. Voice 3
  454. Registers  OE  to 14 control the generation of Voice 3 via the control of
  455. oscillator  45  and envelope generator 53 and are functionally identical in
  456. structure and operation to registers 00-06 with these exceptions:
  457.  
  458. When  selected  the  SYNC  instruction  initiates  a  synchronization  of
  459. oscillator 45 with oscillator 43 via line 47.
  460.  
  461. When  selected,  the RING MOD instruction replaces the triangle output of
  462. oscillator  45  with the "ring modulated" combination of oscillators 43 and
  463. 45.
  464.  
  465. Typical   operation   of  a  voice  consists  of  selecting  the  desired
  466. parameters:  frequency,  waveform,effects  (SYNC,  RING  MOD)  and envelope
  467. rates,  then  gating the voice whenever the sound is desired. The sound can
  468. be  sustained  for  any  length of time and terminated by clearing the gate
  469. bit.  Each  voice  can  be used separately, with independent parameters and
  470. gating, or in unison to create a single powerful voice. When used in unison
  471. a slight detuning of each oscillator or tuning to musical intervals creates
  472. a rich, animated sound.
  473. Filter 65:
  474.  
  475. FC LO/FC HI (Registers 15 to 16)--Together these registers form an 11-bit
  476. number  which  linearly  controls  the  cutoff (or center) frequency of the
  477. programmable  filter  65. The approximate cutoff frequency is determined by
  478. the following equation:FCout=((6.6E-8 +FCn * 1.28E-8)/C) Hz
  479.  
  480. Where FCn is the 11-bit number in the cutoff registers and C is the value
  481. of  the  two  filter  capacitors  75  connected  to  the filter 65. For the
  482. recommended capacitor value of 2200 pF, the approximate range of the filter
  483. 15 is 30 Hz-12 kHz according to the following equation:FCout=(30+FCn * 5.8)
  484. Hz
  485.  
  486. The  frequency  range  of  the  filter  65  can be altered to suit specific
  487. applications.
  488.  
  489. RES/FILT (Register 17)--Bits 4-7 of this register (RESO,RES3) control the
  490. resonance  of the filter 65. Resonance is a peaking effect which emphasizes
  491. frequency  components  at  the cutoff frequency of the filter 65, causing a
  492. sharper  sound.  There  are 16 resonance settings, ranging linearly from no
  493. resonance (0) to maximum resonance (15 or $F).
  494.  
  495. Bits  0-3  determine  which  signals  from among Voice 1, 2 and 3 will be
  496. routed through the filter 65: via the switches 69, 71, 73 respectively.
  497.  
  498. FILT  1  (Bit  0)--When  set to a zero. Voice 1 from modulator 55 appears
  499. directly  at  the  audio output and the filter 65 has no effect on it. When
  500. set to a one, Voice 1 will be processed through the filter and the harmonic
  501. content  of  Voice  1  will  be  altered  according  to the selected Filter
  502. parameters.
  503.  
  504. FILT 2 (Bit 1)--Same as bit 0 for Voice 2.
  505.  
  506. FILT 3 (Bit 2)--Same as bit 0 for Voice 3.
  507.  
  508. FILTEX (Bit 3)--Same as bit 0 for external audio input.
  509.  
  510. MODE/VOL  (Register  18)--Bits 4-7 of this register select various Filter
  511. mode and output options:
  512. LP  (Bit  4)--When  set to a one, the "low pass" mode of the filter 65 is
  513. selected  and  sent to the audio output 31 via volume controller controller
  514. 61.  For a given filter 65 input signal, all frequency components below the
  515. filter   cutoff   frequency  are  passed  unaltered,  while  all  frequency
  516. components  above  the  cutoff are attenuated a a rate of 12 dB/octive. The
  517. "low pass" mode produces full-bodied sounds.
  518.  
  519. BP  (Bit  5)--Same  as  bit  4  for  the  "band pass" mode. All frequency
  520. components  above  and  below  the  cutoff  are  attenuated  at a rate of 6
  521. dB/octive. The band pass mode produces thin, open sounds.
  522.  
  523. HP  (Bit  6)--Sume  as  bit  4  for  the  High Pass output. All frequency
  524. components  above  the  cutoff  are  passed  unaltered, while all frequency
  525. components  below  the Cutoff are attenuated at a rate of 12 dB/Octabe. The
  526. High Pass mode produces tinny, buzzy sounds.
  527.  
  528.  3 OFF (Bit 7)--When set to a one, the output of modulator 59 i.e., Voice
  529. 3,  disconnected  from  the  direct  audio path 63 to volume controller 61.
  530. Switching  Voice 3 to bypass the filter 65 (FILT 3-0) and setting switch 73
  531. to  the  "off" position prevents Voice 3 from reaching the audio output 31.
  532. This  allows  Voice  3  (modulator  59  output)  to  be used for modulation
  533. purposes without any undesirable output.
  534.  
  535. The  filter  65  outputs  are  additive  and multiple filter modes may be
  536. selected  simultaneously. For example, both LP and HP modes can be selected
  537. to  produce a "Notch" (or Band Reject) filter 65 response. In order for the
  538. filter  65  to  have any audible effect, at least one filter output must be
  539. selected  and  at  least  one  Voice must be routed through the Filter. The
  540. Filter  is, perhaps, the most important element in register number 10 as it
  541. allows the generation of complex tone colors via subtractive synthesis (the
  542. Filter   is   used  to  eliminate  specific  frequency  components  from  a
  543. harmonically-rich  input  signal). The best results are achieved by varying
  544. the  Cutoff Frequency in realtime. Further discussion of the Filter appears
  545. in Appendix C.
  546.  
  547. Bits  0-3 (VOL0-VOL3) select 1 of 16 overall volume levels for the volume
  548. controller  61  providing  the  final composite audio output 31. The output
  549. volume  61  levels range from no output (0) to maximum volume (15 or OF) in
  550. 16  linear  steps.  This control can be used as a static volume control for
  551. balancing  levels  in  multi-chip  systems  or  for creating dynamic volume
  552. effects, such as tremolo.
  553.  
  554. POTX  (Register  19)--Th1s  register allows the microprocessor 13 to read
  555. the  position  of the potentiometer 39 tied to POTX signal 27. Values range
  556. from  0 at minimum resistance, to 255 (FF) at maximum resistance. The value
  557. is updated every 512 clock cycles.
  558.  
  559. POTY  (Register  lA)--Same as POTX for the pot 29 tied to the POTY signal
  560. 27.
  561.  
  562. OSC/3 RANDOM (Register 18)--This register allows the microprocessor 11 to
  563. read the upper 8 output bits of oscillator 45. The character of the numbers
  564. generated  is  directly related to the waveform selected. If the "sawtooth"
  565. waveform  of oscillator 45 is selected, this register will present a series
  566. of  numbers  incrementing  from  0  to 255 (FF) at a rate determined by the
  567. frequency  of  oscillator  45.  If the "triangle" waveform is selected, the
  568. output  will  increment  from 0 up to 255, then decrement down to 0. If the
  569. pulse  square waveform is selected, the output will jump between 0 and 255.
  570. Selecting  the  "noise"  waveform  will produce a series of random numbers,
  571. therefore,  this  register  can  be  used  as a random number generator for
  572. games.  There are numerous timing and sequencing applications for the OSC 3
  573. register,  however,  the  chief  function  is probably that of a modulation
  574. generator.  The  numbers  generated  by  this  register  can  be added, via
  575. software,  to  the  oscillator  or  filter frequency registers or the pulse
  576. width registers in real-time. Many dynamic effects can be generated in this
  577. matter.  Siren-like  sounds  can  be  created  by adding the OSC 3 sawtooth
  578. output  to the frequency control of another oscillator. Synthesizer "sample
  579. and hold" effects can be produced by adding the OSC 3 "noise" output to the
  580. filter  frequency  control  registers.  Vibrato  can be produced by setting
  581. oscillator  45  to  a frequency around 7 Hz and adding the OSC 3 "triangle"
  582. output   (with   proper  scaling)  to  the  frequency  control  of  another
  583. oscillator.  An  unlimited  range  of effects are available by altering the
  584. frequency  of  oscillator  45  and scaling the OSC 3 output. Normally, when
  585. oscillator 45 is used for modulation, the audio output of voice 3 should be
  586. eliminated (3 OFF=1).
  587.  
  588. ENV  3  (Register  10)--Sames  as  OSC  3,  but  this register allows the
  589. microprocessor  13 to read the output of the voice 3 envelope generator 53.
  590. This  output  can  be  added  to  the  filter frequency to produce harmonic
  591. envelopes,  and  similar  effects. "Phaser" sounds can be created by adding
  592. this  output to the frequency control registers of an oscillator. The voice
  593. 3  envelope  generator 53 must be gated in order to produce any output from
  594. this  register.  The  OSC 3 register, however, always reflects the changing
  595. output  of the oscillator 45 and is not affected in any way by the envelope
  596. generator 53.
  597.  
  598. FIG.  3  shows  the  timing  diagram  and symbol table for a "read cycle"
  599. operation  of  the  sound  interface  circuit  11.  FIG. 4 shows the timing
  600. diagram for a "write cycle" operation of the sound interface circuit 11.
  601.  
  602. Each  of  the  four-part  ADSR (attack, decay, sustain, release) envelope
  603. generators  49,  51,  53 has been proven in electronic music to provide the
  604. optimum  trade-off  between  flexibility  and  ease  of  amplitude control.
  605. Appropriate  selection  of  envelope  parameters allows the simulation of a
  606. wide  range  of  percussion and sustained instruments. The violin is a good
  607. example  of  a  sustained  instrument. The violinist controls the volume by
  608. bowing the instrument. Typically, the volume builds slowly, reaches a peak,
  609. then  drops to an intermediate level. The violinist can maintain this level
  610. for  as  long  as desired, then the volume is allowed to slowly die away. A
  611. comparison of a type violin response curve, FIG. 5(a), is shown against the
  612. frequency  response curve generated by the sound interface circuit 11, FIG.
  613. 5(b).  The  "tone"  can  be generated by the circuit 11 at the intermediate
  614. sustain  level  for as long as desired. The tone will not begin to die away
  615. until "Gate" is cleared. With minor alterations, this basic envelope can be
  616. used for brass and woodwinds as well as strings.
  617.  
  618. An  entirely  different  form  of  envelope  is  produced  by  percussion
  619. instruments  such as drums, cymbals and gongs, as well as certain keyboards
  620. such  as  pianos and harpsichords. The percussion envelope is characterized
  621. by  a  nearly  instantaneous "attack", immediately followed by a "decay" to
  622. zero  volume.  Percussion  instruments  cannot  be  sustained at a constant
  623. amplitude.  For  example,  the  instant a drum is struck, the sound reaches
  624. full  volume  and  decays rapidly regardless of how it was struck A typical
  625. cymbal   frequency  response  envelope  is  represented  in  FIG.  6(a).  A
  626. synthesized  frequency  response from the circuit 11 is represented in FIG.
  627. 6(b).
  628.  
  629. For  the  frequency  response of FIG. 6(a) the tone immediately begins to
  630. decay  to  zero  amplitude  after  the  peak is reached. The circuit 11 can
  631. accurately synthesize this response regardless of when Gate is cleared. The
  632. amplitude  envelope  pianos  and harpsichords is somewhat more complicated,
  633. but  can  be  generated.  These instruments reach full volume when a key is
  634. first  struck.  The amplitude immediately begins to die away slowly as long
  635. as  the  key remains depressed. If the key is released before the sound has
  636. fully died away, the amplitude will immcdiately drop to zero. These typical
  637. synthesized frequency responses are shown as FIG. 6(b).
  638.  
  639. The most simple envelope is that of the organ. When a key is pressed, the
  640. tone  immediately  reaches  full  volume  and remains there When the key is
  641. released, the tone drops immediately to zero volume. The frequency response
  642. curve  for  a typical organ zero volume. The frequency response curve for a
  643. typical  organ  "note" is shown as FIG. 7(a). The circuit 11 can accurately
  644. synthesize  this  frequency response. As synthesized the tone decays slowly
  645. until  "Gate"  is  cleared,  at  which point the amplitude drops rapidly to
  646. zero.
  647.  
  648. The  circuit  11  has  the  ability to create original sounds rather than
  649. simulations  of acoustic instruments. The circuit 11 is capable of creating
  650. envelopes which do not correspond to any "real" instruments. A good example
  651. would  be the "backwards" envelope, whihc is characterized by a slow attack
  652. and  rapid  decay,  which sounds very much like an instrument that has been
  653. recorded on tape then played backwards. This frequency response envelope is
  654. shown as FIG. 7(b).
  655.  
  656. Many  unique  sounds can be created by applying the amplitude envelope of
  657. one "instrument" to the harmonic structure of another. This produces sounds
  658. similar  to  familiar  acoustic  instruments,  yet  notably  different.  In
  659. general, sound is quite subjective and experimentaion with various envelope
  660. rates  and  harmonic  contents  will  be  necessary in order to achieve the
  661. desired sound.
  662.  
  663. The  circuit  elements  of  the sound interface circuit 11 shown in block
  664. diagram representation as FIG. 2, can be implemented using various hardware
  665. structures.  Whether  implemented as discrete components or as a monolithic
  666. large  scale  integrated  circuit,  these  circuit elements are implemented
  667. using  known  structural  elements  and design concepts such as capacitors,
  668. field effect transistors (FET) registers, transistor gates and so forth.
  669.  
  670. Data  buffers  33  are  shown in greater detail in FIG. 8. Oscillator 101
  671. feeds  pulse  frequency  signals  to a read-write cycle generator 103 which
  672. receives  information  from  the microprocessor 13 via the data bus 35. The
  673. output  from the read-write cycle generator is fed to an address buffer 105
  674. which  in  turn feeds an address decoder 107 to provide an instruction word
  675. 109,  which when the circuit 11 is an 8-bit machine is transferred over the
  676. 8 data lines 109.
  677.  
  678. The  potentiometer interface 39 of FIG. 2 is implemented as shown in FIG.
  679. 9.  The  analog input 27 from the player control potentiometer is fed to an
  680. analog digital converter 111 which in turn feeds a counter 113. The counter
  681. 113 feeds a latched register 115 which has an 8 bit output 109(a).
  682.  
  683. The  amplitude  modulator  55 can be further implemented as shown in FIG.
  684. 10.  Control  logic  117  receives  the  output  signal  from  the envelope
  685. generator  119  and  the  output  signal  from  the shaper 121 and provides
  686. control  pulses  to  a modulator 123 which is driven by the oscillator 101.
  687. The  control  logic  117  also  provides control instructions to an up-down
  688. counter  125  which  in  turn  feeds  information to the modulator 123. The
  689. output  of the modulator 123 is connected to a digital analog converter 127
  690. which  in  turn  provides  the  output  129  from the modulator 55. Up-down
  691. counter  125  also feeds a sustained comparator 131 which is connected to a
  692. divider  133.  The divider 133 provides a divide by 1, divide by 30, divide
  693. by 16, divide by 4 and divide by 2 signals to the control logic 117.
  694.  
  695. The  switch  69 of FIG. 2 is implemented as shown in FIG. 11. Here a pair
  696. of  FETs 135 and 137 implement the switch. These FETs 135, 137 each receive
  697. the  modulator  output  129  on  their  source pin and provide separate and
  698. independent  outputs  139,  141, respectively, which are mutually exclusive
  699. through  the  cross-coupling  of  the  FET  135, 137. The FET 135 or 137 is
  700. switched to conduction through an instruction signal 142.
  701.  
  702. The  tone  oscillator 41 which provides the waveform generation function,
  703. FIG.  12,  includes an individual and dedicated oscillator 143. Instruction
  704. words  from the data bus 35 are input into a first control register 145 and
  705. a  separate  second control register 147. The first control register 145 is
  706. connected  to  and  controls a frequency divider 149. The frequency divider
  707. 149  feeds  a  digital waveform select generator 151 which generates any of
  708. the  four  desired waveforms (sawtooth 153, triangular 155, square 157, and
  709. noise 159). Each of the waveforms generated by the generator 151 is fed via
  710. an  individual  line  to  the  shaper digital to analog converter 161 which
  711. provides  the  analog  representation  of  the  waveform as output 121. The
  712. waveforms  153,  155,  157,  159,  are  provided  by the generator 151 on a
  713. mutually exclusive basis under the control of the control register 147.
  714.  
  715. Envelope  generator  49  is  shown  in  greater  detail  as  FIG.  13. An
  716. instruction  register  163  recives  information  from  the data bus 35 and
  717. controls  the  operation  of an envelope generator 165 which is driven from
  718. the oscillator 143 to provide the output 119.
  719.  
  720. The  volume  controller 161 is implemented as an instruction register 167
  721. which  controls  the operation of an attenuator 169 to provide an output to
  722. the  amplifier  77. The instruction register 167 receives instructions from
  723. the  data bus 35 while the attenuator receives an input signal from digital
  724. filter 65 output 171 or from the output 139 of the switch 69.
  725.  
  726. The  filter  65  is implemented as shown in FIG. 15. A register 173 holds
  727. notch  location  information,  high pass filter selection instructions, low
  728. pass filter selection instructions, band pass filter selection instructions
  729. and  resonance  frequency selection instruction which are received from the
  730. data  bus  35.  This register 173 sets a digital filter 175 which processes
  731. the  analog  output  of the modulator 155 by a connection to its digital to
  732. analog  converter  127 output 129. The output from the digital filter which
  733. either  performs  high  pass, low pass or band pass functions on a mutually
  734. exclusive  basis  is gated by a gate 177 together to provide the output 171
  735. which is fed to the attenuator 169.
  736.  
  737. Two  non-overlapping clock pulses, the first clock pulse being designated
  738. (  PHI  1) and the second clock pulse being designated ( PHI 2) provide two
  739. operational  periods for all of the circuitry described above in connection
  740. with FIGS. 8 through 15. The first clock pulse ( PHI 1) period allows for a
  741. transfer of information and conditioning of the circuitry. The second clock
  742. pulse ( PHI 2) establishes the logical operation or processing time period.
  743.  
  744. The  description  of  the  circuitry  above in regards to FIGS. 8-14 also
  745. provides  a  description  of  the  circuitry  for  the  oscillators 43, 45,
  746. envelope generators 51, 53, modulators 57,59 and switches 71,73,79.
  747.  
  748. The above description of the invention is intended to be illustrative and
  749. is   not   intended  to  be  taken  in  the  limiting  sense.  Changes  and
  750. modifications  can  be  made  without  departing  from the intent and scope
  751. thereof.
  752.  
  753. What is claimed is:
  754.  
  755. 1.  A  sound  interface circuit for selectively generating a plurality of
  756. voices,  for  use  in a home video game circuit, said name circuit having a
  757. programmable  microprocessor  holding  digital  instruction signals, analog
  758. game  player  inputs and providing a first and second non-overlapping clock
  759. pulses, comprising:
  760. data  buffer  circuit  means  for receiving said miroprocessor instruction
  761. signals for providing control instructions;
  762. a  data  bus  connected  to  said  buffer  means for carrying said control
  763. instructions connected from said data buffer means;
  764. a  means  connected  to said analog game play inputs for analog to digital
  765. transformation   of  each  said  analog  player  input  to  digital  player
  766. instructions, said player instructions being fed to said data bus;
  767. a first, second and third tone oscillator circuit means, each individually
  768. operated  and  independently structured, for each providing a separate tone
  769. frequency according to a digital instruction signals from said data bus;
  770. a   first,   second  and  third  envelope  generator  circuit  means  each
  771. individually  operated  and  independently  structured for each providing a
  772. frequency  envelope  format according to a digital instruction signals from
  773. said data bus;
  774. a  first,  second  and  third  amplitude  modulator  circuit  means,  each
  775. independently  structured for each providing an amplitude modulated signal,
  776. said  first  modulator  circuit  means  being  connected to said first tone
  777. oscillator  circuit  means and said first envelope generator circuit means,
  778. said  second  modulator  circuit  means being connected to said second tone
  779. oscillator  circuit means and said second envelope generator circuit means,
  780. said  third  modulator  circuit  means  being  connected to said third tone
  781. oscillator circuit means and said third envelope generator means;
  782. a  digital  filter circuit means for shaping a signal, said digital filter
  783. circuit  means operating according to digital instruction signals from said
  784. data bus and being connected thereto;
  785. a volume controller connected on said digital filter signals circuit means
  786. output and operative according to a digital instruction from said data bus;
  787. and being connected thereto; and
  788. switch  circuit  means  for selectively interconnecting any of said first,
  789. second  and  third  amplitude  modulator  circuit  means  outputs with said
  790. digital filter means.
  791. 2.  The  circuit  of  claim  1  wherein  said  switch  circuit means also
  792. selectively  interconnects  any  of  said first, second and third amplitude
  793. circuit means outputs with said volume controller.
  794.  
  795. 3.  The  circuit  of  claim  2  wherein  said  switch  circuit means also
  796. selectively  interconnects  said  game player analog to digital transformer
  797. means to said digital filter circuit means and said volume controller.
  798.  
  799. 4.  The  circuit  of  claim  3  wherein  said  data  buffer circuit means
  800. comprises:
  801. an oscillator;
  802. a  read/write  cycle  generator  connected  to  said  oscillator  and said
  803. microprocessor instruction signals;
  804. an address buffer connected to said read/write cycle generator; and
  805. an  address  decoder connected to said address buffer and to said data bus
  806. on its output.
  807.  
  808. 5. The circuit of claim 4 wherein said analog transformer means includes:
  809. an A/D converter connected to said a said analog player input;
  810. a counter connected to said A/D converter output; and
  811. a latched register connected to said counter output, said latched register
  812. output being connected to said data bus.
  813.  
  814. 6.  The circuit of claim 5 wherein each said first, second and third tone
  815. oscillator means include structure as follows:
  816. a first control register connected to said data bus;
  817. a second control register connected to said data bus;
  818. a first dedicated oscillator;
  819. a  frequency divider connected to said first dedicated oscillator and said
  820. first control register output;
  821. a  digital  wave form selection generator connected to said second control
  822. register output and said frequency divider output, said selection generator
  823. providing  an output being either a triangular wave, a square wave or white
  824. nosie; and
  825. a  signal  shaper  connected  to  the  outputs of said wave form selection
  826. generator.
  827.  
  828. 7.  The  circuit  of  claim  6  wherein said digital filter circuit means
  829. includes:
  830. a first register for holding notch location, high select, low select, band
  831. select  and  reasonance instruction signals, said first register having its
  832. input connected to said data bus;
  833. a digital filter connected to said first register output and to said first
  834. modulator,  this  digital filter having a high pass, low pass and band pass
  835. outputs; and
  836. a  gate  connected  to  said  high  pass, said low pass and said band pass
  837. outputs to gate said signals through on an exclusive basis.
  838.  
  839. 8.  The  circuit  of  claim  7  wherein  each said first second and third
  840. modulator circuit means include structure as follows:
  841. a  control  logic  circuit  having  an  input connection from a respective
  842. envelope generator;
  843. a  modulator connected to said control logic circuit output said modulator
  844. having an input connection from said oscillator;
  845. an  up-down  counter  connected to said control logic circuit output, said
  846. up-down counter having an output to said modulator;
  847. a D/A converter connected to said modulator out put;
  848. a sustain comparator connected to said up-down counter output; and
  849. a divider connected to said sustain comparator output, said divider output
  850. being connected back to said control logic circuit.
  851.  
  852.