Strudelify

Baba Is You OST - Baba Is You Theme

Arvi Teikari

KeyA majorTempo62 bpm
0:00/0:00
// Baba Is You OST - Baba Is You Theme — Arvi Teikari
// 62 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5749148; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 56 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(62/4)

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

// chords · xylophone · "Xylophon"
const xylophone = note(`<
  ~@2 A B C@2 D@2 E F G H D@3 I C@4 D@4 J ~@5 A B C@2 D@2 E F G H D@3 I C@4 D@4 J ~@3
>`.pickRestart({
  A: "~@6 b5 ~@7 f#5 ~", B: "~@6 b5 ~@7 [d5,f#5] ~", C: "~@3 d5 f#5 e5 b5 ~@4 d6 ~ c#6 a5 ~",
  D: "~@3 d5 f#5 e5 [a5,b5] ~@4 d6 ~ [c#6,d6] [f#5,a5] ~", E: "~@3 a5 f#5 f#6!2 ~@4 b5 ~ [d5,g#5] [e5,g#5] ~",
  F: "~@3 a4 f#4 f#5!2 ~@4 b5 ~ [e4,g#5]!2 ~", G: "~@4 [e5,g#5] ~ [f#5,a5] ~@3 a5 ~ d5 ~ [d5,f#5] ~",
  H: "b4 ~ d6 ~ [a5,e6] ~ [g#5,d6] ~@3 [g#4,e5] ~ [b4,g#5] ~ [b4,a5] ~", // A5 G#dim C#m E B7
  I: "e4@3 d5 f#5 e5 [a5,b5] ~@4 d6 ~ [c#6,d6] [f#5,a5] ~", J: "e4@3 ~@13",
})).s("gm_xylophone").gain(0.3)

// chords · epiano1 · "Elektrisches Piano"
const epiano1 = note(`<
  A@6 B C D E F G C@3 H I J K L C@3 M N O P O A@6 B C D E F G C@3 H I J K L C@3 M N O P O
>`.pickRestart({
  A: "e3@3 ~@5 d3@3 ~@2 b2@3", B: "[e3,e4]@3 ~@5 [d3,b3]@3 ~@2 b2@3", C: "[e3,b3]@3 ~@5 [d3,b3]@3 ~@2 b2@3",
  D: "[c#3,f#3]@3 ~@2 a3 ~@2 [b2,e3]@3 ~@5", E: "[c#3,f#3]@3 ~@5 [d#3,g#3]@3 ~ [e3,b3]@3 ~",
  F: "d3@3 ~@5 a2@3 ~@3 d2@2", G: "b2@3 ~@5 e2@3 ~@5", H: "[e3,b3,e4]@3 ~@5 [d3,b3]@3 ~@2 b2@3",
  I: "[e3,b3,e4]@3 d4 f#4@2 g4@2 [d3,b3,e4]@3 ~@3 d4 c#4, ~@13 b2@3", // E5 E7
  J: "[e3,b3]@3 ~ g#3@2 a3@2 [d3,b3]@3 ~@2 d4 e4 [b3,f#4], ~@13 b2@3", // E5 G B5
  K: "[e3,b3,e4]@3 ~ g#4 [e4,a4]@2 b4 [d3,b3,d5]@3 ~ d4!2 c#4 d4, ~@13 b2@3", // E5 A5 G
  L: "[e3,b3,e4]@3 ~ e4 d4@2 b3 [d3,e3,b3]@3 ~@3 a3 c#4, ~@13 b2@3", // E5 E7
  M: "[e3,b3]@3 ~@5 [d3,b3]@4 ~@2 d4@2, ~@6 c#4 ~, ~@13 b2@3", // E5 G
  N: "b3 ~ e4 b3 e4 b3 e4 b3 d4 a3 d4 a3 d4 b3 [g#3,b3] d4, [e3,e4]@3 ~@5 [d3,b3]@3 ~@2 b2@3, ~ b3@2 ~@13", // G#m E G
  O: "[b3,e4] ~ e4 b3 e4 b3 e4 b3 d4 a3 d4 a3 d4 [b3,b4]!2 d4, e3@3 ~@5 [d3,b3]@3 ~@2 b2@3, ~ b3@2 ~@13", // E5 B G
  P: "[b3,e4] ~ e4 b3 e4 b3 e4 b3 d4 a3 d4 a3 d4 b3 [g#3,b3] d4, e3@3 ~@5 [d3,b3]@3 ~@2 b2@3, ~ b3@2 ~@13", // E5 G#m G
})).s("gm_epiano1").gain(0.3)

// drums · snare
const snare = s("sd").struct("<~@2 A@2 B@6 C ~ B@12 ~@2 D@2 ~@2 A@2 B@6 C ~ B@12 ~@2 D@2>".pickRestart({
  A: "~@2 x ~@4 x ~@2 x ~@5", B: "~@2 x ~ x!2 ~ x ~@2 x ~ x!2 ~@2", C: "~@7 x ~@2 x ~@5", D: "~@2 x ~@4 x ~@2 x ~@4 x",
})).gain(0.2)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  [~@3 x ~ x ~@2 x ~@2 x ~ x ~ x]
  [x ~@2 x ~ x ~@2 x ~@2 x ~ x ~ x]!25
  [x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2]!2
  [~@3 x ~ x ~@2 x ~@2 x ~ x ~ x]
  [x ~@2 x ~ x ~@2 x ~@2 x ~ x ~ x]!25
  [x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2]!2
>`).gain(0.2)

stack(xylophone, epiano1, snare, mid_tom)

More by Arvi Teikari