MEA8000 Voice Generator

From CPCWiki - THE Amstrad CPC encyclopedia!
Revision as of 22:58, 4 January 2010 by Nocash (Talk | contribs)

Jump to: navigation, search

Overview

Voiced (Sawtooth)           <-------- Digital Filters --------->
 ________     ______
|        |   |      |
| PITCH  |---| AMPL |--o    _____     _____     _____     _____     _____
|________|   |______|   \  | FM1 |   | FM2 |   | FM3 |   | FM4 |   |     |
 ________     ______     o-| BW1 |---| BW2 |---| BW3 |---| BW4 |---| DAC |--->
|        |   |      |      |_____|   |_____|   |_____|   |_____|   |_____|
| RANDOM |---| AMPL |--o
|________|   |______|
 
Unvoiced (Noise) (when PI=?)

Missing Specifications

The MEA8000 datasheet contains very little information about the voice generator.

  • The internal timings and formulas aren't well described.
  • And, the content of the internal Parameter-Translation table is unknown.
  • Note: The source code for the MESS emulator might contain some useful info.

Unsorted Information Fragments

The device contains an internal 3.84MHz oscillator (but can be also driven by external oscillator, or external TTL clock of max 4MHz). The device internally divides the 3.84MHz (and outputs 1.28MHz on CLK OUT pin for general purpose). The internal sample rate is 8kHz (after applying the AMPL,PITCH,FM,BW stuff), the 8kHz samples are then resampled to 64kHz (with linear interpolation between the samples), and the 64kHz samples are then passed to the DAC. Bandwidth is "4 KH" (4000 hours? probably means 4000 hertz).

The AMPL, FM, BW, and FD values are translated via an internal "Code to Parameter ROM" (the content of that ROM is unknown, but it's possibly non-linear). PITCH is directly passed to the PITCH register without translation. PI is probably sign-expanded and added to PITCH at whatever rate. Setting PI to whatever (?) value selects unvoiced noise mode. Theoretically, the device can output only <either> sawtooth <or> noise... however, looking at the block diagram, it looks as if it can output both added together... so, maybe it does fade-out/fade-in the sound sources when switching from noise to sawtooth or vice-versa.

Changes to PI,AMPL,FM,BW are applied by interpolation (ie. not abruptly) (ie. it takes whatever time until the new setting is reached) (the interpolation speed is unknown; it is merely described to depend on FD). The MEA8000 is similar to the PCF8200 (the difference is that the PCF8200 has 5kHz bandwidth, uses 40bit speech frames, and five filter stages; with BW1=3bit, BW2=3bit, FM4=3bit, FM5=1bit, BW5=2bit, and has selectable male/female parameter tables, and 11bit DAC, and additional 8bit DAC factor; which is sent after the 8bit pitch; and 12.8ms, 25.6ms, 38.4ms, 64ms durations).

Pitch is the step, ie. Sample=Sample+Pitch (=sawtooth) Each of the 4 filters memorizes an OLD and OLDER sample. bandwidth is 4kHz DAC is 8bit