# MinaCoding2023_MovingPeople

# EmojionalMovements

For the MinaCoding Prompt: **Moving People.** I will be remixing **EmojionalReflections** which was originally made with **P5Js and SonicPi** for the Genuary prompt of **Reflections :** [https://blog.illestpreacha.com/genuary2023reflections](https://blog.illestpreacha.com/genuary2023reflections)

With the **Hydra** addition, there will be more movements as

"The emojis will be reflecting off each other, through their various movement

* Reflecting on both the placement of other emojis but also with how they are feeling themselves
    
* Also, have two Emojional Reflection Sketches side by side to represent the waves of which reflections may come in
    
* The music will also have various tempo changes to reflect the different reflection stages of the mind of each emoji " - **EmojionalReflections Blurb**
    

## Video

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

## Poem

```ocaml
Sometimes they are colourful, sometimes they are gray
sometimes they are moving, sometimes they just stay
but the Emojional Reflections
are part of a digital introspection
As the reflections become in sync
in sync with their movements
in sync with their achievements
as the inner depths
are seen through their outer steps
```

## Code

### Hydra Code

```javascript
s0.initScreen();
src(s0)
	.modulateRotate(src(s0)
		.repeat(3, 3)
		.kaleid([4, 3, 2, 1.099, 2, 3.4]))
	.mult(src(s0)
		.diff(osc(20.273, 0.001, 0.541))
		.rotate(1.036))
	.pixelate([200, 400], [400, 800, 1600, 1000])
	.blend(s0, 0.799)
	.scrollX(0.1, [0.1,-0.35,0.3,0.25,-0.2])
    .scrollY([0.25,-0.5],[0.25,-0.35,0.45])
	.repeat(2,[2,3,4,5])
	.scale([1.25, 2, 0.75])
	.blend(s0)
	.modulateRotate(src(s0)
		.scale(3, () => 1.05 + 0.1 * Math.sin(0.7088 * time)))
	.out(o0);
frame = 30;
speed = 2;
```

### **P5JS Code**

```javascript
/*

Reflecting feelings is determining the feelings and emotions in a person's verbal and body language and stating (or reflecting) those feelings back to the person or client.

*/

function setup() {
  background(100,90,200)
  createCanvas(800, 800);
  textSize(600)
  textAlign(CENTER)
  text('😡',width/2,height/2)
  text('😡',width/2,height/1.5)
  text('😡',width/2,height/1.25)
  textSize(400);
  textAlign(CENTER)
  text('🙃',width/2,height/2)
  textSize(200)
  text('😊',width/2,height/2)
}

function draw() {
 
  imageTweak()
  
  textSize(126);
  textAlign(CENTER)
  if (second() % 30 > 15)
    {
  text('😁', width/3 + sin(second() % 30 * 3), height/2 + random(-100,200));
  text('😁', abs(width -(width/3 + sin(second() % 30 * 3))), height/2 + random(-100,200));
  text('😒', width/2 + random(-100,200), height/2 - second() % 100 * 2);
  text('😭', width/4 - (second() % 45) * 5, height/1.5 - second() % 200 * 2);
    }
  else{
  text('😤', width/2 - second() % 30, height/2);
  text('😧', width/2, height/2 + second() % 100 * 2);
  text('😧', width/1.5, abs(height + (height/2 + second() % 100 * 2)));
  text('😭', width/4, height/1.5 - second() % 100 * 2);
  text('😭', width/3, height/4 - second() % 100 * 2);
  }
}



function imageTweak()
{
 filter(BLUR, random(2,8))
  
  if (second() % 40 > 17)
  {
    filter(GRAY)
  }
  
  if (second() % 30 > 15)
  {
   filter(DILATE); 
  }
  else
    {
    filter(ERODE);
    } 
}
```

### **SonicPi Code**

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

def soundtrack(looping)
  live_loop looping 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(6)
    b = dice(6)
    c = dice(6)
    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,:vowel].choose, mix: rrand(0.3,0.5) do
        with_fx :echo do
          use_synth [:pretty_bell, :kalimba, :prophet].choose
          play notes * 4, attack: dice(6)
        end
      end
    else
      
      with_fx [:whammy,:gverb].choose, mix: rrand(0.2,0.6) do
        with_fx :gverb do
          use_synth [:chipbass, :kalimba, :prophet].choose
          play notes * 4, attack: dice(6)
        end
      end
    end
    
    if smacks > 10
      
      if notes > 8
        
        with_fx :vowel ,voice: dice(4) do
          sample :drum_bass_hard, decay: smacks / 12 if spread(smacks/4, smacks/3).look
        end
        
      else
        with_fx :ixi_techno, mix: 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 :vowel do
          sample :tabla_ghe1, decay: smacks / 12 if spread(smacks/4, smacks/3).look
        end
        
      else
        with_fx :ixi_techno, mix: 0.75 do
          sample :tabla_ghe3, decay: smacks / 12 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].choose
  end
end

soundtrack(:addition)
soundtrack(:addition1)
soundtrack(:addition2)
```
