Table of contents
Veggie&Sweets
Today's MinaCoding Prompt is Food. I will be coding with SonicPi and LiveCodingYoutube to make Veggie & Sweets, A DipInCode Story.
"DipInCode takes the concept of Hearing Colour, Seeing Sound while allowing the audience the pleasure of tasting colors and seeing taste while hearing it at the same time. Dip in Code: Kitchen of Hues, takes colors that happen to be named after food. To give an audiovisual experience that crosses over to an immersive culinary setting/Dining Experience as well. Every track isn’t a single color like its predecessor but will be named after meals that are also names of Colours. The soundtrack of each meal is Coded and visualized to make sure the meal is represented well. Enjoy that colorful byte."
For this version, I coded with SonicPi to depict the sounds that arise from the numbers found in the color, Peach Cobbler. While for the visuals, I took a lunch menu from a vegan restaurant in Utrecht, Netherlands and deconstructed it visually through code via an array of people cooking the ingredients on Youtube
Added an Oil Filter after
Video
Code
LiveCodingYoutube
//Overlayed the same code for visua effects
//used Ctrl & + / Ctrl _\& - while livecoding to play with squares
Salad = "PMjreZH1bzU"
SweetPotato = "GXZXq7cb8P0"
Fennel = "LW0OCAnBYq8"
SoyYogurt = "Mt-xStQNAtc"
Bread = "PdwYfbrPdos"
Tofu = "BqwSiXjGNx8"
create(3,3,Tofu)
cue([0,4],Bread)
cue(1,SoyYogurt)
cue([2,3],Fennel)
cue([5,7],SweetPotato)
cue([6,8],Salad)
cue
play(all)
speed([1,4,7],0.5)
speed([2,3,5,8],2.5)
speed([0,6],-1.7)
loop(7,20,40)
jump([4,6],10,20)
jump([1,2,3],15,40)
jump([0,7],15,20)
SonicPi
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
PeachCobbler = Dip[31]
#Dip[foodname][column].to_f , need to.f as it is to float
#0s and other ratios might have to be switch out to give flow to that track and make it run
with_fx :ixi_techno do
live_loop :PeachCobbler1 do
use_bpm PeachCobbler["Red"].to_f
sample :ambi_choir, rate: dice(PeachCobbler["Yellow"].to_f/PeachCobbler["Hue"].to_f) if spread(PeachCobbler["Blue%"].to_f,PeachCobbler["Green%"].to_f).tick
sample :perc_snap2,rate: rrand(PeachCobbler["y2"].to_f,PeachCobbler["Red"].to_f/PeachCobbler["Blue"].to_f) if spread(PeachCobbler["H-Lab1"].to_f,PeachCobbler["CIE-L"].to_f).reverse.mirror
sleep [PeachCobbler["x2"].to_f,PeachCobbler["Yellow"].to_f/PeachCobbler["Mangeta"].to_f,PeachCobbler["Saturation2"].to_f/PeachCobbler["Lightness"].to_f].choose
end
end
with_fx :krush, mix: PeachCobbler["x2"].to_f do
live_loop :PeachCobbler2 do
use_bpm PeachCobbler["Blue"].to_f
with_fx :reverb do
sample :perc_snap2, rate: rrand(PeachCobbler["y2"].to_f,PeachCobbler["Red"].to_f/PeachCobbler["Blue"].to_f) if spread(PeachCobbler["H-Lab1"].to_f,PeachCobbler["CIE-L"].to_f).reverse.mirror
sleep [PeachCobbler["x2"].to_f,PeachCobbler["Green%"].to_f/PeachCobbler["Blue%"].to_f].choose
end
end
end
with_fx :ping_pong do
live_loop :PeachCobbler3 do
use_bpm PeachCobbler["Green"].to_f
sample :tabla_ghe2, rate: dice(PeachCobbler["Yellow"].to_f/PeachCobbler["Hue"].to_f) if spread(PeachCobbler["Blue%"].to_f,PeachCobbler["Green%"].to_f).tick
sample :perc_snap2, decay: PeachCobbler["H-Lab2"].to_f, rate: rrand(PeachCobbler["y2"].to_f,PeachCobbler["Red"].to_f/PeachCobbler["Blue"].to_f) if spread(PeachCobbler["H-Lab1"].to_f,PeachCobbler["CIE-L"].to_f).reverse.mirror
sleep [PeachCobbler["x2"].to_f,PeachCobbler["Yellow"].to_f/PeachCobbler["Mangeta"].to_f,PeachCobbler["Saturation2"].to_f/PeachCobbler["Lightness"].to_f].choose
end
end
#.ceil to round up
with_fx :vowel,voice: dice((PeachCobbler["Saturation"].to_f % PeachCobbler["Hue"].to_f).ceil()) do
live_loop :PeachCobbler4 do
use_bpm PeachCobbler["Red"].to_f
with_fx :reverb do
sample :perc_snap2, rate: rrand(PeachCobbler["y2"].to_f,PeachCobbler["Red"].to_f/PeachCobbler["Blue"].to_f) if spread(PeachCobbler["H-Lab1"].to_f,PeachCobbler["CIE-L"].to_f).reverse.mirror
sample :ambi_choir, rate: dice(PeachCobbler["Yellow"].to_f/PeachCobbler["Hue"].to_f) if spread(PeachCobbler["Blue%"].to_f,PeachCobbler["Green%"].to_f).tick
sleep [PeachCobbler["x2"].to_f,PeachCobbler["Green%"].to_f/PeachCobbler["Blue%"].to_f].choose
end
end
end