[sdiy] Analysis of the TB-303 CPU timing

rsdio at audiobanshee.com rsdio at audiobanshee.com
Tue Mar 21 05:08:12 CET 2017


Getting back to the original topic (briefly), I believe that MAME is accurate enough in its emulation of CPU timing that it can recreate the exact waveforms that those 8-bit processors created in real time code, even when bit-banged or otherwise highly dependent on hardware. MAME does require specific code for each hardware platform’s audio circuits, but once written and verified it becomes possible to emulate multiple different firmware designs running on the same or similar platforms.

I mention this because it should be possible to use MAME to accurately simulate the timing of the TB-303 with a little attention to emulating the connections between port pins and external hardware.


On Mar 20, 2017, at 7:49 PM, MTG <grant at musictechnologiesgroup.com> wrote:
> Yeah I'm Grant and my friend and lab partner's name was (is) Greg.  Hes sketched that out in a couple of minutes in our final year. I was so focused on getting my assigned work done I didn't even pay it much attention until years later, and by then PPG was probably already doing it (can't remember for sure). For the sequencer he came up with the keyboard scanner (and didn't pay any royalties to Emu either ha ha).
Regarding PPG, I wonder if they had to give credit to someone like Hal Chamberlin for his work in the seventies - or is the process of publishing a masters thesis equivalent to giving away a design? Then again, PPG went beyond a handful of simple analog oscillator waveform cycles.

As for E-mu, I always assumed that the scanned button matrix was a standard circuit for typewriter-style keyboards for computers. It’s not much of a leap to use the same circuits for a piano-style keyboard. Then again, the best inventions are totally obvious in hindsight.

> I think the Mirage was 6809 ... not sure why I think that, but you could "out play the UI" if you get my drift. Bang some chords down and the LED task would get left far behind.

You’re right!

It wasn’t until the next generation - the EPS - that Ensoniq took on the 32-bit Motorola 68000 processor.


> What was the 68000 emulator written on?  On a PC?  Or a mainframe? Sounds very cool. I still have a fair bit of DOS stuff (8-bit dev tools), at least for the micros I was interested in (6502, 68xx, 68k, 8051).
> 
> GB

The 68000 emulator was written in Standard C on a mainframe - I believe it was DEC ULTRIX, of which NCSU had several. The code was easily ported to any operating system with decent resources (lots of memory, etc). I learned to program in assembly (and loved it) before I learned C, and I was very happy that months of effort on one computer could be so easily ported to another.

Prior to that project, I wrote a disassembler for the National Semiconductor 32016 and 32032 processors. It was a small step from decoding instructions for printout in a listing, to decoding them and actually emulating the side effects of each instruction.

Brian Willoughby
Sound Consulting





More information about the Synth-diy mailing list