Friday, February 06, 2009

Speech Processing Study 1


Link: http://www.youtube.com/watch?v=aZZZIiI-yC4&fmt=18

Thursday, June 28, 2007

WaveSymmetry

The WaveSymmetry tool has been completed. Built with Max/MSP and Java, it enables you to:

  • Construct symmetrical waveforms from initial half- or quarter- cycles. Draw the weirdest shapes you can imagine, or try to draw the perfect sine curve :)
  • See and hear the results, view a spectral analysis of your cycle, and store and retrieve everything you come up with.
  • Rapidly compare timbres and create complex textures via layering using the WaveMatrix tool. Compose a piece using the fine-grain control of the text-based sequencer.
Download an archive of the MaxMSP patch(Mac and Windows 4.5 or above), documentation, and example compositions here.

Some Pics:


Monday, May 07, 2007

Waveform Symmetry

This is my first post in quite a while. I have some early screenshots of the MaxMSP patch I'm writing for my Science of Music project. What's Science of Music? This is Science of Music.

My patch is based on the idea that certain waveforms exhibit symmetry. For example, the intensity of a triangle wave ramps from zero to one then back to zero again over the first half of the waveform. The second half of a triangle wave is exactly the same as the first but inverted. By performing a transformation on the first half we can easily obtain a representation of the second half. First we perform a reflection around the zero value on the intensity axis; then we perform a translation on the time axis.

We can take this idea further and acknowledge that the second quarter-cycle of a triangle wave (i.e. the ramp down from one to zero) is simply a reflection of the first quarter-cycle along the time axis from where the first quarter ends.

Wave Symmetry
The WaveSymmetry patch permits a user to draw the first quarter-cycle of a waveform. With the click of a button the remaining three-quarters are produced based on two transformations: a reflection, and a reflection with translation. The resulting waveform (you get the idea it's symmetrical, right?) is stored in a wave table; it can then be loaded into a oscillator for playback. A frequency analysis of the waveform can be stored in a text file, which when re-loaded displays the data on a frequency vs. intensity graph. You can see all of this in the picture below.

Here is the code that performs the transformations.

/* perform a reflection on the Y axis */
public void reflection() {
for(int i = 0; i < input_length - 1; i++)
samples[input_length + i] = samples[input_length - (i + 2)];
}

/* perform a reflection and translation on the X axis*/
public void reflection_translation() {
int wrap_back = (input_length * 2) - 1;
for(int i = 0; i < wrap_back - 2; i++)
samples[wrap_back + i] = 0.0f - samples[wrap_back - (i + 2)];
}

All of the code that performs the transformations and controls the graphical display is written in Java and bridged into MaxMSP using the mxj object. The program and its code illustrate some simple ideas about waveforms and their analysis.

Wave Matrix
Up to this point there has been no real creative outcome. The second part of the patch will constitute a matrix and a text editor to circumvent this. The matrix permits the user to click on certain nodes and hear the waveform stored in that index in the wave bank. The text editor will allow the waveforms to be sequenced, enveloped, and in general be controlled in detail in regards to their position within the pitch, time, and amplitude realms. The implementation of these two components will enable the user to compose a piece using the 256 default symmetrical waveforms stored in the bank, or with custom wave shapes created using the Wave Symmetry program.


Wednesday, November 08, 2006

Minor Project - Creative Computing

The Dead
Martin Victory
5' 55''

The Dead is an electro acoustic work based on the short story of the same name by James Joyce. The piece uses 12 vocal samples drawn from the text, spoken here by Poppi Doser. The samples undergo audio processing to the extent that only a few of them remain intelligible. Of the others, short fragments in the realm of 60 to 300 milliseconds are extracted, then layered thickly upon one another to create haunting textures. The work has six movements: Introduction, The Waltz, Adagio, Furioso, The Calm, and The Dead. Throughout the piece the poetic nature of Joyce's writing is emphasised, complementing the sadness of his beautiful narrative.

Introduction: the extent of the synthesis parameters are tested and contrasted – grains of short/long duration, high and low pitch,
sparse and thick density, and extreme pan positions.

The Waltz: grains are grouped into clusters that fall into rhythms with silence between them. Pitch is controlled by the playback rate of the grains. A melody is created, and the movement takes the form of a waltz.

Adagio: the density is so thick that the texture becomes a wash - there is little discernation of individual grains. Filters are used to highlight and emphasize different frequency components. Beautiful and strange voices are heard, the complexity of language is pondered.

Furioso: many juxtapositions of parameters. Rapid shifts in pan position, low to high pitch etc. Short, loud grains of consonants are contrasted against longer, reversed grains with crescending amplitude and pitch envelopes. The intensity is almost violent.

The Stillness: there is a settling calm. A great, long crescendo in the density of grains leads to white noise - and then the sound of snow falling.

The Dead: snow continues to fall. Filtered voice is masked by noise that evokes snowflakes. Some lucid poetic text appears, longer phrases are gradually introduced by gently manipulating the amplitude of each one. The poetry is overrun by the presence of the falling snow in terms of volume and spatial diffusion. Filtered voices now seem to be appearing from out behind the snow. As the white of the noise alleviates, a voice can be heard reciting the final poetic phrase of Joyce's text.

Listen: The Dead