Sunday, 15 December 2013


Envelope Repeater



This patch creates a series of repeated envelopes using the function object. The number of repeats and their scaling in both x and y dimensions can be specified. This allows the patch to be used either as a sequencer or wavetable depending on the playback rate. Additionally, envelopes can be drawn directly into the larger function object to be used as control data.

Initially, the patch used the pattr objects to allow interpolation between presets stored for the function object. However, this became problematic when modulated at audio rate as the envelope has to be redrawn at high speed.

To solve this, a new patch was created in which the four envelopes are written into separate channels of a buffer. These channels are then read back using the wave~ object. The four envelope signals can also be mixed using the XY position of the nodes object. 

The playback position of the wave~ object is currently determined by a ramp signal produced by the phasor~ object. However, it could also be interesting to use non-linear signals to read the envelopes.

Additionally, separate wave~ objects for the playback of each envelope would allow them to have different durations. These durations could also be quantised relative to each other.
It would also be useful to find a way to copy and paste between the different envelopes to facilitate the creation of variations.

Monday, 2 December 2013

NIME Application



A paper and accompanying video were recently created for submission to the 2014 NIME conference. This provided a good opportunity to start practicing with the cello in its current state and analyse the recent modifications. 





Tuesday, 19 November 2013


Cello Patch






Distortion has been added to the cello patch based around examples found at: http://cycling74.com/forums/topic/valve-distortion/ . The chosen distortion uses gen~ to simulate the distortion found in Supercollider. Two of these objects were routed in series with a lores~ object between them. The cutoff and resonance of this filter are slightly modulated by the amplitude of the incoming signal, resulting in a brighter sound when playing louder. 

The effects for this patch are currently routed in series with a state-variable filter following the distortion. The cutoff of the filter is set to 3/4 of the cutoff for the distortion and is modulated by the centre frequency of the input signal. This accentuates the preexisting control over timbre determined by bowing position and is particularly effective when using the sampler as it creates interactions between the live and recorded audio. It could also be interesting to make the relationship between the distortion and filter cutoff values variable.

Also, a frequency shifter has been combined with the ring modulation so that the value for dry/wet now also fades between the two effects. This is a useful technique as it reduces the amount of parameters available for control whilst preserving a wide range of effects.

The SIR2 vst was added in an attempt to compensate for the lack of acoustic resonance in the body of the cello. An impulse response from an acoustic cello was used and can be found here: http://electro-music.com/forum/post-281640.html . A larger reverb has also been added using the gigaverb gen~ patch from the Max examples folder. 

Additionally, the quality of the effects have been improved by using the upsampling feature provided by the poly~ object. However, this has increased the CPU load dramatically and may cause issues in the future.    



Wednesday, 13 November 2013


Wavetable Oscillator



This patch was created as a basic wavetable oscillator and can be used in either monophonic or polyphonic modes. An ADSR envelope can be used to control the amplitude per voice in polyphonic mode and is disabled in monophonic mode.

Frequency modulation is possible using either a dedicated modulator oscillator or an external source. The 2d.wave~ object was used for both the carrier and the modulator to allow for interpolation between multiple sections of a buffer. The default state of the patch loads square, sine and sawtooth waveforms into the buffer. This provides a control over the mix of even and odd harmonics by manipulating the table position.

These 3 waveforms can also be modified using the multislider and peek~ objects. Various preset waveforms can also be selected.
The 2d.wave~ object can also be used for the playback of longer sounds although some adjustment of mapping ranges for the pitch input and setting of loop points may be   necessary. This could also be expanded with the ability to record into the buffer allowing the patch to function as a sampler.




Wednesday, 6 November 2013

Cello Max Patch 


This patch was initially created for sampling the cello using a switch on the bow. When the switch is pressed down the cello signal is recorded into a buffer until either the button is released or the buffer is full. The buffer is then played back and looped. If the button is pressed again it allows for overdubbing of new material into the buffer. To record a new loop the clear button has to be pressed. Currently, this can only be achieved in the software as there is only one button attached to the bow. I briefly experimented with using two presses of the button within 200ms to clear the loop. However, this removed the ability to create loops under 200ms and was later removed. 






After testing the patch the button on the bow was uncomfortable as it was too larger and obstructed the thumb. Whilst searching for smaller buttons I decided to order a slim PSP joystick as it could provide either continuous XY position or discrete switches (up, down, left and right). It could also be interesting to add an FSR mounted either underneath or above the joystick to measure continuous pressure in the Z axis. 

A pitch shifter, ring modulator and filter where also added using the matrix~ object to determine their routing. This will hopefully be expanded allowing dynamic ordering of FX as mentioned previously.

In future versions of this patch I plan to explore:

-Formant Filters / Wah-Wah
-Delays
-Granular playback of the buffer
-FFT and Spectral manipulation
  -Feature Extraction
-Convolution


Tuesday, 22 October 2013


Cello Ideas

Following a performance at STEIM it was decided that the cello would be explored further as a sound source and interface. The main issue with my current performance setup is the divide between controlling acoustic and electronic aspects of the setup. The time delay and physical awkwardness caused by having to lean around the cello to adjust parameters on my controller (usually placed on a table beside me) is very disruptive and detracts from the fluidity of the performance.

By augmenting the cello through the use of various sensors and software analysis I hope to achieve a closer connection between the acoustic and digital technologies used in my performance. Previous attempts at solving this issue had been relatively successful using an additional panel for the cello body which housed various potentiometers and switches connected to an Arduino. However, this was never developed any further and later abandoned as the Arduino was used for another project.























As a result of discussing the possibilities of modifying the cello several areas on the neck and body were found to be easily accessible without disrupting traditional playing techniques. These areas provide potential for possible sensor placement.

The ability to 'hold' a note/sound from the cello and free the hands would be extremely beneficial and could be achieved easily using switches on the bow to trigger recording and playback. Similarly, the use of pedals along with accelerometers and pressure sensors on the bow could also offer less disruptive sources of control data.

Accelerometers could also be placed on the cello body to detect motion and orientation changes which could trigger changes in mapping. Dynamic routing for the processing of the cello signal similar to 'The Finger' was also discussed as it would provide a large amount of options which can be chosen spontaneously. 


Related Links:

Monday, 21 October 2013


Physical Models




This patch is the result of thinking about mapping low dimensional inputs to high dimensional outputs in an attempt to control subtle details in textural sounds in an expressive and intuitive manner. Additional inspiration was provided by the ADDAC 'Marble Physics' module which generates CV output based on the behaviour of a simulated marble on a tray. 

The patch uses the 'jit.phys' objects to simulate a number of spheres in a virtual space. The XYZ coordinates of each sphere can then be mapped to various parameters of a granular synthesis engine. The 'rePatcher' shield for Arduino was used to gain physical control of these mappings and explore various relationships between the devices.

A joystick was used to manipulate the direction of force applied to the spheres. The joystick's trigger button was mapped to either exert continuous or impulsive force on the spheres depending on the state of the thumb button.

Further developments could include the use of 'jit.phys.ghost' in combination with a multitouch surface to manipulate the objects within the virtual space. The use of amplitude envelopes for the grains triggered on collision detection could possibly provide more control over the density of the overall sound. It could also be interesting to explore the use of simulated physical processes to trigger other musical processes in less linear ways.

Research Objectives


This blog will document the research and experiments developed whilst studying the 'Instruments and Interfaces' Master at STEIM and the Institute of Sonology. 

The main objective of this research is to facilitate a more tangible and intuitive interface for the realtime exploration, manipulation and organisation of sound in an improvisational context. 


More specifically, the research and resultant interface will focus on:

  • Exploring the possibilities of using physical patching interfaces in combination with Max MSP
  • Adaptive and dynamic mapping techniques to develop a more manageable and intuitive interface.
  • Exploring gestural input devices in order to provide a more expressive control over the dynamics and subtleties of electronic sounds and processes.
  • Building a vocabulary of predefined mappings, materials and structural elements which provide a a starting point or loose structure for improvisation.


Following a discussion at STEIM, a series of cards were also created in order to develop a structure for the research and thesis.