Strudelify

Gente distratta

Daniele

KeyB minorTempo107 bpm
0:00/0:00
// Gente distratta — Daniele
// 107 bpm, 4/4, key B minor. 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 121 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(107/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 · acoustic bass
const bass = note(`<
  ~ A B C D B E D@2 F E C G H I J K F E C G H I L M N O P Q R S T U V@2 W X V Y A B C D B E D@2 F E C G H I L Z F E C G
  H I AA AB N O P Q R S T U V@2 W X AC AD F E C G H I AE AF F E C G H I L M N O P Q R S T U V@2 W X AC AD N O P Q R S T
  U V@2 W X AC AD
>`.pickRestart({
  A: "g1@2 ~ d2 g2@2 ~ d2", B: "g1@5 ~ d2@2 g2@5 ~ d2@2", C: "f#1@5 ~ c#2@2 f#2@4 ~@2 c#2@2",
  D: "f#1@4 ~@2 c#2@2 f#2@5 ~ c#2@2", E: "g1@4 ~@2 d2@2 g2@5 ~ d2@2", F: "g1@5 ~ d2@2 g2@4 ~@2 d2@2",
  G: "f#1@4 ~@2 c#2@2 f#2@5 ~ c#2 ~", H: "e1@5 ~ b1@2 e2@4 ~@2 b1@2", I: "e1@2 ~ b1 e2@2 ~ a1",
  J: "d2@5 ~ a2@2 d3@4 a2@2 e3@2", K: "~@2 e3@4 d3@7 ~ d2 a1", L: "d2@5 ~ a2@2 d3@4 ~@2 a2 ~",
  M: "~@2 d3 ~@3 e3 ~ e3@4 d3@2 a1@2", N: "g1@6 d2 ~ b2@5 ~ d2 ~", O: "g1@5 ~ d2@2 b2@4 d2@2 g1 ~",
  P: "f#1@5 ~ c#2@2 a2@5 ~ c#2@2", Q: "f#1@5 ~ c#2@2 a2@4 c#2 ~ f#1 ~", R: "e1@5 ~ e1 ~ g1@6 e1 ~",
  S: "e1@5 ~ e1 ~ e1@3 ~ e1@2 g1@2", T: "a1@6 e2@2 c3@5 ~ e2@2", U: "a1@5 ~ e2 ~ c3@4 e2 ~ a1@2",
  V: "b1@5 ~ f#2@2 d3@5 ~ f#2@2", W: "c2@5 ~ g2@2 e3@5 ~ g2@2", X: "c2@5 ~ g2@2 e3@4 c3@2 g2@2",
  Y: "b1@5 ~ f#2 ~ b2@2 f#2@2 b2@2 a2@2", Z: "~@2 d2 ~@3 a2 ~ d3@3 ~ d2@4", AA: "d2@5 ~ a2@2 d3@4 ~@2 e3@2",
  AB: "~@2 e3@2 ~@2 d3@2 ~@2 b2@2 a2 ~ d2@2", AC: "b1@5 ~ f#2@2 b2@2 a2 ~@3 f#2 ~",
  AD: "b2@5 ~ b2 ~ a2@2 f#2@2 e2@2 d2@2", AE: "d2@5 ~ a2@2 f#3@4 ~@2 a2@2", AF: "~@2 d3 ~@3 d2@2 a1@4 d2@2 a1 ~",
})).s("gm_acoustic_bass").gain(0.36)

// other · pad new age
const pad_new_age = note(`<
  ~@25 A B C D E@2 F@2 G H@3 I@2 ~@24 A B C D E@2 F@2 G H@3 I@2 ~@16 A B C D E@2 F@2 G H@3 I@2 A B C D E@2 F@2 G H@3 I@2
>`.pickRestart({
  A: "[b3,b4]@15 ~", B: "[b3,b4] [e4,e5]", C: "[c#4,c#5]", D: "[d4,d5] [a4,a5]", E: "[[f#4,f#5]@14 [g4,g5] [a4,a5]]/2",
  F: "[[b4,b5]@23 ~ [b4,b5]@4 [c5,c6]@4]/2", G: "[c#5,c#6]", H: "[[e4,e5]@2 [b4,b5]@8 [b4,b5] [a4,a5]]/3",
  I: "[[f#4,f#5]@31 ~]/2", // F#
})).s("gm_pad_new_age").gain(0.24)

// other · soprano sax
const soprano_sax = note("<~@63 A ~ B ~ C ~@3 D ~ E F ~@18 A ~ B ~ C ~@3 D ~ E F ~@16>".pickRestart({
  A: "f#5@6 e5 ~@3 d5@4 ~@2", B: "e5@3 d5 ~ c#5@2 ~", C: "d5@3 c#5 ~ b4@2 ~", D: "a5@3 g5 ~ f#5@2 ~",
  E: "~@8 e5 f#5 g5 ~ g5@4", F: "~ f#5 ~ e5!2 ~ e5 ~ d5@7 ~",
})).s("gm_soprano_sax").gain(0.5)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~ A@4 B@2 C@2 ~@16 D@6 E@6 F@2 A@4 B@2 C@2 ~@16 D@6 E@6 F@2 ~@16 D@6 E@6 F@2 D@6 E@6 F@2
>`.pickRestart({
  A: "[[f#4,b4] [a4,c#5,f#5], e5]/4", B: "[b3,d4,f#4]/2", C: "[a3,c#4,e4]/2",
  D: "[a4@5 ~@5 d5@2, e4@2 [f#4,f#5], ~@5 b4@7]/6", E: "[[g4,c5]@2 c#5 ~ [e5,g5]@2, e5@3 d5 ~@2, ~@4 a4@3 b4@5]/6",
  F: "[a4 b4, [d5,f#5]]/2", // D
})).s("gm_string_ensemble_2").gain(0.2).pan(0.6)

// chords · epiano2
const epiano2 = note(`<
  A@7 ~ B@4 C@8 D@5 E F G H I J K L M N O P Q R@7 ~ B@4 S@8 T@5 E F G H I J K L M N O P Q U V@2 W@2 X@2 Y@2 E Z AA AB AC
  AD AE AF E F G H I J K L M N O P Q U E F G H I J K L M N O P Q U
>`.pickRestart({
  A: "[~@7 [d4,f#4]@14 ~ e4 [a3,c#4,e4]@14 ~@2 [d4,f#4]@17, ~@5 a3@15 ~ a3@2 ~@14 a3@19, ~@6 b3@15 ~@17 b3@18]/7", // D A D
  B: "[~@7 [d4,f#4]@14 ~ b3 [c#4,e4]@9, ~@10 a3@31 ~ a3@22, ~@6 b3@15 ~@11]/4", // D C#m
  C: "[~@14 [g3,d4]@28 ~@20 [e4,a4]@8 ~@8 [d4,f#4]@27 ~@3 b3@2 [c#4,e4]@18, ~@10 a3@4 ~@28 a3@12 a3@20 a3@31 ~ a3@22, ~@12 b3@30 ~@2 b3@7 ~@19 [e4,a4,c#5]@10 ~@48, ~@23 c#4@16 ~@25, ~@76 b3@29 ~@23]/8", // G5 A5 D C#m A
  D: "[~@7 [g3,d4]@14 ~@10 [e4,a4]@9, ~@5 a3@2 ~@14 a3@6 a3@13, ~@12 b3@30 ~@2 b3@7 ~@29, ~@23 c#4@16 ~]/5", // G5 A5
  E: "[b3,d4,f#4] ~@3 [b3,d4,f#4] ~@3 [b3,d4,f#4]@5 ~ [b3,d4,f#4] ~", // Bm
  F: "~@2 [b3,d4,f#4] ~@3 [b3,d4,f#4]@5 ~ [b3,d4,f#4]@3 ~", // Bm
  G: "[c#4,e4,g#4] ~@3 [a3,c#4,e4,g#4] ~@3 [a3,c#4,e4,g#4]@5 ~ [a3,c#4,e4,g#4] ~", // C#m Amaj7
  H: "~@2 [a3,c#4,e4,g#4] ~@3 [a3,c#4,e4,g#4]@5 ~ [a3,c#4,e4,g#4]@3 ~", // Amaj7
  I: "[b3,d4,f#4,g4] ~@3 [b3,d4,f#4,g4] ~@3 [b3,d4,f#4,g4]@5 ~ [b3,d4,f#4,g4] ~", // Gmaj7
  J: "~@2 [b3,d4,f#4,g4] ~@3 [b3,d4,f#4,g4]@5 ~ [b3,d4,f#4,g4]@4", // Gmaj7
  K: "[a3,c4,e4,g4] ~@3 [a3,c4,e4,g4] ~@3 [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4] ~", // Am7
  L: "~@2 [a3,c4,e4,g4] ~@3 [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@3 ~", // Am7
  M: "[a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [a3,d4,f#4]@5 ~ [a3,d4,f#4] ~", // D
  N: "~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4]@5 ~ [a3,d4,f#4]@3 ~", O: "~@4 [b3,e4,g4] ~@3 [b3,e4,g4]@5 ~ [b3,e4,g4] ~",
  P: "~@2 [b3,e4,g4] ~@3 [b3,e4,g4]@5 ~ [b3,e4,g4]@4", Q: "~@4 [a3,d4,f#4] ~@3 [a3,d4,f#4]@5 ~ [a3,d4,f#4] ~",
  R: "[~@2 [a3,d4,f#4] ~@3 [d4,f#4]@4 ~@4 [d4,f#4]@23 ~@7 e4@2 [a3,c#4,e4]@28 ~@4 [d4,f#4]@34, ~@6 a3@2 ~@2 a3@27 ~@5 a3@4 ~@28 a3@38, ~@12 b3@25 ~@39 b3@36]/7", // D A D
  S: "[~@14 d4@8 [d4,f#4]@19 ~@69 [c#4,e4]@18, ~@10 a3@4 g3@27 ~ a3@12 a3@16 [a4,c#5,d5]@8 ~@50, ~@6 b3@15 ~ b3@15 a3@16 a3@11, ~@23 c#4@14 ~ b3@16 b3@10, ~@23 e4@8 [e4,e5,f#5,a5]@6 ~@2 [d4,f#4]@16 ~@9]/8", // D C#m Dmaj7 F#m7 D
  T: "[~@7 [g3,d4]@14 ~@10 [e4,a4]@9, ~@5 a3@2 ~@14 a3@6 a3@13, ~@6 b3@15 ~ b3@16 ~@2, ~@23 c#4@16 ~]/5", // G5 A5
  U: "~@2 [a3,d4,f#4] ~@3 [d4,f#4]@4 ~@6, ~@3 a3 ~@4", V: "[[b3,d4,f#4]@31 ~]/2", W: "[a3,c#4,e4]/2",
  X: "[[g3,b3,d4]@31 ~]/2", Y: "[[a3,c#4,d4,f#4]@31 ~]/2", Z: "~@2 [b3,d4,f#4] ~@3 [b3,d4,f#4]@6 [b3,d4,f#4]@4",
  AA: "[a3,c#4,e4] ~@3 [a3,c#4,e4] ~@3 [a3,c#4,e4]@5 ~ [a3,c#4,e4] ~", // A
  AB: "~@2 [a3,c#4,e4] ~@3 [a3,c#4,e4]@5 ~ [a3,c#4,e4]@4", // A
  AC: "[g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4]@5 ~ [g3,b3,d4] ~", AD: "~@2 [g3,b3,d4] ~@3 [g3,b3,d4]@6 [g3,b3,d4]@4",
  AE: "[a3,c#4,e4,f#4] ~@3 [a3,c#4,e4,f#4] ~@3 [a3,c#4,e4,f#4]@6 [a3,c#4,e4,f#4] ~", // F#m7
  AF: "~@2 [a3,c#4,e4,f#4] ~@3 [a3,c#4,e4,f#4]@5 ~ [a3,c#4,e4,f#4]@4", // F#m7
})).s("gm_epiano2").gain(0.32).pan(0.7)

// chords · epiano1
const epiano1 = note(`<
  ~ A@2 B@3 C@3 ~@6 D@2 E@2 F@2 G@2 H@2 ~@10 I ~ J@2 A@2 K@2 L ~ M@2 ~@6 D@2 E@2 N@2 G@2 O@2 ~@10 I ~ J@2 ~@6 D@2 E@2
  F@2 G@2 H@2 ~@10 I ~ P@3 Q R S@2 T@2 U@2 V@2 ~ J@2
>`.pickRestart({
  A: "[~@7 [d5,f#5]@7 ~@2, ~@5 a4@9 ~@2, ~@3 b4@4 ~]/2", // D
  B: "[~@22 a4@7 ~ b4@11 ~@7, ~@14 e5@15 ~@19, ~@20 c#5@9 ~@19]/3", C: "[~@3 [f#4,a4]@11 ~ [e5,a5]@9]/3",
  D: "[~@6 a3@7 ~@9 [a4,c#5]@10, ~@7 [a3,e4]@9]/2", E: "[~@7 [a4,b4,d5,f#5]@9]/2", F: "[~@7 [a4,b4,c#5,e5]@9]/2",
  G: "[~@14 [g4,a4,b4,d5]@17 ~]/2", H: "[~@6 a3@7 ~ [e4,a4]@18]/2", I: "[b4,e5,g5]", J: "[[a4,d5,f#5]@3 ~]/2",
  K: "[~@22 [e4,c#5]@9 ~, ~@14 a5@17 ~, ~@7 c#5@4 ~@5, ~@18 [a4,e5]@13 ~]/2", L: "[b3,e4]@7 ~",
  M: "[~@7 [c#5,e5,f#5,a5]@9]/2", N: "[~@5 a4@2 [a4,b4,c#5]@9, ~@3 a5@11 ~@2, ~@3 c#5@4 ~@9, ~@5 e5@9 ~@2]/2",
  O: "[~@7 a4@2 c#5@2 e5@2 [e5,a5]@3, ~@7 e4@9, ~@9 a4@7, ~@11 c#5@5]/2", P: "[[a4,d5,f#5]@12 ~ a4 b4 d5@8 ~]/3",
  Q: "~@5 a4 b4@2", R: "c#5@3 ~", S: "[~@10 a4@2 b4@2 d5@15 ~@3]/2", T: "[~@10 a4@2 b4@2 e5@13 ~@5]/2",
  U: "[~@5 d5 e5 f#5@8 ~]/2", V: "[~@10 e5@2 f#5@2 [b4,e5,g5]@17 ~]/2",
})).s("gm_epiano1").gain(0.2).pan(0.4)

// other · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~ A@7 B ~@30 C@6 D E ~@27 F G H I@2 J@2 K L M N O P Q@2 R S@2 T U ~@10 F G ~ U ~@10 F G ~
>`.pickRestart({
  A: "[~@10 d5@2 d5@2 d5@4 b4@2 c#5@2 d5@2 d5@2 ~@2 c#5@8 a4 g#4 f#4@13 ~@5 f#4@2 g4@2 a4@2 b4@4 b4@2 b4 ~ b4@2 b4@2 c#5@2 d5@2 d5@4 b4@2 c#5@2 d5@2 d5@2 ~@2 c#5@6 [f#4,d5]@3 [f#4,d5]@3 [e4,c#5]@3 [e4,c#5]@2 [d4,b4]@3]/7", // D C#m G
  B: "b4@3 a4@2 [d4,b4]@3 ~@8, d4 ~@15", // G
  C: "[~@2 d5@2 d5@2 d5@12 b4@2 c#5@2 d5@2 d5@2 ~@2 c#5@6 a4 ~ [f#4,g4]@2 f#4@16 ~@2 f#4@2 g4@2 a4@2 b4@4 b4@2 b4@2 b4@2 b4@2 c#5@2 d5 ~ d5@4 b4 c#5 d5@2 b4 c#5 d5 c#5 b4 ~ [b4,c#5] b4 a4@2]/6", // Gmaj7 Bsus2
  D: "a4@5 ~ f#4 g4 a4 b4 g4 f#4 e4 f#4 ~ g4", E: "~ e4 a3 g3 f#3@9 ~@3", F: "~@6 g4 a4 b4@4 a4@4", G: "f#4@5 ~@3",
  H: "~@7 c#4 d4 e4 f#4 g4 a4 b4 c#5 d5",
  I: "[d5@2 c#5 c#5@2 c#5@2 d5 [b4,c#5]@2 b4@3 b4@6 ~@6 b4 c#5@2 c#5@2 c#5@2]/2", // Bsus2
  J: "[c#5 b4@2 a4@2 a4@2 a4@2 b4 a4 g4 f#4 g4 f#4@10 ~@3 e2 g2@3 b2]/2",
  K: "e3@3 g3 b3@2 e4@2 f#4@2 ~ f#4 ~@2 a4@2, ~@10 g4@2 ~ g4@2 ~",
  L: "f#4@2 [f#4,g4] e4 b3 g3 f#3 e3 f#3 ~ a3 b3 ~ d4 e4@2", M: "f#4@3 f#4!2 ~ g4 ~ f#4@2 d4 c#4@2 f#4 ~ a4",
  N: "~ b4@2 c#5!2 ~ [c#5,d5] ~ c#5@7 ~, ~@7 b4@2 ~@7", O: "~@2 a4@2 c#5 ~@3 a4@2 c#5@2 e5 ~@3",
  P: "a4 c#5 d5 e5 c#5 a4 e4 ~@3 a4 e4 c#4 a3 ~@2",
  Q: "[~@4 a3@2 f#4 ~ f#4 g4 e4 f#4@7 c#4 ~ c#4!2 b3 ~@3 b3 ~ b3!2 a3 ~]/2", R: "~@2 f#3 ~ f#3 g3 e3 f#3@6 ~ e3 ~",
  S: "[g3@3 a3 b3@3 c#4 d4@3 e4 c#4@7 c#4 g#4@3 a4 b4@3 c#5!2 d5@2 c#5]/2",
  T: "c#5 [c#5,d5] b4 c#5@5 f#4 g4 c#4 d4 f#3 g3 c#3 d3", U: "g2@3 ~@5",
})).s("gm_electric_guitar_jazz").gain(0.44).pan(0.8)

// other · electric guitar jazz · soft notes
const electric_guitar_jazz_2 = note("<~@3 A ~@4 B ~@32 C ~@41 D ~@2 E F G@2 ~@31>".pickRestart({
  A: "~@6 g4 ~@9", B: "~@2 c#4@3 ~@3 [c#4,a4]@7 ~", C: "~@3 g#4 ~@12", D: "~@10 d#4 ~@5", E: "~@14 g3 ~",
  F: "~@2 a3 ~@7 f#4 ~@5", G: "[~@5 d4 ~ c#4@3 ~@3 c#4 ~ b3@3 ~@3 f#3 ~@9 f#3]/2",
})).s("gm_electric_guitar_jazz").gain(0.3).pan(0.8)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~ A@2 B@2 C@2 D@2 E F G H I J K L M N O P Q R S T U V W X Y Z AA AB U AC AD AE AF AG A@2 B@2 C@2 D@2 E F G H I AH K L
  M N O P Q R S T U V W X Y Z AA AB U AC AD AE AF AG E F G H I AH K L M N O P Q R S T U V W X Y Z AA AB U AC AD AE AF AG
  U V W X Y Z AA AB U AC AD AE AF AG
>`.pickRestart({
  A: "[[b3,e4]!2 ~ [b3,e4] ~@2 [b3,e4]@4 [b3,e4] ~@3 [b3,e4]@4 [b3,e4] ~@3 [b3,e4]@4 [b3,e4]@2 ~@2 [b3,e4] ~, g3@3 ~ g3@15 ~ g3@7 ~ g3@4]/2", // E5
  B: "[[c#4,f#4]!2 ~ [c#4,f#4] ~@2 [c#4,e4,f#4]@4 [c#4,e4,f#4] ~@3 [c#4,e4,f#4]@4 [c#4,e4,f#4] ~@3 [c#4,e4,f#4]@4 [c#4,e4,f#4]@2 a3@2 [c#4,e4,f#4]@2, a3@3 ~ a3@7 ~ a3@7 ~ a3@7 ~@5]/2", // F#5 F#7
  C: "[[b3,e4]!2 ~ [b3,e4] ~@2 [b3,e4]@4 [b3,e4] ~@3 [b3,e4]@4 [b3,e4]@2 ~@2 [b3,e4]@3 ~ [b3,e4]@2 ~@2 [b3,e4]@2, g3@3 ~ g3@7 ~ g3@7 ~ g3@7 ~ g3@4]/2", // E5
  D: "[[c#4,f#4]!2 ~ [c#4,f#4] ~@2 [c#4,e4,f#4]@4 [c#4,e4,f#4] ~@3 [c#4,e4,f#4]@3 ~ [c#4,e4,f#4] ~ a3@2 [c#4,e4,f#4]@2 a3 ~ [c#4,e4,f#4]@2 ~@2 [c#4,e4,f#4] ~, a3@3 ~ a3@6 ~@2 a3@7 ~@9 a3@4]/2", // F#5 F#7
  E: "e4 ~@3 [b3,e4] ~@3 [b3,e4]@4 g3 ~ [g3,b3,e4] ~, ~@4 g3 ~@3", // E5 Em
  F: "~@2 [b3,e4] ~@5 [b3,e4]@3 ~ b3@2 g3@2, ~@3 g3@4 ~", // E5
  G: "[a3,c#4,e4,f#4] ~@3 [a3,c#4,e4,f#4] ~@3 [a3,c#4,e4,f#4]@4 ~@2 [c#4,e4,f#4] ~, ~@3 a3", // F#m7 F#7
  H: "~@2 [c#4,e4,f#4] ~ c#4 ~@3 [c#4,e4,f#4]@2 a3@2 [c#4,e4,f#4]@2 a3 ~, ~@3 a3@2 ~@3", // F#7
  I: "[g3,b3,e4] ~@3 [b3,e4] ~@3 [b3,e4]@4 ~@2 [b3,e4]@2, ~@3 g3@3 g3@2", // Em E5
  J: "~@2 [b3,e4]@2 ~@4 [b3,e4] ~ [b3,e4]@2 ~@2 [b3,e4] ~, ~@6 g3@5 ~ g3@4", // E5
  K: "[a3,c#4,e4,f#4] ~@3 [c#4,e4,f#4] ~@3 [c#4,e4,f#4]@4 a3@2 [c#4,e4,a4] ~, ~@4 a3 ~@3", // F#m7 F#7 A
  L: "~@2 [c#4,e4,a4] ~ a3 ~ [c#4,e4,f#4]@5 ~ [c#4,e4]@2 [c#4,e4]@2", // A F#7 C#m
  M: "[b3,e4] ~ [b3,e4]@2 [b3,e4] ~@3 [g3,b3,e4]@5 ~ [b3,e4] ~, g3 ~@3", // E5 Em E5
  N: "~@2 [b3,e4] ~@3 [b3,e4] ~@3 [b3,e4] ~ [b3,e4]@2 g3 ~, ~@2 g3 ~", // E5
  O: "[c#4,f#4] ~ [c#4,f#4]@2 [a3,c#4,f#4] ~@3 [a3,c#4,f#4]@5 ~ [a3,c#4,e4,f#4] ~, a3 ~@7", // F#5 F#m F#m7
  P: "~@2 [c#4,e4,f#4] ~@3 [c#4,e4,f#4] ~@3 [c#4,e4,f#4]@2 [c#4,e4,f#4]@2 a3@2", // F#7
  Q: "[b3,e4] ~ [b3,e4] ~ [b3,e4] ~ g3 ~ b3@4 b3 ~ [b3,e4] ~, g3@2 ~@2 [g3,e4]@3 ~", // E5 C
  R: "~@2 [b3,e4] ~@3 [b3,e4]@2 g3@2 [b3,e4] ~@3 [g3,b3,e4]@2", // E5 Em
  S: "[c#4,f#4] ~ [c#4,f#4] ~ [a3,c#4,f#4] ~@3 [a3,f#4]@4 [c#4,f#4] ~ [a3,e4,a4] ~, a3@2 ~@6 c#4@3 ~@5", // F#5 F#m D F#5 A5
  T: "~@2 [e4,a4] ~ a3@2 [e4,a4] ~ c#4 ~ [e4,a4]@2 [e4,a4]@2 ~@2", U: "~@4 [d4,f#4] ~@3 [d4,f#4]@5 ~ [d4,f#4] ~",
  V: "~@2 [d4,f#4] ~@3 [d4,f#4] ~ b3@2 [d4,f#4]@4 [d4,f#4]@2", // D
  W: "~@4 [c#4,e4,a4] ~@3 [c#4,e4,a4]@5 ~ [c#4,e4,g#4,a4] ~", // A Amaj7
  X: "~@2 [c#4,e4,g#4,a4] ~@3 [c#4,e4,g#4,a4] ~@3 [e4,g#4,a4]@2 c#4 ~ [e4,g#4,a4]@2, ~@10 c#4 ~@5", // Amaj7
  Y: "~@4 [d4,f#4,g4] ~@3 [d4,f#4,g4]@5 ~ [d4,f#4,g4] ~", // Gmaj7
  Z: "~@2 [d4,f#4,g4] ~@3 [d4,f#4,g4] ~@3 [d4,f#4,g4]@3 ~ [d4,f#4,g4]@2", // Gmaj7
  AA: "~@4 [c4,e4,g4] ~@3 [e4,g4]@5 ~ [e4,g4] ~, ~@8 c4 ~@7", // C Em
  AB: "~@2 [e4,g4] ~@3 [e4,g4]@2 c4 ~@3 c4 ~ [e4,g4]@2, ~@5 [e4,g4]@2 ~", // Em
  AC: "~ [d4,f#4] a3 [d4,f#4] b3 ~ a3 [d4,f#4], ~@5 [d4,f#4]@2 ~", AD: "~@4 [b3,e4,g4] ~@3 [b3,e4,g4]@5 ~ [b3,e4,g4] ~",
  AE: "~@2 [b3,e4,g4] ~@3 [e4,g4]@2 b3 ~ [e4,g4]@2 b3@2 [e4,g4]@2", AF: "~@4 [d4,f#4] ~@3 [d4,f#4]@5 ~ [a3,d4,f#4] ~",
  AG: "~@2 [d4,f#4] ~@3 [d4,f#4]@2 a3@2 [d4,f#4]@2 a3 ~ [d4,f#4]@2", // D
  AH: "~@2 [b3,e4] ~@5 [b3,e4] ~ [b3,e4]@2 ~@2 [b3,e4] ~, ~@6 g3@5 ~ g3@4", // E5
})).s("gm_acoustic_guitar_nylon").gain(0.17).pan(0.3)

// other · piano
const piano = note("<~@76 A@2 B C D E F@3 G H I J K L M@2 ~@28>".pickRestart({
  A: "[~@16 b4@11 ~@2 b4 ~ c#5, ~@12 b5@15 ~@5, ~@13 a5@14 ~@5, ~@15 f#5@13 ~@4]/2",
  B: "d5 c#5 ~ d5 e5@2 c#5 b4 a4@2 c#5@2 e5@2 c#5 b4", C: "a4@11 ~@5",
  D: "~@2 [f#4,g4] f#4@2 e4@2 d4@2 d4@3 e4@2 f#4@2", E: "~ g4@2 d5@3 c#5@3 b4@7",
  F: "[~@3 [d4,d6]@2 [e4,e6]@2 [f#4,f#6]@2 [c#4,c#6]@2 [b3,b5]@4 [f#4,f#6]@2 [c#4,c#6]@2 [f#4,f#6] [g4,g6]@2 [a4,a6]@2]/3", // D E F# C# B F# C# F# …
  G: "[b4,b6]@5 ~@3", H: "~@2 [c#4,c#6] [e4,e6]", I: "[a4,a6]@6 [c#4,c#6]@9 ~",
  J: "~@2 b5 ~ g#5@4 f#5@2 g#5@2 a5@2 c#6@2", K: "d6@6 g5 ~ g5@8", L: "~@3 a5 b5@2 c#6 d6",
  M: "[e6@4 [f#5,f#6]@3 ~ [f#5,f#6]@13 ~@11]/2", // F#
})).s("gm_piano").gain(0.34).pan(0.1)

// other · tinkle bell
const tinkle_bell = note(`<
  ~@7 A B ~@16 C D E F G H I J K L ~ M ~@8 N O ~@16 C D E F G H I J K L ~ M ~@17 P Q D E F G H I J K L ~ M ~@2 C D E F G
  H I J K L ~ M ~@2
>`.pickRestart({
  A: "~@12 a8 [f8,g8] ~@2", B: "[a8,b8] ~@2 [a8,b8] ~@3 a8 ~@8", C: "b6 ~@3", D: "b6 ~ e7 ~", E: "c#7 ~@3",
  F: "d7 ~ a7 ~", G: "f#7 ~@3", H: "~@6 g7 a7", I: "b7 ~@3", J: "~@2 b7 c8", K: "c#8 ~@3", L: "e7 ~ b7 ~",
  M: "~@2 b7 a7", N: "~@12 a8 [e8,f8,g8] ~@2", O: "[g8,a8,b8] ~@2 [a8,b8] g8 ~@2 [a8,b8] ~@8",
  P: "~@8 d8 [a7,b7,c#8] [f#7,g7] [c#7,d7,e7] ~@4", Q: "b5 ~@3",
})).s("gm_tinkle_bell").gain(0.17)

// other · tinkle bell · soft notes
const tinkle_bell_soft = note("<~@7 A B ~@28 C ~@7 D E ~@28 C ~@29 C ~@13 C ~>".pickRestart({
  A: "~@12 [b8,c9] e8 ~@2", B: "g8 ~@2 c9 [f8,g8] ~ c9 [g8,b8] ~@8", C: "f#7 ~@3", D: "~@12 [b8,c9] ~@3",
  E: "~@3 c9 f8 ~ c9 g8 ~@8",
})).s("gm_tinkle_bell").gain(0.09)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B A B A B A B@2 C B C B C B C B C B C B C B C A@15 B A B A B A B@2 C B C B C B C B C B C B C B C A@14 B C B C B C
  B C B C B C B C B C A@28
>`.pickRestart({
// … 110 more lines

More by Daniele