Sebastian Hage

Senspherical (February 2022)

This project was an assignment during the 3rd semester of the course “Sound and Music Production” at Hochschule Darmstadt. Every Group had to develop and build a functional arduino or teensy based midi-controller or digital sound synthesizer powered by sensors.

Senspherical is a MIDI controller in the shape of a ball that can control midi-instruments via movements and touches by the help of various sensors located inside of it.

A pressure and touch sensor are responsible for note-on and -off messages and the gyroscope can modulate the parameters aftertouch, modulation and pitchbend of the played instrument.

Over time more functions were developed, for example at a later stage the gyroscope can be used to naturally play a multi-velocity-layer midi-shaker.

The whole project was a proof of concept however the sphere was fully capable of controlling different midi parameters and generating midi-notes.

 

Concept Sketch

Teensy 4.0

A Teensy 4.0 is used as the main microcontroller, as it already has a MIDI over USB function on board, a total of three sensors are read out via the I2C interface of the Teensy. The Advantage of the used sensor-breakoutboards is that they do a lot of smoothing themselves and are able to deliver a very reliable digital-bitstream.

The whole board is usb-powered, only one micro-usb to usb-a cable is needed for power and midi.

A vibration motor provides haptic feedback on various actions (sending a note, program change) via a time-controlled HIGH/LOW-Teensy pin. The program Teensyduino was used as the IDE.

Teensy 4.0

Adafruit MPR121 Capacitive Touch Sensor

With 12 capacitive sensors and smoothing/interpretation of the values directly on the breakout board itself, it can be read out and used directly via its own library. The sensors trigger midi notes when touched and switch between different programs.

The simpler capacitive touch sensors we used before with the analog pins of the teensy have had a hard time detecting multiple sensor states simultaneously and could be incorrectly triggered by touching the other connected sensors.

The pins are connected with several cables to the surface of the sphere, where they can be activated by the user by touching little metal rings.

Capacitive Touch Sensors

At each touch a MIDI note is sent, if the sensor is no longer touched, a note-off message is sent. Melodies, polyphonic chords, etc. can be played. The velocity strength is controlled by the current inclination of the ball forward.

A function button can switch between different programs so that the different applications of the sensors do not interfere with each other. The vibration motor indicates the current program and a program change.

Also a short impulse is emitted by the vibration motor every time a note is played and provides haptic feedback for the user.

Playing a midi-piano with the touch sensors

GY521 6DOF Accelerometer (MPU 6050)

The sensor is read out via the Wire Library, the raw data has to be smoothed and the vector and gyroscope accelerations are converted into value ranges for 7bit or 14bit midi-messages. In the end, it can control various MIDI CCs.

The x, y, z acceleration vectors are read out, smoothed and then converted into ratio values between 0 (no inclination) and 1 (maximum inclination). This allows the values to be scaled to any value range (0 – 127 for 7bit MIDI or -8192 – 8192 for 14bit high-precision pitch bend). In the code, the four inclination directions can be mapped with different functions.

The gyroscope can be used to control aftertouch, modulation, pitch bend and some generic unoccupied MIDI controllers (CCs) by tilting the sphere in different directions. Any DAW can interpret the standard messages directly and additional CCs can be manually mapped.

If the ball is moved, a motion detection is triggered via this sensor. Different movement patterns (rotating, shaking, throwing) can be recognised as a result.

 

Playing a midi-shaker with the gyroscope

Adafruit MPRLS Ported Pressure Sensor

This sensor can measure air pressure values between 0 and 25 PSI and is intended to respond to the compression of air by the users hits with their hand on a funnel which is connected to the sensor. The sensor is calibrated with the current air pressure every time it wakes up from sleep, therefore it always has the same threshold difference for its impact detection as the atmospheric air pressure around us can vary slightly over the day. If a hit increases the pressure and the value jumps above the threshold, a velocity is calculated from the ratio of the current value to the defined maximum value and sent to the audio program with the MIDI note. Drum pads with different velocity levels can be played. The use of a shock sensor would have been a smarter implementation in hindsight, because the sensor has a difficult time differentiating between softer hits if the hand lands slightly off the funnel/hose. However this kind of pressure-sensor would be very suitable for a woodwind midi-controller.
Air Pressure Sensor

Playing a midi-drum with the air-pressure-sensor

3D-Print of the Sphere

We used Polylactides (PLA) as the filament for our 3D-Print. There were several test-prints and revisions in order to get a functional and handy sphere which in its final form contains all sensors, cables and accessories. The holes on the surface for the connection cables to the capacitative touch sensor are drilled after the print. Little metal rings are placed in the conical holes and cold soldered to the connection cables with electrical paint.
3D-Print

Inner Structure

The ball is divided in the middle and the two hemispheres are screwed together with a thread. A plate is installed inside of the ball on which the sensors are installed, it is attached to four positions inside the housing with screws and has a cut out for proper cable management. The pressure sensor is connected with a hose to a funnel, which is located in the lid of the ball. All sensors are connected to the Teensy which sends messages via “MIDI over USB” to the PC, the USB cable is routed through an opening to the outside.

Because the sphere has a combined thread on its two hemispheres it is unscrewable which makes it very easy to maintain the cables and electrical components inside of it. It even can be upgraded with newer or better sensors.

3D-Model

Promo-Video

A promotional video was also part of the assignment. We shot it in one of the 3D-Studios located at our campus.

Click here to display content from YouTube. YouTubes privacy policy.

Sebastian Hage: Product Development, Coding, Construction 

Julian Herrmann: 3D-Model & -Print, Construction

Maurice Goldmann: Light, Video, Video Editing

Benjamin Müller: Actor, Songwriter, Sound Design

Anias Adrian: Time Management, Video-Assistant, Video Editing