by Gisbert Schürig

When I started working on collective minimal improvisation with Jennie Zimmermann and a group of musicians and dancers, my personal goals were very much inspired by rhythmic music.

I was and still am fascinated by polyphonic pygmy singing. To get an idea, have a look at this video I recorded at a workshop in switzerland:

For this fascination of mine, I found different outlets. I did my own interpretation of a particular pygmy melody:

Next to reading on the subject, I did my own analysis of pygmy music:

Also, I did a couple of compositions inspired by african polyrhythm, the Fake African Memories, which I mainly performed with the Kargyraa Krew, a group consisting of marvelous german throat singers.

So when we started – mostly using our voices and movements – to research collective improvisation, I was very much working towards the developement of rhythmical structures. This expectation was very much reflected by stating the six phases of minimal improvisation, as follows:

1. Phase – Finding a Sound
Finding one sound and sticking to it

2. Phase – Sounding together
Singing, playing the respective sounds

3. Phase – Sequence of Sounds

Forming a sequence of these sounds

4. Phase – Rhythmic Pattern
Transferring the sequence to a rhythmic pattern by relating to a common pulse

5. Phase – Variation
Using the rhythmic pattern as a starting point for variation

6. Phase – Structure
Playing around with different combinations of the phases

These phases could be decribed as a slow developement towards rhythmic patterns (1st to 4th phase), which evolve further (5th and 6th phase). That was my personal focus, but it turned out that the focus of the whole group was much more on exploring the many qualities of interplay that come up before a steady rhythm is established. A prominent example of what we were working on is the imitation game. Being a group that consisted of both musicians and dancers, we spend a lot of time looking at the differences and connections of both disciplines, asking fundamental questions about the nature of music and dance which left little time to actually cultivate the specific rhythmic qualities I was after.

But the group research showed me the beauty of co-creation that is collective improvisation. It set me on the direction to keep on researching the potential non-determinated processes.
Instead of composing polyrhythmic music, I set out to understand the rules of this music, so that I could set up conditions for such music to emerge. If not with a group of performers, then with the code of a music software. In turn, this code could be used as a formula to create similar music with a group of musicians.

The following music code – see below, to be executed in Sonic Pi – owes a lot to the minimal improvisation research. Instead of four performers deciding on what sound to make (phase 1), four different pitches within a specified range are set; that is, they are defined according to a randomized procedure. In doing so, I do not act as a composer who specifies what pitches are to be heard but I am defining the range of possibilities, which could be seen as meta-composition.

The four pitches (which may change in the proceeding of the music) are subject to two processes. First, they are triggered in relation to each other, within a certain pattern length. Second, each of the pitches has it´s own position within this pattern length. Both, pattern length and individual position may change (phase 4), but there is a certain emphasis on continuity (phase 3) due to my interest in minimalism.

#Evolving live_loops 1
t = Time.now.to_i
use_random_seed t
puts rand

use_synth :sine

#Setting the minimum rhythmic unit
live_loop :define_delay do
  set :teim, (ring 0.125, 0.25, 0.375).choose
  sleep rrand_i(1, 256)
end

#Setting the length of the repeated pattern
live_loop :define_phrase do
  set :taim, (ring 0.375, 0.5, 0.75, 1, 1.5, 2).choose
  sleep rrand_i(1, 256)
end

#Setting the four different pitches
live_loop :setting_pitch_one do
  set :pitch_one, rrand(50, 85)
  sleep rrand_i(1, 512)
end

live_loop :setting_pitch_two do
  set :pitch_two, rrand(50, 85)
  sleep rrand_i(1, 512)
end

live_loop :setting_pitch_three do
  set :pitch_three, rrand(50, 85)
  sleep rrand_i(1, 512)
end

live_loop :setting_pitch_four do
  set :pitch_four, rrand(50, 85)
  sleep rrand_i(1, 512)
end

#Sending out regular cues
live_loop :cues do
  cue :zakkk
  cue :pakkk
  cue :rakkk
  cue :rikkk
  sleep get[:taim]
end


#Adding the individual delay defined above to be applied to each sound creates a rhythmic pattern
live_loop :chooser_one do
  #Choosing the delay which is actually applied below
  set :wa, (ring 0, 1, 2, 3, 4, 5, 6, 7).choose*get[:teim]
  #After some time, the delay is changed, thus the pattern changes
  sleep rrand_i(1, 256)
end

live_loop :chooser_two do
  set :wo, (ring 0, 1, 2, 3, 4, 5, 6, 7).choose*get[:teim]
  sleep rrand_i(1, 256)
end

live_loop :chooser_three do
  set :wu, (ring 0, 1, 2, 3, 4, 5, 6, 7).choose*get[:teim]
  sleep rrand_i(1, 256)
end

live_loop :chooser_four do
  set :wi, (ring 0, 1, 2, 3, 4, 5, 6, 7).choose*get[:teim]
  sleep rrand_i(1, 256)
end


live_loop :sound_one do
  sync :zakkk
  #The choosen amount of delay is applied
  wait get[:wa]
  #The sound is played
  play get[:pitch_one], amp: rrand(0.1, 1), release: rrand(0.1, 0.8)
end

live_loop :sound_two do
  sync :pakkk
  wait get[:wo]
  play get[:pitch_two], amp: rrand(0.1, 1), release: rrand(0.1, 0.8)
end

live_loop :sound_three do
  sync :rakkk
  wait get[:wu]
  play get[:pitch_three], amp: rrand(0.1, 1), release: rrand(0.1, 0.8)
end

live_loop :sound_four do
  sync :rikkk
  wait get[:wi]
  play get[:pitch_four], amp: rrand(0.1, 1), release: rrand(0.1, 0.8)
end

So how does this sound like? Have a listen to these five executions of the code above.

Why is it different each time the code is executed? Sonic Pi uses a random seed to mimic randomness. In the case of the code above, it uses a different seed according to the time at the moment of execution.

As mentioned above, it would be totally possible to use this approach to create and variate rhythmic patterns with a group of performers. But I do also love the results of the machine, I am a proud father to all these little Frankenstein sounds.

Apart from using sine sounds, it´s possible to use any other sounds, for example drum samples. Here are some examples of slightly different code used as a drum pattern creator.

Slow:

Groovy:

Sine sounds and drum sounds can be combined, this time with a version of the code that creates overlapping symetrical and asymetrical patterns, inspired by african rhythmical structures:

A next step could be to use the code not with internal sounds or samples of Sonic Pi but to trigger external synths and samplers via midi. This is exactly what I did when on tour with the free folk formation My Sister Grenadine in May. Sonic Pi served as a sequencer, triggering spontaneus live samples in the ReSlice app and Ableton live.

Sound examples of such uses may follow, but for now, let´s leave it at that.

About the Author -

Leave A Comment

Your email address will not be published. Required fields are marked *