WCCChallenge_Arc

WCCChallenge_Arc

An ArcFul

ArcFul Sounds

For this week's Creative Code Challenge by @sableraph: "Arc", the arc is represented by the story arc of various circles communicating their stories.

Remixing a post WCCC submission for "Circles Creation" : https://blog.illestpreacha.com/wccchallengecirclecreations, where the focus is on the possible ranges of arcs that can be found in the 18 circles.

This week Language is SonicPi

Arc Design

  • Provide a random assortment of 18 circles

  • Each circle has various arcs that communicates to the audience

    • By providing an opportunity of various inner arcs to be spoken through their area and angle within the circle.

    • With additional filters, to see what they are trying to say in their character arc

Various random functions are used such as choose,use_random_seed, Time.now.to_i, dice,shuffle and plenty more to give a different voice each round

Poem

Arc
Architecture
Of the features
Features that are identifiable
As these arcs are the parks
The landmarks
Of their area
That there are carriers
For the barriers
Of these arcs
That are modifiable

Audio

IllestPreacha · ArcFulSounds

SonicPi Code

#using 18 circles and their the various within  to make sound


def circles1(radius,loop)

  use_random_seed Math.hypot(Time.now.to_f,3)

  circumference = 2 * Math::PI * radius
  area = Math::PI * (radius ** 2)

  #getting the potential arcs in the circle into this
  arc = rrand(0.01,0.99)

  #getting the angles and areas of the arc
  arc_angle = 360 * arc
  area_arc = arc_angle * area

  live_loop loop do

    use_bpm 90
    use_random_seed Math.sqrt(Time.now.to_f)
    with_fx :ping_pong,mix: 0.75 do
      with_fx :gverb, damp: 0.5 do
        use_synth :piano
        play [circumference/3,circumference/7,arc_angle / 2.5 ].choose, decay: rrand(1,4), amp: 2
        sample ['E:/Creatuve Code Challenges/SciArtSeptember_2023/simian/MonkeyScreaming.wav',:ambi_drone,:elec_beep,:loop_tabla,"C:/SonicPi/SocaRiddims/WaterMelonRiddim_Wav.wav"].choose, beat_stretch: area_arc / 170 ,amp: dice(5)
      end
    end
    sleep [2,4,8,12,16].choose

  end

end

def circles2(radius,loop)

  use_random_seed Math.log2(Time.now.to_f)

  circumference = 2 * Math::PI * radius
  area = Math::PI * (radius ** 2)

  #getting the potential arcs in the circle into this
  arc = rrand(0.01,0.99)

  #getting the angles and areas of the arc
  arc_angle = 360 * arc
  area_arc = arc_angle * area

  live_loop loop do
    use_bpm 135

    #change the time to a float
    use_random_seed Math.cbrt(Time.now.to_f)

    with_fx [:echo,:whammy,:ixi_techno].choose, mix: rrand(0.4,0.8) do
      with_fx :ixi_techno,mix: 0.75 do
        with_fx :vowel, voice: dice(3) + 1 do
          use_synth [:chipbass,:chipbass,:piano].choose
          play [arc,arc/3, circumference/4].choose, sustain: dice(3), amp: 2
          sample [:loop_mehackit1,:perc_swoosh,:glitch_robot2,:glitch_robot1].choose
          sample ["E:/Creatuve Code Challenges/Cats/Asset/CAT MEOWING SOUNDS | Realistic Cat Sounds and Noises with Videos.wav",'C:/Audio/Rambling/JungleJazz.wav',:tabla_ghe2,:elec_beep,:drum_bass_hard,:perc_door].choose, rate: arc_angle / 40 , attack: dice(5), amp: dice(5)
        end
      end
    end

    sleep [1,3,8,16,].choose
  end

end

sample :loop_tabla

#setting various circles to form numerous of arcs through the while loop

live_loop :arcing do

  use_random_seed Time.now.to_i

  #getting the randomness set up
  dice1 = dice(115)
  dice2 = dice(7)
  shuffle1 = [73,75,105,45,90,10,30]
  rand1 = rrand_i(5,78)
  dice3 = dice(28)+2
  rand2 = rrand_i(48,112)

  #the process of 18 circles
  circles1(dice1,[:circle1,:circle7].choose)
  circles2(dice2,[:circle2,:circle8,:circle9,:circle18].reverse.tick)
  circles2(shuffle1.shuffle.tick,[:circle3,:circle10,:circle11,:circle12].choose)
  circles1([rand1,rand2].tick,[:circle4,:circle13,:circle14].shuffle.tick)
  circles2([dice3,dice2,dice1].choose,:circle5)
  circles1(rrand_i(48,112),[:circle6,:circle15,:circle16,:circle17].shuffle.choose)

  sleep [2,4,8,12,24].choose
end