Strudelify

Skillet Medley

Abakshin_Dima

KeyD majorTempo110 bpm
0:00/0:00
// Skillet Medley — Abakshin_Dima
// 110 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 69, 4/4 at bar 69, 2/4 at bar 79, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5906533; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 103 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(110/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 · cello · "Скрипки, Violin 2"
const cello = note(`<
  ~@4 A B C D E F G H I J K L M N O@2 P Q R@2 ~ S T U V W X Y H Z AA AB AC AD ~@2 AE AF AG AH AI AJ AK AL AM AN AO AP AQ
  AR AO AP AQ AR AS AT AU ~@3 AV AW AX AY AZ BA BB BC BD BE BF BG@2 ~@2 BH BI BH BI BJ BK BL BM ~ AV AW AX AY BN BO BP
  BQ BR BS BT@2 BU BV ~
>`.pickRestart({
  A: "b3!2", B: "g3!2", C: "e3!2", D: "d3!2", E: "b3@2 b3 b3@2 b3@8 ~@3", F: "g3@2 g3 g3@2 g3@8 ~@3", G: "e3!8",
  H: "d3!8", I: "b4 f#4 g4 f#4", J: "d4@2 c#4 d4 c#4@2 b3@2", K: "b3 f#3 g3 f#3", L: "d3@2 c#3 d3 c#3@2 b2@2",
  M: "~@2 b2@2 b2@2 b2 b2@2 c#3@2 c#3 c#3@2 b2@2", N: "~@2 b2@2 b2@2 b2 d3@2 c#3@2 d3 c#3@2 b2@2",
  O: "[~@2 b3@2 b3@2 f#4@4 b3@2 b3@2 e4@4 d4@2 c#4@2 b3@2 d4@2 c#4 ~ c#4@2 b3@2]/2",
  P: "~@2 b2!2 b2@2 b2 b2@2 c#3!3 c#3@2 b2@2", Q: "~@2 b2@2 b2@2 b2 d3@2 d3 c#3 d3 c#3@2 b2!2",
  R: "[~@2 b3@2 b3@2 f#4@4 b3@2 b3@2 e4@4 d4@2 c#4@2 b3@2 e4@2 d4 c#4 d4@4]/2", S: "b3 b3@2 b3 b3@2 b3@8 ~@2",
  T: "g3 g3@2 g3 g3@2 g3@8 ~@2", U: "e3@6 e3 f#3", V: "d3 a3", W: "b3 b3@2 b3 b3@2 b3@2 b3@2 b3@2 b3@2 b3@2",
  X: "g3 g3@2 g3 g3@2 g3@2 g3@2 g3@2 g3@2 g3@2", Y: "e3!16", Z: "b3 ~", AA: "e3@4 b2@3 e3", AB: "d3@4 a3@3 g3",
  AC: "c3 e3 d3 c3", AD: "b2@2 g3 f#3@2 e3 e3@2", AE: "b3@3 b3 b3@2 b3@2", AF: "b3@3 b3 g3@2 g3@2",
  AG: "~ b2 g3 f#3 e3@2 d3@2", AH: "g3 a3 g3 f#3@2 b2 g3 f#3", AI: "e3 f#3 g3 b3 a3 g3 f#3@2", AJ: "g3 a3 g3 f#3@4 ~",
  AK: "~ g3!2 f#3!2 g3!2 ~", AL: "~@2 g3!2 g3@2 f#3@2 f#3@2 g3@2 f#3@2 e3@2", AM: "f#3@3 e3@3 ~@2", AN: "~@5 g4!3",
  AO: "d5@2 c5 g4 a4 b4!2 ~", AP: "b4 a4 b4 a4 b4@2 b4 g4 a4@2 b4@2 a4@2 g4@2", AQ: "d5@2 c5@2 b4@3 g4",
  AR: "a4 b4 a4 a4@3 ~ g4", AS: "a4@4 b4@6 a4 a4@3 g4@2", AT: "a4@2 g4@8 g4 g4@3 f#4@2", AU: "g4 e4@4 ~@3",
  AV: "e3 b3 a3 c4", AW: "e3@2 b3@2 a3@2 g3 a3", AX: "e4 e4@3 b4 b4@3 a4 a4@3 c5 c5@3",
  AY: "e4 e4@3 b4 b4@3 a4 a4@3 ~@4", AZ: "e3!3 ~ e3@2 e3@2 ~@2 b2!2 b2@2 a2@2",
  BA: "~@2 b2@2 b2@2 a2@2 ~@2 b2!2 b2@2 a2@2", BB: "b2!3 d3 b2@2 a2@2 ~@8", BC: "~@6 e4!2 e4@2 f#4@2 g4@2 e4!2",
  BD: "e4@2 f#4@2 a4@2 g4@2 ~@2 b2!3 a2 a2@2", BE: "~ b2!3 b2@2 a2@2 ~@2 e3!2 e3@2 e3@2",
  BF: "g3!2 f#3@2 e3 f#3 e3@2 ~@8", BG: "[~@8 g4@2 f#4@2 e4@2 f#4 g4@3 f#4 e4 a4@2 g4@2 ~@8]/2",
  BH: "g4 e4!2 g4!2 e4 e4@2", BI: "e4!3 f#4 g4@2 f#4@2", BJ: "~ e4 e4@2 ~ e4 f#4@2", BK: "e4!3 f#4 g4 f#4 f#4@2",
  BL: "g4 f#4 e4 f#4 g4 f#4 e4@2", BM: "g4 f#4 f#4@2 g4 f#4 e4!2", BN: "~@2 e3!2 g3@2 f#3@2 e3@4 ~@4",
  BO: "~ e3!2 f#3 a3 g3 f#3!2", BP: "~@5 e3!3", BQ: "a3 g3 f#3 f#3@2 g3 e3@2", BR: "~@2 e3!2 g3@2 f#3 e3 a3@8",
  BS: "e3!3 f#3 g3 f#3 e3!2", BT: "~@4 g3 f#3 e3!2", BU: "g3@2 f#3@2 e3@2 e3 d3@8 ~", BV: "g4 f#4 f#4@2 e4@2 g4@2",
})).s("gm_cello").gain(0.33)

// chords · piano · "Фортепиано, Piano"
const piano = note(`<
  A B A C D E F G H I J K L M N O P Q R@2 S T U V W X Y Z AA AB AC AD AE AF F G AG AH AI AJ AK AL AM AN AM AO AP AQ AR
  AS AT AU AV AW AT AU AV AW AX AY AZ BA AZ BB BC BD BC BE BF BG BH BI BJ BK BL BM@3 BN BO BP BO BP BQ BR BS BT BU BC BD
  BC BE BV BW AM BX BV BY@5 BZ
>`.pickRestart({
  A: "g3 f#3 c#4 b3", B: "d4@2 c#4 b3 f#3@4", C: "d4@2 c#4 d4 d4@4", D: "[b2,b3]@15 ~", E: "[g2,g3]@15 ~",
  F: "[e2,e3]@15 ~", G: "[d2,d3]@15 ~", H: "b2 b3 b2 b3 b2 b3 b2 b3 b2 b3 b2 b3 b2 b3 b2 b3",
  I: "g2 g3 g2 g3 g2 g3 g2 g3 g2 g3 g2 g3 g2 g3 g2 g3", J: "e2 e3 e2 e3 e2 e3 e2 e3 e2 e3 e2 e3 e2 e3 e2 e3",
  K: "d2 d3 d2 d3 d2 d3 d2 d3 d2 d3 d2 d3 d2 d3 d2 d3", L: "b4!4 f#4!4 g4!4 f#4!4, [b2,f#3,b3]!4",
  M: "d4!4 c#4!2 d4!2 c#4!4 b3!4, [g2,d3,g3]!4", N: "b4!4 f#4!4 g4!4 f#4!4, [e2,b2,e3]!4",
  O: "d4!4 c#4!2 d4!2 c#4!4 b3!4, [d2,a2,d3]!4", P: "b3@2 b3@2 b3@2 b3!2 ~ c#4@2 c#4 [b3,c#4]@2 b3@2, [b2,f#3]@2 b3 ~",
  Q: "b3@2 b3@2 b3@2 ~@3 c#4@2 d4 [b3,c#4]@2 b3@2, [b2,f#3]@7 d4@2 ~@7, ~@3 b3 b3@2 ~@2", // Bsus2 B5
  R: "[[g2,g3] [g2,g3,b3]!2 [g2,g3]!2 [g2,g3,b3]!2 [g2,g3] [g2,g3] [g2,g3,b3,d4] [g2,g3,c#4] [g2,g3,b3] [g2,g3,d4] [g2,g3] [g2,g3,c#4] [g2,g3,b3], ~@6 [b3,f#4]@4 ~@4 [b3,e4]@4 ~@8 c#4 ~@5]/2", // G Gdim G G5 G Gdim G B5 …
  S: "b3@2 b3!2 b3@2 b3!2 ~ c#4!3 [b3,c#4]@2 b3@2, [b2,f#3]!2, ~@2 b3 ~", // Bsus2 B5
  T: "b3@2 b3@2 b3@2 ~@3 d4 c#4 d4 [b3,c#4]@2 b3!2, [b2,f#3]@7 d4@2 ~@7, ~@3 b3 [b2,f#3]@4, ~@2 b3 ~", U: "[g2,g3]!8",
  V: "[g2,g3]!6 [g2,g3]@2", W: "[b1,f#2,b2]!2 [b1,f#2,b2]@3 [b1,f#2,b2]@2 [b1,f#2,b2]@2 [a1,d2,g2]!3 [a1,d2,g2]@4",
  X: "b3 [b2,f#3,b3]@2 [b2,f#3,b3,d4] [b2,f#3,b3,e4] [b2,f#3,b3,d4] [b2,f#3,b3,c#4] [b2,f#3,b3,d4], f#4 ~", // B5 Bm Bsus4 Bm Bsus2 Bm
  Y: "[g2,d3,g3] [g2,d3,g3]@2 [g2,d3,g3,b3,d4] [g2,d3,g3,b3,e4] [g2,d3,g3,b3,d4] [g2,d3,g3,b3,c#4] [g2,d3,g3,b3,d4], g4 ~, b3@3 ~@5", // G5 G Em7 G
  Z: "[e2,b2,e3]!6 [e2,b2,e3,b3,e4] [e2,b2,e3,b3,f#4], [b3,a4] [b3,g4] [b3,f#4] ~", // E5 Esus2 B7 Em B5
  AA: "[d2,a2,d3]!2 [d2,a2,d3,b3,f#4]!2 [d2,a2,d3,b3,a4] [d2,a2,d3,b3,g4] [d2,a2,d3,b3,f#4] [d2,a2,d3,b3,g4], [b3,f#4] ~@3", // D5 Bm7 G Bm7 G B5
  AB: "[b2,f#3,b3]@2 [b2,f#3,b3] [b2,f#3,b3]@2 b3 [b3,d4]@2 [b3,e4]@2 [b3,d4]@2 [b3,c#4]@2 [b3,d4]@2, f#4 ~, ~@5 [b2,f#3]@8 ~@3", // B5 Bm E5 Bm Bsus2 Bm B5
  AC: "[g2,d3,g3]@2 [g2,d3,g3] [g2,d3,g3]@2 ~ [b3,d4]@2 [b3,e4]@2 [b3,d4]@2 [b3,c#4]@2 [b3,d4]@2, g4 ~, b3@5 [g2,d3,g3]@8 ~@3", // G5 Bm E5 Bm Bsus2 Bm G5
  AD: "[e2,b2,e3]!16, [b3,a4]@2 [b3,g4]@2 [b3,f#4]@2 [b3,e4] [b3,f#4]", // E5 B7 Em B5 E5 B5
  AE: "[d2,a2,d3]!16, [b3,f#4]@2 [b3,f#4]!2 [b3,a4] [b3,g4] [b3,f#4] [b3,g4]", // D5 B5 B7 Em B5 Em
  AF: "[b1,f#2,b2]@2 ~@2 [b1,f#2,b2]@2 ~@2 [b1,f#2,b2] ~ [b1,f#2,b2]@6, [b3,f#4] ~", AG: "[c2,c3]@15 ~",
  AH: "[b1,b2]@15 ~", AI: "g5@2 b4@2 c5@2 b4@2 g5@2 c5 d5 c5@2 b4@2, [e2,e3]@15 ~",
  AJ: "g5@2 b4@2 c5@2 [c3,c4,b4]@2 g5@2 f#5 g5 f#5 e5 c5 b4, [c3,c4]@3 ~ [b2,b3]@2 [b2,b3]@2", // Cmaj7 C B
  AK: "g5@2 b4@2 c5@2 [e2,b2,e3,b4]@2 g5@2 c5 d5 c5@2 b4@2, [e2,b2,e3]@3 ~ [e2,b2,e3]@2 [e2,b2,e3]@2", // E5
  AL: "g5@2 b4@2 c5@2 [c2,g2,c3,b4]@2 g5@2 f#5 g5 f#5 e5 c5 b4, [c2,g2,c3]@3 ~ [b1,f#2,b2]@2 [b1,f#2,b2]@2", // Cmaj7 C5 B5
  AM: "[e2,b2,e3]@15 ~", AN: "[c2,g2,c3]@3 [b1,f#2,b2]@4 ~", AO: "[c2,g2,c3]@3 [b1,f#2,b2]@2 [b1,f#2,b2]!3",
  AP: "[e2,b2,e3]@11 ~@3 [e2,b2,e3]@2", AQ: "[c2,g2,c3]@15 ~", AR: "[b1,f#2,b2]@3 [b1,f#2,b2]@3 [g3,g4]!2",
  AS: "[b3,b4]@2 [c4,c5]@2 [b3,b4] [a3,a4] [b3,b4] [a3,a4] ~@2 [g3,g4]@2 [g3,g4]@2 [g3,g4]@2", // B C B A B A G
  AT: "[c2,g2,c3] ~ [c4,c5] [c2,g2,c3,g3,g4] [a3,a4] [b3,b4] [e2,b2,e3,b3,b4]@2, [d4,d5] ~@3, ~ [c2,g2,c3]@2 ~ [e2,b2,e3]@2 ~@2", // C5 C C5 A B E5 D C5 …
  AU: "[b3,b4] [a3,a4] [b3,b4] [a3,a4] [b3,b4]@2 [b3,b4] [g3,g4] [a3,a4]@2 [b3,b4]@2 [a3,a4]@2 [g3,g4]@2, [d2,a2,d3]!4", // B A B A B G A B …
  AV: "[c2,g2,c3] ~@4 [e2,b2,e3] ~ [g3,g4], [d4,d5] [c4,c5] [b3,b4]@2, ~ [c2,g2,c3]@2 [c2,g2,c3]@2 ~ [e2,b2,e3]@2", // C5 E5 G D C B C5 E5
  AW: "[d2,a2,d3,a3,a4] [d2,a2,d3,b3,b4] [d2,a2,d3,a3,a4] [d2,a2,d3]@2 [d2,a2,d3]!2 [g3,g4], ~@3 [a3,a4]@3 ~@2", // D5 Bm7 D5 G A
  AX: "[c2,g2,c3,a3,a4]@4 [c2,g2,c3]@4 ~@2 [a3,a4] ~@3 [g3,g4]@2, ~@4 [b3,b4]@6 ~ [a3,a4]@3 ~@2, ~@2 [c2,g2,c3]!2", // Am7 C5 A G B A C5
  AY: "[a3,a4]@2 ~@2 [c2,g2,c3]@4 ~@2 [g3,g4] ~@3 [f#3,f#4]@2, [c2,g2,c3] ~ [c2,g2,c3]!2, ~@2 [g3,g4]@8 ~ [g3,g4]@3 ~@2", // A C5 G F# C5 G
  AZ: "e4!4 b4!4 a4!4 c5!4, e5 b5 a5 c6", BA: "e4!4 b4!4 a4!4 g5@2 a5@2, e5@4 b5@4 a5@4 g4 ~ a4 ~",
  BB: "e4!4 b4!4 a4!4 [g4,g5]@2 [a4,a5]@2, e5 b5 a5 ~", // G A
  BC: "[e2,b2,e3,e4,e5]!2 [e2,b2,e3,e4,e5]@2 [e2,b2,e3] [e2,b2,e3]@2 [e2,b2,e3]!3 [e2,b2,e3]@2 [e2,b2,e3] [e2,b2,e3]@2 [e2,b2,e3], ~ [b4,b5] [a4,a5] [c5,c6]", // E5 B A C
  BD: "[g2,d3,g3,e4,e5]!2 [g2,d3,g3,e4,e5]@2 [g2,d3,g3] [g2,d3,g3]@2 [g2,d3,g3]!3 [g2,d3,g3]@2 [g2,d3,g3,g4,g5]@2 [g2,d3,g3,a4,a5]@2, ~ [b4,b5] [a4,a5] ~", // Em7 G5 Gsus2 B A
  BE: "[a2,e3,a3,e4,e5]!2 [a2,e3,a3,e4,e5]@2 [a2,e3,a3] [a2,e3,a3]@2 [a2,e3,a3]!3 [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2, ~ [b4,b5] [a4,a5] [g4,g5]", // A5 B A G
  BF: "[e2,e3] [e2,b2,e3]", BG: "[e2,b2,e3] [d2,a2,d3]", BH: "[d2,a2,d3] [c2,g2,c3]",
  BI: "~@2 [c2,g2,c3]!2 [c2,g2,c3]@4 ~ [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@3", // C5 A5
  BJ: "~ [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@3 [e2,b2,e3]@8", BK: "[e2,b2,e3] [g2,d3,g3]",
  BL: "[g2,d3,g3]!2 [c2,g2,c3]@2", // G5 C5
  BM: "[~@2 [c2,g2,c3]!2 [c2,g2,c3]@4 [a2,e3,a3]@15 ~ e3@2 [e3,e4]@2 e4@2 [d3,d4]@2 d4@2 e4@2 [b2,b3]@4 [d2,d3]@2 [d2,d3,e3,e4]@2 [d2,d3,e3,e4]@2 [d2,d3,f#3,f#4]@2, ~@8 e2@5 ~@3, ~@24 b2@11 ~@13, ~@14 e3@3 e3@3 ~@4, ~@8 d3 ~@3]/3", // C5 A5 E D B D Dsus2 D
  BN: "[d#2,d#3]!6 [d#2,d#3]@2, [g3,g4] [f#3,f#4] ~@2", // D# G F#
  BO: "[e2,b2,e3]!16, [g4,g5] [e4,e5]!2 [g4,g5]!2 [e4,e5] [e4,e5]@2", // E5 G E G E
  BP: "[c2,g2,c3]!8 [a2,e3,a3]!4 [b2,f#3,b3]!4, [e4,g4,e5]!3 [f#4,a4,f#5] [g4,b4,g5]@2 [f#4,a4,f#5]@2", // C5 A5 B5 Em F#m G F#m
  BQ: "[e2,b2,e3]!8 [c2,g2,c3]!8, ~ [g4,b4,g5] [g4,b4,g5]@2 ~ [g4,b4,g5] [a4,c5,a5]@2", // E5 C5 G Am
  BR: "[c2,g2,c3]!8 [a2,e3,a3]!4 [b2,f#3,b3]!4, [e4,g4,e5]!3 [f#4,a4,f#5] [g4,b4,g5] [f#4,a4,f#5] [f#4,a4,f#5]@2", // C5 A5 B5 Em F#m G F#m
  BS: "[c2,c3,g4,g5] [c2,c3,f#4,f#5] [c2,c3,e4,e5] [c2,c3,f#4,f#5] [c2,c3,g4,g5] [c2,c3,f#4,f#5] [c2,c3]!2, ~@3 [e4,e5]", // C5 Cdim C Cdim C5 Cdim C E
  BT: "[d2,d3]!4 [d#2,d#3,g4,g5] [d#2,d#3,f#4,f#5] [d#2,d#3,e4,e5]!2, [g4,g5] [f#4,f#5] ~@2", // D D# D#m Emaj7 G F#
  BU: "[e2,b2,e3]@2 [e3,e4]@2 [e3,e4]@2 ~@2 [e2,b2,e3]!2 [e2,b2,e3]@2 [g3,g4]@2 [a3,a4]@2", BV: "[c3,e3,g3,c4]@15 ~",
  BW: "[g2,d3,g3]@15 ~", BX: "[g2,b2,d3,g3]@15 ~", BY: "[a2,e3,a3]@15 ~", BZ: "[e2,b2,e3,e4,e5]@15 ~",
})).s("gm_piano").gain(0.3)

stack(cello, piano)