Strudelify

La donna del mio amico

Pooh

KeyD majorTempo75 bpm
0:00/0:00
// La donna del mio amico — Pooh
// 75 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: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 12 electric guitar clean (copy of ch 14 electric guitar jazz)
// note: Full arrangement: all 99 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(75/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 · epiano1
const epiano1 = note(`<
  A B C D E F G H I J K L M N O P Q R S T@2 U V W X Y Z AA AB AC AD Q R S T@2 U V AE@2 AF AG AH AI AJ AK AL AM AN AO AP
  AM AQ AR AS@2 B C D AT X Y Z AA AB AC AD Q R S T@2 U V AE@2 AF AG AH AI AU AK AV AM AQ AW AX AY AN AZ BA@2 B C BB@4 ~
>`.pickRestart({
  A: "~ d3 f#3 a3 d4 c#4 a3 f#3", B: "~@2 f#3 a3 d4 c#4 a3 f#3, ~ d3@2 ~@5", C: "~ d3 g3 b3 d4 b3 g3 d3",
  D: "~@2 g3 a3 c#4 a3 g3 e3, ~ e3@2 ~@5", E: "~@6 a3@2 d4@2 c#4@2 a3@2 f#3 ~, ~@2 d3@7 ~@7, ~@2 f#3@3 ~@3",
  F: "~@2 f#3 a3 d4 c#4 a3 f#3, ~@2 d3@7 ~@7", G: "~ d3 ~ b3 d4 b3 ~ d3, ~@4 g3@7 ~ g3@4",
  H: "~@3 a3 ~ a3 ~ e3, ~ e3@4 ~ g3@2, ~@2 g3@2 c#4@3 ~", I: "~@3 a3 d4 c#4 a3 f#3, ~ d3@7, ~ f#3@2 ~",
  J: "~@3 a3 d4 c#4 ~ f#3, ~ d3@7, ~@2 f#3@3 ~ a3@2",
  K: "~@6 b3@2 ~@2 b3@2 ~@2 d3 ~, ~ d3@5 ~@2, ~@4 g3@7 ~ g3@4, ~@8 d4@7 ~",
  L: "~@6 a3@2 ~@2 a3 ~@3 e3 ~, ~ e3@5 ~@2, ~@2 g3@3 ~ g3@2, ~@8 c#4@7 ~",
  M: "~@3 a3 ~ c#4 a3 f#3, ~ d3@7, ~@4 f#3@9 ~@3, ~@2 d4 ~", N: "~@3 a3 ~@3 f#3, ~ d3@7, ~ f#3@2 a3, ~ d4, ~@5 c#4@2 ~",
  O: "~@6 b3@2 ~@2 b3@2 ~@2 d3 ~, ~ d3@5 ~@2, ~@4 g3@7 ~ g3@4, ~ d4",
  P: "~@3 a3 ~ a3 ~ e3, ~@2 e3@11 ~@3, ~@2 g3@3 ~ g3@2, ~ c#4", Q: "~ d3 g3 b3 ~ b3 ~ d3, ~ d4, ~@3 g3",
  R: "~@3 a3 ~ a3 g3 e3, ~ e3@4 ~@3, ~@2 g3@2 c#4@3 ~", S: "a3 f#3 a3 f#3 a3 f#3 a3 f#3, e4 d4",
  T: "[a3@2 f#3@2 a3@2 f#3@2 a3@2 f#3@2 a3@2 f#3 ~ [g3,a3,d4]@15 ~, e4@8 d4@7 e3@17]/2", U: "[g3,a3,d4]",
  V: "~@3 a3 ~@3 e3, ~ e3@5 g3@2, ~@2 g3@3 a3@2 ~, ~ c#4",
  W: "~@6 a3@2 d4 ~@3 a3@2 f#3 ~, ~@2 d3@9 ~@5, ~@4 f#3@6 c#4@5 ~",
  X: "~@3 a3 ~ c#4 a3 f#3, ~ d3@3 d4@4, ~@4 f#3@7 ~@5", Y: "~@3 b3 ~@3 d3, ~ d3@5 g3@2, ~@4 g3@6 b3@5 ~, ~ d4",
  Z: "~@3 a3 ~ a3 ~ e3, ~@2 e3@9 ~@5, ~@2 g3@3 ~ g3@2, ~@4 c#4@3 ~", AA: "~@3 a3 ~ c#4 ~ f#3, ~ d3@7, ~ f#3@2 a3, ~ d4",
  AB: "~@3 a3 ~@2 a3 f#3, ~ d3@7, ~ f#3@2 ~, ~ d4, ~@5 c#4@2 ~", AC: "~@3 b3 ~@3 d3, ~ d3@5 g3@2, ~@2 g3@3 b3@3, ~ d4",
  AD: "~@3 a3 ~ a3 ~ e3, ~@2 e3@11 ~@3, ~@4 g3@7 ~ g3@4, ~@8 c#4@7 ~",
  AE: "~@3 f#3 ~@3 f#3, e4 d4, a3!4, ~ f#3@2 ~@2 f#3@2 ~", AF: "~@3 g3 ~ g3 ~ g3, d4!2, b3!2 a3 b3, ~ g3@2 ~@5",
  AG: "~@3 a3 ~@3 a3, f#4 e4, c#4!4, ~ a3@2 ~@2 a3@2 ~", AH: "~@3 a3 ~@3 a3, g4 f#4, d4!4, ~ a3@2 ~@2 a3@2 ~",
  AI: "~@3 a3 ~@3 f#3, e4@4 ~ f#3@2 ~, c#4!2 d4@2, ~ a3@2 ~ a3@2 a3@2",
  AJ: "~@6 g3@2 a3 ~@5 g3@2, d4@2 d4 ~, b3@4 b3@4 ~ b3@3 [b3,d4,f#4]@4, ~ g3@2 ~@2 g3@2 ~", // Bm
  AK: "~@3 a3 ~ a3 ~ e4, f#4@8 ~@5 c#4@3, c#4@2 c#4@2 [c#4,e4]@3 ~, ~ a3@2 ~@3 a3@2", // C#m
  AL: "g3 ~@6 c3 ~@2 f3@2 ~@3 c3, e4 [d4,f4], [c3,c4]@2 c3 g3 c3@2 c3 a#3, ~@2 g3@3 c4@3 a#3@5 f3@3", // Dm C
  AM: "~@3 a3 ~@3 a3, g4 f4, c4!4, ~ a3@2 ~@2 a3@2 ~",
  AN: "~@3 a3 ~ a3 ~ a3, g4 ~, c4@4 c4@4 [c4,f4]@5 ~@3, ~ a3@2 ~@3 [c4,e4]@2", // F5 C
  AO: "~@3 f3 ~ f3 ~ f3, [d4,f4] [c4,f4], a#3!2 ~ a#3, ~ f3@2 ~@5", // Dm F5
  AP: "~@3 f3 ~ g3 ~ g3, [d4,f4]@2 [c4,e4] [c4,g4], a#3!2 ~@2, ~ f3@2 ~@5", // Dm C C5
  AQ: "~@3 a3 ~ a3 ~ a3, g4 ~, c4!2 [c4,f4] [c4,e4], ~ a3@2 ~@5", // F5 C
  AR: "~@6 f3@2 f3 ~@5 f3@2, [d4,f4] [c4,f4], a#3!2 ~ a#3, ~ f3@2 ~@2 f3@2 ~", // Dm F5
  AS: "[f3@2 ~ d4 ~@5 d3 f#3 a3 d4 c#4 a3 f#3, f4@2 ~ a4@2 ~@3, [a#3,d4]@5 a#3@3 [a3,e4]@8 ~@16, ~ f3 ~@6]/2", // A# A5
  AT: "d2@2 ~@4 a3@2 d4 ~@3 a3@2 f#3 ~, ~@2 d3@9 ~@5, ~@4 f#3@6 c#4@5 ~",
  AU: "g3 ~@5 g3@2 ~@6 g3@2, d4@2 d4 ~, b3!2 a3@2, ~@2 g3@4 ~@3 b3@3 [b3,d4,f#4]@4, ~@5 g3@2 ~", // Bm
  AV: "~@7 c3 ~@2 f3@2 ~@3 c3, e4 [d4,f4], [g3,c4]@5 g3@3 c3@4 c3@3 ~, c3@2 c3 c4 a#3@3 a#3, ~@2 g4@6 ~@5 f3@3", // Dm C5
  AW: "~@3 f3!3 ~ f3, [d4,f4] [c4,f4], a#3!2 ~ a#3, ~ f3@2 ~@5", // Dm F5
  AX: "~@6 f3@2 g3 ~@5 g3@2, [d4,f4] e4, a#3!2 c4 [c4,g4], ~ f3@2 ~@2 g3@2 ~", // Dm C5
  AY: "~@3 a3 ~@3 a3, g4 ~, c4!2 [c4,f4]!2, ~ a3@2 ~@2 a3@2 ~", // F5
  AZ: "~@3 f3!3 ~ f3, [d4,f4] f4, a#3!2 c4 [a#3,d4], ~ f3@2 ~@5", // Dm A#
  BA: "[~@3 d4 a3 ~@4 d3 f#3 ~ d4 c#4 a3 f#3, f4 e4 ~@2, [a#3,d4]@5 a#3@3 ~@2 a3@4 a3@8 a3@4 ~@6, ~ f3@3 ~@2 a4@7 ~@3]/2", // A#
  BB: "[~@4 g3@2 a3@3 c#4@2 a3@3 g3@4 e3@3 ~ d3@42, ~@2 e3@4 ~@15 [f#3,a3,d4]@16 ~@27, ~@22 e3@15 ~@27]/4", // D
})).s("gm_epiano1").gain(0.42)

// bass · electric bass finger
const bass = note(`<
  ~@22 A B C D E F G H I J K L M N O@2 P Q R S T U V W X Y Z AA AB Y AC AD AE B ~ AF AG F AH AI AJ AK AL AM AN J AO AP
  AQ AR@2 AS P Q R S T U V W X Y Z AA AB Y AC AD AE B ~ AF AT@4 ~
>`.pickRestart({
  A: "~@3 d2", B: "d2@15 ~", C: "b1@13 ~ f#1@2", D: "e1@13 ~ f#1 g1", E: "a1@10 ~ a1 e2 a2 e2@2", F: "d2",
  G: "b1@10 ~ b1 f#2 g2 f#2@2", H: "e2@14 d2 e2", I: "a1@6 e2@2 a2@4 a1@3 ~", J: "e1@11 ~ g1@3 ~",
  K: "a1@11 ~ e2 a2 e2@2", L: "d2@13 ~ a1@2", M: "b1@3 b1", N: "e1", O: "[a1@26 e2@2 a2@3 ~]/2",
  P: "d2@5 ~ d2 ~ d2@5 ~ a1 a#1", Q: "b1@5 ~ b1 ~ b1@3 ~ f#2@2 b2 a2", R: "g2@6 g1 ~ g1@5 ~ g1 g#1",
  S: "a1@5 ~ a1 ~ a1@2 e2@2 a2 e2 a1@2", T: "d2@5 ~ d2 ~ d2@6 a1 a#1", U: "b1@5 ~ b1 ~ b1@4 e1 f#1 b1 a1",
  V: "g1@5 ~ g1 ~ g1@5 ~ g1 g#1", W: "a1@6 e2@2 a2@4 a1@2 a#1 b1, ~@8 g2 ~@7", X: "c2@6 f2 g2 c3@2 c3@2 c3 g2 c2@2",
  Y: "f2@6 f1 ~ f1@6 g1 g#1", Z: "a1@5 ~ a1 ~ a1@4 a2@2 a1@2", AA: "g1@5 ~ g1 ~ g1@6 a#1 b1",
  AB: "c2@5 ~ g2@2 c3!2 c3@3 g2 c2@2", AC: "a1@5 ~ a1 ~ a1@4 a2 f2 a1 g#1", AD: "g1@4 ~@2 g1 ~ g1@6 a1 a#1",
  AE: "c2@5 ~ c2 ~ c#2@6 c#2@2", AF: "e2@3 b2@3 e3@2 e3@3 e3@3 b2@2", AG: "a2@3 a1", AH: "b1@11 ~ b1@2 d2@2",
  AI: "~@2 e1@11 ~ g1 g#1, e2@13 ~@3", AJ: "a1@9 e2 b2@2 a2@2 e2@2", AK: "d2@13 ~ a1 a#1", AL: "b1@8 ~ b1 f#2 ~ f#2@4",
  AM: "e2@12 ~@2 f#1 g1", AN: "a1@5 ~ e2@2 a2@4 a1@3 ~", AO: "a1@9 ~ e2@2 a2@2 e2@2", AP: "d2@12 ~@2 a1 a#1",
  AQ: "b1@9 ~ f#2@2 b2 f#2 b1@2", AR: "[e2@11 ~ b2@2 e3@18]/2", AS: "~@8 d2@4 d1@3 ~", AT: "[a2@21 ~ d1@42]/4",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · pad warm
const pad_warm = note(`<
  ~@3 A@8 B C@4 D@2 E F G@3 H@8 I@2 J@2 K L@2 M@4 N@4 O P@4 Q@8 R@4 S@4 T@2 U@5 V@8 W X Y@3 Z@2 AA AB@8 ~
>`.pickRestart({
  A: "[d4 c#4 ~@4 b3@2 ~ c#4 ~@4 g3@2, [e4,a4]@81 ~@47, a3@23 ~@9 a3@32, ~@2 d4@7 ~ d4@6]/8", B: "~ c#4",
  C: "[~@7 c#4, a3@31 ~, d4@7 ~, ~ g3]/4", D: "[g3@2 ~ c#4, g4, d4@3 ~, ~ [a3,e4]]/2", E: "e4 d4, [a3,f#4]",
  F: "[c#4,e4] d4, a3", G: "[d4@5 c#4, [g3,a3]@11 ~, e3 ~@2]/3",
  H: "[d4@3 ~@4 [a3,c#4] d4@2 ~@2 b3@2 ~ c#4, a4@63 ~, [a3,e4]@4 b3@3 ~ a3@4 ~@2 [a3,e4]@2, ~@6 d4@8 ~@6 d4@9 ~@3, ~@3 e4 ~@4]/8", // A A5
  I: "[b3@2 ~ c#4, g4, d4@3 ~, ~ [a3,e4]]/2", J: "[e4 d4 [c#4,e4] d4, [a3,a4]]/2", K: "[g3,d4,e4,a4]",
  L: "[d4@3 c#4, [g3,b3,e4,a4]]/2", M: "[e4 d4 [c#4,e4] d4 [b3,d4]@2 f#4 e4, a4@63 ~, a3@2 ~ [a3,c#4]]/4",
  N: "[g4 f#4 [c#4,e4] ~ b3@2 f#4 e4, a4@31 ~, a3@2 ~ [a3,c#4], d4@2 ~ d4@3 ~@2]/4", O: "[g3,c4,e4,g4] [a#3,d4,f4]",
  P: "[g4@2 f4@2 [g3,g4]@2 [f3,f4] e4 ~@6 [c4,e4]@2, c5, c4@2 c4@2 [a#3,d4,f4]@3 ~, ~@5 g4@3]/4", // G F C A#
  Q: "[g4@2 ~@2 g4@2 f4 e4 [a#3,d4,f4]@6 ~@10 [b3,g4]@4 ~@2 c#4@2, c5@53 ~@3 a4@70 ~@2, c4@32 ~@24 [a3,e4]@39 ~@17 [a3,e4]@16, ~ f4@2 ~@5 d4@7 ~]/8", // A# Em A5
  R: "[~@15 e4, a3@31 ~, d4@7 c#4, ~ g3]/4", S: "[d4@2 ~@2 [g3,b3]@2 ~ c#4, a4, a3@2 ~ [a3,e4], ~@2 d4@5 ~]/4",
  T: "[b3@2 ~ c#4, g4, d4@25 ~@7, ~ [a3,e4]]/2", // A5
  U: "[e4 d4 [c#4,e4] ~ g3@5 c#4, a4@79 ~, a3@32 [b3,e4]@47 ~, ~@12 d4@23 ~@5]/5", // C#m E5
  V: "[e4@2 d4@2 e4@2 ~@2 b3@4 f#4@2 e4@2 g4@2 f#4@2 [c#4,e4]@2 ~ f#4 [g3,b3]@4 f#4@2 e4@2, a4@63 ~, a3@2 ~ [a3,c#4] a3@2 ~ [a3,c#4], ~@3 d4@3 ~@2 d4@2 ~ d4@3 ~@2]/8", // C#m G A
  W: "[g3,c4,e4] [a#3,d4,f4], g4", X: "g4 f4, [c4,a4,c5]",
  Y: "[g4@2 f4 e4 a#3@4 a#3@2 [c4,e4]@2, c5@47 ~, [c4,a4]@2 [d4,f4]@3 ~, ~@2 g4]/3", // C F Dm
  Z: "[g4@2 f4@2 g4@2 f4 e4, c5, c4 c4]/2", AA: "[a#3,d4,f4]",
  AB: "[[a#3,g4]@8 ~@40 [e1,b3]@16 ~@9 c#4@13 [d1,d2,d4]@40 ~@2, ~@4 a4@59 ~, ~@4 e4@39 ~@21, ~@4 a3@19 ~@9 a3@31 ~, ~@16 d4@55 ~@57]/8", // D# E5 D
})).s("gm_pad_warm").gain(0.2)

// bass · acoustic bass
const bass_2 = note("<A B C D A B C D A B C E A B C D F D A B C D ~@33 A B C G ~@32 A B C H@2 ~@3>".pickRestart({
  A: "d2@15 ~", B: "b1@15 ~", C: "e2@15 ~", D: "a1@15 ~", E: "a1@11 ~ a1@4", F: "e2@11 ~ g1@4", G: "a2@15 ~",
  H: "[a2@5 ~@3]/2",
})).s("gm_acoustic_bass").gain(0.5)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@4 A B@6 ~@4 C D@7 E@7 C F@2 G H I@2 J K L@2 M N O@2 P Q R S@5 T@8 U@2 V@3 W X@2 Y@2 Z AA@2 AB AC@3 AD AE@2 AF@2 AG@2
  AH AI@4 AJ@8 ~
>`.pickRestart({
  A: "[a3,d4]@3 [b3,e4,a4,c#5]", // D5 A
  B: "[e4 ~ [g3,a3,b3]@2 ~ c#4 d3@2 b2@2 ~@2, a4@7 ~, [f#3,a3]@4 e3@8 d4@9 ~@3, ~ d4@3 [a2,e4]@2 ~@6, ~@8 a3@13 ~@3]/6", // G F#m A5
  C: "d4 c#4, [a3,e4]", // A5
  D: "[~@3 c#4 ~ d4 [c#4,e4] ~ e3@2 ~@3 c#4, g3@32 a3@79 ~, d4@3 ~@4 d4@6 ~, ~@2 e4@3 ~@3 g3@6, ~@5 a2@2]/7", // C#m
  E: "[a3@4 ~@4 g3@6 c#4@2 [d4,e4]@4 ~@7 b3, d4@57 ~@23 d4@32, d3@2 ~@4 g3, ~@16 a3@91 ~@5]/7", // Dsus2
  F: "[b3@3 g3 ~@2 c#4@2, g4, d4@3 ~, ~ [a3,e4]]/2", G: "e4 d4, [a3,f#4]", H: "[a3,c#4,e4] [a3,d4,f#4]",
  I: "[[e3,g3,a3] [g3,a3], d4]/2", J: "[a3,b3]@3 [a3,c#4], [g3,d4,e4]", K: "e4 d4, a3",
  L: "[[a3,c#4,e4] a3 ~ g4, ~ d4@3, ~ [g3,b3]]/2", M: "f#4 e4, [a3,c#4]", N: "g4 f#4, [a3,d4]",
  O: "[[a3,c#4,e4] a3 [g3,b3]@2, ~ d4@3]/2", P: "[a3,c#4,f#4] [a3,c#4,e4]", Q: "[c4,e4] [a#3,d4,f4], [c3,g4]",
  R: "g4 f4, [f3,a3,c4,c5]", // F
  S: "[f3 ~@7 f4@4 e4@4 ~@40 f4@8 g4@8 f4@4 e4@4, c5, c4@16 [a#3,d4,f4]@24 c4@39 ~, g4 ~@3 g4@3 ~ a3@2, ~ a3@15 g3@32 f3@17 ~@15]/5", // A#
  T: "[[g3,a#3,d4,f4]@3 e4 ~@4 [g3,b3]@2 ~ c#4 [d3,a3]@2 a3@2, ~@24 a4@91 ~@13, ~@24 a3@39 ~@17 [a3,e4]@17 ~@31, ~@4 d4@7 ~ d4@4]/8", // Gm7 G D5 A5
  U: "[[e3,g3,a3,d4]@6 c#4 e4, ~@3 a3]/2", V: "[~@2 g3, [a3,d4]@15 ~]/3", W: "[a3,b3,d4] [a3,c#4], [e4,a4]",
  X: "[b3@2 ~ c#4, g4, d4@25 ~@7, ~ [a3,e4]]/2", Y: "[e4 d4 [c#4,e4] [a3,d4,f#4], a4, a3@3 ~]/2", Z: "[g3,b3,d4,g4]",
  AA: "[[g3,d4]@3 c#4, [a3,e4]]/2", AB: "e4 d4, [f#3,a3]",
  AC: "[[c#4,e4] ~ [g3,b3]@2 f#4 e4, a3 ~ [a3,c#4], ~@8 d4@25 ~@15]/3", AD: "[a3,d4,g4] [a3,d4,f#4]",
  AE: "[[c#4,e4] ~ [g3,b3]@2, a3 ~, ~ d4@3]/2", AF: "[[a3,c#4,f#4] [a3,c#4] [g3,c4] [a#3,d4,f4], ~ e4@2 ~, ~ c3]/2",
  AG: "[g4@2 f4@2 g4@2 f4 e4, [a3,c4]]/2", AH: "[a#3,d4,f4]",
  AI: "[[a#3,d4,f4]@2 ~@2 g4@2 f4@2 g4@2 f4 e4 [g3,a#3,d4,f4]@4, g4 ~@3, ~ [c4,e4] [f3,c4]@2 [a3,c4]@2 ~@2, ~@6 c5@25 ~]/4", // A# Gm7 C F5 Am
  AJ: "[[g3,a#3,d4,f4,g4]@8 e4@8 ~@32 [g3,b3]@16 ~@8 c#4@13 [d2,d3,a3,d4]@42 ~, ~@4 [a3,a4]@20 g4@17 ~@23, ~@16 d4@57 ~@55, ~@32 [a2,a3,e4]@11 ~@21]/8", // Gm7 G D5 A A5
})).s("gm_string_ensemble_2").gain(0.37)

// other · string ensemble 1
const string_ensemble_1 = note("<~@46 A B@8 C@5 ~@13 D@8 ~ E F@8 G@7 ~>".pickRestart({
  A: "[g5,g6]", B: "[[c5,c6,c7]@117 ~@3 [c#5,c#6,c#7]@8]/8", C: "[[d5,d6,d7]@77 ~@3]/5", D: "[~ a4@15, [a5,a6]]/8",
  E: "[g4,g5,g6]", F: "[[c5,c6,c7]@59 ~ [c#5,c#6,c#7]@4]/8",
  G: "[[d5,d7]@57 ~@11 [a4,a5,a6]@43 ~, d6@55 ~@2 [c#5,c#6,c#7]@13 ~@42]/7", // D A C#
})).s("gm_string_ensemble_1").gain(0.24)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  A B C D E@2 F D A B C D E@2 F D G H@5 D A B C D E@2 F D G H@5 D I J K L@2 M N O P Q@2 R S@2 T U@2 A B C D A B C D E@2
  F D G H@5 D I J K L@2 M N O P Q@2 R S@2 T U@2 A B C V@5
>`.pickRestart({
  A: "~@4 d4 ~@2 f#3, ~ d3@7, ~ f#3@2 a3, ~@3 a3@2 c#4@3",
  B: "~@4 d4 ~ a3 f#3, ~ d3@7, ~@4 f#3@9 ~@3, ~@3 a3@3 ~@2, ~@5 c#4@2 ~",
  C: "~@3 b3 ~@3 d3, ~ d3@6 ~, ~@2 g3@3 b3@3, ~ d4, ~@3 g3", D: "~@3 a3 ~@3 e3, ~ e3@5 g3@2, ~@2 g3@3 a3@3, ~ c#4",
  E: "~@4 d4 ~@2 f#3, ~ d3@7, ~ f#3@2 a3, ~@3 a3@2 c#4@2 ~", F: "~@3 b3 ~@3 d3, ~ d3@5 g3@2, ~@2 g3@3 b3@3, ~ d4",
  G: "~@3 b3 ~@3 d3, ~ d3@6 ~, ~ g3@2 g3, ~ d4, ~@5 b3@3",
  H: "[~@6 a3@2 ~@4 g3@2 e3 ~ a3@4 ~@8 a3@2 f#3 ~@13 a3@3 ~ [e2,e3,g3]@15 ~ [a2,e3]@16, ~@2 e3@11 ~@2 d3@16 ~@9 d4@7 [d4,e4]@16 ~@17, ~@4 g3@6 a3@4 ~@2 f#3@6 f#3@4 f#3@4 ~ f#3@7 f#3@4 f#3@6 ~@15 [g3,d4]@17, ~@8 c#4@7 ~ e4@8 d4@7 ~ e4@15 ~@33, ~@5 a3@2 ~ a3@3 ~@9]/5", // Em A5 Dsus2 G5
  I: "a3 ~@2 a3, e4 d4, f#3 ~ a3@4 ~@2", J: "[c#4,e4]@8 d4@5 d4@2 ~, a3 ~@3",
  K: "g3@2 ~@10 b3@3 ~, e4@8 d4@7 ~, b3 b3@2 ~, ~ g3@2 ~@2 g3@2 ~",
  L: "[f#4@8 ~@20 d4@2 a3 ~, c#4@4 ~@4 e4@6 e4@3 ~@3 d4@8 ~@4, a3@2 ~@7 a3@4 a3@2 a3@3 a3@4 ~@10, ~@11 a4@4 ~ g4@8 f#4@7 ~]/2",
  M: "a3@2 ~@2 f#3 ~ a3@2, c#4@3 ~ d4@4, e3 ~ a3@4 ~@2",
  N: "~@10 g3@2 ~@2 g4 ~, d3@15 ~, d4@8 d4@4 d4@3 ~, ~@2 g3@4 ~@7 g3@2 ~, ~@4 a3@11 ~",
  O: "~@12 c#4@3 ~, f#4@8 e4@7 ~, ~ a3@2 a3@2 ~@3, ~ c#4@2 ~",
  P: "g3@2 ~@2 c4@2 e4 ~ g3@2 g3@4 g3 ~, e4@6 ~@2 f4@7 ~, c4 ~ a#3 ~, ~@2 g3@5 ~@9",
  Q: "[~@8 f4@7 ~@13 e4@2 a3 ~, g4@8 ~@8 g4@8 f4@7 ~, ~@2 f3@8 ~@5 g3@3 g3@4 g3@9 ~, ~@4 c4@11 ~ c4@4 c4@11 ~, ~@3 a3@3 ~@7 a3@2 ~]/2",
  R: "a#3@2 ~@3 d4@2 f3, d4@3 d4@2 ~@3, ~ a#3@2 ~, ~@8 g4@7 ~",
  S: "[~@7 d4 g3 ~@4 c4 g3 ~@13 a3@2 c4 ~, g4@5 g3@3 ~@2 g3@4 ~ a3@3 f3@8 f3@5 ~, ~@2 a#3@2 a#3@4 ~ c4@2 c4@2 ~@3 c4@6 ~@10, ~@3 a4@3 g4@6 g4@3 ~ g4@8 f4@7 ~, ~@5 a3@2 ~]/2",
  T: "g3@2 ~@10 c4@3 ~, g4 f4, c4 c4@2 ~, ~ g3@2 ~@2 a3@2 ~",
  U: "[~@20 a#3@3 ~@3 a3@4 ~@2, f4@5 a#3@3 a#3@2 g3@3 g3@2 g3@3 g3@4 ~@10, ~ g3@2 g4@3 f4@5 a#3@3 a#3@6 ~@12, ~@2 a#3@2 g3@3 g3@2 g4@3 f4@3 ~ f4@7 ~ e4@8]/2",
  V: "[~@6 a3@3 ~@5 g3@4 e3@2 ~@2 d3@47 ~@11, ~ e3@7 ~@32, ~@4 g3@9 ~@8 [f#3,a3]@49 ~@10, ~@9 c#4@11 e4@49 ~@11, ~@11 a3@9 ~@60]/5", // F#m
})).s("gm_electric_guitar_jazz").gain(0.21).pan(0.3)

// chords · electric guitar jazz · soft notes
const electric_guitar_jazz_2 = note(`<
  ~@38 A@2 B C D E F G H I J@2 K@2 L ~ M ~@19 A@2 B C D E F G H I J@2 K@2 L ~ M ~@8
>`.pickRestart({
  A: "[~@2 f#3@4 f#3@3 ~ f#3@4 f#3@4 ~@4 f#3@4 f#3@4 a3 f#3, ~@9 f#3@2 ~@5, ~@10 a3@5 ~]/2", B: "~@3 g3@2 ~@2 g3",
  C: "~@6 a3@3 ~@7, ~ a3@2 ~@5, ~ c#4 ~@2", D: "~@3 a3@2 a3@2 ~", E: "~@3 c#4 ~ f#3@2 f#3, ~ e3@3 ~@4",
  F: "~@3 g3@2 ~@3", G: "~@10 a3@2 a3@2 a3 ~", H: "~@12 a#3@3 ~", I: "~@12 a3@2 f3 ~, ~@5 f3@2 ~",
  J: "[~@15 f3@3 ~@10 a#3@4, ~@9 f3@6 ~]/2", K: "[~ g3@4 ~@10 f3@4 ~@3 c4@8 ~@2]/2", L: "~@6 g3@2 ~@6 a3 ~",
  M: "~@6 g3@3 ~@5 a3@2, ~@3 c#4",
})).s("gm_electric_guitar_jazz").gain(0.14).pan(0.3)

// chords · distortion guitar
const distortion_guitar = note("<~@45 A B C D E F C G H I J ~@25 A B C D E F C G H I J ~@7>".pickRestart({
  A: "~@14 c3!2", B: "c3@12 c3@3 c3, g3@7 ~", C: "[f2,c3]", D: "a2@13 ~ g3!2", E: "[g3,d4]", F: "[c3,g3]@13 [c3,g3]@3",
  G: "a2@14 g2!2", H: "[g2,d3]", I: "c3 c#3", J: "d3",
})).s("gm_distortion_guitar").gain(0.5)

// other · distortion guitar
const distortion_guitar_2 = note("<~@82 A B@2 C D E@2 ~ F G@2 ~@6>".pickRestart({
  A: "[a#3,c4] [a3,a#3] [g3,a3] [a#3,c4] [d4,e4] [e4,f4]!2 [c4,d4] [d4,e4] [f4,g4] [a4,a#4] [c5,d5] [c5,e5] [d5,e5] [f5,g5] [a5,a#5]", // A#sus2 A#maj7 Gsus2 A#sus2 Dsus2 Fmaj7 Csus2 Dsus2 …
  B: "[c6@27 ~@3 a4@2]/2", C: "a#4@2 a4@2 a#4@2 f5@9 ~, ~@6 e5 ~@9", D: "c5@3 g5@5", E: "[c6@29 ~@3]/2", F: "c5 c#5",
  G: "[d5@23 ~@9]/2",
})).s("gm_distortion_guitar").gain(0.55)

// drums · kick
const kick = s("bd").struct(`<
  A@21 ~@2 B@12 A ~@2 B C B@3 C B D E B@3 F B@3 G A@4 B@5 H@2 I B@4 A ~ J B@7 D J B D B K B@3 E A@4 ~@4
>`.pickRestart({
  A: "x", B: "x ~@2 x!2 ~@3", C: "x!2 ~ x!2 ~@3", D: "x ~@2 x!2 ~@2 x", E: "x ~@6 x ~@8", F: "x ~@5 x ~ x ~@4 x!2 ~",
  G: "x ~@2 x ~@12", H: "x!2", I: "x ~@2 x ~@4", J: "~@15 x", K: "x ~@2 x ~@2 x ~@4 x ~@3 x",
})).gain(0.64)

// … 120 more lines

More by Pooh