Polyphonic Synthesizer | Bespoke Unit

I’ve posted these units before but I thought it would be a good idea to make a separate thread for them since I’ve just finished cleaning up the code and writing a nice README with more details.

I present Simple Synthesizers!

It’s a collection of saw-based synths that can be used for all kinds of things and, most importantly, creating polyphony on your ER-301.

These units are created using the Middle Layer SDK which means they require only a tiny amount of CPU compared to their equivalent UI based patch. This means they can be used quickly and cheaply as a base for more complex creations or even as a zero-effort sound source when searching for inspiration.

Any and all feedback is appreciated, including ideas for improvements or new features. I’ve had a lot of fun playing around with it and I’ve left a couple of patch ideas in the documentation.

As for future improvements, here are some ideas I’ve had so far:

  1. A̶ ̶v̶e̶r̶s̶i̶o̶n̶ ̶w̶i̶t̶h̶ ̶a̶ ̶s̶i̶n̶g̶l̶e̶ ̶g̶a̶t̶e̶ ̶f̶o̶r̶ ̶a̶l̶l̶ ̶v̶o̶i̶c̶e̶s̶. Don’t need it.
  2. A̶ ̶v̶e̶r̶s̶i̶o̶n̶ ̶w̶i̶t̶h̶ ̶a̶ ̶"̶r̶o̶u̶n̶d̶ ̶r̶o̶b̶i̶n̶"̶ ̶g̶a̶t̶e̶. :white_check_mark:
  3. A̶ ̶v̶e̶r̶s̶i̶o̶n̶ ̶t̶h̶a̶t̶ ̶u̶s̶e̶s̶ ̶s̶i̶n̶g̶l̶e̶-̶c̶y̶c̶l̶e̶ ̶o̶s̶c̶i̶l̶l̶a̶t̶o̶r̶s̶ ̶i̶n̶s̶t̶e̶a̶d̶ ̶o̶f̶ ̶s̶a̶w̶ ̶w̶a̶v̶e̶s̶.̶ :white_check_mark:
  4. A̶ ̶v̶e̶r̶s̶i̶o̶n̶ ̶t̶h̶a̶t̶ ̶u̶s̶e̶s̶ ̶t̶r̶i̶a̶n̶g̶l̶e̶ ̶o̶s̶c̶i̶l̶l̶a̶t̶o̶r̶s̶.̶ :white_check_mark:

Sounds like something I could get a lot of use for! Thanks for making these, will try out ASAP!

If I clone this directly onto the SD I get an outer folder named “er-301-custom-units”, containing the SimpleSynth folder, will that work? Maybe it would be cleaner to simple rename the repo to SimpleSynth, so that cloning get me a folder named SimpleSynth?

Anyways, thanks again for doing these, can’t wait to try them out!!!

You’ll just want the SimpleSynth directory itself and nothing else. It would definitely be more convenient if you could clone it as you say, but someday I might want to create more units and I figured this repo is where I would put them when I do ha.

Awesome work, thanks very much for sharing.
Great documentation and a good learning aid as well as kind on the CPU too.
Look forward to checking these out :+1:

1 Like

Just used the 4 voice unit in a track I’m working on, sounds great! And light on CPU! What’s not to love :slight_smile:

1 Like

SineSynth.zip (7.8 KB) TriangleSynth.zip (8.0 KB)
These are just triangle and sine copies of these nice units. Just copy the unzipped folders to er301/libs and they should show up as Polyphonic Sine and Polyphonic Triangle. I guess it would be nice to get different parameters for the sine version and also drop the filter. And yes, I guess a SingleCycle version would be really nice as well.
Thanks to @tomf!



1 Like

Really really very cool would be a version where you can pick triangle, saw or sine in the settings of the unit :heart_eyes: I love the fact that all of this stuff is possible with some lines of code.

Would be easy with a single cylce osc version :stuck_out_tongue:

I would like to add the phase/feedback parameter to the sine version instead of the filter or maybe just additionally but that would mean that I need to stare for a very long time at the API to “understand” how to do that.

Yea it seems like the single cycle version makes the most sense to make first, I’ll focus on that. Btw for reference, the built in single cycle unit is about 300 lines of code, the same size as this entire synth unit :sweat_smile: so it’s a big jump in complexity ha

Turns out it wasn’t as bad as I thought, I got it working with mostly copy pasting. Still need to add the scan controls and clean it up though, Single cycle support + triangle version by tmfset · Pull Request #3 · tmfset/er-301-custom-units · GitHub

1 Like

Alright all set! I’ve added versions for both single cycle and triangle oscillators and updated the documentation.

1 Like

Sorry to interrupt, but what is a “single cycle oscillator”. You know, I think it would be super neat if you could load a short wav and use it as a wave form for a single cycle.

You got it exactly, single cycle is a very short wav file that is a single cycle of a (potentially) complex waveform. When played back at audio rate we can create more complex sounds than you could with standard saws or triangles etc.

Adventure kid has a great collection of free single cycle wavs here: AKWF FREE (waveform samples) : Adventure Kid

In particular this allows you to play square waves on the ER-301. Complete with PWM if you load multiple wavs at once.

1 Like

Wow, thanks, that’s reassuring. Polyphony isn’t especially useful for me right now, but did you see the thread I just started, which I may now delete… on morphing between different wav files?

Yea I did, if you’re looking for wavetable synthesis that’s exactly what the single cycle oscillator is for. You can load an entire folder of wavs and then modulate the scan parameter to interpolate between them

1 Like

OK. Is the single cycle oscillator a custom unit / add on? Sorry these questions are probably really out of place.

It’s a built in unit, so you can use it on its own. Alternatively there’s now a polyphonic option :slight_smile:

1 Like

Cool, I didn’t [and don’t] see it on the wiki page, which is baffling. Is it called something else?

All good, I’m sure everyone is really grateful for your code :wink:

EDIT seems to fall under uses of the variable speed player, which I haven’t really used yet. Great that you can load several files and interpolate between them :thinking:

carry on :slight_smile:

EDIT again: but I don’t see an interpolate or “scan” option, anything like that :thinking: and can’t find anything on the forum about it either, Don’t sweat it, I’ll find out what’s going on at some point ha

Its a separate buildin unit, if it’s not appearing under oscillators, you might wanna upgrade your firmware…