WCCChallenge_Cut&Paste

WCCChallenge_Cut&Paste

Cutting Reality with the Digital

DigiPhysicality

For this week's Creative Code Challenge by @sableraph : Cut & Paste, We are cutting & pasting between the past, future and present as well as the digital and physical realm. Through LiveCodeLab, LiveCodingYoutube,Hydra & SonicPi

DigiPhysicalProcess

  • The LiveCodeLab piece is a former entry of the WCCC: https://blog.illestpreacha.com/wccchallenge-blobs and in this instance, it is being pasted a couple of times in the canvas by Hydra

  • The Hydra Code not only pasted various versions of the Blob Submission but it also cuts into reality by taking the video from the webcam and distorting it by cutting it up.

  • Also seen in the video is the webcam showing the screens that it is being emitted on. This can be considered another element of "pasting" itself onto the canvas

  • Then to add even more of a digital collage, used LiveCodingYoutube to make a collage of four variants of the original sketch: Oilpaint, B&W, Neon and Red. Alongside, some jump cuts to fulfil the cut component in this language

  • Additional code form post challenges have also been added via Hydra & SonicPi to finalize the cutting & pasting

Poem

To Cut & Paste
Pasting while Cutting
Pacing while Placing
Cunning while Confronting
The Cuts in the Place
The Place with its Phase
Through this Cutting & Paste

Video

Code

Hydra

s0.initScreen()
s1.initCam()

src(s0).scroll(0.5).add((src(s0).scale(3)).rotate(()=> Math.cbrt(time)))
.blend(src(s1).kaleid(2)).diff(s1).out()
s0.initScreen()


src(s0).modulateRotate(src(s0).repeat(3).kaleid([3,2,1,2,3])).mult(src(s0).diff(osc(20.273, 0.001, 0.541)).rotate(1.036)).pixelate([200,400],[400,800,1600,1000]).blend(s0, 0.799).scrollX(0.1,0.1).modulateScale(src(s0).scale(3, () => 1.05 + 0.1 * Math.sin(0.088 * time))).out(o0);


frame = 30

speed = 0.5

LiveCodingYoutube

red = 'zFMoAIH9c5Y'
neon = '8I-9KC_fgk4'
bw = 'H4h8ITgVb5c'
OilPaint = 'rojrHO1C6Vg'

create(3,3,OilPaint)
play(all)
speed(4,0,0.1)
cue([0,1,2],red)
jump([0,2],10,10)
cue([3,5],bw)
speed([3,5],-0.5)
cue([6,7,8],neon)
speed([6,8],2)

LiveCodeLab - https://blog.illestpreacha.com/wccchallenge-blobs


ballDetail 12
animationStyle motionBlur
rotate time / 5, time/5, wave(0.003)
simpleGradient black, brown, blue

scale 0.3

8 + time % 6 times
    ambientLight 100,75,200, 50
    rotate 0, 1, time / 5
    move 0.2 * wave(0.003), wave(0.3), 0
    3 times
        rotate 1.2,2,3
        peg -2.5,-1.5,-2.5

10 - time % 6 times
    ambientLight 10,175,100 + (time % 20 * 3), 40
    fill yellow
    stroke yellow
    rotate 0, time / 5
    move 0.2, 0, 0
    5 times
        rotate 1.2,2,3
        peg -1.5,-2.5,-1.5

12 - time % 6 times
    ambientLight 10,175,100 + (time % 20 * 3), 40
    fill red
    stroke red
    rotate 0, time / 5
    move 0.2, 0, 0
    5 times
        rotate 1.2,2,3
        peg -1.5,-2.5,-1.5

SonicPi

https://blog.illestpreacha.com/wccchallenge-hyperspace

#Forest Green
ForestGreen = [34,139, 34]

with_fx :ixi_techno do
  live_loop :forestGreen do
    i = 0
    use_synth :pretty_bell
    play ForestGreen[i] ,release: 3
    sleep [0.5,1,2].choose
    if i < 4
      i+= 1
    end
  end
end

#Shadow of Forest Green
with_fx :ixi_techno do
  live_loop :forestGreenShadow do
    i = 0
    use_synth :pretty_bell
    play ForestGreen[i]/Math.tan(70) ,release: 3
    sleep [0.25,0.5,1,2].choose
    if i < 4
      i+= 1
    end
  end
end

https://blog.illestpreacha.com/wccchallenge-whereilive

with_fx :distortion do
  use_bpm 120
  live_loop :scaled_sample do
    with_fx :ping_pong, mix: 0.8 do
      with_fx :gverb, mix: 0.23 do
        sample "C:/Creatuve Code Challenges/WhereILive/Winter Sounds.wav", rpitch: (scale [11.3/8.8628,17.11/8.628,5.682,35.258/13.676,13.676].choose, [:gong, :whole,:chromatic].choose).tick
      end
    end
    sleep [4,8,10].choose
  end
end

with_fx :ping_pong do
  use_bpm 75
  live_loop :scaled_sample2 do
    with_fx :ixi_techno, mix: 0.65 do
      with_fx :flanger, mix: 0.75 do
        sample "C:/Creatuve Code Challenges/WhereILive/Winter Sounds.wav", rpitch: (scale [46.1/45.1,17.11/8.628,5.682,35.258/13.676,35.258].reverse, :hex_aeolian).tick
      end
    end
    sleep [1,2,4,8,16].choose
  end
end

with_fx :slicer do
  use_bpm 62
  live_loop :scaled_sample3 do
    sample "C:/Creatuve Code Challenges/WhereILive/Winter Sounds.wav", rpitch: (scale [37,11.3,29.9,45.1].choose, [:shang, :egyptian, :gong].choose).tick
    sleep [0.418,0.351,0.418 *8.628].choose
  end
end

https://blog.illestpreacha.com/decibelschallengepersonaldata

require 'csv'

#naming the Dataset DipInCode and going to read the file
Heart = CSV.parse(File.read("C:/Creatuve Code Challenges/Sonification Challenges/March 2023/HeartRatePrep.csv"), headers: true)


i = 0


live_loop :HeartZone do

  #these effects are going to be affected by the zones, since they are between 0 and 1, which is the range for the mix function
  with_fx :echo, mix: Heart[i]['Other Zones'].to_f  do
    with_fx :ixi_techno, mix: Heart[i]['Zone3'].to_f do
      with_fx :krush, mix: Heart[i]['Zone2+3'].to_f do

        #a trio of synths to add more musicality/variance to the listening experience
        use_synth [:organ_tonewheel,:mod_sine,:mod_sine].choose

        #Corresponds to the note being played
        play Heart[i]['HR_MIN'].to_f, decay: Heart[i]['Other Zones'].to_f, amp: dice(12)
        #We can even pass a list of times which it will treat as a circle of times:
        play_pattern_timed chord(Heart[i]['HR_MIN'].to_f, :m13), [Heart[i]['Zone2+3'].to_f, Heart[i]['Other Zones'].to_f ,Heart[i]['HR_MAX'].to_f/ Heart[i]['HR_MIN'].to_f]
      end
    end
  end

  i += 1 #counter

  if i == Heart.length #make the loop nonstop
    i = 0
  end

  #spacing
  sleep Math.sin(Heart[i]['HR_MAX'].to_f/ Heart[i]['HR_MIN'].to_f)
end


live_loop :HeartBeat do

#same as the previous loop, with the difference being a random choosing of 3 effects instead of 3 synths in this portion 

  with_fx :flanger, depth: Heart[i]['Other Zones'].to_f  do
    with_fx :echo,  mix: Heart[i]['Zone2+3'].to_f do
      with_fx [:ping_pong,:vowel,:whammy].choose, mix: Heart[i]['Other Zones'].to_f do
        sample :ambi_piano,beat_stretch: Heart[i]['Zone2'].to_f ,pitch: Heart[i]['CaloLoad'].to_f
        sample :perc_impact1,beat_stretch: Math.cos(Heart[i]['Other Zones'].to_f), decay: Heart[i]['CaloLoad'].to_f
      end
    end
  end

  i += 1

  if i == Heart.length #make the loop nonstop
    i = 0
  end

  sleep Heart[i]['HR_MAX'].to_f/ Heart[i]['HR_MIN'].to_f
end