Wednesday, 18 March 2015

sampler instrument


This instrument was constructed to combine of various separate pieces of code in order to obtain a clearer sense of its current state and future direction. The instrument is centred around a sampler which allows the recording and playback of live audio. Record buttons are used to make selections of this audio from a constantly recording buffer, providing access to sounds that occurred before the button was pressed. After a selection is made, the audio is stored and made available for use with looping and granular playback engines, allowing the creation and manipulation of multiple streams of sound using the same source material. Several midi controllers in combination with a keyboard and joystick were used to control this software.

The development process for this instrument allowed me to focus on the physical experience of playing and analyse the suitability of various decisions/predictions that had been made about the software and its mapping. This focused around developing an understanding of the spatial relationships between the bodies of the instrument and performer, whilst helping to determine the boundaries of what is physically possible whilst playing the instrument. Similarly, the limited number of physical parameters immediately available (without shifting through menus) helped to prioritise certain features and functionality.

In particular, decisions regarding the placement and distances between parameters were made to facilitate intuitive and fluid navigation of the instrument's interface. More specifically, parameters were grouped and arranged according to their function and frequency of use, reducing the distance between parameters that tend to be manipulated successively or simultaneously. Similarly, parameters were provided for adjusting envelope fade times for starting and stopping of playback events giving the performer more time to react and facilitating the manipulation of multiple parallel processes.

In this way, the resultant mapping and arrangement of parameters aims to allow the performer to react freely, encouraging simultaneity and multiplicity of actions. This allowed for a more continuous flow of actions that are less influenced by the physical limitations of the human body and the time frames available during a performance. 

In addition to this, a keyboard was used to control six different parameters using six toggle buttons to enable and disable the control for each parameter. This allows control over the pitch of the looped and granular playback using discrete intervals to create multi voiced harmonies and synchronised shifts in register.

However, the multiple voices cannot be played at different pitches simultaneously. The performer is required to enable and disable the controls for each voice and set the pitches individually. This could be solved by using multiple keyboards or adding an adjustable offset for each of the voices. In the latter case, a button could be added to enable and disable the offset intervals thus retaining the ability to set all the voices to one pitch using one key.


GRAINS
The granular section of the instrument consists of two grain generators which are controlled using sliders and a joystick. The sliders control the first generator and allow for four presets to be stored and recalled. The joystick can then be used to set the parameters of the second generator by interpolating between these four presets. A slider on the base of the joystick also allows for blending between this interpolated state and the current slider positions.

In addition to this, the parameters for the second generator can be set from the joystick using the thumb trigger button. This was found to be particularly useful as it allows the performer to hold a state which may be hard to reproduce on the joystick. Furthermore, this allows for single parameters to be adjusted using the sliders, altering the state which was initially stored. This facilitates the creation of interesting variations using the joystick, exploring the interplay between the two layers. In particular, the subtle shifts of difference between the two tend to introduce emergent and evolving qualities.

In this way, the combination of the sliders and joystick gives a wide range of control over the grain generators, providing many possibilities for the transitioning and transformation of different states. Similarly, the different interfaces also afford different gestures. The joystick provides a more gestural control, lending itself to the creation of discrete sounds, whilst the sliders are better for creating more continuous streams of sounds.

The bimanual operation of these two devices also encourages thinking about higher level musical structures. For example, the movements of the two limbs controlling these devices can be associated with two different streams of sounds. This lends itself towards call and response style structures and manipulations relating to the degree of similarity between the two streams.


BUFFER SELECTION
Additional experiments were also carried out exploring the probabilistic selection of different sound files per grain.
Parameters for center position and deviation were used and found to be most effective when the various sound files are chosen and organised in a way that produces the desired range of timbres. Through this selection and organisation, a continuum between similarity and difference can be created, arranging the sounds according to perceptual qualities such as dark to light or low to high.

As the mappings for the duration and density of grains is relative to the sounds length more relevant controls are achieved when all the chosen sounds have a similar duration. This could be improved in future versions by setting the parameters using absolute values or using analysis of the sounds to set relevant ranges.

The recording below exemplifies this using various metallic hits with long decays

DETECTING ONSETS
In addition to this, these samples were later replaced by sounds from the loops recorded by the sampler. This wass achieved by detecting onsets within the loop and storing their sample positions into a list. This provides much more useful/relevant control over the playback and variation of the material within the buffer.


Furthermore, code could also be added to automatically organise these segments of the buffer according the their different characteristics. For example, the sounds could be organised according to their duration, spectral centroid or timbral similarity. However, strategies for translating/representing and categorising these qualitative aspects in a way the computer can understand need to be further investigated. 


FILTERS
Probabillistic control over the output bus for the grains was also added, allowing the audio to be send to one of four membrane simulation filters with different tunings. This produced the effect of scattering the grains across the different outputs/surfaces and produced particularly interesting sounds when playing with the relationship of resonances between the filter and input signal.

AUDIO: https://www.dropbox.com/s/83rqxi4rvjjrjuc/grainResFilter.aif?dl=0

A mode was also created in which the filters can be played using either a midi keyboard or the multitouch trackpad allowing polyphonic manipulation of tuning and damping for multiple simulated membranes. This configuration was particularly effective as grains/source played by joystick in the right hand, filters/membranes played by touchpad in the left hand.


However, these filters have a very distinct sound quality, especially at highly resonant settings. This was improved by adding small amounts of noise to the tuning of the filter. This noise is scaled by the amplitude of the input signal causing the tuning to drift in a way that is related to its input. Another solution could involve the interpolation of more varied filters such as convolution and other simulated resonators.


SOUND SOURCES
Whilst developing and playing the instrument various sound sources were explored. The use of a microphone facilitated this process and I enjoyed the sense of spontaneity it added, allowing for any object within my immediate environment to be used as a sound source. This was particularly prominent when using my voice/body and provided a sense of fluency with the instrument. This was accentuated through the use of analysis to modulate/articulate the time parameter of a delay placed on the master channel of the instrument.

In addition to this, the use of a microphone inevitably introduces the use of feedback techniques, allowing the sounds to slowly take on characteristics of the environment they inhabit, merging and manipulating the sense of space.

This concept will be further explored in future projects involving the intermingling of voice, objects and their environment.

Monday, 16 March 2015

PCBs

Revisions and refinements have been made to the pcb designs, checking clearances, adding labels and ground planes






Wednesday, 18 February 2015


VOSIM + FILTERS

Patches were created in BEA5 exploring the combination of VOSIM and filter modules. Sine wave oscillators were also used as modulation sources for the patch.

The parameters provided by the VOSIM module give a logical and wide control over the spectral characteristics of a sound. More specifically, the VOSIM oscillator is a tone burst generator which provides parameters for number of pulses, the decay of their amplitudes and the frequency at which to trigger this set of pulses. This combination facilitates the production and manipulation of formants/vowel sounds
.
More information about the VOSIM synthesis approach can be found here: http://www.atiam.ircam.fr/wp-content/uploads/2011/12/AES_JAES_1978_Kaegi_VOSIM.pdf

In addition to this, the use of filters and the modulation of their cutoffs helped generate more dynamic timbres. This was particularly effective when creating complex phase relationships between the modulation signals for the inputs of the oscillator and filter.

When the modulation signals are close to each other in frequency, longer subtle phase shifting is created. However, when the frequencies are more distant the beating patterns become faster. In addition to this, the harmonicity of the relationship between the two signals can be used to control the complexity of these patterns, with more dissonant ratios/intervals producing more less repetitive/longer patters that are harder to follow.


Whilst exploring the module, I found myself drawn towards triggering the module at lower speeds to create and articulate trails of pulses. This inspired further exploration of this oscillator using SuperCollider to generate pulses that were used to excite filters and resonators. The use of simulated resonators such as the MembraneCircle and Streson UGens create richer results with subtle evolving details due to the accumulation and decay of resonances.

In addition to this, when the filters are placed one after another, the similarity/distance between resonant frequencies of the two filters produces interesting beating patterns. Although, when the resonances of the oscillator and two filters coincide they amplitude of the sound can increase dramatically due to the nature of resonance and the feedback systems used to emulate it. This was particularly noticeable when using the mouse as continuous modulation source for the resonant frequency of the filters and gain compensation may have to be added later if this becomes too dynamic and difficult to control.

In addition to this, the amplitude of the input signal was also used as a modulation source for the tension of the membrane. This accentuates the natural pitch changes that occur when exciting an acoustic membrane. In this way, these simulations allow for the amplification and attenuation of sensitivity towards certain aspects and reactions of the instrument.


AUDIO: https://www.dropbox.com/s/upm0n3p0z9xl0zm/17thfebVosimBraneCHOP.aif?dl=0

Similarly, these experiments also incorporate ideas from previous explorations combining granular oscillators and convolution. This code uses the amplitude of the granulator to crossfade between two convolution synths with different impulse responses. This gives the sound a sense of movement, reducing the flatness of the sound caused by precise repetition of the impulse response.


After listening back to the results of these experiments it occurred to me that the VOSIM could be used as an envelope generator, allowing choices to be made about the spectral content of the pulses.
Firstly, pink noise was used as a source signal and produced a  thicker, punchier sound due to wider spectrum of the excitation signal.

AUDIO: https://www.dropbox.com/s/xy06dwj9jv66mmi/18thfebVosimPinkNoise.aiff?dl=0

The laptop's microphone was also used as a source signal. This became particularly interesting when used in combination with the amplitude follower to manipulate the speed of the VOSIM oscillator. This allows articulation of the pulse streams using the acoustic sound, with faster speeds being produced as louder sounds are made. In this way, the resultant structure/form is derived from the material as the pulse trails are influenced by their content. In addition to this, the feedback between the microphone and speakers increased the complexity of this relationship, resulting in more engaging interactions in which the balance and thresholds of resonance can be explored.

AUDIO: https://www.dropbox.com/s/ale48hdpyryuh2b/18thfebVosimSoundIn.aiff?dl=0

These concepts could also be expanded by incorporating pitch/centroid tracking to control the resonant frequency of the filter. However, the correct scaling between the two still needs to be found.

Sunday, 8 February 2015

Patchbay, Feedback and Transducers

Several experiments were carried out exploring various combinations of transducers, acoustic objects and DSP software. The patchbay circuit was placed in a temporary enclosure and used to control the routing of signals between these elements. Banana jacks were connected to several of the inputs and outputs of the patchbay facilitating the navigation of the interface due to their larger size and circular layout.

The placement of various objects between the input and output transducers allows the 
use the objects to filter the sound acoustically. By adjusting the positions of the transducers on the objects, different resonant modes can be excited. In this way, the transducer resembles a stethoscope or microscope, amplifying and revealing, allowing explorative listening to the internal structure and material qualities of the object.

This process becomes particularly intriguing when exploring combinations and couplings between multiple objects, producing a wide range of rattling and buzzing sounds. More specifically, bike spokes were used to create temporary structure/sculptures which could be explored by manipulating the distances, pressures and surface area between the transducers and objects. In addition to this, the constant vibration of these structures in combination with the multitude of parameters and forces involved leads to a certain unpredictability and  constant evolution in the sound.

More specifically, these experiments aimed to use the feedback tones created between transducers as raw sound material which can be dissected, processed and rearranged using SuperCollider. In addition to this, techniques for destabilising the dominant resonant tones were also explored, softening the threshold for explosion/entrainment/sympathetic resonance and allowing the system to be controlled more easily.

A combination of delays and reverb were used to reduce the speed of the feedback process. This results in a more controllable system, providing the performer more time to react to changes in the sound without losing the sensitivity provided by the acoustic interactions. Furthermore, this allows for a more detailed and contemplative listening to this iterative filtering process, as the initial sound slowly takes on the qualities of the object, creating a complex intermingling of objects and identities.


Filters were added to the input signals, allowing the performer to selectively excite and explore the various different resonances of acoustic objects. In addition to this, the amplitude of the input signal was mapped as a modulation source for the filter's cutoff and resonance. This creates more complex interactions between the electronic and acoustic sounds, destabilising the dominant feedback tones as the resonant peak is always moving. This is particularly interesting as it produces short trails of feedback as the amplitude of a sound rises and decays.

The extreme sensitivity of the system to volume changes and the precision required to bring feedback tones in slowly can be particularly problematic and usually requires the performer to make constant adjustments to the volume. Possible solutions to this problem could include the use of a volume pedal with some mapping to soften the response curve. Compression could also be used to reduce the dynamic range of the audio signal.

The placement of additional loudspeakers on the same table as the amplified objects provided a richer and more engaging experience. This is partly due to the wider frequency range of these speakers but also because interactions with the air surrounding the speakers start to influence the sound. Every subtle movement becomes amplified and significantly influences the sound. 

In this way, the amplification allows the exploration of sound as a physical phenomena, as vibrations in the surrounding space. This experience also has similarities to early explorations of acoustic instruments. In particular, the process of becoming aware of the subtle movements of the body that produce nuanced timbral fluctuations and learning to control and shape them.


Wednesday, 7 January 2015


Matrix Mixer

A simple matrix mixer with the ability to store and recall presets was created in SuperCollider. The mixer can also crossfade between the current parameters and the preset. In future versions these parameter could be made available for modulation using an external source.

The code was written to accommodate different numbers of inputs and outputs using dictionaries to store the bus numbers.

CODE: https://www.dropbox.com/s/v1i8sr86tsiy4u9/4thjanMatrixMixer.scd?dl=0

touchPoints


This code was created after reflecting on the creation and transformation of structures in realtime. The code aims to extend the cognitive capabilities of the performer by using the storage and calculation capabilities of the computer to store, recall and manipulate certain sounds and states.

SuperCollider was used to create a preliminary instrument for gestural interaction using the multitouch capabilities of the macbook touchpad. Coordinates for each point were obtained using the MultiTouchPad library.

Max MSP was also used to create a graphical interface whilst the code was being developed.



CODE:
https://www.dropbox.com/s/cknknoj5dkqwu4w/touchgrain_synths.scd?dl=0
https://www.dropbox.com/s/gsj7usul6xl0rwr/touchgrain_map.scd?dl=0
https://www.dropbox.com/s/zlyt8urmo3st872/touchgrainOSC.scd?dl=0

AUDIO:
https://www.dropbox.com/s/aruf4qx6yulw84a/8thjantouchPoints.aif?dl=0

Each touchpoint creates a synth which plays a segment of sound from an audio buffer. The x and y coordinates for each point are mapped to the start and duration of playback respectively. Each point has 4 layers, the volumes of which can be controlled independently from the graphical interface. The layers currently contain buffers but could easily be replaced with other synthdefs. 

Graphical interface elements were also added for creating both absolute and relative pitch changes to the grains. There is also an option for the graphical interface to effect either the currently playing synths or both currently playing and newly created synths.

Groups of points can also be stored and recalled by saving the arguments of the currently playing synths into a dictionary. Groups can consist of 1 or more points and can be started and stopped from using the recall buttons on the graphical interface. In future versions of the code these buttons could be triggered remotely adding modulation inputs. In addition to this, a second mode was created for the touchpad that allows the creation and manipulation of stored groups for each touch point.

Similarly, additional code was created exploring the probabilistic generation of groups of synths. By finding the minimum and maximum values of the synth parameters in the group to create a scaleable range of values for new synths. 

CODE: https://www.dropbox.com/s/8vh2633azw0148c/3rdjanLorenzGrains.scd?dl=0

The main disadvantages to using the touchpad is its size and the lack of tactile response, the surface does not bend or flex when pressure is applied, reducing the ability to navigate using touch. Also, the values for the z axis are calculated using the surface area of each point rather than pressure. This makes it more difficult to control, especially when attempting to articulate several points simultaneously.

Related links:
http://madronalabs.com/hardware
http://cnmat.berkeley.edu/user/david_wessel/blog/2009/01/15/slabs_arrays_pressure_sensitive_touch_pads
http://www.rogerlinndesign.com/linnstrument.html

Future experiments will explore the use of different sound generators and synthdefs for the points. Methods for incorporating this code into the modular will also be considered, allowing the points and groups to be patched. Also, various quantisation grids for the coordinates will be explored, perhaps resulting in some flexibility regarding the intervals and amount of quantisation during a performance. 

Tuesday, 6 January 2015

CMOS + SuperCollider

Recent experiments aimed to explore the combination of CMOS chips and SuperCollider. 

Ndefs were used to quickly experiment with different variations of the processing and related parameters. In particular, code was created in which onsets from the input signal (CMOS chips), were used to trigger an envelope which modulates the time of a delay line. 

In certain parametric states this can produce bouncing, glissandi like trails of delayed audio when triggered by an onset. This is particularly interesting when previous trails are interrupted by new ones, producing complex and dynamic results in which the past and present states of the input signal and the processing are interdependent.


A temporary enclosure for the amplifier was also constructed using cardboard. The cardboard box emphasised lower frequencies and allowed the volume and mute switches to be used more easily.

The cmos circuit consisted of 40106, 4070 and 4066 chips and was focused around the controlled distribution of modulation signals. This was achieved using the 4070 and 4066 chips for combining and gating various signals from the 40106 and switches. 

An Arduino was also used to provide a 16 step sequence with an input for triggering the next step. 

In addition to this, the motors circuit was used to trigger small solenoids, expanding the timbres available and complementing the electronic sounds of the circuit.



AUDIO: