# MinaCoding2023_Letters

# GoldenLetters

For the MinaCoding Prompt: **Letters**, I will be coding **GoldenLetters in**

[**play.ertdfgcvb.xyz**](http://play.ertdfgcvb.xyz) **, Hydra** and **SonicPi.**

## Design Process

The Letters and their movements are originally controlled by the code written in [**play.ertdfgcvb.xyz**](http://play.ertdfgcvb.xyz) as it is an ASCII Based environment**.** Then it begins to be further manipulated through **Hydra** to come up with the finished product.

The sound will be composed in a way to mimic the flow of the letters as seen on the screen via **SonicPi.**

## Video

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

## Code

### Play.ertdfgcvb.xyz

```javascript
/**
    @author illestpreacha remixed of the name game
    @title  Coordinates: x, y
    @desc   Use of coord.x and coord.y
    */

    const density1 = 'abcdef'

	const d = new Date();
	let seconds = d.getSeconds();

    export var settings = {
        backgroundColor : 'black',
        color           : 'orange',
        fontSize        : 72 - d % 20,
        cellWidth         : 22,
        fontWeight      : 'bold', 
        lineHeight        : 2,
        fps                : d % 5

    }


    export function main(coord, context, cursor, buffer) {
        // To generate an output return a single character
        // or an object with a “char” field, for example {char: 'x'}

        // Shortcuts for frame, cols and coord (x, y)
        const {cols, frame } = context
		const t = context.time * 0.0001
        const {x, y} = coord

        // -1 for even lines, 1 for odd lines
        const sign = ( Math.cbrt(y) * Math.hypot(x,y) * Math.imul(x) - context.frame % 80)/3 % frame * 2

        
        const index = (cols + y / x * sign) % density1.length / 1
        return density1[index]
            

    }
```

### Hydra

```javascript
s0.initScreen()

src(s0).scale(()=> (time % 6 + 1)/3).modulateKaleid(voronoi([1,2,4,5],3,1),0.6).blend(s0).out()

speed = 0.15
```

### SonicPi

```ruby
#late night thriller Soundscape

Effects = ring(:flanger, :ixi_techno,:gverb,:echo , :reverb,:echo, :compresser)


live_loop :chills do
  12.times do
    with_fx Effects.tick do
      use_synth :pretty_bell
      play choose([:A4,:B4, :Cs5, 45, 72]), attack: 0.4, release: 0.24
      sleep 1
    end
    sleep 0.25
  end
  sleep 0.5
end


live_loop :Dramatic do
  12.times do
    with_fx Effects.reverse do
      use_bpm choose([20,40,60])
      use_synth :prophet
      play choose([:F4,:B4, :Ds5, 24, 2, 1]), attack: 0.34, release: 0.24
      sleep 1
    end
    sleep 0.25
  end
  sleep 0.5
end

live_loop :Deeper do
  12.times do
    with_fx Effects.shuffle.tick do
      use_bpm 40
      use_synth choose([:supersaw,:dark_ambience])
      play choose([:F4,:B4, :Ds5]), attack: 0.7, release: 0.324
      sleep 1
    end
    sleep 0.25
  end
  sleep 0.5
end
```
