[sdiy] Analysis of the TB-303 CPU timing

Julian Schmidt elfenjunge at gmx.net
Thu Mar 16 16:17:45 CET 2017

My first idea when thinking about the CPU was to use this image, but I 
decided against all the hassle of setting up the MAME code on a 
microcontroller, since I suspected it would generate timing problems.
And I don't even want to think about the legal implications of 
using/distributing proprietary Roland code.

While I was working on a reimplementation another guy over at the RE-303 
forum got this image working running on my AVR based CPU hardware using 
the MAME code.
It runs surprisingly good, but even with a 20MHz clock it has timing 
There is a noticeable lag between clock input and reaction. About 1/2 to 
3/4 of a whole clock cycle at medium tempo and the gate off latency 
seems to be more in the 10ms range than the 2.4ms I measured on the 
original CPU.

I have to admit I, did not look at his code yet, so it might be a 
problem with the interrupt routine implementation. So far I only got a 
compiled hex file from him.
I'm sure the MAME code could be optimized for this specific task, too.

But since my goal was to get a cheap replacement CPU that could be used 
for the RE-303 DIY kits I went with the reimplementation route.

Thanks nonetheless for posting the image!

Am 16.03.2017 um 15:45 schrieb Colin f:
> Hi Julian,
>> Personally, I feel it would be cool to simulate the clock interplay to reproduce
>> obseved experimental data and then explore the space in order to get it
>> more tight or more loose. Would it have a big impact on sound and
>> experience? Would people care or notice if they used a much tighter 303
>> clock wise?
>> While I'm at it and have all the hardware here I could set up some A/B testing
>> audio files. Do you think it would be worth the hassle?
> You can clearly demonstrate the effect of the clock interplay on a real 303, but not in the sort of circumstances you would actually use it.
> The tempo clock input is clearly polled by the interrupt routine. It the interrupt period is set too long, it misses clock pulses.
> If you really want to know what goes on in the 303 CPU, the original mask ROM seems to have been extracted, and there is code from the MAME base to emulate the CPU.
> Cheers,
> Colin f

More information about the Synth-diy mailing list