# WCCC_Rewind

# RewindsOfRewinds

For this week's Creative Code challenge by @sableRaph:***"Rewind”,*** **RewindsOfRewinds** is coded in ***LiveCodeLab, Hydra, SonicPi & LiveCodingYoutube.***

## Rewinding Process

* Took previous footage and original footage from the following Public Domain films
    
    * Fantasmagorie (1908, First Cartoon Ever)
        
    * Crazy Plane (1928)
        
    * Le Voyage dans la Lune (1902)
        
    * Steamboat Willie (1928)
        
* Adjusted code that is portraying the concept of mangled lost film footage
    
    * [https://blog.illestpreacha.com/genuary2024anhour](https://blog.illestpreacha.com/genuary2024anhour)
        
* Rewind to SonicPi Code written in 2016 as well as my first entry to the WCCC:
    
    * [https://github.com/IllestPreacha/SonicPiTrackListing/blob/master/QuickRiddims.rb](https://github.com/IllestPreacha/SonicPiTrackListing/blob/master/QuickRiddims.rb)
        
    * [https://blog.illestpreacha.com/creativecodechallenge-sonic-pi-recursion](https://blog.illestpreacha.com/creativecodechallenge-sonic-pi-recursion)
        
* Rewind to LiveCodeLab written in 2021
    

## Poem

```javascript
Press the start button
As the day and its events
Begin to be summoned
How do you plan to transverse
This segments
That you couldn’t rehearse?
Which nutrients will give you the burst
To get past
Into the land that vast
Sustaining motions that can be able last
Be hold , for the times
That we take a pause
To rewind
And gives ourselves applause
Because we are still aiming
If the sun shines or it is raining
So with that said,
How are we moving ahead?
```

## Video

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

## Code

### Hydra

```javascript
s0.initScreen()

src(s0)
.pixelate([1000,5000,10000,20000],[2000,4000,50000,100000])
.repeat(3,3)
.mult(src(s0)
.scale([0.5,0.75,1,1.25].smooth(),[0.25,0.5,1,2].smooth()))
.out()
```

### LiveCodeLab (2021)

```javascript
turns = tan(4-time %2) + sin(4-time % 3)
detail = 1000
speed = 0.4 * cos(2) * 0.2
simpleGradient salmon,blanchedalmond,orange
scale 0.48
rotate 15,wave(0.03),0
detail times with i
	rotate tan(pi * sin(pi)), sin(pi), (2 * pi) / detail
	move cos(0.65) * (time % 4),sin(6.5),tan(10)
		rotate (turns * i * pi) / detail + (time * speed), 0, 0
			peg tan(2),4,cos(3)/detail, sin(pi)
```

### LiveCodingYoutube

```javascript
v1 = 'swh448fLd1g'
//Fantasmagorie (1908) First Cartoon Ever
v2 = 'aGKj8_Aewks'
//Crazy Plane (1928) remix
v3 = 'ZNAHcMMOHE8'
//Le Voyage dans la Lune (1902) - Georges Méliès
v4 = 'pZrgdNdcUW0'
//Steamboat Willie (1928) remix

create(2,2,v1)
cue(0,v2)
cue(1, v3)
cue(2,v4)

speed([0,1],-5)
speed(2,-0.5)
speed(3,-2.8)

jump(1,70,40,40)
jump([2,3],0.5,1,1)
jump([0,1,2,3],-5,-5)

play(all)
```

### SonicPi (Updated)

```ruby
# Dec 28, 2016 remix: https://github.com/IllestPreacha/SonicPiTrackListing/blob/master/QuickRiddims.rb

def bassing(looping, bpming)
  
  live_loop looping do
    use_random_seed (Time.now.to_i)/2
    use_bpm bpming
    with_fx :ixi_techno, mix: 0.7, phase: dice(4) do
      with_fx :ping_pong, mix: rrand(0.3,0.8), phase: dice(4) do
        use_bpm 20
        if one_in(2)
          sample :drum_bass_hard, rate: Math.cbrt(rrand_i(-3,3)) + 1.25  if spread(7,12).tick
          sleep [0.5,1,2].choose
        else
          sample :drum_bass_soft, beat_stretch: dice(6) if spread(5,12).tick
          sleep [0.25,0.5,1,2,3].choose
        end
      end
    end
  end
  
end

def starting (looping,bpming)
  
  live_loop looping do
    use_random_seed (Time.now.to_i)/3
    with_fx :reverb, mix: rrand(0.25,0.6) do
      use_bpm  bpming
      if one_in(3)
        sample :tabla_ghe4, beat_stretch: dice(4)/8 + 1 if spread(17,24).tick
        sleep [0.25,0.5,0.75,1].choose
      else one_in(2)
        sample :tabla_ghe2, beat_stretch: 3, rate: -1.25 if spread(5,12).tick
        sleep [0.5,2].choose
        sample :tabla_ghe3 if spread(19,24).tick
        sleep [1,2].choose
      end
    end
  end
  
end

def bd (looping,bpming)
  use_random_seed (Time.now.to_i)/5
  live_loop looping, amp: 1 do
    use_bpm bpming
    sample :bd_808,attack: dice(4) if spread(5,12).tick
    sleep ([2,1,0.5].choose)
    sample :bd_fat,slice: 4 if spread(7,12).tick
    sleep([0.5,1,2].choose)
  end
end


live_loop :mixing do
  use_random_seed (Time.now.to_i)/3
  
  bpm1 = [12,60,30]
  bpm2 = [90,45,20]
  bpm3 = [120,60,30,15]
  
  bd(:bd,bpm3.choose)
  starting(:start,bpm1.choose)
  bassing(:bass,bpm2.choose)
  sleep [0.5,1,2].choose
end


live_loop :mixing2 do
  use_random_seed (Time.now.to_i)/2
  
  bpm1 = [30,60,90]
  bpm2 = [10,20,30,180]
  bpm3 = [120,10,75]
  
  with_fx :vowel do
    bassing(:bass2,bpm3.choose)
    starting(:start2,bpm2.choose)
    bd(:bd2,bpm1.choose)
  end
  
  
  sleep [0.5,1,2].choose
end

live_loop :mixing3 do
  
  
  use_random_seed (Time.now.to_i)/5
  
  bpm1 = [30,60,90,120]
  bpm2 = [240,400,170, 7]
  bpm3 = [10,75,110, 47]
  
  with_fx [:krush,:flanger,:whammy].tick, mix: rrand(0.1,0.6) do
    starting(:start3,bpm2.choose)
    bassing(:bass3,bpm1.choose)
    bd(:bd3,bpm3.choose)
  end
  
  sleep [0.5,1,2].choose
end


live_loop :cueing do
  use_random_seed (Time.now.to_i)
  with_fx :ixi_techno, mix: 0.35 do
    use_bpm 5
    sample [:bd_zome,:ambi_piano,:elec_bong].choose ,beat_stretch: 12, rate: -0.5
    cue [:mixing3,:mixing2].tick, decay: 5, sustain: 3
    sleep [0.5,1,4].choose
  end
end
```

### SonicPi - First Entry

```ruby
#Recursion Challenge
#Aided with https://www.tutorialspoint.com/how-does-recursion-work-in-ruby-programming
# 3 Minute Version for the OST Soundtrack


live_loop :addition do
  
  
  # recursion call being the function calling a new sub string
  def Addition(arr)
    return 1 if arr.length == 0
    arr[0] + Addition(arr[1..-1])
  end
  
  #variables that will be used in the Method Call below
  #Dice is a randomizer that functions as a dice roll
  a = dice(8)
  b = dice(8)
  c = dice(8)
  d = 2
  e = 3
  
  #Calling the Method to aid with sound design
  smacks = Addition([a,b,c,d,e])
  notes = Addition([a,b,d])
  
  #sound elements
  if notes % 2 == 0
    
    with_fx :flanger, mix: rrand(0.3,0.5) do
      with_fx :echo do
        use_synth [:pretty_bell, :kalimba, :prophet].choose
        play notes * 4, attack: dice(6), decay: dice(2)
      end
    end
  else
    
    with_fx :whammy, mix: rrand(0.2,0.6) do
      with_fx :gverb do
        use_synth [:pretty_bell, :kalimba, :bass_highend].choose
        play notes * 4, attack: dice(6), sustain: dice(3)
      end
    end
  end
  
  if smacks > 10
    
    if notes > 8
      
      
      with_fx :vowel ,voice: dice(4), mix: rrand(0.1,0.97) do
        sample :drum_bass_hard, decay: smacks / 12 if spread(smacks/4, smacks/3).look
      end
      
    else
      with_fx :ixi_techno, mix: rrand(0.25,0.75) do
        sample :drum_bass_soft, decay: smacks / 12 if spread(smacks/4, smacks/3).look
      end
    end
    
  else
    
    if notes > 8
      
      with_fx :ping_pong do
        time_warp -0.2 do #adding timewarp
          with_fx :whammy, amp: dice(3) do
            sample :tabla_ghe1, decay: smacks / 12 if spread(smacks/4, smacks/3).look
          end
        end
      end
      
      
    else
      with_fx :ping_pong,pre_mix: 0.5, mix: 0.7 do
        time_warp -1.5 do #time warp 2
          with_fx :ixi_techno, mix: 0.75 do
            sample :tabla_ghe3, decay: smacks / 12 if spread(smacks/4, smacks/3).look
          end
        end
      end
    end
    
    
  end
  
  
  #print out numbers
  puts Addition([a,b,c,d,e])
  puts notes
  
  sleep [0.25,0.5,1,2,4].choose
end
```
