From Medien Wiki

Fiddleing Surface


the fiddleing surface with a metal rod

The in 2016 upcoming Fidget Cube is a device that supports different tangible areas.The idea of adding an additional audible level led me to a design that I call "Fiddleing Surface". It consists of different tactile media which are connected by a wooden frame. The pickup is fixed to the wooden frame and connected to a Raspberry hidden by the construction. A special Pd-Patch is running on the Raspberry to apply interesting filters to the output of the piezo microphone. With earphones plugged in to the raspberry, the user can now hear his touches.


My goal was to use many different acustic materials. I started with a wooden frame which surrounds an inner base plate. I divided the plate into two halves, one with acoustic foam and the other with lines and circles engraved. On the front side I attached a wire frame and connected it loosely to the body. Furthermore, I have plastic hair of a broom built into the frame. The piezo microphone is glued to the base plate. Below it are the audio interface, a small power bench and the Raspberry PI, which are mounted on the feet. They are hidden by the frame. It is important to place damping bouncers under the feet. This prevents the transmission of foreign vibrations to the microphone.

For the audio processing I combined different effects and filters. I used

  1. sine pitch
  2. low and high pass filter
  3. reverb (echo)

Implementation in Pure Data


My sketch consists out of a main sketch that is directing several sub-patches. Therefore new effects can be easily added to the program.

control of channels


Because the experience is more immersive if there is no hard cut between the effects, I decided to implement a control for the channels which allow a fade-in and a fade-out after a change.



For this effect I used the pitch example in the PD-documentation by Miller Puckette. The pitch requires a certain span of audio, therefore we need to use an array. Because I did not wanted to have a static factor for the pitch I create a sine wave as factor to modulate the input. For every instance a pseudo-random growth rate and pitch range are generated.

low and high pass filter


The cut-off frequency for the low-pass- and the high-pass-filter is determined by a pseudo-random generator.



For the reverb I used the freeverb library by "Jezar at Dreampoint. In addition I pseudo-randomized the values wetness, dryness and room-size.

How to play

There are no rules for playing with the "fiddleing surface" but there are some tricks to generate interesting sounds. Use different materials to interact with the surface:

  • wooden mumble (1:23)
  • metal rod (2:09)
  • hair curler (3:05)
  • steel plate (3:32)
  • plastic straw (4:02)

You can hear their sound in the demonstration video below from the time in the brackets.


testing the fiddleing surface


I wanted to build a device that uses the piezo microphone and a raspberry to create relaxing mood with sounds and tactile media. The result is a first feasible approach. In my opinion listening to the device is surprisingly immersive. But that's a purely subjective assessment. For further improvement, it would be necessary to develop a user study that verifies the benefits. Also the following points should be discussed:

  1. The device is too big and difficult to transport. The sound processing should be optimized to a system on a chip, such that the whole processing could fit in a regular fidget cube. Because it is addressing adults the design could be more clean and subtle.
  2. The audio processing doesn't show the potential yet. There are still too many pseudo-random controlled values. Instead of randomness I would like to use more input signals from the user. I think it would be cool to add harmonics depending on the orientation of the device, which can be measured by a gyroscope.


It was the first time I soldered a circuit board and cost me more time than I thought. Also programming with components on a graphic interface was a new experience for me. I think as a computer science student it is still more comfortable for me to write my code as text. I tried to write clean and commented code as good as possible, but general coding convention did not fit in the approach of Pure Data.


You can download here the software for the "fiddleing surface": File:fs