Table of contents
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
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