# Mathober2025_MatrixRecursion

# BlobOfMatrix

For my 18th sketch of **Mathober2025** coded in **LiveCodingYoutube**, **BlobOfMatrix** takes the 14th prompt of ***“Augmented Matrix”*** and uses the speed function to represent the matrix of Blob while the audio is coded in **SonicPi** through “**Recursions” *(28th Prompt)***.

## Poetry

```ocaml
Blobs finding themselves
In the depths
The depths of the matrix
For this portion of their day trip
```

## Video

%[https://youtu.be/2fR1Rbrdqro] 

## Matrix Used

| X | Y | Z | B |
| --- | --- | --- | --- |
| 1 | 3 | 2 | 4 |
| 2 | 0 | 1 | 3 |
| 5 | 1 | 2 | 1 |

## Code

### LiveCodingYoutube

```javascript
//Matrix of Blob

x = "hf7TYZ2GFMM"
y = "t6Agzn64740"
z = "qJfHVJ9j2nU"
B = "glg82w2HTik"

create(3,4,x)
cue([0,4,8],x)
cue([1,5,9],y)
cue([2,6,10],z)
cue([3,7,11],B)

speed([0,6,11],1)
speed([4,2,9,10],2)
speed([1,7],3)
speed(8,5)
speed(5,0)
speed(3,4)

play(all)
```

### SonicPi

```ruby
#Recursion Challenge
#Aided with https://www.tutorialspoint.com/how-does-recursion-work-in-ruby-programming


live_loop :addition do
  
  use_random_seed Time.now.to_i / 2
  
  # recursion call
  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(4)
  b = dice(4)
  c = dice(4)
  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
  
  with_fx :flanger do
    with_fx :whammy do
      use_random_seed Time.now.to_i / 6
      use_synth [:pretty_bell, :kalimba, :prophet,:piano,:piano].choose
      play notes * 4, attack: dice(2)
    end
  end
  
  with_fx [:ixi_techno,:flanger].choose, mix: 0.95, phase: 2 do
    use_random_seed Time.now.to_i / 16
    with_fx :slicer, phase: rrand(0,8) do
      use_random_seed Time.now.to_i / 12
      with_fx :vowel do
        sample :drum_bass_hard, decay: smacks / 36 if spread(smacks/4, smacks/3).look
      end
    end
  end
  
  
  
  #print out numbers
  puts Addition([a,b,c,d,e])
  puts notes
  
  sleep [0.25,0.5,1,2,4,8].choose
end
```
