Strudelify
Love is in the Air cover art

Love Is in the Air

Love is in the Air

John Paul Young

KeyC majorTempo123 bpm
0:00/0:00
// Love is in the Air — John Paul Young
// 123 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 95 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123/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 · fretless bass · "FRETLESS"
const bass = note(`<
  A B@5 C D E B C F@2 G H I J K L M N B C D E B C F@2 G H I J K L M O P@3 Q C R C S T U V@4 B@2 D E B C F@2 G H I J K L
  M N B C D E B C F@2 G H I J K L M O P@3 Q C R C S T U P W
>`.pickRestart({
  A: "~@7 g1", B: "c2 ~@2 c2 ~@2 g1@2 c2 ~@2 c2 ~@2 g1@2", C: "c2 ~@2 c2 ~@2 g1@2 c2 ~@2 c2 ~@2 c2@2",
  D: "f2 ~@2 f2 ~@2 c2@2 f2 ~@2 f2 ~@2 c2@2", E: "f2@2 ~ f2 ~@2 c2@2 f2 ~@2 f2 ~@2 g1@2",
  F: "f2 ~@2 f2@2 ~ c2@2 f2 ~@2 f2 ~@2 c2@2", G: "g2 ~@2 g2 ~@2 d2@2 g2 ~@2 g2@2 ~ c2@2",
  H: "f2@2 ~ f2@2 ~ c2@2 f2 ~@2 f2 ~@2 c2@2", I: "g2 ~@2 g2 ~@2 d2@2 g2 ~@2 g2 ~@2 d2@2",
  J: "a2 ~@2 a2 ~@2 e2@2 a2 ~@2 a2@2 ~ e2@2", K: "g#2 ~@2 g#2 ~@2 d#2@2 g#2@2 ~ g#2 ~@2 d#2@2",
  L: "g2 ~@2 g2@2 ~ g1@2 g2 ~@2 g2@2 ~ g1@2", M: "g2 ~@2 g2 ~@2 g1@2 g2 ~@2 g2@2 ~ g1@2",
  N: "d2 ~@2 d2 ~@2 d2 c2 g1 ~@2 g1@2 ~ g1@2", O: "d2!2 ~ d2@2 ~ d2!2 g#1!2 ~ g#1 ~@2 g#1!2",
  P: "g1!2 ~ g1 ~@2 g1!4 ~ g1@2 ~ g1!2", Q: "g1@2 ~ g1 ~@2 g1@2 g1@2 ~ g1@2 ~ g1@2",
  R: "f2 ~@2 f2 ~@2 c2@2 f2 ~@2 f2 ~@2 g1@2", S: "f2 ~@2 f2 ~@2 c2@2 f2 ~@2 f2 ~@2 b1@2",
  T: "e2 ~@2 e2 ~@2 b1@2 e2 ~@2 e2 ~@2 b1@2", U: "a1 ~@2 a1 ~@2 e1@2 g#1 ~@2 g#1 ~@2 g#1@2",
  V: "g1 ~@2 g1 ~@2 g1@2 g1 ~@2 g1 ~@2 g1@2", W: "g1!2 ~ g1 ~@2 g1!4 ~@6",
})).s("gm_fretless_bass").gain(0.64)

// bass · slap bass 1 · "SLAPBASS 1"
const bass_2 = note(`<
  ~@47
  [g1!2 ~ g1@2 ~ g1!4 ~ g1!2 ~ g1!2]
  [g1!2 ~ g1!2 ~ g1!4 ~ g1!2 ~ g1!2]
  [g1!2 ~ g1@2 ~ g1!4 ~ g1@2 ~ g1!2]!2
  [c2 ~@7]
  ~@41
  [g1!2 ~@14]
  ~
>`).s("gm_slap_bass_1").gain(0.24)

// bass · slap bass 1 · "SLAPBASS 1" · soft notes
const bass_soft = note("<~@93 [~@3 g1@2 ~ g1!4 ~ g1!2 ~ g1!2] [g1!2 ~ g1!2 ~ g1 ~@9]>").s("gm_slap_bass_1").gain(0.08)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@12 A@4 B@8 C@2 D@2 E@4 F@8 G@6 H@4 I@8 J@8 K@8 L@8 M@8 N@5>".pickRestart({
  A: "[~@15 b3@16 c4@16 b3@16 c4]/4",
  B: "[~@15 [g#3,d#4]@16 ~@16 [a#3,c#4]@16 [a3,f4]@8 [b3,g4]@7 ~ g3@8 a3@8 b3@8 c4@8 c4@8 d4@8 e4, ~@15 c4@32 ~@16 d4@15 ~@50, ~@31 [g3,e4]@32 ~@65]/8", // G#5 A#m Dm Em C
  C: "[~@7 d4@4 e4@4 g3@8 a3@8 b3]/2", D: "[~@7 c4@8 c4@8 d4@8 e4, ~@15 f4@17]/2",
  E: "[~@7 d4@4 e4@4 [b3,d4,g4]@16 [a3,c4,f4]@16 [b3,d4,g4]@16 [c4,e4,a4]]/4", // G F G Am
  F: "[~@15 [g#3,d#4,g#4]@16 [g3,e4]@16 [g3,a#3,c#4,e4]@16 a3@8 [g#3,c4]@8 d4@8 e4@8 f4@8 g4@8 [a3,a4]@8 [b3,b4]@8 [c4,c5], ~@15 c4@32 ~@16 [f3,d4,f4]@16 g3@49, ~@31 g4@32 ~@65]/8", // G#5 C Gdim G# A B C Dm
  G: "[~@7 [d4,d5]@8 e5@16 a3@16 e5@16 a3@16 g3@16 a3]/6", H: "[~@7 g#3@8 g4@49, ~@15 g3@8 ~@41]/4",
  I: "[~@15 [c4,e4,g4]@113]/8", // C
  J: "[~@15 [b3,d4]@16 [c4,a4]@16 [d4,b4]@16 e4@16 d#4@16 ~@16 [g4,c#5]@16 [d4,a4,d5], ~@63 c5@48 ~@17, ~@95 e4@31 ~@2]/8", // Bm F G Gdim D5
  K: "[~@7 [d4,g4,d5]@8 [g4,g5]@8 [a4,a5]@8 [b4,b5]@8 c6@8 c6@8 [d5,d6]@8 [e5,e6]@8 [d5,d6]@4 [c5,c6]@4 [g4,g5]@8 [a4,a5]@8 [b4,b5]@8 c6@8 c6@8 [d5,d6]@8 [e5,e6], ~@15 c4@113, ~@15 e4@32 f4@32 e4@32 [f3,f4]@17, ~@39 c5@16 ~@48 c5@16 ~@9]/8", // G5 G A B D E D C …
  L: "[~@7 [d5,d6]@4 [c5,c6]@4 [d4,g4,b4,d5,d6]@16 [c4,f4,a4,c5,c6]@16 [d4,g4,b4,d5,d6]@16 [a4,c5]@8 ~@3 a4@3 b4@2 [d#4,g#4,d#5,d#6]@16 e6@16 [a#4,c#5,e6]@16 [f4,a4,d5,f6], ~@63 [e4,e5,e6]@16 c5@32 ~@17, ~@95 [e4,g4,e5]@32 ~]/8", // D C G F G Am G#5 A#dim …
  M: "[~@7 [g#4,c5,d5]@8 d4@8 e4@8 f4@8 g4@8 [a3,a4]@8 [b3,b4]@8 [c4,c5]@8 [d4,d5]@8 e5@16 a3@16 e5@16 a3, ~@15 g3@64 ~@49]/8", // Dm7b5 A B C D
  N: "[~@15 g3@16 a3@8 g#3@8 d4@8 e4@8 f4@8 ~@9, ~@47 g3@25 ~@8]/5",
})).s("gm_string_ensemble_2").gain(0.22).pan(0.3)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@41 A B A B C D E ~@39 A B A B C D E ~>".pickRestart({
  A: "[e5,e6]@15 ~", B: "[e5,e6]@3 [d5,d6]@3 [c5,c6]@2 [e5,e6]@3 [d5,d6]@3 [c5,c6]@2", C: "[b4,b5]@3 [c5,c6]",
  D: "[a4,a5] [g#4,g#5]", E: "[g4,g5]@7 ~@9",
})).s("gm_string_ensemble_1").gain(0.4)

// other · piano · "A.PIANO 3"
const piano = note("<~@37 A B C D E F E F G H I ~@35 A B C D E F E F G H A J>".pickRestart({
  A: "d4 e4", B: "f4 g4", C: "a4 b4", D: "c5 d5", E: "e5", F: "e5@3 d5@3 c5@2 e5@3 d5@3 c5@2", G: "b4@3 c5",
  H: "a4 g#4", I: "g4@3 ~", J: "f4 ~",
})).s("gm_piano").gain(0.45).pan(0.6)

// chords · piano · "A.PIANO 1"
const piano_2 = note(`<
  ~@5 A@2 B@2 C@2 D@2 E F E G H I J K L@2 M@2 N@2 O@2 P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH@4 A@2 AI@2 C@2 AJ@2
  AK AL AM G AN@2 AO K AP@2 AQ@2 AR@2 AS@2 AT AU AV AW AX AY AZ BA X Y Z AA AB AC AD AE AF AG X BB
>`.pickRestart({
  A: "[[c3,g3,c4,e4]@27 ~ [c3,g3,c4,e4]@3 ~]/2", B: "[[e3,f3,a3,c4,e4]@31 ~]/2",
  C: "[[c3,g3,c4,e4]@27 ~ [c3,g3,c4,e4]@4]/2", D: "[[f3,a3,c4,e4]@23 ~ [f3,a3,c4,e4,f4]@4 [f3,a3,c4,e4]@4]/2",
  E: "[g3,b3,d4]", F: "[a3,c4,e4]@7 ~ [f3,a3,c4,e4,f4]@4 [f3,a3,c4,e4]@4", G: "[a3,c4,e4]@15 ~",
  H: "[f#3,g#3,c4,d#4]@15 ~", I: "[g3,c4,e4]@15 ~", J: "[e3,g3,c#4]@15 ~", K: "[f3,a3,c4,d4]@7 ~ [g3,b3,d4]@7 ~",
  L: "[[c3,e3,g3]@23 ~@5 g4@4, ~@24 [g3,c4,e4]@7 ~]/2", M: "[[f3,a3,c4,e4]@11 ~ [f3,a3,c4]@2 [a3,c4,e4]@2]/2",
  N: "[[c3,e3,g3]@23 ~ [c3,e3,g3,b3,c4]@4 [e3,g3,c4,e4]@4]/2", // C Cmaj7 C
  O: "[[f3,a3,c4,e4]@23 ~ [e3,f3]@4 [e3,e4]@4, ~@3 [a3,c4]]/2", // Fmaj7 E Am
  P: "g3@6 ~@7 d4@2 ~, d4@3 ~, b3@10 ~ b3@5, ~@3 d3@5, ~ g3", Q: "f3@2 f3 e3, [a3,c4]",
  R: "~@10 d3@3 [g3,b3,d4]@3, [g3,b3,d4]@3 ~", S: "[e3,a3,c4,e4]@10 [e3,c4,e4]@3 [a3,c4,e4]@3",
  T: "[d#3,g#3,c4,d#4]@10 [d#3,c4,d#4]@3 [g#3,c4,d#4]@3", U: "[e3,g3,c4]@15 ~", V: "[e3,g3,a#3,c#4]",
  W: "[d3,f3,a3,d4] [d3,f3,g#3,c4,d4]", X: "[g3,b3,d4] [g3,b3,e4], g2", Y: "[g2,g3,b3,f4] [g2,g3,b3,g4]",
  Z: "[g2,g3,b3,a4] [g2,g3,b3,b4]", AA: "[g3,c4,c5]@8 [g3,d4,d5]@7 ~, g2", AB: "[c3,g3,c4,e4,e5]",
  AC: "[c4,e4]@3 d4@3 c4@2 [a3,c4,e4]@3 [a3,d4]@3 [a3,c4]@2, f3, a3@7 ~@9", AD: "[c3,g3,e4,e5]",
  AE: "[c4,e4]@3 d4@3 c4@2 [a3,c4,e4]@3 [a3,d4]@3 [a3,c4]@2, f3, a3 ~", AF: "b3@3 c4, [e3,g3]@15 ~",
  AG: "[e3,a3,c4] [d#3,g#3,c4]", AH: "[d3,g3,b3]/4", AI: "[[c4,e4,g4]@27 ~ [c4,f4]@4, f3, a3@25 ~@2 a3@5]/2",
  AJ: "[[f3,a3,c4,e4,g4]@23 ~ [f3,a3,c4,e4,f4]@4 [f3,a3,c4,e4,g4]@4]/2", AK: "[g3,b3,d4,g4]",
  AL: "[a3,c4,f4]@3 [f3,a3,c4,e4]", AM: "[g3,b3,d4]@11 ~@3 [b3,d4]@2, g2@10 ~ g2@5, ~@3 g3",
  AN: "[[f#3,g#3,c4,d#4]@11 ~@3 d#4@2 [g3,e4]@11 ~@3 e4@2, ~@11 g#2@5 g2@10 ~ g2@5, ~@3 g#3 ~@3 g3, ~@14 c4@13 ~@3 c4 ~]/2", // G#7 C
  AO: "[e3,g3,c#4,e4]@6 ~ [a#3,c#4,e4], ~@3 e3", AP: "[[c3,g3,c4,e4]@23 ~ e4@2 ~ e4@3 g4@2, ~@23 [c3,g3]@9, ~@3 b3]/2",
  AQ: "[[f3,a3,c4,e4,f4]@23 ~ f4@3 e4@3 f4@2, ~@23 f3@9, ~@3 [a3,c4]]/2", // Fmaj7 Am
  AR: "[[g3,c4,e4]@11 ~ e4 ~@2 g4, c3@21 ~ c3@10, ~@23 g3@9, ~@3 b3, ~@27 e4@5]/2", // C
  AS: "[[a3,c4,e4,g4]@22 ~@2 [e4,g4]@3 e4@3 g4@2, f3@21 ~ f3@10, ~@23 a3@9, ~@24 c4@7 ~]/2", // Am7 Em
  AT: "[g3,b3]@5 ~@2 b3, [d4,g4]@15 ~, ~@11 g3@5", AU: "c4@6 ~ [c4,e4], f3, f4@7 ~, a3@5 ~ a3@2",
  AV: "[g3,b3]@9 ~@2 b3@3 d4@2, g4, d4@13 ~@3", AW: "[c4,e4]@10 e4@3 e4@2 ~, a3, ~@10 c4@5 ~",
  AX: "g#3@9 ~@4 d#4@3, [f#3,c4], d#4@13 ~@3, ~@11 g#3@5", AY: "[e3,g3,c4,e4]", AZ: "[e3,g3,a#3,c#4,e4]",
  BA: "[d3,f3,a3,d4]@7 ~ [d3,f3,g#3,c4,d4]@7 ~", BB: "[g2,g3,b3,f4] ~",
})).s("gm_piano").gain(0.48).pan(0.4)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note("<~@51 A@8 B C B D E F G H A@8 B C B D E I ~@14>".pickRestart({
  A: "[c4,e4] ~@2 [c4,e4] ~@2 [c4,e4] ~@4 g3!2 a3 c4 ~", B: "[b3,d4] ~@2 [b3,d4] ~@2 [b3,d4] ~@4 g3!2 b3 d4 ~",
  C: "[a3,c4] ~@2 [a3,c4] ~@2 [a3,c4] ~@4 f3!2 a3 c4 ~", D: "[c4,e4] ~@2 [c4,e4] ~@2 [c4,e4] ~@4 a3!2 c4 e4 ~",
  E: "[c4,d#4] ~@2 [c4,d#4] ~@2 [c4,d#4] ~@4 g#3!2 c4 d#4 ~", F: "[c4,e4] ~@2 [c4,e4] ~@2 [c4,e4] ~@4 g3!2 c4 e4 ~",
  G: "[a#3,c#4] ~@2 [a#3,c#4] ~@2 [a#3,c#4] ~@4 g3!2 a#3 c#4 ~", // A#m
  H: "[a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~ [b3,d4] ~@2 [b3,d4] ~@2 [b3,d4] ~", I: "[c4,e4] ~@2 [c4,e4] ~@2 [c4,e4] ~@9",
})).s("gm_electric_guitar_muted").gain(0.22).pan(0.2)

// other · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@13 A B C D@3 E F G H I J K L ~@3 M N O P Q R S T U V W X Y Z AA AB AC AD ~@28 M N O P Q R S T U V W X Y Z AA AB AC T
  U
>`.pickRestart({
  A: "b3!2 ~@2 b3!3 ~ b3!2 ~ b3!4 ~", B: "a3!2 ~ a3!4 ~ a3 ~@2 a3!4 ~", C: "b3!2 ~ b3!4 ~ b3@2 ~ b3!4 ~",
  D: "c4!2 ~ c4!4 ~ c4!2 ~ c4!4 ~", E: "c#4!2 ~ c#4!4 ~ c#4!2 ~ c#4!4 ~", F: "d4!2 ~ d4!4 ~ g3!2 ~ g3!4 ~",
  G: "~@11 c3 g3!2 ~ c3", H: "g3@5 ~@3", I: "~@11 c3 a3!2 ~@2", J: "a3@5 ~@11", K: "~@11 c3 g3!2 ~@2", L: "g3@13 ~@3",
  M: "~@3 c3 a3!2 f3 c3 a3@5 ~@3", N: "~@3 d3 b3!2 ~ d3 b3@4 ~@4", O: "~@3 e3 c4!2 a3 e3 c4@4 ~@4",
  P: "~@3 d#3 c4!2 ~@2 c4@6 ~@2", Q: "~@3 e3 c4!2 g3 e3 c4@4 ~@4", R: "~@3 e3 c#4!2 ~@2 c#4 ~@2 e3 c#4!2 a#3 g3",
  S: "d3@3 f3 d4 ~ a3 f3 d3@2 ~@2 c4!2 g#3 f3, ~@5 d4@2 ~@9", T: "~@11 d3 b3 ~@2 d3, ~@13 b3@2 ~, ~@7 g3", U: "b3 ~@3",
  V: "~@3 d3 b3!2 g3 d3 b3@4 ~@4", W: "~@3 d3 b3 ~ g3 d3 b3@3 d3 b3 ~ d3 b3, ~@5 b3@2 ~@6 [g3,b3]@2 ~",
  X: "~@6 c4 ~ e4@2 e4 d4@2 d4 c4 ~", Y: "e4@2 ~ d4 ~ d4 c4 ~ e4@2 ~ d4 ~ d4 c4 ~", Z: "e4@5 ~ c4 ~ e4@3 d4 ~ d4 c4 ~",
  AA: "e4@3 d4 ~ d4 c4 ~ e4@2 ~ d4@2 c4@2 ~", AB: "g3@3 ~ e4!2 d4 ~ e4@2 ~ d4@2 ~ c4 ~",
  AC: "~@2 e4 d4@2 d4 c4@2 e4@2 ~ d4 ~ d4 c4@2", AD: "g3 ~@3",
})).s("gm_electric_guitar_clean").gain(0.1).pan(0.6)

// other · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note("<~@13 A ~@7 B ~ C ~ D ~@5 E ~ F ~ G H ~@40 E ~ F ~ G H ~@12>".pickRestart({
  A: "~@3 b3 ~@12", B: "~@14 e3 ~", C: "~@14 f3 c3", D: "~@14 e3 c3", E: "~@6 g3 ~@9", F: "~@6 g#3 d#3 ~@8",
  G: "~@6 a#3 g3 ~@8", H: "~@11 f3 ~@4",
})).s("gm_electric_guitar_clean").gain(0.06).pan(0.6)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@21 A B C D A E ~@3 F G H I J K L M N G O ~@10 P@2 Q@2 P@2 R@2 S T U V W X Y Z P@2 Q@2 P@2 R@2 S T U V W X Y AA AB N
  G O ~@6 AB ~
>`.pickRestart({
  A: "~@11 c3 g3!2 e3 c3", B: "g3@5 ~@3", C: "~@11 c3 a3!2 f3 c3", D: "a3@5 ~@11", E: "g3@13 ~@3",
  F: "~@3 c3 a3!2 f3 c3 a3@5 ~@3", G: "~@3 d3 b3!2 g3 d3 b3@4 ~@4", H: "~@3 e3 c4!2 a3 e3 c4@4 ~@4",
  I: "~@3 d#3 c4!2 g#3 d#3 c4@6 ~@2", J: "~@3 e3 c4!2 g3 e3 c4@4 ~@4", K: "~@3 e3 c#4!2 a#3 g3 c#4 ~@2 e3 c#4!2 a#3 g3",
  L: "d3@3 f3 d4 ~ a3 f3 d3@2 ~ f3 c4!2 g#3 f3, ~@5 d4@2 ~@9", M: "~@11 d3 b3 ~@2 d3, ~@13 b3@2 ~, ~@7 g3", N: "b3 ~@3",
  O: "~@3 d3 b3 ~ g3 d3 b3@3 d3 b3 ~ d3 b3, ~@5 b3@2 ~@6 [g3,b3]@2 ~", // G
  P: "[g3,c4,e4] ~@2 [g3,e4] ~@2 [g3,e4] [c4,e4] [g3,c4,e4] ~@3 [g3,c4,e4] ~ [g3,c4] ~", // C C5
  Q: "[a3,c4,g4] ~@2 [a3,g4] ~@2 [a3,g4] [c4,g4] [a3,c4,g4] ~@3 [a3,c4,g4] ~ [a3,c4] ~", // Am7 A7 C5 Am7 Am
  R: "[a3,c4,g4] ~@2 [a3,g4] ~@2 [a3,g4] c4 [a3,c4,g4] ~@3 [a3,c4,g4] ~ [a3,c4] ~", // Am7 A7 Am7 Am
  S: "[b3,d4,g4] ~@2 [b3,g4] ~@2 [b3,g4] d4 [b3,d4,g4] ~@3 [b3,d4,g4] ~ [b3,d4] ~", // G Em G Bm
  T: "[a3,c4,f4] ~@2 [a3,f4] ~@3 c4 [a3,c4,f4] ~@3 [a3,c4,f4] ~ [a3,c4] ~", // F Dm F Am
  U: "[b3,d4,g4] ~@2 [b3,g4] ~@3 d4 [b3,d4,g4] ~@3 [b3,d4,g4] ~ [b3,d4] ~", // G Em G Bm
  V: "[a3,c4,e4] ~@2 [a3,e4] ~@3 c4 [a3,c4,e4] ~@3 [a3,c4,e4] ~ [a3,c4] ~", // Am A5 Am
  W: "[g#3,c4,d#4] ~@2 [g#3,d#4] ~@3 c4 [g#3,c4,d#4] ~@3 [g#3,c4,d#4] ~ [g#3,c4] ~", // G# G#5 G#
  X: "[g3,c4,e4] ~@2 [g3,e4] ~@3 c4 [g3,c4,e4] ~@3 [g3,c4,e4] ~ g3 ~", // C
  Y: "[g3,c#4,e4] ~@2 [g3,e4] ~@4 [g3,c#4,e4] ~@3 [g3,c#4,e4] ~ g3 ~", // C#dim C C#dim
  Z: "[f3,a3,d4] ~@2 [f3,d4] ~@4 [g3,b3,d4] ~@3 [g3,b3,d4] ~ g3 ~", // Dm G
  AA: "[f3,a3,d4] ~@2 [f3,d4] ~@4 [g#3,c4,d4] ~@3 [g#3,c4,d4] ~ g#3 ~", // Dm Dm7b5
  AB: "[g3,b3,d4]@10 ~ d3 b3 ~@2 d3, ~@13 b3@2 ~, ~@7 g3", // G
})).s("gm_acoustic_guitar_steel").gain(0.07).pan(0)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel_2 = note(`<
  ~@13 A B C D E F G H F@2 B@2 F@2 B@2 A B C D E F G I J ~@13 K@2 L@2 K M N@2 O P Q R S T U V K@2 L@2 K M N@2 O P Q R S
  T U W X Y Z AA AB ~@7
>`.pickRestart({
  A: "[b3,d4] ~@3 [g3,b3,d4] ~@3 [b3,d4] [b3,d4]@2 ~ [g3,b3,d4]!2 ~@2, g3@3 ~@5 g3@3 ~@5", // Bm G Bm G
  B: "[c4,e4] [c4,e4]@2 ~ [a3,c4,e4]!2 ~@2 [c4,e4] [c4,e4]@2 ~ [a3,c4,e4] ~ [a3,c4,e4]@2, a3@3 ~@5 a3@3 ~@5", // C Am C Am
  C: "[b3,d4] [b3,d4]@2 ~ [g3,b3,d4]!2 ~@2 [b3,d4] [b3,d4]@2 ~ [g3,b3,d4] ~ [g3,b3,d4]@2, g3@3 ~@5 g3@3 ~@5", // Bm G Bm G
  D: "[c4,e4] [c4,e4]@2 ~ [a3,c4,e4]!2 ~@2 [c4,e4] [c4,e4]@2 ~ [a3,c4,e4]!2 [a3,c4,e4]@2, a3@3 ~@5 a3@3 ~@5", // C Am C Am
  E: "[c4,d#4] [c4,d#4]@2 ~ [g#3,c4,d#4]!2 ~@2 [c4,d#4] [c4,d#4]@2 ~ [g#3,c4,d#4] ~ [g#3,c4,d#4]@2, g#3@3 ~@5 g#3@3 ~@5", // Cm G# Cm G#
  F: "[c4,e4] [c4,e4]@2 ~ [g3,c4,e4]!2 ~@2 [c4,e4] [c4,e4]@2 ~ [g3,c4,e4] ~ [g3,c4,e4]@2, g3@3 ~@5 g3@3 ~@5", // C
  G: "[c#4,e4] [c#4,e4]@2 ~ [a#3,c#4,e4]!2 ~@2 [c#4,e4] [c#4,e4]@2 ~ [a#3,c#4,e4]!2 ~@2, a#3@3 ~@5 a#3@3 ~@5", // C#m A#dim C#m A#dim
  H: "[a3,d4] [a3,d4]@2 ~ [f3,a3,d4] ~ [f3,a3,d4]@2 [b3,d4] [b3,d4]@2 ~ [g3,b3,d4] ~ [g3,b3,d4]@2, f3@3 ~@5 g3@3 ~@5", // D5 Dm Bm G
  I: "[a3,d4] [a3,d4]@2 ~ [f3,a3,d4] ~ [f3,a3,d4]@2 [c4,d4] [c4,d4]@2 ~ [g#3,c4,d4] ~ [g#3,c4,d4]@2, f3@3 ~@5 g#3@3 ~@5", // D5 Dm Csus2 Dm7b5
  J: "g3 ~@15", K: "[c4,e4] ~@3 [g3,c4,e4] ~@3 [c4,e4] ~@3 [g3,c4,e4] ~@3, g3@3 ~@5 g3@3 ~@5",
  L: "[c4,e4] ~@3 [a3,c4,e4] ~@3 [c4,e4] ~@3 [a3,c4,e4] ~@3, a3@3 ~@5 a3@3 ~@5", // C Am C Am
  M: "[c4,e4] ~@3 [g3,c4,e4] ~@3 [c4,e4] ~@3 [g3,c4,e4] ~ c4@2, g3@3 ~@5 g3@3 ~@5", // C
  N: "[c4,e4] ~@3 [a3,c4,e4] ~@3 [c4,e4] ~@3 [a3,c4,e4] ~ c4@2, a3@3 ~@5 a3@3 ~@5", // C Am C Am
  O: "[b3,d4] ~@3 [b3,d4] ~@3 [b3,d4] ~@3 [g3,b3,d4] ~@3, ~@8 g3@3 ~@5", // Bm G
  P: "[c4,f4] ~@3 [a3,c4,f4]!2 ~@2 [c4,f4] ~@3 [a3,c4,f4] ~ [a3,c4,f4]@2, a3@3 ~@5 a3@3 ~@5", // F5 F F5 F
  Q: "[b3,d4] ~@3 [g3,b3,d4]!2 ~@2 [b3,d4] ~@3 [g3,b3,d4] ~ [g3,b3,d4]@2, g3@3 ~@5 g3@3 ~@5", // Bm G Bm G
  R: "[c4,e4] ~@3 [a3,c4,e4]!2 ~@2 [c4,e4] ~@3 [a3,c4,e4]!2 ~@2, a3@3 ~@5 a3@3 ~@5", // C Am C Am
  S: "[c4,d#4] d#4 ~@2 [g#3,c4,d#4]!2 ~@2 [c4,d#4] d#4 ~@2 [g#3,c4,d#4] ~ [g#3,c4,d#4]@2, g#3@3 ~@5 g#3@3 ~@5", // Cm G# Cm G#
  T: "[c4,e4] e4 ~@2 [g3,c4,e4]!2 ~@2 [c4,e4] e4 ~@2 [g3,c4,e4] ~ [g3,c4,e4]@2, g3@3 ~@5 g3@3 ~@5", // C
  U: "[c#4,e4] e4 ~@2 [a#3,c#4,e4]!2 ~@2 [c#4,e4] e4 ~@2 [a#3,c#4,e4] ~@3, a#3@3 ~@5 a#3@3 ~@5", // C#m A#dim C#m A#dim
  V: "[a3,d4] d4 ~@2 [f3,a3,d4] ~ [f3,a3,d4]@2 [b3,d4] d4 ~@2 [g3,b3,d4] ~ [g3,b3,d4]@2, f3@3 ~@5 g3@3 ~@5", // D5 Dm Bm G
  W: "[a3,d4] d4 ~@2 [f3,a3,d4] ~ [f3,a3,d4]@2 [c4,d4] d4 ~@2 [g#3,c4,d4] ~ [g#3,c4,d4]@2, f3@3 ~@5 g#3@3 ~@5", // D5 Dm Csus2 Dm7b5
  X: "[b3,d4] ~@3 [g3,b3,d4] ~@3 [b3,d4] [b3,d4]@2 ~ [g3,b3,d4]!2 ~@2, ~@8 g3@3 ~@5", // Bm G Bm G
  Y: "[b3,d4] [b3,d4]@2 ~ [g3,b3,d4] ~@3 [b3,d4] [b3,d4]@2 [g3,b3] [g3,b3,d4]!2 ~@2, g3@3 ~@5 g3@3 ~@5", // Bm G Bm G
  Z: "[b3,d4] [b3,d4]@2 ~ [g3,b3,d4] ~@3 [b3,d4] [b3,d4]@2 [g3,b3,d4]!3 ~@2, g3@3 ~@5 g3@3 ~@5", // Bm G Bm G
  AA: "[b3,d4] [b3,d4]@2 [g3,b3] [g3,b3,d4] [b3,d4] ~@2 [b3,d4] [b3,d4]@2 [g3,b3,d4]!3 ~@2, g3@3 ~@5 g3@3 ~@5", // Bm G Bm G
  AB: "[c4,e4] [c4,e4]@2 ~@13, g3@3 ~@13", // C
})).s("gm_acoustic_guitar_steel").gain(0.07).pan(0.9)

// drums · kick
const kick = s("bd").struct("<~ [x!4]!93 [x!3 ~]>").gain(0.28)

// drums · snare
const snare = s("sd").struct(`<
// … 52 more lines