# SciArtSeptember2023_BirdLike

# EmojionalBirds

For the 15th prompt of SciArtSeptember2023: Bird-Like, “**EmojionalBirds”** takes **Hydra, P5Js & SonicPi** Code with Emojis to showcase the sounds of the Avians on Zenthian.

Sound Remixed In SonicPI from Videoplasty:  “[https://videoplasty.com/sound-effects/spring-birds-chirping-sfx-310”](https://videoplasty.com/sound-effects/spring-birds-chirping-sfx-310”)

## Poem

```ocaml
Fly Little Birdie Fly
Fly with the Flock
As the Flock flies Around the Clock
Looking for new areas
Swooping Beyonds Barriers
Fly Little Birdie Sky High
```

## Video

<iframe width="560" height="315" src="https://www.youtube.com/embed/ieaA5Kws1kw?si=TUYLq7WtqbTyspqG"></iframe>

## Code

### Hydra

```javascript
s0.initScreen()

src(s0).scale([1.13,1.25,1.60].smooth()).repeat(()=>Math.cbrt(time % 7 + 3)).kaleid(()=> time % 5 + 1).diff(src(s0).scale(1.25)).blend(src(s0).scale(1.15)).modulateRotate(osc(1,3,1),0.5).out(o0)


speed = 0.135
```

### P5JS

```javascript
function setup() {
  background(100,90,200)
  createCanvas(displayWidth, displayHeight);
  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);
    } 
}

```
