Category Archives: Uncategorized

Musical Robotics Workshop

This site has files for the ATLAS Musical Robotics Workshop 2/11/2016!


Download Pd examples

Go to MIDI settings and select the Teensy as your MIDI output (make sure its plugged in)

basic.pd – this is a good place to start. You can test your setup here. Just click on the buttons in the patch (make sure Edit mode is off). You can also use the keyboard with the keys, space, f, j, d, and k

basic-random-vel.pd – this one will randomly calculate a new velocity every time a solenoid is triggered.

algorithmic.pd – this one will generate beats algorithmically based on the position of the slider (controls likelihood).


Download Teensy / Arduino code:

Automatic Off (default) – good for solenoids, not for vibration or DC motors you want to leave on.

MIDI note On / Off  – This one will respond to note on messages and will stay on until a note off message is received (velocity = 0).

Make Some Noise

This will walk you through one of the simplest ways to start making sound with modular-muse.

Add a Sound Generation Object

Go to the Put menu and select “Object”. You should have a little red box following your mouse. Click on the empty patch window somewhere to place it. Now you have a blinking cursor.

Now you need to put in an object that Pd recognizes. If you have the modular-muse library installed try “mm-waves~”. That little “~” is used in Pd for objects which deal with audio signals as opposed to what are called control signals. More on that later.

Screen Shot 2015-03-18 at 2.47.51 PM

The top of the object has little rectangles which are called inlets. This is where you can send numbers and messages to change the parameters of the object.  This object also has GUI elements built into it which can be used to make changes as well.

Send the sound to the speakers

But by itself it doesn’t make noise, we need to route the audio signal to the computer’s speakers. We do this with another object called [dac~]. Go to Put > object again and place the new object below the mm-waves~ object and type “dac~”.

Connect the sound source to the speakers with a wire

The last step is to connect them with a “wire” in Pd.

Hover the mouse over the bottom outlet of [mm-waves~] and your should turn into a dark O. Click and drag with the mouse. You should have a line following your mouse. Drag to the left inlet of [dac~]. You should hear sound coming out of your Left channel (you can also connect to the right but running another wire to the right inlet of [dac~]).

Screen Shot 2015-03-21 at 11.00.40 AM


If you don’t hear sound check that the “DSP” is on and your volume is up. Go to the Pd window and make sure the DSP box is checked. If you still don’t hear sound – check your audio settings in the Pd “media” menu.

Edit and Performance Mode

Now go to the Edit menu and notice at the bottom of the menu is Edit Mode. If it is checked, select it to un-check it. Now you’re in “performance mode”. This means instead of adding or moving objects or making connections you can interact with your patch.

Screen Shot 2015-03-21 at 11.01.21 AM

Click on the the frequency knob and drag up and down. There you go, you made a mouse Theremin!

Musical yoyo

I created a musical Yo Yo. It wasn’t my original idea but it worked out, I used a Proximity sensor, Sound board, and some “sound clippys” . I took the Proximity sensor and taped it to the ground, then proceeded to Yo Yo over the Proximity Sensor, i’m not gonna lie, it was pretty snazzy.  Over all it was a fun project, and I did learn a thing or two about computers and Modular-muse. This was a great year and i’d like to thanks Mr. Haraman for being a part of the music focus class.

Using the Sound Clippys board

A Paper Piano

For starters here’s an example interface. A paper piano with a distance sensor to control an audio effect. The “tuning” of the piano can be changed to plugging into different ports on the board or by making changes to the program in Pd.


The Sound Clippys board has two different kinds of inputs, digital and analog.

Digital Inputs

Sound Clippys board detail – Digital pins on top, Analog pins on the bottom for variable resistors and other analog sensors

There are 12 digital inputs which can have two states – high or low, 1 or 0, connected, or not connected, are different ways to think about it. They use something called a pull-up resistor to make the pin normally HIGH (5 Volts to be exact) and when they are connected to the GND clip (for ground) with a wire or something that conducts electricity they are read as LOW (or 0 Volts).

The 12 digital pins are are lined up along one edge of the Sound Clippys board, staggered a bit to look like a piano.

Connecting to the board

Open Pd and open the patch digital-diatonic.pd which is part of the modular-muse library installation be here:


From here the [mm] object will be used to identify and connect to the hardware.

1. Before connecting your Arduino, click on “list” – now go to the Pd window. It should have a list of serial ports.  Now connect the board and click the “list” button again. There should be  a port in the list, this is the Arduino. Note which number port it is in the list.

2. Click in the number box and type that number and hit Enter

3. Click Open

If it all worked your are not connected to your board and if you make a connection between any of the Digital pins and Ground you should be able to play the instrument in digital-diatonic.pd.

Making Buttons and Switches

You can play this instrument by clipping an alligator clip to GND and then touching the other end to the digital inputs on the board.



Using conductive material

There are lots of conductive materials available these days which are great to use with this board. Here’s a short list:

Copper tape

Conductive Ink

Conductive Thread


Here are some examples:

Using conductive paint/ink:

IMG_1272 simone-love brit-tree


Tweet Tree:

Using copper tape with paper and wood:


wood-playing wood-side wood

So there are a few ways to using the Sound Clippys digital inputs. Please share yours!

Analog Inputs


Connect potentiometers or other analog sensors to the headers. These are sensors which should have 3 pins: (1) 5V, (2) signal and (3) ground. Above a small knob potentiometer is plugged in.  Here is a distance sensor:

Distance Sensor plugged into Sound Clippys analog input

The bottom row of alligator clips are for connecting variable resistors. These can be photocells (change resistance depending on light), force sensitive resistors (change resistance depending on pressure), bend sensor (change resistance depending on amount of bend), etc.

Here is and example with a photocell (light sensor):




The new Sound Clippys have arrived!

Just got a delivery of 21 PCBs for the new Sound Clippys modular-muse boards! Very excited to use these with Manhattan Middle School students soon to create new musical controllers.


These boards have 12 digital inputs for discrete control (i.e. on/off) and 8 analog inputs for continuous control (expression!). Do you see the piano?


Connect a Scratch PicoBoard to Pd

The PicoBoard was developed to communicate with the programming language Scratch. These days Sparkfun sells their own version of the popular educational platform.

The Sparkfun Picoboard


The protocol is available on github and there’s a tutorial that walks through the Arduino code here.

We’ve made a Pd patch to bring in the data from the PicoBoard.  This includes a button, 4 resistance sensors, light sensor, microphone and the slider.

Here’s what it looks like:

Screen Shot 2015-03-02 at 2.04.15 PM


The download below also includes a demo file to make sound with the button, slider and light sensor.



Next modular-muse hardware board on its way

The next modular-muse hardware board has been ordered. It features aligator clip based connectors to make it easy to create buttons from conductive materials. Here’s a sneak peak:

Screen Shot 2015-02-25 at 9.43.07 PM

The top row is all for your aligator clipping pleasure. Think Makey Makey, except more programmable.

The bottom row of analog inputs matches the approach used by the GoGo Board and the outputs make it easy to drive servos and solenoids!

Creating Musical Gestures

Musicians have control over a lot of different aspects of sound that they use to create expressive, dynamic music.  A violinist may alter their bowing to change the timbre, a horn player may create a swell in volume, a vocalist may vary their vibrato.  This is what makes music interesting, it gives it variation, change over time. With computer generated music controlling these parameters is the difference between static, lifeless sounds and interesting expressive sounds.

There are a number of modular-muse objects that can assist in creating musical gestures. The first one is the [mm-env] object:


This is a user generated envelope (an envelope describes the change of a parameter over time). It could be used to control a filter sweep, a change in frequency or an increase in vibrato among others.

These are the controls:

time (ms) – How long to “play” through the whole envelope

max out – value at the top of the graph

min out – value at the bottom of the graph

graph – The graph can be changed by clicking on one of the points and drawing a new shape with the mouse. This gives the gesture a shape.

trigger – Clicking will trigger the gestures, alternatively sending a bang message in the first inlet the array will trigger the gesture.


Here’s an example of using it to sweep a filter:


Notice the bang triggers two envelopes, one which is used to control volume and another to sweep the filter cutoff frequency.

Installing the modular-muse Pd library

The modular-muse library for Pure Data (Pd) makes it easier and faster to program a wide variety of sound interactions from effects processors to electronic instruments. All the modular-muse objects are built out of existing Pd-extended objects. Installation consists of adding the folder containing the library to your Pd-extended path. This guide will explain in detail how to install the modular-muse library for Pd.

Install Pd


First of all, you’ll Pd-extended. Note, modular-muse does not work with the “vanilla” Pd installation as it relies on several extensions available only in the extended version.  Pd is available on Windows, Mac and Linux. Download and install instructions for Pd-extended are here.

Download modular-muse OK, now that you have Pd-extended you’ll want to download the modular-muse library from github here. modular-muse installation Extract the zip file somewhere you’ll remember, I like to create a Pd folder and inside that a libraries folder. When you extract the zip file it will create a folder called: modular-muse-master/ Now you just need to add the new modular-muse-master folder to the “path” Pd-extended.  This allows it to see all the patches in this folder.

Add modular-muse to the Pd-extended path

Launch Pd-extended and open up the Preferences, depending on your platform this will be under the main Pd-extended menu (Mac) or the Edit menu. Click “New” to add a new path. Browse to the folder modular-muse-master/ you just created and click “choose”.


Close and re-open Pd. Thats it, you’re ready to use the modular-muse library.

Create a new patch in Pd (File > New)

Add a new object (Put > Object)

Enter “mm” and click outside the object you should see the modular-muse  object: