Blog: entries tagged with "arduino"

The Bee and the Express

Express: back panel test mount I’m finally back to working on some electronic projects. First up, the Express, an analog-to-MIDI converter built around a Bare Bones Board, an inexpensive Arduino clone.

I’ve been making up some patches for my Evolver synth to use it as an effect on guitar or bass, and thought it’d be nice to have some sort of pedal to control it, along the lines of a wah or volume pedal. The desktop model of the Evolver lacks a pedal input, hence the Express (for “expression”, both of the musical and genetic kind - evolution, geddit?). Currently, it reads one analog pin and spits out continuous controller data. Nothing particularly spectacular there, but it did fit wonderfully into the sturdy steel case from a computer keyboard A/B switchbox. There’s room for lots more inputs, and eventually I figure it’ll sport an additional analog in and some footswitch inputs which will send things like note on/off messages.

I’m still new to making enclosures, and to working metal in particular - instead of grinding out a hole that was slightly too narrow, I used a drill, which grabbed hold of the edges and warped the heck out of the front panel. Panic set in for a moment, but I managed to bash the thing back into shape using a busted old hard drive(!) as an anvil.

Word to the wise: there are two incompatible standards for the wiring of expression pedals:

1/4” - tip to wiper / ring to +5V / sleeve to ground: Clavia, CME, Electrix, Emu, Kurzweil, Oberheim, Roland/Boss
1/4” - ring to wiper / tip to +5V / sleeve to ground: Kawai, Korg, Yamaha

The former arrangement allows you to use a standard normalling jack to connect the tip to ground by default, so the input doesn’t float if nothing’s plugged in. I’m using a Boss pedal now, but my other pedal is a Yamaha, so if I want to use it as a second input, I’ll have to wire up something to cross those connections.

Arduino (and Tarquin) Being easily distractible by possibilities - giant trackball! LED matrix! stepper motor-controlled time-lapse photography! - I’m desperately trying to focus on a couple of projects at a time. Arduino project number two at present is using it for ultra-cheap and dirty sound generation, with piezo disc speakers plugged directly into the digital outputs. A little hacked-together code, and voilà:

The Bee (MP3, 640k)

I call it the Bee, though “Mosquito” might have been more appropriate. Modulating the pulse width creates some nice motion, but there’s a lot more to do, like getting R/C filters to tame some of the harshness - it really is annoying after a while. Oh yes, and putting a switch on it to shut it up between tests. And, of course, buttons and knobs to play it with… maybe even some sort of acoustic treatment, like a resonating soundbox or a spring reverb.

Shortcut URL

Musical interfaces 2

the displayBehold the two-digit display for the Box-O-Knobs (also seen here with its breadboarded ancestor). Each digit is run by one 74HC595 IC. Resistors everywhere. The reverse of the board is a bit hideous, I’m afraid, thanks to my still-amateurish soldering skills.

The vacated breadboard now sports five knobs (50k rotary pots), a MIDI socket and a photocell, which I’ve got controlling the sixth analog pin on the Arduino. A change on any input sends a MIDI controller message. The Evolver already has provision for reading in mod wheel, channel pressure (aftertouch), breath controller and foot pedal information, so I’ve got those wired in along with pitch bend and volume.

Next steps:

  • figure out how to cut the appropriate slots in the top of a case
  • wire up six slide pots as controls
  • external input jacks that override the faders
  • buttons!
  • calibration and MIDI settings editable by the user, without having to recompile and upload new firmware.

Shortcut URL

Arduino 7-segment output

I hit the electronics store the other day - sadly, they didn’t have any opto-isolators, so no MIDI input experiments this time round. But I scored some 74HC595 ICs, for the driving of LED displays and other digital outputs.

Here’s some code to run a common-cathode 7-segment display using the 595 (the Arduino site has a tutorial on how to hook up the 595, send data to it, and daisy-chain multiple ICs). I’ve included a list of which pins to connect to which anodes on the display in the character set file, below. Displays differ in their pinouts, so if you’ll likely need to do some testing to figure out how the pins are arranged.

charset_7seg.h - I spent a few minutes scribbling out a character set, and here it is as an #includeable file. (I put it in lib/targets/libraries/LED7Segment for the compiler to find.)

And here’s a test sketch. It lets you flip through the characters using a potentiometer on analog pin 0, but if you don’t have one handy you could easily adapt it to display the characters one by one.


Shortcut URL | 7 comments

Musical interfaces

We have MIDI!After a good deal of poking and prodding, I got my Arduino board to speak MIDI! The current program reads a potentiometer and sends pitch bend messages down the pipe.

Had a bit of worry when it just sat there doing nothing, but it turned out that I just had the signal and +5V leads reversed. Bonus: if your computer isn’t talking to it via USB, it’s just fine with being plugged into USB and MIDI at the same time. Makes for much, much easier programming.

Invaluable resources in this effort: circuits and code from Tom Igoe, of the Interactive Telecommunications Program at NYU, and Sebastian Tomczak’s blog little-scale, which includes news of his Arduino / MIDI projects.

The more I think over that guitar string ribbon controller idea, the less it strikes me as a permanent solution. I like that it’s quick and cheap, but it’s going to rub the oxide off the tape (or whatever I use as a resistance). So the design will have to take replacement of the tape into consideration. The guitar string method may be useful for building multiple controls - I’d love to have something you could play like the fingerboard of a bass. No rush there, though.

A capacitive position sensor would be a better alternative - that’s what computer touchpads / trackpads use, and among other advantages, they can be placed inside a case so you never have to touch the actual sensor element. Durable is good, especially where musical instruments are concerned. And they generally feature serial output, which I can feed to the Arduino.

Cirque make some promising-looking devices, including some standalone models. Of course, most of the ones I’m interested in are OEM and hard to come by for someone who’s not designing laptops for a manufacturer.

But why buy new when they’re going for scrap all over? A quick search on eBay turns up masses of laptop frames - just the panel that goes around the keyboard, and including the touchpad. I’ll have to hit some local surplus and computer stores too.

Code and sounds to come.

Shortcut URL | 10 comments

Two new toys

Desktop EvolverTwo new toys, and no time to play with them…

One is that Evolver I mentioned. It’s the desktop version, a monosynth with no keyboard. First impressions:

Sturdy metal case. Knobs are rotary encoders, i.e. the clicky digital kind, and are a little dodgy - maybe this will improve with time? Cleverly designed interface cuts down costs and space by packing dozens of parameters into a matrix so you can adjust them all using eight knobs: hit a button to select a row, then turn the corresponding knob. It takes a little getting used to, especially since half of the parameters also require you to hit the Shift button to get at them.

It can make pretty analogue sounds, and glittering digital sounds, and frightening noise. It has two audio inputs for use as a signal processor, and it can do some wonderful spacy things to a fretless bass. Here’s one minute of me goofing around, using it as a bass synth, a ghostly lead, a crunchy bit-hacked rhythm, and some other effects. A bit of echo, reverb and compression added in Logic.


Arduino USB boardThe other toy: an Arduino USB board.

Essentially, it’s a little computer processor on its own board. You can program it from a Mac, Windows or Linux box using a simple language based on C. It has a whole bunch of digital input/output lines, and six analog inputs that can double as pseudo-analog outputs (pulse-width modulated and not suitable for audio, but they work fine for dimming LEDs, for example). If you don’t need the USB interface, there’s a tinier, even cuter version.

More sounds and updates to come.

Shortcut URL

Page 1 of 1 pages Show all tags