# WCCC_Orbits

# OrbitalMashUp

For this week's Creative Code challenge by @sableRaph: ***" Orbits”***, **OrbitalMashUp**  envisions a solar system where the orbits aren’t quite aligned. Coded with **LiveCodeLab** & **HydraVideoSynth** with its soundtrack coded in **SonicPi.**

## Poetry

```ocaml
Planets Packaging
Their stars and orbits
To the other galaxies
Altering their extremities
To finalise the proximities 
That they are not bounded to keep
Or seek
The orbits are the culprits
In the clashing of the galaxies
And what is it,
That they really want to be able to see
```

## Video

%[https://youtu.be/eBKdGdwv6is] 

## Code

### LiveCodeLab

```javascript
simpleGradient color((time % 30)*7 + 24,abs(sin(time) * 244),(cos(time) * cos(time)) * 255), color(255 - (time % 45 * 5),200/time % 12 + 1,155),color(154 + time % 30 * 2,155 - sin(time)* 50,tan(time)/sin(time) - 0.2)

if time % 6 > 3
	animationStyle motionBlur

if time % 30 > 20
	simpleGradient color(154 + time % 30 * 2,155 - sin(time)* 50,tan(time)/sin(time) - 0.2),pink,orange
if time % 30 < 10
	simpleGradient aqua,color((time % 30)*7 + 24,abs(sin(time) * 244)),blue
if time % 30 < 20 && time % 30 > 10
	simpleGradient color((time % 30)*7 + 24,abs(sin(time) * 244),(cos(time) * cos(time)) * 255), color(255 - (time % 45 * 5),200/time % 12 + 1,155),color(154 + time % 30 * 2,155 - sin(time)* 50,tan(time)/sin(time) - 0.2)



if time % 15 > 10
	ambientLight 100,20,200
	fill color((time % 30)*7 + 24,abs(sin(time) * 244))
	stroke yellow

if time % 15 < 5
	ambientLight 255,255,0
	fill orange
	stroke color((time % 30)*8 + 24,abs(sin(time) * 244))

if time % 15 < 10 && time  % 15 > 5
	ambientLight 200,125,90
	fill color(154 + time % 30 * 2,155 - sin(time)* 50,tan(time)/sin(time) - 0.2)
	stroke color(154 + time % 30 * 2,155 - sin(time)* 50,tan(time)/sin(time) - 0.2)


if time % 12 > 6
	rotate (time % 4 + 1)/9,(time % 4 + 1)/9,(time % 4 + 1)/9 
	move (time % 12 +1)/12
else
	move (time % 12 +1)/12,(time % 12 +1)/12,(time % 12 +1)/12
	rotate sin(time),cos(time),tan(time)

ball

resetMatrix // Reset here to keep the upper Portion and Lower Portion seperate

pushMatrix
rotate time, sin(time) * sin(time), Math.hypot((time % 6), sin(time))

pushMatrix // bookmark the position after the rotation
move (sin(time)*0.5) * (sin(time)*2), tan(time) /12
ball 0.75
move 0.5, 0, 0

pushMatrix
move ((sin(time)*0.5) * (sin(time)*2)), tan(time) /12 * -1
ball 0.25
popMatrix

popMatrix 
move -0.5, 0, 0
ball
resetMatrix // resets the position
rotate time, sin(time) * sin(time), Math.hypot((time % 6))
scale sin(time) * sin(time) / 2, time % 3 + 1, time % 3 + 1
ball

popMatrix
```

### HydraVideoSynth

```javascript
s0.initScreen()

src(s0).scale(1.5).repeat(2,1).modulateScale(src(s0).pixelate(50,100).scrollX([0.25,-0.15,0.05])).
scrollY([0.15,-0.13,0.05]).out()
```

### SonicPi

```ruby
live_loop :dosage do
  use_bpm 20
  use_random_seed (Time.now.to_i)/2
  with_fx [:echo,:wobble,:krush].choose, mix: rrand(0.25,0.55) , amp: 1 do
    sample [:ambi_drone,:ambi_glass_hum,:elec_fuzz_tom,:elec_beep].choose,beat_stretch: [1,0.5,0.8].choose, rate: [0.5,0.4,0.3,0.2,0.3,0.4].tick
    sleep [0.5,1,2].choose
  end
end

sample

live_loop :bell do
  with_fx [:ixi_techno,:flanger,:ping_pong].choose, mix: rrand(0.2,0.7) do
    use_random_seed (Time.now.to_i)
    use_bpm [120,80,220].choose
    sample [:perc_bell,:elec_bell,:loop_electric].choose, rate: (rrand 0.125,1.85)
    sleep rrand(0.2,2)
  end
end



live_loop :rollback2 do
  #making true random as it goes with the actual time
  #then using the Math.cbrt to make it a different seed ratio then the above function
  use_random_seed Math.cbrt(Time.now.to_i)
  use_bpm 45
  puts Time.now.to_i
  with_fx [:echo,:whammy,:distortion].choose, mix: rrand(0.1,0.6) do
    with_fx [:ping_pong,:distortion,:krush].choose, mix: rrand(0.1,0.9) do
      sample [:perc_swoosh,:perc_swoosh,:perc_snap].choose ,beat_stretch: [1,2,3,0.5].tick, sustain: 4, rate: Math.sqrt(dice(25) + 1)/3
      sleep [0.5,1,2,4,8].choose
    end
  end
  sleep [0.5,1,2].choose
end


live_loop :rollback3 do
  #making true random as it goes with the actual time
  #then using the Math.cbrt to make it a different seed ratio then the above function
  use_random_seed Math.cbrt(Time.now.to_i)
  use_bpm [45,90,90,90,135].tick
  puts Time.now.to_i
  with_fx [:echo,:whammy,:distortion,:pitch_shift].choose, mix: rrand(0.1,0.6) do
    with_fx [:ping_pong,:distortion,:krush].choose, mix: rrand(0.1,0.9) do
      sample [:loop_mehackit1,:perc_swoosh,:glitch_robot2,:glitch_robot1].choose ,beat_stretch: [1,2,3,0.5].tick, sustain: 4, rate: Math.sqrt(dice(25) + 1)/3
      sleep [0.5,1,0.25].choose
    end
  end
  sleep [0.5,1,2].choose
end
```
