Strudelify

Di sole e d'Azzurro

Giorgia

KeyG majorTempo110 bpm
0:00/0:00
// Di sole e d'Azzurro — Giorgia
// 110 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 119 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(110/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@5 B@3 C@3 D@3 E@3 F@3 G@6 H@3 I@3 J@6 K@3 L@3 M@6 N@6 O@6 P@6 Q@3 R@3 S@3 T@3 Q@3 R@3 S@3 U@3 Q@3 R@3 S@3 V W@2 X@3
  C@3 Y@3 C@3 Z@3
>`.pickRestart({
  A: "[~@32 e4@8 ~@12 b3@4 ~@4 b3@4 ~@8 b3@4 e4@3 ~ e4@4 [b3,f#4]@4 g4@4 f#4@4 e4@6 ~@2 d4@8 e4@4 ~@12 e4@8 ~@16 a3@8, ~@4 a1@6 b1@7 ~@11 [c2,c3]@6 [b1,b2]@6, ~@5 a2@5 ~ b2@6 e3@5 ~@7 g3@5 ~ f#3@5, ~@24 e3@16 ~@4 f#3@20 e2@24 [d2,d3]@23 ~@49, ~@28 a3@12 b3@8 d#4@7 ~ d#4@9 ~@37 b3@10 ~@8 c4@16 ~@8 b3@16]/5", // B5 C B D
  B: "[~@4 b3@5 ~@11 g4@4 ~@10 c4@2 ~@10 f#3@2, [e2,e3]@24 a1@8 e4@5 ~@3 d#4@8, ~ g3@4 b3@7 ~ a2@5 [b1,b2]@6, ~@6 f#4@6 ~@2 e3@4 ~ f#3@3 a3@2, ~@5 a3 ~ b3]/3", // E B
  C: "[~@8 b3@4 e4@3 ~ e4@4 [b3,f#4]@4 g4@4 f#4@4 e4@6 ~@2 d4@8 e4@4 ~@12 e4@8 ~@16 f#4@8, e2@24 [d2,d3]@23 ~ [c2,c3]@24 [b1,b2]@24, ~@2 e3@10 ~@7 b3@5 ~@2 g3@10 ~@2 f#3@10, ~@7 c4@2 ~ [b3,g4]@2]/3", // B5 D C B Em
  D: "[~@2 [g3,b3]@2 [f#3,a3]@2 [e3,g3]@6 ~@4 f#5 ~@5 g4@2, e2@12 [e2,e3]@5 g5 [d2,d3]@6, e3@6 ~@7 g4@7 b4@4, ~@7 b4@2 f#5@2 ~, ~@5 e5@3]/3", // G F#m Em E D
  E: "[~@3 c5 ~ c5 ~ g4 f#4 e4 ~ d4 ~@4 g5@2 ~@3 b4 g4 b4, [c2,c3] [d2,d3] [e2,e3] [d2,d3], ~@4 e4@21 ~@27 e4@18 ~@26, ~@8 g4@17 ~@15 f#4@8 ~@8 g4@16 ~@8 d5@14 ~@2, ~@16 e5@9 ~@35 b4@12 f#5@19 ~@5]/3", // C D E D
  F: "[~@12 e5@4 d5@4 ~@8 c5@4 b4@4 a4@4 g4@4 f#4@4 ~@16 g5 a5 g5 a5 g5 a5 g5@2 ~@12 b4@4 g4@4 b4@4, [c2,c3,c4] [d2,d3] [e2,e3] [d2,d3], ~@2 e4@10 ~@14 e4@9 ~@13, ~@4 g4@8 ~@16 g4@8 ~@4 d5@7 ~, ~@20 c5@8 ~@32 b4@12 f#5@19 ~@5]/3", // C D E D
  G: "[~@12 e5@4 d5@4 ~@8 a4@4 g4@4 f#4@4 e4@4 d4@4 ~@9 b4@3 ~@3 b4@4 ~@14 g5@2 ~@29 f#5@4 ~@20 g4@8 ~@12 c5@4 ~@4 c5@4 ~@4 g4@4 f#4@4 e4@4 ~@4 d4@4, [c2,c3,c4]@6 [d2,d3]@6 [e2,e3]@12 [e2,e3]@5 g5 [d2,d3]@6 [c2,c3]@6 [d2,d3]@6, ~@4 e4@20 ~@48 e5@11 f#5@16 ~@9 e5@36 ~@8 g4@17 ~@15 f#4@8, ~@8 g4@16 ~@43 a4@25 ~@8 g4@28 b4@16 ~@4 e4@21 ~@23, ~@20 c5@8 ~@32 e5@7 ~@2 b4@21 ~@14 b4@16 f#5@16 ~@24 e5@9 ~@23]/6", // C D E D C D
  H: "[~@16 g5@8 ~@16 a4@7 ~@13 c5@4 ~@4 c5@4 ~@4 c5@4 b4@4 a4@4 g4@4 f#4@4, b4@39 ~@17 g4@20 ~@20, [e2,e3,e4] [d2,d3,f#5] [c2,c3] [d2,d3], g4@21 ~@31 e4@22 ~@22, ~@8 e5@17 ~@7 d5@16 ~@16 e5@12 ~@20]/3", // E D C D
  I: "[~@16 g5 a5 g5 a5 g5 a5 g5@2 ~@12 b4@4 g4@4 b4@4 ~@12 e5@4 d5@4 ~@8 a4@4 g4@4 f#4@4 e4@4 d4@4, [e2,e3] [d2,d3] [c2,c3,c4] [d2,d3], ~@2 e4@9 ~@15 e4@10 ~@12, ~@4 g4@8 ~@4 d5@7 ~@5 g4@8 ~@12, ~@12 b4@12 f#5@19 ~@25 c5@8 ~@20]/3", // E D C D
  J: "[~@40 [e4,g4]@8 a3@8 a3@4 ~@4 c4@6 ~@3 [d#4,g4]@47 [b3,d4]@8 b3 ~@7 g4@7 ~ d4@7 ~@9 g4@7 ~@13 c4@4 ~@4 c4@4, b2@6 e3@6 a2@5 ~ [c3,c4]@12 ~@12 c3@6, ~@8 b3@17 ~@7 b3@17 ~@7 e3@15 ~@81 d4@14 ~@2 [c4,e4]@13 ~@3 e4@7 ~, ~@16 [d4,f#4]@16 ~@16 [c4,e4]@12 ~@11 a3@49 g3@23 ~ [g3,b3]@23 ~@9 g3@15 ~]/6", // Em D# Bm C D C G
  K: "[[a3,d4]@8 ~@4 d4@4 f#4@4 d4@2 ~@2 [b3,d4]@8 b3 ~@7 g4@7 ~ d4@7 ~@9 g4@7 ~@13 c4@4 ~@4 c4@4, d3@11 ~@25 c3@12, f#4@12 ~@44 d4@14 ~@2 [c4,e4]@13 ~@3 e4@7 ~, ~@8 a3@15 ~ g3@23 ~ [g3,b3]@23 ~@9 g3@15 ~]/3", // D5 Bm C G
  L: "[[d3,d4]@8 [d3,d4]@8 [d#3,d#4]@8 e4@8 ~@8 e4@6 ~@2 e4@8 ~@8 e4@7 ~ [d#4,g4]@8 ~@8 g4@6 ~@2, [a3,f#4]@24 [e3,g3]@22 ~@2 [e3,g3]@23 ~ [d#3,g3,c4]@23 ~, ~@24 b3@7 ~ b3@14 ~@2 b3@7 ~ b3@13 ~@11 d#4@14 ~@2]/3", // D D# D Em Cm
  M: "[[d#4,g4]@8 ~@8 g4@7 ~ d4@8 ~@8 g4@6 ~@2 d4@6 ~@10 g4@7 ~ e4@8 ~@32 a3@8 ~@20 c4@4 ~@20 f#3@4 ~@8 b3@4 e4@3 ~ e4@4 [b3,f#4]@4, [d#3,g3,c4]@23 ~ [g3,b3]@23 ~ [g3,b3]@22 ~@2 [d3,g3]@40 ~@8 c3@20 ~@4 b2@24 e2@24, ~@8 d#4@15 ~@9 d4@14 ~@10 d4@15 ~ c4@32 d4@16 ~@8 e3@16 ~@4 f#3@12 a3@9 ~@3 e3@20, ~@80 d4@16 f#4@11 ~@25 a3@12 ~@12 b3@12 ~@24, ~@88 g4@12 ~@36 e4@10 ~@6 d#4@17 ~@23]/6", // D# B5 Cm G G5
  N: "[g4@2 f#4@2 e4@3 ~ d4@4 e4@2 ~@6 e4@4 ~@8 f#4@4 ~@4 [g3,b3]@4 [f#3,a3]@4 [e3,g3]@12 ~@32 e4@4, [d2,d3]@23 ~ [c2,c3]@24 [b1,b2]@24 e2@48 ~@16 e4@16 b3@15 ~@9 c4@16, ~@14 b3@10 ~@4 g3@20 ~@4 f#3@20 e3@24 ~@24 [e3,g3]@23 ~ d3@24 [c3,g3]@24, ~@32 c4@16 ~@8 [b3,g4]@18 ~@54 b3@13 ~@3 g3@21 ~@27, ~@10 e4 ~]/6", // G F#m Em D C B Em C5 …
  O: "[~@2 d4 e4 d4 a3 ~@16 e4@2, [d3,a3]@13 ~@11 [e3,g3]@23 ~ d3@24 [c3,g3]@24, ~@32 b3@13 ~@3 g3@21 ~@27, ~@40 e4@16 b3@15 ~@9 c4@16, ~@4 e4 ~]/3", // D5 Em C5
  P: "[~@8 d4@4 e4@4 d4@4 a3@4 ~@40 [e4,g4]@8 a3@8 ~@8 c4@6 ~@3 [d#4,g4]@47 [b3,d4]@8 b3 ~@7 g4@7 ~ d4@7 ~@9 g4@7 ~, [d3,a3]@13 ~@11 b2@24 e3@24 a2@20 ~@4 [c3,c4]@48 ~@48, ~@32 b3@17 ~@7 b3@17 ~@7 [e3,a3]@15 ~@81 d4@14 ~@2, ~@40 [d4,f#4]@16 ~@16 [c4,e4]@12 ~@11 a3@49 g3@23 ~ [g3,b3]@23 ~]/6", // Em D# Bm D5 C A5 D C …
  Q: "[~@12 c4@4 ~@4 c4@4 [a3,d4]@8 ~@4 d4@4 f#4@4 d4@2 ~@2 [b3,d4]@8 b3 ~@7 g4@7 ~ d4@7 ~@9 g4@7 ~, c3@12 d3@11 ~@25, [c4,e4]@13 ~@3 e4@7 ~ f#4@12 ~@44 d4@14 ~@2, ~@8 g3@15 ~@9 a3@15 ~ g3@23 ~ [g3,b3]@23 ~]/3", // D5 Bm C G
  R: "[~@12 c4@4 ~@4 c4@4 [d3,d4]@8 [d3,d4]@8 [d#3,d#4]@8 e4@8 ~@8 e4@6 ~@2 e4@8 ~@8 e4@7 ~, c3@24 ~@24 [e3,g3]@22 ~@2 [e3,g3]@23 ~, [c4,e4]@13 ~@3 e4@7 ~@73, ~@8 g3@15 ~ [a3,f#4]@24 b3@7 ~ b3@14 ~@2 b3@7 ~ b3@13 ~@3]/3", // D D# Em C D
  S: "[[d#4,g4]@8 ~@8 g4@6 ~@2 [d#4,g4]@8 ~@8 g4@7 ~ d4@8 ~@8 g4@6 ~@2 d4@6 ~@10 g4@7 ~, [d#3,g3,c4]@23 ~ [d#3,g3,c4]@23 ~ [g3,b3]@23 ~ [g3,b3]@22 ~@2, ~@8 d#4@14 ~@10 d#4@15 ~@9 d4@14 ~@10 d4@15 ~]/3", // D# Cm G
  T: "[e4@8 ~@15 f#4 ~@16 a3@8 [b3,d4]@8 b3 ~@7 g4@7 ~ d4@7 ~@9 g4@7 ~, [d3,g3]@40 ~@8 g3@23 ~ [g3,b3]@23 ~, c4@16 d4@8 ~@16 d4@7 ~, ~@8 d4@16 f#4@11 ~@61, ~@4 g4@3 ~@17]/3", // Bm G5 G
  U: "[e4@8 ~@32 a3@8 [b3,d4]@8 b3 ~@7 g4@7 ~ d4@7 ~@9 g4@7 ~, [d3,g3]@40 ~@8 g3@23 ~ [g3,b3]@23 ~, c4@16 d4@8 ~@16 d4@7 ~, ~@8 d4@16 f#4@11 ~@61, ~@4 g4@3 ~@17]/3", // Bm G5 G
  V: "[c3,c4,e4,g4]@4 [b2,b3,d4,f#4]@2 ~@2 [a2,a3,c4,e4]@5 ~@19", // C Bm Am
  W: "[[d#3,a#3,d#4,g4]@8 d4@4 ~@16 g4@3 ~, ~@16 [d3,b3]@45 ~@3, ~@16 g3@22 ~@2 g3@21 ~@3, ~@16 g4@11 ~@5 g4@17 ~@15, ~@12 d4@8 ~@4 d4@7 ~]/2", // D# G
  X: "[~@16 f#4@31 ~@21 c4@4 ~@20 f#3@4, [d3,f#3,a3]@47 ~ c3@20 ~@4 b2@24, ~@2 d4@10 ~@2 e3@4 ~ f#3@3 a3@2, ~@5 a3 ~ b3, ~@32 e4@5 ~@3 d#4@8]/3", // D
  Y: "[~@2 [g3,b3]@2 [f#3,a3]@2 [e3,g3]@6 ~@5 c4 ~@5 f#3, e2@12 ~@2 e3@4 ~ f#3@3 a3@2, e3@6 ~@6 c3@5 ~ b2@6, ~@5 a3 ~ b3, ~@32 e4@5 ~@3 d#4@8]/3", // G F#m Em
  Z: "[~@2 [g3,b3]@3 [f#3,a3]@4 [e3,g3]@9 ~@6, e2 ~, e3 ~@3]/3", // G F#m Em
})).s("gm_epiano1").gain(0.36).pan(0.3)

// bass · fretless bass
const bass = note(`<
  ~@22 A B@3 C@3 D@3 E@2 F G@3 H@3 I@3 J@6 K@6 L@3 M@3 N@3 O P@2 Q@3 R@3 S T@2 U V@2 Q@3 R@3 W@3 U V@2 X@3 Y@3 Z AA@2 AB
  AC@2 AD@3 AE@3 AF@2 ~@7
>`.pickRestart({
  A: "~@31 d#2", B: "[e2@24 d2@24 c2@23 c#2 d2@24]/3", C: "[e2@24 d2@24 c2@23 c#2 d2@23 d#2]/3", D: "[e2 d2 c2 d2]/3",
  E: "[b1@3 e2@3 a1@2]/2", F: "b2 a2@3", G: "[~@24 g1@24 b1@24 c2@23 ~]/3", H: "[d2@23 ~ g1@24 b1@24 c2@23 ~]/3",
  I: "[d2@16 d#3@8 e3@23 ~ e2@14 ~@2 e2@7 ~ d#2@23 ~, ~@63 d#2@2 ~@31]/3",
  J: "[d#2@23 ~ d1@23 ~ d1@23 ~ d2@47 ~ c2@23 ~ b1@23 ~ e2@23 ~]/6",
  K: "[d2@23 ~ c2@23 ~ b1@23 ~ e1@47 d#2 e2@24 d2@24 c2@23 c#2]/6", L: "[d2@24 e2@24 d2@24 c2@23 c#2]/3",
  M: "[d2@23 d#2 e2@24 d2@24 c2@24]/3", N: "[d2@3 b1@3 e2@3 a1@2 b2]/3", O: "a2@3 ~", P: "[~@2 g1@3 b1@3]/2",
  Q: "[c2@23 ~ d2@23 ~ g1@24 b1@24]/3", R: "[c2@23 ~ d2@16 d#3@8 e3@23 ~ e2@14 ~@2 e2@7 ~, ~@87 d#2@2 ~@7]/3",
  S: "d#2@23 ~ d#3@8", T: "[f3@8 d#3@7 ~ d1@23 ~ d1@23 ~]/2", U: "d1@31 ~", V: "[f#1@6 ~@2 f#1@7 ~ g1@24 b1@24]/2",
  W: "[d#2@23 ~ d#2@23 ~ d1@23 ~ d1@23 ~]/3", X: "[c2@23 ~ d2@12 d1@11 ~ g1@24 b1@24]/3",
  Y: "[c2@23 ~ d2@22 ~@2 e2@21 ~@3 e2@7 ~ b1@8 e2@7 ~]/3", Z: "d#2@23 ~ d#2@7 e2",
  AA: "[f2@8 d#2@7 ~ d2@23 ~ d2@23 ~]/2",
  AB: "c2@4 b1@3 ~ a1@3 ~@10 [a#1,b1,c#2,d#2] [f2,f#2,g#2,a#2] [b2,c#3,d#3,f3,f#3] g#3 [d3,e3,f#3] [a2,b2,c#3] [e2,f#2,g#2] ~@4", // D#7 F#maj7 B D A E
  AC: "[d#2@15 ~ d2@23 ~ d2@23 ~]/2", AD: "[d1@47 ~ c2@23 ~ b1@23 ~]/3", AE: "[e2@23 ~ d2@23 ~ c2@23 ~ b1@23 ~]/3",
  AF: "[e1@47 ~@17]/2",
})).s("gm_fretless_bass").gain(0.31)

// chords · pad warm
const pad_warm = note(`<
  A@7 B@6 C@6 D@6 E@6 F@6 G@6 H@6 I@6 J@6 K@3 L@8 M@6 N@6 M@6 N@6 O@5 P@8 Q@6 R@3 ~
>`.pickRestart({
  A: "[~@15 [a3,c4,e4]@24 [b3,d#4,f#4]@24 [g3,b3,e4]@24 [g3,b3,d4]@24 [g3,c4,e4]@24 [b3,d#4,f#4]@24 [g3,b3,e4]@44 ~@4 [a3,c4,e4]@17]/7", // Am B Em G C B Em Am
  B: "[~@7 [b3,d#4,f#4]@24 [g3,b3,e4]@24 [g3,b3,d4]@24 [g3,c4,e4]@24 [b3,d#4,f#4]@24 [g3,b3,e4]@44 ~@4 [b3,e4,g4]@17]/6", // B Em G C B Em
  C: "[~@7 [b3,d4,g4]@24 [c4,e4,g4]@24 [d4,f#4,a4]@24 [b3,e4,g4]@24 [b3,d4,g4]@24 [c4,e4,g4]@24 [d4,f#4,a4]@24 [b3,e4,g4]@17]/6", // G C D Em G C D Em
  D: "[~@7 [b3,d4,g4]@24 [c4,e4,g4]@24 [d4,f#4,a4]@24 [a3,b3,e4]@48 [b3,e4,g4]@24 [b3,d4,g4]@24 [c4,e4,g4]@17]/6", // G C D Asus2 Em G C
  E: "[~@7 [d4,f#4,a4]@24 [b3,e4,g4]@24 [b3,d4,g4]@24 [c4,e4,g4]@24 [d4,f#4,a4]@24 [b3,e4,g4]@24 [b3,d4,g4]@24 [c4,e4,g4]@17]/6", // D Em G C D Em G C
  F: "[~@7 [d4,f#4,a4]@24 [b3,d4,f#4]@24 [b3,e4,g4]@24 e4@24 d#4@48 [b3,d4,g4]@41, ~@79 [a3,c4,g4]@72 ~@41]/6", // D Bm Em G Am7
  G: "[~@7 [c4,e4,g4]@24 [d4,f#4,a4]@24 [b3,d4,g4]@48 [c4,e4,g4]@24 [d4,f#4,a4]@24 [b3,e4,g4]@41]/6", // C D G C D Em
  H: "[~@7 [c4,d#4,g4]@48 [b3,d4,g4]@48 [g3,c4,e4]@24 [a3,d4,f#4]@24 [a3,c4,e4]@24 [b3,d#4,f#4]@17]/6", // Cm G C D Am B
  I: "[~@7 [g3,b3,e4]@24 [g3,b3,d4]@24 [g3,c4,e4]@24 [b3,d#4,f#4]@24 [g3,b3,e4]@44 ~@4 [b3,e4,g4]@24 [b3,d4,g4]@17]/6", // Em G C B Em G
  J: "[~@7 [c4,e4,g4]@24 [d4,f#4,a4]@24 [b3,e4,g4]@24 [b3,d4,g4]@24 [c4,e4,g4]@24 [d4,f#4,a4]@24 [b3,e4,g4]@24 [b3,d4,g4]@17]/6", // C D Em G C D Em G
  K: "[~@7 [c4,e4,g4]@24 [d4,f#4,a4]@24 [b3,d4,f#4]@24 [b3,e4,g4]@17]/3", // C D Bm Em
  L: "[~@7 e4@24 d#4@48 [b3,d4,g4]@48 [c4,e4,g4]@24 [d4,f#4,a4]@24 [b3,d4,g4]@48 [c4,e4,g4]@24 [d4,f#4,a4]@9, ~@7 [a3,c4,g4]@72 ~@177]/8", // G C D G C D Am7
  M: "[~@5 [b3,e4,g4]@16 [c4,d#4,g4]@16 [b3,d4,g4]@16 [g3,c4,e4]@8 [a3,d4,f#4]@3]/6", // Em Cm G C D
  N: "[~@5 [b3,d4,g4]@16 [c4,e4,g4]@8 [d4,f#4,a4]@8 [b3,d4,g4]@16 [c4,e4,g4]@8 [d4,f#4,a4]@3]/6", // G C D G C D
  O: "[~@15 [b3,e4,g4]@48 [c4,d#4,g4]@48 [b3,d4,g4]@48 ~]/5", // Em Cm G
  P: "[~@31 [a#3,d#4,g4]@16 [b3,d4,g4]@48 [a3,d4,f#4]@48 [a3,c4,e4]@24 [b3,d#4,f#4]@24 [g3,b3,e4]@24 [g3,b3,d4]@24 [g3,c4,e4]@17]/8", // D# G D Am B Em G C
  Q: "[~@7 [b3,d#4,f#4]@24 [g3,b3,e4]@44 ~@4 [a3,c4,e4]@24 [b3,d#4,f#4]@24 [g3,b3,e4]@24 [g3,b3,d4]@24 [g3,c4,e4]@17]/6", // B Em Am B Em G C
  R: "[~@7 [b3,d#4,f#4]@24 [g3,b3,e4]@44 ~@21]/3", // B Em
})).s("gm_pad_warm").gain(0.12).pan(0.4)

// other · pizzicato strings
const pizzicato_strings = note("<~@47 A B C D ~@54 E F G H ~@2 I J K L M N ~@2>".pickRestart({
  A: "~@28 e3 ~@3", B: "g3@2 ~@2 a3@2 ~@2 b3@2 ~@2 e3 ~@11 e4@7 ~", C: "f#4@6 ~@2 g4@4 ~@8 b3 ~@3 e4@4 f#4@4",
  D: "g4@2 ~@2 f#4@2 ~@2 e4@2 ~@4 b3 ~ d4@3 ~@13", E: "~@20 e3 ~@3 g3@2 ~@2 a3@2 ~@2",
  F: "b3@2 ~@2 e3 ~@11 e4@7 ~ f#4@6 ~@2", G: "g4@4 ~@8 b3 ~@3 e4@4 f#4@4 g4@2 ~@2 f#4@2 ~@2",
  H: "e4@2 ~@4 b3 ~ d4@3 ~@21", I: "~@11 e3 g3 ~@2 e3", J: "c4 ~@7 d#3@2 ~@6 f#3@2 ~@6 b3 ~@7",
  K: "~@4 g3 ~@3 b3 ~@3 e4 ~@19", L: "e4 ~@5 b3 ~ d4 ~@13 g3 ~ c4 ~@5 g3 ~", M: "e4 ~@7 f#3 ~@7 b3 ~@5 f#3@2 a3 ~@7",
  N: "e3 ~@31",
})).s("gm_pizzicato_strings").gain(0.35).pan(0.6)

// other · electric guitar jazz
const electric_guitar_jazz = note("<A B C@3 D@2 B E@3 F ~@107>".pickRestart({
  A: "~@16 e4@5 ~@3 e4@6 ~@2", B: "e4@7 ~ d#4@7 ~ e4@7 ~ f#4@7 ~",
  C: "[g4@15 ~ e4@4 f#4@4 g4@18 ~@6 e4@24 d#4@16 a3@4 b3@2 a3@2]/3",
  D: "[g3@8 ~@8 e4@8 f#4@21 ~@3 e4@5 ~@3 e4@6 ~@2, ~@8 b3@35 ~@21]/2",
  E: "[g4@15 ~ e4@4 f#4@4 g4@16 d4@8 e4@24 d#4@22 ~@2]/3", F: "e4@11 ~@5",
})).s("gm_electric_guitar_jazz").gain(0.4).pan(0.8)

// chords · string ensemble 1
const string_ensemble_1 = note("<~@35 A@8 B@3 C@7 D@8 E@5 F@6 G@6 F@6 H@6 F@6 I@5 J@8 K@8 L@2>".pickRestart({
  A: "[~@23 d4@48 e4@24 [d4,f#4]@23 ~ d4@48 e4@24 [d4,f#4]@23 ~ [g3,e4]@41, ~@23 g3@72 ~@24 g3@72 ~@65]/8", // D C
  B: "[~@7 [g3,d#4]@47 ~ [d4,b4]@41]/3", // Cm G
  C: "[~@7 [e4,c5]@23 ~ [f#4,d5]@16 ~@8 [g3,e4]@24 [f#3,d#4]@24 [g3,e4]@47 ~ [g3,e4]@24 [f#3,d#4]@24 g3@7 ~ b3@8 a3@8 g3, ~@199 e4@16 ~@9]/7", // C D C D#m C D#m
  D: "[~@39 e4@7 ~ [b3,f#4]@23 ~ [g3,e4]@23 ~ [f#3,d4]@23 ~ [g3,e4]@24 [b3,f#4]@23 ~ [g3,e4]@23 ~ [f#3,d4]@24 [g3,e4]@24 [b3,f#4]@17, ~@23 g3@24 ~@209, ~@31 b3@16 ~@209]/8", // B5 C D C B5 C D C …
  E: "[~@7 [b3,g4]@23 ~ [d4,a4]@23 ~ [a3,f#4]@22 ~@2 [b3,g4]@24 [d4,b4]@24 [d#4,c5]@28 ~@5]/5", // Em D5 D Em G Cm
  F: "[~@15 d4@48 e4@24 [d4,f#4]@23 ~ d4@48 e4@24 [d4,f#4]@9, ~@5 g3@24 ~@8 g3@24 ~@3]/6", // D
  G: "[~@15 [g3,e4]@47 ~ [g3,d#4]@47 ~ [d4,b4]@47 ~ [e4,c5]@23 ~@10]/6", // C Cm G C
  H: "[~@15 [g3,e4]@47 ~ [g3,d#4]@47 ~ [d4,b4]@47 ~ [e4,c5]@23 ~ [f#4,d5]@9]/6", // C Cm G C D
  I: "[~@15 [g3,e4]@47 ~ [g3,d#4]@47 ~ [d4,b4]@47 ~ [c3,c4,c5]]/5", // C Cm G C
  J: "[~@3 [b2,b3,b4] ~@3 [a2,a3,a4] ~@23 [d#4,c5]@15 ~ [d4,b4]@48 [d4,a4]@46 ~@2 [g3,e4]@24 [f#3,d#4]@24 [g3,e4]@47 ~ [g3,e4]@17]/8", // B A Cm G D5 C D#m C
  K: "[~@7 [f#3,d#4]@24 g3@7 ~ b3@8 a3@8 g3@14 ~@10 [g3,e4]@24 [f#3,d#4]@24 e3@23 ~ d3@22 ~@2 [g3,e4]@24 [f#3,d#4]@24 g3@7 ~ b3@11 ~ a3@13, ~@31 e4@16 ~@80 [g3,e4]@47 ~@49 e4@16 ~@17]/8", // D#m C D#m C D#m C
  L: "[~@3 g3@37 ~@24]/2",
})).s("gm_string_ensemble_1").gain(0.25).pan(0.4)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@23 A@3 B@3 C@3 D@4 ~@5 E@3 F@3 G ~@5 H@3 I@3 J@3 K@3 L@2 ~@5 M@2 N@3 O P ~@5 M@2 N@3 O P ~@5 M@2 N@3 Q@3 R@2 ~@13
>`.pickRestart({
  A: "[~@4 e4@2 ~@4 e4@2 ~ b3 e4 b3 e4 b3 ~@2 d4 ~@2 a3, g3@18 ~@6 g3@24 a3@21 ~@19 d4@8, ~@2 b3@4 ~@2 b3@4 ~@9 e4@3]/3",
  B: "[~@4 e4@2 ~@4 e4@2 ~ b3 e4 b3 e4 b3 ~@2 d4 ~@2 a3, g3@18 ~@6 g3@24 a3@21 ~@3 a3@16 d4@8, ~@2 b3@4 ~@2 b3@4 ~@9 e4@3]/3",
  C: "[~@16 e4@8 ~@16 e4@8 g3 ~@15 e4@8 ~@16 f#4@7 ~, g3@18 ~@6 g3@24 ~@24 a3@23 ~, ~@8 b3@16 ~@8 b3@16 ~@8 c4@15 ~@9 d4@15 ~]/3",
  D: "[~@12 g4@4 ~@4 g4@4 ~@2 c4@9 ~@2 g4@21 ~@6, f#3@23 ~@105, ~@8 b3@39 ~ a3@21 ~@59, ~@16 d4@13 ~@3 d4@16 ~@25 d#4@43 ~@12]/4",
  E: "[~@64 e4@7 ~@17 g4@7 ~, ~@24 g3@16 e4@16 b3@15 ~ c4@21 ~@3, ~@32 b3@15 ~ g3@23 ~@9 d#4@14 ~@2]/3",
  F: "[~@2 g4 ~@5 g4 ~@2 g4, c4@20 ~@4 g3@13 ~@3 g4@16 ~@40, ~@8 d#4@15 ~@9 d4@20 ~@4 d4@16 ~@8 d4@16, ~@2 g3 ~]/3",
  G: "~@16 a3@7 ~@9, ~@8 f#4@15 ~@9",
  H: "[~@10 e4@2 ~@4 e4@2 ~ b3 e4 b3 e4 b3, ~@8 g3@6 ~@2 g3@8 a3@7 ~, ~@4 b3@2 ~ b3@2 ~@3]/3",
  I: "[~@2 d4 ~@2 a3 ~@4 e4@2 ~@4 e4@2 ~ b3 e4 b3 e4 b3, ~@12 e4@13 ~@7 b3@16 ~@8 b3@16 a3@21 ~@3, ~@8 d4@4 g3@9 ~@3 g3@12 ~@12]/3",
  J: "[~@8 d4@4 ~@8 a3@4 ~@16 e4@8 ~@16 e4@8 g3 ~@15 e4@8, a3@8 d4@4 g3@9 ~@3 g3@12 ~@12, ~@12 e4@13 ~@7 b3@16 ~@8 b3@16 ~@8 c4@15 ~]/3",
  K: "[~@16 f#4@7 ~@25 g4@8 ~@8 g4@8 ~@4 c4@18 ~@2, a3@23 ~ f#3@23 ~@49, ~@8 d4@15 ~@9 b3@39 ~ a3@21 ~@3, ~@40 d4@13 ~@3 d4@16 ~@24]/3",
  L: "[~ g4@21 ~@10, ~ d#4@43 ~@20]/2", M: "[~@56 e4@7 ~, ~@16 g3@16 e4@16 b3@15 ~, ~@24 b3@15 ~ g3@23 ~]/2",
  N: "[~@16 g4@7 ~@17 g4@8 ~@40 g4@8, c4@21 ~@3 c4@20 ~@4 g3@13 ~@3 g4@16 ~@16, ~@8 d#4@14 ~@10 d#4@15 ~@9 d4@20 ~@4 d4@16, ~@3 g3]/3",
  O: "~@8 g4@5 ~@3, ~@8 d4@17 ~@7", P: "~@8 a3@7 ~@17, f#4@15 ~@17",
  Q: "[~@16 [d#4,g4]@7 ~ d4@4 ~@4 g4@8 ~@4 g4@3 ~, ~@31 a#3@14 ~@3 b3@45 ~@3, ~@48 g4@11 ~@37, ~@28 d4@8 ~@4 d4@7 ~]/3", // D#
  R: "[~@16 f#4@31 ~@17, a3@47 ~@17, ~ d4@5 ~@2]/2",
})).s("gm_electric_guitar_clean").gain(0.22).pan(0.8)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note("<~@25 A ~@2 B ~@4 C@3 ~@20 D ~@2 E ~@4 F G@2 ~@52>".pickRestart({
  A: "~@6 b3@3 ~@7, ~ a3@2 ~", B: "~@6 b3@3 ~@7", C: "[~@7 g4@3 [a3,c4]@11 ~@3, ~@8 e4@5 ~@19]/3",
  D: "~@2 b3@3 ~@11, a3 ~", E: "~@2 b3@3 ~@11", F: "~@5 g4@3, ~@16 e4@15 ~", G: "[[a3,c4]@11 ~@5]/2",
})).s("gm_electric_guitar_clean").gain(0.11).pan(0.8)

// other · pad sweep
const pad_sweep = note("<~@21 A@3 ~@95>".pickRestart({
  A: "[~@10 [e1,e2]@27 ~@11]/3", // E
})).s("gm_pad_sweep").gain(0.09).pan(0.2)

// other · french horn
const french_horn = note("<~@35 A@3 B@3 C ~@4 D E ~@18 F@7 ~@4 G@8 ~@4 G@8 ~@22>".pickRestart({
  A: "[~@3 d4@7 c4 b3]/3", B: "[a3@24 d4@55 ~ e4@8 b3@8]/3", C: "a3@23 ~@9", D: "~ e4@3", E: "d4@17 ~@15",
  F: "[~@16 d4@56 c4@8 b3@8 a3@24 d4@55 ~ e4@8 b3@8 a3@23 ~@17]/7",
  G: "[e4@24 d4@17 ~@7 d4@56 c4@8 b3@8 a3@24 d4@55 ~ e4@8 b3@8 a3@23 ~@17]/8",
})).s("gm_french_horn").gain(0.3).pan(0.7)

// other · acoustic guitar steel
const acoustic_guitar_steel = note("<~@49 A B C D E ~@53 F G H I@2 ~@7>".pickRestart({
  A: "~@20 b3@3 ~ e4@3 ~ f#4@3 ~", B: "g4@4 f#4@4 e4@5 ~ b3@2 d4@14 ~@2", C: "e4@6 ~@2 e4@7 ~ d#4@6 ~@2 g4@7 ~",
  D: "f#4 e4 b3 a3", E: "g3@13 ~@19", F: "~@12 b3@3 ~ e4@3 ~ f#4@3 ~ g4@4 f#4@4", G: "e4@5 ~ b3@2 d4@14 ~@2 e4@6 ~@2",
  H: "e4@7 ~ d#4@6 ~@2 g4@7 ~ f#4@8", I: "[e4@8 b3@8 a3@8 g3@13 ~@27]/2",
})).s("gm_acoustic_guitar_steel").gain(0.35).pan(0.6)

// chords · brass section
const brass_section = note("<~@85 A B@3 C@2 ~@6 A B@3 ~ D@2 E@2 ~@13>".pickRestart({
  A: "~ [g4,b4]@3", B: "[[a4,c5]@47 ~ [g4,d5]@48]/3", C: "[g4@23 ~ f#4@22 ~@18, c5@5 ~@3]/2",
  D: "[[g4,c5]@15 ~ [g4,b4]@47 ~]/2", E: "[[f#4,a4]@43 ~@21]/2",
})).s("gm_brass_section").gain(0.35).pan(0.3)

// other · string ensemble 1
const string_ensemble_1_2 = note("<~@78 A@8 ~@4 A@8 ~@2 B@2 ~@17>".pickRestart({
  A: "[~@15 d6@88 ~@8 b5@72 a5@22 ~@2 g5@43 ~@6]/8", B: "[~@31 d6@3 ~ e6@3 ~ g6@3 ~@22]/2",
})).s("gm_string_ensemble_1").gain(0.25).pan(0.4)

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

// drums · rim
const rim = s("rim").struct("<~@48 A ~ B A ~ B ~@13 C D ~ C D ~ C D ~ C D ~@41>".pickRestart({
  A: "~ x", B: "x", C: "~ x ~@2", D: "~@3 x",
})).gain(0.43)

// drums · snare
const snare = s("sd").struct("<~@79 A B ~ A B ~ A B ~ A B C A B ~ A B ~ A B ~ A D ~ A B ~ A B ~ A ~@9>".pickRestart({
  A: "~ x ~@2", B: "~@3 x", C: "x!2 ~@2", D: "x!3 ~@3 x ~",
})).gain(0.57)

// drums · low tom
// … 55 more lines

More by Giorgia