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