Strudelify

time to say goodbye

Twenty One Pilots

KeyG majorTempo87 bpm
0:00/0:00
// time to say goodbye — Twenty One Pilots
// 87 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 58, 4/4 at bar 58) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5915841; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 69 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(87/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 · violin · "Smuikas"
const violin = note(`<
  A@7 B@2 C D E F C D E F G H I J G H I J ~@8 G H I J G H I J ~@12 G H I J K@4 L@4 M N@2 O
>`.pickRestart({
  A: "[~@23 d4@9 g4@19 ~ f#4@5 a4@4 g4@29 g4@5 a4@5 b4@29 a4@3 c5@3 b4@3 ~ g4@14 g5@5 f#5@3 d5@3 g5@3 ~]/7",
  B: "[f#5@3 d5@3 b4@3 d5@19 ~ a4@3 c5@3 b4@3 a4@3 ~ g4@3 f#4@3]/2", C: "d5@2 g5@4 f#5 a5", D: "g5@6 g5 a5",
  E: "b5@9 a5 c6 b5", F: "g5@9 g6@3 f#6@2 d6@2 g6@2 f#6@2 d6@2 b5@2", G: "d4@2 g4@4 f#4 a4", H: "g4@6 g4 a4",
  I: "b4@9 a4 c5 b4", J: "g4@9 g5@3 f#5@2 d5@2 g5@2 f#5@2 d5@2 b4@2",
  K: "[g4@12 e4@6 a4@12 g#4@3 b4@3 a4@18 a4@3 b4@3 c#5@18 b4@2 d5@2 c#5@2 a4@9 a5@3]/4",
  L: "[g#5@2 e5@2 a5@2 g#5@2 e5@2 c#5@2 e4@6 a4@12 g#4@3 b4@3 a4@18 a4@3 b4@3 c#5@18 b4@2 d5@2 c#5@2 a4@9 a5@3]/4",
  M: "g#5 e5 a5 g#5 e5 c#5 f#5@6", N: "[g#5 a5@3]/2", O: "a5 ~",
})).s("gm_violin").gain(0.3)

// chords · piano · "Pianinas"
const piano = note(`<
  A@7 B@2 C D C D E F G H C D C D C D C D I J K L I J K L M N M O P Q R S I J K L I J K L T U T V T U T W X Y Z AA AB Y
  Z AA AC AD AE AF
>`.pickRestart({
  A: "[~@32 [d3,g3,b3]@9 ~@11 [d3,f#3,a3]@9 ~@10 [e3,g3,b3]@9 ~@10 [e3,g3,c4]@9 ~@11 [d3,g3,b3]@9 ~@10 [d3,f#3,a3]@9 ~@10 [e3,g3,b3]@9 ~ c2@10, ~@23 g2@18 ~ d2@18 ~ e2@18 ~@2 c2@18 ~ g2@18 ~ d2@18 ~@2 e2@18 ~@11]/7", // G D Em C G D Em
  B: "[[e3,g3,c4]@9 ~@10 [d3,g3,b3]@9 ~@10 [d3,f#3,a3]@9 ~, ~@9 g2@18 ~@2 d2@18 ~]/2", // C G D
  C: "g2@2 ~ [d3,g3,b3]@3 d2@2 ~ [d3,f#3,a3]@3, ~@5 g2@7 ~@5 d2@7", // G D
  D: "e2@2 ~ [e3,g3,b3]@3 c2@2 ~ [e3,g3,c4]@3, ~@5 e2@7 ~@5 c2@7", // Em C
  E: "g5@5 g2 [d3,g3,b3,g5]@6 g5@5 d2 [d3,f#3,a3,g5]@6, g2 ~@2 d2 ~@2", // G D
  F: "g5@5 e2 [e3,g3,b3,g5]@6 g5@5 c2 g5@3 a5@3, e2@2 ~@4 c2@2 ~ [e3,g3,c4]@3", // Em C
  G: "b5@5 g2 [d3,g3,b3,b5]@6 b5@5 d2 a5@2 c6@2 b5@2, g2@2 ~@4 d2@2 ~ [d3,f#3,a3]@3", // G D
  H: "g5@5 e2 g5@3 g6@3 f#6@2 d6@2 ~ c2 f#6@2 d6@2 b5@2, e2@2 ~ [e3,g3,b3]@3 c2@2 g6 [e3,g3,c4]@3", // Em C
  I: "[g5,g6]!4, [g1,g2]@11 ~ [d1,d2]@11 ~", // G D
  J: "[g5,g6]@2 [g5,g6]@2 [c1,c2,g5,g6]@2 [g5,g6] [a5,a6], [e1,e2]@11 ~@7 [c1,c2]@6", // G C5 G A E C
  K: "[b5,b6]@3 [b5,b6]@3 [b5,b6]@3 [a5,a6] [c6,c7] [b5,b6], [g1,g2]@11 ~ [d1,d2]@11 ~", // B A C B G D
  L: "[g5,g6]@6 [g5,g6]@3 [g6,g7]@3 [f#6,f#7]@2 [d6,d7]@2 [g6,g7]@2 [f#6,f#7]@2 [d6,d7]@2 [b5,b6]@2, [e1,e2]@11 ~ [c1,c2]@6 ~@6", // G F# D G F# D B E …
  M: "g2@11 ~ d2@11 ~", N: "e2@11 ~ c2@6 c2@6", O: "e2@11 ~ c2@6 ~@6",
  P: "[g5,g6]@2 [g5,g6]@2 [g5,g6]@2 [f#5,f#6] [a5,a6], g2@11 ~ d2@11 ~", // G F# A
  Q: "[g5,g6]@2 [g5,g6]@2 [c2,g5,g6]@2 [g5,g6] [a5,a6], e2@11 ~@7 c2@6", // G C5 G A
  R: "[b5,b6]@3 [b5,b6]@3 [b5,b6]@3 [a5,a6] [c6,c7] [b5,b6], g2@11 ~ d2@11 ~", // B A C B
  S: "[g5,g6]@6 [g5,g6]@3 [g6,g7]@3 [f#6,f#7]@2 [d6,d7]@2 [g6,g7]@2 [f#6,f#7]@2 [d6,d7]@2 [b5,b6]@2, e2@11 ~ c2@6 ~@6", // G F# D G F# D B
  T: "b5@2 g5 d5@2 g5 b5@2 g5 d5@2 g5 a5@2 f#5 d5@2 f#5 a5@2 f#5 d5@2 f#5, [g1,g2]@11 ~ [d1,d2]@11 ~", // G D
  U: "b5@2 g5 e5@2 g5 b5@2 g5 e5@2 g5 c6@2 g5 e5@2 g5 c6@2 g5 e5@2 g5, [e1,e2]@11 ~ [c1,c2]@6 [c1,c2]@6", // E C
  V: "b5 g5 e5 b5 g5 e5 b5 g5 e5 b5 g5 e5 c6 g5 e5 c6 g5 e5 c6 g5 e5 c6@3, [e1,e2]@11 ~ [c1,c2]@6 ~@6", // E C
  W: "b5 g5 e5 b5 g5 e5 b5 g5 e5 b5 g5 e5 c6 g5 e5 c6 g5 e5 c6 g5 e5 c6 g5 e5, [e1,e2]@11 ~ [c1,c2]@6 ~@6", // E C
  X: "[g2,g3,g5,g6]@11 ~ [a5,a6]@6 [a5,a6]@6, ~@12 [a1,a2]@11 ~", // G A
  Y: "[a5,a6]@2 [g#5,g#6] [b5,b6] [a5,a6]@2 [a5,a6]@2, [e1,e2]@11 ~ [f#1,f#2]@11 ~", // A G# B A E F#
  Z: "[d1,d2,a5,a6]@2 [a5,a6] [b5,b6] [c#6,c#7]@2 [c#6,c#7]@2, ~@6 [d1,d2]@6 [a1,a2]@11 ~", // D5 A B C# D A
  AA: "[c#6,c#7]@6 [b5,b6]@2 [d6,d7]@2 [c#6,c#7]@2 [a5,a6]@6 [a5,a6]@3 [a6,a7]@3, [e1,e2]@11 ~ [f#1,f#2]@11 ~", // C# B D C# A E F#
  AB: "[g#6,g#7] [e6,e7] [a6,a7] [g#6,g#7] [e6,e7] [c#6,c#7] [a5,a6]@3 [a5,a6]@3, [d1,d2]@11 ~ [a1,a2]@11 ~", // G# E A G# E C# A D …
  AC: "[g#6,g#7]@2 [e6,e7]@2 [a6,a7]@2 [g#6,g#7]@2 [e6,e7]@2 [c#6,c#7]@2 [a2,c#3,f#3,a5,c#6,f#6]@11 ~, [d1,d2]@11 ~@13", // G# E A G# E C# F#m D
  AD: "[b2,e3,g#3,b5,e6,g#6]@11 ~ [a2,c#3,f#3,a3,a5,c#6,f#6,a6]@11 ~", AE: "[d3,f#3,a3,d6,f#6,a6]@23 ~",
  AF: "[a2,c#3,e3,a3,a5,c#6,e6,a6]@11 ~@13", // A
})).s("gm_piano").gain(0.3)

stack(violin, piano)

More by Twenty One Pilots