# WCCChallenge: Azulejos

## InvertedAzulejos

For this week's Creative Code challenge by @[@sableRalph](@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](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

<iframe width="560" height="315" src="https://www.youtube.com/embed/qNrrl7F8g4s"></iframe>

## Code

### Hydra Code

```javascript
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

```ruby

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
```
