Table of contents
InvertedAzulejos
For this week's Creative Code challenge by @sableRalph : Azulejo, I decided to code Animated Azulejo-like tiles with Hydra & SonicPi
The inspiration for this sketch is based on the blueness of Azulejo tiles and their functional component of temperature control through their white background - https://www.deccanherald.com/content/29446/looking-tiles-azulejos.html
Instead of going with the standard blue and white, I decided to go with the inverse and have Yellow and black as the colours.
Keeping the concept of tiling and geometric motifs, I had the Hydra sketch transform various times into different "Inverted Azulejos" tilesets
For the Audio, I wanted to reflect the temperature control aspect by having a refreshing/reflective composition
Poem
Reforming, Reswarming
Tiles reshaping their styles
Ignoring their initial creation file
With new information mint for storing
Will they keep this pace or start to be wild?
Video
Code
Hydra Code
function r(min=0,max=1) { return Math.random()*(max-min)+min; } //randomizer
//color(1,1,0) is the yellow hue
shape([4,5,5,5,5,5,5,5,4,4,4,4].smooth(),0.3,1).invert().luma([0.5,0.4,0.3,0.2,0.1,0.2,0.3,0.4,0.6,0.8].smooth()).color(1,1,0).modulateKaleid(shape(3,0.2,1).kaleid([3,4,5].smooth()),[4,5,8,9,11].smooth()).repeat(2.5,2.5).add(shape(4,()=> r(0.1,0.7),1).rotate(4).color(0,0,1).luma([0.2,0.4,0.6,0.4,0.2].smooth())
.modulateKaleid(shape(4,0.5,1).rotate(()=>r(0.1,0.7)*7))).repeat(4,4).rotate().out()
speed = 0.275
SonicPi Code
live_loop :guit do
with_fx :ping_pong, mix: rrand(0.1,0.7) do
with_fx :echo, mix: 0.6, phase: 0.25 do
sample :guit_em9, rate: 0.5, beat_stretch: [0.25,0.5].choose
end
sample :guit_em9, rate: -0.5, beat_stretch: (dice(10) + 1/17)
sleep [3,6,9].choose
end
end
live_loop :boom do
with_fx :reverb, room: 1 do
sample :bd_boom, amp: 10, rate: 0.7 * (dice(10) + 1/17)
sample :bd_boom, amp: dice(10), rate: -0.7
end
sleep [2,3,4].choose
end
notes = (ring :E4, :Fs4, :B4, :Cs5, :D5, :Fs4,:E4, :Cs5, :B4, :Fs4, :D5, :Cs5)
live_loop :faster do
use_synth [:piano,:beep, :prophet].choose
play notes.tick, release: 0.1
sleep [0.3,0.6,0.45].choose
end
live_loop :slower do
play notes.tick, release: 0.1
use_synth :rodeo
sleep [4,8,16].choose
end