Strudelify

What a Woman Can Do

Rene Froger

KeyC majorTempo112 bpm
0:00/0:00
// What a Woman Can Do — Rene Froger
// 112 bpm, 6/8, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 158 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(112/3)

// 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 · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
  ~ A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 E F E F G H G H E F E F G H G H I@2 J@2 K@2 L@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 E F
  E F G H M N E F E F M O M O I@2 J@2 K@2 P@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 Q@2 R S T U R S T V W X E Y Z@2 AA@2 AB@2 AC@2
  Z@2 AA@2 AB@2 AC@2 AD@2 AE@2 AF@2 AG@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 AH AI AJ@2 ~
>`.pickRestart({
  A: "[~@10 e3 g3, c4@11 ~ d4@11 ~ c4@23 ~, ~@2 e3@4 ~@2 e3@11 ~@5, ~@8 g3@7 ~@5 g3@19 ~@9]/2",
  B: "[~@10 a3 c4, c4@11 ~ d4@11 ~ c4@19 ~@5, ~@2 e3@4 ~@2 e3@15 ~, ~@8 g3@7 ~@5 g3@20 ~@8]/2",
  C: "[~@6 c4@4 a3 c4, e4@11 ~ d4@11 ~@25, ~@2 a3@4 ~@2 f3@15 ~, ~@8 c4@7 ~@5 a3@18 ~@10]/2",
  D: "[~@10 g3 a3, e4@11 ~ d4@11 ~ c4@11 ~ d4@11 ~, ~ a3@2 ~ f3@2 ~ f3@2 ~@3, ~@8 c4@7 ~@5 a3@8 ~@4 a3@8 ~@8]/2",
  E: "[f3,a3,c4,f4]@11 ~ [f3,a3,c4,f4]@11 ~", F: "[f3,a3,b3,f4]@11 ~ [f3,a3,b3,f4]@12",
  G: "[e3,g3,b3,e4]@11 ~ [e3,g3,b3,e4]@11 ~", H: "[e3,g3,a3,e4]@11 ~ [e3,g3,a3,e4]@12",
  I: "[~@32 c4@3 ~ [g3,c4,d4]@12, e4@8 c4@7 ~ g3@8 e4@10 ~@14, ~@4 g3@8 e4@8 c4@7 ~ g3@7 ~@13]/2", // Gsus4
  J: "[~@32 a3@3 ~ [f3,a3,c4]@12, c4@8 a3@7 ~ f3@8 c4@10 ~@14, ~@4 f3@8 c4@8 a3@7 ~ f3@7 ~@13]/2", // F
  K: "[~@32 c4@3 ~ [g3,c4,e4]@12, f4@8 c4@7 ~ a3@8 f4@10 ~@14, ~@4 a3@8 f4@8 c4@7 ~ a3@7 ~@13]/2", // C
  L: "[~@20 c4@4 ~@8 b3@7 ~@5 g3@3 ~, [d4,g4]@8 g4@11 ~ g4@7 ~@5 g4@15 ~, ~@4 g3@8 d4@9 ~@3 d4@9 ~@7 b3@7 ~, ~@8 c4@7 ~ g3@9 ~@3 g3@8 ~@12]/2", // G5
  M: "[e3,g3,b3,d4]@11 ~ [e3,g3,b3,d4]@11 ~", N: "[g3,a#3,c#4,f4]@11 ~ [g3,a3,c4,e4]@12",
  O: "[e3,g3,a3,c4]@11 ~ [e3,g3,a3,c4]@12", // Am7
  P: "[~@20 c4@4 ~@20 g3@3 ~, [d4,g4]@8 g4@11 ~ g4@12 b3@7 ~ b3@7 ~, ~@4 g3@8 d4@9 ~@3 d4@9 ~@3 [d4,g4]@8 ~@4, ~@8 c4@7 ~ g3@9 ~@3 g3@8 ~@12]/2", // G5
  Q: "[~@40 g3@4 b3@3 ~, e4@11 ~ d4@11 ~ c4@11 ~ d4@11 ~, ~ a3@2 ~ f3@2 ~ f3@2 ~@3, ~@8 c4@7 ~@5 a3@8 ~@4 a3@8 ~@8]/2",
  R: "[b3,d4,e4,g4]@11 ~ [b3,d4,e4,g4]@11 ~", S: "[b3,d4,e4,g4]!2", T: "[g3,a3,c4,e4]@11 ~ [g3,a3,c4,e4]@11 ~",
  U: "[g3,a3,c4,e4]!2", V: "[g3,b3,d4]@6 ~@2 [g3,c4,e4]@5 ~@3 [g3,b3,d4]@6 ~@2",
  W: "[f3,a3,c4,e4]@11 ~ [f3,a3,c4,e4]@11 ~", X: "[f3,a3,c4,e4]!2", Y: "[g3,b3,d4]@11 ~ [g3,b3,d4]@11 ~",
  Z: "[~@10 g3 a#3, d#4@11 ~ f4@11 ~ d#4@23 ~, ~@2 g3@4 ~@2 g3@11 ~@5, ~@8 a#3@7 ~@5 a#3@19 ~@9]/2",
  AA: "[~@10 c4 d#4, d#4@11 ~ f4@11 ~ d#4@19 ~@5, ~@2 g3@4 ~@2 g3@15 ~, ~@8 a#3@7 ~@5 a#3@20 ~@8]/2",
  AB: "[~@6 d#4@4 c4 d#4, g4@11 ~ f4@11 ~@25, ~@2 c4@4 ~@2 g#3@15 ~, ~@8 d#4@7 ~@5 c4@18 ~@10]/2",
  AC: "[~@10 a#3 c4, g4@11 ~ f4@11 ~ d#4@11 ~ f4@11 ~, ~ c4@2 ~ g#3@2 ~ g#3@2 ~@3, ~@8 d#4@7 ~@5 c4@8 ~@4 c4@8 ~@8]/2",
  AD: "[~@32 d#4@3 ~ [a#3,d#4,f4]@12, g4@8 d#4@7 ~ a#3@8 g4@10 ~@14, ~@4 a#3@8 g4@8 d#4@7 ~ a#3@7 ~@13]/2", // A#sus4
  AE: "[~@32 c4@3 ~ [g#3,c4,d#4]@12, d#4@8 c4@7 ~ g#3@8 d#4@10 ~@14, ~@4 g#3@8 d#4@8 c4@7 ~ g#3@7 ~@13]/2", // G#
  AF: "[~@32 d#4@3 ~ [a#3,d#4,g4]@12, g#4@8 d#4@7 ~ c4@8 g#4@10 ~@14, ~@4 c4@8 g#4@8 d#4@7 ~ c4@7 ~@13]/2", // D#
  AG: "[~@20 d#4@4 ~@20 a#3@3 ~, [f4,a#4]@8 a#4@11 ~ a#4@12 d4@7 ~ d4@7 ~, ~@4 a#3@8 f4@9 ~@3 f4@9 ~@3 [f4,a#4]@8 ~@4, ~@8 d#4@7 ~ a#3@9 ~@3 a#3@8 ~@12]/2", // A#5
  AH: "[f3,a3,c4,e4]@11 ~ [f3,a3,d4]@11 ~", AI: "[f3,a3,c4]@11 ~ [f3,a3,d4]@11 ~", AJ: "[[g3,c4,e4]@47 ~]/2",
})).s("gm_epiano2").gain(0.3).pan(0.4)

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

// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  A@3 B@8 C@7 ~@14 D@7 E@4 B@8 F@8 ~ G@8 H@4 I@8 A@3 B@8 J@8 K@8 L M@3 N@8 O@8 P@5 A@3 B@16 Q@6 ~
>`.pickRestart({
  A: "[~@23 [c5,c6]@12 [d5,d6]@12 ~ c5@16 [e4,e5]@3 [g4,g5]@4 c6, ~@47 c6@17 ~@8]/3", // C D E G
  B: "[c5@11 [d5,d6]@12 [c5,c6]@16 ~ [a4,a5]@3 [c5,c6]@4 [e5,e6]@12 [d5,d6]@12 ~ c5@16 [a4,a5]@3 [c5,c6]@4 [e5,e6]@12 [d5,d6]@12 [c5,c6]@12 [d5,d6]@12 [c5,c6]@12 [d5,d6]@12 ~ c5@16 [e4,e5]@3 [g4,g5]@4 c6, ~@71 c6@17 ~@79 c6@17 ~@8]/8", // D C A C E D A C …
  C: "[c5@11 [d5,d6]@12 [c5,c6]@16 ~ [a4,a5]@3 [c5,c6]@4 [e5,e6]@12 [d5,d6]@12 ~ c5@16 [a4,a5]@3 [c5,c6]@4 [e5,e6]@12 [d5,d6]@12 [c5,c6]@12 [d5,d6]@12 [c5,c6]@25, ~@71 c6@17 ~@80]/7", // D C A C E D A C …
  D: "[~@12 a5@3 c6@4 d6@4 e6@36 d6@12 c6@48 f6@36 e6@12 ~]/7",
  E: "[d6@23 g6@13 ~@11 [c5,c6]@12 [d5,d6]@12 ~ c5@16 [e4,e5]@3 [g4,g5]@4 c6, ~@71 c6@17 ~@8]/4", // C D E G
  F: "[c5@11 [d5,d6]@12 [c5,c6]@16 ~ [a4,a5]@3 [c5,c6]@4 [e5,e6]@12 [d5,d6]@12 ~ c5@16 [a4,a5]@3 [c5,c6]@4 [e5,e6]@12 [d5,d6]@12 [c5,c6]@12 [d5,d6]@12 [c5,c6]@24 [b4,b5]@25, ~@71 c6@17 ~@104]/8", // D C A C E D A C …
  G: "[~@23 b4@24 a4@24 g4@24 a#4@13 a4@11 f5@72 g5]/8", H: "[~@11 a5@12 g5@73]/4",
  I: "[~@12 a5@3 c6@4 d6@4 e6@36 d6@12 c6@48 f6@36 e6@12 d6@24 g6]/8",
  J: "[c5@11 [d5,d6]@12 [c5,c6]@16 ~ [a4,a5]@3 [c5,c6]@4 [e5,e6]@12 [d5,d6]@12 ~ c5@16 [a4,a5]@3 [c5,c6]@4 [e5,e6]@12 [d5,d6]@12 [c5,c6]@12 [d5,d6]@12 g6@45 ~@4, ~@71 c6@17 ~@104]/8", // D C A C E D A C …
  K: "[e6@36 a6@11 g6@45 ~@3 g6@24 ~ b5@7 ~ [e5,c6]@6 ~@2 [d5,b5]@7 c4@47 ~@2, ~@119 d5@6 ~@67]/8", L: "~@3 b3 c4 g4",
  M: "[f4@4 d4@3 f4@4 b4@12 [d#5,d#6]@12 [f5,f6]@12 ~ d#5@16 [g4,g5]@3 [a#4,a#5]@4 d#6, ~@47 d#6@17 ~@8]/3", // D# F G A#
  N: "[d#5@11 [f5,f6]@12 [d#5,d#6]@16 ~ [c5,c6]@3 [d#5,d#6]@4 [g5,g6]@12 [f5,f6]@12 ~ d#5@16 [c5,c6]@3 [d#5,d#6]@4 [g5,g6]@12 [f5,f6]@12 [d#5,d#6]@12 [f5,f6]@12 [d#5,d#6]@12 [f5,f6]@12 ~ d#5@16 [g4,g5]@3 [a#4,a#5]@4 d#6, ~@71 d#6@17 ~@79 d#6@17 ~@8]/8", // F D# C D# G F C D# …
  O: "[d#5@11 [f5,f6]@12 [d#5,d#6]@16 ~ [c5,c6]@3 [d#5,d#6]@4 [g5,g6]@12 [f5,f6]@12 ~ d#5@16 [c5,c6]@3 [d#5,d#6]@4 [g5,g6]@12 [f5,f6]@12 [d#5,d#6]@12 [f5,f6]@12 g6@37 f6@12, ~@71 d#6@17 ~@104]/8", // F D# C D# G F C D# …
  P: "[d#6@47 g#6@36 c7@12 a#6@25]/5",
  Q: "[c5@11 [d5,d6]@12 [c5,c6]@16 ~ [a4,a5]@3 [c5,c6]@4 [e5,e6]@12 [d5,d6]@12 [c5,c6]@12 [d5,d6]@12 [c5,c6]@48 ~]/6", // D C A C E D C D …
})).s("gm_string_ensemble_2").gain(0.48)

// chords · trumpet
const trumpet = note("<~@104 A B@2 C@2 D@2 ~@21 E F ~@18 G H I J@2 ~>".pickRestart({
  A: "[d5,g5,b5]@3 ~ [e5,a5,c6]@3 ~ [d5,g5,b5]@3 ~", B: "[[c5,f5,a5]@23 ~]/2",
  C: "[[a4,c5]@24 [f4,b4]@23 ~, [d5,g5]@15 ~]/2", D: "[[d#5,g5,a#5]@15 ~]/2",
  E: "[g4,g5]@3 f#5 [f4,f5]@3 [e4,e5] d#4@3 [g4,g5] ~@4 [g3,g4]@3 ~ [a3,a4]@4, [f#4,f#5] ~@3 f#4 ~@2 d#5@3 ~@14", // G F E G A F#
  F: "[c4,c5]", G: "~@16 a4@3 ~ c5@3 ~", H: "[g3,g4,e5]@11 ~ [g3,f4,d5]@10 ~@2", I: "[g3,e4,c5]@11 ~ [g3,a4,d5]@11 ~",
  J: "[[g3,g4,c5]@15 ~, c3]/2", // C5
})).s("gm_trumpet").gain(0.31)

// other · trumpet
const trumpet_2 = note("<~@22 A B C ~@5 A B C ~@29 A B D E ~@4 A B F G ~@6 H I ~@76>".pickRestart({
  A: "~@12 b4@3 ~ c5@3 ~ d5@3 ~", B: "b4@7 ~ g4@2 ~@6 a4@4 e4@4", C: "g4@5 ~", D: "f4@7 b4 c5@8 b4@4 c5@4",
  E: "a4 ~@11", F: "g4@8 a4@8 b4@7 ~", G: "c5 ~@11", H: "~@4 g4@4 a4@3 ~ c5@4 d5@4 e5@4", I: "c5 ~@23",
})).s("gm_trumpet").gain(0.38).pan(0.6)

// other · trumpet · soft notes
const trumpet_soft = note("<~@23 A ~@7 A ~@31 A ~@7 A B ~@85>".pickRestart({
  A: "~@7 f#4 ~@11 d#4 ~@4", B: "~@7 g#4 ~@16",
})).s("gm_trumpet").gain(0.22).pan(0.6)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~ A@2 B@2 C D E@2 A@2 B@2 C D F@2 G H G H I J I J G H G H I J I J K@2 L@2 M@2 N@2 A@2 B@2 C D O@2 A@2 B@2 C D F@2 G H
  G H I J P Q G H G H I J I J K@2 L@2 M@2 N@2 A@2 B@2 C D O@2 A@2 B@2 C D R@2 S@2 T@2 U@2 V W X@2 Y Z AA@2 AB@2 AC AD
  AE@2 AA@2 AB@2 AC AD AF@2 AG@2 AH@2 AI@2 AJ@2 A@2 B@2 C D AK@2 A@2 B@2 C D AK@2 A@2 AL@4 AM@2 ~
>`.pickRestart({
  A: "[~@40 e3@3 ~ g3@4, c4@12 d4@12 c4@7 ~ c4@12 ~@4, ~ e3@2 ~ e3@2 ~ e3@2 ~@3, ~@8 g3@11 ~ g3@19 ~@9]/2",
  B: "[~@40 a3@3 ~ g3@4, c4@12 d4@12 c4@7 ~ c4@11 ~@5, ~@2 e3@4 ~@2 e3@11 ~@5, ~@8 g3@11 ~ g3@7 ~ g3@8 ~@12]/2",
  C: "~@5 d4, e4@12 d4@7 ~@5, ~ a3@2 ~ a3@2, ~@8 c4@15 ~", D: "~@16 a3@3 ~ c4@4, c4@7 ~ c4@12 ~@4, ~ a3@2 ~@3",
  E: "[~@20 d4@4 ~@8 c4@3 ~@9 g3@4, e4@12 d4@7 ~@9 f3@8 ~@12, ~@4 a3@8 ~@4 a3@22 ~@2 a3@7 ~, ~@8 c4@15 ~ c4@7 ~@5 b3@12]/2",
  F: "[~@20 d4@4 ~@8 c4@3 ~@9 a3@4, e4@12 d4@7 ~@9 f3@8 ~@4 g3@7 ~, ~@2 a3@4 ~@2 a3@11 ~@5, ~@8 c4@15 ~ c4@7 ~@5 d4@12]/2",
  G: "[a3,c4,f4]@4 [a3,c4,f4] ~@3", H: "[a3,b3,f4]@4 [a3,b3,f4] ~@3", I: "[g3,b3,e4]@4 [b3,e4,g4] ~@3",
  J: "[g3,a3,e4]@4 [g3,a3,e4] ~@3", // A7
  K: "[~@24 e4@11 ~ [g3,c4,d4]@11 ~, e4@11 ~ e4@12 ~@24, ~@4 g3@8 ~@4 g3@19 ~@13, ~@8 c4@11 ~ c4@14 ~@14]/2", // Gsus4
  L: "[~@24 c4@11 ~@9 a3@4, c4@12 c4@12 ~@12 c4@11 ~, ~@4 f3@8 ~@4 f3@19 ~@5 f3@8, ~@8 a3@11 ~ a3@15 ~ a3@7 ~@5]/2",
  M: "[~@24 f4@11 ~ [g3,c4,e4]@11 ~, f4@11 ~ f4@11 ~@25, ~@4 a3@8 ~@4 a3@19 ~@13, ~@8 c4@11 ~ c4@15 ~@13]/2", // C
  N: "[~@10 c4@2 d4@5 ~ [d4,g4]@6, d4@12 d4@11 ~@25, ~@4 g3@8 ~@4 g3@19 ~@13, ~@8 c4@11 ~@16 b3@13]/2", // G5
  O: "[~@20 d4@4 ~@8 c4@3 ~@9 g3@4, e4@12 d4@7 ~@9 f3@8 ~@12, ~@4 a3@8 ~@4 a3@22 ~@2 a3@7 ~, ~@8 c4@15 ~ c4@7 ~@5 [b3,d4]@12]/2", // Bm
  P: "[d4,g4,b4]@4 [d4,g4,b4] ~@3", Q: "[c#4,f4,a#4] [c4,e4,a4]",
  R: "[~@20 d4@4 ~@8 c4@3 ~@9 b3@4, e4@12 d4@7 ~@9 f3@8 ~@4 g3@7 ~, ~@2 a3@4 ~@2 a3@11 ~@5, ~@8 c4@15 ~ c4@7 ~@5 d4@12]/2",
  S: "[~@24 g4@11 ~ d4@8 d4@4, g3@15 ~, ~ d4@12 ~@3 d4@19 ~@13, ~ b3@7 b3@9 ~@3 b3@15 b3@11 ~@2, ~@2 g4@9 ~ g4@11 ~@13 g4@11 ~]/2",
  T: "[~@24 e4@11 ~ [c4,e4]@12, g3@19 ~ g3@15 g3@11 ~@2, c4@7 ~ c4@7 ~ c4@19 ~@13, ~ e4@10 ~ e4@11 ~@25]/2", // C
  U: "[~ g4@7 ~@16 g4@11 ~ d4@8 d4@4, g3@15 ~, b3@7 ~ b3@8 d4@19 ~@13, ~ d4@11 g4@11 ~@13 g4@11 ~, ~@20 b3@15 b3@11 ~@2]/2",
  V: "~@20 g3@3 ~, g3@19 ~@5, c4@7 ~ c4@7 ~ c4@7 ~, ~ e4@10 ~ e4@11 ~",
  W: "[b3,d4,g4]@5 ~@3 [e4,g4]@6 ~@2 [b3,d4,g4]@6 ~@2, ~@7 c4@6 ~@11", // G Em G
  X: "[~@24 e4@11 ~ c4@8 c4@4, f3@15 ~, a3@7 ~ a3@9 ~@3 a3@15 a3@11 ~@2, ~ c4@12 ~@3 c4@19 ~@13, ~@2 e4@9 ~ e4@11 ~@13 e4@11 ~]/2",
  Y: "~ f4@7 ~@12 a3@4, f3@23 ~, a3@7 ~ a3@8 c4@7 ~, ~ c4@11 f4@11 ~",
  Z: "~ g4@7 ~@4 g4@11 ~, f3, b3@7 ~ b3@15 ~, ~ d4@22 ~",
  AA: "[~@40 g3@3 ~ a#3@4, d#4@12 f4@12 d#4@7 ~ d#4@12 ~@4, ~ g3@2 ~ g3@2 ~ g3@2 ~@3, ~@8 a#3@11 ~ a#3@19 ~@9]/2",
  AB: "[~@40 c4@3 ~ a#3@4, d#4@12 f4@12 d#4@7 ~ d#4@11 ~@5, ~@2 g3@4 ~@2 g3@11 ~@5, ~@8 a#3@11 ~ a#3@7 ~ a#3@8 ~@12]/2",
  AC: "~@5 f4, g4@12 f4@7 ~@5, ~ c4@2 ~ c4@2, ~@8 d#4@15 ~", AD: "~@16 c4@3 ~ d#4@4, d#4@7 ~ d#4@12 ~@4, ~ c4@2 ~@3",
  AE: "[~@20 f4@4 ~@8 d#4@3 ~@9 a#3@4, g4@12 f4@7 ~@9 g#3@8 ~@12, ~@4 c4@8 ~@4 c4@22 ~@2 c4@7 ~, ~@8 d#4@15 ~ d#4@7 ~@5 f4@12]/2",
  AF: "[~@20 f4@4 ~@8 d#4@3 ~@9 c4@4, g4@12 f4@7 ~@9 g#3@8 ~@4 a#3@7 ~, ~@2 c4@4 ~@2 c4@11 ~@5, ~@8 d#4@15 ~ d#4@7 ~@5 f4@12]/2",
  AG: "[~@24 g4@11 ~ [a#3,d#4,f4]@11 ~, g4@11 ~ g4@12 ~@24, ~@4 a#3@8 ~@4 a#3@19 ~@13, ~@8 d#4@11 ~ d#4@14 ~@14]/2", // A#sus4
  AH: "[~@24 d#4@11 ~@9 c4@4, d#4@12 d#4@12 ~@12 d#4@11 ~, ~@4 g#3@8 ~@4 g#3@19 ~@5 g#3@8, ~@8 c4@11 ~ c4@15 ~ c4@7 ~@5]/2",
  AI: "[~@24 g#4@11 ~ [a#3,d#4,g4]@11 ~, g#4@11 ~ g#4@11 ~@25, ~@4 c4@8 ~@4 c4@19 ~@13, ~@8 d#4@11 ~ d#4@15 ~@13]/2", // D#
  AJ: "[~@10 d#4@2 f4@5 ~ [f4,a#4]@6, f4@12 f4@11 ~@25, ~@4 a#3@8 ~@4 a#3@19 ~@13, ~@8 d#4@11 ~@16 d4@13]/2", // A#5
  AK: "[~@20 d4@4 ~@8 c4@3 ~@9 g3@4, e4@12 d4@7 ~@9 f3@8 ~@12, ~@4 a3@8 ~@4 a3@22 ~@2 a3@7 ~, ~@8 c4@15 ~ c4@7 ~@5 d4@12]/2",
  AL: "[~@40 a3@3 ~ g3@3 ~ [a3,c4,e4]@10 ~@2 [a3,d4]@11 ~ [a3,c4]@10 ~@2 [a3,d4,f4]@11 ~, c4@12 d4@12 c4@7 ~ c4@11 ~@53, ~@4 e3@8 ~@4 e3@22 ~@9 f3@10 ~@2 f3@12 f3@10 ~@2 f3@12 ~, ~@8 g3@11 ~ g3@7 ~ g3@8 ~@60]/4", // Am D5 Am Dm
  AM: "[~ e4@44 ~@3, [e3,g3,c4]@23 ~]/2", // C
})).s("gm_electric_guitar_clean").gain(0.36).pan(0.8)

// other · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@41 A@4 B@2 C D A@4 B@2 C E ~@24 A@4 B@2 C D A@4 B@2 C F G@2 ~@5 H I@2 J K L@4 M@2 N O L@4 M@2 N P Q@2 R@2 S@2 T@2
  A@4 B@2 C D A@4 B@2 C D U@4 V@4 ~
>`.pickRestart({
  A: "[c3@40 e2@3 g2@4 a2@39 ~@2 a2@4 g2@4]/4", B: "[f2@39 ~ a2@4 c3@4]/2", C: "d3@5 a2", D: "g2",
  E: "g2@20 ~@3 e2, ~@10 g2 f2, ~@21 f#2@2 ~", F: "g2@11 ~ f2@12, ~@11 f#2@2 ~@11", G: "[e2@5 ~]/2",
  H: "e2@6 ~@2 a2@5 ~@3 e2@6 ~@2", I: "d3/2", J: "g2@23 f#2", K: "f2", L: "[d#3@40 g2@3 a#2@4 c3@39 ~@2 c3@4 a#2@4]/4",
  M: "[g#2@39 ~ c3@4 d#3@4]/2", N: "f3@5 c3", O: "a#2", P: "a#2@20 ~@3 g2, ~@10 a#2 g#2, ~@21 a2@2 ~",
  Q: "[c3@35 ~ g2@12]/2", R: "[g#2@39 ~ g#2@3 ~ g2@4]/2", S: "[f2@35 ~ c3@12]/2", T: "[a#2@47 ~]/2",
  U: "[c3@40 e2@3 g2@4 a2@39 ~@2 a2@4 g2@3 ~]/4", V: "[g2@44 ~ a2 ~@2 c3@48, ~@44 g#2@2 a#2@3 ~@47, ~@47 b2@2 ~@47]/4",
})).s("gm_distortion_guitar").gain(0.28).pan(0.4)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note("<~@99 A@2 B ~ C ~ D@2 E F ~@49>".pickRestart({
  A: "[~@24 g4@15 ~ g3@3 ~ c4@4, ~@4 b3@8 g4@11 ~@25, ~@8 c4@11 ~ c4@19 ~@9, ~@16 b3@23 ~@9]/2", B: "d4@23 ~",
  C: "~@20 c4@3 ~, ~@4 b3@8 g4@11 ~, ~@8 c4@11 ~@5, ~@2 b3",
  D: "[~@8 c5@5 ~@3, ~@4 e4@8 c5@11 ~@25, ~@8 f4@11 ~ f4@19 ~@9, ~@16 e4@23 ~@9]/2",
  E: "~@5 g4, ~ c4@2 g4@2 ~, ~@8 d4@11 ~@5, ~@2 c4", F: "~ d4 ~ b4@3, f4@7 ~ f4@16",
})).s("gm_electric_guitar_jazz").gain(0.33)

// chords · muted trumpet · "MT TRUMPET"
const muted_trumpet = note("<~@104 A B@2 C@2 D@2 ~@43 E F@2 ~>".pickRestart({
  A: "[d5,g5,b5]@7 ~ [e5,a5,c6]@7 ~ [d5,g5,b5]@7 ~", B: "[[c5,f5,a5]@47 ~]/2", C: "[c5@8 b4@7 ~, [d5,g5]@15 ~]/2",
  D: "[[d#5,g5,a#5]@11 ~]/2", E: "~@6 d5@5 ~", F: "e5/2",
})).s("gm_muted_trumpet").gain(0.45)

// other · brass section · "BRASS 1"
const brass_section = note("<~@132 A B ~@18 C D E F@2 ~>".pickRestart({
  A: "g5@3 ~ f5@3 ~ d#5@3 ~ g5 ~@3 g4@3 ~ a4@3 ~", B: "c5", C: "~@16 a4@3 ~ c5@3 ~", D: "e5@5 ~ d5@5 ~",
  E: "c5@5 ~ d5@5 ~", F: "[c5@11 ~]/2",
})).s("gm_brass_section").gain(0.52)

// chords · pad warm · "WARM PAD"
const pad_warm = note(`<
  A@8 B@8 C ~@15 D@6 E@7 F@3 B@8 C ~@15 D@6 E@7 F@3 B@8 G@8 H@7 I@5 J@8 K@6 L@7 F@3 B@8 M@7 N@2 ~
>`.pickRestart({
  A: "[~@36 d4@11 c4@23 ~@14 d4@11 c4@23 ~ [c4,e4]@13 [d4,f4]@11 [f3,c4,e4]@24 ~ f4@24, ~@23 e4@47 ~ e4@47 ~@74, ~@23 c4@13 ~@35 c4@13 ~@108, ~@24 g3@47 ~ g3@47 a3@24 ~@24 [a3,c4]@25]/8", // C Dm Fmaj7 Am
  B: "[~@12 d4@11 ~@12 d4@12 c4@23 ~@14 d4@11 c4@23 ~ [c4,e4]@13 [d4,f4]@11 [f3,c4,e4]@23 ~@2 f4@24, ~@11 [g3,b3]@12 e4@47 ~ e4@47 ~@74, ~@23 c4@13 ~@35 c4@13 ~@108, ~@24 g3@47 ~ g3@47 a3@24 ~@24 [a3,c4]@25]/8", // C Dm Fmaj7 G Am
  C: "~@11 [g3,b3,d4]@12 ~", // G
  D: "[~@60 d4@11 ~ a3@47 [f3,a3,c4]@25, ~@23 c4@47 ~ [c4,f4]@47 ~@26, ~@23 e4@37 ~@84, ~@24 [g3,a3]@47 ~@73]/6", // F F5 Gsus2
  E: "[~@10 e4@13 ~@24 b3@24 ~@13 d4@11 c4@23 ~@14 d4@11 c4@23 ~ [a3,c4,e4], ~@23 d4@47 ~ e4@47 ~ e4@47 ~@2, ~@23 c4@25 ~@23 c4@13 ~@35 c4@13 ~@36, ~@24 [g3,g4]@48 g3@48 g3@47 ~]/7", // Am G
  F: "[~@12 [d4,f4]@11 [f3,c4,e4]@24 ~ f4@24, ~@47 [a3,c4]@25]/3", // Dm Fmaj7 Am
  G: "[~@11 [g3,b3,d4]@12 ~ b3@12 ~@36 g3@47 ~ b3@47 ~ g3@24, ~@23 [e4,g4]@48 ~@48 [d4,e4,g4]@48 ~@25, ~@23 d4@12 ~@36 [a3,c4,e4]@49 ~@47 [a3,c4,e4]@25]/8", // G Em Em7 Am
  H: "[[b3,d4]@7 ~ e4@7 [b3,d4]@8 ~ f3@47 ~ c4@23 ~ g3@23 ~@13 f4@11 d#4@23 ~ [d#4,g4], g3@23 [a3,c4,e4]@47 ~ [a3,d4,f4]@24 ~@24 d#4@13 ~@36, ~@7 c4@9 ~@79 [b3,d4,f4]@24 g4@47 ~@2, ~@120 a#3@47 ~]/7", // Bm D# Am Dm Bdim
  I: "[~@12 f4@11 d#4@23 ~ [d#4,g4]@13 [f4,g#4]@11 [g#3,d#4,g4]@24 ~ g#4@24, a#3@47 c4@24 ~@24 [c4,d#4]@25]/5", // D# Fm G#maj7 Cm
  J: "[~@12 f4@11 ~@12 f4@12 d#4@23 ~@14 f4@11 d#4@23 ~ [d#4,g4]@13 [f4,g#4]@11 [g#3,d#4,g4]@23 ~@2 g#4@24, ~@11 [a#3,d4]@12 g4@47 ~ g4@47 ~@74, ~@23 d#4@13 ~@35 d#4@13 ~@108, ~@24 a#3@47 ~ a#3@47 c4@24 ~@24 [c4,d#4]@25]/8", // D# Fm G#maj7 A# Cm
  K: "[~@11 [a#3,d4,f4]@12 ~@37 f4@11 ~ c4@47 [g#3,c4,d#4]@25, ~@23 d#4@47 ~ [d#4,g#4]@47 ~@26, ~@23 g4@37 ~@84, ~@24 [a#3,c4]@47 ~@73]/6", // A# G# G#5 A#sus2
// … 108 more lines

More by Rene Froger