Strudelify

Senza segreti Nasceremo

Giorgia

KeyA minorTempo111 bpm
0:00/0:00
// Senza segreti   Nasceremo — Giorgia
// 111 bpm, 4/4, key A minor. 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 132 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(111/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(`<
  ~@33 A@2 B@2 A@2 C@2 D E F@2 G H A@2 I@2 J K ~@4 L@2 M@2 N@3 O@7 P@8 Q@2 R@8 S@3 T U@4 V@4 W X@7 Y@5 Z@2 AA@3 AB@5
  AC@8
>`.pickRestart({
  A: "[g1@63 ~]/2", B: "f#1/2", C: "[f#1@61 ~@3]/2", D: "b1@31 ~", E: "a1", F: "[g1@53 ~@3 g1@4 a1@4]/2",
  G: "b1@11 ~ b1@4", H: "a1@23 ~ a1@8", I: "f1@31 ~", J: "e1@31 ~", K: "e1", L: "[d1@53 ~@3 d1@8]/2", M: "[f#1@7 ~]/2",
  N: "[g1@20 ~@4 g1@67 ~@5]/3", O: "[c2@19 ~@4 f2@36 ~ a2@22 ~@2 f2@40 ~@2 c2@58 ~@2 g#1@38]/7",
  P: "[~@22 a1@58 ~@2 f2@56 ~ g1@3 c2@57 ~@4 g#1@53]/8", Q: "[~@7 a1@57]/2",
  R: "[~@3 f2@51 ~@2 f2@7 a1@56 ~@4 a#1@60 d1@59 g1@11 g2@3]/8", S: "[~@16 g1@11 g2@11 g1@7 f1@24 ~ f1 ~@2 f1@23]/3",
  T: "~@6 e1@23 ~@2 e1",
  U: "[~@6 e1 ~@3 e1@12 ~@2 d1@2 ~@2 e1@3 f1@23 ~@2 f1 ~@3 f1@25 ~@4 e1@24 ~ e1@2 ~@5 e1 ~@2 e1@4]/4",
  V: "[~@4 d1@6 ~ e1@6 ~ f1@23 ~@2 f1@2 ~@2 f1@27 ~ e1@24 ~ g1@3 ~ a1@24]/4", W: "~@4 g#1@23 ~@3 g#1@2",
  X: "[~ g#1@27 ~@2 g1@23 ~@2 g1@2 ~ g1@29 f#1@23 ~@2 f#1@2 ~@2 f#1@28 f1@29 ~ f1@6 ~ f1@24 ~@2 e1@17]/7",
  Y: "[~ e1@4 g1@3 e1@3 ~ a1@24 ~ a1 ~@7 e1@3 g1@6 ~@2 a1@6 ~ a1@6 ~ g#1@6 ~@2 g1@7 f#1@7 ~ g1@7 f1@40 ~ c2@4 f2@4 g2@2 ~ a2@3 ~ d2@4]/5",
  Z: "[e2@28 ~ e3@25 ~@5 g#1@5]/2", AA: "[~@3 g1@7 f#1@7 ~ g1@72 d1@6]/3",
  AB: "[~@4 e1@8 ~@2 f#1@9 ~ g1@127 ~@2 c2@7]/5", AC: "[~@15 g#1@37 ~@3 a1@25 f1@55 ~ c2@92 ~@28]/8",
})).s("gm_fretless_bass").gain(0.45)

// chords · epiano2
const epiano2 = note(`<
  A@3 B@6 C@6 ~ D@7 E@2 F@2 G@2 H@2 I@2 J@2 K@2 L M N O P Q R@2 S T U V W X Y Z ~@4 AA@2 AB@2 AC@3 AD@7 AE@3 AF@7 AG@7
  AH@2 AI@7 AJ@2 AK@5 AL@8 AM@7 AN@5 AO@8
>`.pickRestart({
  A: "[~@5 f#4@8 ~@36 a5@4 d#6 e6@4 ~@6 a5@5 e6@5 a5@17 ~@5, ~@5 [b2,a3,d4]@59 [b5,c#6]@13 ~@19, ~@13 f#4@6 d5@3 f#5@2 g5@2 a5@3 d6@2 e6@3 f#6@3 g6@4 f#6@4 d6@8 a5@2 ~@4 d6@7 ~@30, ~@15 g4@40 ~@9 a4@32, ~@17 a4@38 ~@8 e5@25 ~@8]/3", // Bm7 Bsus2
  B: "[~@24 a5@31 ~@31 e5@5 ~@16 c#4@5 a3@9 ~@19 d4@4 ~@9 [e3,b3,e4]@28 a3@3 b3@2 c#4@3 [f#3,a3,d4]@3, ~@9 b5@17 ~@29 a5@17 b4@3 a4@4 g#4@3 a4@9 c#4@12 e4@9 d4@12 d4@8 d4@4 c#4@8 ~@48, ~@15 [b3,c#4]@48 e5@5 b4@2 c#5@21 ~@4 c#5@17 ~@16 e4@15 ~ e4@9 ~@39, ~@15 a3@44 g#5@32 ~@7 a4@13 ~@10 a3@23 ~@4 a3@33 ~@11, ~@60 [a3,d4]@31 [a3,b4]@21 f#3@32 c#3@37 ~@11]/6", // E5 D Bsus2 D5 Asus2
  C: "[~@7 b3@5 ~@15 [a3,c#4]@58 ~@33 a5@64 ~@10, c#4@9 ~@3 [a3,c#4]@11 ~@3 d3@58 ~ [a2,d4,e4,a4]@64 ~@43, ~ e3@28 ~@88 e5@64 ~@11, ~@19 b3@10 ~@87 d5@64 ~@12]/6", // A Asus4
  D: "[~@23 [a2,e3,a3,b3,c#4]@64 ~ [a2,a3,d4,e4]@66 ~@2 [a2,a3,b3,e4]@67 ~]/7", // A Asus4 Asus2
  E: "[[a3,d4,e4]@2 [a3,d4,e4]@2 [a3,d4,e4]@2 a3!2, a2, ~@48 [d4,e4]@15 ~]/2", // Asus4 Dsus2
  F: "[[a3,b3,e4]@16 [a3,b3,e4]@16 [a3,b3,e4]@16 a3@8 a3@7 ~, a2@63 ~, ~@3 [b3,e4]]/2", // Asus2 E5
  G: "[[d4,e4,a4]@4 [d4,e4,a4]@4 [d4,e4,a4]@4 ~@3 e4, a2, ~@48 [d4,a4]@15 ~, ~@12 e4@3 ~, ~@7 a3]/2", // Dsus2 D5
  H: "[[a3,d4,f#4] [a3,d4,e4,f#4] [a3,d4,e4,f#4]!2, a2]/2", I: "[d4@12 ~@3 f#4, a3, f#4@15 ~, e4@27 e4@5, ~@3 d4]/2",
  J: "[~@3 a4, [g2,g3,b3,f#4], ~ e4, ~@11 d4@5]/2", K: "[~ c#4, [f#3,a3,e4]]/2", L: "[g3,d4,f#4]!2, b3",
  M: "[g3,b3,d4,e4]", N: "c#4@4 ~@4 a4@23 ~, ~@2 d4@13 ~", O: "~@4 a4@11 ~, c#4 ~@3, ~@2 d4@13 ~",
  P: "[b3,d4,f#4]@15 ~ [b3,d4,f#4]@14 ~@2", Q: "[a3,c#4,f#4]@7 ~ [a3,c#4,f#4]@7 ~",
  R: "[g3@14 ~@2 g3@15 ~@17 e4@15 ~, f#4@37 ~@3 d4@8 ~@16, b3@33 ~ b3@28 ~@2, ~@22 f#4@7 ~@3]/2", S: "[b3,d4,f#4]@15 ~",
  T: "[a3,c#4,f#4]@15 ~ [a3,c#4]@15 ~, ~@4 f#4@3 ~", U: "[b3,d4,f#4]@14 ~@12 g3 ~@5, ~@8 [b3,d4,f#4]@7 ~",
  V: "[g3,b3,e4]@7 ~ [g3,b3,e4]@8", W: "[c4,e4,a4]@7 ~ [c4,e4,a4]@7 ~", X: "[c4,e4,a4]@15 ~ [c4,e4,a4]@14 ~@2",
  Y: "[c4,e4,g4]@7 ~ [d4,e4,g4]@6 ~@2", Z: "[e4,g4,d5]",
  AA: "[[d4,f#4]@4 ~@4 a3@3 ~@4 a4, d3@7 d3, a3@8 ~@3 a3@2 a3@3, ~ d4@3, ~ f#4@2 f#4]/2", // D
  AB: "[[c#4,a4]@48 [c#4,a4]@6 [d4,b4]@5 [e4,c#5]@5, [f#3,a3]]/2", AC: "[[f#4,a4,c#5]@21 ~@3 [g4,b4,d5]@71 ~]/3",
  AD: "[~@15 g3@7 c4@30 ~@4 d4@3 ~@17 c4@7 ~@17 f3@24 ~@5 g3@4 ~@23 c3@21 ~@9 [c4,g4]@31 ~@7, [c2,d4]@22 [f2,f3,g#3,g4]@37 ~ [a2,g3,e4]@23 [f2,g#3,c4]@41 ~@17 g4@24 ~@59, g3@15 ~@53 d4@15 ~@8 g3@33 ~@9 c4@9 ~@2 d4@11 ~@69, ~@7 c4@15 ~@31 c4@7 c4@16 ~@7 f3@17 ~@26 c3@9 ~@2 g3@11 c4@29 ~@47, ~@152 g3@22 ~@12 g#3@27 ~@11]/7", // C5 Csus2 Fm A7 Fm
  AE: "[~@7 c4@2 d4@2 ~@11 g4@15 ~@11, ~@22 [a3,c4,e4]@59 ~@15]/3", // Am
  AF: "[~@12 d4@4 c4@30 g4@26 ~@27 g4@7 ~@53 g4@7 ~@45 g5@12 ~, ~@8 [f3,g#3]@38 ~@30 d5@30 ~@34 d5@4 d#5@8 c5@15 ~@11 c4@15 [e4,b4]@30 ~, ~@8 c4@3 ~@35 c4@49 c4@11 ~ g#3@60 ~@4 e3@53, ~@9 e4@6 ~@58 g4@11 g4@15 ~@19 c4@49 ~@7 b3@49 ~, ~@88 c5@19 ~@22 g4@19 d5@19 ~@15 g4@41 ~]/7", // Fm E5
  AG: "[~@18 c4@4 e4@4 d4@29 ~ e4@3 f4@3 ~ g4@18 ~@8 g5@4 d5@4 ~@3 c5@4 b4@8 a4@10 ~ a3@14 ~ c4@11 g4@7 ~@15 c5@10 ~@2 [c4,g4]@14 ~@4 c5@4 b4@4 g4@6 ~ [e5,c6]@4 [d5,b5]@4, ~@3 g#4@19 ~@60 b4@7 ~@67 a4@25 ~@43, ~@3 [c4,d4]@15 ~@68 c5@5 ~@6 e5@9 ~@54 c5@7 ~ d5@5 ~@51, ~@7 g#3@4 ~@71 g5@8 ~@22]/7", // C5 C G Csus2
  AH: "[[b4,g5]@18 a3@12 c4@7 g4@21 d5 e5@4 d5]/2", // Em
  AI: "[~@4 c5@5 b4@4 e4@10 ~@8 a4@10 [e4,c5]@7 ~ [d4,b4]@7 [c4,a4]@6 ~@47 b3@4 d4@4 ~ c4@4 ~ b3@3 ~ [a3,c4,a4]@29 [e4,c5]@11 [d4,b4]@10 [c4,a4]@7 ~ g4@16 ~@2 [b4,d5]@3 b4@4 [g4,b4]@3 [g4,b4]@11, ~@13 [f3,c4]@30 ~@45 e3@7 e3@18 [e3,g3]@13 ~@98, ~@13 a4@18 ~@61 g3@6 d4@15 ~@93 d5@7 ~@11, ~@23 e4@18 ~@22 [b3,g4]@37 ~@4 c4@10 ~@71 [b3,d4]@28 ~@11]/7", // C G F Am C G F Bm …
  AJ: "[[d4,a4]@11 [g4,b4]@7 a3@10 ~ [e4,a4]@17 ~ [e4,c5]@10 [d4,b4]@7, ~@18 c4@29 ~@17]/2", // D5 G A5 C G
  AK: "[~@4 [c4,a4]@7 [g3,d4]@12 ~@3 [g3,b3]@5 [g3,c4]@5 [g3,d4]@4 [a2,g3,c4]@28 ~ f4@24 g#4@4 ~@11 [g#4,c5]@4 [g#4,c5]@10 ~ f4@2 c4 ~@25 d5 ~@2 d5@4 c5@2, ~@11 e3@29 ~@28 [g#3,c4]@58 ~@34, ~@97 g4@19 ~@37 e5@2 ~@5, ~@104 f4@11 ~@7 e4@2 ~ [g3,e4]@35]/5", // F G5 G C5 G5 Am7 G# C
  AL: "[~@9 d4@3 c4@4 g3@5 ~@2 e4@6 ~@41 a3@10 [b3,d4,g4]@14 ~ [b3,d4,g4]@14 ~ [d4,g4,b4]@7 [c4,f4,a4]@7 ~ [b3,d4,g4]@8 ~ [a3,c4,f4]@8 ~ g4@11 ~@7 d5@7 e4@11 ~@18 e5@8 [d5,b5]@7 [b4,g5]@7 a4@4 d5@4 e5@3 [g#3,c4,f4]@7 ~ [g3,c4,e4]@7 [f#3,a3,d4]@7 ~ [f3,a3,c4]@3, ~@2 g4@19 ~@2 a4@10 ~ a4@21 c5@7 e4@16 ~@105 c5@13 ~ c6@33 ~@26, ~@6 e4@15 ~@2 a3@24 ~ c4@17 ~ c4@13 ~@64 [b3,d4]@25 [a3,c4]@29 ~@59, ~@30 e4@9 ~@2 e4@18 a4@10 ~@85 b4@14 ~@11 b4@17 ~@60, ~@95 g5@11 ~@22]/8", // G F G F G Em Fm C …
  AM: "[~@5 a3@21 ~@4 e4@16 [d4,e4]@2 d4@12 c4@3 ~@23 d4@29 d4@4 e4@4 [g#3,f4]@7 ~ [g3,e4]@7 [f#3,d4]@8 [f3,c4]@72 [g#3,c4,f4]@6, ~@2 g4@45 ~@27 g4@12 ~@138, ~@3 e4@27 ~@194, ~@4 c4@44 ~@15 b3@18 ~ b3@33 ~@8 c4@14 ~@87, ~@26 a3@21 ~@38 g3@29 ~@24 a3@79 ~@7]/7", // Dsus2 C# C D F5 Fm
  AN: "[~@2 [g3,c4,e4]@5 [f#3,d4]@5 [f3,c4]@64 ~ d4@3, ~@14 a3@139 [c3,g3]@7]/5", // C D F5 C5
  AO: "[~@8 g3@7 c4@32 ~@25 c4@7 ~@27 f3@29 ~ [c3,g3,c4]@96 ~@24, c4@15 [g#2,g#3,g4]@39 a3@25 f3@6 ~@3 g3@48 ~@120, ~@47 c4@8 [a2,e4]@26 ~@54 e3@97 ~@24, ~@51 d4@4 c4@17 ~@7 g#3@57 ~@120, ~@63 d4@17 [f2,c4]@57 ~@119]/8", // C5 G#maj7 A5 F5
})).s("gm_epiano2").gain(0.53).pan(0.3)

// chords · pad warm
const pad_warm = note("<~@33 A@2 B@6 C@4 D@8 ~@4 E@4 F@3 G@7 H@8 I@5 J@8 K@8 L M@7 N@3 O@8 P@4 Q@5 R@4>".pickRestart({
  A: "[[d4,f#4]@15 e4@16 ~, [g2,b3]]/2", B: "[~@8 a3@54 d4@28 f#4@37 [f#2,a3,e4]@65, [f#2,e4]@31 [g2,b3]@33 ~@32]/6",
  C: "[[b2,d4]@30 [a2,a3,c#4]@32 ~@2 d4@30 ~@4 g3@27 ~@3, f#4@93 ~ e4@32 ~@2, ~@31 g2@32 ~, ~@64 b3@63 ~]/4", // Bm A
  D: "[[b2,b3,d4]@30 e4@16 c#4@16 [d4,f#4]@32 e4@16 g4@17 [f2,a3,c4,e4]@63 e4@31 ~ e3@34, f#4@62 ~@32 g3@33 ~@129, ~@15 [a2,a3]@16 [g2,b3]@32 ~@32 [e2,g3,c4]@33]/8", // Bm D Fmaj7 A G C
  E: "[[d3,d4,f#4]@64 [f#2,c#4,e4]@63 ~, a3@63 ~]/4", F: "[c#4@5 [b3,d4]@18 ~, g2@23 ~, a3@19 ~ g3@11 ~@65]/3",
  G: "[c3@23 [f2,g#3]@37 [a2,a3,c4]@23 ~ [f2,g#3,c4,f4]@41 [c2,c3,e3,g3]@59 [g#2,g#3,c4]@40, g4@83 ~@141, [c4,d4]@59 ~ e4@19 ~@145, g3@5 ~@51]/7", // Fm Am Fm C G# Csus2
  H: "[~@21 [a2,e3,g3]@60 [f2,f3,g#3,c4]@61 [g3,e4]@60 ~@30 d4@24, ~@21 d4@181 [g#3,c4,g4]@54]/8", // A7 Fm C G#maj7
  I: "[~@7 [g3,e4]@59 [f3,g#3]@59 [a2,g3,e4]@35, ~@7 c4@153, ~@66 d4@15 ~@79]/5", // C Fm A7
  J: "[~@25 [a#2,d4,f4,c5]@60 d3@59 [g2,f3]@59 [f3,e4,a4]@53, ~@25 g4@58 ~@2 c4@171, ~@85 [a3,g4]@119 ~@52]/8", // A# G7 Fmaj7 A7
  K: "[~@4 [g3,b3]@58 [a3,c4,e4,a4]@57 [g3,b3,d4,g4]@57 [e4,a4]@56 ~ [g3,b3,d4,g4]@23, ~@4 [d4,g4]@55 ~@117 [a3,c4]@60 ~@20]/8", // G Am G A5 G G5 Am
  L: "~@3 [a3,c4,e4]@13", // Am
  M: "[~@3 [g#3,f4]@57 g3@57 [f#3,a3]@57 ~ [b3,d4,g4]@36 [a3,c4,f4]@8 [d4,g4,b4]@5, ~@3 c4@174 ~@47, ~@15 e4@29 ~@12]/7", // C# F#m G F G
  N: "[~@4 [c4,a4]@8 ~ [e3,b3,d4]@29 [g3,c4,e4]@54, ~@4 f4@9 ~@83]/3", // F E7 C
  O: "[~@5 [g#3,f4]@8 [g3,e4]@7 [f#3,d4]@7 ~@8 a3@59 [e3,b3,d4]@60 [g#3,f4]@7 [g3,e4]@8 [f#3,d4]@8 [f3,c4]@71 [g#3,c4]@8, ~@5 c4@16 ~@7 [f3,c4]@66 ~@60 c4@16 ~@86, ~@35 g4@120 ~@101]/8", // C# C D E7 C# C D F5 …
  P: "[~ g3@10 [f#3,a3]@11 ~@22 d6@70 ~@14, ~@22 c4@91 ~@15, ~@23 [g2,a3]@91 ~@14, ~@17 g5@40 ~@7, ~@35 f4@79 ~@14]/4", // F#m Gsus2
  Q: "[~@25 [g3,e4]@21 [g#3,f4]@39 [a3,e4]@25 [f3,g#3]@50, ~@5 c4@27]/5", R: "[~ [c3,g3,c4,e4]@26 ~@5]/4",
})).s("gm_pad_warm").gain(0.24).pan(0.6)

// chords · synth strings 1
const synth_strings_1 = note(`<
  A@4 B C D E@8 ~ F@7 G@2 H@2 I@2 J@7 K@5 L@8 ~ M@4 ~@3 N@7 O@2 P@8 Q@7 R S@8 T@2 U@8 V@8 W@4 X@4 Y@3 Z@4 AA@8 ~
>`.pickRestart({
  A: "[~@49 a5@14 ~ [a5,c#6]@64, ~@13 f#4@11 g5@2 a5@3 d6@2 e6@6 g6@26 ~@65, ~@17 a4@46 ~@65, ~@19 d5@44 e5@64 ~, ~@22 f#5@41 ~@65]/4", // A
  B: "~@27 g#5@4 e5", C: "~@15 g#4 ~@2 a4 ~@3 e5 ~@4 b4@4 c#5, ~@3 c#5@11 ~@2, ~@11 a4@7 ~@14",
  D: "~@11 c#4@5 [f#3,a3,d4]@16, ~@2 a4@13 ~@17, ~@7 e4@9 ~@16", // D
  E: "[~@25 [e3,b3,e4]@35 ~@5 c#4@84 ~@33 a5@64 ~@10, ~@16 c#3@46 ~@87 [a2,d4,e4,a4]@64 ~@43, ~@16 e4@9 ~@35 d4@5 ~@115 d5@64 ~@12, ~@20 a3@41 [d3,a3]@88 ~@32 e5@64 ~@11]/8", // E5 Asus4 D5
  F: "[~@23 [a2,e3,a3,b3,c#4]@64 ~ [a2,a3,d4,e4]@68 [a2,a3,b3,e4]@68]/7", G: "[a2,a3,d4,e4]/2", H: "[a2,a3,b3,e4]/2",
  I: "[a2,d4,e4,a4]/2", J: "[[d4,e4,f#4,a4]@191 [f#3,a3,e4]@33, a2@4 ~@3]/7",
  K: "[~@31 [d4,e4,f#4,a4]@64 [f#3,a3,e4]@65]/5", // D F#m7
  L: "[[d4,f#4]@30 [c#4,e4]@32 [d4,f#4]@48 [g3,e4]@16 b3@32 [a3,c#4,e4]@32 d4@32 [g3,e4]@33 ~, a4@65 ~@61 f#4@94 ~@36, ~@62 b3@63 ~ d4@29 ~@35 b3@64 ~@2]/8", // D C#m D C A C
  M: "[~@15 [e3,e5,g5]@49]/4", // Em
  N: "[~@86 e4@40 ~@24 d5@67 ~@6 g5, f#4@88 ~@38 c#5@23 ~@75, d4@64 ~@70 b3@83 ~@7, a3@61 ~ [f#3,c#5]@64 [g3,f#4]@91 ~@7, ~@16 a4@93 ~@3]/7", // F#5 Gmaj7
  O: "[c4@21 g#3@37 [a3,e4]@6, g4]/2", // A5
  P: "[~@27 c4@33 ~@2 [c3,g3,e4]@59 [g#2,g#3,d4,g4]@60 ~ c4@28 [e4,g4,d5]@30 [g#3,d4]@16, ~@10 [g#3,f4]@21 c4@60 a3@30 ~@7]/8", // C G Em7 G#dim C#
  Q: "[~@14 f3@30 ~@61 [g#4,d5]@60 g4@15 ~@30 g4@14, ~@14 c4@90 ~@61 [a3,e4]@59, ~@44 g4@61 ~@82 c5@37, ~@63 c5@8 g5@96 ~@28 g5@29, ~@67 d5@23 c5@77 ~@13 b4@15 ~@29]/7", // G#dim A5
  R: "~@3 d4, ~ [g#3,c4]@31", S: "[~@29 g5@120 d4@59 a4@48, ~@29 c5@227, ~@149 g4@107]/8", T: "[~@11 [c4,e4,a4]@53]/2",
  U: "[~@5 [b3,d4,g4]@57 [c4,e4,a4]@57 [b3,d4,g4]@57 [e4,a4]@57 [b3,d4,g4]@23, ~@22 c4@7 ~@3]/8", // G Am G A5 G
  V: "[~@6 [a3,e4]@29 [g#3,f4]@57 [e4,g4]@57 a3@16 ~@13 a4@29 [b3,d4,g4]@28 ~ [g4,b4,d5]@7 [f4,a4,c5]@7 ~ [d4,g4,b4]@5, ~@6 c4@27 ~@2 c4@114 f#3@59 ~@48, ~@149 e4@56 ~@51]/8", // A5 C# Em G F G
  W: "[~@4 [c4,f4,a4]@9 [b3,d4,g4]@29 ~@33 b5@8 g5@20 ~@25, ~@21 [a3,c4,e4]@30 ~@13, ~@68 c6@11 ~@49]/4", // F G Am
  X: "[~@3 [a3,c4,e4]@59 [g3,b3,d4]@61 ~@5]/4", Y: "[~@2 [a3,c4]@9 ~]/3",
  Z: "[~@45 g5@83, ~@23 [g3,f4]@105, ~@33 d5@95]/4", // G7
  AA: "[~@45 g#3@39 ~@13 e4@14 ~ f4@58 ~@2 [g3,g5]@84, ~@25 c4@231, ~@25 g3@23 ~@37 a3@26 g#3@57 ~@2 c5@86, ~@171 e4@85]/8", // G
})).s("gm_synth_strings_1").gain(0.17).pan(0.4)

// chords · epiano1
const epiano1 = note("<A@3 B@6 C@6 ~ D@7 E@2 F@2 G@2 H@2 I@2 ~@7 J K ~@90>".pickRestart({
  A: "[~@49 a5@4 d#6 e6@4 ~@6 a5@5 e6@5 a5@17 ~@5, ~@13 f#4@9 f#5@4 a5@3 d6@2 e6@3 f#6@3 g6@4 f#6@4 d6@8 a5@2 ~@4 d6@7 ~@30, ~@15 g4@40 ~@41, ~@17 a4@38 ~@9 [b5,c#6]@13 ~@19, ~@19 d5@5 g5@31 ~@8 e5@25 ~@8]/3", // Bsus2
  B: "[~@9 b5@15 a5@31 ~@31 e5@5 ~@16 c#4@5 a3@9 ~@19 d4@4 ~@9 [e3,b3,e4]@26 ~@2 a3@3 b3@2 c#4@3 [f#3,a3,d4]@3, ~@55 a5@37 ~@11 e4@9 f#3@32 c#3@35 ~@13, ~@59 g#5@16 a4@4 g#4@3 a4@9 ~@7 a4@14 d4@12 d4@8 d4@4 c#4@8 ~@48, ~@63 e5@9 b4@19 b4@21 ~@9 a3@23 ~@4 a3@31 ~@13, ~@68 b4@2 c#5@22 ~@3 c#5@18 ~@15 e4@15 ~ e4@9 ~@39]/6", // E5 D
  C: "[~@7 b3@5 ~@15 [a3,c#4]@58 ~@33 a5@64 ~@10, c#4@9 ~@3 [a3,c#4]@11 ~@3 d3@59 ~@32 e5@64 ~@11, ~ e3@28 ~@87 d5@64 ~@12, ~@19 b3@10 ~@56 [a3,d4,e4,a4]@64 ~@43]/6", // A Asus4
  D: "[~@23 [a2,e3,b3,c#4]@64 ~ [a2,a3,d4,e4]@66 ~@2 [a2,a3,b3,e4]@67 ~]/7", // A Asus4 Asus2
  E: "[[a3,d4,e4]@2 [a3,d4,e4]@2 [a3,d4,e4]@2 a3!2, a2, ~@48 [d4,e4]@15 ~]/2", // Asus4 Dsus2
  F: "[[a3,b3,e4]@16 [a3,b3,e4]@16 [a3,b3,e4]@16 a3@8 a3@7 ~, a2@63 ~, ~@3 [b3,e4]]/2", // Asus2 E5
  G: "[[d4,e4,a4]@4 [d4,e4,a4]@4 [d4,e4,a4]@4 ~@3 e4, a2, ~@48 [d4,a4]@15 ~, ~@12 e4@3 ~, ~@7 a3]/2", // Dsus2 D5
  H: "[[a3,d4,f#4]!2 [a3,d4,f#4]!2, a2]/2", I: "[d4@12 ~@3 f#4, a3, f#4@15 ~, ~@3 d4, ~@27 e4@5]/2",
  J: "~@16 d4@5 e4@4 ~@2 f#4@4 ~", K: "f#4",
})).s("gm_epiano1").gain(0.29).pan(0.7)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@33 A@2 B C ~ D E@2 F G H I J K@2 ~ L M N O P ~@2 Q R@2 S@2 T@2 ~ U@2 V@2 ~@51 W@3 ~@3 X@3 Y@4
>`.pickRestart({
  A: "[g3@15 ~]/2", B: "f#3@13 ~@3", C: "c#4@8 a3@7 ~", D: "g3@31 ~",
  E: "[~@8 c#4@2 ~@2 a4@10 ~@4 a4@5 ~, f#3@38 ~@10 d4@13 ~@3, ~@20 d4@19 ~@5 c#4@12 ~@8]/2", F: "~@4 d4@4 f#4@4 d5@3 ~",
  G: "[e4,c#5]@7 ~ [c#4,a4]@9 ~@15", H: "~@3 d4 ~@3 f#4, ~@16 f#4@8 b3@7 ~, ~@5 d4@2 ~",
  I: "~@8 g3@21 ~@3, e4@9 ~@7, ~ b3@2 ~@5", J: "~@8 b4@4 d5@3 ~, ~@8 d4@23 ~",
  K: "[[f#4,c#5]@7 ~ [c#4,a4]@8 ~@24 a4@23 ~, ~@29 a3@11 ~@24, ~@15 c#4@5 ~@12, ~@36 d4@25 ~@3]/2", // F#5 F#m
  L: "~ a3 c4 ~@2 c4 ~ c4, f3@15 ~ e4@13 ~@3, ~@12 a3@9 ~@3 a3@8",
  M: "~ a3 ~@3 c4 a3 f3, f3 ~, ~@8 c4@7 ~ e4@9 ~@7, ~@3 a3@2 ~@3",
  N: "~ g3 ~@3 c4 ~ c4, e3@29 ~@3, ~@8 c4@7 ~ e4@11 ~@5, ~@12 g3@9 ~@3 g3@8",
  O: "~ g3 ~@2 e4 c4 g3 e3, e3@8 c4@9 ~@15, ~@3 g3@2 ~@3", P: "c3@3 ~@13", Q: "~@31 e4", R: "[f#4 d4 a3@9 ~@5]/2",
  S: "[~@8 c#4@11 ~ a3@4 c#4@21 ~@19]/2", T: "[e4@9 ~@3 d4@11 ~@9, ~@11 g3@10 ~@11, ~@23 b3@20 ~@21]/2",
  U: "[d4@8 c4@7 g3@7 ~ f3@22 c4@14 ~@5]/2", V: "[~@20 g#3@7 c4@9 g4@8 f4@16 ~@4]/2",
  W: "[~@30 f4@6 e4@5 ~@7 c5@36 ~@12, ~@41 c4@25 ~@30]/3",
  X: "[~@23 e4@8 d4@8 ~ c4@7 ~ c4@35 ~@13, ~@21 a3@2 ~@73, ~@11 c4 ~@36]/3",
  Y: "[~@19 g3@10 ~@8 d4@5 ~@10 c4@6 ~@10 c3@18 e3@37 ~@5, ~@15 c3@15 g3@26 ~@2 g3@64 ~@6, ~@33 c4@12 ~@2 d4@24 ~@57, ~@42 g4@23 ~@3 g4@56 ~@4, ~@62 c4@61 ~@5]/4",
})).s("gm_electric_guitar_jazz").gain(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@33 A ~ A ~@5 A ~ A ~@5 A@3 B A B ~@2 A C A@3 ~@2 A ~@10 D ~ E ~ F ~ G H ~ I ~ J ~ K ~ L M N O P Q R S T E U V W X Y
  Z AA AB AC AD AE AF B ~@2 I ~@2 AG ~@9 AH ~@3
>`.pickRestart({
  A: "x", B: "~ x ~@6", C: "x!2 ~@6", D: "~@7 x ~@8", E: "~@11 x ~@20", F: "~@3 x ~@3 x ~@24", G: "~@3 x ~@28",
  H: "~@31 x", I: "~@8 x ~@18 x ~@4", J: "~@4 x ~@18 x ~@8", K: "x ~@8 x ~@6", L: "~@13 x ~@18", M: "~@6 x ~@2 x ~@22",
  N: "~@6 x ~@24 x", O: "~@6 x ~@3 x ~@17 x ~@2 x", P: "~@6 x!2", Q: "~@25 x ~@6", R: "~@18 x ~@6 x ~@2 x ~@3",
  S: "~@7 x ~ x ~@6", T: "~@11 x ~@3 x ~@16", U: "~@4 x ~@3 x ~@10 x ~@12", V: "~ x ~@2 x ~@25 x ~",
  W: "~ x ~@10 x ~@13 x ~@3 x ~", X: "~@23 x ~@2 x ~@5", Y: "~@5 x ~@13 x ~@3 x ~@8", Z: "~@8 x ~ x ~@4 x",
  AA: "~@13 x ~@2 x ~@15", AB: "~@14 x ~@6 x ~@10", AC: "~@2 x ~@7 x ~@4 x ~@16", AD: "~@2 x!2 ~@4",
  AE: "~@5 x ~@7 x ~@2 x ~@15", AF: "~@3 x ~@12", AG: "~@13 x ~@2", AH: "~ x ~@2",
})).gain(0.25)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@34 A ~ B A@3 B ~ A ~ B A@3 B ~ C D A D A B E D@2 ~ D@2 ~@70>".pickRestart({
  A: "x", B: "x ~@2 x", C: "~ x!2 ~@5", D: "~@3 x", E: "x!2 ~@6",
})).gain(0.15)

// drums · rim
const rim = s("rim").struct("<~@112 [~@19 x ~@12] [~@17 x ~@14] [~@7 x ~@8] [~@3 x ~@4] ~@16>").gain(0.4)

// drums · snare
const snare = s("sd").struct("<~@84 A ~ B ~ C ~ D E F G H I J K L M N O P A Q R S T U M E ~@21>".pickRestart({
  A: "~@3 x ~@4", B: "~ x ~@2", C: "~@3 x ~@28", D: "~@27 x ~@4", E: "~@3 x", F: "~@5 x ~@2", G: "~@17 x ~@14",
  H: "~@7 x ~@8", I: "~@5 x ~@10", J: "~@7 x ~@24", K: "~ x ~@6", L: "x ~@28 x ~@2", M: "~@13 x ~@2", N: "~@11 x ~@4",
  O: "~@19 x ~@12", P: "~@15 x ~@16", Q: "~@9 x ~@22", R: "~@5 x ~@26", S: "~ x ~@14", T: "~@3 x ~@12",
  U: "~@6 x ~@22 x ~@2",
})).gain(0.4)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@86 [~@7 x ~@24] ~@45>").gain(0.2)

// drums · low tom
const low_tom = s("lt").struct("<~@48 A B ~@40 C ~@6 D ~@2 E F ~@5 G C ~ H ~@16 I ~@4>".pickRestart({
  A: "~@16 x!2 ~@4 x!10", B: "x", C: "~@3 x ~@12", D: "~@11 x ~@20", E: "~@29 x ~@2", F: "~ x ~@30", G: "~@3 x!2 ~@27",
  H: "~@20 x ~@10 x", I: "~@13 x ~@2",
})).gain(0.25)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@48 [~@18 x!4 ~@10] ~@41 [~@5 x ~@26] ~@41>").gain(0.15)

// drums · hihat
const hihat = s("hh").struct("<~@61 A@3 ~ B ~@46 C D E F ~@16>".pickRestart({
  A: "~ x", B: "~@13 x ~@18", C: "~@4 x ~@7 x ~@6 x ~@7 x ~@4", D: "~@2 x ~@6 x ~@7 x ~@6 x ~@7",
  E: "x ~@6 x ~@6 x ~@7 x ~@6 x ~@2", F: "~@5 x ~@6 x ~@19",
})).gain(0.2)

// drums · mid tom
const mid_tom = s("mt").struct("<~@89 A ~@10 B ~ C ~ D E F G H ~@18 I ~@4>".pickRestart({
  A: "~@16 x ~@10 x ~@2 x ~", B: "~@19 x ~@6 x ~@5", C: "~@3 x ~@4", D: "~@5 x ~@26", E: "~@15 x", F: "~@31 x",
  G: "~ x ~@30", H: "~ x ~@14", I: "~ x ~@5 x ~@8",
})).gain(0.25)

// drums · mid tom · soft notes
// … 84 more lines

More by Giorgia