|
EasyEDA |
SEGA Synth
Introduction and rationale
Most synthesizer musicians will have heard of the legendary Yamaha DX7 synthesizer. Released in 1983, its powerful and characteristic sounds defined the decade and the one that followed, with up to 40% of the yearly hit songs in the mid 1980s in the US using just one sound of the DX7! Due to the resurgence of retro-themed music and aesthetics, the demand for DX7 synthesizers is increasing, however given that they haven't been produced in around 30 years, their supply is decreasing, as many succumb to old age. For this reason, I decided to embark on the journey to build open-source DX7 alternatives which can simply be programmed, while using authentic Yamaha FM synthesizer ICs to obtain an identical sound to the original. My first release tackled the relatively simple Yamaha YM3812, which I turned into a synthesizer that can easily be controlled from multiple sources and provided an example project to control it using a WCH CH32V307 microcontroller running the RT-Thread real-time operating system. The code from that project with minor changes (which will be explained) will also work on this project and can be run on an Arduino easily, due to the low processing power and memory demands of the ICs.
This project is a much more expanded version which uses a Yamaha YM2612 in conjunction with a Texas Instruments SN76489 secondary synthesizer IC - this combination was used for the widely popular SEGA Genesis/Mega Drive video game console, which was widely praised for its excellent sound synthesis capabilities, which sound very similar to the DX7. It's simple to program and use, flexible for programming and integration, while being low-cost! All the parts combined cost <10$.
Video
Mode of operation
There are five main parts of the synthesizer board above:
- Clock generation - U2 and X1 form an 8MHz clock generator using a CMOS inverter oscillator topology. This clock is necessary for the YM2612 to operate. The clock is further divided by U1 to a frequency selectable through header H1, since different models of the SN76489 require either a 4MHz or 500KHz clock, and I decided to add options for both. The board can be modified so that an external clock is supplied by a microcontroller.
- Input - U5 is a serial-to-parallel shift register which lowers the pin count of the board when connected to a microcontroller. Writing bytes to the board is simple as the interface is just SPI. The specific choice of the SN74LS164 ensures that both 5V and 3.3V signals can be reliably used from a microcontroller, however the board still requires a +5V supply.
- Synthesizer sound generation - U3 and U4 are the main synthesizer ICs which provide the sound. In the example photo I used a Yamaha YM3438 instead of the YM2612. The YM3438 is a CMOS replacement for the TTL YM2612 and both will work in the circuit board. The ICs originally have a parallel bus, but they are both connected to the serial-to-parallel shift register. Their control signals, however, are directly exposed to the microcontroller.
- Sound summing and filtering - U6 is a dual op-amp where the first op-amp handles the summing of the inputs between the YM2612 and SN76489 with their sound output levels being taken into account. For the user, both ICs also have volume output registers available internally. Potentiometer RP1 (which can be any value that is approximately 5Kohm) controls the volume for the summed sound output through an inverting amplifier topology. R6 and R7 provide the virtual ground bias voltage and C7 stabilizes it. The sound is then filtered through a Sallen-Key active low-pass filter to remove frequencies above 10KHz, and the user can add another passive filter after the second op-amp to further remove higher frequencies and achieve a "warmer" sound.
- Capacitor bank - C9-C15 have the important role of filtering power supply noise, which is especially important in sound circuits such as this. C15 is particularly important, as the YM2612 requires a lot of current and having a somewhat large electrolytic capacitor immediately near it will give it the power it needs. Experiments without the capacitors led to a lot of instability, as the YM2612 would lock up when it didn't have enough current.
Programming the YM2612
The YM2612 works through addressable registers, like most complex ICs of its time period. Signals A0_YM and A1_YM select the appropriate register bank (which can be seen in the datasheet) and WR_YM writes the byte which is shifted in through the SPI interface. The YM2612 is separated into voices, with each voice being separated into registers. The details of its operations are beyond the scope of this description, however there are two extremely important documents which explain the internal workings in-depth, as well as a forum post discussing unknown features and further documentation:
- Sega of Japan Sound Documents and Source Code
- Technical Documents and Overview
- Authoritative Reference on the YM2612
For a model on programming the YM2612, my previous project using the YM3812 can be used as a reference, since they're very similar. I am planning to release a full video on programming and operating the YM2612, as well as creating a control board with potentiometers for each setting of the YM2612 to give it an analog-synth-like interface.
Sourcing the ICs
The YM2612 and SN76489 are out of production currently and it's unlikely that they will be produced again, however due to electronics recycling there are massive stocks of them online. Currently, the best places to source them from are Aliexpress and eBay. Both sites will often have the same sellers, however there are a few caveats which need to be made. Approximately 1 in 10 such ICs bought from both sides are defective, which can happen due to many reasons, so I recommend buying at least two at a time. They're still very cheap and replacing the YM2612 with the YM3438 will not only lower the cost, but you'll get a system that works for longer, since the YM3438 is built with a CMOS process and uses less power. Most of these ICs are recycled, which is not necessarily bad since this basically reduces e-waste.
Conclusion
This project offers a simple, low-cost synthesizer that anyone can build and expand on indefinitely. I hope that you enjoyed this description and hopefully purchase a board to build yourself!
SEGA Synth
*PCBWay community is a sharing platform. We are not responsible for any design issues and parameter issues (board thickness, surface finish, etc.) you choose.
- Comments(2)
- Likes(7)
- 1 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
-
10design
-
10usability
-
10creativity
-
10content
More by Stefan Nikolaj
-
-
-
-
-
-
3D printed Enclosure Backplate for Riden RD60xx power supplies
152 1 1 -
-