Elements standalone


For a few months I’ve been working on a small hobby project that is not finished yet, but I can start sharing now…
I’m building a standalone version of the Elements. Standalone in the sense that it can be used without any other modules, as a desktop synth.

So it adds a Midi input and some user interface for editing, storing and loading patches.

On hardware side it’s quite simple. I don’t have much experience with electronics, so I chose to base the project on the STM32F407 discovery kit. For audio I use the coded included in the kit. In addition to that, there is a 128x64 graphics LCD, 4 rotary encoders and 5 buttons. And midi input, of course, based on the design in Shruthi.

I have soldered all of it on a universal board.

A few photos:

On software side, I have modified the Elements code to support CS43L22 codec that the disco board is equipped. Then I have added a simple API layer for note triggering and patch parameters. Finally, changed build to package this in a static library.

Then I have implemented UI and midi support in Rust and integrated it with the Elements library.

This is just a quick note, in coming days I will polish and document things a bit so that I can release the code alongside some better description of the hardware setup, so that anyone interested can build it themselves. I’m also open for some help in this, especially on hardware side. It would be good to build a proper PCB and maybe use the STM32 chip directly instead of the discovery kit (which would allow for a smaller form-factor). But that’s beyond my expertise.

In future I would also like to upgrade to the new STM32H7, that would allow for at least 3 voices of polyphony.

And I’m already thinking about doing the same with Plaits. :slight_smile:


This looks great! Will you also add internal modulations sources and a modulation matrix?


Great project!

If you stick with the discovery-kit, the project will be much more appealing for many synth-DIYers out there. You could keep all the other components through-hole and this could turn into a great desktop DIY-synth!

That sounds like a great idea! Imagine this as an MPE-compatible synth - with a modulation matrix to assign pressure / expression to various parameters. This would be a killer synth for LinnStruments, SeaBoards, or the Osmose (when it ships in summer 2020)!
There is a discovery board for this chip available - just sayin’:wink:

Oh yes :drooling_face:

Thanks, a good point about the discovery kit being more DIY-friendly.
And yes, adding some kind of modulation seems like an obvious extension. For start I’m using the “contours” as in original Elements, but it will have to be replaced with something more powerful.


ah this is pretty cool and exciting!

Finally (I had a bit of break to start building Ambika) I can release the work publicly so that maybe someone gets interested, if not now, then in future.
Of course I will continue working on this. It’s a hobby project, one of few, actually, so I can’t guarantee anything in terms of pace of development :slight_smile:


Thanks for posting your work. It looks great.
I’m interested to try and do a PCB and panel for it.

Cool, that would be great.
Would you want to make a PCB with totally custom implementation for the chip, or use the discovery board as I did?
How could I help? Not sure if my list of connections is clear.
Also we could think about some changes and extensions, e.g. do a parallel connection to the LCD module, add MIDI thru, maybe upgrade to STM32H7.

I’m open to ideas but initially was thinking of keeping it simple by using the discovey board.