Code Sketch
happy birthday tune by sanavi pawar
Category: Programming
clear()
// =====================================================
// VIRTUAL STRINGS (ULTRA-LOUD HAPPY BIRTHDAY)
// =====================================================
// Dark studio background to focus completely on the strings
setBackground(ColorMaker.hsl(222, 0.40, 0.08))
// -----------------------------------------------------
// UI Text Labels
// -----------------------------------------------------
val title = Picture {
setPenColor(white)
setPenFontSize(28)
write("HAPPY BIRTHDAY")
}
title.setPosition(-120, 220)
draw(title)
val subtitle = Picture {
setPenColor(ColorMaker.rgb(255, 180, 50))
setPenFontSize(13)
write("Playing automatic birthday melody at maximum volume...")
}
subtitle.setPosition(-165, 190)
draw(subtitle)
// =====================================================
// MATHEMATICALLY SPACED VISUAL STRINGS
// =====================================================
val startX = -100
val startY = -140
val stringLen = 300
val spacing = 40
val clickPad = 12
var i = 0
repeat(6) {
val string = Picture {
setFillColor(ColorMaker.rgba(0, 0, 0, 0)); setPenColor(noColor)
repeat(2) { forward(stringLen); right(90); forward(clickPad * 2); right(90) }
setPosition(clickPad, 0); setPenColor(ColorMaker.rgb(225, 185, 120)); setPenThickness(3.5 - (i * 0.4)); forward(stringLen)
}
string.setPosition(startX + (spacing * i) - clickPad, startY)
draw(string)
i = i + 1
}
invisible()
// =====================================================
// ULTIMATE 24-LAYER ACOUSTIC BIRTHDAY ENGINE
// =====================================================
// Staccato notation for the complete Happy Birthday melody
val birthdayMelody = "X[Volume]=16383 " +
"C4i C4i D4q C4q F4q E4h " + // Happy Birthday to you
"C4i C4i D4q C4q G4q F4h " + // Happy Birthday to you
"C4i C4i C5q A4q F4q E4q D4q " + // Happy Birthday dear friend
"A#4i A#4i A4q F4q G4q F4h" // Happy Birthday to you
// Stacking 24 parallel tracks to push the acoustic guitar notes to maximum volume
val birthdayScore = MusicScore(
Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody),
Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody),
Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody),
Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody),
Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody),
Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody), Melody("Guitar", birthdayMelody)
)
// Play all 24 audio layers at once on execution startup
playMusic(birthdayScore)