YM3812 / OPL2 FM Synthesizer chip

Ever wanted to make your own FM synth using a YM3812 as found on PC sound blasters and such devices?


There is a lot of info about this chip here:

https://www.thingsmadesimple.com/2022/11/28/

9 Likes

Really cool.
I got me a few chips like AY-3-8913 and SN76489, but have too many other projects on my desk and realize that using these chips I need a lot of knowledge how to use them. Guess an Arduino or Teensy is a must in order to get som sound from them.
Will follow this.

Yep… you need a microcontroller of some kind. I used the AVR128DA28… which is kind of like an Arduino but all in one chip. The hard part is definitely controlling them through software. Hoping over the holidays to pull together a next episode that’s more like a “hello world” to get people started. If you guys have any ideas I would super appreciate them!

1 Like

I still have to get my SN Noise together - the simple one-chip synth from Thomas Henry based upon the SN76477. But that one has dedicated ins and outs for all functions, whereas our chips have it all on the inside, reachable via registers.

So I guess or suggest the best way to make something out of these chips is to decide how to use, what controls to have and what (sound) effects are required. From that “design” a panel with required controls and simultaneously making a flow-chart how a microcontroller should interpret signals from the panel and send control signals to the sound chip.

Now, I got almost carried away and wondered if I should start designing a front panel … :roll_eyes:

… and how to make it voltage controlled???

You can definitely break out all of the controls for a single voice with 16 potentiometers and ~10 switches. The hard part there is visualizing how all of the knobs add up to a sound. So far, the best I’ve come up with is plotting it out on a screen which feels a little like cheating. The buttons map to the different settings on the screen and the rotary encoder lets you change them. It’s not as immediate as having independent pots for each setting, but it’s pretty quick to tap the button and then use the encoder.

Re: making it voltage controlled, I was actually thinking about splitting that out into a separate (CV+Gate) to Midi converter that you can then just plug into this or any midi module. The circuitry takes up a bunch of space, so that would save the module from getting too big.

1 Like

I will leave (for now) thoughts about a synthesiser or a module with a sound chip but I’ll be back.
Just checking the web, I ran into these articles that may, or may not be of some interest:
YM-2149 (AY-3-8913) Complex Sound Generator
Arduino > Reference > Libraries > Sn76489
SN76489 Synthesizer
Hinting that are surely someone who has done som work for us.

Maybe also here

Video links are broken but there’s some code.

In the wrapup @thingsmadesimple say:

Of course getting from register setting to a working MIDI controlled module will require a bit more discussion. My hope is to take these topics one at a time in future articles. In the next article, let’s go through the module schematic, and after that we will get into some more software algorithms.

So it may be just a mater of time before a practical implementation is presented in that blog.

Added a new video. The basic code is linked in the description, but MIDI won’t come until the video after next. YM3812 EuroRack Module Part 2: FACE Reveal - YouTube

2 Likes

more easy to see it (put the YT link alone in one ligne)

like this :slight_smile:

1 Like

Thanks for the tip! I was wondering why it didn’t load.

1 Like
1 Like
2 Likes

Now that the series has covered the “simple” topics, I get to move on to the fun advanced stuff. This next video goes deep into the weeds of a variety of Yamaha sound chips and their features to uncover a common way of controlling them. Then, with a unified patch structure in hand, we figure out the best way to get that information into the YM3812 right when you need it. Of course this required ripping out and replacing large swaths of code, but the reward is dynamically-assigned, multi-instrument polyphony. Combine this with a set of General MIDI compatible patches, and this module really starts to take shape. In addition to the video YM3812 EuroRack Module Part 6: Patches - YouTube, I wrote up a blog article that might be a little easier to grok. YM3812 Part 6 - Patches - Things Made Simple

3 Likes

Super looking forward to the next installment!

https://youtu.be/xlElbTzaqJ0?si=vdERCSjuqbXPI9AQ (Part 9? - also the synthcard version)

1 Like

Ack! I gotta get off my bum and do it. I keep getting distracted building other modules and such. I think the next one will be on dual YM3812 chips. I’ve had the breadboard and circuit built for months now. Just need to script it out and make the video.

1 Like

I have been throwing things into a parts list to build my own kosmo version at some point.

Take your time - I have too many projects as it is myself :wink:

1 Like

Just out of curiosity, how much trouble would it be to use this:

https://a.co/d/hLbS2EN

for the LCD display? Not that I am thinking about making this a Kosmo module or anything… XD

I use a similar screen in my module. As long as it is SPI, it should work just fine.

1 Like