It’s not a clean hardcore noise cover by Ryoji Ikeda.
Just inspired by his stuff. I guess I like a bit melodic stuff mixed in.
Hydra is set to have Sonic Pi as a source, so we can use the waveforms as live visuals.
# 230613 0037 Sonic Pi inspired by Ryoji Ikeda YT
# Trying out a new way of working with Sonic Pi and Hydra YT
# Saved 230613 0037
# Created by https://linktr.ee/relaxnow
# YT https://youtu.be/iNYczTiLNh4
# Inthread
# Inspiration
# Ryoji Ikeda - Data.Matrix - Live at Sonár 2010
# https://youtu.be/k3J4d4RbeWc
# Ryoji Ikeda Pure Data Tutorial
# https://youtu.be/CLddxGIlVPU
# Ryoji Ikeda - Supercodex [Full Album]
# https://www.youtube.com/watch?v=MsGPRZPLfPA
# Ryoji Ikeda ARS musica !!
# https://youtu.be/LeIZvgkRFSQ?t=1002
# Also checkout Alva Noto or Byetone
set_volume! 1
use_bpm 60
with_fx :level, amp: 1 do |l|
with_fx :reverb, room: 0.4, amp: 1 do
with_fx :distortion, distort: 0.9, amp: 1 do |k|
with_fx :hpf, cutoff: 120 do |hpf|
live_loop :a1 do
use_random_seed 100 #10000 #100 nice
16.times do
tick
ls = 8
control l, amp_slide: ls, amp: 2
kr = [0,0.2,0.4,0.6,0.8].choose
# control k, res_slide: ls, res: 0.9, mix: kr
# control k, res: kr, mix: kr
control hpf, cutoff: rrand_i(10,120)
r1 = 0.0001
r2 = 0.0001
#r1 = 0.001
#r2 = 0.001
#r1 = 0.0025
#r2 = 0.0025
r1 = rrand(0.0001,0.001)
r2 = rrand(0.0001,0.01)
# density rrand_i(1,4) do
sy = 128
synth = knit(1,sy, 2,sy).look
case synth
when 1
use_synth [:chipnoise].choose
when 2
use_synth [:bnoise,:gnoise, :noise, :chipnoise].choose
when 3
#use_synth [:bnoise,:gnoise, :noise].choose
end
play :c3, release: r1, pan: -0.8 if (spread(1,5)+spread(2,5)+spread(3,5)+spread(4,5)+spread(5,5)).look
play :c4+3, release: r2, pan: 0.8 if (spread(1,5)+spread(2,5)+spread(3,5)+spread(4,5)+spread(5,5)).reverse.look
# sleep [0.25,0.125].choose
sleep 0.125
end
end
end
end
end
end
with_fx :level, amp: 2 do
with_fx :reverb, room: 0.9 do
live_loop :bass do
tick
use_synth :sine
/ sine bass /
play :c2, amp: 2, sustain: 2, release: 1 if spread(1,16*3).look
#play :c4, amp: 1, release: 2 if spread(1,16*3).look
/ mel /
# mel = [0,1,2,3,4,5].choose
#mel = [0,4].choose
#mel = 5
m = 32
mel = knit(0,m, 1,m, 2,m, 3,m, 4,m ,5,m).look
puts "melody =",mel if spread(1,m).look
case mel
when 0
when 1 #(not that great)
play :c4+[0,2,-2,5,3,7,-7].look, release: 0.15, amp: 0.5 if spread(12,16).look and one_in(2)
when 2
play :c4+[0,2,-2,5,3,7,-7].look, release: 0.15, amp: 0.5 if spread(12,16).look and one_in(2)
play :c5+[0,2,-2,5,3,7,-7].look, release: 0.15, amp: 0.5 if spread(12,16).look and one_in(2)
when 3
# play :c4+[0,2,-2,5,3,7,-7].look, release: 0.15, amp: 0.5 if spread(12,16).look and one_in(2)
play :c5+[0,2,-2,5,3,7,-7].look, release: 0.15, amp: 0.5 if spread(12,16).look and one_in(2)
play :c6+[0,2,-2,5,3,7,-7].look, release: 0.15, amp: 0.5 if spread(12,16).look and one_in(2)
when 4
play :c4+[0,2,-2,5,3,7,-7].look, release: 0.15, amp: 0.5 if spread(12,16).look and one_in(2)
play :c5+[0,2,-2,5,3,7,-7].look, release: 0.15, amp: 0.5 if spread(12,16).look and one_in(2)
#play :c6+[0,2,-2,5,3,7,-7].look, release: 0.15, amp: 0.5 if spread(12,16).look and one_in(2)
play :c7+[0,2,-2,5,3,7,-7].look, release: 0.15, amp: 0.5 if spread(12,16).look and one_in(2)
when 5
play :c4+[0,2,-2,5,3,7,-7].look, release: 0.15, amp: 0.5 if spread(12,16).look and one_in(2)
play :c5+[0,2,-2,5,3,7,-7].look, release: 0.15, amp: 0.5 if spread(12,16).look and one_in(2)
play :c6+[0,2,-2,5,3,7,-7].look, release: 0.15, amp: 0.5 if spread(12,16).look and one_in(2)
play :c7+[0,2,-2,5,3,7,-7].look, release: 0.15, amp: 0.5 if spread(12,16).look and one_in(2)
end
sample :glitch_perc3, beat_stretch: [0.25,0.5, 1,2,4].choose, rate: [2,4].choose, slice: rrand_i(1,10), amp: 2, pan: rdist(0.5) if bools(1).look and one_in(2)
use_synth :noise
# use_synth_defaults release: [0.01,0.02,0.04,0.06].choose
use_synth_defaults release: [0.001,0.002,0.004,0.006].choose
c = [70,80,90,100,110,120,130].choose-50
# play :c9, cutoff: c, amp: 2, pan: rdist(0.75)
use_synth_defaults release: [0.01,0.02,0.04,0.06].choose
# play :c4, cutoff: 80, amp: 2, pan: rdist(0.5)
dr = 64
drums = knit(0,dr, 1,dr*2, 2,dr, 3, dr, 4,dr, 5,dr).look
#drums = 1
case drums
when 0
when 1
sample :bd_haus, cutoff: 70, amp: [4,0,0,0,0,0, 0,0,0,0,0,0].look
#sample :bd_haus, cutoff: 50, amp: [0,0,0,0,2,0, 0,0,2,0,0,0].look
#sample :elec_tick, amp: [4,1,0,1,1].look, rpitch: 12
#sample :elec_tick, amp: [4,1,0,1,1,0].look, rpitch: 0
#sample :bd_haus, rate: 4, cutoff: 130, amp: [2,1,0,2,1,0,1].look and one_in(2)
when 2
sample :bd_haus, cutoff: 70, amp: [4,0,0,0,0,0, 0,0,0,0,0,0].look
sample :bd_haus, cutoff: 50, amp: [0,0,0,0,2,0, 0,0,2,0,0,0].look
#sample :elec_tick, amp: [4,1,0,1,1].look, rpitch: 12
#sample :elec_tick, amp: [4,1,0,1,1,0].look, rpitch: 0
#sample :bd_haus, rate: 4, cutoff: 130, amp: [2,1,0,2,1,0,1].look and one_in(2)
when 3
#sample :bd_haus, cutoff: 70, amp: [4,0,0,0,0,0, 0,0,0,0,0,0].look
#sample :bd_haus, cutoff: 50, amp: [0,0,0,0,2,0, 0,0,2,0,0,0].look
sample :elec_tick, amp: [4,1,0,1,1].look, rpitch: 12
sample :elec_tick, amp: [4,1,0,1,1,0].look, rpitch: 0
#sample :bd_haus, rate: 4, cutoff: 130, amp: [2,1,0,2,1,0,1].look and one_in(2)
when 4
# sample :bd_haus, cutoff: 70, amp: [4,0,0,0,0,0, 0,0,0,0,0,0].look
sample :bd_haus, cutoff: 50, amp: [0,0,0,0,2,0, 0,0,2,0,0,0].look
sample :elec_tick, amp: [4,1,0,1,1].look, rpitch: 12
sample :elec_tick, amp: [4,1,0,1,1,0].look, rpitch: 0
sample :bd_haus, rate: 4, cutoff: 130, amp: [2,1,0,2,1,0,1].look and one_in(2)
when 5
sample :bd_haus, cutoff: 70, amp: [4,0,0,0,0,0, 0,0,0,0,0,0].look
sample :bd_haus, cutoff: 50, amp: [0,0,0,0,2,0, 0,0,2,0,0,0].look
sample :elec_tick, amp: [4,1,0,1,1].look, rpitch: 12
sample :elec_tick, amp: [4,1,0,1,1,0].look, rpitch: 0
#sample :bd_haus, rate: 4, cutoff: 130, amp: [2,1,0,2,1,0,1].look and one_in(2)
end
sleep 0.125
end
end
end
#Hydra
# https://hydra.ojack.xyz/?code=JTJGJTJGczEuaW5pdFNjcmVlbigpJTBBJTIwJTIwJTBBc3JjKHMxKSUwQS5waXhlbGF0ZSgxNjAqNCUyQzkwKjQpJTBBLnBpeGVsYXRlKCU1QjUwJTJDNSU1RC5mYXN0KDIpJTJDJTVCMjAlMkM1MDAlNUQuc21vb3RoKCkuZmFzdCgzKSklMEElMkYlMkYubHVtYSgwLjIpJTBBLmludmVydCgtNSklMjAlMkYlMkZOTyUwQS5tb2R1bGF0ZShzcmMoczEpJTJDTWF0aC50YW4odGltZSoxMCkpJTBBJTJGJTJGLnJvdGF0ZSgwJTJDMC4xKSUwQSUyRiUyRi5rYWxlaWQoNCklMEElMkYlMkYucm90YXRlKDAlMkMwLjEpJTBBLnNjYWxlKDEpJTBBJTJGJTJGLnNjYWxlKDIpJTBBJTJGJTJGLnNjcm9sbFkoMCUyQyU1QjAuMDIlMkMtMC4wMSp0aW1lJTJGMTAwJTJDMC4wMSU1RCklMEElMkYlMkYuc2Nyb2xsWCgwJTJDJTVCLTAuMDIqdGltZSUyRjEwMDAlMkMwLjAxJTJDMC4wMyU1RCklMEEuY29sb3JhbWEoMSUyQzAlMkMwKSUyMCUyRiUyRnRoaW4lMjBvciUyMHRoaWNrJTBBLmNvbG9yYW1hKDAuNCUyQy0xMCUyQzApJTIwJTJGJTJGTk8lMEEudGhyZXNoKDAuNTYpJTIwJTJGJTJGYiUyNnclMjBvciUyMGNvbG9yJTBBLm1hc2soc2hhcGUoMiUyQzAuOCkuc2NhbGUoMSUyQzklMkYxNikpJTBBLm91dCgpJTBB
Hydra code
//s1.initScreen()
src(s1)
.pixelate(160*4,90*4)
.pixelate([50,5].fast(2),[20,500].smooth().fast(3))
//.luma(0.2)
.invert(-5) //NO
.modulate(src(s1),Math.tan(time*10))
//.rotate(0,0.1)
//.kaleid(4)
//.rotate(0,0.1)
.scale(1)
//.scale(2)
//.scrollY(0,[0.02,-0.01*time/100,0.01])
//.scrollX(0,[-0.02*time/1000,0.01,0.03])
.colorama(1,0,0) //thin or thick
.colorama(0.4,-10,0) //NO
.thresh(0.56) //b&w or color
.mask(shape(2,0.8).scale(1,9/16))
.out()
I really like his stuff below here.
Next step: Recreate a setup to do something similar in Sonic Pi
Anyone up an exploration challenge based on Ryoji Ikeda?