Tuning
The tuning of the six strings is based around 50hz which is the utility frequency of the electric current in Finland and many other parts of the world. The fundamental frequency of the string depends on three factors: the length of the string, its diameter and the weight of the rock used. Initial calculations were made using Arto’s string calculator. Since I wasn’t able to adjust the tension of the string (chipping away at a rock wasn’t an option), I had to adjust the pitch by changing the length of the strings.
When using A=450hz as a tuning reference 50hz is G2. 6 notes are derived from the frequency of 25hz (G1) using simple harmonic ratios. This tuning creates a pentatonic C scale in just intonation. Plucking a string triggers sine waves tuned to those same ratios but using the string’s frequency as a fundamental. This fractal-like structure creates a mode consisting of 12 ratios using 50hz as a base note.
1/1, 9/8, 147/128, 81/64, 21/16, 189/128, 3/2, 49/32, 27/16, 441/256, 7/4, 63/32, 2/1.
Software
There is three light presets that are programmed in the Feather M0 microcontroller. The first one is a preset where all the LEDs are at full brightness. The second one is a random light pattern that is triggered when the rope moves. The last preset happens when a string is plucked while the rope is moving. It allows only the light above a string that resonates to light up proportionally to the amplitude of the string resonance. The microcontroller FioV3, to which the IMU sensor is connected, is sending three values (pitch, yaw and roll) to Max/MSP. Matti Niimaki from Aalto University help me a lot in working with microcontrollers. The rest of the computation happens inside Max/MSP which sends data via OSC to the Feather M0 microcontroller. Max/MSP also receives data from the IMU Sensor via OSC to detect if the rope moves. There is a different patch used for the installation and the performance. This is to limit the possibility of a bugs or CPU overload during the performance.
Installation
-
In p StringAmp simple effects (compression, EQ and reverb) are applied to the signal of the 6 electric monochords. Each signal is output to one of the 6 speakers and to the subwoofer.
-
The p synthspectral and p tuning are sinewaves which are triggers when a string is plucked.
-
The p AmbientOuput and p SamplesOutput control the levels of the samples.
-
In p DataToFeatherM0_NeoPixels data is sent to the microcontroller for controlling the lights.
-
In p DataFromFioV3_IMU data is receive from the IMU sensor
-
In p control, the different lights and sound presets are chosen depending on the data received from the IMu sensor and form the amplitude level of the strings.
-
In p lights, the abstraction audiotolights uses the amplitude of the strings to control the level of the lights.
-
In p controlsamples, the abstraction attackdetection uses the object bonk~ to detect attacks and trigger sound files and sinewaves
-
In p mc.samples, the abstraction mc.sampetrigger triggers different sound files depending on the amplitude of the attack detected. The channels of each soundbank are routed differently to outputs using mcs.matrix.
-
Soundbanks are made in p playlist.
Performance
-
p StringAmp, p synthspectral, p tuning, p DataToFeatherM0_NeoPixels, p controlsamples have the same roles as in the installation patch
-
The p voiceVbap module is the main difference. During the performance, the performer is singing through an autotune system which uses the tuning explain earlier. The p voice subpatch uses the object retune~. When a string is pluck only 6 notes are available for the performer to sing which correspond to the pentatonic scale in just intonation of the fundamental of the plucked strings.
Pure data
I actually coded most of the work in Pure Data but I changed my mind a month before the opening realizing that I needed a higher level object to achieve simple sound processing effects (compressor, reverb and equalizer). I also wanted to use an autotune for the performance which is done easily in Max 8.
Training, Rehearsing and Performing
Creating the performance was something I wasn’t able to do beforehand because the setup was so different in the space. Even though it is simpler then Corde à vide, the setup still needs to need the suspension of a human which limits the number of places available.
Barn
The first space I use was a barn in Aura where my parents in law live and have a farm. It was easy to set-up there since a barn has high roofs and solid wood beams on which I can rig. We used my father in law tractors to rig the whole work. I build and tested the hardware there.