top of page

SRI THENDAYUTHAPANI TEMPLE (2021)

Built in 1859, the Sri Thendayuthapani Temple is one of the oldest Hindu temples in Singapore. This composition is made from a field recording taken during a ceremony conducted at the temple on 6 August 2020. Using hundreds of splices of this field recording, I create a montage of mosaics. This piece demonstrates the way in which random seeds and repetition can be used to created perceptible entities. The random seed defines the sample selection and the repetition causes that sample selection to recur, shedding its unpredictable nature.

Description
Recording
Score

SCORE

# Note that this score is best viewed on a tablet, laptop, or desktop. 

# The line breaks on a mobile device may likely make reading the score confusing at times.

# Comments are in black. Code and, sometimes, references to code elements within the comments are

# given in blue.

# If you've read my Introduction to Coding in Sonic Pi, then the code below should be fairly straight

# forward to read. In addition to a few code explanations below, I put in timings of some sections as

# an aid as you listen to the recording.

temple = "/FieldRecordings/Temple2/"

temple2 = "/FieldRecordings/Temple4/"

set_recording_bit_depth! 24

 

use_random_seed 65

 

50.times do

  cur_samp = rrand_i(0,12)

  cur_speed = rrand(1.0,3.1)

  print cur_samp

  # Note the release on the sample playback and a wait time that is slightly shorter than sample length.

  # This allows for an small overlap/crossfade between samples.

  sample temple, cur_samp, rate: cur_speed, release: 0.03

  wait ((sample_duration temple, cur_samp) / cur_speed) * 0.95

end

 

# Section from 0:03-1:31. Note the gradual transformation in sample selection range. This is scan of

# slices over approximately the first 1/3 of the original field recording.

use_random_seed 100

 

base = 0

 

25.times do

  cur_seed = rrand_i(0,500)

  

  use_random_seed cur_seed

  

  25.times do

    cur_samp = rrand_i(base,base+40)

    print cur_samp

    sample temple, cur_samp, release: 0.03

    wait (sample_duration temple, cur_samp) * 0.95

  end

  

  base += 3

  

end

 

# 1:31-1:34: a variation of the first event in the piece.

use_random_seed 165

# Create an array that is 50 values long evenly increasing in value from 1.0 to 3.0,

# then randomly permute.

speeds = line(1.0, 3.0, steps: 50, inclusive: true).shuffle

 

50.times do

  cur_samp = rrand_i(0,12)

  cur_speed = speeds.tick(:r)

  print cur_speed

  sample temple, cur_samp, rate: cur_speed, release: 0.03

  wait ((sample_duration temple, cur_samp) / cur_speed) * 0.95

end

 

3.times do

  use_random_seed 60

  

  20.times do

    cur_samp = rrand_i(40,80)

    cur_speed = rrand(1.0,3.1)

    print cur_samp

    sample temple, cur_samp, rate: cur_speed, release: 0.03

    wait ((sample_duration temple, cur_samp) / cur_speed) * 0.95

  end

  

end

 

2.times do

  use_random_seed 40

  

  30.times do

    cur_samp = rrand_i(13,50)

    cur_speed = rrand(1.0,3.1)

    print cur_samp

    sample temple, cur_samp, rate: cur_speed, release: 0.03

    wait ((sample_duration temple, cur_samp) / cur_speed) * 0.95

  end

  

end

 

2.times do

  use_random_seed 140

  

  30.times do

    cur_samp = rrand_i(95,120)

    cur_speed = rrand(1.0,3.1)

    print cur_samp

    sample temple, cur_samp, rate: cur_speed, release: 0.03

    wait ((sample_duration temple, cur_samp) / cur_speed) * 0.95

  end

  

end

 

# 1:51-2:13

use_random_seed 55

 

cur_seed = [50,60,90,95].shuffle

 

4.times do

  

  use_random_seed cur_seed.tick(:s)

  

  [1,2,3].choose.times do

    

    30.times do

      cur_samp = rrand_i(120,180)

      cur_speed = rrand(1.0,3.1)

      print cur_samp

      sample temple, cur_samp, rate: cur_speed, release: 0.03

      wait ((sample_duration temple, cur_samp) / cur_speed) * 0.95

    end

    

  end

  

end

 

# 2:14

2.times do

  use_random_seed 55

  

  30.times do

    cur_samp = rrand_i(180,220)

    cur_speed = rrand(1.0,3.1)

    print cur_samp

    sample temple, cur_samp, rate: cur_speed, release: 0.03

    wait ((sample_duration temple, cur_samp) / cur_speed) * 0.95

  end

end

 

2.times do

  use_random_seed 55

  

  30.times do

    cur_samp = rrand_i(220,225)

    cur_speed = rrand(1.0,3.1)

    print cur_samp

    sample temple, cur_samp, rate: cur_speed, release: 0.03

    wait ((sample_duration temple, cur_samp) / cur_speed) * 0.95

  end

end

 

use_random_seed 2

 

20.times do

  cur_samp = rrand_i(0,12)

  cur_speed = rrand(1.0,3.1)

  print cur_samp

  sample temple, cur_samp, rate: cur_speed, release: 0.03

  wait ((sample_duration temple, cur_samp) / cur_speed) * 0.95

end

 

4.times do

  

  use_random_seed 375

  

  10.times do

    cur_samp = rrand_i(0,23)

    sample temple2, cur_samp

    wait (sample_duration temple2, cur_samp) * 0.95

  end

  

end

 

3.times do

  

  use_random_seed 315

  

  10.times do

    cur_samp = rrand_i(0,23)

    sample temple2, cur_samp

    wait (sample_duration temple2, cur_samp) * 0.95

  end

  

end

 

use_random_seed 185

 

30.times do

  cur_samp = rrand_i(226,280)

  cur_speed = rrand(1.0,3.1)

  print cur_samp

  sample temple, cur_samp, rate: cur_speed, release: 0.03

  wait ((sample_duration temple, cur_samp) / cur_speed) * 0.95

end

 

2.times do

  use_random_seed 185

  

  30.times do

    cur_samp = rrand_i(280,310)

    cur_speed = rrand(1.0,3.1)

    print cur_samp

    sample temple, cur_samp, rate: cur_speed, release: 0.03

    wait ((sample_duration temple, cur_samp) / cur_speed) * 0.95

  end

end

 

3.times do

  use_random_seed 12

  

  10.times do

    cur_samp = rrand_i(310,325)

    cur_speed = rrand(1.0,3.1)

    print cur_samp

    sample temple, cur_samp, rate: cur_speed, release: 0.03

    wait ((sample_duration temple, cur_samp) / cur_speed) * 0.95

  end

end

 

3.times do

  use_random_seed 12

  

  10.times do

    cur_samp = rrand_i(326,346)

    cur_speed = rrand(1.0,3.1)

    print cur_samp

    sample temple, cur_samp, rate: cur_speed, release: 0.03

    wait ((sample_duration temple, cur_samp) / cur_speed) * 0.95

  end

end

# Completed 5 January 2021

bottom of page