Cheap Little Synths

Two Synths for Resonate 2016 from joshua noble on Vimeo.

These boards are for a workshop I ran at Resonate 2016 called “Volt, Amp, Synth & Sound


I really wanted to make a simple workshop about electronics that all beginners could understand. It was a fun little exercise in making an intuitive and approachable way to learn something that is usually thought of as difficult. I usually teach workshops on code and that means you have to spend a lot of time getting peoples machines set up correctly, mucking around with compilers, remembering how to type on German keyboards, all kinds of painful. This workshop was one of my favorites I’ve ever taught because there was no laptop time. Not a single second. Just talking and then soldering and then making some sound. Sound and the production of it lend themselves wonderfully to teaching the basics of electronics because there are so many great and intuitive analogies to draw: volume to voltage, frequency to oscillation, capacitance to time. I may never use an LED to illustrate electronics again :)


The core of this chip is the 4093. It consists of 14 pins and has four CMOS blocks internally embedded inside its package. These blocks are called gates, here these are termed NAND gates. That NAND is actually logic: the output for each gate is positive if both or either of the inputs is high. In the NANoiseD the gates are all tied together in a loop: output of one becomes the input for the next. All gates need both inputs on to send off nothing to the next gate. One is sometimes on because it’s tied to the previous gate. One is usually on because it’s tied to the output but is sometimes off because it’s tied to the potentiometer. What you get is a nice rich controllable noise, fun to play with, terrific for abusing your co-workers/classmates.



This is both a reference to the 556 that is the heart of this synth and a play on the British-ism “For Fucks Sake”. The 556 is a dual 555 timer, meaning there’s two of them packed into the same package. This synth actually adds a 555 to the 556 to allow the user to create a beat, a pitch, and an undertone. The potentiometers control the duty cycle (how long the beat is on and off), the frequency (how often it goes on and off), and then the pitch and undertone of the sound when the beat is on.


Finally, though it’s not shown in the video, we built amplifiers out of an LM386 and some 8ohm speakers that let people make a fantastic cacophony in the workshop.

All of the schematics for the workshop are on the github repository. Please take them, build them, change them, enjoy them.


Yesterday I was driving up I5 here and as I started to go from I5 Northbound to the Madison exits I saw a guy very nonchalantly pushing a shopping cart along the side of the off-ramp against traffic. I know that people sometimes stay under the overpasses around the intersection of 5 and 90 because it’s a) covered from the rain and b) it’s extremely unlikely that anyone will come in there bother them. However when I saw this guy I looked to my right, underneath where the traffic from I90 merges onto I5 I saw about 6 tents and a few other people sitting under the overpass around what looked like a cookstove. It made me realize people aren’t just staying there for a night or two, they’re really camped in there, they’re living there. There is a main homeless camp called “Nickelsville” nearby that’s accessible from streets but this isn’t nearly that large or easy to access, it’s here, up in between parts of the elevated highway: Screen-Shot-2015-09-27-at-11.40.43 This location is only accessible by crossing lanes of I5 or I90 on foot. It looked about 30 feet long and about 10 feet wide and was in between the merging lanes of I-5 and I-90. It’s basically a tiny shanty-town delineated by jersey-barriers. So I had a few thoughts. First, (and this one I have quite a bit, to be fair) is this the new normal in one of the most affluent cities in one of the most affluent countries? Second, this is a very dangerous and environmentally stressful way to live. Not just hang out for a night or two, it seems like people are just living there. They basically live in a very specialized environment and like any specialized environment it presents some very specialized needs for its users and those specialized needs have highly specialized design solutions to them. Or could have highly specialized design solutions to them because while I’m not sure how much of the apparel or outdoor equipment design industry is focused on the transient population, I’m guessing it’s very few. It reminded me of this: 0067_351-640x422 which I saw in 2005 I was teaching at art school that made me think “I don’t think I’m as interested in art as I am in design”. And 10 years later here I am, still wondering about the same things and with perhaps even fewer answers than when I began.

Running and Thinking

People sometimes ask what I think about when I run for hours on end. I usually just shrug, smile, make a deflecting joke. The thing I love about long distance running is that it takes the manifold of problems that is life and brutally reduces it to a Cartesian two vector, time and distance. One possesses an array of tactics but a single strategy: let nothing else intrude. That which adds any additional dimensionality to that two vector is why we all develop our own array of tactics, most of which are so hermetic and wordless that trying to talk about them is ridiculous. What do I think about when I think about running? Nothing, I avoid thinking. I abnegate thought, physicality, self-hood. It’s wonderful to not think, to bathe in negative capability and to later re-inflate the world dimension by dimension, choosing what one will re-introduce to it and what will be left behind. I begin with a head and heart full of worry and problems. I end with a two vector, blunt, mute, and inarguable.

This reductive force could be anything, of course. It could be Street Fighter, it could be a golf swing, it could be playing the foreign currency derivatives market. Those things, like all human endevours, possess this potential which is what makes them pleasurable. In a world of mess and complexity anything which allows reduction is a welcome respite. What I find about running though is that there is nothing more already reduced by its nature. If we take gravity as a fact, which the overwhelming majority of us should, and terra firma of some sort, all the conditions are already met. One needs nothing else. Personhood and the most rudimentary of anthro-scape. Voila, now begin.

Temboo + Facebook tips

Getting Facebook running through Temboo requires a few steps which aren’t particularly well documented on the Temboo site. In order, do the following:

Create an app on

Hit the Initialize OAuth choreo:

Hit the Initialize OAuth choreo:

Now you can create and use the Choreos for calling the Facebook API. Would be nice if Temboo documented this a little better on their site but whatever,

A few smart home principles

1) Solve an actual problem. Simply adding connectivity solves nothing.

2) Don’t design for a single user or a single persona. A home has a multiplicity of people and roles.

3) Either build it to last or make it as easy and inexpensive to change as a lightbulb.

4) Maintain familiar forms and affordances; don’t destroy an object to add a screen to it.

5) Design trust. Intelligence without trust has no place in the home.

6) Leave room for invention and customization. A home product should be open, transparent, reconfigurable, and, within reason, repairable.

7) Design degradation and breakage: the internet will go down, the batteries will die, the power will go out.

8) Augment the things we love and automate things we don’t.

9) Request attention rather than demand it.

10) Have personality without imposing style: the physical characteristics should fit into any home, the experience should be able to suit any atmosphere.

this middle has
is now a mockingjay
and cannot hold

a term at the limit
a rate of change d
it doesn’t hold

the waitlong to find
the very edge of this
game of terms and sums
may well be up

what lies beyond the wall

Post Workshop Part 1

Ok, so all the chaos has settled slightly and you all need to know how to use all the stuff I gave you. First, all the code and zip files are on github. Next, the hardware! So, here’s programming the breakout board:


That goes with any of the sketches :)

Here’s connecting a slider:


That goes with this arduino sketch

Here’s connecting the LED


That goes with this Arduino sketch and this iOS app and this Android app

Here’s connecting the accelerometer:


That goes with this Arduino sketch and this iOS app and this Android app

There’s much more to come, including *gasp* working OSX code!

A quick primer for my workshop on BLE

<<<<<<<<<<<< Update

Ok, if you’re taking the workshop here’s what you need to bring:

  1. A computer.
  2. Something that can talk over Bluetooth 4.0. Now, I won’t kick you out of the workshop if you don’t have one of these, but you won’t have nearly as much fun.

If you want your RFDuino to talk to your iPhone/iPad please download XCode and get your developer account set up before the workshop. I really won’t have time to walk you through it (it’s not hard) and the downloads are around 4gb, which means it could take all day to complete.

If you have iOS read here

If you have Android read here

If you just want to use your laptop read here

Questions? Email me, if you’re taking the course you have my email.


I’m preparing a workshop on doing things with BLE for Inst-Int and I figured I should make a quick primer for folks who might want to take that workshop. I’m going to just lay everything out here in as compact a fashion as possible so people can prep themselves. A lot of this will be links but trust me, these are well selected links, not just random grab of “oh this’ll do” links. These are *artisanal* links.

First off, what is bluetooth, in most basic form? Ok, and this is important, we will be using Low Power Bluetooth, sometimes called Bluetooth LE, sometimes called Bluetooth 4.0.
We won’t be focusing on other versions of Bluetooth for a couple of reasons: 1) they eat battery like no tomorrow, 2) IMHO they’re harder to get set up and devices are less standardized and weirder to use, 3) we’re trying to be future-oriented! 4) all the things we’ll learn in our workshop will have you pretty much ready to go with Bluetooth 2.0 (there’s no 3.0 afaict, so whatever).

So, big picture: there’s a thing that can talk to something else over radio. In our workshop we’ll have two things, something called an RFDuino that’s an Arduino compatible bluetooth device and then something else that you’ll provide which can be pretty much anything (you probably will already have it with you).

Second, how do we talk to a bluetooth radio that’s in a device? Well, we can talk to it using an Arduino over a serial connection, or if you’re lucky and own an Android, Windows Phone, Blackberry Device, or iPhone, you have a device that already has one in it. This also goes for most laptops, cars, and so many other things that it’s silly to list them all out. FOr most of those devices they’ve provided a way for you to talk to the bluetooth radio that’s in your device. For iPhones this is a library called CoreBluetooth for Android this is a group of libraries with names like BluetoothAdapter and BluetoothGatt and so on. You can write an application in OpenFrameworks or Cinder for iOS or Processing for Android that lets you leverage these libraries in a way that’s a little faster for prototyping and experimenting than building a regular iOS or Android application might be. So what do those look like? Well, let’s check it out:


Ok, this is important only newer phones and tablets support the right version of bluetooth. You can install this app and see if it works. Does it? Yay, you’re all set. Doesn’t? Check what version of Android you have. Is it higher than 4.2? You should be good. Not? Erm, can you upgrade? Check the specs. If it’s not 4.3 or doesn’t have a Bluetooth 4.0 radio it’s not the end of the world, you can still have multiple RFDuinos talk to each other or talk to your computer (probably).

Processing runs on Android and it’s actually pretty painless. Because I’m trying to leverage the newest features in Android we have a slightly hacked version of Processing for Android that I’ll be distributing at the workshop so we can talk to our Bluetooth devices. It basically comes down to changing a ’10’ to a ’20’ in a whole bunch of places, updating this library is super painless and won’t break things for you at all. If you want to be really ready, get your Android device ready to go and try a few things out before you come to the workshop.


Got an iPhone 4s, 5, 5s, 5c? You’re golden. Got a 3 or 4? Sorry.

Openframeworks makes it pretty easy to work on iOS but there are a lot of hoops to jump through beforehand. I really want everyone to be able to make things that talk to their phones or tablets or whatever in the workshop but if you want to be doing that on iOS I *beg* you to get all this set up beforehand because Apple has made it very hard to get set up and I’ve been burned so many times by assuming that their login/enrollment/keys/blah process would go smoothly that I can’t promise you that you’ll be able to do anything in the workshop.

You can use Cinder too! Rad! You use Cinder, you know what you’re doing or you can figure it out. I have a simple Cinder Block that I’ll be releasing very soon. Update it’s here.


If you’re ok with just having things talk to your laptop, rad! Most laptops these days have Bluetooth 4.0 enabled on them.

OSX how do you know?

Click the AppleIcon menu (you know, the one in the upper left corner)
Select About This Mac.
Click on the More Info… button.
Click on the System Report… button.
Select Bluetooth from the sidebar on the left, underneath “Hardware.”
Scan down the list of information until you find “LMP Version.”
If your Mac is equipped with Bluetooth 4.0, LMP Version will say 0x6. Anything lower than that is an older version of Bluetooth.

Windows how do you know?

You have Windows 8.1? You’re good to go unless you have a really old computer in which case see the below:
You have Windows 7? Get this. Get it before the workshop *please*. UPDATE: as far as I can tell this isn’t going to work because windows 7 won’t support BLE. If you’re really stuck maybe we can figure something out.


Read this


In our workshop we’re going to be using the Arduino environment to program our bluetooth devices. You don’t need to buy an Arduino for the workshop because I’m going to give you one but if you aren’t familiar with Arduino it wouldn’t hurt to get comfortable with the Arduino programming environment itself. Also, if you just want to buy an Arduino for the hell of it you should totally do it because they are awesome. To do so, download the environment and check out the samples. There are *so* many good resources for learning Arduino that it’s ridiculous (and amazing) but the Arduino site is a great great place to start. For our workshop we’ll be using the Arduino 1.5.7 Beta NOT THE 1.0.5 so if you could have that downloaded and installed when you get into the workshop that’d be great!

If you’re taking my workshop, I’ll be sending out an email to everyone as the date gets closer, if not, then I’ll be putting another post up after the workshop with the gist of what we covered and all the code.