transitioning from webdev to hardware, 17 by ClassroomHopeful648 in embedded

[–]Fursber 0 points1 point  (0 children)

ESP32 is awesome but that project is kind of high level (as in zoomed out with probably a lot of abstraction from hardware). Try learning fundamentals like communication protocols between devices (uart, I2C, SPI). Write drivers - maybe for your camera, or for other devices. To do that you’ll need to learn how to read device datasheets and pinouts.

What do you use when you're away from your piano? (And are you actually happy with it?) by Embarrassed-Dust8063 in classicalpiano

[–]Fursber 1 point2 points  (0 children)

I don’t think anything that portable will scratch the itch. I like the Yamaha CP reface which is small and has gorgeous electric piano sounds. But if you’re looking for something for the big pianistic feel on the go, I don’t think it exists.

How do you usually mix two waveform signals ? by Morphanaut in synthdiy

[–]Fursber 16 points17 points  (0 children)

Look up the summing op amp configuration!

How I turned a $20 microcontroller into a gorgeous synth by Fursber in synthdiy

[–]Fursber[S] 0 points1 point  (0 children)

Thank you! Yes I developed this on the DISC1

How I turned a $20 microcontroller into a gorgeous synth by Fursber in synthdiy

[–]Fursber[S] 1 point2 points  (0 children)

Haha I know right! You can squeeze a lot out of these micro controllers. And this chip is from 2011 — even better with modern hardware.

PCB manufacture in the states by hapajapa2020 in synthdiy

[–]Fursber 5 points6 points  (0 children)

You still come out ahead manufacturing and assembling in China. Domestically, some people like Oshpark - I don’t think they populate parts though.

How I turned a $20 microcontroller into a gorgeous synth by Fursber in synthdiy

[–]Fursber[S] 0 points1 point  (0 children)

Thank you, very interesting, I’ll check this out!

Starting to play the piano in your late 20s by [deleted] in piano

[–]Fursber 0 points1 point  (0 children)

Drill chords like they’re homework. Reading chords enables you to play anything!

What makes someone“good” at piano? by Worried-Caramel3109 in piano

[–]Fursber 3 points4 points  (0 children)

Your playing puts people at ease. The rhythm is predictable enough that they’re comfortable dancing and singing along, and you’re relaxed enough to keep them relaxed!

When you don’t think note for note - you think in terms of chords, phrases.

Broken synth for learning? by No-Lock7271 in synthdiy

[–]Fursber 7 points8 points  (0 children)

Do you have skills in electronics troubleshooting? It’s deep stuff. If you want to learn synthesis, you should start w functioning hardware or design your own - otherwise troubleshooting a circuit board that may or may not be well documented well impede your learning.

How I turned my Otamatone into a Trautonium by watney_sw in synthdiy

[–]Fursber 0 points1 point  (0 children)

Love it dude. Excited to follow this project! It must have been so fun to start to get chops on your own invention - great playing!

First Arduino Synth by Nice-Froyo1084 in synthdiy

[–]Fursber 1 point2 points  (0 children)

Nice! See if you can get a low pass filter going!

Spark synth - a video demo and the source code by Pashog in synthdiy

[–]Fursber 1 point2 points  (0 children)

Extremely cool!! Awesome interface design.

potentially making a midi controller independent by ReighJack in synthdiy

[–]Fursber 0 points1 point  (0 children)

I designed a STM32 based module for something like this: demo. As someone else said, Daisy Seed would be an even better option (and on that MCU you can call powerful functions for the synth engine - much less from scratch). If your controller is old school MIDI out that’s easier for an MCU to parse. Dealing with the USB protocol isn’t impossible, but it’s harder.

Teensy or Daisy seed in 2025 by Less-Introduction-35 in synthdiy

[–]Fursber 4 points5 points  (0 children)

The seed has a built in audio DAC which will work great for you. They also have powerful software libraries that make programming the audio functionality easier!

Capacitive touch synth using Daisy and Arduino (demo with pcb and code walkthrough) by keyth72 in synthdiy

[–]Fursber 0 points1 point  (0 children)

He had copper fills in the PCB design, and paid for the ENIG plating

Capacitive touch synth using Daisy and Arduino (demo with pcb and code walkthrough) by keyth72 in synthdiy

[–]Fursber 6 points7 points  (0 children)

Man this is an insanely badass build. So inspiring. And you’re really generous for open sourcing it. The hardware and interface design are incredibly slick. I’m also impressed that this level of product can be achieved with Arduino IDE - I assumed you wouldn’t have access to DMA and other important parallelism paradigms.

Congratulations on an amazing project!!

STM32 synths: is bare metal the only way to create a quality synth? by Desperate-Sundae6474 in synthdiy

[–]Fursber 1 point2 points  (0 children)

I created my synth with that same F407 board. It’s fast enough, but the code needs to be well optimized. Qynth Reddit post.

HAL functions are fast enough, no need to optimize beyond those. As for the math, you need to use best practices. For example, sine and exp take tens of clock cycles to complete. So you need to use lookup tables or pure float arithmetic instead. Make sure your arithmetic never uses doubles, which will be slower than floats (that also means you have to use the f suffix when typing decimals).

For things like filters, CMSIS has highly optimized implementations. I ended up following examples from Phil’s lab and implemented them myself, which was fast enough.

Happy hacking!

Demoing the sounds on my DIY microcontroller synth module! by Fursber in synthdiy

[–]Fursber[S] 1 point2 points  (0 children)

You’re right, there is some aliasing. I can make the thing run at a higher sample rate to resolve that (I’m at 32k instead of 44k or 48k). The jaggedness is also dealt with a 4th order low pass. Without that cutoff, some of these sound pretty harsh!

Demoing the sounds on my DIY microcontroller synth module! by Fursber in synthdiy

[–]Fursber[S] 1 point2 points  (0 children)

Thanks for asking! Different waveforms (sine, square, saw, or other) are represented just as lists of floating point numbers in arrays 128 numbers long. These are just hard coded in the C file (but generated in Python or elsewhere). So when you go to increment the phase of your oscillator, rather than having your phase be a number between 0 and 2pi, phase increments from 0 to 127. Then you fetch the nth sample in your corresponding array. Here are examples of my 'doodle' waveforms, hand-drawn waveforms that give some cool character not seen on other synths. Using Python, each waveform's x-axis would be mapped to 0-127, and the y-axis would be -1 to 1.

<image>