CV Foot controller

This is something I put together to allow a user to control instruments with their feet. I wanted to control the specific interval of my EHX Pitchfork pitchshifting pedal, as well as the recording and overdub functions of my WTPA2 looper. I actually had a very specific use case in mind – to be able to record a loop on the WTPA2, and then shift the pitch of the loop by a specific pitch interval with the Pitchfork.

This was my hack – a pedal consisting of three footswitches to control the recording, bank change and overdub operations of the looper over a DIN cable, and a separate arduino controlled circuit which sent a control voltage to the pitchfork depending on the user input on a resistive ribbon.

How it works

I programmed the resistive ribbon to have 8 “zones”. Depending on which zone is touched, a different note is triggered via CV. Using the rotary selector, one can choose assign different scales/chords to these zones. For example, selecting “dom 7” would mean the user could pitch shift by any of the intervals of a dominant 7 chord: selecting the left most zone would mean no pitch shift (root position), selecting the third zone would mean a pitch shift of 4 semitones (a third), and so on. In some cases, multiple zones represent a single note, so that the player has more space for their feet.

In case all the whitener fluid didn’t make it obvious, this is still a work in progress. I plan to add the following:

  • A proper digital-to-analog converter (DAC) to make some of the code cleaner, and to make it easier for me to add features
  • An arpeggiator function
  • MIDI sync in for the arpeggiator OR MIDI CC gate outs to control VCV Rack on my laptop (I can only do one of these due to arduino micro limitations)
  • User editable scales

There were some interesting things i learnt through this project:

  • As I didn’t have a dedicated DAC at hand at the time, I used an Arduino Pro Micro to generate a 16-bit PWM voltage which varies from 0-5V. The PWM pins on the Arduino (which the AnalogWrite() function utilizes) are only 8 bit which makes assigning exact note frequencies difficult. As a result I had to use a technique to modify the atmega timer pins to output a 16 bit PWM.
  • A PWM output isn’t a smooth, continuous voltage, but dips from 0-5V in regular intervals which gives an “average” voltage output close to what you want. This control voltage can work in certain scenarios like controlling the brightness of an LED (since our eyes can’t detect a flickering greater than 30 times/second), but the voltage fluctuation is very easily registered by the expression input of the EHX pitchfork.

    In order to make this output usable, I added a simple RC filter in series with the output to smooth it out. This worked in making the voltage more stable and accurate for the intended pitch tuning purposes. It had the additional effect of adding a portamento to every note change, as the capacitor introduces a slight time-delay when it charges up. This is actually pleasant in certain scenarios, and gives a nice dreamlike “warble” to whatever I’m playing.

Project files can be found here: https://github.com/saurabhlevin/CV-Foot-Controller

Witness Me!

Here is a track that emerged from the last jam I did with my DIY loopstation, before I managed to burn out the axoloti board that was central to its loop sequencing capabilities.:

It’s built around a few loops:

  • A short 4-note motif with of my guitar
  • A drum break sample from Archangel Thunderbird by Amon Duul
  • A sample of Faiz Ahmed Faiz reciting “Hum Dekhenge”. Here, Faiz recites the words in a way that fits nicely with how revolutionary the words actually are, in contrast to the moving Iqbal Bano rendition that got popularized during the anti-CAA protests.

“Witness Me!” is a call uttered by Warboys as they prepare for heroic, kamikaze-style deaths in battle, in Mad Max: Fury Road. “Hum Dekhenge” translates to “We shall witness” (this link has the full translation).

I liked the juxtaposition of these two phrases – In Mad Max, Nux acts alone, asking his peers to passively observe him as he hurtles to oblivion in the service of power and those who have it. In Faiz’s poem, the act of “witnessing” is more active – it’s a call to action to those who are denied power, towards the very clear end of attaining justice.

M(IDI)bira

The original build
Update #1

So here’s another update to the M(IDI)bira – a kalimba (or mbira) based MIDI controller. The redesign:

  • Is still based on the Le Strum controller
  • Uses an actual kalimba bridge
  • Uses a piezoelectric disc to convert the vibrations of the kalimba tines to MIDI velocity – this allows a little more expressiveness in a user’s playing stlye
  • Is more modular, so I can make updates to specific components
  • Uses less material – 3d printing took a few hours, as opposed to days
  • Can be played by left handed people, as a tabletop device or as a guitar, and includes labels for notes and advanced chord features

Just to recap, i wanted a MIDI controller that i could use primarily for bass and pads, and that could be played in a manner similar to how i play guitar, an instrument that i am intimately familiar with. I bought the Lestrum kit a few years ago, and only got around to building it recently.
Anyway, here are some images of the process:

Files for printing (and arduino code) can be accessed here: https://github.com/saurabhlevin/MIDIbira/tree/master

WIP: The Signal Mangler

This is a noise effect box for adding digital or tape emulation artefacts to an input signal in a (hopefully) musical way.

Section A (yellow knobs):

  • A simple bitcrusher/sample rate reducer circuit. This is the original design: link
  • It has a control voltage (CV) input for the sample rate.

Section B (white knobs):

  • A single-repeat envelope controlled delay delay. Based on the clari(not) pedal
  • The envelope of the incoming signal is fed into the delay time of the circuit, which can create a wide range of pitch bendy sounds. 
  • The delay time can be controlled by CV. 

I made this for a friend, and this was a little guide I prepared for him.

M(IDI)bira – update 2

I’ve been working sporadically on a better enclosure for the Mbira MIDI controller. Here’s a quick update.

  • 3D printed in translucent PETG
  • I discovered these heat inserts, which have simplified the assembly a great deal
  • Instead of the janky GI wire I was using earlier, I’m going to fit this kalimba tine kit I found an amazon
  • I’m trying to see if I can get the tines to output midi velocity – I may need to combine midi streams before the output using an arduino since I can’tmess with the Le strum code (I’d prefer not to break something).

Mega Loop/Noise station

What do you do when you have a whole bunch of unfinished projects? Combine them all into one mega-unfinished project, of course!

I had a few leftover effects circuits I had made for fun/practice over the years, which I hadn’t been able to justify boxing up in an aluminium enclosure just yet. Another project I have been working on was the WTPA2 sampler, which I wanted to use as an experimental guitar looper. I was keen on adding more functionality to it, like the option to control it via footswitches and MIDI sequencing via an axoloti – so I combined all of those here, along with a patchbay that is useful for creating feedback loops, as well as general routing needs.

The additional effects I”ve added are an Engineer’s Thumb compressor (the yellow knobs), a modified phase 90 clone (big silver knob), and an envelope filter (blue knobs) based on an MFOS design. Here’s a brief video of it in action :

Tones for the Deaf

When i began building effects, I started with a few simple fuzz circuits – one knob, with relatively few components, and using little perfboard. Over the years I accumulated a couple of these circuits that sounded pretty great, but which weren’t worth taking the effort to box up (drilling holes in aluminium enclosures is a pain).

Sometime last year, i decided to combine all these circuits into one 1590BB enclosure. Here’s what I botched together – it’s an Electra based distortion with switchable diodes for the boost/OD, which runs in series with a choice of three high gain dirt circuits – a Ritual fuzz, an EQD Acapulco Gold and an MXR distortion+, selectable via a 4P3T rotary switch.

This was also the first time I tried creating artwork for a pedal. The artwork began with a visual depiction of the flow of the circuit – a signal being split into 3 separate gain stages.  I picked up a can of red spray paint and the combination looked pretty similar to the album art of Songs for the Deaf by Queens of the Stone Age, so I went with that as inspiration. The design was printed on a vinyl sticker on top.

Pitchfork arpeggiator – v1

So this is an old project, but I only recently found some documentation i had of it. v2 is almost ready, and I’ll post an update soon.

This “pedal” is a controller for the EHX pitchfork pedal. It sends a Control voltage (via an arduino controlled digital potentiometer) to the pitchfork’s expression jack. This mimics an expression pedal, but lets a player pick out specific notes, instead of sweeping through a range.

The concept is fairly simple. You first “tune” the pedal by finding the digital pot values that correspond to specific notes. Once you’ve got those values, it’s all a matter of controlling the values you send via the arduino. You can do other fun things like make an arpeggiator out of it, or use it as an extra pedal synth tone while jamming.

On the “One”

Here’s some words of wisdom from Bootsy Collins, which highlights one of my biggest musical struggles:

Keeping things in time is necessary for music with repetitive phrases, or riffs – pretty much the foundation for most popular music. You can go by “feel” when you’re playing live with other musicians, but it’s a bit different when you play alone in your bedroom with a bunch of electronic gadgets – it isn’t easy to play together to create a recognizably musical composition. Its useful to have a way that instruments can communicate with each other so they can reliably respond to each other’s timing to anchor abstract jams, or trigger actions at appropriate intervals.

Fortunately, there is a language they can use to communicate – MIDI (this doesn’t necessarily simplify things, since instruments speak a variety of different dialects). But not all my instruments (eg; guitar) are MIDI enabled, and the only way I can layer them is by recording loops, and playing them back using triggers. My current studio/performance setup desperately lacks a reliable method of sampling audio loops in a way that follows Bootsy’s funk formula – i.e, start together on the”one”. This could be solved by having a master clock source (the volca beats drum machine) trigger recorded audio at the start of every drum sequence, or multiples of the same. There are a few tools that can help you do these with hardware gear, from Ableton to fancy loopers with MIDI capability – but I would have to empty my wallet to obtain them, and where’s the fun in that?

A few months ago I built the Where’s the Party At? sampler – which is amazingly featured for an inexpensive, lo-fi DIY project. It has a pretty thorough MIDI implementation and I was able to get loop syncing going pretty easily via an axoloti patch. It triggers the default recorded note every few bars, and I can control the parameters by which they synchronize – which allows me to new melodies and patterns.

There are less complicated methods of doing the same thing – but this makes it fun, and the axoloti is still free to run other things, like a live sampling patch (for some chaotic sample-ception). Here is a simple clip I recorded with this setup, using just my voice and the volca beats for sounds (voice -> axoloti [with a sampler patch] -> WTPA2 [MIDI in via the volca]).

M(idi)bira

A few years ago, I bought a kit of Jason Hotchkiss’s Le Strum midi controller project. It’s been lying around in various stage of incompleteness since then, as I’ve been trying to figure out what to do with it.

Here is the first usable prototype – I tried to make the enclosure a cross between a guitar, an accordion and a kalimba. This is how the controller works:With your left hand, you select the chords you want to be mapped onto the spokes, while your right plucks the notes you want to play from those chords. The chord keys are mapped out in a circle of fifths, as in an accordion, while the notes get mapped onto the spokes in triads over a range of octaves. Combinations of keys allows you to choose chords with added voicings, like major/minor/dom 7ths, and add4/add6 chords.

As for the name – an Mbira is another name for the family of instruments the kalimba belongs to, so MIDIbira seemed appropriate.

Here’s a brief video:

View this post on Instagram

Guitar/kalimba MIDI thing #lestrum

A post shared by Saurabh Levin (@saurabhlevin) on

Fun thing I discovered while 3d printing the enclosure – if I angled the parts at 45*, no extra support layers were printed, which greatly reduced my print times.

Potential updates:

  • A wooden enclosure instead of a 3d printed mess
  • Laser engraving faceplate with labels
  • Redoing the entire thing as a MIDI foot controller (eek – but this could be really useful, as a guitarist who likes to have my hands free)