Genuary2024_Ascii+Remaking

Genuary2024_Ascii+Remaking

Ascii & Food

AsciiPeaks

ASCII Design

Playertdfgcvbxyz & Hydra were used for the ascii animation and for Re-Creation, I updated a previously Sonicpi composition meant to remake the meal of Almond Crusted Salmon with Honey Garlic through sound

Coded in #SonicPi #Hydra #Playertdfgcvbxyz

Poetry

Peaks and dips
Growth and slips
Flips and tweaks
Tweaks to sleep
Sleeping that is deep
In depth as the peaks
That tend to dips

Video

Code

play.ertdfgcvb - https://play.ertdfgcvb.xyz/#/1704848786805

/**

Illestpreacha: Ascii Peaks

Remix of the following 

@author illestprecha
@title Asciipeaks
@desc using the context.time as a counter for various variables

author ertdfgcvb
title  How to draw a circle

desc   Use of context.metrics.aspect
https://play.ertdfgcvb.xyz/#/src/basics/how_to_draw_a_circle
*/

import { length } from '/src/modules/vec2.js'

   export var settings = {
        backgroundColor : 'black',
        color           : 'gold',
           fontWeight      : 'bold', 
        lineHeight        : 2.5,
        fps                : 1
    }

export function main(coord, context, cursor, buffer) {

    const counter = context.time


    // contex.metrics.aspect holds the font (or cell) aspect ratio
    const aspectRatio = cursor.pressed ? 1 : context.metrics.aspect

    // Transform coordinate space to (-1, 1)
    // width corrected screen aspect (m) and cell aspect (aspectRatio)
    const m = Math.min(context.cols * aspectRatio, context.rows)
    const st = {
        x : (counter % 10 + 1) % 5 * (coord.x - context.cols / 2) / m * aspectRatio, // apply aspect    

        y :(counter % 15 + 1) % 7.5 *  (coord.y - context.rows / 2) / m
    }

    // Distance of each cell from the center (0, 0)
    const l = length(st)


    //Radius patterning

     if(counter % 45 > 30)
         {
    // counter is the radius 
    return l < (counter % 25 + 1)/20  ? 'Xo++oX' : '__'
         }
    else if (counter % 45 < 15)

        {
            return l < (counter % 20 + 1)/20  ? 'AbcCdA' : '++++'
        }
    else
        {
            return l < (counter % 30+ 1)/45  ? '+_+-+_+' : '0-0-0-0'
        }



}

Hydra

s0.initScreen()

src(s0).scale(0.85).diff(src(s0).modulateRotate(osc(3,1,1))).out()

speed = 0.25

SonicPi - 60% Slowdown Post Code + Filter

#reading of the DipInCodeFirstService
#for csvs larger than 10 mbs use the for each

#Transforming ALmong Crusted Salmon with Honey Garlic to Sound


require 'csv'

#naming the Dataset DipInCode and going to read the file
Dip = CSV.parse(File.read("C:/Colorscape/DipInCode/SonicPi_CodeBase/Model/DipInCode_FirstService.csv"), headers: true)

#Getting the Ingredients
Almond = Dip[0]
Crust = Dip[1]
Salmon = Dip[2]
Honey = Dip[3]
Garlic = Dip[4]
#Dip[foodname][column].to_f , need to.f as it is to float


live_loop :Salmon do
  use_random_seed Math.cbrt(Time.now.to_i)
  with_fx :ping_pong do
    with_fx :ixi_techno, mix: Salmon["x2"] do
      with_fx :vowel,voice: Salmon["Key"] ,mix: Salmon["y2"].to_f do
        use_bpm Salmon["Red"].to_f #turn to float
        sample [:ambi_sauna,:ambi_glass_hum].choose, beat_stretch: Salmon["Hue"].to_f if spread(Salmon["Lightness"].to_f,Salmon["Saturation2"].to_f).tick
        sample :drum_bass_soft, beat_stretch: Salmon["CIE-C"].to_f / Salmon["CIE-U"].to_f, amp: dice(Salmon["CIE-H"].to_f - Salmon["CIE-V"].to_f) if spread(Salmon["Mangeta"].to_f,Salmon["Yellow"].to_f).tick
        sleep [Salmon["H-Lab2"].to_f/Salmon["H-Lab3"].to_f,Salmon["Blue%"].to_f/Salmon["X"].to_f].choose
      end
    end
  end
end



live_loop :Crust do
  use_random_seed Time.now.to_i
  with_fx :ping_pong do
    with_fx :flanger, mix: Crust["x2"] do
      with_fx :whammy, pre_amp: Crust["CIE-A"],mix: Crust["y2"].to_f do
        use_bpm Crust["Red"].to_f #turn to float
        sample :elec_bong, rate: Crust["Yellow"].to_f/Crust["Mangeta"].to_f, beat_stretch: Crust["Red%"].to_f / Crust["Hue"].to_f if spread(Crust["Saturation2"].to_f,Crust["Lightness"].to_f).tick
        sample :tabla_dhec, beat_stretch: Crust["CIE-C"].to_f / Crust["CIE-U"].to_f, amp: dice(Crust["CIE-H"].to_f / Crust["CIE-V"].to_f) if spread(Crust["Mangeta"].to_f,Crust["Yellow"].to_f).tick
        sleep [Crust["H-Lab2"].to_f.abs/Crust["H-Lab3"].to_f,Crust["Blue%"].to_f/Crust["X"].to_f].choose
      end
    end
  end
end


live_loop :Almond do

  use_random_seed Math.cbrt(Time.now.to_i)

  with_fx [:distortion,:gverb].tick do
    with_fx :ping_pong, mix: Almond["x2"] do
      with_fx :vowel,amp: dice(Almond["CIE-B"].to_f),mix: Almond["y2"].to_f do
        use_bpm Almond["Red"].to_f #turn to float
        sample :bd_808, rate: Almond["Hue"].to_f / Almond["Saturation"].to_f, decay: Almond["Key"].to_f  if spread(Almond["Saturation"].to_f,Almond["Lightness"].to_f).tick
        sample :perc_bell2, beat_stretch: Almond["CIE-C"].to_f / Almond["CIE-U"].to_f, amp: dice(Almond["CIE-H"].to_f / Almond["CIE-V"].to_f) if spread(Almond["Mangeta"].to_f,Almond["Yellow"].to_f).tick
        sleep [(Almond["H-Lab2"].to_f.abs**2)*7/Almond["H-Lab3"].to_f,Math.hypot(Almond["Blue%"].to_f,Almond["H-Lab3"].to_f)/(Almond["X"].to_f)**6].choose
      end
    end
  end
end


live_loop :Garlic do
  use_random_seed Math.sqrt(Time.now.to_i)
  with_fx :bitcrusher do
    with_fx :whammy, mix: Garlic["x2"] do
      use_bpm Garlic["Red"].to_f #turn to float
      sample :bd_ada, beat_stretch: Garlic["Hue"].to_f if spread(Garlic["Lightness"].to_f,Garlic["Saturation2"].to_f).tick
      sample :ambi_piano, beat_stretch: Garlic["CIE-C"].to_f / Garlic["CIE-U"].to_f, amp: dice(Garlic["CIE-H"].to_f - Garlic["CIE-V"].to_f) if spread(Garlic["Mangeta"].to_f,Garlic["Yellow"].to_f).tick
      sleep [Garlic["H-Lab2"].to_f.abs/Garlic["H-Lab3"].to_f,Garlic["Blue%"].to_f/Garlic["X"].to_f].choose
    end
  end
end


live_loop :Honey do

  use_random_seed Math.hypot(Time.now.to_i,Time.now.to_i % 12)
  #use_random_seed Honey["Red"].to_f + Honey["Blue"].to_f + Honey["Green"].to_f

  with_fx [:distortion,:whammy].tick, mix: Honey["x2"] do
    with_fx :ixi_techno,mix: Honey["y2"].to_f do
      use_bpm Honey["Red"].to_f #turn to float
      sample :guit_harmonics, beat_stretch: Honey["Hue"].to_f if spread(Honey["Lightness"].to_f,Honey["Saturation2"].to_f).tick
      sample :elec_fuzz_tom, beat_stretch: Honey["CIE-C"].to_f / Honey["CIE-U"].to_f, amp: dice(Honey["CIE-H"].to_f - Honey["CIE-V"].to_f) if spread(Honey["Mangeta"].to_f,Honey["Yellow"].to_f).tick
      sleep [Honey["H-Lab3"].to_f/Honey["H-Lab2"].to_f].choose
    end
  end
end