Strudelify

I'd Lie for You (And That's the Truth)

Meat Loaf

KeyD majorTempo85 bpm
0:00/0:00
// I'd Lie for You (And That's the Truth) — Meat Loaf
// 85 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 139 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(85/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.

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@15 A B C D E B F G H G I J K L M N O P Q R S T U T U V W X Y Z AA AB G I AC AD AE AF AE AG AC AH L M N O P Q R S T
  AI T AI AJ AK AL AM T AI T AI AJ AK AL AM AN AO AN AP AQ AR AS AT AU AV AW AV AW AX AY AZ BA AV AW AV AW AX AY AZ BB
  BC BD@2 BE BF BD@2 BG@3 BH@7 BI@5 BJ@4 BK@2 ~@5
>`.pickRestart({
  A: "d3", B: "g2", C: "d3@12 d3 ~@3", D: "g3@3 g3", E: "a2@7 ~", F: "f#2@3 a1", G: "d2@4 ~@2 d2@5 ~ d2@4",
  H: "g2@2 ~ g2@4 g2", I: "g2@2 ~ g2@3 d2@2", J: "a1@5 ~ a1 ~ a1@8", K: "g1@5 ~ g1@6 g2@4", L: "f#1@2 ~ f#1@5",
  M: "g1@2 ~ g1@3 d2 g2", N: "f#1@2 ~ f#2@3 c#2 f#1", O: "b1@2 ~ b1@2 c#2 d2 f#2", P: "c2@2 ~ c2@3 g1 c2",
  Q: "b1@3 b1@3 b1 g1", R: "a1@2 ~ a1@3 d2 e2", S: "a2 ~@3", T: "d2@3 g2@3 f#2@2", U: "a2@6 a1 ~ a1@6 a1@2",
  V: "b1@6 b1 ~ b1@4 a1@4", W: "g1@6 g1 ~ g1@4 f#1@3 ~", X: "e1@6 e1 ~ e1@8", Y: "a1@6 a1 ~ a1@7 ~", Z: "a1@6 ~ a1",
  AA: "d2@2 ~ d2@4 d2", AB: "g2@2 ~ g2@3 b2@2", AC: "a1@5 ~ a1@6 a1@4", AD: "g1@5 ~ g1@6 b1@2 c#2@2",
  AE: "d2@4 ~@2 d3@2 a2@6 a1!2", AF: "g1@4 ~@2 g1@7 ~ b1@2", AG: "g1@2 ~ g1@3 d2@2", AH: "g1@5 ~ g1@9 ~",
  AI: "a1@6 a1 ~ a1@6 a1@2", AJ: "b1@3 b1 b1@2 a1@2", AK: "g1@6 g1@2 g1@4 f#1@3 ~", AL: "e1@6 e1 ~ e1@4 e1@4",
  AM: "a1@2 a1 d2 a2@4", AN: "f1@5 ~ f1 ~ f1@4 f1@4", AO: "f1@3 f1!2 f2!2 c2", AP: "f1@3 f2!2 c2!2 d2",
  AQ: "g1@5 ~ g1 ~ g1@4 g1@2 d2!2", AR: "g2@2 g2@3 ~ g2@5 ~ d2@2 d2@2", AS: "a1!8", AT: "b1!5 d#2 e2 f#2",
  AU: "b2@4 ~@4 b2@2 b2 ~ b2@2 b2@2", AV: "e2@3 a2@3 g#2@2", AW: "b1@6 b1 ~ b1@6 b1@2", AX: "c#2@3 c#2 c#2@2 b1@2",
  AY: "a1@6 a1@2 a1@4 g#1@3 ~", AZ: "f#1@6 f#1 ~ f#1@4 f#1@4", BA: "b1@2 b1 e2 b2@4",
  BB: "b1@6 b1 ~ b1@2 e2@2 e2@2 f#2@2", BC: "b2", BD: "e2@5 ~ e2@9 ~", BE: "a2@5 ~ a2@9 ~", BF: "a2@5 ~ a2@5 ~ c#3@4",
  BG: "[a2@5 ~ a2@7 c#3@2 e3@2 ~ a3@20 ~@10]/3",
  BH: "[~@7 e2@6 a2@6 g#2@4 b1@6 b1 ~ b1@6 b1@2 e2@6 a2@6 g#2@4 b1@6 b1 ~ b1@6 b1@2 c#2@6 c#2@2 c#2@4 b1@4 a1@6 a1@2 a1@4 g#1@3 ~ f#1@6 f#1 ~ f#1]/7",
  BI: "[~@3 f#1@4 b1@6 b1 ~ b1@8 e2@6 a2@6 g#2@4 b1@6 b1 ~ b1@6 b1@2 e2@6 a2@6 g#2@4 b1@5 ~ b1 ~ b1]/5",
  BJ: "[~ f#2@2 b2@2 f#2@2 c#2@6 c#2@2 c#2@4 b1@4 a1@6 a1@2 a1@4 g#1@3 ~ f#1@6 f#1 ~ f#1@4 f#1@4 b1@6 b1@3]/4",
  BK: "[~ e2@2 e2@2 f#2@2 b2@16 ~@9]/2",
})).s("gm_electric_bass_finger").gain(0.46)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  ~@9 A@6 B C@2 D E@2 ~ F@2 G H I J ~@8 K L M L ~@2 N ~@2 O ~@2 H I J O ~@2 H P J ~@8 K L M L ~@2 N ~ K L M L ~@2 N Q
  R@4 S@2 L ~@2 T U V U ~@2 W X Y U Z U ~@2 W AA ~@10 AB@5 ~ AC@7 ~ AD@5 ~@4
>`.pickRestart({
  A: "[~@13 [b4,b5]@12 [a4,a5]@4 g5@12 ~ [a3,d5]@4 [g3,b3,e5]@17 a3@33, ~@29 d4@15 ~@19 a5@30 ~@3]/6", B: "[a3,d4]",
  C: "d4", D: "[g3,d4]@3 [a3,e4]", E: "[~@10 f#5@2 [g4,g5]@2 a4@9 ~ [g4,g5]@8, a3@15 ~@17]/2", F: "d4/2", G: "d4 ~@15",
  H: "~@3 e4", I: "a3@15 ~", J: "a4@15 ~", K: "[d3,a3]@3 [d3,g3]@3 [d3,f#3,a3]@2", L: "[e3,a3]",
  M: "d3@3 [d3,g3]@3 [d3,f#3,a3]@2, a3 ~@15", N: "[e3,g3]", O: "d3", P: "[a3,e5]", Q: "d4 c#4, a3", R: "[c3,f3]/2",
  S: "[d3,g3]/2", T: "b3@3 a3@3 [e3,g#3,b3]@2, e3@3 ~", U: "[f#3,b3]", V: "e3@3 [e3,a3]@3 [e3,g#3,b3]@2, b3 ~@15",
  W: "[f#3,a3]", X: "[b3,e4]", Y: "[e3,b3]@3 [e3,a3]@3 [e3,g#3,b3]@2", Z: "e3@3 [e3,a3]@3 [g#3,b3]@2, b3 ~@15",
  AA: "[b3,d#4]", // B
  AB: "[~@7 [e3,b3]@6 [e3,a3]@6 [e3,g#3,b3]@4 [f#3,b3]@16 e3@6 [e3,a3]@6 [g#3,b3]@4 [f#3,b3]@16 ~@9, ~@39 b3 ~@40]/5", // E5 A5 E B5 A5 G#m B5
  AC: "[~@7 [f#3,a3]@16 [b3,d#4]@16 [e3,b3]@6 [e3,a3]@6 [e3,g#3,b3]@4 [f#3,b3]@16 e3@6 [e3,a3]@6 [g#3,b3]@4 [f#3,b3]@16 ~@9, ~@71 b3 ~@40]/7", // F#m B E5 A5 E B5 A5 G#m …
  AD: "[~@7 [f#3,a3]@16 [b3,d#4,f#6]@52 ~@5]/5", // F#m B
})).s("gm_string_ensemble_2").gain(0.25).pan(0.4)

// chords · string ensemble 2 · "SLOWSTRING" · soft notes
const string_ensemble_2_soft = note(`<
  ~@9 A@2 ~@5 B C ~ D@2 ~ E B E B F G H ~@14 I@2 J@2 K B F G J@2 K B F L H ~@14 M N ~@32 O ~@4 P@2 Q@3 ~@20 R@2 ~
>`.pickRestart({
  A: "[~@13 d5@12 c#5@4 ~@3]/2", B: "g3", C: "a3", D: "[e4@7 ~ e5@2 f#4@2 ~@2 a5@10 ~@8]/2", E: "d3", F: "e4@15 ~",
  G: "d4", H: "f#4", I: "[d4@15 ~ c#4@15 ~, a3@31 ~]/2", J: "[~ g3, d4]/2", K: "d3, d4 ~@15", L: "[d4,d5]",
  M: "[a3,d4]", N: "c#4@15 ~", O: "[d#5,b5]@15 ~", P: "[f#3@3 g#3@5 f#3@3 g#3@5, b3]/2",
  Q: "[b3@6 c#4@11 a3@20 ~@11, e4@25 ~@23]/3", R: "[~ [e2,g#3,b3,e4,g#4]@3]/2",
})).s("gm_string_ensemble_2").gain(0.12).pan(0.4)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  ~@5 A@7 B@3 C D E F G H I J K J L M N O P Q R S T U ~ V@4 W X Y Z@2 J AA J L M N J AA J L M N O P Q R S T AB@2 V@4 W X
  Y AC V@4 W X Y AD AE AF AG ~ AH AI AJ AK AL AM AN AM AN AO AP AQ@2 AR@4 AS AT AU AV@2 ~@4 AW AX AY@3 AZ@3 BA@8 BB@7 BC
  BD@4
>`.pickRestart({
  A: "[e5 ~ [e4,e5]@3 f#5@2 g5 ~@5 f#5@2 e5@2 d5@4 e5@2 f#5@2 ~@8 e5@2 ~ [a3,e5]@2 f#5@2 g5@2 ~@4 f#5@2 e5@2 d5@4 e5@2 [g3,f#5]@3 ~@8 e5@2 [e4,c#5,e5]@2 [d5,f#5]@2 g5 ~ g5@2 ~@2 [d5,f#5]@2 ~@6 f#4@2 [a3,a4,e5]@3 e4@2 g4@4 [d4,g4,a4]@2 [b4,d5] ~@3 d4@2 [f#4,a4,d5]@4 [b4,e5,g5]@2, ~@2 [a4,c#5]@7 g5@4 ~@4 d4@7 ~ e5@7 ~@8 a3@4 [d4,a4,d5]@6 [d4,g4]@8 ~@3 a4@16 ~@4 b4@6 ~@7 [b4,d5]@6 ~@12, ~@7 e4@4 [d4,a4,d5]@6 [g3,g4]@9 ~ e4@15 g5@4 ~@13 e5@7 ~@17 [d5,f#5]@6 ~@23, ~@27 [a4,c#5]@8 ~ [a4,c#5]@8 ~@6 g3@6 ~@4 a3@8 ~@9 b3@12 ~@5 g3@8 ~@10, ~@61 [e4,c#5]@8 ~@4 [e4,e5]@4 ~@23 g4@6 ~@6]/7", // E A5 Gmaj7 C#m D A5 Dsus4 Bm …
  B: "[b4@3 ~ a5@4 ~ [b4,g5,b5]@6 ~@12 d6@2 e6 ~@2 [a3,a6]@16, ~@3 e5@6 ~@6 d5@4 d5@11 ~@18, ~@4 b4@2 ~@9 e4@15 ~@18, ~@17 a4@6 g5@7 ~ [a5,c#6,e6]@17, ~@21 e5@10 ~@17]/3", // Em A
  C: "[d4,f#4]@5 ~ [a3,d4,f#4]@6 [a3,c#4,e4]@4, a3 ~@15", D: "[g3,b3,d4]@7 ~ [g3,b3,d4] ~ [g3,b3,d4]@2 [d3,g3,a3]@4",
  E: "[a3,d4,f#4]@5 ~ [a3,d4,f#4]@6 [a3,c#4,e4]@4", F: "[g3,b3,d4]@2 [g3,b3,d4] [a3,c#4,e4]",
  G: "[e3,a3,c#4,e4]@4 [a3,c#4,e4] f#4 g4 [b3,d4,a4], ~@5 [a3,c#4]@2 ~", // A Bm7 A
  H: "d4@3 [d4,f#4] [d4,g4,b4]@3 [b3,d4], [g4,b4] ~", I: "a3@8 a3@7 ~, [f#2,c#4,e4]@13 ~@3",
  J: "[f#3,a3,d4]@5 ~ [f#3,a3,d4]@6 [f#3,a3,d4]@4", // D
  K: "[d3,g3,d4]@5 ~ [d3,g3,d4]@4 [b3,e4]@2 [d4,f#4]@2 [g4,b4]@2, ~@14 d4 ~", // G5 E5 D G
  L: "[d3,g3,d4]@5 ~ [d3,g3,d4]@6 [g3,b3,e4]@4", M: "[e3,a3,c#4,e4]@4 a3@3 a4, ~ [c#4,e4]",
  N: "d4@6 [d4,f#4]@2 [d4,g4,b4]@7 ~, [g4,b4] ~", // D G
  O: "~@4 f#5 ~ a#5 f#5, f#2@7 ~, f#5@4 ~ [a#3,c#4,f#4]@3, ~ a#5@4 ~@3, ~ c#6@2 ~", // F#
  P: "~@2 [b3,d4,g4] ~ [b3,d4,g4,g5]@4 [d3,g3,d4,d6]@2 [d4,g4,d5]@2 [b3,d4]@2 [d4,g4]@2, g2, g5 ~@2 g5", // G G5 Bm G5
  Q: "f#5 [a#3,c#4,f#4] ~ c#6 ~ [f#3,a#3,c#4,e4]@3, f#2, ~@4 f#5@4 a#5@5 ~@3, ~@3 [c#4,f#4]@2 ~@3", // F# F#7 F#5
  R: "~@2 f#5 b5 d6 [c#5,c#6] [d5,b5] [a4,f#5], [f#3,b3,d4]@5 ~ [f#3,b3,d4]@10, ~ d5@2 ~@5", S: "[c4,e4]@15 ~, g5 ~@3",
  T: "b4@5 ~ a4@4 b4@6, [g4,d5]@5 ~@3", U: "~@4 [d4,e4,a4]@7 ~ d5@2 c#5@2, ~@3 [a4,a5]",
  V: "[[a3,d4,f#4]@6 [d4,d5]!2 [d4,d5]@2 [e4,e5]@2 [f#4,f#5]@2 [e4,e5]@18]/2", W: "[b3,d4,f#4]@3 [d4,f#4]@3 ~@2",
  X: "[b3,d4]@3 [b3,b4]@2 [c#4,c#5] [d4,d5]@2", Y: "[b3,e4]",
  Z: "[c#4@12 e5@3 ~ e5 ~@11 [c#4,e4]@4, e4 ~@14 [a4,c#5]@13 ~@4, ~@4 a5@3 ~, ~@13 a3@3]/2", // C#m A
  AA: "[d3,g3,d4]@5 ~ g3@2 g3@2 ~@2 d4@4, ~@3 [d3,d4]@2 a3@3", // G5 D
  AB: "[~@4 [d4,e4,a4]@7 ~ d5@2 ~@2 a2@16, ~@12 a4@19 ~, ~@3 a5 ~@4, ~@14 c#5@17 ~]/2", AC: "e4 ~@11 e5@4, c#4",
  AD: "[d4,e4]@8 ~@6 a5 g5, ~ c#4, ~@3 e5", AE: "f5 [c5,g5] f5@2, [f2,c4,a4]@15 ~", AF: "~@5 c4@3, ~@3 f4@5",
  AG: "a4@4 g4@4 c4 ~@7, [c4,f4] ~", AH: "~ b4 [d4,a4]@2, [d4,g4] ~",
  AI: "[a3,f#4] ~ [b3,g4]@3 ~ [b3,d4,g4]@10, d4@5 ~@11", AJ: "[c#4,e4,a4]@7 ~ [c#4,e4,a4]@8",
  AK: "[b3,f#4,b4]@5 ~ [b3,f#4,b4]@9 ~", // B5
  AL: "[b3,f#4,b4]@4 ~@2 [f#4,b4,d#5,f#5] ~ [f#4,b4,d#5,f#5]@2 [f#4,b4,d#5,f#5] ~ [f#4,b4,d#5,f#5]@2 [f#4,b4,d#5,f#5] ~", // B5 B
  AM: "[g#4,b4,e5]@4 [b4,e5,g#5]@2 [e4,a4,c#5] ~ c#5@2 [a4,c#5] ~ [g#4,b4]@2 f#4@2, ~@8 a4 ~@5 b4 ~", // E A G#m
  AN: "[f#4,b4,d#5]@6 [f#4,b4,d#5] ~ [f#4,b4,d#5] ~ [f#4,b4,d#5] ~ [f#4,b4,d#5] ~ [f#4,b4,d#5]@2", // B
  AO: "~@2 c#5@2 d#5 ~ e5@4 c#5@2 [b3,b4]@4", AP: "~ [a4,c#5] [g#4,b4] c#5@2 d#5 e5@2, e4@3 [e4,a4]@5",
  AQ: "[~@4 [g#4,c#5]@2 [f#4,b4]@3 ~ [f#4,b4]@4 ~@2 [b3,e4]@16, f#3@7 [f#4,b4]@2 ~@7]/2", // C#5 B5 E5 B5
  AR: "[[e4,g#4]@6 [e4,e5]!2 [e4,e5]@2 [f#4,f#5]@2 [g#4,g#5]@2 [f#4,f#5]@18]/2", AS: "~@2 c#5@2 d#5 ~ e5@6 [b3,b4]@4",
  AT: "[e4,a4,c#5]@3 c#5@2 d#5 e5@2, ~@3 [e4,a4]@5", AU: "[c#4,f#4]",
  AV: "[~@10 e5 ~ e5@3 ~ [f#5,b5]@16, [d#4,f#4]@15 [b4,d#5]@17]/2", AW: "f#3@5 ~ g#3@8 ~@2, [e3,b3]@7 ~",
  AX: "f#3@3 g#3@5, [e3,b3]", // E5
  AY: "[b3@6 ~@7 e5@4 ~ a5@19 ~@11, [a3,e4] ~@2, ~@2 c#4@3 ~@11, ~@8 a4@7 ~@33, ~@11 b4@7 ~@30]/3", // A5
  AZ: "[~@7 [e4,g#4]@6 [e4,e5]!2 [e4,e5]@2 [f#4,f#5]@2 [g#4,g#5]@2 [f#4,f#5]@18 [e4,g#4]@6 [e4,e5]!3]/3", // E F# G# F# E
  BA: "[~ [f#4,f#5]@2 [g#4,g#5]@2 [f#4,f#5]@18 ~@2 c#5@2 d#5 ~ e5@6 [b3,b4]@4 [b4,c#5]@2 c#5@2 b4@2 c#5@4 d#5@2 e5@4 [c#4,f#4]@16 [d#4,f#4]@15 ~ [e4,g#4]@6 [e4,e5]!2 [e4,e5]@2 [f#4,f#5]@2 [g#4,g#5]@2 [f#4,f#5]@18 [e4,g#4]@6 [e4,e5]!3, ~@39 e4@13 ~@76]/8", // F# G# F# B Bsus2 F#5 D#m E …
  BB: "[~ [f#4,f#5]@2 [g#4,g#5]@2 [f#4,f#5]@18 ~@2 c#5@2 d#5 ~ e5@6 [b3,b4]@4 [b4,c#5]@2 c#5@2 b4@2 c#5@4 d#5@2 e5@4 [c#4,f#4]@16 ~@10 e5@2 f#5@2 ~@3 b5@15 ~@9, ~@39 e4@13 ~@19 [d#4,f#4]@14 e5@2 [d#5,f#5]@16 ~@9, ~@86 b4@17 ~@9]/7", // F# G# F# B Bsus2 F#5 D#m
  BC: "~@13 a5@3",
  BD: "[~@2 a5@2 ~ a5@2 ~@4 b5@3 a5@3 g#5@7 [e2,b4]@28 ~@12, ~ f#5@6 ~ [d#5,f#5,a5]@6 ~@10 [e5,g#5]@26 ~@14, ~ [b4,d#5]@3 ~@3 [b4,e5]@5 ~@20]/4", // E5 D#dim E B E5
})).s("gm_piano").gain(0.34).pan(0.6)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A@4 B@2 ~@9 C D C D E@3 ~@4 F@2 ~@21 F@2 ~@4 F@2 ~@50 G@2 H@2 G@2 I J@2 ~@23
>`.pickRestart({
  A: "[~@8 [f#3,a3,d4,f#4]@6 [f#3,a3,d4,f#4]@8 [e3,a3,d4,f#4] [a3,d4,f#4] f#3 d4@6 [g3,a3,d4,f#4]@10 [f#3,a3,d4,f#4]@6 [f#3,a3,d4,f#4]@8 e3 [a3,d4,f#4] [f#3,a3,d4,f#4] [g3,a3,d4,f#4]@6, ~@8 d3@15 ~ [g3,a3,f#4]@6 ~@11 d3@15 ~@8]/4", // D
  B: "[[g3,a3,f#4]@9 ~@7, d4 ~]/2", C: "[d4,f#4]@5 ~ [d4,f#4]@6 ~@4", D: "[b3,d4]@5 ~ [b3,d4]@8 ~@2",
  E: "[[a3,c#4]@5 ~ [a3,c#4]@9 ~ [b3,d4]@6 [g3,b3,d4]@9 ~ [a3,c#4]@13 ~@3, ~@15 g3@6 ~@10 f#3@13 ~@4]/3", // A Bm G A
  F: "[[a3,c#4]@5 ~ [a3,c#4]@9 ~ [b3,d4]@6 [g3,b3,d4]@9 ~, ~@15 g3@6 ~@11]/2", // A Bm G
  G: "[f#3,b3,e4]@2 ~ [b3,e4] [f#3,b3,e4] [f#3,b3] g#3@4 ~@4 [e3,g#3]@2, ~ [f#3,b3] ~ [b3,e4]@3 [b3,e4]@2, ~@5 [e3,g#3]@2 ~", // Esus2 E5 Esus2 B5 E B5 E5 E
  H: "[a3,b3,e4]@2 [a3,b3] [a3,b3]@2 [a3,b3] [a3,c#4]@4 [a3,c#4]@2 [a3,c#4]@2 [e3,a3]@2, ~@3 e4@3 ~@2", // Asus2 A A5
  I: "[a3,b3,e4]@2 [a3,b3] [a3,b3]@2 [a3,b3] [a3,c#4]@4 ~ [a3,c#4]@2 [a3,c#4]@2 ~, ~@6 e4@5 ~@5", // Asus2 A
  J: "[~ [a3,c#4]@20 ~@11, e3@19 ~@13]/2", // A
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.4)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@89 A B@2 C@2 D@2 E F G ~@40>".pickRestart({
  A: "~@2 a5@4 a5 ~ a5@4 e5@2 b4@2", B: "[a5@4 e5 ~ e5@4 f#5@2 f#5@2 f#5@8 [e4,f#4] g#4 a4 b4 c#5@5 ~]/2",
  C: "[c#5@3 a4@2 a4@2 f#4@3 e4@2 e4 d#6@2 d#4]/2",
  D: "[~@4 b3@2 f#3@4 e3@2 c#4@2 e4@8 e5@4 d#5@2 c#5 b4 a4 g#4, c#4 ~@3, ~@6 g#3 ~@25]/2",
  E: "a4 g#4 f#4 e4 f#4@4 e4@2 f#4@2 d#5 ~ d#5@2", F: "f#4 c#5 d#4 b4@3 b5@2", G: "a5@4 e5 ~ e5@8 ~@2",
})).s("gm_overdriven_guitar").gain(0.45)

// chords · pad warm · "WARM PAD"
const pad_warm = note(`<
  ~@15 A B C@2 D E F G H I J D E K L K M N O P@2 Q ~ Q ~ R S T U@2 I H I J D E I H I J D E K L K M N O V@2 Q ~ Q ~ R S T
  A Q ~ Q ~ R S T W X Y X Y Z@2 AA AB@2 AC ~ AC ~ AD AE AF AG AH ~ AI ~ AD AE AF AJ@2 ~@9 AK@6 AL@8 AM@5 ~@4
>`.pickRestart({
  A: "[a3,d4]", B: "g3, d4@3 ~", C: "[a3@4 g3@3 [a3,e4], d4@7 ~]/2", D: "[a3,e4]", E: "[g3,d4]@15 ~", F: "[f#3,a3,c#4]",
  G: "[d3,d4], a3 ~@15", H: "[g3,d4]", I: "[d3,a3,d4]", J: "d4@3 e4, g3", K: "[a#3,c#4,f#4]", L: "[b3,d4,g4]",
  M: "[f#3,b3,d4]@15 ~", N: "[g3,c4]", O: "[b3,d4]", P: "[[a3,e4]@5 ~@3]/2", Q: "[d3,a3,d4]@3 [d3,g3]@3 [f#3,a3]@2",
  R: "[f#3,b3]@3 [a3,d4]", S: "[g3,d4]@3 [f#3,a3]", T: "[e3,b3]", U: "[d4@16 c#4@15 ~, a3@31 ~]/2",
  V: "[[a3,e4]@15 ~]/2", W: "d4 c#4, a3", X: "a4 g4 ~ e4, c4, f4@3 ~", Y: "[c4,f4]", Z: "[d4@31 ~]/2", AA: "a3",
  AB: "[b3@19 ~@13]/2", AC: "[e3,b3,e4]@3 [e3,a3]@3 [g#3,b3]@2", AD: "[g#3,c#4]@3 [b3,e4]", AE: "[a3,e4]@3 [g#3,b3]",
  AF: "[f#3,c#4]", AG: "[b3,e4]", AH: "b3@3 [e3,a3]@3 [g#3,b3]@2, e4 ~@15", AI: "[b3,e4]@3 [e3,a3]@3 [g#3,b3]@2",
  AJ: "[[b3,d#4]@31 ~]/2", // B
  AK: "[~@7 [b3,e4]@6 [e3,a3]@6 [g#3,b3]@4 [f#3,b3]@16 [b3,e4]@6 [e3,a3]@6 [g#3,b3]@4 [f#3,b3]@16 [g#3,c#4]@12 [b3,e4]@4 [a3,e4]@9]/6", // E5 A5 G#m B5 E5 A5 G#m B5 …
  AL: "[~@3 [g#3,b3]@4 [f#3,c#4]@16 [b3,d#4]@15 ~ [b3,e4]@6 [e3,a3]@6 [g#3,b3]@4 [f#3,b3]@16 [b3,e4]@6 [e3,a3]@6 [g#3,b3]@4 [f#3,b3]@16 [g#3,c#4]@12 [b3,e4]@4 [a3,e4]@9]/8", // G#m F#5 B E5 A5 G#m B5 E5 …
  AM: "[~@3 [g#3,b3]@4 [f#3,c#4]@16 [b3,d#4]@54 ~@3]/5", // G#m F#5 B
})).s("gm_pad_warm").gain(0.19).pan(0.9)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@35 A B@2 C@2 D@2 E F G ~@7 H ~ I@2 ~ J K J L M N O P B@2 C@2 D@2 E F C@4 D@2 E Q R@2 S@2 T@2 U V W X Y Z Y AA AB AC
  Y AD@4 AE@2 AF AG@2 ~@9 AH@3 AI@8 AJ@8 ~@4
>`.pickRestart({
  A: "[a2,e3]@4 ~@8 a3 [e3,f3,g3] [g2,a2,b2,c3,d3] [c2,d2,e2,f2]", // A5 Em G Dm7
  B: "[[d3,a3,d4]@3 ~@2 e4 f#4 ~ [a2,e3,a3]@8, b1 ~@5 [g2,d3,g3]@6 [f#3,a3]@4 ~@16, ~@7 e4@9]/2", // D5 A5 G5 F#m
  C: "[[d3,a3,d4]@3 ~@2 e4 f#4 ~ [a2,e3,a3]@8, ~@3 [g2,d3,g3]@3 [f#3,a3]@2 ~@8, ~@7 e4@9]/2", // D5 A5 G5 F#m
  D: "[[b2,f#3,b3]@3 [e3,a3] [g2,d3,g3]@3 [f#3,a3,d4], ~@3 d4@4 ~]/2", E: "[b3,e4]", F: "[e3,a3,d4]", G: "[e3,a3,c#4]",
  H: "~@5 a3 ~ a3, ~@2 g3 d4", I: "[~ g3 f#3 e3 d3 e3 f#3 e3@2 ~@7]/2", J: "[f#2,c#3,f#3]@15 ~", K: "[g2,d3,g3]@15 ~",
  L: "[b2,d3]@5 c#3 d3 f#3", M: "c3@15 ~", N: "b2", O: "a2@2 a2 ~ a2@2 a2 ~ a2 ~ a2 ~ a2@2 a2 ~, ~ [a3,d4]@3",
  P: "[a2,a3]@12 a3 [d3,e3,f3,g3] [f2,g2,a2,b2,c3] [c2,d2,e2], e4", Q: "d4 c#4, [e3,a3]",
  R: "[[f2,c3,f3]@7 [f2,c3,f3]]/2", S: "[[f2,c3,f3]@13 [f2,c3,f3]!3]/2", T: "[[g2,d3,g3]@12 [g2,d3]@2 [g2,d3]!2]/2",
  U: "[a2,e3,a3]", V: "[f#3,b3]@5 [f#3,b3]!3, b2",
  W: "~ [f#3,g3,a3] [a2,b2,c#3,d3,e3] [d2,e2,f#2,g2] c#2 ~@7 b3 [f#3,g3,a3] [a2,b2,c#3,d3,e3] [d2,e2,f#2,g2], [b2,b3] ~@7", // F#m A Em7 F#m A Em7 B
  X: "[e2,b2,e3]@3 [a2,e3,a3]@3 [g#2,e3,g#3]@2, c#2 ~@15", Y: "[b2,f#3,b3]", Z: "[e2,b2]@3 [a2,e3]@3 [g#2,e3,g#3]@2",
  AA: "[c#3,g#3,c#4]@3 [b2,f#3,b3]", AB: "[a2,e3,a3]@3 [g#2,b3,e4]", AC: "[f#2,c#3,f#3]",
  AD: "[[e3,b3,e4]@3 a3@2 f#4 g#4 ~ [b2,f#3]@8, ~@3 [a2,e3]@3 [g#3,b3]@2 ~@8, ~@7 f#4@9]/2", // E5 B5 A5 G#m
  AE: "[[c#3,g#3,c#4]@3 [f#3,b3] [a2,e3,a3]@3 [g#3,b3,e4], ~@3 e4@4 ~]/2", AF: "[c#4,f#4]", AG: "[[f#3,b3,d#4]@31 ~]/2",
  AH: "[~@3 [a3,b3] [f#3,g#3] [a2,b2,c#3,d#3,e3] [d#2,e2,f#2,g#2] [e3,b3,e4]@6 a3@4 f#4@2 g#4@2 ~@2 [b2,f#3]@16 [e3,b3,e4]@6 [a2,e3,a3]@3, ~@7 [b1,c#2] ~@5 [a2,e3]@6 [g#3,b3]@4 ~@25, ~@7 f#4@6 ~@3]/3", // Asus2 F#sus2 A Emaj7 E5 B5 E5 A5 …
  AI: "[~ f#4@2 g#4@2 ~@2 [b2,f#3]@16 [c#3,g#3,c#4]@12 [f#3,b3]@4 [a2,e3,a3]@12 [g#3,b3,e4]@4 [c#4,f#4]@16 [f#3,b3,d#4]@15 ~ [e3,b3,e4]@6 a3@4 f#4@2 g#4@2 ~@2 [b2,f#3]@16 [e3,b3,e4]@6 [a2,e3,a3]@3, ~@3 [g#3,b3]@4 ~@86 [a2,e3]@6 ~@2 f#4@18 ~@9, ~@5 f#4@18 ~@12 e4@16 ~@48 [g#3,b3]@4 ~@25]/8", // B5 C#5 B5 A5 E F#5 B E5 …
  AJ: "[~ f#4@2 g#4@2 ~@2 [b2,f#3]@16 [c#3,g#3,c#4]@12 [f#3,b3]@4 [a2,e3,a3]@12 [g#3,b3,e4]@4 [c#4,f#4]@16 [f#3,b3,d#4]@52 ~@5, ~@3 [g#3,b3]@4 ~@121, ~@5 f#4@18 ~@12 e4@16 ~@77]/8", // B5 C#5 B5 A5 E F#5 B G#m
})).s("gm_distortion_guitar").gain(0.19).pan(0)

// chords · pad metallic · "METAL PAD"
const pad_metallic = note("<A@5 B@4 C@6 ~@124>".pickRestart({
  A: "[~@8 d4@67 ~@5]/5", B: "[~@2 e5@6 ~@3 d5@6 d5@10 e5@16 ~ a5@16 e5@4, ~@9 a5@18 ~@16 d5@8 ~@9 a5 ~@3]/4",
  C: "[~@42 a3@4 g3@16 ~ a3@30 ~@3, ~@13 d4@33 ~@50]/6",
})).s("gm_pad_metallic").gain(0.16).pan(0.3)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note("<~@22 A B C D ~ E ~@4 F G H ~@10 I J K L@3 I M K N@2 O ~@4 P Q ~@76>".pickRestart({
  A: "~@6 a3@9 ~, ~@4 d4@11 ~", B: "~@4 g3@2 ~ [g3,d4], ~ g3@3 ~@4, ~ a3@2 a3, ~@3 d4@4 ~",
  C: "~ a3 ~ a3 ~ a3 [c#4,e4]@2, ~@2 d4@3 ~@3, ~@2 d3 ~", D: "~ g3 f#3 e3 ~ e3 [e3,e4]@2, d4@8 [d3,d4]@4 d4 ~@3",
  E: "~@5 d4@3, ~@3 a3@5, ~ b3", F: "~@5 g3@2 e4, ~@6 [c4,d4]@7 ~@3", G: "[g3,d4]@4 ~@6 b3@5 ~, ~@3 [g3,d4]@4 ~",
  H: "~@3 [a3,d4]@4 ~", I: "~ a3@2 ~@3 d4@2, d4@2 ~ d4@3 ~@2, ~ a3, ~@5 d3@3",
  J: "~@6 d4@2 g3 ~ d3@2 ~@2 a3@2, d4 d3 ~@2, ~ g3@3 ~@2 d4@2", K: "~ a3@2 ~@3 c#4@2, d4@2 ~ d4@5, ~ a3, ~@5 d3@3",
  L: "[~@6 d4@2 g3 ~ d3@2 e4@3 ~ [c#4,e4]@15 ~ [a3,d4]@15 ~, d4 d3 ~@10, ~@2 g3@6 ~@7 a3@15 ~ g3@16 ~]/3", // C#m D5
  M: "~@3 d4 g3 d3 ~ a3, d4 d3 ~@2, ~ g3@3 ~@2 d4@2",
  N: "[~@6 d4@2 g3@2 d3@2 e4@3 ~ [c#4,e4]@15 ~, d4 d3 ~@6, ~@2 g3@6 ~@7 a3@15 ~@2]/2", O: "[g3,a3,d4]@15 ~",
  P: "~@4 d4 ~ g3@2, ~@4 g3@6 c4@5 ~", Q: "~@3 g3, ~@4 g3@7 ~@5, ~@8 [b3,d4]@7 ~",
})).s("gm_electric_guitar_clean").gain(0.22).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@15 A@6 B A@3 C A@3 C A C A C A B D@5 E D@2 B A@13 C A F A C G ~ D@3 H D@3 I D@3 H D@3 J D@3 K D E D L M D@3 H D@2 N
  B E@3 H E@3 D B A@7 O ~ P Q@3 R Q@2 S R Q@3 T Q@2 U V ~@6
>`.pickRestart({
  A: "x ~@2 x ~@4", B: "x", C: "x ~@2 x ~@3 x", D: "x ~@2 x!2 ~@3", E: "x ~@2 x!2 ~@2 x", F: "x ~@2 x ~ x ~ x",
// … 82 more lines

More by Meat Loaf