Composers' Desktop Project
CDP would like to thank the University of Newcastle, Philippos Theocharidis and his tutor Agustin Fernandez for preparing this excellent tutorial and making it freely available to composers using GrainMill.
- Introduction
- Section 1 Creating a phrase
- wildphrase.mp3 TRANSPOSITION of grains
LOAD wildphrase.grn- blurphrase.mp3 blurred wildphrase Blurring of grains with increased DENSITY
LOAD blurphrase.grn- slowphrase.mp3 slow wildphrase Increasing GRAINSIZE
LOAD slowphrase.grn- richphrase.mp3 richer wildphrase The effect of TIMESTRETCH
LOAD slowphrase.grn
- Section 2 Varying the size of grains in time
- mutantflies.mp3 Varied grainsizes with high density & a pitch range
LOAD mutantflies.grn
- Section 3 Long grains, wide range of transpositions
- metalnoise.mp3 Long grains, constant pitch
LOAD metalnoise.grn- horntometnois.mp3 Long grains with a pitch range
LOAD horntometnois.grn
- Section 4 Creating dense textures
- chaotic.mp3 Very high changing DENSITY, with a wide pitch range LOAD chaotic.grn
- harshchaos.mp3 A more chaotic effect WANDER: grains selected from a range
LOADharshchaos.grn- smoothchaos.mp3 Constrained chaos Constant LOUDNESS
LOAD smoothchaos.grn
- Section 5 A combination
- brtopieces.mp3 Many time-varying options
LOAD brtopieces.grn
The following tutorial is an introduction to the various transformations that can be achieved with GrainMill. A 5 second long French Horn sample is treated in various ways to illustrate possible types of output from the program, while explaining the effect specific parameter settings have on the sound.
GrainMill works by applying a process to each and every 'grain' of sound created. These grains are extracted from the source sound, processed, and reconstructed into a new sound.
IMPORTANT: Using the tutorial
In order to be able to listen to the sounds in this tutorial you first have to create them in GrainMill. This can be done by loading the equivalent .grn files provided, and running the program once for every sound.
- Create a folder named 'Tutorial' (or whatever) and copy to it all the files in the folder "files".
- After launching GrainMill select the directory named 'Tutorial' (or whatever you called it) as your working directory.
- Go to 'Open Soundfile' in GrainMill's FILE menu and select the source sound "horn.wav".
- Load one .grn file (e.g wildphrase.grn) and press the MAKE IT button at the right bottom of the window.
- Wait for processing to take place. You now have the first sound.
- SAVE AS the resulting soundfile, using the name as in the tutorial.
- Go to the FILE menu and select "horn.wav" from the list of most recently opened sound files.
- Repeat steps 3 to 5 for every .grn file in the directory.
You are now ready to use the tutorial.
Return to Table of Contents.
In this example a wild phrase is played by a sax-like instrument which derives from transposing 60ms (or 0.06secs) grains of the original horn sample.
PITCH is randomly changed (using a range ) between values defined by two breakpoint files, pitchi1.brk and pitchlo1.brk. One ascends from almost no pitch shift to an octave higher while the other descends from zero transposition to an octave lower, widening the transposition range of grains with time, from zero to two octaves. Dynamic variation is also achieved using a range in the LOUDNESS value. The grains occupy the entire stereo field (SPACE range = LR). The transpositions can be heard clearly as grains do not overlap considerably (DENSITY is 2) and the length of the sound stays the same because there is no TIMESTRETCH.
Return to Table of Contents.
Slightly increasing DENSITY (to 5.8) will blur the sound. This is because there is some overlapping between grains.
Return to Table of Contents.
The tempo of the phrase can be controlled by the GRAINSIZE parameter (longer values will slow it down although this will also "play fewer notes" as there will be fewer grains). This will also have other side-effects as more of the original sound will be retained in each grain as in slow wild phrase where GRAINSIZE is 144.3ms (or 0.144 sec).
Return to Table of Contents.
A richer, more sax-like result is achieved by increasing the TIMESTRETCH value slightly (to 1.34). Detail lost due to wide transposition is accounted for in this way.
Parameters | wildphrase | blurred wildphrase | slow wildphrase | richer wildphrase | ||||
---|---|---|---|---|---|---|---|---|
TIMESTRETCH | 1.00 | 1.00 | 1.00 | 1.34 | ||||
DENSITY | 2.00 | 5.85 | 2.00 | 2.00 | ||||
GRAINSIZE | 60.10 | 60.84 | 144.34 | 60.84 | ||||
WANDER | 0.00 | 0.00 | 0.00 | 0.00 | ||||
PITCH | pitchlo1 | pitchi1 | pitchlo1 | pitchi1 | pitchlo1 | pitchi1 | pitchlo1 | pitchi1 |
HIFI TRANSPOSE? | YES | YES | YES | YES | ||||
LOUDNESS (dB) | -46.64 | -6.02 | -14.30 | -1.17 | -14.30 | -1.17 | -14.30 | -1.17 |
SPACE | 0.00 | 1.00 | 0.00 | 1.00 | 0.00 | 1.00 | 0.00 | 1.00 |
SCATTER? | YES | YES | YES | YES | ||||
DURATION | 5.36 | 5.38 | 5.31 | 7.19 |
pitchlo1 | pitchi1 | ||
---|---|---|---|
time (sec) | transposition (semitones) | time (sec) | transposition (semitones) |
0.00 | 0.00 | 0.00 | 0.47 |
0.67 | -2.75 | 0.64 | 1.25 |
1.31 | -4.83 | 1.31 | 2.13 |
1.78 | -6.91 | 1.81 | 3.43 |
2.14 | -9.30 | 2.25 | 5.19 |
2.60 | -11.9 | 2.60 | 12.0 |
Return to Table of Contents.
Lets now see the effect of a variable GRAINSIZE on a more or less pitched sound. A high enough DENSITY to produce phasing effects is used, which in conjunction with the small (1.2 semitones) range in PITCH gives this moving swarm of mutant flies.
Random LOUDNESS values also play an important part by creating a tremolo effect. SPACING is controlled by a single breakpoint file which moves the sound continuously from left to right and back while narrowing the field and finally ending at the centre.
Parameters | mutantflies | |
---|---|---|
TIMESTRETCH | 1.84 | |
DENSITY | 10.77 | |
GRAINSIZE | 50.00 | grainsize2 |
WANDER | 0.00 | |
PITCH | -0.6 | 0.6 |
HIFI TRANSPOSE? | YES | |
LOUDNESS (dB) | -39.69 | 0.00 |
SPACE | space2 | |
SCATTER? | YES | |
DURATION | 9.83 |
grainsize2 | space2 | ||
---|---|---|---|
time (sec) | grainsize (ms) | time (sec) | stereo position |
0.00 | 20.0 | 0.00 | 0.00 |
0.61 | 25.0 | 0.80 | 0.98 |
1.57 | 48.1 | 1.27 | 0.13 |
2.15 | 130.9 | 1.90 | 0.78 |
3.04 | 500.0 | 2.02 | 0.28 |
2.39 | 0.55 | ||
2.63 | 0.34 | ||
3.04 | 0.43 |
Return to Table of Contents.
The horn sound turns to a metallic noise. PITCHSHIFT is set to a wide range so that pitch focusing is avoided. High values give this metallic edge. GRAINSIZE is long so that individual grains keep enough characteristics of the original sound but as they are "wildly" transposed, these are altered.
Return to Table of Contents.
A horn-to-metalnoise sound can be achieved if transposition range increases with time so that initial grains retain their character.
An important feature in both of the above examples is the interaction of the TIMESTRETCH and DENSITY parameters. They are both controlled by breakpoint files. DENSITY becomes higher as the sound evolves (this can be clearly heard as sound "partials" are distinguishable in the begining as in Section 2). In this case however TIMESTRETCH has to be higher for as long as the DENSITY is low, due to the long GRAINSIZE (you run out of source sound length if you do not time-expand).
WANDER and LOUDNESS variation have the effect of making the sound harsher.
Parameters | MetalNoise | HornToMetnoise | ||
---|---|---|---|---|
TIMESTRETCH | 0.5 | tstretch3 | 0.5 | tstretch3 |
DENSITY | 76.11 | density3 | 76.11 | density3a |
GRAINSIZE | 352.35 | 352.35 | ||
WANDER | 2.80 | 2.80 | ||
PITCH | -12 | 34 | -12 | pitchi3a |
HIFI TRANSPOSE? | YES | YES | ||
LOUDNESS (dB) | -54.61 | 0.00 | -54.61 | 0.00 |
SPACE | space3 | space3 | ||
SCATTER? | YES | YES | ||
DURATION | 2.52 | 2.52 |
tstretch3 | density3 | density3a | pitchi3a | space3 | |||||
---|---|---|---|---|---|---|---|---|---|
time (sec) | timestretch | time (sec) | density | time (sec) | density | time (sec) | transposition (semitones) | time (sec) | stereo position |
0.00 | 3.96 | 0.00 | 3.88 | 0.00 | 3.88 | 0.00 | 7.73 | 0.00 | 0.93 |
1.35 | 1.58 | 0.35 | 10.58 | 0.85 | 15.19 | 2.35 | 16.45 | 0.36 | 0.50 |
1.99 | 0.78 | 0.55 | 20.11 | 1.46 | 32.42 | 3.49 | 32.57 | 0.70 | 0.05 |
2.27 | 0.43 | 0.76 | 39.52 | 1.97 | 56.73 | 5.39 | 34.55 | ||
2.52 | 0.19 | 0.90 | 60.68 | 2.52 | 77.97 | ||||
0.99 | 77.97 |
Return to Table of Contents.
Lets now create a dense chaotic texture. The DENSITY has to be quite high for this. In this example DENSITY is set to randomly change (using a range) between 50 and 10. GRAINSIZE is 100 ms and these grains are randomly transposed within the limits of an octave.
Phasing effects are apparent due to the high DENSITY and long GRAINSIZE. Another important element in this sound is the reverberant effects. These are due to the same reasons plus the WANDER value that is set to 0 and the SPACE range (full Left to Right).
Return to Table of Contents.
If we now change the WANDER value (to 1.37 secs) so that consecutive grains in the output are chosen randomly from this range in the input sound file we can see that we have lost these reverberant effects and that dynamic and timbral variation is enhanced making the sound harsher.
As WANDER is itself a range - the time range from which grains are randomly selected from the input sound - there is no range box to tick in GrainMill.
Return to Table of Contents.
If we keep a constant LOUDNESS value instead of using a range in the first example in this section, then the effect will be a denser, smoother texture as each grain will have the same amplitude contribution to the phase cancellations produced by the large DENSITY.
Parameters | Chaotic | Harsh chaos | Smooth chaos | |||
---|---|---|---|---|---|---|
TIMESTRETCH | 1.83 | 1.83 | 1.83 | |||
DENSITY | 10.15 | 50.43 | 10.15 | 50.43 | 10.15 | 50.43 |
GRAINSIZE | 100.39 | 100.39 | 100.39 | |||
WANDER | 0.00 | 1.37 | 0.00 | |||
PITCH | -6.0 | 6.0 | -6.0 | 6.0 | -6.0 | 6.0 |
HIFI TRANSPOSE? | YES | YES | YES | |||
LOUDNESS (dB) | -48.75 | 0.00 | -48.75 | 0.00 | -48.75 | 0.00 |
SPACE | 0 | 1 | 0 | 1 | 0 | 1 |
SCATTER? | YES | YES | YES | |||
DURATION | 9.88 | 9.88 | 9.88 |
Return to Table of Contents.
In this final example a piercing sound breaks down into pieces in brtopieces. Various parameters are controlled by breakpoint files either as a range or by a single file.
In the first part, (the piercing sound) grains are transposed almost 3 octaves higher. Pitchhi5.brk and pitchlo5.brk, the breakpoint files for the higher and lower limits of PITCH respectively, have small differences up to the point where the breakdown of the sound occurs. This actually happens because of the instantaneous change from 31.17 to -12.88 semitones in the transposition value in pitchlo5.brk while pitchi5.brk "stays" at high values. After a bump to around 44.61 semitones, the higher limit starts a downward glissando to 24.35 and the lower does the same to -17.32 semitones.
LOUDNESS is controlled by a single file amp5.brk which simply dies away after the breakdown and SPACE is given a range between spacehi5.brk and spacelo5.brk. The range is wide in the beginning, quickly moving the "pieces" to full Left towards the end.
TIMESTRETCH (controlled by tstretch5.brk) is initialy constant at 1.9 and then moves to 6.7 at the end, and DENSITY (breakpoint file density5.brk) changes throughout, taking values between 3 and 16. As the GRAINSIZE is small (18.36 ms or 0.018 sec), individual grains can just be heard at points with lower density in the first part of the sound. The combination of the later two parameters and the small variations in PITCH produce this slowing down/accelerating effect.
Parameters | brtopieces | |
---|---|---|
TIMESTRETCH | 1.85 | tstretch5 |
DENSITY | 8.92 | density5 |
GRAINSIZE | 18.36 | |
WANDER | 0.00 | |
PITCH | pitchlo5 | pitchi5 |
HIFI TRANSPOSE? | YES | |
LOUDNESS (dB) | 0.0 | amp5 |
SPACE | spacelo5 | spacehi5 |
SCATTER? | YES | |
DURATION | 9.92 |
tstretch5 | density5 | pitchlo5 | pitchi5 | amp5 | spacelo5 | spacehi5 | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
time (sec) | timestretch | time (sec) | density | time (sec) | transposition (semitones) | time (sec) | transposition (semitones) | time (sec) | amplitude (0-1) | time (sec) | stereo position | time (sec) | stereo position |
0.00 | 1.85 | 0.00 | 8.27 | 0.00 | 31.41 | 0.00 | 34.09 | 0.00 | 0.99 | 0.00 | 0.26 | 0.00 | 1.00 |
3.61 | 1.85 | 0.62 | 14.77 | 0.39 | 28.95 | 0.59 | 34.87 | 0.56 | 0.90 | 0.93 | 0.28 | 1.53 | 1.00 |
5.94 | 1.86 | 0.97 | 3.09 | 0.73 | 30.89 | 1.17 | 33.70 | 1.08 | 0.99 | 1.54 | 0.27 | 2.41 | 1.00 |
8.10 | 6.72 | 1.36 | 5.45 | 1.20 | 28.40 | 1.65 | 36.04 | 1.78 | 0.99 | 2.11 | 0.26 | 3.03 | 0.32 |
9.92 | 6.72 | 1.46 | 16.71 | 1.70 | 30.34 | 2.18 | 33.70 | 2.53 | 0.93 | 2.87 | 0.22 | 4.11 | 0.14 |
1.99 | 11.33 | 2.18 | 31.17 | 2.82 | 34.09 | 2.98 | 0.41 | 3.57 | 0.17 | 5.39 | 0.03 | ||
2.77 | 7.67 | 2.18 | -12.88 | 4.52 | 44.61 | 3.64 | 0.13 | 4.35 | 0.10 | ||||
3.47 | 10.14 | 3.37 | -12.91 | 5.80 | 44.61 | 4.17 | 0.03 | 5.39 | 0.00 | ||||
4.01 | 10.42 | 4.74 | -12.88 | 6.54 | 37.40 | 4.65 | 0.02 | ||||||
4.84 | 16.56 | 5.39 | -17.32 | 7.53 | 24.35 | 5.00 | 0.00 | ||||||
5.41 | 8.86 | 5.39 | 0.00 | ||||||||||
6.40 | 5.89 |
Return to Table of Contents.
In general, a range is activated by:
The relevant parameter then changes randomly between the upper and lower limits defined in this way.
You can return from this note with your Back Button.
Return to Table of Contents.
Return
to Main CDP Documentation Index