Creative Coder/Multimedia Artist/Performative Programmer : Engineering Thru Creative Means and Providing Experiences
Veggie&Sweets
Today's MinaCoding Prompt is Food. I will be coding with SonicPiand 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_technodo
live_loop :PeachCobbler1do
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
endend
with_fx :krush, mix: PeachCobbler["x2"].to_f do
live_loop :PeachCobbler2do
use_bpm PeachCobbler["Blue"].to_f
with_fx :reverbdo
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
endendend
with_fx :ping_pongdo
live_loop :PeachCobbler3do
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
endend#.ceil to round up
with_fx :vowel,voice: dice((PeachCobbler["Saturation"].to_f % PeachCobbler["Hue"].to_f).ceil()) do
live_loop :PeachCobbler4do
use_bpm PeachCobbler["Red"].to_f
with_fx :reverbdo
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
endendend