Goom: DIY 16 Voice Multitimbral VA Synth

Yes, it is real, and you can build it yourself!

If you have a MIDI controller, you can just ignore building the front panel too. Although it sounds like the front panel controls the first voice on MIDI channel one, so you may be only able to edit voices 2 thru 16 via MIDI.

Anyway the big deal here is that the oscillators are made with slope generators! basically this is 16 interesting digital synth voices in one box. The stereo panning per part also allows you to make full songs from just one MIDI file. Seems to be right up the alley of any Chiptune fans. There is even subtle digital noise on the outputs so you know it is legit.

Definitely worth checking into build if you are running out of space, but still want something simple to build.

1 Like

Cool! And, importantly, it’s open-source. The main signal generation routines are all written in assembler, though. Gulp!

This thing is great - many smart ideas. The waveform generation trick (very CZ-like) reminds me that I really have to do something with the D50 waveform synthesis technique (direct synthesis in the time-domain of filtered waveforms, rather than VA-style band-limited synthesis + digital filtering). This Goom project would have been as great without a filter - just with the waveshaping :slight_smile:

I also like the “pre-compute the deltas between consecutive samples to speed-up linear interpolation” trick. I wonder if it would bring improvements, (if it ever fits), in existing Mutable Instruments products - at the cost of doubling the size of all LUTs.

1 Like

Honestly: I think the demo sounds a little boring.

@audiohoarder: it appears that the thing is called “goom”, not “groom”. maybe change your thread title accordingly, for better searchability?

>you can build it yourself!

i don’t see any mention of pcbs or kits being offered. so this is a build-it-from-scratch kind of thing, right? or am i missing something?

> so this is a build-it-from-scratch kind of thing, right?

Yeah, given the small number of parts outside of the ICs, it’s more like “solder SMT parts on schmartboards, add a bit of wiring and you’re good to go”. A bit like the ghetto Peaks I’ve seen here a couple of days ago.

I think it sounds a little naff TBH

I think voice count would scale linearly with clock and this code should run on 168MHz STM32s with little to no modification… right? Co

The demo could have used a little bit more of modulation, especially some PWM and filter frequency/reso LFO. It sounds a bit flat as it is. The idea is a good one though.

It lacks a LFO.

That is more important than envelopes.

> and this code should run on 168MHz STM32s with little to no modification… right

If it runs at 168 MHz that’s an F4, and if that’s an F4, then it’s probably more efficient to rewrite the synthesis algorithms to use the FPU rather than fixed point. Then you could get your 100 wavetable oscillators :slight_smile:

1 Like

You don’t really need 168MHz to do that.
More MHz wont get you a better synth if you’re not utilizing it.

The point with my synth, although running at 48MHz, was to make it small and make it sound analog.

And it’s 8-pin DIP with just MIDI-in and audio-out, no special knowledge required.
My grandma can build a synth with that.

I’m not saying this is bad, I think it’s great.
It just shows that anyone can tinker with synths besides giant companies.

And I think that he deliberately wrote parts in assembler to not spread the code.

I have no problem with assembly code but a lot of people will say yuck
.

1 Like

@mic.w: Thanks for pointing out that my auto cucumber “fixed” Goom to Groom. I didn’t notice that; it is fixed now. :slight_smile:
Also, this is definitely a “from scratch” kit. If you don’t build the front panel, this thing will cost less than 10 USD. No need for a group buy, haha.

@pichenettes: I have to agree, the oscillators are what really impressed me with Goom too. It is a shame that the spare AD envelope can only control the volume of one of the oscillators. I think that an ENV to the oscillator parameters would be far more useful. I always think that implementing a filter at first is a good idea. If it is really unnecessary, they can get rid of it to free up more resources for better modulation and waveshaping possibilities.

@TheSlowGrowth: I actually really liked the demo. It shows up the multitimbrality and the panning. The two most powerful parts for writing actual music with Goom.

@Jojjelito: Yes, some oscillator modulation options would be choice to add. I noticed that was missing when I read the page. I was hoping that the AD envelope was routable to other parameters instead of osc 1 volume.

@janost: Due to the low spec of the chip it may be better for Goom to implement looping envelopes for repeating modulation.

> And I think that he deliberately wrote parts in assembler to not spread the code.

I think he wrote parts in assembler to reach the rather ambitious goal of 16 voices of polyphony. Don’t be paranoid :slight_smile:

1 Like

>And I think that he deliberately wrote parts in assembler to not spread the code.

It is right on the page that writing certain parts in assembler was about 2 times faster than compiled C code.

Besides, I am sure someone from the Demoscene could crack any assembler obfuscated code.

I’ve learn that it’s easier to do it in C and the assembly turns out quite nice.
Just use assembly for tight sections where timing matters.

The point, with my synth, was to make it simple, professional and with a great sound.

If you do it in other ways, and make it chiptune, you can do a lot more.

I don’t know what ‘naff’ means but it sure is fun to play!..I got Thorsten (midibox.org) to port it to the stm32f4 discovery board (built in dac, audio output, usb MIDI in), so no soldering needed…here’s my first jam with it:
https://youtu.be/92Gh4QOAnBA

1 Like

Is there a download or link to the Goom port to stm32f4? I’ve got a board laying around that I could put to good use.

First install bootloader. Follow tutorial on: http://www.ucapps.de/mbhp_core_stm32f4.html
then install the project.hex through MIOS Studio:
http://midibox.org/forums/index.php?app=core&module=attach&section=attach&attach_id=12011

or to build it from scratch:
svn://svnmios.midibox.org/mios32/trunk/apps/synthesizers/goom/

1 Like

@andrew
follow these instructions carefully
then using MIOS studio upload the precompiled project hex to the board or compile the code yourself.
Thorsten said the CPU load is about 30% as it is right now, so I would certainly welcome someone who can program in C/C++ to add an oscillator, an LFO and a control that can spread the voices in the stereo panorama. Have fun!

how do you download the hex file or the code for that matter, scratch that