The Arduino Piano Squealer Synth

This page is dedicated to a synth engine, “The Arduino Piano Squealer”, that I developed for the Arduino Pocket Piano, an arduino shield produced by Critters and Guitari.

arduino-piano-top-700

Features

The engine implements a small monosynth with a few waveforms, a HP/BP/LP continuous resonant filter, decay and a few little own tricks that  generate a LOT of aliases, making a great dirty digital synth.

Since the Pocket Piano has only 3 potentiometers available for control (the 4th one being hardwired to the volume), it uses a “page” system to implement series of 3 parameters to fiddle with. To switch “page”, use the rightmost note of the A.P (NOT the one under the led, the one left to to it).

To help you know which page you are at, you can use the led: it will flash a number of time equivalent to the current page you are at.

Here’s the parameter list:

  • Page 1: wave selection / octave / release
  • Page 2: filter type (continuous lp-bp-hp) / filter cut-off / filter resonance
  • Page 3: wave loop position / wave loop length (makes the oscillators go wako)

Please also note that when you switch page, the parameters of that page will automatically jump to the current setting of the knobs. It provides some kind of auto-randomization that is actually quite nice.

Sound samples

Download

The source code of the Arduino Piano Squealer synth is available under GPL License V3, hoping it will help people tapping in the wonderful world of arduino based sound. Alternatively, it’ll also make another synth, ready to to play with if you just purchased the A.P. from C & G.

You can download the source code, right here: aSquealer

Enjoy,

Marc Nostromo

8 comments

  1. Is there a description, somewhere, of what the Pocket Piano provided to the Arduino in terms of input? I like the sounds of your engine, and I want to use it in a guitar-based project I’m working on, but I won’t be using keys to control it, so I need to know how to control your engine at a more basic level – I might have a setting where I just want to “press” a single note and then use a pot (ie. a DC voltage that changes over time) to change a parameter, rather than the note. Or I might want full 12-note control in another setting. It’s got more to do with making cool noises, but it will be used in a real musical setting, so having note control is crucial, even when it’s just a single note.

    I haven’t had a chance to read over your code, but assuming mental competence (but not necessarily specific applicable knowledge) on my part, is there, somewhere in your code package, a basic, electron-level control spec that I can comprehend? Are your comments good?

    If there was a way to code a patch into your engine by hand, complete with instructions about monitoring AD pins for further input and what to do with that input, that would be absolutely perfect.

    Alternately, is there an easier, existing synth app that you could suggest that I might find easier to work with in the way I’m thinking? The guitar is most likely also going to incorporate a Raspberry Pi (or possibly an Odroid, which I just discovered via your blog) for various things by the time it’s done, so there is a lot of flexibility in terms of how to achieve things. I am not well-versed in what’s already out there, though, as techno music is not usually my field of interest, and most of the action is there.

Leave a Reply

Your email address will not be published. Required fields are marked *