Adding a digital output for old synths from the 90s

background

Surely everyone who made the DOS era met in games the choice of musical accompaniment – General MIDI, Roland Sound Canvas, Yamaha XG. I will not talk about what wonderful devices they are, and how well they played MIDI. Until the end of the 90s, all these home desktop romplers, like most other professional devices, had only analog outputs, however, they were quite acceptable in quality. In early 2010, out of nostalgia, I bought several devices of that era on eBay – these are the Roland Sound Canvas 88 Pro, Roland MT-32, Yamaha MU128 and Yamaha AN200. The first three should be familiar to gamers of the early 90s, while the AN200 module is an analog modeling synthesizer based on the Yamaha PLG150-AN plug-in card. Later Yamaha MU1000/2000 tone generators were also sold on the site – their difference from the MU128 consisted in a slightly expanded version of the sample bank, as well as in the presence of an optical TOSLINK output.

Actually, the presence of optics in the MU2000 prompted me to start comparing circuits to see if it is possible to modify the MU128 circuit and get a digital output on my own. In the MU2000 service manual, the optical output circuitry is based on a proprietary Yamaha YM3437C chip, which is very difficult to get for an ordinary radio amateur. We need to look for a more running DIT. A Google search on this topic led me to mod for Yamaha MU10. The author of the mod relied on Japanese revision Roland SC-88VL. The mod is based on the TC9231N chip from Toshiba, which implements a digital audio interface according to the SPDIF/TOSLINK standard. The chip can be ordered on eBay, it costs an average of $ 2.5 per piece (note: this was in 2010, the chip is almost impossible to find now); the rest of the parts are sold at any radio store. I assembled a Japanese version on a breadboard, and it turned out to be working – with a small caveat. The DAC of the Roland SC88 is 18-bit, while the TC9231N is 16-bit. The Japanese author made a binding for this, which allows either cutting off the top 2 bits in the stream – which could lead to clipping, or shifting the stream 2 bits lower (cutting off the bottom 2 bits), which led to a decrease in volume. In any case, 2 bits of information were lost – and that did not suit me.

18-bit DIT

I started looking for a transceiver that works with 18-bit stream in “iron” mode, i.e. that does not require setting the operating mode using an additional microcontroller. After a lot of experimentation with DIT 4096, 4192, TC9271N and others, I finally found a transceiver that works hard with 18-bit stream – AKM AK4103AVF. Thanks to the internal pull-up and pull-down resistors, you can get by with a minimum of detail.

Let’s sketch out the diagram first. Given that the board should be as versatile as possible, all configurable pins should be placed on jumpers. The output is tied according to the datasheet as a household (consumer) SPDIF. If XLR AES3 (AES/EBU) is needed, see AK4103 datasheet, also there you need another configuration on FS0-FS3 pins.

The input we mean is I2S, for this we need the data, lrck, bck and sclk lines on the sources. In different datasheets, these lines may be called differently, but their essence is always the same – DATA=SI=MDAC=SDTI, LRCK=LRCX=MWCLK, CLK=MQCLK, etc. All of these lines should be easily found in the circuits included in the DAC, with the exception of sysclk, which will have to be searched by the oscilloscope at different points in the circuit. Usually, in I2S, sysclk (or mclk) is not needed for transmission, but in AK4103AVF the line is used for correct synchronization.

It has been observed that if the circuit is turned on at the same time as the module, the AK4103 does not pick up the frequency and the digital output is silent. Empirically revealed that the frequency is caught after the initialization of the module, you need a power delay. In 2016, without thinking twice, I simply brought the “spdif reset” button to the case (shown in the diagram). At the beginning of June 2022, I was contacted by nikitalita and prompted the BRESET line in the PLG expansion connector. An oscilloscope check revealed that BRESET remained low for about 70ms, which was enough for the DIT to pick up the frequency.

Let’s find the lines on all three devices:

I2S line

Roland SC-88 Pro

Yamaha MU128

Yamaha AN200

syslck

CN105 pin 5

IC39 pin 16

IC17 pin 160

data

CN105 pin 3

IC36 pin 15

IC16 pin 15

qclk

IC35 pin 9

IC36 pin 16

IC16 pin 16

wclk

CN105 pin 6

IC36 pin 13

IC16 pin 13

reset

IC35 pin 9

IC34 pin 19

CN5 pin 4

Roland SC-88 Pro

Roland SC88 Pro wclk, sysclk, data
Roland SC88 Pro wclk, sysclk, data
Roland SC88 Pro qclk, reset
Roland SC88 Pro qclk, reset

Yamaha MU128

Yamaha MU128 wclk, qclk, data
Yamaha MU128 wclk, qclk, data
Yamaha MU128 sysclk
Yamaha MU128 sysclk
Yamaha MU128 reset
Yamaha MU128 reset

Yamaha AN200

Yamaha AN200 wclk, qclk, data
Yamaha AN200 wclk, qclk, data
Yamaha AN200 sysclk
Yamaha AN200 sysclk
Yamaha AN200 reset
Yamaha AN200 reset

The SC88 has an 18-bit PCM69AU, while the MU128 and AN200 have an 18-bit NEC D63200. The Roland MT-32 has a 16-bit DAC with a parallel bus, and digital audio output is a separate task, which we will not touch on. According to the specification, the SC-88 has a sample rate of 32kHz, MU128 and AN200 – 44kHz. According to the datasheet, we need to set the following modes: audio routing mode – normal, synchronous mode, 18bit right justified. We measure frequencies:

wlck

sysclk

qclk

dif0

trans

fs0

fs1

default

0

float

0

0

SC88

32000Hz

8.192MHz

8.192MHz

one

0

one

one

MU128

44100Hz

11.2896 MHz

2.82242MHz

0

0

0

0

AN200

44100Hz

16.9344MHz

2.82244MHz

0

0

0

0

To set the desired mode, the table lists only those pins that differ from their default state – fs0, fs1, dif0.

By the way, in 2010, the service manual for the MU128 could only be found on the same eBay for money. I bought it, got a PDF, and immediately shared it on my site for free for anyone who seeks it. After a few weeks, this service manual was no longer sold 🙂

This circuit was assembled on a breadboard and successfully worked in MU128 and AN200 in 2016.

In 2021, I suddenly decided to re-release the development in a decent way.

18bit DIT
18bit DIT

Board gerber files: dit_0.2_gerber.zip

Partlist

reference

value

package

U1

AK4103AVF

TSSOP-24

T1

PE-65612NL, TC-612

C1, C2, C3

100nF

0603

R1

330R

0402

R2

100R

0402

Notes on Roland

At the very beginning, I also mentioned the Roland MT-32. In fact, things are much more complicated with the MT-32, because. it uses a DAC with a parallel bus. Let’s leave this device alone for a while 🙂

Nikitalita also shared with me a link to another recent Japanese mod based on the AK4103. The author has determined that the actual stream in SC88 is 20bit, so the DIT can be configured as 20bit right justified. However, you will only get a significant reduction in volume. The screenshot below shows the same melody recorded first in 20bit and then in 18bit mode:

Compatibility

This scheme has been tested for operability with the following devices:

Yamaha AN200, MU128

Roland SC88 Pro

nikitalita tested circuit with Yamaha MU90, MU90R, MU100, MU100R

I believe that this DIT is capable of working with any digital synthesizers that implement a DAC stream from 16 to 24 bits, if the technical design assumes one I2S DATA line with a stereo stream. There are also synthesizers in which the left and right channels are encoded with separate I2S lines – the circuit will not work with them.

Links

18-bit DIT on GitHub

MU100-DITa side project from nikitalita with an optical output option

Japanese modification, also based on AK4103

AKM AK4103A data sheet

Yamaha AN200 service manual

Roland SC88 Pro service notes (Japanese)

Yamaha MU128 service manual