Strudelify

Stare bene a meta

Daniele

KeyB majorTempo73 bpm
0:00/0:00
// Stare bene a meta — Daniele
// 73 bpm, 4/4, key B 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: Full arrangement: all 58 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(73/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(`<
  ~@9 A B C D E F G H C I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS@4
>`.pickRestart({
  A: "~@14 c#3 d#3 c#3@14 d#3@2", B: "e3@29 ~ g#2 ~", C: "g#2 f#2", D: "e1", E: "a2", F: "g#2@31 ~",
  G: "f#2@13 ~ f#2 g#2", H: "b2@16 a2@14 g#2 a2", I: "e2@15 ~", J: "c#2 f#1", K: "g1", L: "g#1@2 g#2 g1",
  M: "c#2@9 ~ g#1 ~ c#2@2 g#1 ~ c#1@8 c2@8", N: "a#1@8 ~@4 a#1@18 a#1 ~", O: "f1@8 ~@4 f1@16 ~@2 f1 ~",
  P: "a#1@8 ~@4 a#1@12 ~@2 a#1 ~ c#2@2 d2@2", Q: "d#2@10 ~@2 d#1@17 ~ a#1@2", R: "g#1@8 ~@4 g#1@13 ~ g#1 ~ d#2@2 g#1 ~",
  S: "c#2@8 ~@4 c#2@13 ~@5 a#1 ~", T: "b1@10 ~@2 b1@3 ~ a#1@12 ~@2 a#1 ~", U: "d#2@8 ~@2 a#1 ~ d#1@12 ~@6 g#1 ~",
  V: "f#1@9 ~@3 f#1@14 ~@2 g#1@2 a1@2", W: "a#1@8 ~@4 a#1@3 ~ g#1@8 ~@6 f#1 ~", X: "f#1@8 ~@4 f#1@15 ~ f#1 ~ f#1 ~",
  Y: "c#2@9 ~@3 c#2@4 f#1@11 ~ f#1 ~ g#1@2", Z: "b1@10 ~@2 b0@16 f#1 ~ g1@2", AA: "g#1@9 ~@3 g#1@13 ~@3 c#1@2 d1@2",
  AB: "d#1@9 ~@3 d#1@14 ~@2 d#1@4", AC: "g#1@9 ~@3 g#1@14 ~@2 d#2@2 g#1 ~", AD: "c#2@10 ~@2 c#1@17 ~ g#1@2",
  AE: "f#1@8 ~@4 f#1@13 ~ f#1 ~ c#2@2 f#1 ~", AF: "b1@8 ~@4 b1@13 ~@5 g#1 ~", AG: "a1@10 ~@2 a1@3 ~ g#1@12 ~@2 g#1 ~",
  AH: "c#2@8 ~@2 g#1 ~ c#1@12 ~@6 f#1 ~", AI: "e1@9 ~@3 e1@14 ~@2 f#1@2 g1@2", AJ: "g#1@8 ~@4 g#1@3 ~ f#1@8 ~@6 e1 ~",
  AK: "e1@8 ~@4 e1@15 ~ e1 ~ e1 ~", AL: "a1@4 ~@2 a1@6 a2@3 e2", AM: "g#2@11 ~ g#1@17 ~ g#1 ~",
  AN: "f#1@9 ~@3 f#1@14 ~@2 f#1@2 g1@2", AO: "b1@13 ~ f#1@2 a1@11 ~ a1 ~ f#1@2", AP: "g#1@5 ~ g#1@2 f#1@7 ~",
  AQ: "e1@8 b1@2 c#2@2 e2@16 e1 ~ b1@2", AR: "c#2@5 ~ c#2@2 f#1@7 ~", AS: "[g1@115 ~@13]/4",
})).s("gm_fretless_bass").gain(0.33)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@9 A@2 B@3 ~@2 C@5 D E@2 ~ F@2 ~@2 G@5 ~ H I J@2 K@6 L@2 M N@2 O@8>".pickRestart({
  A: "[[e4,e5]@33 ~@31, b4]/2", B: "[g#4@32 g#5@33 ~@31, [b4,d#5]@65 ~@31]/3", C: "[~ f#6@12 ~ b5@6]/5", D: "c6",
  E: "[[g#5,g#6]@37 ~@27]/2", F: "[d#4@16 d4@15 ~ f#4@29 ~@3, g#4@31 c#4@29 ~@4]/2",
  G: "[b4@16 ~@63 g#5@8 ~ f#5@7 f5@24 g#5@7 a#6@2 [f5,a#5]@32, ~ a#4@3 c#5@6, ~@32 f#5@48 ~@48 a#6@27 ~@5]/5", // A#5
  H: "[f#5,f#6]", I: "[d#5,d#6]", J: "[[f#5,f#6]@48 [e5,e6]@7 [d#5,d#6]@9]/2",
  K: "[[e5,e6]@63 ~ d#5@31 ~ f#6@8 [c#6,c#7]@7 [c6,c7]@16 ~ b6@31 ~ d6@32, ~@63 d#6@32 f#5@8 ~@24 b5@32 d5@32 ~]/6", // E C# C
  L: "[d#5@16 [f#5,f#6]@15 [g#5,g#6]@32 ~, d#6]/2", M: "[f#4,f#5,f#6]",
  N: "[~@15 e5@17 ~@15 [a#4,a#5]@17, [b4,b5]@3 ~]/2", O: "[~@8 f#6@96 ~@24 f#5@115 ~@13, ~@112 b5@131 ~@13]/8",
})).s("gm_string_ensemble_2").gain(0.15).pan(0.7)

// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@10 A ~@8 B@2 C ~@32 D@4>".pickRestart({
  A: "[g4,d5]", B: "[~ b4@3]/2", C: "c5", D: "[f#4@57 ~@7]/4",
})).s("gm_string_ensemble_2").gain(0.08).pan(0.7)

// chords · epiano1
const epiano1 = note(`<
  A ~@6 B@2 ~ C D@3 ~@3 E@2 F@2 ~@3 G H I@3 ~@3 J K ~@2 L M ~ N@2 O ~@3 P Q ~@4 R S T@5
>`.pickRestart({
  A: "~ [e4,b4]@31, [f#3,c#4]", B: "[~@13 c#5@11 ~@8, ~@3 f#5@9 ~@4, ~@5 d#5@7 ~@4]/2", C: "~ d5, ~@15 [g4,b4]@17",
  D: "[~ [d#4,g#4] ~, ~@24 g#3@41 ~@31, ~@7 b3@9 ~@8]/3", // G#5
  E: "[~@52 d#4@6 [d#4,f#4]@5 ~, ~@30 g#4@33 ~, ~@32 b4@31 ~, ~@52 b3@11 ~]/2", // D#m
  F: "[e4@31 ~@5 e5@8 e5@20, b3, ~ [e4,f#4,b4]]/2", G: "~@3 [f4,g#4,c5]@5, ~@8 d#5@23 ~", H: "~@8 g#4@21 ~@3",
  I: "[~@30 c#5 d#5@13 ~@4 [g#4,c5]@12 d#5@2 ~@16 g#4@18, ~@23 d#5@7 ~ f5@17, ~@34 g#4@5 ~@9, ~@35 c#5@13, ~@37 c5@11]/3", // G#
  J: "~@15 d#5, ~@7 c#5", K: "[c#5,f5]@31 ~", L: "~ [f#4,b4], ~@7 f#5@9, ~@15 d#5@17", M: "~@3 [c#5,d#5,f#5]@5",
  N: "[~@30 b4 c#5@13 ~@4 [f#4,a#4]@13 ~@3, ~@46 c#5@15 ~@3]/2", O: "[c#4,d#4,f#4]@10 ~@2 [c#4,d#4,g#4]@17 ~@3",
  P: "~@15 c#5", Q: "[b4,d#5]@31 ~", R: "~@15 a#4", S: "~@20 d#4@6 [d#4,f#4]@5 ~, b4@31 ~, ~@20 b3@11 ~",
  T: "[e4@31 ~@5 e5@9 ~@49 b6@50 ~@16, b3@64 ~@25 b5@54 ~@17, ~ [e4,f#4]@2 ~@2, ~@4 b4@3 b4@8 ~@5, ~@45 e5@17 e5@64 ~@34]/5", // Esus2
})).s("gm_epiano1").gain(0.21).pan(0.7)

// chords · epiano1 · soft notes · B5
const epiano1_soft = note("<[~ f#4@31, [f#2,b3]] ~@9 [~@14 e4@17 ~] ~@13 [~@3 d#4@5] ~@33>")
  .s("gm_epiano1").gain(0.14).pan(0.7)

// chords · piano
const piano = note(`<
  ~ A B C D E F G H I J K L M N O P Q@2 R S T ~@3 U V ~ W ~ X Y ~ Z ~@5 AA ~ AB ~@2 AC ~ AD M N O P Q@2 R AE ~@3
>`.pickRestart({
  A: "[b1,f#3,a#3,c#4,d#4]@25 ~@7", B: "[g#2,f#3,b3,d#4]@13 ~@3", C: "[d#2,f#3,a#3,c#4]@25 ~@7",
  D: "[c#4,f#4]@11 ~@5 [c4,f#4]@10 ~@6, [g#2,g#3]@27 ~@5", E: "[c#2,g#3,b3,e4]@27 ~@5",
  F: "[b3,e4]@15 ~ [a#3,e4]@10 ~@6, [f#2,f#3]@13 ~@3", G: "[b1,f#3,a#3,c#4,d#4]@31 ~",
  H: "[g#3,c#4,f#4]@11 ~@5 [g#3,c4,f#4]@11 ~@5, [g#1,g#2]@13 ~@3", // C#sus4 G#7 G#
  I: "[g#3,b3,e4]@6 ~@6 [e4,b4] ~@11 b3@3 ~ c#4@2 ~@2, [c#2,c#3]@27 ~@5", J: "[e2,g3,b3,d4,e4]",
  K: "[g#2,b3,d#4]@9 ~@7 [f#2,f#3,g#3,b3,d#4]@11 ~@5", L: "[e2,e3,g#3,b3,d#4]", M: "[a1,a2,b3,d#4,f#4]@13 ~@3",
  N: "[b3,e4,b4]@17 ~@3 [e4,g#4]@4 b3@3 ~ e4 ~@3, g#2@7 ~", O: "[f#3,b3,e4]@13 ~@3 [f#3,a#3,e4]@12 ~@4, f#2@27 ~@5",
  P: "[f#3,a#3,c#4,d#4]@2 ~@6 [c#4,d#4,f#4]@4 ~@4 [c#4,d#4,f#4]@7 ~@5 b3 ~ c#4 ~, b2@3 ~ a2@3 ~", // D#m7
  Q: "[[g#2,f#3,b3,d#4]@13 ~@3 [f#2,g#3,b3,d#4]@14 ~@2 b4@4 ~@2 [d#4,g#4] ~@25, ~@15 g#4@3 ~@14, ~@32 e2@19 ~@13]/2", // G#m7 G#5
  R: "[g#3,b3,e4]@5 ~@3 b4@2 ~@2 b3 ~@3 f#3@7 ~ b3@4 f#3 ~@3, [c#2,c#3]@11 ~@5 [f#2,e4]@12 ~@4", // E C# F#7
  S: "[f#3,b3] ~@3 e4 ~@3 b3 ~@3 e4 ~@19, g2@21 ~@11", // B5
  T: "[g#3,c#4,f#4]@8 ~@4 c4@3 ~ c4@15 ~, g#1, ~@3 [g#2,g#3,f#4]@5", U: "~ g#4@3", V: "f#4@27 ~@5",
  W: "~@7 g#4@9, ~@2 g#4@5 ~@9, ~@3 c#5@13, ~@5 c5@11", X: "~@11 f#4@5, ~@3 g#4@5, ~@5 a#4@3",
  Y: "[c#4,f#4,a4] [c#4,f#4,g#4]", Z: "~@12 g#4@19 ~", AA: "e4@27 ~@5",
  AB: "~@12 g#4@19 ~, b4@31 ~, ~@4 a#4@27 ~, ~@8 c#5@23 ~", AC: "[b3,e4,g4] [b3,e4,f#4]", AD: "~@12 f#4@19 ~",
  AE: "[f#3,b3] ~@3 e4 ~@3 b3 ~@4 e4 ~@18, g2@3 ~", // B5
})).s("gm_piano").gain(0.09).pan(0.7)

// chords · epiano2
const epiano2 = note(`<
  ~ A B C D E F G H I J K L M N O@2 P@2 Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS N
  O@2 AT@3 AU@3 ~
>`.pickRestart({
  A: "[b1,f#3,a#3,c#4,d#4]", B: "[g#2,f#3,b3,d#4]@31 ~", C: "[d#2,f#3,a#3,c#4]@31 ~",
  D: "[c#4,f#4]@16 [c4,f#4]@15 ~, [g#2,g#3]@31 ~", E: "[c#2,g#3,b3,e4]", F: "[b3,e4] [a#3,e4], [f#2,f#3]",
  G: "[b1,f#3,a#3,c#4,d#4]@31 ~", H: "[g#3,c#4,f#4] [g#3,c4,f#4], [g#1,g#2]",
  I: "e4@3 ~@4 c#4, [c#2,c#3,g#3], b3@3 b3, ~@3 [e4,b4]@5", J: "[e2,g3,b3,d4,e4]",
  K: "[g#2,b3,d#4]@15 ~ [f#2,f#3,g#3,b3,d#4]@16", L: "[e2,e3,g#3,b3,d#4]", M: "[a1,a2,b3,d#4,f#4]@31 ~",
  N: "e4@5 e4 ~ e4, g#2, [b3,b4]@23 ~ b3@8, ~@5 g#4@3", // B
  O: "[[f#3,b3,e4]@15 ~ [f#3,a#3]@16 [c#4,d#4]@8 [c#4,d#4,f#4]@8 ~@14 c#4@2, f#2@3 ~, ~@4 e4@8 ~@3 b3, ~@2 [b2,f#3,a#3] [a2,c#4,d#4,f#4]]/2", // Esus2 F# C#sus2 D#m7 Bmaj7 D#m7b5
  P: "[[g#2,f#3,b3,d#4]@15 ~ [f#2,g#3,b3,d#4]@14 ~@8 [d#4,g#4]@26, ~@15 g#4@4 ~@13, ~ [e2,b4]]/2", // G#m7 G#5 E5
  Q: "~@12 b3@4 ~@12 f#3@3 ~, [c#2,c#3,g#3,e4]@16 [f#2,e4]@15 ~, b3@3 ~ f#3@3 ~, ~@8 b4@8 ~@8 b3@7 ~", // C#m F#7
  R: "~@3 e4@5, [g2,f#3], b3 b3@3, ~ e4@2 ~@5", S: "[g#3,c#4,f#4]@11 ~ c4@3 ~ c4@15 ~, g#1, ~@3 [g#2,g#3,f#4]@5",
  T: "[d#4,f4,g#4]@3 [d#4,f4,g#4], c#4", U: "[a#3,c4,c#4,f4]@15 ~", V: "~@3 g#4, [g#3,c4,d#4], ~ d#5@3",
  W: "[f3,a#3,d#4] [f3,a#3,d4]", X: "[f#3,a#3,c#4,d#4]@30 c#5 d#5", Y: "[c#4,d#4,g#4]@15 ~ [c4,d#4,g#4]@14 ~@2",
  Z: "[c4,d#4,f4,g#4]@15 ~", AA: "[a#3,b3,d#4,g#4]@15 ~ [a#3,d4,f#4,g#4]@16",
  AB: "~@13 d#4@3, [f#3,a#3,c#4]@11 f#4@5, d#4@5 a#4@3, ~@3 g#4@5, ~ c#5", // F#
  AC: "[c#4,f#4,a4]@8 c#4@6 ~ d#4, ~ [f#4,g#4], ~@7 c#4", AD: "c#4@6 ~ d#4 [a#3,c#4]@8, [a#3,f4] ~, ~@3 c#4 ~@4",
  AE: "[c#4,f4]@3 ~ a#4@4, a#3 ~@11 [c#4,f4,g#4]@20", // C#
  AF: "~@28 a#4@2 b4 ~, [b3,e4,g#4]@16 [b3,e4,g#4]@15 ~, ~@4 b4@11 ~", // E
  AG: "~@6 g#4@6 f#4@15 ~@2 f#4@3, [c#4,f#4,a#4]@3 [c#4,a#4]@5, ~@27 d#4@5", // F#
  AH: "f#4@7 ~ [f#4,b4]@8, [a#3,b3,d#4]@31 ~, ~@7 f#5@9, ~@15 d#5@17", AI: "[a#3,c#4,d#4]@31 ~, f#4 ~@31",
  AJ: "[g#3,c#4,f#4]@16 e4@8 d#4@7 ~, ~@16 [g#3,c4]@15 ~", AK: "[b3,c#4]@12 [e4,g#4,b4]@18 b4 c#5, [e3,g#3]@15 ~",
  AL: "[b3,c#4,f#4]@15 ~ [a#3,c#4,f#4]@14 ~@2", // Bsus2 F#
  AM: "~@8 [f#4,c#5]@4 [a#3,d#4,g#4]@19 ~, [b3,b4]@3 ~@5, f#4 ~@3, ~ [c#4,a#4]@2 ~@5", // F#5 D#sus4 B F#
  AN: "[g#3,a3,c#4,f#4]@15 ~ [g#3,c4,e4,f#4]@16", AO: "~@3 [e4,g#4,b4]@5, [e3,g#3,b3,c#4]",
  AP: "[b3,e4,g4] [b3,e4,f#4]", AQ: "~@7 d#4 [g#3,b3]@8, [g#3,b3,d#4] ~, ~@3 c#4 ~@4",
  AR: "[b3,d#4]@3 ~ g#4@4, g#3 ~@11 [b3,d#4,f#4]@20", AS: "[a1,a2,f#4]@31 ~, [b3,d#4] ~@31",
  AT: "[[g#2,f#3,b3,d#4]@15 ~@15 a#4@2 ~@24 f#4@4 ~@16 b3@4 ~@12 f#3@3 ~, ~@16 [f#2,g#3,b3,d#4]@16 [e2,b4]@30 g#4@18 ~@8 b3@7 ~, ~@28 g#4@10 [d#4,g#4]@26 [c#2,c#3,g#3,e4]@16 [f#2,e4]@15 ~, ~@15 f#4 b3@3 ~ f#3@3 ~, ~@9 b4 ~@2]/3", // G#m7 E5 G#5 C#m F#7
  AU: "[b3@9 ~@10 f#4@72 ~@5, [g2,f#3]@37 ~@59, ~@9 b3@28 ~@59, ~@14 e4@77 ~@5]/3", // Gmaj7
})).s("gm_epiano2").gain(0.18).pan(0.4)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@8 A@4 B C@2 D@3 E F@2 G H I J K L M@2 N@2 O@3 P Q@3 R S T@2 U@2 V@3 W X D@3 E Y@3 ~@2
>`.pickRestart({
  A: "[c#4@16 c4@15 ~ e4@32 [g3,d4]@32 [g#3,d#4]@32, g#3 ~, f#4@31 ~ b3@95 ~]/4", B: "[b3,d#4,g#4]",
  C: "[[d#4,f#4]@32 [e4,b4]@31 ~, b3@63 ~]/2", D: "[b3 ~@2 a3 b3@2, e4 d#4@2, ~ a#3@2 f#4@3]/3", E: "[c#4,g#4]",
  F: "[[f#3,b3] b3, e4, ~@32 f#3 ~@31]/2", G: "c#4@16 c4@15 ~, [g#3,f#4]@31 ~", H: "[d#4,f4,g#4]", I: "[a#3,c4,c#4,f4]",
  J: "[g#3,c4,d#4]", K: "d#4 d4, [a#3,g#4]", L: "[a#3,c#4,d#4,f#4]",
  M: "[c#4 ~ f4@2, [d#4,g#4]@59 ~@5, ~@16 c4@43 ~@5]/2", // G#5
  N: "[[b3,d#4] d4 [c#4,d#4]@2, a#3@59 ~@5, g#4 ~, ~@4 f#4@11 ~]/2", // B C#sus2
  O: "[f#4@16 g#4@8 f#4@8 a#3@16 g#3@16 a#3@31 ~, c#4@95 ~, a3@32 f4@63 ~]/3", P: "[b3,e4,g#4]",
  Q: "[[a#3,c#4] b3 [a#3,c#4], f#4@95 ~, ~@32 d#4@63 ~]/3", R: "[c#4,f#4]@2 e4 d#4, g#3, ~ c4", S: "[g#3,b3,c#4,e4]",
  T: "[b3 ~ d#4@2, [c#4,f#4]@59 ~@5, ~@16 a#3@43 ~@5]/2", // F#5
  U: "[[a3,c#4] c4 [b3,c#4]@2, g#3@59 ~@5, f#4 ~, ~@4 e4@11 ~]/2", V: "[e4@2 f#4 e4 g#3@2 f#3@2 g#3@4, b3, g3 d#4@2]/3",
  W: "[d#4,f#4], b3 ~@31", X: "[e4,b4]@31 ~", Y: "[[f#3,b3]@32 b3@37 ~@27, e4@23 ~@9, ~@32 f#3 ~@63]/3",
})).s("gm_synth_strings_1").gain(0.11).pan(0.4)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~@13 A B@2 C D E ~ F G H I J K L M N ~ O P Q ~ R@8 S ~@4 A T@2 U@2 ~@2 V W@2 ~
>`.pickRestart({
  A: "[b3,f#4]@3 [f#4,d#5]", B: "[[g#4,e5]@19 ~ [g#4,e5]@4 [f#4,d#5]@4 [e4,c#5]@19 ~@17]/2",
  C: "~@4 d#4@4 e4@3 ~ [a3,f#4]@4 [a3,f#4]@4 [g#3,e4]@4 [f#3,d#4]@4 [e3,c#4]@4, ~@4 f#3@7 ~@21, ~ g#3 ~@2", // D C#m D#m C#m
  D: "~ d#4@21 ~@10, b3@11 ~@5", E: "~@8 d#4@4 f#4@2 ~ f#4@17, ~@7 [b3,d#4]@9",
  F: "~@2 [e4,b4] ~ [e4,b4] ~@5 b4 ~ b4 ~@3", G: "~@2 g#3@2 ~ b3 [c4,c#4]@2 g#3@2 d#4@2 [f#4,c5]@18 ~@2, ~@2 d#3 ~@13",
  H: "~@4 [f4,g#4]@3 [d#4,f#4,g4] [d4,f4] ~ [c#4,f4] ~@5 [c#4,f4]@12 ~@4", // Fm D# Dm C#
  I: "~@4 [f4,g#4]@3 [d#4,g4] f#4 ~ f4 c#4 ~@4 [c#4,f4]@5 ~ [c#4,f4] ~@9", // Fm D# C#
  J: "~@4 [c4,f4,g#4]@5 ~ [f4,g#4] ~@5 [c4,f4,g#4]@6 [c4,f4,g#4] ~@7 [d#4,g#4] ~", // Fm G#5
  K: "~@4 [d#4,f4,g#4]@4 [d#4,f4,g#4]@2 [f4,g#4] ~@9 [d4,f4,g#4]@2 [d4,f4,g#4] ~@7 [d4,g#4] ~", // Fm7 Fm Ddim
  L: "~@4 [f#4,a#4]@3 [f4,g#4,a4] ~@2 [d#4,f#4] ~@5 [d#4,f#4]@4 [d#4,f#4]@2 [d#4,f#4] ~@7 [d#4,f#4] ~", // F# F D#m
  M: "~@4 [f#4,a#4]@3 [f4,g#4,a4] ~@2 [c#4,d#4,f#4] ~@5 [c4,d#4,f#4]@4 [d#4,f#4]@2 [d#4,f#4] ~@7 [c4,f#4] ~", // F# F D#m7 Cdim D#m Cdim
  N: "~@4 [c4,f4,g#4]@4 [c4,f4,g#4]@2 [f4,g#4] ~@5 [c4,d#4,f4,g#4]@4 [c4,f4,g#4]@2 [c4,f4,g#4] ~@7 [d#4,f4,g#4]@2", // Fm Fm7 Fm Fm7
  O: "~@13 d#4@3, ~ c#5", P: "[c#4,a4]@2 [c#4,g#4] [a3,f#4]", Q: "f4@15 ~@17, g#3@3 ~@5",
  R: "[~@2 b2@2 f#3@2 d#4@2 b3@2 f#4@2 d#5@5 ~ d#5@2 ~ d#5 e5@2 d#5@3 c#5@2 ~ b4@4 f#4@2 f#4@2 ~@2 f#4@4 ~@2 f#4@2 b4 c#5@5 ~@2 b4 ~@3 a#4@2 b4@9 ~@9 d#4@2 f#4 ~ f#4@2 d#4 ~ g#4@4 f#4 ~ f#4@4 g#4 ~@11 f#4@2 f#5 ~ e4@2 e5@2 d#5 ~ d#5@2 c#4@2 c#5@2 ~@2 c5@8 ~@4 c5@4 c5@4 c#5 ~@3 d#5@2 ~@2 d#5 e5@11 ~@11 [g#4,e5]@3 [f#4,d#5]@3 [e4,c#5]@2 ~ b4@2 ~ [e4,c#5]@9 ~@2 [d#4,b4] ~@2 c#5 e4 ~ [e4,c#5] [f#4,d#5]@3 [e4,c#5]@2 ~@2 [d#4,b4]@2 [c#4,a#4] a4 [a#3,f#4]@19 ~ g#4@2 b4 ~ b4 ~ g#4 ~ d#5@2 f#5@2 f#5@2 d#5 ~, ~@119 d#4@2 ~@5 c4@10 ~@51 d#4@2 ~@67]/8", // C#m D#m C#m G#m C#m D#m C#m G#m …
  S: "f#5@15 ~@17", T: "[[g#4,e5]@19 ~ [g#4,e5]@3 ~ [f#4,d#5]@4 [e4,c#5]@19 ~@17]/2",
  U: "[~@4 [a#3,f#4]@3 ~ a#3@4 [f#3,d#4]@4 ~@4 c#4 ~@3 [d#4,f#4]@4 b3@15 ~@21, ~@8 f#4 ~@19 g#3@12 ~@24]/2", // D#m
  V: "~@6 b3 d4@2 ~@5 e4@15 ~@3, ~@4 f#3@4 ~ c#4@21 ~@2",
  W: "[~@4 [g#4,e5]@2 ~@5 e5@2 ~@5 [f#4,d#5] [g#4,e5]@2 [f#4,d#5]@24 ~@19, ~@5 g#4 ~@26]/2", // C#m D#m C#m D#m
})).s("gm_acoustic_guitar_nylon").gain(0.36).pan(0.7)

// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note("<~@20 A B C D E F G@2 E ~@11 H ~@17>".pickRestart({
  A: "~@10 e4 ~ e4 ~@3", B: "~@5 a#3 ~@26", C: "~@8 c#4 ~@23", D: "~@8 [d4,f4] c#4 ~@22", E: "~@10 c4 ~@21",
  F: "~@10 d#4 ~@21", G: "~@8 [d#4,e4,g4] ~@23", H: "~@27 [c4,g#4] b3 ~@3",
})).s("gm_acoustic_guitar_nylon").gain(0.21).pan(0.7)

// other · electric guitar jazz
const electric_guitar_jazz = note("<~@18 A ~@3 B ~@7 C D E ~ F@3 G H@2 ~@3 I J K ~@6 A ~@5>".pickRestart({
  A: "~@14 [f#4,b4]@17 ~", B: "~@10 c#4@2 a#3 ~@3 c#4@4 a#3@9 ~@3", C: "~@12 g#4@19 ~, ~@10 f#4@21 ~",
  D: "~@8 [c#4,g#4]@4 f#4@2 c#4 d#4, ~@24 a3@7 ~", E: "f4@7 ~",
  F: "[~@2 b2@2 f#3@2 d#4@2 b3@2 f#4@2 d#5@6 d#4@2 ~ d#4 e4@2 d#4@3 c#4@2 ~ b3@4 f#3@2 f#3@2 ~@2 f#3@4 ~@2 f#3@2 b3 c#4@5 ~@2 b3 ~@3 a#3@2 b3@9 ~@25]/3",
  G: "~@6 d#4 c#4", H: "[c4@11 ~ c4@3 ~ c4@4 c#4 ~@3 d#4@2 ~@2 d#4 e4@11 ~@24]/2", I: "~@12 f#4@19 ~, ~@10 e4@21 ~",
  J: "~@16 [b3,f#4]@8 g3@7 ~, ~@6 e4 ~", K: "d#4@11 ~ c#4@2 ~@2 b3@15 ~, ~@14 d#4@17 ~",
})).s("gm_electric_guitar_jazz").gain(0.34).pan(0.2)

// drums · rim
const rim = s("rim").struct("<~@34 [~@5 x ~@2] ~@23>").gain(0.41)

// drums · kick
const kick = s("bd").struct("<~@21 A B@12 C B@3 D B@2 C@2 B@11 E ~@3>".pickRestart({
  A: "~@11 x ~@4", B: "x ~@2 x ~@4", C: "x ~@5 x ~@8 x", D: "x ~@5 x ~ x ~@5 x!2", E: "x",
})).gain(0.48)

// drums · snare
const snare = s("sd").struct("<~@22 A@7 B A@3 B@2 A@3 C A@3 B A@10 B ~@4>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x!2 ~@2", C: "~@2 x ~@2 x!3",
})).gain(0.62)

// drums · low tom
const low_tom = s("lt").struct("<~@21 [~@3 x] ~@11 [~@7 x] ~@19 [~ x] ~@4>").gain(0.48)

// drums · hihat
const hihat = s("hh").struct("<~@22 A B A C A B A D A B A D E A B A C A B A D A B A F A G A C A C D ~@4>".pickRestart({
  A: "x ~ x!3 ~ x!2", B: "x!8", C: "x!7 ~", D: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", E: "x ~ x ~ x ~@3 x ~ x ~ x ~ x!2",
  F: "x!3 ~ x ~ x ~", G: "x!3 ~ x!4",
})).gain(0.28)

// drums · hihat · soft notes
// … 86 more lines

More by Daniele