# MinaCoding2023_Blue

Today's MinaCoding Prompt is **Blue.** BluishBlues will be coded audiovisually thru **LiveCodeLab and SonicPi**.

* The visuals are layered by animations coded in LiveCodeLab
    
* The sounds are coded in SonicPi using a concept of shadow maths and colour shuffling, where in this case the sounds are made through the values of different blues. As well as their shadow/shuffle counterparts to add variance to the soundscape. So when watching,  you are experiencing both blue as a colour and a sound. Slowed down after by 40%
    

## Video

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

## Poem

```ocaml
Bursting of Blues
Brightening with their hues
Belonging to more than a few
Blues like the sky
At various times
Blues like the reflection
Seen on water interactions
Bursting of Blues
Blitzing with their hues
```

## Code

### LiveCodeLab

```javascript
rot = time / 5

ringDetail = 11
ambientLight 255
noStroke



if time % 10 > 5
	fill turquoise
	simpleGradient teal,aqua,navy

if time % 10 < 5
	fill blue
	simpleGradient indigo,midnightblue,teal

if time % 12 < 6
	rotate rot,rot,rot
	scale wave(0.003)

if time % 12 > 6
	rotate rot, rot * 3, sin(rot)
	scale cos(wave(0.12))

29 times with i
	rotate (time / 5) + i
	ringDetail times
		rotate wave(0.03), i, (2 * pi) / ringDetail
		move 2*i, 0, 0
			rect abs(tan(1 - time % 5)), 0.3 + (1 / ringDetail)
```

### SonicPi

```ruby
#Color +Shadows
#RGB Values + XYZ

#ShadeofBlue [R,G,B, X, Y, Z]

# CornFlowerBlue : 100, 149, 237,31.286, 30.317, 84.319
# DarkBlue : 	0, 0, 139,4.659, 1.864, 24.539
# Firebrick : 	0, 114, 187,14.985, 15.621, 49.236

#shadow length equation is Length = height / tan(angle)


#Creating Arrays
CornFlowerBlue = [100, 149, 237,31.286, 30.317, 84.319]
DarkBlue = [0, 0, 139,4.659, 1.864, 24.539]
FrenchBlue = [0, 114, 187,14.985, 15.621, 49.236]



with_fx :ixi_techno do
  live_loop :blues do
    i = 0
    use_synth :pretty_bell
    play (CornFlowerBlue[i] + DarkBlue[i])/5 ,release: 3
    play CornFlowerBlue[i] ,release: 3
    
    with_fx :ping_pong, mix: rrand(0.3,0.75) do
      use_synth :chiplead
      play (FrenchBlue[i] + DarkBlue[i])/5 ,release: 3, decay: dice(4)
    end
    
    sleep [0.5,1,2].choose
    if i < 7
      i+= 1
    end
  end
end

live_loop :Blueshuffle do
  
  CornFlowerBlueShuffle = CornFlowerBlue.shuffle()
  DarkBlueShuffle = DarkBlue.shuffle()
  FrenchBlueShuffle = FrenchBlue.shuffle()
  
  i = 0
  use_synth :pretty_bell
  play (CornFlowerBlueShuffle[i] + DarkBlueShuffle[i])/4 ,release: 3
  play CornFlowerBlueShuffle[i] ,release: 3
  
  with_fx :ping_pong, mix: rrand(0.3,0.75) do
    use_synth :piano
    play (FrenchBlueShuffle[i] + DarkBlueShuffle[i])/5 ,release: 3, decay: dice(4)
  end
  
  sleep [0.5,1,2].choose
  if i < 7
    i+= 1
  end
end


#shadow length component
with_fx :ixi_techno do
  live_loop :Bluesshadow do
    i = 0
    use_synth :piano
    play (CornFlowerBlue[i]/Math.tan(70)).abs + (DarkBlue[i]/Math.tan(70)).abs  - 20,release: 3, sustain: 8
    play (FrenchBlueShuffle[i]/Math.tan(70)).abs + (DarkBlue[i]/Math.tan(70)).abs  - 20,release: 3, sustain: 8
    sleep [0.25,0.5,1,2,4].choose
    if i < 7
      i+= 1
    end
  end
end

```
