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.
Another very cool synth for STM32F4 Discovery is Dekrispator (v1 and v2)
https://github.com/MrBlueXav/Dekrispator/blob/master/README.md
I ported it to Linux, Windows and Mac with Midi support,
Will upload the port to github soon.
Very nice!
Here is the Linux, Windows and Mac OSX port, using the STM libraries for midi and low-level sound sample playback:
https://github.com/erwincoumans/StkDekrispatorSynthesizer
Nice Work! I really like this. Nice and simple hardware, but it sounds great. I may have to build one!
Beautiful board, and nice job on the double buffering DMA. (To say nothing of the FM engine.)
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….
Additionally, sheet music contains control structures: repeat signs, dc, coda, etc.
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.
PreenFM is another ARM-based FM synth and boasts an incredibly rich feature set:
http://ixox.fr/preenfm2/
Really interesting stuff going on in the open music hardware scene these days!
I’m absolutely in love with the STM “disco” boards and after creating a proof-of-concept polyphonic MIDI synth with the STM32F401, now in the process of creating a Forth-inspired livecoding environment around it. Some 25+ WIP demo tracks are here: https://soundcloud.com/forthcharlie/sets/stm32f4
http://www.axoloti.com
Makes building custom digital synths so easy.
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!
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.