O'Reilly logo

Raspberry Pi For Dummies by Mike Cook, Sean McManus

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Making a Steve Reich Machine

Without changing the hardware, you can use these four pots to control your very own Steve Reich machine. Steve Reich is a well-known modern composer whose signature sound is one of slow development of a repetitive motif, often played on one or many marimbas. This program has eight sound samples of a scale played on a marimba, and it plays them back in a sequence of eight notes. After a number of repetitions, the sequence is mutated by replacing some of the original notes with new ones. Using the pot box, you can control the speed of the notes, the number of repeats before mutation occurs, and the number of notes that are changed in a mutation. You can also control whether the notes are playing. An interesting effect can be achieved by disconnecting the A0 input channel — controlling the speed. This then reads wildly fluctuating values and gives the output a bit of a random rhythm. The program is called Pot_Reich.py and can be found on the web site that accompanies this book.

However, the magic of this program literally comes to light when you replace the pots with light-dependent resistors (LDRs). As the name implies, these devices change their resistance depending on the strength of light falling upon them. Although the Raspberry Ripple can’t measure resistance directly, it’s easy to make the LDR produce a voltage by simply putting it in series with a resistor, putting a voltage across it, and measuring the voltage across the LDR with the Raspberry ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required