MinaCoding2023_MovingPeople

MinaCoding2023_MovingPeople

Jun 13, 2023ยท

3 min read

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

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

Poem

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

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

/*

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

#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)
ย