Strudelify

Baba Is You OST - Flag Is Win - Ending theme

Arvi Teikari

KeyA majorTempo62 bpm
0:00/0:00
// Baba Is You OST - Flag Is Win - Ending theme — Arvi Teikari
// 62 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5759422; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 36 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 · [...]/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.

// other · epiano1 · "Elektrisches Piano"
const epiano1 = note("<~@9 A B A C ~@4 A B A ~@16>".pickRestart({
  A: "~@3 [d4,d5] [f#4,f#5] [e4,e5] [a4,a5] ~@4 [d5,d6] ~ [c#5,c#6] [a4,a5] ~", // D F# E A D C# A
  B: "~@3 [d4,d5] [f#4,f#5] [e4,e5] [a4,a5] ~@4 [d5,d6] ~ [e5,e6] [c#5,c#6] ~", // D F# E A D E C#
  C: "~@3 [d4,d5] [f#4,f#5] [e4,e5] [a4,a5] ~@4 [d5,d6] ~ [e5,e6] [f#5,f#6] ~", // D F# E A D E F#
})).s("gm_epiano1").gain(0.3)

// chords · epiano1 · "Elektrisches Piano"
const epiano1_2 = note("<~ A B A C D@8 E F G H I@3 J K L M N O P Q R@2 S ~@5>".pickRestart({
  A: "[e3,b3,e4]@3 ~@5 [d3,b3,d4]@3 ~@2 b2@3", B: "[e3,b3,e4]@3 ~@5 [d3,b3,f#4]@3 ~@2 [b2,a4]@3",
  C: "[g2,g3,d4,b4]@3 ~@5 [a2,a3,d4,d5]@3 ~ [a2,d3]@3 ~", D: "[e3,b3,e4]@3 ~@5 [d3,b3,d4]@3 ~@2 [b2,b3]@3",
  E: "[f#3,c#4,f#4]@3 a3 ~ f#4!2 ~ [d4,g#4] ~ b3 g#3 ~@4, f#2 [e2,e3], ~ f#3 ~@2", // F#5 Ddim E
  F: "[f#3,c#4,f#4]@3 a3 ~ f#4!2 ~ [d#4,g#4] ~ b4 [b3,g#4]!2 ~@3, f#2 [g#2,g#3], ~ f#3 ~@2", // F#5 G#5 E G#
  G: "e4@3 ~ g#4 ~ [f#4,a4] g#4 b2@3 a4 d2@2 [d4,f#4] ~, c#3@8 a4 ~@3 d4 ~ d3@2", // F#m D
  H: "d4 ~ a3 ~ b4 ~ a4 ~@3 g#4 ~ b4 ~ d5 ~, [b2,f#3] [e3,b3]", I: "[e3,b3]@8 [d3,b3]@5 b2@3",
  J: "[g4,b4]@3 [g4,b4] [b4,d5] [g4,b4] [b4,d5] [g4,b4] [a#2,a#3]@2 [b4,d5] ~ [d5,f5] ~ [f#3,e4]@2, [g2,g3,d4]@8 [b4,d5] ~@2 [d3,d4]@3 [c#5,e5] ~", // G Bm G Bm G A# Bm Dm …
  K: "[f#4,c#5]@3 a4 f#4 [c#4,f#4] [c#4,f#4]@2 [e4,c#5] ~ [f#4,b4] [d4,g#4] ~ [d4,g#4] ~@2, [f#2,f#3] [e2,e3]", // F#5 C#m B5 Ddim F# E
  L: "[f#4,c#5]@3 a4 f#4 [c#4,f#4] [c#4,f#4]@2 [g#2,g#3]@2 b4 b3 b3@4, [f#2,f#3]@8 d#4 ~@2 b2@5, ~@11 g#4@2 ~@3", // F#5 G# F#
  M: "[c#3,e4]@3 g#4@2 [f#4,a4]@2 g#4 a4 ~@2 a4 [b3,d4] ~ [f#3,b3,d4] ~, ~ d3", // C#m F#m Bm
  N: "[f#3,b3,d4] ~ [f#3,b3] f#2 [b2,f#4,a4] ~ g#4 ~ e4 ~ e4 ~ g#4 ~ [d4,a4] ~, b2@2 ~@3 [f#2,b2]@3 e3@8, ~@2 [g#3,b3] b3", // Bm B5 B7 D5 B5 G#m
  O: "[b2,e3,e4] b3 [e3,e4] [b2,b3] [e3,e4] [b2,b3] [e3,e4] [b2,b3] [d3,d4] [a2,a3] [d3,d4] [a2,a3] [d3,d4] b3 [g#3,b3] b3, e2@3 ~@5 [d2,b2]@3 ~@2 b1@3, ~ b2@2 ~@13", // E5 E B E B E B D …
  P: "[b2,e3,e4] b3 [e3,e4] [b2,b3] [e3,e4] [b2,b3] [e3,e4] [b3,f#4] [d3,d4] [a2,a3] [d3,d4] [a2,a3] [d3,d4] [b3,f#4] [b3,a4] d4, e2@3 ~@5 [d2,b2]@3 ~@2 b1@3, ~ b2@2 ~@13", // E5 E B E B E B5 D …
  Q: "[b2,e3,e4] b3 [e3,e4] [b2,b3] [e3,e4] [b2,b3] [e3,e4] [b2,b3] [d3,d4] [a2,a3] [d3,d4] [a2,a3] [d3,d4] [a2,b3] [g#2,a3] [a2,b3], e2@3 ~@5 [d2,b2]@3 ~@2 b1@3, ~ b2@2 ~@13", // E5 E B E B E B D …
  R: "[[b3,e4] b2 [e3,e4] [b2,b3] [e3,e4] [b2,b3] [e3,e4] [b3,f#4] ~ d4 [a2,a3] [d3,d4] [a2,a3] [d3,d4] [b3,f#4] ~ [b3,a4] d4 e4 b3 ~ e4 b3 e4 ~ b3 e4 ~ b3 d4 a3 ~, e3@2 ~@7 [d3,b3]@3 ~@2 b2@4 ~@14, ~ b3@2 ~@29]/2", // E5 E B E B E B5 A …
  S: "d4 a3 ~@2 b3@2 b3 b3@6 ~@3, ~@3 d4@2 ~ g#3@2 ~@8",
})).s("gm_epiano1").gain(0.3)

// bass · contrabass · "Kontrabass"
const bass = note("<A ~@10 B@2 C D E F G@3 H I J K F ~@3 L@6 ~@2>".pickRestart({
  A: "[e2,b2,e3]", B: "e2@3 ~@5 d2@3 ~@2 b1@3", C: "f#2 e2", D: "f#2 g#2", E: "c#2@4 b1@2 d1 d2", F: "b1 e2",
  G: "e2@8 d2@5 b1@3", H: "g1@8 a#1@3 d2@3 f#2@2", I: "f#1 e1", J: "f#1@8 g#1@3 b1@5", K: "c#2 d2",
  L: "[[e1,e2,b2]@18 [e1,e2,b2]@23 [e1,e2,b2]@25 [e1,e2,b2]@25 ~@5]/6", // E5
})).s("gm_contrabass").gain(0.2)

// drums · snare
const snare = s("sd").struct("<~@4 A B C@19 ~@2 D E F ~@6>".pickRestart({
  A: "~@15 x", B: "x!2 ~ x ~ x ~ x", C: "~ x ~ x ~ x ~ x", D: "~@2 x ~@4 x ~@2 x ~@4 x", E: "~@2 x ~@4 x ~@3 x ~@4",
  F: "~ x ~@14",
})).gain(0.3)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  ~@3
  [~@2 x ~@4 x ~@2 x ~@3 x ~]
  [~@2 x ~@4 x ~@2 x ~@5]
  [~@4 x ~@7 x ~@2 x]!11
  [~ x ~ x]
  [~@4 x ~@7 x ~@2 x]!8
  ~@11
>`).gain(0.3)

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

stack(epiano1, epiano1_2, bass, snare, pedal_hat, mid_tom)

More by Arvi Teikari