Strudelify

Send One Your Love

Stevie Wonder

KeyA majorTempo66 bpm
0:00/0:00
// Send One Your Love — Wonder Stevie
// 66 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: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 84 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(66/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.

// chords · piano
const piano = note(`<
  A B C D E B F G H B C D E B F G I J ~ K@2 L M N O P Q R@2 S T U V J ~ W@2 X@2 N O P Q R@2 S T U Y Z AA AB AC AD AE AF
  AG AH AI AJ AK@2 AL AM AN AO AP AQ AR@2 AS AT AU AV AW AX AY@2 AZ BA BB@4
>`.pickRestart({
  A: "~@18 [a3,b3,d4,f#4]@2 ~ [b3,c#4,e4,g#4]@2 ~", // Bm7 C#m7
  B: "[a3,c#4,d4,f#4,a4]@9 [a3,b3,d4,a4] [g#3,b3,d4,g#4] [f#3,b3,d4,f#4]", // Dmaj7 Bm7 G#dim Bm
  C: "[g#3,a3,c#4,g#4]@3 e3@2 [c#3,a3,c#4]@12 c#4 [a3,b3,d4,f#4]@3 [b3,c#4,e4,g#4]@3, ~@3 e4@14 ~@7", // Amaj7 F#m Bm7 C#m7
  D: "[a3,c#4,d4,f#4,a4]@8 ~ [a3,b3,d4,f#4,a4]@2 [a3,b3,d4,f#4,a4]@4 [g#3,b3,d4,g#4]@2 [f#3,b3,d4,f#4]@3 [f#3,f#4] [g#3,g#4]@3, ~@20 [b3,d4]@3 ~", // Dmaj7 Bm7 G#dim Bm F# G# Bm
  E: "[g#3,a3,c#4,e4]@14 ~ [a3,b3,d4,f#4]@4 ~ [b3,c#4,e4,g#4]@3 ~", // Amaj7 Bm7 C#m7
  F: "[g#3,a3,c#4,g#4]@3 e3@2 [c#3,a3,c#4]@12 ~ [g#3,a3,c#4]@3 [a3,c#4,e4]@2 ~, ~@3 e4@14 ~@7", // Amaj7 F#m Amaj7 A
  G: "[a3,b3]@4 ~ b3 a3@4 b3 c#4, [d4,f#4] [d4,e4], ~@4 a3@2 b3@3 ~@3", // Asus2 D Dsus2
  H: "[g#3,a3,c#4,e4]@12 ~@5 a2 [a3,b3,d4,f#4]@2 ~ [b3,c#4,e4,g#4]@2 ~", // Amaj7 Bm7 C#m7
  I: "[g#3,a3,c#4,e4]@12 ~@5 a2 [a3,b3,d4,f#4]@2 ~ [a#3,d4,e4,g4]@2 ~", J: "[a3,c#4,d4,f#4]",
  K: "[[a3,e4]@10 ~ [a3,f#4]@12 ~@9 f#5 e5@3 [a3,c#4,e4,g4]@10 ~@2, c#4@22 ~ [a3,c#4,g#4]@11 ~@2 a4@4 ~@8]/2", // A5 D A7 Amaj7
  L: "[a3,c#4,d4,f#4]@17 ~@7", M: "[a3,c#4,d4,f#4]@7 ~@5",
  N: "[b3,e4,f#4,a4]@6 ~@2 [b3,e4,f#4,a4]@2 [f#4,a4]@2 [b3,d#4,f#4,a4]@9 ~@3, ~@10 [b3,e4] ~@13", // Bsus4 F#m B7 E5
  O: "~@2 [e3,a3,b3,d4]@2 [e3,b3,d4] ~ [e3,a3,b3,d4] ~ [e3,b3,d4] ~ [e3,a3,b3,d4] ~ [e3,g#3,b3,d4] ~@5 [a3,b3,d4,f#4]@2 ~ [b3,c#4,e4,g#4]@2 ~, ~@2 a3 ~ a3 ~@7", // Esus4 E7 Esus4 E7 Esus4 E7 Bm7 C#m7
  P: "[d4,f#4]@8 ~ e4@2 c#4@6 b3@7, a4@11 ~, c#4@10 ~ d4@13, ~ f#4@2", // D
  Q: "[a3,c#4,g#4]@2 ~@3 [a3,c#4,e4,g#4]@15 ~@4, e4 ~@23", // Amaj7
  R: "[c#4@11 b3@5 ~ [b3,d4,e4,a4]@6 [a3,c#4,e4,g#4]@9 ~ [a3,c#4,e4,g#4]@2 [a3,c#4,e4,g#4]@4 [a3,b3,d4,f#4]@3 ~@2 [b3,c#4,e4,g#4]@3 ~, [d4,f#4,a4] ~@2]/2", // Bm7 Amaj7 Bm7 C#m7 D
  S: "c#4@4 b3@3 ~, [d4,f#4,a4]@5 ~", // D
  T: "[a3,c#4,e4,g#4]@4 ~@5 [e4,g#4]@11 ~ g#4@2 e4, ~@9 c#4@14 ~, ~@9 c#5@10 ~ c#5@4", // Amaj7 E
  U: "[b3,d4,f#4,a4]@9 [b3,d4,f#4,a4]@3 [b3,d4,e4,a4] ~@5 [b3,d4,e4,a4]@6", // Bm7
  V: "b3@6 c#4@6 ~@6 [a3,b3,d4,f#4]@3 [a#3,d4,e4,g4]@2 ~, [e4,a4] ~", // Bm7 Em7b5 A5
  W: "[[a3,e4]@10 ~ [a3,f#4]@12 c#4@9 c#4@2 ~@2 [a3,c#4]@11 g4, c#4@22 ~ [a3,g#4]@11 e4@13 ~, ~@12 g4@3 ~]/2", // A5 D A Amaj7
  X: "[~@15 c#5 ~@2 e5@2 ~@4 [a3,c#4,d4,f#4]@14 ~@10, [a3,c#4,d4,f#4]@17 ~@3 a4@7 ~@21]/2", // Dmaj7
  Y: "[c#4,e4,b4]@10 ~@2 [c#4,e4,a4]@2 ~@6 [b3,c#4,e4,g#4]@3 ~", // C#m7 A C#m7
  Z: "~@15 [a3,b3,d4,f#4] ~@4 a4 b4@2 c#5, [a3,b3,d4,f#4]@5 ~@3, ~@11 d5@7 ~@6", // Bm7
  AA: "~@2 c#5 f#4@3 a4@4 ~@5 e5 [d5,d#5] c#5 e5 d#5 [c#5,d5] e5 d#5 [c#5,d5], [f#3,a3,c#4,e4]@3 ~", // D#maj7 Dmaj7 F#m7
  AB: "[a3,b3,d4,f#4,d5] ~@4 b4 ~@2 a4 b4 d5 b4 a4 b4 d5 b4 a4 d5 [a3,b3,c#4,d4,f#4,b4] a4 d5 b4 a4 d5, ~@5 [a3,b3,d4,f#4]@13 ~@6", // Bm7 Dmaj7 Bm7
  AC: "c#5@2 ~@4 f#4@2 a4@4 ~@2 f#4 c#4@2 f#3 [f#3,a3,c#4,e4] ~@2 c#4 ~@2, [f#3,a3,e4]@17 ~@7, c#4@15 ~@3 b3@2 ~@4", // F#m7
  AD: "c#4@5 ~ c4@5 ~, [a#3,d#4,f#4]@7 ~", AE: "c4@10 ~@2 b3@11 ~, [a3,d4,f4]@23 ~",
  AF: "[a#3,c4,d#4,g4]@15 [a#3,c4,d#4,g4]@2 [a#3,c4,d#4,g4] ~@6", // Cm7
  AG: "~@2 [f3,a#3,c4,d#4]@2 [f3,c4,d#4] ~ [f3,a#3,c4,d#4] ~@7 [a#3,c4,d#4,f4]@2 [a#3,c4,f4]@2 [a#3,c4,d#4,f4] ~@5, ~@4 a#3@2 ~@10 d#4 ~@7", // Fsus4 F7 Fsus4 A#sus4 A#sus2 A#sus4
  AH: "~@2 [c4,d#4,f4,a#4]@2 [c4,d#4,f4,a#4] ~ [c4,d#4,f4,a#4] ~ [c4,d#4,f4,a#4] ~ [c4,d#4,f4,a#4] ~ [c4,d#4,f4,g#4,a4] g6 [d6,e6,f6] [g5,a5,b5,c6] [c5,d5,e5,f5] b4 [a#3,c4,d#4,g4]@2 ~ [c4,d4,f4,a4]@2 ~", // Cm7 F7 Dm Cmaj7 Dm7 Cm7 Dm7
  AI: "[d#4,g4]@8 ~ f4@2 d4@6 c4@7, a#4@11 ~, d4@10 ~ d#4@13, ~ g4@2", // D#
  AJ: "[a#3,d4,a4]@2 ~@3 [a#3,d4,f4,a4]@15 ~@4, f4 ~@23", // A#maj7
  AK: "[d4@11 c4@5 ~ [c4,d#4,f4,a#4]@6 [a#3,d4,f4,a4]@9 ~ [a#3,d4,f4,a4]@2 [a#3,d4,f4,a4]@4 [a#3,c4,d#4,g4]@3 ~@2 [c4,d4,f4,a4]@3 ~, [d#4,g4,a#4] ~@2]/2", // Cm7 A#maj7 Cm7 Dm7 D#
  AL: "d4@4 c4@3 ~, [d#4,g4,a#4]@5 ~", AM: "[a#3,d4,f4,a4]@4 ~@5 [f4,a4]@11 ~ a4@2 f4, ~@9 d4@14 ~, ~@9 d5@10 ~ d5@4",
  AN: "[c4,d#4,g4,a#4]@9 [c4,d#4,g4,a#4]@3 [c4,d#4,f4,a#4] ~@5 [c4,d#4,f4,a#4]@6", // Cm7
  AO: "[d4,f4,c5]@10 ~@2 [c#4,d#4,f#4,b4]@5 ~ [b3,c#4,e4,g#4]@2 ~ [c#4,d#4,f#4,a#4]@2 ~", // Dm7 B C#m7 D#m7
  AP: "[e4,g#4]@8 ~ f#4@2 d#4@6 c#4@7, b4@11 ~, d#4@10 ~ e4@13, ~ g#4@2", // E
  AQ: "[b3,d#4,a#4]@2 ~@21 a#2, f#4 ~@4 b3@11 [c#5,d#5] [g#4,a#4] [d#4,f#4] c#4 [g#3,a#3] [d#3,f#3] c#3@2, ~@5 [d#4,f#4,a#4]@10 [f#5,g#5,a#5]@9, ~@13 [f#6,g#6]@11, ~@7 [c#6,d#6]@5", // Bmaj7 C#sus2 G#sus2 D#m G#sus2 D#m F# F#sus2 …
  AR: "[d#4@11 c#4@5 ~ [c#4,e4,f#4,b4]@6 [b3,d#4,f#4,a#4]@9 ~ [b3,d#4,f#4,a#4]@2 [b3,d#4,f#4,a#4]@4 [b3,c#4,e4,g#4]@3 ~@2 [c#4,d#4,f#4,a#4]@3 ~, [e4,g#4,b4] ~@2]/2", // C#m7 Bmaj7 C#m7 D#m7 E
  AS: "d#4@4 c#4@3 ~, [e4,g#4,b4]@5 ~", // E
  AT: "[b3,d#4,f#4,a#4]@4 ~@5 [f#4,a#4]@11 ~ a#4@2 f#4, ~@9 d#4@14 ~, ~@9 d#5@10 ~ d#5@4", // Bmaj7 F#
  AU: "[c#4,e4,g#4,b4]@9 [c#4,e4,g#4,b4]@3 [c#4,e4,f#4,b4] ~@5 [c#4,e4,f#4,b4]@6", // C#m7
  AV: "[d#4,f#4,c#5]@10 ~@2 [d4,e4,g4,c5]@5 ~ [c4,d4,f4,a4]@2 ~ [d4,e4,g4,b4]@2 ~", // D#m7 C Dm7 Em7
  AW: "[f4,a4]@8 ~ g4@2 e4@6 d4@7, c5@11 ~, e4@10 ~ f4@13, ~ a4@2", AX: "[c4,e4,b4]@2 ~@3 [c4,e4,g4,b4]@19, g4 ~@23",
  AY: "[e4@11 d4@5 ~ [d4,f4,g4,c5]@6 [c4,e4,g4,b4]@9 ~ [c4,e4,g4,b4]@2 [c4,e4,g4,b4]@4 [c4,d4,f4,a4]@3 ~@2 [d4,e4,g4,b4]@3 ~, [f4,a4,c5] ~@2]/2", // Dm7 Cmaj7 Dm7 Em7 F
  AZ: "e4@4 d4@3 ~, [f4,a4,c5]@5 ~", BA: "[c4,e4,g4,b4]@4 ~@5 [g4,b4]@11 ~ b4@2 g4, ~@9 e4@14 ~, ~@9 e5@10 ~ e5@4",
  BB: "[[d4,f4,a4,c5]@9 [d4,f4,a4,c5]@3 [d4,g4,c5] ~@7 [d4,f4,g4,c5]@9 ~@32 c7@6 ~@29, ~@12 f4@2 ~@15 c2@56 ~@11, ~@29 c5@12 g4@44 ~@11, ~@29 g4@8 e4@9 d5@4 g5@3 c6@4 g6@11 ~@28, ~@29 e4@5 d4@9 c5@42 ~@11]/4", // Dm7 Csus2 Dm7
})).s("gm_piano").gain(0.38).pan(0.4)

// chords · synth strings 2
const synth_strings_2 = note(`<
  A B C D E F@2 G H B C D E F@2 G I J K L@2 M N O P B C D E F@2 G I J K L@2 M N O P B C D E F@2 G Q R@2 S T U V W X Y Z
  AA AB AC AD@2 AE AF AG AH AI AJ AK@2 AL AM AN AO AP AQ AR@2 AS@4
>`.pickRestart({
  A: "~@6 [d4,f#4] [e4,g#4]", B: "c#4 b3, [d4,a4]", C: "[a3,c#4,g#4]@6 [d4,f#4] [e4,g#4]", D: "c#4@11 b3@13, [d4,a4]",
  E: "[a3,c#4,g#4]@12 ~@3 [d4,f#4]@4 ~ [e4,g#4]@3 ~", F: "[c#4 ~ [a3,c#4]@2, d4 ~, a4@3 g#4@5, ~ b3 ~@2]/2",
  G: "f#4 e4, [d4,a4]", H: "[b3,e4,a4]@11 ~@7 [d4,f#4]@3 [e4,g#4]@3", I: "[b3,e4,a4]@11 ~@7 [d4,f#4]@3 [e4,g4]@2 ~",
  J: "[c#4,d4,f#4,a4] [c#4,d4,f#4,b4]", K: "[d4,f#4,a4,c#5] [c#4,d4,f#4,b4]",
  L: "[[a3,c#4,e4,g#4] [a3,c#4,f#4] [a3,c#4,g#4] [a3,c#4,e4,g4], ~ e4@2 ~]/2", M: "[d4,f#4,c#5] [d4,f#4,b4], a4",
  N: "[d4,f#4,a4,c#5] [d4,f#4,a4,b4]", O: "e4 d#4, [b3,f#4,a4]",
  P: "[a3,d4,f#4,a4]@12 [g#3,b3,e4]@2 ~@4 [d4,f#4]@3 [e4,g#4]@2 ~", Q: "[b3,e4,a4] ~",
  R: "[b4 [c#4,a4], f#4@23 ~, d4@11 ~@13]/2", S: "[d4,f#4,b4]", T: "[c#4,f#4,a4]", U: "c#4 c4, [f#4,a#4]",
  V: "c4 b3, [f4,a4]", W: "[a#3,d#4,g4]", X: "f4 g4, [a#3,d#4]",
  Y: "[c4,f4,a#4]@12 [c4,f4,a4] ~@5 [d#4,g4]@3 [f4,a4]@2 ~", Z: "d4 c4, [d#4,a#4]",
  AA: "[a#3,d4,a4]@6 [d#4,g4] [f4,a4]", AB: "d4@11 c4@13, [d#4,a#4]", AC: "[a#3,d4,a4]@12 ~@3 [d#4,g4]@4 ~ [f4,a4]@3 ~",
  AD: "[d4 ~ [a#3,d4]@2, d#4 ~, a#4@3 a4@5, ~ c4 ~@2]/2", AE: "g4 f4, [d#4,a#4]",
  AF: "[c4,f4,a#4]@8 ~@4 [d#4,f#4,b4]@3 ~@3 [e4,g#4]@3 [f#4,a#4]@2 ~", AG: "d#4 c#4, [e4,b4]",
  AH: "[b3,d#4,a#4]@6 [e4,g#4] [f#4,a#4]", AI: "d#4@11 c#4@13, [e4,b4]",
  AJ: "[b3,d#4,a#4]@12 ~@3 [e4,g#4]@4 ~ [f#4,a#4]@3 ~", AK: "[d#4 ~ [b3,d#4]@2, e4 ~, b4@3 a#4@5, ~ c#4 ~@2]/2",
  AL: "g#4 f#4, [e4,b4]", AM: "[c#4,f#4,b4]@8 ~@4 [e4,g4,c5]@3 ~@3 [f4,a4]@3 [g4,b4]@2 ~", AN: "e4 d4, [f4,c5]",
  AO: "[c4,e4,b4]@6 [f4,a4] [g4,b4]", AP: "e4@11 d4@13, [f4,c5]", AQ: "[c4,e4,b4]@12 ~@3 [f4,a4]@4 ~ [g4,b4]@3 ~",
  AR: "[e4 ~ [c4,e4]@2, f4 ~, c5@3 b4@5, ~ d4 ~@2]/2", AS: "[a4@12 g4@16 ~ [c4,e4,g4]@56 ~@11, [f4,c5]@29 ~@67]/4",
})).s("gm_synth_strings_2").gain(0.33).pan(0.6)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  A B C B D B C E@2 B C B D B C F@2 G@2 H@2 I@2 J K B C B D B C F@2 G@2 H@2 I@2 J K B C B D B C L@2 M N O N P Q R@2 S T
  U T V T U W@2 X Y X Z X Y AA@2 AB AC AB AD AB AC AE@4
>`.pickRestart({
  A: "~@6 f#4 g#4", B: "[f#4,a4]", C: "[e4,g#4]", D: "[e4,g#4]@12 ~@3 f#4@5 g#4@4",
  E: "[f#4@4 e4@8 ~@2 f#4 g#4, a4@3 ~]/2", F: "[f#4@12 e4@24 ~@6 a4@3 a#4@2 ~, a4@3 ~]/2",
  G: "[c#5@12 b4@12 c#5@12 b4@11 ~, f#4@47 ~]/2", H: "[g#4@6 f#4@6 g#4@6 g4@5 ~, c#4@23 ~]/2",
  I: "[c#5@11 ~ b4@12 c#5@12 b4@11 ~, f#4@47 ~]/2", J: "e4 d#4, b4",
  K: "[d4,a4]@12 [e4,g#4] ~@5 [d4,f#4]@3 [e4,g#4]@2 ~", L: "[f#4 e4@2 ~, a4@3 ~]/2", M: "[b3,d4]", N: "[a3,c#4]",
  O: "d4@3 e4, b3", P: "c#4 c4, f#4", Q: "c4 b3, f4", R: "[d#4@4 f4@3 g4, a#3]/2",
  S: "[c4,a#4]@12 [c4,a4] ~@5 [d#4,g4]@3 [f4,a4]@2 ~", T: "[g4,a#4]", U: "[f4,a4]", V: "[f4,a4]@12 ~@3 g4@5 a4@4",
  W: "[g4@12 f4@21 ~@3 [b3,f#4]@2 ~@4 [e4,g#4]@3 [f#4,a#4]@2 ~, a#4@11 ~@5]/2", X: "[g#4,b4]", Y: "[f#4,a#4]",
  Z: "[f#4,a#4]@12 ~@3 g#4@5 a#4@4", AA: "[g#4@12 f#4@21 ~@3 [c4,g4]@2 ~@4 [f4,a4]@3 [g4,b4]@2 ~, b4@11 ~@5]/2",
  AB: "[a4,c5]", AC: "[g4,b4]", AD: "[g4,b4]@12 ~@3 a4@5 b4@4", AE: "[a4 g4@6 ~, c5@85 ~@11]/4",
})).s("gm_string_ensemble_1").gain(0.26)

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

// other · synth drum
const synth_drum = note("<~@24 A ~@14 B ~@8 C ~@16 C ~@7 C ~@10>".pickRestart({
  A: "~@13 e4 c4 g3 ~@8", B: "~@18 b3 ~ a3 f3 g3 e3", C: "~@16 g4 c4 g3 ~@5",
})).s("gm_synth_drum").gain(0.55)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@6 A B C D E F G H I J K L M@2 N ~ O P Q R S T U V W X Y ~ M@2 ~@2 O P Q Z AA T U V W X ~ AB AC AD AE AF AG AH AI AJ
  AK AL AM AN AO AP AQ ~ AR AS AT AU AV AW AX ~ AY AZ BA BB BC BD ~@4
>`.pickRestart({
  A: "~@12 [c#4,e4,g#4]@9 ~@2 [c#4,e4,g#4]", B: "~@3 f#4@2 a4@3 f#4 ~@2 b3@5 ~ e4 ~@2 b3 ~@3, ~@2 d5@3 ~@19",
  C: "~@8 [b3,e4] ~@3 [a3,b3,e4] ~@11", D: "~@11 [d4,f#4,a4]@3 [d4,b4] ~@2 [e4,g#4,d5]@4 ~@3",
  E: "[e4,g#4,c#5]@4 ~@5 [c#4,e4,g#4] ~@2 g#3@2 [g#3,c#4,e4] ~@9", // C#m
  F: "~@6 [f#4,a4,d5]@2 ~@6 [d4,f#4,b4] ~@6 d4 ~ [d4,f#4]", G: "~@3 [g#4,c#5] ~@2 e5 ~ [g#4,c#5] ~@2 c#4 ~@12",
  H: "~@3 [f#4,a4,d5] ~@5 [f#4,a4,d5] ~@5 [f#4,b4,d5] ~@5 [f#4,b4,d5] ~@2", // D Bm
  I: "~@3 [e4,g#4,c#5] ~@5 [e4,g#4,c#5] ~@5 c#4@2 e4@3 ~ a3 ~ g3", J: "f#3@7 ~ a3 b3@2 e4@4 d4 ~ e4 c#4@2 a3 f#3@2 ~",
  K: "~@5 [e4,a4] ~@3 [e4,a4]@3 e5 ~@11, ~@9 [d5,e5] ~@14", L: "~@5 [f#4,a4,c#5] ~@18",
  M: "[~@14 [a4,c#5] ~ [f#4,a4,c#5] ~ [f#4,a4,c#5] ~ [f#4,a4,c#5]@2 [f#4,a4] ~ [e4,g#4]@4 ~ [e4,g#4,c#5] ~@6 [e4,f#4,c#5] ~ [e4,f#4,c#5] ~@9, ~@11 c#5@3 ~@10]/2", // A F#m E C#m F#7
  N: "~@17 [e4,g4,c#5] ~@3 [e4,g4,c#5]@2 [e4,g4,c#5]", O: "~@17 d4 [d4,f#4,b4] ~ d4 [d4,f#4,c#5] ~ [d4,f#4,b4]",
  P: "~@8 b4@2 e4@2 d#4@8 b4 d#4@3", Q: "d4 ~",
  R: "~@3 [d4,f#4,a4] ~ [d4,f#4,a4] ~@3 [f#4,a4] ~ [d4,f#4,b4] ~@5 [d4,f#4,b4] ~@3 [d4,f#4,b4]@2 [d4,f#4,b4]", // D F#m Bm
  S: "~@3 [c#4,e4,g#4] ~ [c#4,e4,g#4] ~@3 [c#4,e4,g#4]@2 [c#4,e4,g#4] ~@3 [c#4,e4,g#4]@2 [c#4,e4,g#4] ~@3 [c#4,e4,g#4] ~ [e4,g#4]", // C#m E
  T: "~@3 [d4,f#4,a4]@2 [d4,f#4,a4] ~@3 [d4,f#4,a4] ~ [d4,f#4,a4] ~@3 [d4,f#4,a4] ~ [d4,f#4,a4] ~@3 [d4,f#4,a4]@2 [d4,a4]", // D D5
  U: "~@3 [e4,g#4,c#5] ~ [e4,g#4,c#5] ~@3 [e4,g#4,c#5]@2 [e4,g#4,c#5] ~@12", // C#m
  V: "~@3 a4 ~ [d4,f#4,a4] ~@3 [d4,f#4,a4]@2 [d4,f#4,a4] ~@3 b4 ~ [d4,f#4,b4] ~@3 d4 ~ [d4,f#4,b4]", // D Bm
  W: "~@3 [e4,g#4] ~ [c#4,e4,g#4] ~@3 [e4,g#4]@2 [c#4,e4,g#4] ~@5 [c#4,e4,g#4] ~@5 [c#4,e4,g#4]", // E C#m E C#m
  X: "~@3 [d4,f#4,b4]@2 [d4,f#4,b4] ~@3 [d4,f#4,b4]@2 ~ [d4,e4,b4] ~@11", Y: "~@2 [b4,e5,a5] ~@5 b3@3 a3@2 ~@11",
  Z: "~@3 [d4,f#4,a4]@2 [d4,f#4,a4] ~@3 [f#4,a4] ~ [d4,f#4,b4] ~@5 [d4,f#4,b4] ~@3 [d4,f#4,b4]@2 [d4,f#4,b4]", // D F#m Bm
  AA: "~@3 [c#4,e4,g#4] ~ [c#4,e4,g#4] ~@3 [c#4,e4,g#4]@2 [c#4,e4,g#4] ~@3 [c#4,e4,g#4] ~ [c#4,e4,g#4] ~@3 [c#4,e4,g#4] ~ [e4,g#4]", // C#m E
  AB: "~@3 [d4,f#4,b4]@2 [d4,f#4,b4] ~@9 [d4,f#4,b4]@2 [d4,f#4,b4] ~@6", // Bm
  AC: "~@3 [d4,f#4,a4]@2 [d4,f#4,a4] ~@9 [d4,f#4,a4]@2 [d4,f#4,a4] ~@6", // D
  AD: "~@3 [d4,f#4,b4]@2 [d4,f#4,b4] ~@9 [d4,f#4] ~ [d4,f#4,b4] ~@6", // Bm D Bm
  AE: "~@3 a4@2 [d4,f#4,a4] ~@9 [d4,f#4,a4]@2 [d4,f#4,a4] ~@6", AF: "~@5 [c#4,f#4,a#4] ~@9 a#4 ~ [c4,f#4,a#4] ~@6",
  AG: "~@3 [c4,f4,a4]@2 [c4,f4,a4] ~@9 [b3,f4,a4]@2 [b3,f4,a4] ~@6", // F Bm7b5
  AH: "~@3 [c4,d#4,a#4] ~@2 [c4,d#4,a#4]@2 [c4,d#4,a#4] ~@15", // Cm7
  AI: "~@8 [f4,a#4,d#5]@2 [f4,a#4,d#5]@2 [f4,a#4,d#5] ~@7 [f4,a#4,d#5]@2 [f4,a#4,d#5]@2", AJ: "[f4,a#4,d#5] ~@23",
  AK: "~@3 [d#4,g4,a#4] ~ [d#4,g4,a#4] ~@3 [g4,a#4] ~ [d#4,g4,c5] ~@5 [d#4,g4,c5] ~@3 [d#4,g4,c5]@2 [d#4,g4,c5]", // D# Gm Cm
  AL: "~@3 [d4,f4,a4] ~ [d4,f4,a4] ~@3 [d4,f4,a4]@2 [d4,f4,a4] ~@3 [d4,f4,a4] ~ [d4,f4,a4] ~@3 [d4,f4,a4] ~ [f4,a4]", // Dm F
  AM: "~@3 [d#4,g4,a#4]@2 [d#4,g4,a#4] ~@3 [d#4,g4,a#4] ~ [d#4,g4,a#4] ~@3 [d#4,g4,a#4] ~ [d#4,g4,a#4] ~@3 [d#4,g4,a#4]@2 [d#4,a#4]", // D# D#5
  AN: "~@3 [f4,a4,d5] ~ [f4,a4,d5] ~@3 [f4,a4,d5]@2 [f4,a4,d5] ~@12", // Dm
  AO: "~@3 a#4 ~ [d#4,g4,a#4] ~@3 [d#4,g4,a#4]@2 [d#4,g4,a#4] ~@3 c5 ~ [d#4,g4,c5] ~@3 d#4 ~ [d#4,g4,c5]", // D# Cm
  AP: "~@3 [f4,a4]@2 [d4,f4,a4] ~@3 [f4,a4]@2 [d4,f4,a4] ~@5 [d4,f4,a4] ~@5 [d4,f4,a4]", // F Dm F Dm
  AQ: "~@3 [d#4,g4,c5]@2 [d#4,g4,c5] ~@3 [d#4,g4,c5]@2 ~ [d#4,f4,c5] ~@11", // Cm F7
  AR: "~@3 [e4,g#4,b4] ~ [e4,g#4,b4] ~@3 [g#4,b4] ~ [e4,g#4,c#5] ~@5 [e4,g#4,c#5] ~@3 [e4,g#4,c#5]@2 [e4,g#4,c#5]", // E G#m C#m
  AS: "~@3 [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~@3 [d#4,f#4,a#4]@2 [d#4,f#4,a#4] ~@3 [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~@3 [d#4,f#4,a#4] ~ [f#4,a#4]", // D#m F#
  AT: "~@3 [e4,g#4,b4]@2 [e4,g#4,b4] ~@3 [e4,g#4,b4] ~ [e4,g#4,b4] ~@3 [e4,g#4,b4] ~ [e4,g#4,b4] ~@3 [e4,g#4,b4]@2 [e4,b4]", // E E5
// … 152 more lines

More by Stevie Wonder