Strudelify

Green Garden Night Theme

Daisuke Achiwa

KeyC majorTempo125 bpm
0:00/0:00
// Green Garden Night Theme — Daisuke Achiwa
// 125 bpm, 3/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5830730; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 40 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(125/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · piano
const piano = note("<A B A C A B A C D E F G H I J K L M N O P@2 Q R S T F U V W J X Y Z N AA AB@2 AC R>".pickRestart({
  A: "[c3,c6]@3 [g3,g5]@2 [c4,f5]@3 g3@3 c4@2 d4@3, ~@8 g5@5 ~@3", B: "g4@3 d4@2 c4@3 [d4,c5]@3 [c4,f5]@2 [g3,g5]@3",
  C: "g4@3 d4@2 c4@3 d4@3 c4@2 g3@3", D: "c3@3 g3@2 c4@3 g3@3 c4@2 d4@3, f5@15 ~",
  E: "g4@3 d4@2 c4@3 d4@3 c4@2 g3@3, e5@15 ~", F: "c3@3 g3@2 c4@3 g3@3 c4@2 d4@3",
  G: "~@3 d4@2 c4@3 d4@3 c4@2 g3@3, g4@5 c5@5 ~ d5@5", H: "a2@3 e3@2 a3@3 e3@3 a3@2 c4@3, f5@15 ~",
  I: "e4@3 c4@2 a3@3 c4@3 a3@2 e3@3, e5@15 ~", J: "a2@3 e3@2 a3@3 e3@3 a3@2 c4@3",
  K: "e4@3 c4@2 a3@3 c4@3 a3@2 e3@3, ~@5 f5@5 ~ g5@5", L: "f2@3 c3@2 f3@3 c3@3 f3@2 a3@3, g5@15 ~",
  M: "c4@3 a3@2 f3@3 a3@3 f3@2 c3@3, c5@15 ~", N: "f2@3 c3@2 f3@3 c3@3 f3@2 a3@3",
  O: "c4@3 a3@2 f3@3 a3@3 f3@2 c3@3, a4@5 c5@5 ~ d5@5",
  P: "[g2@3 d3@2 g3@3 d3@3 g3@2 c4@3 d4@3 c4@2 g3@3 c4@3 g3@2 d3@3, e5@25 ~@2 f5@5]/2",
  Q: "g2@3 d3@2 g3@3 d3@3 g3@2 b3@3, d5@15 ~", R: "d4@3 b3@2 g3@3 b3@3 d4@2 g4@3",
  S: "c3@3 g3@2 c4@3 g3@3 c4@2 d4@3, [f4,f5]@15 ~", T: "g4@3 d4@2 c4@3 d4@3 c4@2 g3@3, [e4,e5]@15 ~",
  U: "~@3 d4@2 c4@3 d4@3 ~@2 g3@3, [g3,g4]@5 [a3,a4]@5 ~ [c4,c5]@5", V: "a2@3 e3@2 a3@3 e3@3 a3@2 c4@3, [f4,f5]@15 ~",
  W: "~@3 c4@2 a3@3 c4@3 a3@2 e3@3, [e4,e5]@15 ~", X: "e4@3 c4@2 a3@3 c4@3 a3@2 e3@3, ~@5 [f4,f5]@5 ~ [g4,g5]@5",
  Y: "f2@3 c3@2 f3@3 c3@3 f3@2 a3@3, [g4,g5]@15 ~", Z: "~@3 a3@2 f3@3 a3@3 f3@2 c3@3, [c4,c5]@15 ~",
  AA: "c4@3 a3@2 f3@3 a3@3 f3@2 c3@3, [e4,e5]@5 [f4,f5]@5 ~ [g4,g5]@5", // E F G
  AB: "[g2@3 d3@2 g3@3 d3@3 g3@2 c4@3 d4@3 c4@2 g3@3 c4@3 g3@2 d3@3, [a4,a5]@25 ~@2 [b4,b5]@5]/2", // A B
  AC: "g2@3 d3@2 g3@3 d3@3 g3@2 b3@3, [g4,g5]@15 ~", // G
})).s("gm_piano").gain(0.3)

// bass · electric bass pick · "Bass Guitar"
const bass = note("<A@2 B@2 A@2 B@2 C@2 A@2 D@4 E@2 F G H@2 I J K@2 L M N@2 O P E@2 Q R H@2 I S>".pickRestart({
  A: "c2/2", B: "[f1@27 g1@5]/2", C: "[c2@27 g1@5]/2", D: "[a1@27 e1@5]/2", E: "[f1@27 c2@5]/2", F: "f2", G: "f1",
  H: "[g1@27 d2@5]/2", I: "g2 d2", J: "g1@5 d2@5 ~ g1@5", K: "[c2@27 g2@5]/2", L: "c3 g2", M: "c2@11 g1@5",
  N: "[a1@27 e2@5]/2", O: "a2 e2", P: "a1@11 e1@5", Q: "f2@11 c2@5", R: "f1@5 c2@5 ~ f1@5", S: "g1@5 d2@5 ~ g2@5",
})).s("gm_electric_bass_pick").gain(0.3)

stack(piano, bass)