Strudelify

Io per lei

Daniele

KeyD majorTempo89 bpm
0:00/0:00
// Io per lei — Daniele
// 89 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 69 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(89/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
const bass = note(`<
  A B@2 C@2 B@2 D@2 E F E G H I J K L@2 M@2 N O P Q R S T U V@2 W@2 X@2 Y@2 E Z E AA AB AC J AD AE@2 AF@2 AG AH P AI AG
  AH P AJ AE@2 AK@2 AL@2 AM@2 AN@2 AO@2
>`.pickRestart({
  A: "~@24 [a1,a2]@7 ~", B: "[a1@5 ~@7 b1@3 ~ c2@3 ~@5 e2@3 ~ d2@14 ~@2 c2@3 ~ d2@4 ~@4 e2@8, ~@24 d2 ~@39]/2",
  C: "[a1@6 ~@6 b1@3 ~ c2@3 ~@4 d2 e2@3 ~ d2@7 ~ d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 a2@3 ~ g2@2 e2@2, ~@56 g2 ~@7]/2",
  D: "[a1@6 ~@6 b1@3 ~ c2@3 ~@4 d2 e2@3 ~ d2@7 ~ d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 e2@2]/2",
  E: "a1@9 ~@3 a1@4 c2@10 ~@2 c2@4", F: "d2@10 ~@2 d2@3 ~ d2@10 ~@2 d2@4", G: "d2@10 ~@2 d2@3 ~ d2@11 ~ g2@2 a2@2",
  H: "a1@4 ~@2 a1@2 c2@5 ~ c2@2", I: "d2@9 ~@3 d2@2 ~@2 d2@10 ~@2 d2@4", J: "a1@9 ~@3 a1@4 c2@9 ~@3 c2@4",
  K: "d2@10 ~@2 d2@2 ~@2 d2@4 f1@4 f#1@4 g1@3 ~",
  L: "[a1@8 ~@4 b1@3 ~ c2@3 ~@5 e2@3 ~ d2@14 ~@2 c2@3 ~ d2@4 ~@4 e2@8, ~@24 d2 ~@39]/2",
  M: "[a1@8 ~@4 b1@3 ~ c2@3 ~@4 d2 e2@3 ~ d2@7 ~ d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 b1@2 g1 ~]/2",
  N: "c2@10 c3@2 g2@2 c2 ~ b1@12 e2@2 b1@2", O: "a1@10 ~@2 a1 ~ a1@2 g1@10 ~@2 g1@2 e1@2",
  P: "f#1@2 ~@2 f#1@3 ~ f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 e1@2",
  Q: "f1@3 ~ f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@3 ~ b1@2 g1@2 a1@2 g1@2",
  R: "c2@11 ~ c2@2 g1@2 b1@10 ~@2 b1@2 g1@2", S: "a1@10 ~@2 a1@2 e1@2 g1@8 ~@2 g1 ~ g1 ~ e1@2",
  T: "f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 e1 ~",
  U: "f1@3 ~ f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@3 ~ a1@7 ~",
  V: "[a1@5 ~@5 a1 ~ b1@3 ~ c2@3 ~@5 e2@3 ~ d2@14 a1 ~ c2@3 ~ d2@4 ~@4 a2@8, ~@24 d2 ~@39]/2",
  W: "[a1@6 ~@4 a1 ~ b1@3 ~ c2@3 ~@4 d2 e2@3 ~ d2@7 ~ d2@2 ~@2 d2@3 ~ c2@2 a1@4 e1 ~ g1 ~ e1 ~ a1 ~ e1@2 g1@2 e1@2, ~@40 c2 ~@23]/2",
  X: "[a1@8 ~@4 b1@3 ~ c2@3 ~@5 e2@3 ~ d2@12 ~@2 a1 ~ c2@2 a1@2 d2@5 ~ a1@2 e2@8, ~@24 d2 ~@39]/2",
  Y: "[a1@6 ~@4 a1 ~ b1@3 ~ c2@3 ~@4 d2 e2@3 ~ d2@7 ~ d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 g1@2 e1@2]/2",
  Z: "d2@10 ~@2 d2@3 ~ d2@15 ~", AA: "d2@14 e1 ~ f#1@2 ~@2 f#1@3 ~ g1@4 g#1@2 e1@2", AB: "a1@5 ~ a1@2 c2@5 ~ c2@2",
  AC: "d2@9 ~@3 d2@2 ~@2 d2@6 ~@2 a2@7 ~",
  AD: "d2@3 ~ d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 e2 ~ g2@2 e2 ~",
  AE: "[a1@8 ~@4 b1@3 ~ c2@3 ~@5 e2@3 ~ d2@14 a1 ~ c2@3 ~ d2@4 ~@4 e2@8, ~@24 d2 ~@39]/2",
  AF: "[a1@6 ~@4 a1 ~ b1@3 ~ c2@3 ~@4 d2 e2@3 ~ d2@7 ~ d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@4 g2@2 a2@2 g2@2 e2@2 d2@2 g2@2]/2",
  AG: "c2@5 ~ c2 ~ b1@5 ~ b1 ~", AH: "a1@5 ~ a1 ~ g1@5 ~ g1 e1",
  AI: "f1@3 ~ f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@3 ~ f1@2 g1@2 a1@2 g1@2",
  AJ: "f1@3 ~ f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 a1@3 ~ a2@7 ~",
  AK: "[a1@6 ~@4 a1 ~ b1@3 ~ c2@3 ~@4 d2 e2@3 ~ d2@7 ~ d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@4 g2 ~ a2@2 g2@2 e2 ~]/2",
  AL: "[a1@10 ~@2 b1@3 ~ c2@6 ~@2 e2@3 ~ d2@7 ~ d2@2 ~@2 d2@3 ~ c2@3 ~ d2@4 ~@4 e2@8, ~@24 d2 ~@39]/2",
  AM: "[a1@10 ~@2 b1@3 ~ c2@6 ~ d2 e2@3 ~ d2@7 ~ d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@3 ~]/2",
  AN: "[a1@10 ~@2 b1@3 ~ c2@3 ~@5 e2@3 ~ d2@14 a1 ~ c2@3 ~ d2@4 ~@2 d2 ~ e2@8, ~@24 d2 ~@39]/2",
  AO: "[a1@12 b1@3 ~ c2@3 ~@4 d2 e2@3 ~ d2@7 ~ d2@2 ~@2 d2@2 ~@22]/2",
})).s("gm_fretless_bass").gain(0.47)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@9 A B@2 C D E@2 F ~@4 G H@2 ~ G H@2 ~@9 A I@2 C D E@2 F ~@4 G H@2 ~ G H@2 ~@5 A J@2 C D E@2 K
>`.pickRestart({
  A: "~@3 a3 ~@3 c4, ~@2 g3@2 ~ g3@3, ~@3 b3",
  B: "[~@16 a3@4 ~@10 a3@5 ~@9 a3@4 ~@12 c4@4, ~@4 a3@11 ~@11 e4@5 ~@9 g3@8 ~@4 g3@12, ~@8 d4@14 ~@2 f4@7 ~@33, ~@12 f#4@16 c4@7 ~ e3@12 ~@8 a3@8]/2",
  C: "~@8 a3@2 ~@2 f4 e4 ~ a3, d3@27 ~@5, ~@2 a3@4 f#4@4 ~ a3@2 ~@3, ~@8 d4@15 ~@5 c4@4",
  D: "~@12 c4@5 ~@11 c4@4, ~@4 e3@13 ~@7 b3@8, ~@8 g3@9 ~@3 g3@12",
  E: "[~@16 a3@6 ~@2 f4@2 ~@4 a3@5 ~@9 a3@4 ~@8 [c4,f4]@4 d4@4, ~@4 a3@12 ~@6 a3@5 ~ c4@7 ~@5 g3@8 ~@16, ~@8 d4@16 ~@2 e4@5 ~@33, ~@12 f#4@7 ~@45]/2", // F5
  F: "~@6 f#4@6 f4 e4 c4@2, ~@4 a3@9 ~@19, ~@8 d4@15 ~@9", G: "~@2 d4@3 ~ d4@2, a3@13 ~@19, ~@2 g4@6 ~@2 g4@5 ~",
  H: "[~@4 d4@12 ~@35 c4@11 ~@2, ~@19 d4@12 ~@5 c4@13 ~@15, ~@24 a3@15 ~ a3@15 ~@9]/2",
  I: "[~@16 a3@4 ~@10 a3@5 ~@9 a3@4 ~@12 c4@4, ~@4 a3@11 ~@11 [e4,g4]@4 ~@10 g3@8 ~@4 g3@12, ~@8 d4@11 ~@5 [f4,a4]@4 c4@7 ~ e3@12 ~@8 a3@8, ~@3 f#4@4 a4 ~@8]/2", // Em F
  J: "[~@16 a3@4 ~@10 a3@5 ~@9 a3@4 ~@12 c4@4, ~@4 a3@11 ~@11 [e4,g4]@5 ~@9 g3@8 ~@4 g3@12, ~@8 d4@11 ~@5 [f4,a4]@4 c4@7 ~ e3@12 ~@8 a3@8, ~@3 f#4@4 a4 ~@8]/2", // Em F
  K: "~@2 d4@3 ~@3, ~@4 a3@9 ~@19",
})).s("gm_electric_guitar_clean").gain(0.23).pan(0.4)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note(`<
  ~@9 A B C ~ C D E F ~@4 G H I ~ G H I ~@9 A J C ~ C D E F ~@4 G H I ~ G H I ~@5 K J C ~ C D E L
>`.pickRestart({
  A: "~ e3@3 c3@4, a2@3 ~@5", B: "~@22 d4@9 ~, d3@15 ~, ~@10 a3@5 ~", C: "a2 c3", D: "~@20 b3@3 ~@9, d3@7 ~",
  E: "~ e3@3 ~@3 a3, a2 c3, ~@20 g3@11 ~", F: "~@5 a3 ~@2, d3@25 ~@7", G: "~@16 a3@13 ~@3", H: "~ a3@3 ~@4 a3@12 ~@12",
  I: "~@25 a3@6 ~", J: "~@22 d4@9 ~, d3@15 ~, ~@19 d4@2 ~ e4@4 ~@6, ~@10 a3@5 ~", K: "~ e3@3 c3@4, a2@13 ~@19",
  L: "d3@25 ~@7",
})).s("gm_electric_guitar_clean").gain(0.15).pan(0.4)

// chords · epiano2
const epiano2 = note(`<
  ~@3 A@2 ~@2 B@2 C D@2 E@2 F@2 G ~@2 H@2 ~@10 A@2 ~@2 B@2 I D@2 J@2 K@2 G ~@2 A@2 ~@10 H@2 ~@2 A@2 ~@2 B@2
>`.pickRestart({
  A: "[~@12 [a2,c4]@2 [b2,d4]@2 [c3,e4]@8 [e3,g4]@4 [d3,f#4]@25 ~@11, ~@24 f#4 ~@39]/2", // Am Bm C Em D
  B: "[~@6 [a2,c4] d4 [c3,e4]@4 [e3,g4]@2 [d3,f#4]@14 ~@4, ~@14 b2 ~@9 f#4 ~@39]/2", // Am C Em D
  C: "[a2,e3]@15 ~@9 e4@7 ~, e4@3 ~, b3@12 ~@4 c4@15 ~, a3@2 ~@2 c3@3 ~", // A5
  D: "[a3@2 ~@14 d3@6 ~@10 a3@3 ~@5 c4@7 ~ c3@8 e4@7 ~, d4@16 d4@15 ~@33, ~@4 a3@8 ~@10 d3@4 ~@6 a2@15 ~@17, ~@8 f#4@23 ~@33, ~@3 c4@2 ~ c4@2]/2",
  E: "[~@16 d3@4 ~@12 c4@4 ~@8 g3@4 ~@8 g4@7 ~, d4@7 a3 a2@4 [c3,c4]@4, d3@8 ~@2 a3@3 d3@2 e3@9 ~@8, ~@8 f#4@23 ~@33, ~@24 c4@7 ~@9 a3@8 ~@16]/2", // C
  F: "[d3@5 ~@3 f#4@14 ~@2 f4@2 ~ c4@2 ~@7 a3@8 ~@4 c4@8 [c4,e4]@8, d4@22 d3@10 a2@16 c3@15 ~, ~@13 e4@11 ~@8, ~@29 a3@6 ~@29, ~@32 e3@7 ~@25]/2", // C
  G: "~@8 c4@3 ~ f4@2 ~ a3, d4@6 ~ c4, d3 f#4@2 ~, ~ a3@2 a3@2 ~@3, ~@16 d3@5 ~ d3@9 ~",
  H: "[~@12 [a2,c4]@2 d4@2 [c3,e4]@8 [e3,g4]@4 [d3,f#4]@25 ~@11, ~@14 b2 ~@9 f#4 ~@39]/2", // Am C Em D
  I: "e4@15 ~@9 e4@7 ~, b3@12 ~@4 c4@15 ~, ~@4 c3@3 ~",
  J: "[~@16 d3@4 ~@8 a3@2 ~@2 c4@4 ~@8 g3@4 ~@8 g4@7 ~, d4@15 e3@9 ~@8, d3@16 ~@4 a3@6 d3@5 ~ a2@16 [c3,c4]@16, ~@8 f#4@23 ~@33, ~@24 c4@7 ~@9 a3@8 ~@16]/2", // C
  K: "[d3@5 ~@3 f#4@14 ~@2 f4@2 ~ c4@2 ~@7 a3@8 ~@4 c4@8 [c4,e4]@8, d4@22 d3@7 a3@6 ~@29, ~@13 e4@11 ~@8, ~@32 a2@16 c3@15 ~, ~@32 e3@7 ~@25]/2", // C
})).s("gm_epiano2").gain(0.08).pan(0.7)

// chords · epiano2 · soft notes
const epiano2_soft = note("<~@9 A B C D E F G H ~@20 A B C D E I G H ~@24>".pickRestart({
  A: "~@12 b3@4 g3 ~@3 g3@8 [c3,g3]@3 ~, ~@8 a3@7 ~@17", B: "d3@10 ~@2 a3@8 ~@6 d3@5 ~, ~@11 d3@5 ~@4 a3@11 ~",
  C: "e3@4 ~@8 a3@3 ~@12 c3@5, ~@4 a3@8 ~@9 g3@10 ~, ~@6 e3@9 ~@17", D: "~@4 a3@8 a3@5 ~@5 d3@4 ~@6",
  E: "~@5 c4@11 ~ g3@2 ~ g3@8 g3@3 ~, ~ g3@2 ~@5",
  F: "~@5 d3@7 ~@8 a3@6 ~@6, ~ a3@2 a3@2 ~@3, ~@7 d3@2 d3@2 ~@5, ~@2 c4 ~",
  G: "~@7 e3@3 ~@2 a3@4 g3@2 ~@10 g3@3 ~, ~@5 e3@3 ~@2 g3@4 ~@2, ~@23 e3@9", H: "~@5 d3@3 ~@2 a3@3 e4@3",
  I: "~@5 d3@7 ~@8 a3@6 ~@6, ~@4 a3@8 a3@7 ~@13, ~@7 d3@2 d3@2 ~@5, ~@2 c4 ~",
})).s("gm_epiano2").gain(0.02).pan(0.7)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~ A@2 B@2 A@2 C@2 ~@8 A@2 C@2 ~@8 A@2 C@2 A@2 C@2 ~@8 A@2 C@2 ~@8 A@2 C@2 D@2 C@2 A@2 C@2
>`.pickRestart({
  A: "[[a2,e3]@8 ~@4 [b2,f#3]@4 [c3,g3]@3 ~@5 [e3,b3]@4 [d3,a3]@12 ~@4 [c3,g3]@4 [d3,a3]@3 ~@5 [e3,b3]@8]/2", // A5 B5 C5 E5 D5 C5 D5 E5
  B: "[[a2,e3]@7 ~@5 [b2,f#3]@4 [c3,g3]@3 ~@5 [e3,b3]@4 [d3,a3]@28 ~@8]/2", // A5 B5 C5 E5 D5
  C: "[a2@7 ~@5 [b2,f#3]@4 [c3,g3]@3 ~@5 [e3,b3]@4 [d3,a3]@28 ~@8, e3 ~@63]/2", // B5 C5 E5 D5
  D: "[~@12 [b2,f#3]@4 [c3,g3]@3 ~@5 [e3,b3]@4 [d3,a3]@12 ~@4 [c3,g3]@4 [d3,a3]@3 ~@5 [e3,b3]@8]/2", // B5 C5 E5 D5 C5 D5 E5
})).s("gm_electric_guitar_jazz").gain(0.19)

// chords · church organ
const church_organ = note("<~@20 A B@2 C@2 D E F G ~@19 H I@2 C@2 D E F G ~@12>".pickRestart({
  A: "~@27 a3 [b3,c4,d4,e4] [g4,a4] ~@2, ~@29 f4@2 ~", // Cmaj7 Gsus2
  B: "[[f3,d5] f5 ~@14 [b4,d5]@16 [a4,c5]@16 [g4,b4]@16, g4 ~, [c5,e5]@15 ~@17 e5@32, ~ g5@48 ~@15]/2", // Dm Bm Am G C
  C: "[~@2 e5@30 [f4,c5]@25 b4 [e4,f4,g4,a4] [b3,c4,d4] [f3,g3] ~@3, [a4,d5]@29 ~@3, f#4@16 ~@14 a3 ~]/2", // F5 Fmaj7 Bm Fsus2 D5
  D: "[c5,e5] [b4,d5], g4@31 ~", E: "[a4,c5] [g4,b4], e5", F: "[f#4,a4,e5]",
  G: "[f4,a4,c5]@26 [a4,b4] [e4,f4,g4] [a3,b3,c4,d4] g3 ~@2", // F Asus2 Em D7
  H: "~@23 a3 [b3,c4,d4,e4] [g4,a4] ~@2 f3 ~@3, ~@25 f4@2 ~@5", // Cmaj7 Gsus2
  I: "[d5 f5 ~@14 [b4,d5]@16 [a4,c5]@16 [g4,b4]@16, g4 ~, [c5,e5]@15 ~@17 e5@32, ~ g5@48 ~@15]/2", // Bm Am G C
})).s("gm_church_organ").gain(0.05).pan(1)

// chords · church organ · soft notes
const church_organ_soft = note("<~@20 A B ~@5 C@2 ~@19 D B ~@5 C@2 ~@12>".pickRestart({
  A: "~@27 [e3,g3] ~@4", B: "f4 ~@31", C: "[d5@58 ~@3 f3 [d3,e3] ~]/2", D: "~@23 [e3,g3] ~@8",
})).s("gm_church_organ").gain(0.03).pan(1)

// chords · drawbar organ
const drawbar_organ = note("<~@20 A B@2 C@2 D E@3 ~@19 F G@2 H@2 I@4 ~@12>".pickRestart({
  A: "~@27 a3 [b3,c4,d4,e4] [g4,a4] ~@2, ~@29 f4@2 ~", // Cmaj7 Gsus2
  B: "[[f3,d5] f5 ~@14 [b4,d5]@16 [a4,c5]@16 [g4,b4]@16, g4 ~, [c5,e5]@15 ~@17 e5@32, ~ g5@48 ~@15]/2", // Dm Bm Am G C
  C: "[~@2 e5@30 [f4,c5]@25 b4 [e4,f4,g4,a4] [b3,c4,d4] [f3,g3] ~@3, [a4,d5]@29 ~@3, f#4@16 ~@14 a3 ~]/2", // F5 Fmaj7 Bm Fsus2 D5
  D: "d#5 [c5,e5]@15 [b4,d5]@16, ~ g4@31", // C Bm
  E: "[[a4,c5]@16 [g4,b4]@16 f#4@32 [f4,a4,c5]@26 g4 [d4,e4,f4] [a3,b3,c4] [f3,g3] [c3,d3,e3] b2, e5@2 ~, ~@16 d5@29 ~@3]/3", // Am G F Dm Am Fsus2 C
  F: "~@23 a3 [b3,c4,d4,e4] [g4,a4] ~@2 f3 ~@3, ~@25 f4@2 ~@5", // Cmaj7 Gsus2
  G: "[d5 f5 ~@14 [b4,d5]@16 [a4,c5]@16 [g4,b4]@16, g4 ~, [c5,e5]@15 ~@17 e5@32, ~ g5@48 ~@15]/2", // Bm Am G C
  H: "[~@2 e5@30 [f4,c5]@25 [g4,a4,b4] [c4,d4,e4,f4] [g3,b3] f3 ~@3, [a4,d5]@57 ~@7, f#4@32 ~@27 a3@2 ~@3]/2", // F5 G Dm7 G D5
  I: "[[c5,e5]@15 [b4,d5]@16 ~ [a4,c5]@15 [g4,b4]@16 f#4@32 [f4,a4,c5]@27 [e4,f4,g4] [b3,c4,d4] [g3,a3] [d3,e3,f3] [b2,c3] ~, g4@31 ~@32 d5@58 ~@7, d#5 ~@30 e5@64 ~@33]/4", // C Bm Am G F Em Bm Gsus2 …
})).s("gm_drawbar_organ").gain(0.11).pan(0)

// chords · drawbar organ · soft notes
const drawbar_organ_soft = note("<~@20 A B ~@5 C D ~@19 E B ~@4 F@2 G ~@12>".pickRestart({
  A: "~@27 [e3,g3] ~@4", B: "f4 ~@31", C: "a4", D: "~@24 e5@2 b4 ~@5", E: "~@23 [e3,g3] ~@8", F: "[~@31 a4@32 ~]/2",
  G: "~@25 b4 ~@6, ~@12 e5 ~@3",
})).s("gm_drawbar_organ").gain(0.05).pan(0)

// other · electric guitar jazz
const electric_guitar_jazz_2 = note(`<
  ~ A@3 B C@3 D ~@8 A@3 B ~@8 C@3 D C@3 D ~ E@2 F G H I ~ A@3 B ~@8 C@3 J K@4 L@3 M
>`.pickRestart({
  A: "[~@3 g4 a4 ~@3 g4@4 e4@2 ~@2 [g4,a4] ~@3 g4 ~@3 d4@4 c4@2 d4@8 ~@2 d4@2 ~@2 e4 ~@3 [d4,d#4]@2 c4@2 a3@2 ~@2 a3@2 ~@2 g3@2 a3@18 ~@16, ~@24 d#4 ~@71]/3", // Gsus2 D#maj7
  B: "~@8 d3@4 c3@2 a2@17 ~, ~@8 d#3 ~@23",
  C: "[~@4 [g4,a4]@2 ~@2 g4@3 ~ e4 ~@3 [g4,a4]@2 ~@2 g4 ~@3 d4@4 c4@2 d4@8 ~@2 d4 ~@3 e4 ~@3 [d4,d#4]@2 c4 ~ a3@2 ~@2 a3 ~@3 g3@2 a3@21 ~@13, ~@24 d#4 ~@71]/3", // Gsus2 D#maj7
  D: "~@4 d3@2 c3 a3@9, ~@8 d#3 ~@23", E: "[~@23 [b3,d4]@5 c4@21 ~@7 e4@4 g4 ~@3]/2",
  F: "d4@11 ~@11 e4 [g4,a4] c5@2 d5 ~@5", G: "d5@3 ~ a4@10 ~@18", H: "~@12 [d4,g4]@2 c4 ~",
  I: "g3 a3 e3 g3 d3 ~@7 g3@2 ~@2", J: "~@8 d3@4 c3@2 a3@17 ~, ~@8 d#3 ~@23",
  K: "[~@4 [g4,a4]@2 ~@2 g4@3 ~ e4 ~@3 [g4,a4]@2 ~@2 g4 ~@3 d4@4 c4@2 d4@8 ~@2 d4 ~@3 e4 ~@3 [d4,d#4]@2 c4 ~ a3@2 ~@2 a3 ~@3 g3@2 ~@16 g4 a4 c5@2 d5 ~@5 d5@3 c5 a4@9 ~@5 [d4,g4]@4 c4@2 a3@2 ~@2 a3@2 g3@2 e3 ~@3 c3@4, a3@7 ~@17 d#4 ~@37 a3@21 ~@45]/4", // Gsus2 D#maj7 G5
  L: "[~@4 [g4,a4]@2 ~@2 g4@3 ~ e4 ~@3 [g4,a4]@2 ~@2 g4 ~@3 d4@4 c4@2 d4@8 ~@2 d4 ~@3 e4 ~@3 [d4,d#4]@2 c4 ~ a3@2 ~@2 a3 ~@3 g3@2 ~@7 a5@2 ~ g5@2 ~@2 d5@2 c5@2 a4@2 g4@2 e4@2 d4@2 c4@2 ~@6, a2@9 ~@15 d#4 ~@37 a3@21 ~@13]/3", // Gsus2 D#maj7
  M: "~ e3 c3 ~ d3@2 ~@10",
})).s("gm_electric_guitar_jazz").gain(0.24).pan(0.9)

// other · electric guitar jazz · soft notes
const electric_guitar_jazz_3 = note("<~@41 A ~ B C ~@19 D ~@2 E F>".pickRestart({
  A: "~@2 c5 ~@29", B: "~@5 e3 a2@5 ~@3 e3@2", C: "d3@7 ~ d3@3 ~ d3@11 ~ d3@4 d3@3 ~", D: "~@18 g3 ~@7 d3 ~@5",
  E: "~@5 e5 ~@7 a3 g3 ~", F: "~@6 a2 ~@25",
})).s("gm_electric_guitar_jazz").gain(0.12).pan(0.9)

// other · electric guitar jazz
const electric_guitar_jazz_4 = note("<~ A@4 B@4 ~@8 A@4 ~@8 B@4 C@4 ~@8 A@4 ~@8 D@4 E@4 F@3 ~>".pickRestart({
  A: "[~@4 [g4,a4]@2 ~@2 g4@4 e4 ~@3 [g4,a4]@2 ~@2 g4 ~@3 d4@4 c4@2 d4@8 ~@2 d4@2 ~@2 e4 ~@2 d4@2 ~@2 a3 ~@4 a3 ~@3 g3@2 ~@14 a2@2 b2@2 c3@8 d3 e3@3 d3@12 d3@3 ~ c3@2 a2@15 ~@3, ~@24 d#4 ~@25 c4@2 ~@10 a3@17 ~@25 d#3 ~@23]/4", // Gsus2
  B: "[~@4 [g4,a4]@2 ~@2 g4@4 e4 ~@3 [g4,a4]@2 ~@2 g4 ~@3 d4@4 c4@2 d4@8 ~@2 d4@2 ~@2 e4 ~@3 [d4,d#4]@2 c4 a3@2 ~@3 a3 ~@3 g3@2 ~@14 a2@2 b2@2 c3@8 ~ e3@3 d3@12 d3@4 c3@2 a3@18, ~@24 d#4 ~@37 a3@18 ~@8 d3@2 ~@14 d#3 ~@23]/4", // Gsus2 D#maj7
  C: "[~@4 [g4,a4]@2 ~@2 g4@4 e4 ~@3 [g4,a4]@2 ~@2 g4 ~@3 d4@4 c4@2 d4@8 ~@2 d4@2 ~@2 e4 ~@3 [d4,d#4]@2 c4 a3@2 ~@3 a3 ~@3 g3@2 ~@14 a2@2 b2@2 c3@8 d3 e3@3 d3@12 d3@4 c3@2 a3@18, ~@24 d#4 ~@37 a3@18 ~@24 d#3 ~@23]/4", // Gsus2 D#maj7
  D: "[~@4 [g4,a4]@2 ~@2 g4@4 e4 ~@3 [g4,a4]@2 ~@2 g4 ~@3 d4@4 c4@2 d4@8 ~@2 d4@2 ~@2 e4 ~@3 [d4,d#4]@2 c4 a3@2 ~@3 a3 ~@3 g3@2 ~@14 a2@2 b2@2 c3@8 ~ e3@3 d3@12 d3@4 c3@2 a3@17 ~, ~@24 d#4 ~@37 a3@18 ~@8 d3@2 ~@14 d#3 ~@23]/4", // Gsus2 D#maj7
  E: "[~@4 [g4,a4]@2 ~@2 g4@4 e4 ~@3 [g4,a4]@2 ~@2 g4 ~@3 d4@4 c4@2 d4@8 ~@2 d4@2 ~@2 e4 ~@3 [d4,d#4]@2 c4 a3@2 ~@3 a3 ~@3 g3@2 a3@14 a2@2 b2@2 c3@8 ~ e3@3 d3@21 ~@15, ~@24 d#4 ~@63 d3@2 ~@38]/4", // Gsus2 D#maj7
  F: "[~@4 [g4,a4]@2 ~@2 g4@3 ~ e4 ~@3 [g4,a4]@2 ~@2 g4 ~@3 d4@4 c4@2 d4@8 ~@2 d4 ~@3 e4 ~@3 [d4,d#4]@2 c4 ~ a3@2 ~@2 a3 ~@3 g3@2 a3@12 ~@22, ~@24 d#4 ~@71]/3", // Gsus2 D#maj7
})).s("gm_electric_guitar_jazz").gain(0.12).pan(0)

// chords · rock organ
const rock_organ = note("<~@22 A@3 B C ~ D ~@21 A@3 B C ~ D ~@12>".pickRestart({
  A: "[~@31 d#6 ~@30 [a#6,b6] ~@25 b6@2 [g6,a6] [d6,e6,f6] c6 ~@3, ~@31 e6@45 ~@20, ~@62 c7@26 a6 ~@7]/3", // Bmaj7 Gsus2 Dm
  B: "g6, f#6 ~@31", C: "e6", D: "[a#6,b6] ~@24 [g6,a6] [d6,e6,f6] [a5,b5,c6] [e5,f5,g5] [c5,d5] ~@2, c7@25 ~@7",
})).s("gm_rock_organ").gain(0.08).pan(0.8)

// chords · rock organ · soft notes
const rock_organ_soft = note("<~@22 A ~ B ~@2 C D ~@21 A ~ B ~@2 C D ~@12>".pickRestart({
  A: "~@30 d6 ~", B: "~@23 g#6 ~@4 [a5,b5] [e5,f5,g5] ~@2", C: "d6", D: "~@25 b6 ~@6",
})).s("gm_rock_organ").gain(0.04).pan(0.8)

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

// … 74 more lines

More by Daniele