Instrument Maker

A framework for making digital instruments with sensors, driven by a need to improve access.

Instrument Maker

This is an open source framework for digital instrument building with sensors, with improving access in mind. For Pure Data running on Bela / Raspberry Pi + Arduino. Code developed by Charles Matthews, with workshops currently in development in collaboration with Gift Tshuma and more in the pipeline. Get in touch if you would like to contribute!

An accompanying set of communication symbols can be found here.

This document in itself is a work in progress, and an invitation to conversation. Please access the wiki for more information and development notes.

Distributed under the terms of the GNU Public license version 3 (for now / not sure how appropriate to this project / need to read up on this).

A diagram illustrating different aspects of the instrument maker framework: sensors, scales, effects, and code.


Instrument Maker is one of my first public repos, and will definitely be messy for a little while. I’m relatively new to Open Source culture - please call me out and/or help me understand if you disagree with anything on here. Same goes for Disability and accessibility issues.

About the code: the current version is not ready for public consumption (see the technical notes below); please feel free to explore the code, and download and try out the abstractions if you are familiar with Pure Data..but I recommend waiting a little while until everything’s more coherent.

How does it work?

To program: within Pure Data (pictured below), create objects with the im. prefix to access building blocks: e.h. inputs, outputs, tuning systems, and synthesisers. Upload to Bela, or Raspberry Pi with an Arduino-type device connected.

Using Bela, choosing a setup should be a case of dragging and dropping into a browser; the Pure Data files can exist as templates or presets, no need to edit or look at the code unless desired.

This is a screenshot of the Instrument Maker objects in Pure Data. It shows a white screen, featuring minimal outlined boxes with black connecting lines. The boxes are labelled: input, scale, sinewave, volume, and they are connected to further boxes labelled echo and output. The lines are drawn from the top, through each of the boxes in various inlets and outlets, into a box labelled output.

Video demo (code):

Video demo (mobile):

Video demo (play):

An accompanying hardware component is in development, which adds crocodile clip access to the Bela platform.

A Bela mini device with shield attached: these feature white connectors to accomodate plug-in sensors, and metallic circles with crocodile clips