Strudelify

Se Bastasse Una Canzone

Ramazzotti

KeyC majorTempo85 bpm
0:00/0:00
// Se Bastasse Una Canzone — Ramazzotti
// 85 bpm, 3/4, key C 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 147 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(85/3)

// 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 · whistle
const whistle = note(`<
  A@4 B@8 C@6 D@6 E@4 F@8 G@8 H@5 I@5 J@2 K@8 L@2 M@8 N@2 O P@5 Q@7 R@3 S@2 T@8 U@2 V@8 U@2 W@4 X@6 Y@18 Z@5
>`.pickRestart({
  A: "[~@7 a3 ~@5 b3 ~@5 a3 ~@3 g3, ~ [g1,g2]@7, ~@16 d3@17 ~@7 d3@16 d4@24 g3@12 ~@4, ~@10 g3@6 g3@6 g3@7 ~@3 d3@9 ~@3 d3@4, ~@24 b3@9 ~@15 a3@10 ~@10 g3@4 b3@10 ~@14]/4", // G
  B: "[~@7 a3 ~@11 a3 ~@5 d5!2 ~ b4!2 ~ a4!2 ~@5 g4 a4!3 ~ g4!2 ~ d4@2, a3@3 [g1,g2]@22 b3@9 g4@2 d4 e4@2 ~ e3@5 ~@3, ~ b3@2 ~ d3@4 g3@3 g3@2 b3 d4@6 g3@3 g3@4 [g1,g2,d5]@12 a2@6 [d2,e4]@3, ~@8 d4@26 ~@14 a3@11 ~@9 g3@4 b3@9 ~@15 a3@24 b4@36 ~@12 a4@12 ~@12, ~@20 g3@4 b3@10 ~@6 d3@19 ~@5 d3@17 ~@7 d3@16 d4@28 a4@24 ~@8 a3@16 ~@12]/8", // G G5 Dsus2
  C: "[~ d5!3 b4!2 ~ a4!2 ~@5 g4 a4!3 ~ g4!2 ~ d4@2 ~@2 g4 ~@6 d2@3, ~@3 [g1,g2]@10 e4@2 ~ e3@5 ~@6 [c2,g4]@2 g3 c4 e4 g3@4, ~@6 b4@3 a4@6 ~@2 a3@4 ~@3 d4@9 ~@3, ~@19 b4@11 ~@6 a4@6 e4@8 e4@6 c3@10 ~@6, ~@4 d4 a2@2 d2@4 ~]/6", // G C5
  D: "[~@8 g4@4 ~@20 g4@4 ~@20 g4@4 ~@20 d4@4 b4@2 d5@2 ~@12 a4@8 [g2,g3,d4,g4]@27 ~@9, d4@12 e2@24 [b2,a4]@16 e4@8 c2@16 e4@8 ~@12 b4@13 ~@35, ~@4 e4@8 g4@12 b3@13 ~@7 b3@16 g4@8 c3@16 ~@14 g4@10 ~@36, ~@16 b2@12 e4@9 ~@11 d4@13 ~@3 e4@4 d4@4 g4@12 ~@4 e5@21 ~@35, ~@20 [e3,g3]@17 ~@3 f#3@21 ~@3 g2@20 d2@25 ~@35]/6", // G5 B7 Em
  E: "[~@4 e5@2 ~@2 e5@2 ~@2 e5@4 c#5@3 ~ c#5@2 ~@2 c#5@4 b4@2 ~@2 b4@2 ~@2 b4@4 ~@16 [a1,e3,a3,c#4,e4]@4 ~@4 b4@2 ~@2 b4@2 ~@6 a4@4 a4@4 [e4,f#4]@4 e4@7 ~, ~@3 [a1,e3,a3,c#4,e4]@11 ~ [b1,b2,f#3,a3,d4]@6 [e2,e3,g#3,b3]@3, ~@40 c#5@21 ~@11 b4@12 ~@12]/4", // A Esus2 A Bm7 E
  F: "[~@4 e5@4 e5@4 e5@4 c#5@3 ~ c#5@2 ~@2 c#5@4 b4@3 ~ b4@2 ~@2 b4@4 ~@16 [a1,e3,a3,c#4,e4]@4 ~@4 b4@2 ~@2 b4@2 ~@14 e4@4 e4@8 ~@4 f#4@4 a4@3 ~ d4@20 d4@4 ~@20 f#5@4 c#5@2 b4@2 a4@20 [c#2,c#3,g#3,b3,e4]@12, ~@12 [a1,e3,a3,c#4,e4]@44 ~@4 [b1,b2,f#3,a3,d4]@24 f#4@12 e4@10 ~@26 [e2,e3,g#3,b3,e4]@25 ~@35, ~@40 c#5@21 ~@11 b4@8 b4@26 ~@2 a4@7 ~@33 e5@9 ~@35, ~@76 c#5@30 ~@38 c#5@12 b4 ~@35, ~@84 [e2,e3,g#3,b3]@24 [d2,d3,f#3,a3]@25 ~@23 [f#2,f#3,a3,c#4,f#4]@24 ~@12]/8", // A C#m7 A Bm7 E D F#m
  G: "[~@8 a4@4 a4@4 e4@4 ~@12 f#4@4 c#5@2 ~@6 f#5@4 c#5@2 a4@2 b4@8 [e3,a3,c#4,e4]@16 [e3,a3,c#4,e4]@8 [a3,c4,f4]@16 f5@4 f5@3 ~ f5@4 d5@3 ~ d5@2 ~@2 d5@4 c5@2 ~@2 c5@2 ~@2 c5@4 ~@12 [f3,a#3,d4,f4]@8 ~@4 c5@2 ~@2 c5@2 ~@6 a#4@4 a#4@4 [f4,g4]@4 f4@8, e4@12 [d2,d3,f#3,a3,d4]@24 c#4@13 ~@11 [a2,a4]@25 ~@95 [f2,f3,a3,c4]@12, ~@4 f#4@8 ~@8 f#4@12 ~@4 [e2,e3,g#3]@25 ~@23 f2@23 ~ a#1@48 [c2,g3,a#3,d#4,g4]@24 ~@12, ~@24 a4@13 ~ e5@11 ~@87 d5@20 ~@12 c5@12 ~@12, ~@28 e4@9 ~@11 b3@13 ~@39 [a3,c4,f4]@7 ~ [f3,a#3,d4,f4]@40 ~@44]/8", // A F A# Fsus2 D A F E …
  H: "[~@4 f5@4 f5@4 f5@4 d5@2 ~@2 d5@2 ~@2 d5@4 c5@2 ~@2 c5@2 ~@2 c5@4 d5@6 ~@6 [f3,a#3,d4,f4]@8 ~@4 c5@2 ~@2 c5@2 ~@10 c5@4 f4@4 f4@8 ~@8 a#4@3 ~ [d#2,g3,a#3,d#4]@12, [f2,g3,a#3,d#4,g4]@12 a#1@48 [c2,g3,a#3,d#4,g4]@24 [f2,f3,a3,c4]@23 ~@13, ~@12 [f3,a#3,d4,f4]@40 ~@20 c5@8 ~@4 g4@16 g4@7 ~ a#4@6 ~@6, ~@76 d5@8 ~@12 f4@11 ~@13]/5", // A# D# Cm7 F A#
  I: "[~@2 [g3,a#3,d#4]@4 ~@10 g5@2 d5 c5 ~@6 [a#3,d4,g4]@4 f4@6 f4@2 ~@2 a#4@2 a#4@2 f4@2 g4@2 ~@4 g4@2 d5 f5 g5@4, ~ [f2,a3,c4,f4]@2 g2@2 [d2,d3]@2 [d#2,d#3,g3,a#3,d#4]@2 [f2,f3,a3,d4], ~@6 d5@3 [a#3,d4,g4]@4 ~@2 [a3,c4]@4 [a3,c4,f4,g4]@2 ~@4 f4@2 ~@3, ~@28 f5@8 c5 ~@3 a#4@20 ~@36 a#4@12 ~@12]/5", // D# Gm F D D# Dm Gm Am …
  J: "[d5@2 a#4@2 c5@8 [a#2,f3,a#3,d4,a#4]@19 ~ [a#2,g3,a#3,d#4]@4 [a#2,f3,a#3,d4]@8 f3@2 g3@2, [f2,f3,a3,c4] ~@3]/2", // A# D# A# F
  K: "[a#3@2 c4@2 a#3@2 g3@2 d4@2 c4@2 ~@8 f4@2 ~@12 g4@2 [f3,g3,c4]@16 [f3,g3,c4]@8 ~@20 [g2,f3,a#3,d4,d5]@4 a#4@4 g4@8 ~@8 [d#2,g3,a#3,d#4]@4 ~@8 f4@2 g4@2 ~@10 g4@2 c5@11 ~@9 f5@3 ~ f5@2 d#5 ~ d#5@2 d5 ~ d5@2 c5 ~ c5@4 a#4@7 ~ [d#2,g3,a#3,d#4]@12, ~@12 a#2@24 a2@24 [g2,f3,a#3,d4]@20 ~@4 [d#2,g3,a#3,d#4]@20 ~@4 [a#2,f3,a#3,d4]@24 [f2,f3,a3,c4]@23 ~ [d#2,g3,a#3,d#4]@23 ~@13, ~@3 [f3,a#3,d4]@5 [f3,a#3,d4,a#4] ~@39, ~@11 g4@2 g4@2 g4@2 ~@21 c5@4 ~@19 g4@2 g4@2 ~@31, ~@12 a#4@2 a#4@2 ~@2 c5@5 ~@13 a#4@6 ~@18 a#4@2 a#4@2 a#4@2 ~@30]/8", // Fsus2 Gm7 D# Gm7 D# A# F D# …
  L: "[~@8 f5@4 f5@2 d#5 ~ d#5@2 d5 ~ d5@2 a#4@2 ~@4 d5@8 [f2,f3,a3,d4]@12, [d2,f3,a#3,d4] [c2,g3,a#3,d#4]@2 ~, ~@2 c5 ~]/2", // Dm A# Cm7
  M: "[[f2,f3,a3,c4]@11 ~@9 f4@2 ~@12 g4@2 [f3,g3,c4]@16 [f3,g3,c4]@8 ~@20 [g2,f3,a#3,d4,d5]@4 a#4@4 g4@6 ~@10 [d#2,g3,a#3,d#4]@4 ~@8 f4@2 g4@2 ~@10 g4@2 c5@8 ~@12 f5@3 ~ f5@2 d#5 ~ d#5@2 d5 ~ d5@2 c5 ~ c5@4 a#4@7 ~ [d#2,g3,a#3,d#4]@12, ~@12 a#2@24 a2@24 [g2,f3,a#3,d4]@20 ~@4 [d#2,g3,a#3,d#4]@20 ~@4 [a#2,f3,a#3,d4]@24 [f2,f3,a3,c4]@23 ~ [d#2,g3,a#3,d#4]@23 ~@13, ~@3 [f3,a#3,d4]@5 [f3,a#3,d4,a#4] ~@39, ~@11 g4@2 g4@2 g4@2 ~@21 c5@4 ~@19 g4@2 g4@2 ~@31, ~@24 a#4@4 a#4@4 ~@4 c5@9 ~@27 a#4@12 ~@36 a#4@4 a#4@4 a#4@4 ~@60]/8", // F Fsus2 Gm7 D# Gm7 D# A# F …
  N: "[~@8 f5@4 f5@2 d#5 ~ d#5@2 d5 ~ d5 ~ a#4@2 ~@4 d5@8 [f2,f3,a3,d4]@12, [d2,f3,a#3,d4] [c2,g3,a#3,d#4]@2 ~, ~@12 f#5 ~@11 c5@12 ~@12]/2", // Dm A# Cm7
  O: "[f2,f3,a3,c4]@11 ~ [a#1,a#2,f3,a#3,d4]@12", // F A#
  P: "[~@4 [a#1,a#2,g3,a#3,d#4]@8 ~@16 g5@2 ~@2 g5@2 ~@2 g5@4 e5@3 ~ e5@2 ~@2 e5@4 d5@2 ~@2 d5@2 ~@2 d5@4 e5@6 ~@10 [c2,g3,c4,e4]@4 ~@4 d5@2 ~@2 d5@3 ~ d5@4 c5@3 ~ c5@4 a4@4 g4@5 ~@3, ~@12 [a#1,a#2,f3,a#3,d4]@23 ~ [c2,g3,c4,e4]@44 ~@4 [d2,a3,c4,f4]@24 [g2,g3,b3,d4]@12]/5", // D# C A# C Dm7 G
  Q: "[~@4 g5@3 ~ [g2,f3,a3,c4,g5]@4 g5@4 e5@3 ~ e5@2 ~@2 e5@4 d5@2 ~@2 d5@3 ~ d5@2 e5@7 ~@11 [c2,g3,c4,e4]@4 ~@4 d5@2 ~@2 d5@2 ~@2 d5@4 e5@4 d5@4 a4@4 g4@4 ~@4 g4@4 a4@4 c5@3 ~ [f3,a3,c4]@16 [f3,a3,c4]@8 ~@12 e5@4 ~@4 a5@4 e5@2 d5@2 c5@7 ~, ~@12 [c2,g3,c4,e4]@44 ~@4 [d2,a3,c4,f4]@24 [g2,g3,b3,d4]@23 ~ f2@24 [g2,g3,b3,d4]@24 [a2,a3,c4,e4]@12, ~@108 c5@6 ~@34 g5@8 d5 ~@11]/7", // F C F C Dm7 G Am
  R: "[~@2 [a3,c4,e4]@4 g4@6 ~@4 c5@2 c5@2 g4@2 a4@2 c5@2 ~@2 a4@2 e5 ~@3 a5@2, ~ [e2,e3,g3,b3,d4]@2 [f2,f3,a3,c4]@2 [g2,g3,b3,e4], ~@6 g4@3 ~@4 g4@2 ~@3, ~@14 a4@4 ~@13 g5@5]/3", // Am Em7 F Em
  S: "[e5 c5 d5@4 [c2,c3,g3,c4,e4]@16 [g2,g3] [a2,a3], [g2,g3,b3,d4]@3 c5@2 ~@7]/2", // C G A G
  T: "[[c3,c4]@2 [d3,d4]@2 [c3,c4]@2 [a2,a3]@2 [e3,e4]@2 [d3,d4]@2 ~@8 g4@2 a4 ~@11 a4@2 [g3,a3,d4]@16 [g3,a3,d4]@8 ~@20 [a2,g3,c4,e4,e5]@4 c5@4 a4@6 ~@10 [f2,a3,c4,f4]@4 ~@8 g4@2 a4 ~@11 a4@2 d5@9 ~@11 g5@3 ~ g5@2 f5 ~ f5@2 e5 ~ e5@2 d5 ~ d5@4 c5@7 ~ [f2,a3,c4,f4]@12, ~@12 c3@24 b2@24 [a2,g3,c4,e4]@20 ~@4 [f2,a3,c4,f4]@20 ~@4 [c3,g3,c4,e4]@24 [g2,g3,b3,d4]@23 ~ [f2,a3,c4,f4]@23 ~@13, ~@3 [g3,c4,e4]@5 [g3,c4,e4,c5] ~@39, ~@6 c5!2 ~ d5@2 ~@7 c5@3 ~@9 c5!3 ~@15, ~@13 a4@2 a4@2 ~@21 d5@4 ~@19 a4@2 a4@2 ~@31]/8", // C D C A E D Gsus2 Am7 …
  U: "[~@8 g5@4 g5@2 f5 ~ f5@2 e5 ~ e5@2 c5@2 ~@4 e5@8 [g2,g3,b3,e4]@12, [e2,g3,c4,e4] [d2,a3,c4,f4]@2 ~, ~@2 d5 ~]/2", // Em C Dm7
  V: "[[g2,g3,b3,d4]@11 ~@9 g4@2 a4 ~@11 a4@2 [g3,a3,d4]@16 [g3,a3,d4]@8 ~@20 [a2,g3,c4,e4,e5]@4 d5@4 c5@7 ~@9 [f2,a3,c4,f4]@4 ~@8 g4@2 a4@2 ~@10 a4@2 d5@10 ~@10 g5@3 ~ g5@2 f5 ~ f5@2 e5 ~ e5@2 d5 ~ d5@4 c5@7 ~ [f2,a3,c4,f4]@12, ~@12 c3@24 b2@24 [a2,g3,c4,e4]@20 ~@4 [f2,a3,c4,f4]@20 ~@4 [c3,g3,c4,e4]@24 [g2,g3,b3,d4]@23 ~ [f2,a3,c4,f4]@23 ~@13, ~@3 [g3,c4,e4]@5 [g3,c4,e4,c5] ~@39, ~@12 c5@2 c5@2 ~@2 d5@5 ~@13 g5@6 ~@19 a4@2 a4@2 ~@31, ~@13 a4@2 a4@2 ~@21 f5@4 ~@18 c5@2 c5@2 c5@2 ~@30]/8", // G Gsus2 Am7 F Am7 F C G …
  W: "[[g2,g3,b3,d4]@11 ~ [c3,g3,c4,e4,g4]@24 [b2,g3,a3,d4,g4]@24 [a2,g3,c4,e4,g4]@23 ~ [f2,a3,c4,f4]@2 ~@2 [f2,a3,c4,f4]@3 ~@5]/4", // G C G Am7 F
  X: "[~ [c3,g3,c4,e4,g4]@2 [g2,g3,b3,d4,g4]@2 [c3,g3,c4,e4,g4]@2 [b2,g3,a3,d4,g4]@2 [a2,a3,c4,e4]@2 [f2,a3,c4,f4]]/6", // C G C G Am F
  Y: "[~@4 [a3,c4,f4]@7 ~ [c3,g3,c4,e4]@24 [b2,g3,b3,d4,g4]@24 [c3,g3,c4,e4,g4]@24 [b2,g3,a3,d4,g4]@24 [a2,a3,c4,e4]@24 [f2,a3,c4,f4]@12]/6", // F C G C G Am F
  Z: "[~@4 [a3,c4,f4]@7 ~ [c3,g3,c4,e4]@24 [b2,g3,b3,d4,g4]@24 [c2,c3,g3,c4,e4]@16 [c2,c3,a3,c4,f4]@8 [c2,c3,g3,c4,e4]@21 ~@15]/5", // F C G C F C
})).s("gm_whistle").gain(0.22)

// bass · electric bass finger
const bass = note(`<
  ~@24 A@4 B@2 C@8 D E@7 F@8 G@2 H@8 I J@6 K@3 L@3 M@3 N@8 O@6 P@8 Q R@6 S@3 T@6 U@2 V@3 W@18 X@6
>`.pickRestart({
  A: "[~@12 a1@43 ~ a1@4 b1@24 e1@12]/4", B: "[~@2 e1 a1@9]/2",
  C: "[~@2 a1 b1@6 e1@6 d2@6 e1@6 f#1@6 c#2@6 d2@6 e1@3]/8", D: "~ a1",
  E: "[~@4 a1@4 g1@4 f1@20 a1@4 a#1@43 ~ a#1@4 c2@24 f1@19 ~ f1@4 a#1@36]/7",
  F: "[~@8 a#1@4 c2@24 f1@19 ~ f1@4 d#2@18 ~@2 d#2@4 f1@19 ~ f1@4 g1@19 ~ g1@4 d2@20 a#1@4 d#2@19 ~ d#2@4 f1@12]/8",
  G: "[~@2 f1@2 g1@2 a#1@10 g1@2 a#1@4 f1 g1]/2",
  H: "[a#1@2 ~@2 a#1@2 g1@2 d2@2 c2@2 a#1@24 a1@19 ~ a1@4 g1@19 ~ g1@4 d#2@24 a#1@19 ~ a#1@4 f1@24 d#2@23 ~ d#2@12, ~ c2@2 ~@93]/8",
  I: "d2 c2", J: "[~@8 c2@4 f1@19 ~ f1@4 a#1@24 a1@19 ~ a1@4 g1@19 ~ g1@4 d#2@24 a#1@12]/6",
  K: "[~@8 a#1@4 f1@24 d#2@23 ~ d#2@12]/3", L: "[d2@12 c2@18 ~@2 c2@4 f1@19 ~ f1@4 a#1@12]/3",
  M: "[~@4 a#1@7 ~ a#1@24 c2@24 c2@12]/3",
  N: "[~@8 c2@4 d2@24 g1@19 ~ g1@4 c2@23 ~ c2@19 ~ c2@4 d2@24 g1@19 ~ g1@4 f1@19 ~ f1@4 g1@12]/8",
  O: "[~@8 g1@4 a1@16 a2@4 a1@4 e2@16 b1@3 ~ e1@4 f1@19 ~ f1@4 g1@18 ~@2 g1@4 c2@24 c3@7 ~ g1@2 a1@2]/6",
  P: "[c2@2 d2@2 c2@2 a1@2 e2@2 d2@2 c2@24 b1@19 ~ b1@4 a1@19 ~ a1@4 f2@24 c2@19 ~ c2@4 g1@24 f2@23 ~ f2@12]/8",
  Q: "e2 d2", R: "[~@8 d2@4 g1@19 ~ g1@4 c2@24 b1@19 ~ b1@4 a1@19 ~ a1@4 f2@24 c2@12]/6",
  S: "[~@8 c2@4 g1@24 f2@23 ~ f2@12]/3",
  T: "[e2@12 d2@18 ~@2 d2@4 g1@19 ~ g1@4 c2@19 ~ c2@4 b1@19 ~ b1@4 a1@19 ~ a1@4 f1@3 ~ f1@3 ~@5]/6",
  U: "[~@6 c2@9 ~ c2@2 g1@3 d2@3]/2", V: "[g2@4 d2@4 g1@4 c2@19 ~ c2@4 b1@20 b2@4 a1@12]/3",
  W: "[~@4 a2@4 a1@4 f1@19 ~ f1@4 c2@23 ~ b1@19 ~ b1@4 c2@19 ~ c2@4 b1@20 b2@4 a1@12]/6",
  X: "[~@4 a2@4 a1@4 f1@19 ~ f1@4 c2@23 ~ b1@19 ~ b1@4 c2@15 ~ c2@7 ~ c2@21 ~@15]/6",
})).s("gm_electric_bass_finger").gain(0.37)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@4 A@5 ~@7 B@7 ~@32 C D ~@36 E F ~@52>".pickRestart({
  A: "[~@6 b3 a3 g3@2 ~ g3 a3 b3 ~@4 b3 a3 g3@2 ~ g3 a3 b3 d4 ~@3, ~@12 g2@25 ~@23 g2@23 ~@37, ~@16 d3@21 ~@3 d3@16 ~@8 d3@20 ~@4 d3@20 ~@12, ~@5 g3@2 ~@7 d4@3 g3@2 ~@11]/5",
  B: "[~@2 g4 ~@11 g4 ~@5 g4 ~@5 g4 g4@12 ~@3, d4@4 d4 ~ b3 ~@7, ~ e4@12 e4@2 ~@10 e4@2 ~@15, ~@3 g4@11 ~ g4@5 ~ a4@6 ~@15]/7",
  C: "~@10 [f2,f3] [g2,g3]", D: "[a#2,a#3] [c3,c4] [a#2,a#3] [g2,g3] [d3,d4] [c3,c4] ~@6", E: "~@10 [g2,g3] [a2,a3]",
  F: "[c3,c4] [d3,d4] [c3,c4] [a2,a3] [e3,e4] [d3,d4] ~@6", // C D C A E D
})).s("gm_acoustic_guitar_steel").gain(0.37)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note("<~@18 A@2 B ~ C@2 ~@123>".pickRestart({
  A: "[~@7 e4@2 ~@3, ~ e2@2 ~, ~@4 b2@5 ~@3, ~@5 g3@4 ~@3]/2", B: "d4 ~", C: "[~ [d4,g4]@2 ~]/2",
})).s("gm_acoustic_guitar_steel").gain(0.21)

// other · brass section
const brass_section = note("<~@114 A B C ~ D@3 ~@10 E@6 F@7 G@2 ~>".pickRestart({
  A: "~@20 [g3,g4,g5]@2 [a3,a4,a5] ~", // G A
  B: "[c4,c5,c6]@2 [a3,a4,a5]@2 [c4,c5,c6]@2 [a3,a4,a5]@2 [c4,c5,c6]@2 [a3,a4,a5] ~ [d4,d5,d6]@12", // C A C A C A D
  C: "[e4,e5,e6]@2 [d#4,d#5,d#6] ~ [d4,d5,d6]@2 [e4,e5,e6]@2 [g4,g5,g6]@2 [g#4,g#5,g#6] ~ [a5,a6]!2 ~ e5 [c5,d5] ~ c4 ~@5, ~@3 a4 ~@2", // E D# D E G G# A Csus2
  D: "[~@8 [g3,g4]@2 [a3,a4]@2 [c4,c5]@24 [g4,g5,g6]@23 ~@13]/3", // G A C G
  E: "[~@8 [a4,a5,a6]@2 [g#4,g#5,g#6]@2 [g4,g5,g6]@23 ~ [c5,c6,c7]@24 [d5,d6,d7]@24 [e5,e6,e7]@20 [d5,d6,d7]@4 [c5,c6,c7]@36, ~@104 [c5,c6,c7] ~@39]/6", // A G# G C D E D C
  F: "[~@8 [a5,a6,a7]@4 [g5,g6,g7]@23 ~ [c5,c6,c7]@24 [d5,d6,d7]@24 [e5,e6,e7]@20 [d5,d6,d7]@4 [c5,c6,c7]@44 [a5,a6,a7]@4 [g6,g7]@12, ~@8 [g5,g6,g7] ~@95 [c5,c6,c7] ~@47 [g5,g6,g7] ~@15]/7", // A G C D E D C A …
  G: "[~@8 [g5,g6,g7]@2 [a5,a6,a7]@2 [c6,c7,c8]@29 ~@7]/2", // G A C
})).s("gm_brass_section").gain(0.3)

// other · brass section · soft notes · C F A
const brass_section_soft = note("<~@116 [~@2 [c4,c5,c6]@2 ~@10 g5 f5 b4 [f4,g4,a4] e4 ~@5] ~ [~@12 [a3,a4] ~@11] ~@28>")
  .s("gm_brass_section").gain(0.15)

// other · overdriven guitar
const overdriven_guitar = note("<~@120 A@7 B@4 C D@2 E@6 F G@3 H@3>".pickRestart({
  A: "[~@8 g4@4 e5@19 ~ e5@4 d5@16 e5@8 a4@14 g4@2 a4@2 c5@2 e5@4 c5 a5@17 ~@2 a5@4 g5@14 g4@2 a4@2 c5@2 e5@4 d5@16 ~@8 d4@2 ~@2 [g3,a3]@2 g4@2 ~ g4 e4 d4, ~@30 c5 ~@48 e4 ~@2 a4 ~, ~@53 d4 ~@2]/7", // Gsus2
  B: "[c5@12 b4@4 g5@11 ~ e5@7 d5 a5@18 ~@2 a5@4 g5@19 ~@5 e3@4 c4@2 g3@4 e4@2, ~@18 c5 ~@29]/4",
  C: "a3@2 g4 c4 a4 g#4 g4@5 g4", D: "[g5 g4 f#5 g4 f5 g4 e5 c5 ~@4 g5@6 d5@4 b4 g4, ~@16 g4@13 ~@19]/2",
  E: "[g5@10 ~@2 e5@9 d5@2 c5@13 a5@18 ~@2 a5@4 g5@9 ~@2 g3@2 a3@2 ~ c4@2 g3@2 a4@4 g4@23 ~ e5@4 g5@2 e5@4 ~ e5@4 g5@2 e5@4 ~ g5@2 ~@2 e5@2 b5@2 e5@2 ~ e5@2 ~, ~@118 g5@2 ~@20 a5@3 ~]/6",
  F: "~ c5 ~@3 d5 c5 ~ e5@2 [c5,d5] e5!2 ~@11, g5@2 d5@2 e5@2 ~ f5@2 ~@15, ~@3 [e5,f5]@2 ~@19", // Csus2 Fmaj7
  G: "[~@2 e5@7 d5 ~ c5 a5@18 ~ a5@5 g5@14 ~ c5@3 g4@2 g5@16, ~@25 g4 ~@10]/3",
  H: "[g5@4 f#5@4 f5@4 e5@2 c5@2 g4@12 c4@29 ~@15]/3",
})).s("gm_overdriven_guitar").gain(0.41)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  ~@24 A B C D E F G H I J K L M N O P Q R S T U@2 V W X Y Z AA AB AC R ~@23 AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ
  AR AS ~@53
>`.pickRestart({
  A: "~@16 a2 ~@3 a2@2 ~@2", B: "a2@3 ~@13 a2@2 ~@2 a2@2 ~@2", C: "a2@2 ~@2 a2 ~@11 b2 ~@3 b2@2 ~@2",
  D: "b2 ~@7 e2 ~ e2 ~", E: "e2@2 ~@14 a2 ~@3 a2@2 ~@2", F: "a2@2 ~@14 a2@2 ~@2 a2 ~@3",
  G: "a2@2 ~@2 a2 ~@11 b2 ~@3 b2 ~@3", H: "b2@2 ~@14 e2@2 ~@2 e2 ~@3", I: "e2@2 ~@14 d2@2 ~@2 d2 ~@3",
  J: "d2@2 ~@14 e2 ~@3 e2@2 ~@2", K: "e2@2 ~@14 f#2 ~@3 f#2 ~@3", L: "f#2@2 ~@2 f#2 ~@11 c#2 ~@3 c#2@2 ~@2",
  M: "c#2@2 ~@14 d2 ~@3 d2 ~@3", N: "d2@2 ~@14 e2 ~@3 e2 ~@3", O: "e2@2 ~@14 a2 ~@3 a2 ~@3",
  P: "a2@2 ~@6 g2@2 ~@2 f2@2 ~@2 f2 ~@3 f2 ~@3", Q: "f2@2 ~@2 f2 ~@11 a#2@2 ~@2 a#2@2 ~@2", R: "~@8 a#2 ~ a#2 ~",
  S: "~@8 c2 ~ c2 ~", T: "~@8 c2 ~@7 f2 ~@3 f2@2 ~@2", U: "~@16 a#2 ~@3 a#2@2 ~@2", V: "~@16 c2 ~@3 c2@2 ~@2",
  W: "~@8 f2 ~ f2 ~", X: "~@8 d#2 ~ d#2 ~", Y: "~@4 d#2 ~@11 f2 ~@3 f2@2 ~@2", Z: "~@16 g2 ~@3 g2 ~@3",
  AA: "~@4 g2 ~@11 d2 ~@3 d2@2 ~@2", AB: "~@16 d#2 ~@3 d#2@2 ~@2", AC: "~@4 d#2@2 ~@10 f2 ~@3 f2@2 ~@2",
  AD: "~@8 c3 ~ c3 ~", AE: "~@2 c3 ~@5 c3 ~ c3 ~", AF: "~@2 c3 ~@5 d3 ~ d3 ~",
  AG: "~@4 d3@2 ~@2 d3 ~@7 g2@2 ~@2 g2@2 ~@2", AH: "~@2 g2 ~@5 c3 ~ c3 ~", AI: "~@4 c3@2 ~@10 c3@2 ~@2 c3 ~@3",
  AJ: "~@4 c3@2 ~@10 d3 ~@3 d3@2 ~@2", AK: "~@2 d3 ~@5 g2 ~ g2 ~", AL: "~@4 g2@2 ~@10 f2 ~@3 f2@2 ~@2",
  AM: "f2@2 ~@14 g2 ~@3 g2@2 ~@2", AN: "g2@2 ~@2 g2 ~@11 a2 ~@3 a2 ~@3", AO: "a2@2 ~@14 e2 ~@3 e2 ~@3",
  AP: "e2@2 ~@6 e2@2 ~@6 f2 ~@3 f2 ~@3", AQ: "f2@2 ~@14 g2 ~@3 g2 ~@3", AR: "g2@2 ~@2 g2 ~@11 c3 ~@3 c3 ~@3",
  AS: "c3@2 ~@4 c3 ~@17",
})).s("gm_electric_guitar_muted").gain(0.29).pan(0.2)

// chords · drawbar organ
const drawbar_organ = note("<~@24 A@8 B@2 C@8 D@2 E@4 F@8 G ~@21 H@2 I@2 J@4 K@8 L ~@52>".pickRestart({
  A: "[~ [c#5,e5,a5]@4 [f#4,a4,b4,d5]@2 [g#4,b4,e5]@2 [c#5,e5,a5]@4 [f#4,a4,b4,d5]@2 [g#4,b4,e5]]/8", // A Bm7 E A Bm7 E
  B: "[~ [f#4,a4,d5]@2 [g#4,b4,e5]]/2", // D E
  C: "[~ [a4,c#5,f#5]@2 [g#4,b4,e5]@2 [f#4,a4,d5]@2 [e4,g#4,b4]@2 [e4,a4,c#5,e5]@2 [f4,a4,c5,f5]@2 [f4,a#4,d5]@3]/8", // F#m E D E A F A#
  D: "[~ [g4,a#4,d#5]@2 [a4,c5,f5]]/2", E: "[[g4,a#4,d#5] [f4,a#4,d5]@4 [g4,a#4,d#5]@2 [a4,c5,f5]]/4",
  F: "[~@12 [g4,a#4,d#5]@24 [a4,c5,f5]@24 [a#4,d5,g5]@24 [a4,c5,f5]@24 [g4,a#4,d#5]@24 d5@12 c5@12 [f4,a#4,d5]@19 ~ [g4,a#4,d#5]@4 [f4,a#4,d5]@8 f4@2 g4@2, ~@11 [f4,a4]@2 ~@3]/8", // D# F Gm F D# A# D# A# …
  G: "a#4@2 ~@2 a#4@2 g4@2 d5@2 c5 ~@13, ~ c5@2 ~@9", H: "[~ [g4,c5,e5]@3]/2",
  I: "[~@2 [g4,c5,e5] [a4,d5,f5]@6 [g4,b4,d5,g5]@3, ~@12 c5 ~@35]/2", // C Dm G
  J: "[~@2 [f4,a4,c5,f5] [g4,c5,e5]@12 [a4,d5,f5]@6 [b4,d5,g5]@3, ~@60 c5 ~@35]/4", // F C Dm G
  K: "[~@6 [a4,c5,f5]@12 [b4,d5,g5]@12 [c5,e5,a5]@12 [b4,d5,g5]@12 [a4,c5,f5]@12 e5@6 d5@6 [g4,c5,e5]@16 g4 a4, ~@11 [g4,b4]@2 ~@3]/8", // F G Am G F C G
  L: "c5@2 d5@2 c5@2 a4@2 e5@2 d5 ~@13",
})).s("gm_drawbar_organ").gain(0.06).pan(0.7)

// other · taiko drum
const taiko_drum = note("<~@8 A@3 ~ B@4 A@3 ~ B@4 ~@123>".pickRestart({
  A: "[~@12 g2@49 ~@11]/3", B: "[~@6 g2@31 ~@11]/4",
})).s("gm_taiko_drum").gain(0.3)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@18 A@3 ~@126>".pickRestart({
  A: "[~@20 g4@14 ~@2 f#4@13 ~@23, ~@20 [b3,d4]@29 ~@23, ~@34 a4@15 ~@23]/3", // Bm
})).s("gm_string_ensemble_2").gain(0.13).pan(0.2)

// other · distortion guitar
const distortion_guitar = note("<~@56 A@8 B@2 A@8 C@3 D@2 ~@15 E@8 F@2 E@8 G@6 H@8 I@12 J@8 ~>".pickRestart({
  A: "[~@12 [a#1,a#2]@24 [a1,a2]@24 [g1,g2]@24 [d#2,d#3]@24 [a#1,a#2]@24 [f1,f2]@24 [d#2,d#3]@23 ~ [d#2,d#3]@12]/8", // A# A G D# A# F D#
  B: "[[d2,d3] [c2,c3]@2 [f1,f2]]/2", C: "[[d2,d3]@12 [c2,c3]@24 [f1,f2]@23 ~ a#2@12]/3", D: "[~ a#2@2 a#2@6 ~@3]/2",
  E: "[~@12 [c2,c3]@24 [b1,b2]@24 [a1,a2]@24 [f2,f3]@24 [c2,c3]@24 [g1,g2]@24 [f2,f3]@23 ~ [f2,f3]@12]/8", // C B A F C G F
  F: "[[e2,e3] [d2,d3]@2 [g1,g2]]/2", // E D G
  G: "[[e2,e3]@12 [d2,d3]@24 [g1,g2]@23 ~ [c2,c3]@24 [b1,b2]@24 [a1,a2]@24 [f1,f2]@3 ~ [f1,f2]@3 ~@5]/6", // E D G C B A F
  H: "[~ [c2,c3]@2 [g1,g2]@2 [c2,c3]@2 [b1,b2]@2 [a1,a2]@2 [f1,f2]@2 [c2,c3]@2 [b1,b2]]/8", // C G C B A F C B
  I: "[~ [c2,c3]@2 [b1,b2]@2 [a1,a2]@2 [f1,f2]@2 [c2,c3]@2 [b1,b2]]/6", // C B A F C B
  J: "[~@12 [c2,c3]@24 [b1,b2]@24 [a1,a2]@24 [f1,f2]@24 [c2,c3]@24 [b1,b2]@23 ~ [c2,c3]@36]/8", // C B A F C B C
})).s("gm_distortion_guitar").gain(0.24).pan(0.7)

// chords · pad warm
const pad_warm = note("<A@8 ~@9 B@3 ~@127>".pickRestart({
  A: "[~ [d4,g4,d5]@15]/8", B: "[[d4,g4]@55 ~@17]/3",
})).s("gm_pad_warm").gain(0.22).pan(0.9)

// other · pad new age
const pad_new_age = note("<~@4 A B C D E ~@7 F ~ G ~ G ~@19 H I ~@2 H I ~@101>".pickRestart({
  A: "~@16 d5 ~@3 g5 ~@3", B: "b5 ~@3 a5 ~@3 g5 ~@7 d5 ~@3 g5 ~@3", C: "a5 ~@3 b5 ~@3 d6 ~@7 d5 ~@3 g5 ~@3",
  D: "b5@2 ~@2 a5 ~@3 g5 ~@7 d5 ~@3 g5 ~@3", E: "a5 ~@3 b5 ~@3 d6 ~@15", F: "d5@2 ~@2 e5@2 ~@2 g5 ~@3 g5@2 ~@10",
  G: "~@2 e5 ~ g5 ~ g5 ~@5", H: "~@5 f6", I: "~@8 f6@5 ~@7 f6@4",
})).s("gm_pad_new_age").gain(0.17)

// other · pad new age · soft notes
const pad_new_age_soft = note("<~@18 A ~ A ~@19 B C ~@2 B C ~@101>".pickRestart({
  A: "d5 ~@11", B: "~@8 f5@3 ~", C: "~@4 f5@5 ~@7 f5@5 ~@3",
})).s("gm_pad_new_age").gain(0.08)

// drums · kick
const kick = s("bd").struct(`<
  ~@24 A B A B A B A B A B A B A B A B A@2 B A@3 B A B A@7 C A B A B A B A@2 B A@2 B A B A B A@2 B D E A@2 B A B A B A B
  A@3 B A@3 C A B A B A B A@2 B A@2 B A B A B A@2 B A@2 B F A@4 B ~@24
>`.pickRestart({
  A: "~ x", B: "~@2 x!2 ~@2", C: "~ x!2 ~", D: "~@3 x ~ x", E: "~ x ~ x ~@2", F: "~@6 x ~ x ~@2 x",
})).gain(0.45)

// drums · rim
const rim = s("rim").struct("<~@25 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@107>".pickRestart({
  A: "x",
})).gain(0.45)

// drums · snare
const snare = s("sd").struct("<~@40 A@16 B A@21 ~ A@15 B A@23 ~ A@4 ~@24>".pickRestart({
  A: "x", B: "x ~@3 x!2 ~@6",
})).gain(0.45)

// … 97 more lines

More by Ramazzotti