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