MinaCoding2023_Food

MinaCoding2023_Food

Veggie&Sweets, A DipInCode Story

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