DIY

MUSIC

RANDOM MUSIC BOX

Microprocessor organ and servo drum play an endless song. By Kevin Weekly

Here’s a fairly inexpensive ($30–$40) project that uses a microprocessor to generate a constant stream of random but pleasant-sounding music.

A Microchip PIC16F685 generates 5 square waves that are amplified and combined to play on a small speaker.

Photography by Sam Murphy

A lookup table in the software stores chord progressions common in Western music. As the music runs from chord to chord, 3 oscillators play the chord itself, 1 plays a tonic-dominant ( 1-5) bass pattern, and 1 plays random notes from the underlying scale as a melody. Potentiometers adjust how much of each component (chord, bass, and melody) is mixed into the final output.

To keep the beat, the microcontroller also generates output for driving a servomotor to strike a drum or equivalent.

Assemble the Circuit

Download the project schematic at makezine.com/ 17/diymusic_random. You can solder it onto protoboard or put it together temporarily on a solderless breadboard. I placed and connected the components in this order: sockets, resistors, capacitors, power wires, signal wires, potentiometers, and finally the off-board connections to the speaker and servo (Figure A, following page). The web page has sketches showing each step.

Program the Microcontroller Download the project code from makezine.com/17/ diymusic_random and use your PIC programmer to burn the firmware onto the microcontroller. You can either program it directly from the hex file main.HEX or compile the program from the source code main.asm.

Make: 141

References:

http://makezine.com/17/diymusic_random

http://makezine.com/17/diymusic_random

http://makezine.com/17/diymusic_random

http://makezine.com/17/diymusic_random

Archives