[sdiy] Reverse engineer an EPROM encoding?

MTG grant at musictechnologiesgroup.com
Wed Oct 16 19:09:47 CEST 2013


So I'm still banging away on this Kawai R100 drum machine when time 
permits. The idea is to be able to make fresh sound ROMs for it. It's a 
great 12-bit drum machine. The unit uses a couple of ASICs where Linn 
and Oberheim, et al used counters. Here is the jist:

AGU -> ROM -> DGU -> DAC (12-bit linear?)  [DAC312/AM6012]

I assume AGU is Address Generation Unit and DGU is Data...  The 
schematic is widely available, such as 
http://www.burnkit2600.com/manuals/KAWAI_R-100_SRV.pdf .

Now if you assume the whole thing is linear and you code up a ramp 
waveform and stuff it in and EPROM and press play, this is what you get 
out. NOT ramp. Some EXPONENTIAL thing. The sign bit is understood and 
the output wave is single-ended on the +15v rail (centered about half way).

http://musictechnologiesgroup.com/blog/wp-content/uploads/2013/10/R100_first_ramp.jpg

So there was this theory floated around on the web that they used some 
12-bit DAT encoding method (http://www.rfc-editor.org/rfc/rfc3190.txt) 
in the ROMs that was expanded by the DGU. And as unlikely as that seems, 
it's not too far off. But just far enough to sound bad if you try and 
account for it.  RFC 3190 describes something not unlike uLaw where you 
have big Chord bits and smaller Step bits.

I coded up something that becomes a ramp if you run it through RFC 3190. 
Simulate if you will. And this is what you get. It should be a nice 
ramp.  But it's still not.

http://musictechnologiesgroup.com/blog/wp-content/uploads/2013/10/R100_non_ramp.jpg

It has flattened out significantly though, so it's a step in the right 
direction. So I wonder if anyone is aware of any other 12-bit encoding 
schemes they might have used?? DAT didn't come out until after the R100 
so I think that was a red herring.

GB




More information about the Synth-diy mailing list