Polyphonic FM Synthesizer Uses ARM

There seems to be a direct correlation between musicians and people who can program. Even programmers who don’t play an instrument often have a profound appreciation of music and so we see quite a few musical projects pop up. [Ihsan Kehribar’s] latest project is a good example. He married an STM32F031 ARM development board, an audio codec, and a simple op amp filter to make a playable MIDI instrument. Of course, it is hard to appreciate a music project from a picture, but if you want to listen to the results, there’s always Soundcloud.

He’d started the project using an 8-bit micro, but ran into some limitations. He switched to an STM32F031, which is a low-end ARM Cortex M0 chip. [Ihsan] mentions that he could have used the DSP instructions built into larger ARM chips, but he wanted to keep the project done on minimal hardware. The audio CODEC chip is from Cirrus Logic (a WM8524), and it produces two output channels at 192 kHz. As an unexpected benefit, the CODEC uses a charge pump to generate a negative voltage (much like a MAX232 does) and [Ihsan] was able to tap that voltage to provide the op-amps in the audio filter with a negative supply rail.

The project has good documentation and uses an optoisolated MIDI interface. The transfer between the ARM and the CODEC uses DMA and [Ihsan] uses an interesting trick to simulate double buffering on the ARM’s DMA channel (and a good use of the “half complete” interrupt). The current design can do eight note polyphony, although [Ihsan] says it can do more with some modifications to the code. After prototyping (see the picture above), he moved the circuit to a dedicated PCB, and he includes the layout in the project documentation.

We’ve seen a lot of interesting MIDI projects including black MIDI music and even wireless MIDI. [Ihsan’s] project would be a good MIDI starter project, and it sounds great, too.

13 thoughts on “Polyphonic FM Synthesizer Uses ARM

  1. Your opening statement that there are a lot of programming musicians and musical programmers is an interesting observation that could warrant a deep conversation.

    If you think about it, sheet music is very similar to program code. Musical actions are recorded sequentially on a sheet of music, while program actions are recorded sequentially in program code. Hmmm, I would love to see more connections drawn between musicians and programmers. Or even a more general connection between artists and engineers….

    1. I heard somewhere that ‘top universities’ have student bodies composed of 70% musicians.

      Not sure what their bar for musician is – but I assume it means some formal, if lapsed, training.

      This, of course, makes perfect sense for a variety of reasons.

    1. Wow, that thing is awesome. Almost certainly will get one after the holidays.

      Do you have one? On some of the sound samples I think I am hearing harsh aliasing (tics and pops sounds) on the filters – is this the case? My MeeBlip would be totally brilliant if it didnt have terrible issues in terms of tics and pops!

  2. The remarkable thing with wm8524 is real time process, once set program and loopback is on.

    Whereas Software codec have delay making it not suitable for real time process.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.