Documentation of the work done in the Musical Interfaces course WS 2012
The HPSTR Pyramid is an attempt to create an alternative — but native to digital world — interface, to conventional knobs and slide controls. It's an approach to have the same basic and generic functionality a knob has but to achieve it with a more natural interaction.
I wanted to create an instrument that is generic enough to be used in different contexts and to play different kinds of music in a similar way it is possible with an analog instrument like a drum or a guitar. Like an analog instrument it sould have its own kind of interaction (e.g. a trombone is operated with a telescopic slide mechanism or a violine is played with a special bow) to eventually create sound that is distinguishable from other digital instruments. Since it is possible to play trigger or simulate every sound with a digital instrument, it is not possible to make it distinguishable by giving it its own sound. A digital instrument has to find its uniqueness in superior musical structures like composition, transitions.
Also I wanted to create an instrument with the potential to perform live. An instrument that could actually be used to jam, improvise or accompany other musicians. It should be possible to play "enjoyable" music and not end up in an experimental chaos of bleeps an noise.
From the beginning i liked the idea of operating an instrument only by changing its spatial orientation. It has something magical and mystifying since there is no actual change made to the instrument. But still it is a more natural and intuitive gesture to tilt an object than to turn a knob. Maybe it doesn't have the same quantitative indication like a slider has but nor does a violin. The musician has to trust his intuition and experience. I though of building an instrument with the orientation as the only interaction. But playing a note by tilting an object did not feel right. So i decided to use the orientation only for control purposes. To actually play music I decided to take a more conventional approach and to implement touch sensitive pads.
Finding the right geometric solid was the first task I found myself confronted with. Since I wanted the faces to be of equal size and shape it was clear that the solid has to be one of the five platonic solids. Due to the complexity of the dodecahedron and the icosahedron it was easy to exclude them. Since the faces of the octahedron are not equally accessible i dismissed it as well. Altough the implementation would have been much easier and the musical possibilities would have been richer using a qube I decided to go with the tetrahedron. Besides personal taste I started to like the idea of reducing possibilities to a minimum. Also a liked the complete regularity of the tetrahedron so all the faces could be accesed and played in the same way.
While creating several paper prototypes and a small concept video I had enough time to think about and test the functionality and the way a musician would like to perform and interact with such an instrument. I had the idea to first implement the basic functionality like making the sides tappable and detecting the tilt angle and afterwards testing the different possibilities of making music.
The HPSTR Pyramid has no visible interface but is the interface itself. The tetrahedron is played by pressing or tapping its sides and by altering the spatial orientation. I liked the idea of hiding the electronic components completely to give it a analog feeling. For somebody who does not know what the instrument does and how it is operated it is nearly impossible to find out by only looking at it. But once the pyramid is played or seen in action the functionality becomes very obvious.
Each peak represents an instrument where the one at the top indicates which instrument currently can be played. Each instrument has three notes which can be played by tapping or pressing the sides and three effects which can be applied and altered by tilting the pyramid to one side. Also every instrument can be recorded and looped. To start and stop recording the pyramid has to be tilted to the point at which two peaks are on the same level and the edge between them is a horizontal line. To mute an instrument the tetrahedron has to be turned upside so the peak of the instrument you want to mute points downwards.
Of course this is just one of many possibilities that could be implemented using the sensors in place. Assigning different functionality to the components (Peak, Side, Edge) is only a question of software. For example a different approach could be to think of the tetrahedron as one song and the four sides would be different parts. Changing to one side would trigger a new sample and the musician would have the possibility to improvise on that sample by playing notes and changing effects which could in this case be applied as an overall effect.
Building the Pyramid
The main difficulty I experienced while building the pyramid was to bring the very clear image I had in mind from paper prototype to the final version made in the wood workshop. I had the idea of a tetraeder with the edges made of wood — to add an analog surface feel but of course also to add visual appeal. For the faces I had a softer material in mind so you would have a more destinct haptic feedback and a feeling of how much preassure you're applying.
After my first visit in the wood workshop I realized that I would need a very different approach to build the wooden tedrahedron "skeleton" than I needed to create the paper prototype. The saws and shapers require other work steps than the cutter and glue. After many hours of calculating angles and drawing sketches I was ready to build the pyramid.
Since the tetrahedron is regular and looks the same no matter which side it is standing on, I shaped tiny grooves to the peaks of the pyramid to have some kind of orientation. I knew that I will have to reopen the pyramid many times, so I also added a magnetic fastener.
The tappable faces are implemented with touch resistive sensors. To make the whole face tappable I made an additional layer with only a few spacers one of which is placed directly on the sensor so most of the preassure applied to the face goes to the sensor. The orientation detection is implemented with a Wii-Nunchuck controller. Besides a two dimensional joystick the nunchuck also has a built in accelerometer. The data of the nunchuck controller can be retrieved over a I2C interface.
The hardest part was to convert the data of the accelerometer, basically numbers between -1 and 1 for x, y and z axis, to data indicating the orientation of the tetrahedron and its inclination. In other words, converting the data of the orthogonal axes to something that is most definitely not orthogonal like my pyramid. Of course there would be a more elegant and pure mathematical solution to that problem but after playing with some paper geometry for a while I realized that it is only a matter of how I place the accelerometer inside the tedrahedron. If I would have used a qube instead of a tetrahedron, getting the orientation would have been much easier because the data of the axes represents the orientation and the inclination of the axes one-on-one. Luckily I realized that if I install the accelerometer on a triangular pyramid inside the tetrahedron and rotate this pyramid by 60° I could achieve the same effect, the axis-data would match the orientation of the tetrahedron. The rest of the implementation could be solved on the software side.
Since I had some prior experience in processing, I didn't have too much trouble getting started with the programming. The thing I had the most difficulties with was the transition from programming only for one screen to programming for a more complex system including different sensors and sending Midi messages to Ableton Live.
Also at some point I realized that the code would be too complex to be handled in just one file. So I thought myself writing C++ classes which probably was one of the biggest lessons I learned from a technical point of view.
Another difficulty was to keep track of the code. It didn't need too much to get a real mess and to mix up my three edges, three faces, four peaks and three axes. So I made a little cheat sheet which shows the components of the pyramid and the corresponding variables.
The good friend of mine and musician Samuel Emde was kind enough to make music for my pyramid which I used in the demo video. There are two observations I made while working with him and watching him play. The first thing is the time he needed to grasp the concept of how you're supposed to make music with te pyramid. Of course it has a lot to do with him having allready spent many hours working with live and working with different controllers, but the short time he needed till he was able to play usefull music made me quite happy. Obviously the interactions and gestures are intuitive enough for an experienced musician. The other thing that made me happy was that he actually had fun playing the instrument. Even after we stopped working he continued playing and jaming with the pyramid.
I'm very pleased they way the "final" pyramid turned out. There are many things that could be refined, but the goal of creating an alternative interface to conventional knobs and sliders that could be used for a live performance — I would say — was achieved. There are two things I would definetly spend time thinking about if I would make a second version of the HPSTR Pyramid. One thing concerns the visual orientation while playing. The little grooves at the peaks are very helpful to keep some kind of orientation and to know which instrument you are playing. But they are not enough if you want to know what sound is assigned to which face or what effect you alter when tilting to one side. Currently there is a lot of guesswork involved or you have to make a rehearsed performance. An easy solution to that problem would be color coded sides on each peak. The other thing I would think about concerns the gestures. Tilting the pyramid triggers three different things, which can cause unwanted changes. Having the same gesture for start/stop recording and altering effects can end up in starting or stopping a recording when you only want to add some effect to the instrument. The only way arround this with the current state of the pyramid would be to only apply effects to two sides while the third would trigger the recording. Also having the same gesture for chanigng the instrument and altering effects can cause problems. Applying effects before changing an instrument often sounds very pleasing since it can be used as a transition and it adds nice tension but it still is not always wanted.
In general I enjoyed the course and the work very much. I liked the combination of abstract thinking, math, geometry and music, design, handcraft and concaptual thinking. The most interesting thing about work that includes an actual implementation, is that you don't stop after making a concept and a design. It allows you to actually realize a project, build a prototype and play around with it. Also it allows you to test and rethink the concept. Holding a prototype in hands allows for much more interesting and meaningfull discussions which are not solely based on an idea but on something you can test immediately. Also when a concept or a design never gets implemented the idea does not really have to work. As soon as you have to implement it you have to ask you questions you wouldn't have been confronted with in a conceptual phase and you have to define things you wouldn't have defined in the design.