Strudelify

Aline (I Want to Be Free)

Adamo

KeyG majorTempo89 bpm
0:00/0:00
// Aline (I Want to Be Free) — Adamo
// 89 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 69 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(89/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 · piano
const piano = note("<~ A@6 B@6 C@5 D@7 E@6 F@3 G@3 H@6 I@5 J@4 K@6 L@6 M@5>".pickRestart({
  A: "[~@69 [a2,a3]@7 ~@66 d#4@5 ~@60 g4@13 ~@29 [d3,f#4]@6 [d3,d4]@2 ~@31, ~@3 g2@59 ~ [g2,g3]@13 b2@59 f#4@12 c3@73 d3@23 a4@14 ~@31, ~@3 g3@30 b3@6 g3@24 ~@30 b4@36 b4@18 c4@36 c4@37 d4@35 ~@33, ~@9 b3@19 d4@23 ~@25 b3@29 d#4@6 b3@37 ~@6 e4@18 g4@23 g4@12 ~@18 f#4@24 ~@39, ~@15 d4@7 g4@35 g4@18 ~@7 d#4@17 f#4@18 d#4@19 b2@13 ~@10 g4@6 c5@36 c5@19 ~@11 a4@6 d5@20 ~@31]/6", // A D G
  B: "[~@69 a3@6 ~@30 d#4@7 ~@29 d#4@6 ~@25 g4@11 ~@25 g4@12 a4@11 d4@6 ~@12 d4@6 [d3,a3,d4]@4 ~@29, ~@3 g2@59 ~ [g2,g3]@12 ~@18 b4@20 ~@16 b4@18 ~@18 c5@19 ~@17 c5@19 ~@17 d4@12 ~@39, ~@3 g3@36 ~ g3@23 ~@5 a2@6 ~@2 [b2,b3]@36 [b2,b3]@36 ~@140, ~@10 b3@23 b3@12 ~@36 d#4@24 ~@13 d#4@23 ~@6 [c3,c4]@36 [c3,c4]@37 d3@17 ~@6 [d3,e4]@13 ~@32, ~@15 d4@6 g4@35 ~ g4@18 ~@12 f#4@12 f#4@13 ~@47 g4@12 ~@24 g4@13 ~@12 d4@5 ~@12 f#4@18 ~@33]/6", // D5 G B C Dsus2
  C: "[~@69 [a2,a3]@6 ~@66 d#4@6 ~@60 g4@12 ~ [d4,f#4]@6 ~@14, ~@3 g2@60 [g2,g3]@12 ~ b2@71 c3@72 ~ d3@20, ~@3 g3@36 ~ g3@23 ~@24 f#4@6 b4@31 f#4@5 b4@18 ~@18 c5@36 c5@18 ~@21, ~@10 b3@23 b3@12 ~@6 d4@23 ~@2 b3@29 d#4@7 b3@35 c4@36 c4@36 ~@21, ~@21 g4@36 g4@18 ~@6 d#4@18 f#4@19 d#4@17 f#4@12 ~@12 g4@12 ~ g4@23 g4@12 ~@33]/5", // A D G
  D: "[~@15 e5@6 ~@24 e4@6 ~@19 g3@5 ~@6 [a2,a3]@6 ~@13 f#3@5 ~@6 b3@12 ~ c4@6 ~@23 g3@6 d4@7 ~@24 d4@5 g3@7 ~@23 [a2,a3]@6 b3@12 b3@6 b3@6 ~@7 b2@6 e4@17 g3@6 [c3,g3]@6 ~ [g3,e4]@6 [d3,a3,d4,f#4]@2 ~@30, ~@15 a5@24 d4@12 g2@23 ~@2 [g2,g3,b3]@12 [b2,d#4]@36 c3@36 ~@17 e4 f#4@17 b3@36 f#3@7 ~@18 b3@12 c4@2 ~@21 c4@13 ~@32, ~@15 d3@18 [d3,a4]@18 g3@19 ~@17 b3@7 b3@17 ~@19 c4@18 c4@11 [f#4,a4]@18 a4@18 g2@23 ~@2 [g2,g3]@12 ~@36 c3@23 ~@6 c3@7 ~@32, ~@21 e5@31 ~@11 d4@25 f#3@12 ~@24 g3@12 ~@6 g3@11 ~@6 d3@12 ~ d3@23 d4@18 d4@18 ~@18 d#4@19 ~@17 e4@12 ~@39, ~@28 d5@24 ~@5 b3@13 g4@18 ~@17 f#4@18 ~ e4@18 e4@18 ~@6 d4@18 e4@12 ~@12 g3@11 ~@12 b2@30 f#3@7 g3@11 ~@57]/7", // A C5 C D G B D5 F#m …
  E: "[~@64 b3@5 ~ b3@6 b3@6 ~@59 d#4@6 ~@60 [c3,c4,g4]@13 [d4,a4]@5 ~@12 [e4,a4]@6 ~@6 d4@6 [d3,a3,d4]@4 ~@29, ~@3 g2@60 g2@13 ~@6 b3@17 f#4@6 d#4@7 b3@35 c4@36 ~ c4@23 ~@24 d4@18 ~@39, ~@3 g3@36 g3@24 ~ g3@12 f#3@71 ~@18 c5@36 ~ c5@18 ~@24 a4@12 ~@32, ~@9 b3@24 b3@12 ~@24 a2@7 b2@54 b4@17 ~@12 g4@12 ~ g4@23 g4@12 ~@36 e4@13 ~@32, ~@21 g4@36 g4@19 d#4@12 d#4@5 b4@24 d#4@18 [b2,f#4]@12 c3@60 ~@13 d3@17 [d3,f#4]@19 ~@32]/6", // C5 D5 A5 D5 B5 D
  F: "[~@3 g3 ~@65 g4@6 ~@42 d#4@7 ~ d#4@4 d#4@6 [b2,d#4,f#4]@6 d#4@3, ~@4 g2@47 g2@7 [b4,g5]@18 ~@5 d#4@23 ~ d#4@12 ~@27, ~@4 g3@35 g3@37 ~@11 f#4@6 b4@36 b4@15, ~@9 b3@24 b3@12 b3@30 ~ b3@35 b3@33, ~@16 d4@5 g4@43 [g2,d5]@12 b2@47 ~ b2@11 ~@9]/3", // B Em G5
  G: "[~@69 e4@7 ~@17 d3@6 ~@6 [d3,f#4]@6 ~@18 d3@7 ~@5 a3@3, ~@3 c3@73 d3@17 ~@6 d3@6 ~@6 [d3,d4]@18 [a3,d4]@15, ~@3 c4@36 c4@37 d4@35 ~@6 [e4,a4]@7 e4@20, ~@10 e4@18 g4@24 g4@12 g4@12 ~@11 a4@12 ~ a4@12 ~@6 f#4@26, ~@16 g4@5 c5@36 ~ c5@18 ~@17 d5@18 ~@25 [d3,e3]@8]/3", // D D5 A5 Dsus2
  H: "[~@4 [g2,g3]@23 ~@13 [f#3,d#4]@17 ~@13 d#4@6 [e4,g4]@18 ~ g4@5 ~@6 c4@5 ~@31 e3@6 [g2,g3,b3]@24 ~@6 a3@6 ~@29 b3@7 e4@15 ~@15 e4@5 ~ a4@6 ~@26, ~@4 d4@35 b2@18 b4@18 ~@20 e4@16 f#4@26 d3@12 ~@23 [g2,g3,b3]@13 ~@70 [d3,f#4]@7 ~@26, ~@4 b3@29 b3@42 ~ c4@30 ~@5 d3@13 d4@3 d3@2 [a3,d4]@19 ~@29 a2@7 [b2,f#3]@36 [c3,g3,c4]@36 ~@32, ~@28 [g2,g3]@13 ~@16 d#4@12 ~@7 c3@13 ~@12 c3@10 e4@6 e4@31 d4@37 ~@22 d#4@12 ~@19 c5@18 ~@32, ~@64 f#4@12 ~@18 d4@5 ~ d4@12 a4@36 ~@36 b3@29 ~@31 g4@12 ~@32]/6", // G D#m Em G D D5 B5 C5 …
  I: "[~@51 d4@11 ~@2 b3@5 [b3,d4]@5 ~@44 f#4@5 ~@18 d#4@6 ~@66 c4@7 d4 ~@11 a3@6 d3@2, ~@4 g2@54 ~@4 [g2,g3]@8 ~@6 [b2,b3]@38 ~@3 b4@6 ~ b4@23 c4@36 c4@30 ~@7 [d3,f#4]@20, ~@4 g3@29 b3@6 g3@22 ~@33 b4@23 f4@32 ~@5 e4@18 g4@24 g4@25 ~@5 d4@14, ~@10 b3@18 d4@18 b3@15 ~@2 [a#3,d4]@7 ~@17 f#4@12 ~@17 e4@20 b2@13 ~@10 g4@7 c5@35 c5@19 ~@20, ~@16 d4@6 g4@41 ~@19 d#4@23 d#4@19 f#4@6 d#4@5 [b3,f#4]@13 c3@59 c3@14 ~@19]/5", // Bm G B D A# B5
  J: "[~@3 [d3,f#3,a3,d4]@6 [d3,g3,b3,d4]@5 ~ [d3,d4]@17 ~@14 d4@6 ~@24 [g2,g3,b3]@12 b3@6 ~@5 d#4@6 ~@13 d#4@6 ~@24 [d4,g4]@6 g4@5 ~ a4@6 ~@23 a3@3, ~@15 [f#3,a3]@25 [e4,a4]@12 ~@12 d4@24 d#4@11 ~@6 d#4@12 ~@13 e4@29 e4@2 ~@5 e4@26, ~@32 d3@20 [g2,g3]@24 ~@12 [b2,f#3]@36 c3@24 c3@12 d3@15 d3@9 [d3,f#3]@8, ~@34 [d#4,f4]@18 ~@6 b3@18 ~@18 b3@11 [b3,b4]@19 c4@18 c5@19 ~@11 d4@6 [a3,d4]@14, ~@34 [e4,a4] f#4@17 ~@17 g4@19 ~@24 f#4@12 ~@11 g4@12 ~@7 d4@4 ~@2 f#4@32]/4", // D G D G G5 F#m A5 G …
  K: "[~@28 g3@6 g3@6 b3@6 ~@6 d#4@6 ~@11 d#4@7 ~@29 c3@7 ~@29 e4@6 g3 ~@24 [g2,g3,b3]@12 b3@6 ~@5 d#4@6 ~@13 d#4@6 ~@24 [d4,g4]@6 g4@5 ~ a4@6 ~@23 a3@3, ~@4 [g2,g3]@24 [g2,b3]@12 [b2,f#3]@36 c3@29 ~@7 d3@23 d4@12 g2@18 g4@19 ~@18 b4@18 ~@11 g4@12 ~@7 d4@4 ~@2 f#4@32, ~@10 b3@17 ~@19 b3@30 c4@24 c4@12 ~@3 d4@3 f#4@6 [g4,b4]@24 ~@12 d4@24 d#4@11 ~@7 d#4@6 f#4@12 ~@6 e4@29 e4@2 ~@5 e4@26, ~@16 d4@24 d#4@11 ~@7 d#4@6 f#4@12 ~@12 g4@24 ~@5 f4@31 g3@24 ~@12 [b2,f#3]@36 c3@24 c3@12 d3@15 d3@9 [d3,f#3]@8, ~@22 g4@18 ~@18 b4@19 ~@16 c5@18 ~@6 a4@7 d4@5 [f#4,a4]@19 ~@6 b3@18 ~@18 b3@11 b3@19 c4@18 c5@19 ~@11 d4@6 [a3,d4]@14]/6", // G G5 G B5 G B5 D F#m …
  L: "[~@28 g3@6 g3@6 b3@6 ~@6 d#4@6 ~@11 d#4@7 ~@29 c3@7 ~@29 e4@6 ~@31 [a2,a3]@6 ~@30 d#4@6 ~@30 e4@6 ~@6 [e4,a4]@6 ~@14 a4@4 d4@2, ~@4 [g2,g3]@24 [g2,b3]@13 ~@17 d#4@6 f#4@12 c4@24 c4@12 ~@3 d4@3 f#4@6 [g4,b4]@24 ~@18 g4@18 ~@6 d#4@24 ~@6 [c3,c4]@36 d3@15 ~@3 e5 a5@13, ~@10 b3@17 ~@13 [b2,f#3]@36 c3@29 ~@7 d3@23 d4@12 g2@25 [g2,g3]@12 [b2,b3]@37 ~@17 c5@18 ~@12 a4@9 e5@11, ~@16 d4@24 d#4@11 ~@7 b4@19 ~@11 g4@24 ~@5 f4@31 g3@24 ~@30 b4@19 ~@11 g4@12 g4@12 ~@6 f#4@26, ~@22 g4@18 ~@7 b3@30 ~@17 c5@18 ~@5 a4@7 d4@5 [f#4,a4]@19 ~@6 b3@30 ~@12 f#4@12 f#4@13 ~@5 e4@24 ~@18 e4@20]/6", // A A5 G C B5 G B F#m
  M: "[~@34 g3@6 d#4@2 ~@9 d#4@6 ~@13 d#4@6 ~@6 d4@6 d4@6 [c3,d4,e4,g4]@9 ~@2 c3@7 [d4,a4]@6 [d2,d3,d4,d5]@6 [d2,d3,d4,d5]@6 ~@12 [f#2,f#3,f#4,f#5]@6 [g2,g3,g4,g5]@71 ~@21, ~@3 g3@25 d4@12 ~@6 f#3@30 c4@37 ~@23 [e2,e3,e4,e5]@13 ~@91, ~@4 g2@37 ~@17 d#4@6 f#4@12 ~@6 [e4,g4]@12 ~@146, ~@5 b3@15 [b2,b3]@18 c3@9 ~@18 [d2,d3,d4,d5]@9 ~@46, ~@16 d4@6 g4@19 ~@17 b4@18 ~@164]/5", // C D5 D F# G E Em B …
})).s("gm_piano").gain(0.36)

// chords · piano · soft notes
const piano_soft = note(`<
  ~ A@2 B C@2 ~ D@2 E@4 F@2 ~ G@4 H ~ I@2 ~ J@2 B K@2 ~ L@2 M N@4 O@2 ~ P@2 ~ Q R@3 S ~@2 T@2 U@2 ~@2 T@2 U@2 V ~ W@2 ~
  X ~@2
>`.pickRestart({
  A: "[~@17 d4@8 ~@4 f#4@3, ~@46 b3@29 ~@21]/2", B: "~@28 f#4@11 ~@9", C: "[~@33 e4@13 e4@23 e4@7 ~@20]/2",
  D: "[~@51 d4@23 ~@22, ~@28 d4@23 ~@45, ~@46 b3@29 ~@21]/2",
  E: "[~@28 f#4@11 f#4@13 ~@5 e4@24 ~ e4@7 ~@5 e4@24 e4@6 f#4@5 ~ f#4@6 f#4@5 d3@5 ~@46, ~@129 d4@6 ~ a4@24 ~@32]/4",
  F: "[~@15 d4@12 ~@19 b3@29 ~@21, ~@28 d4@23 ~@45]/2",
  G: "[~@9 e4@24 e4@12 ~ e4@23 e4@7 a4@5 ~ f#4@5 [d4,f#4,a4]@6 [d4,f#4,a4]@6 [d4,a4]@5 ~@8 f#5@36 ~@19 b3@5 ~@20, ~@27 [d4,a4]@2 ~@4 f#4@16 ~@15, ~@104 d4@31 ~@57, ~@104 a4@25 ~@63]/4", // D D5
  H: "~@10 f#3@12 f#3@6 ~@12 g3@5 ~@3", I: "[~@4 c#4 ~@5 g3@5 ~@31 f#3@23 ~@18 g3@6 ~@3, ~@41 c4@7]/2",
  J: "[~@4 d4@3 ~@6 d4@6 ~@5, ~@7 d4@6 ~@11, ~@15 b3@6 ~@11]/2",
  K: "[~@10 e4@23 e4@13 e4@24 e4@6 ~@5 [d4,a4]@7 a4@5 ~@3, ~@76 f#4@17 ~@3]/2", L: "[~@18 b4 ~@13, ~@7 d4@12 ~@5]/2",
  M: "~ f#4@12 ~@3", N: "[~@34 e4@12 e4@23 ~@12 f#4@24 ~@19 a4@24 ~@44]/4", O: "[~@41 c3@11 g4@12 ~@32]/2",
  P: "[~@43 e4@15 ~@5 e4 ~@32, ~@31 d4@4 ~@13]/2", Q: "~@10 g2@3 b3@3 ~@32",
  R: "[~@18 b2@6 b2@15 ~ c#4@13 ~@29 e4@12 e4@30 ~@20, ~@3 f#4@19 ~@122, ~@5 b3@8 ~@35]/3", S: "~ f#3@2 ~@29 d4@13 ~@3",
  T: "[c4@7 d4 ~@3 a4@15 ~@22]/2", U: "[~@17 e4@15 ~@16]/2", V: "~@16 d4@23 ~@9",
  W: "[~@49 c4@4 ~@43, ~@31 d3@22 ~@43, ~@40 d5@13 ~@43]/2", X: "~@3 e4 ~@8, ~@5 d4@11 ~@32",
})).s("gm_piano").gain(0.18)

// bass · acoustic bass
const bass = note("<~ A@6 B@6 C@8 D@3 E F@6 G@8 H@3 I J@8 K@3 L M@2 N@3 O P@5 Q@3>".pickRestart({
  A: "[~@3 g1@30 d1@6 g1@23 ~ g1@6 a1@6 ~ b1@29 f#1@6 b1@29 ~ b1@6 c2@30 g1@6 c2@23 ~ c2@5 ~ c2@5 ~@2 d2@5 d2@5 ~ d2@5 ~ d2@5 ~ d2@6 a1@6 d1@5 ~@28]/6",
  B: "[~@3 g1@30 d1@6 g1@23 ~ g1@5 ~ a1@6 ~ b1@29 f#1@6 b1@23 ~ b1@6 b1@5 ~ c2@29 ~ g1@6 c2@23 ~ c2@5 ~ c2@5 ~@2 d2@5 d2@5 ~ d2@5 ~ d2@5 ~ d2@6 a1@6 d1@6 ~@27]/6",
  C: "[~@3 g1@29 ~ d1@6 g1@23 ~ g1@5 ~ a1@6 ~ b1@29 f#1@6 b1@23 ~ b1@5 ~ b1@5 ~ c2@30 g1@6 c2@24 c2@4 ~@2 c2@5 ~@2 d2@5 d2@5 ~ d2@5 ~ d2@5 ~ d2@6 a1@5 ~ d1@5 ~ d1@5 ~@2 d1@4 ~ d1@5 ~ e1@5 ~ f#1@5 ~ g1@23 ~@2 a1@5 a#1@7 b1@29 f#1@7 c2@20]/8",
  D: "[~@3 c2@6 c#2@5 ~@2 d2@17 ~ d2@5 a1@6 d1@5 ~@2 g1@23 ~ a1@6 a#1@6 b1@28 ~ f#1@7 c2@20]/3",
  E: "~@4 c2@6 c#2@6 d2@7 ~@25",
  F: "[~@4 g1@30 d1@6 g1@24 g1@5 ~ a1@6 b1@29 ~ f#1@6 b1@22 ~@2 b1@5 ~ b1@5 ~ c2@30 g1@6 c2@23 ~ c2@5 ~ c2@5 ~ d2@5 ~ d2@5 ~ d2@5 ~ d2@5 ~ d2@5 ~ a1@6 d1@5 ~@27]/6",
  G: "[~@4 g1@29 ~ d1@6 g1@22 ~@2 g1@5 ~ a1@6 b1@29 ~ f#1@6 b1@22 ~@2 b1@5 ~ b1@6 c2@30 g1@6 c2@24 c2@5 ~ c2@5 ~ d2@5 ~ d2@5 ~ d2@5 ~ d2@4 ~@2 d2@6 a1@5 ~ d1@5 ~ d1@5 ~ d1@4 ~@2 d1@6 e1@6 f#1@6 g1@23 ~ a1@6 a#1@6 b1@29 ~ f#1@6 c2@20]/8",
  H: "[~@4 c2@5 ~ c#2@6 d2@17 ~ d2@6 a1@6 d1@6 g1@22 ~@2 a1@6 a#1@6 b1@29 ~ f#1@6 c2@20]/3",
  I: "~@4 c2@5 ~ c#2@6 d2@8 ~@24",
  J: "[~@4 g1@29 ~ d1@6 g1@23 ~ g1@5 ~ a1@6 b1@29 ~ f#1@6 b1@23 ~ b1@5 ~ b1@6 c2@29 ~ g1@6 c2@23 ~ c2@5 ~ c2@5 ~ d2@4 ~@2 d2@5 ~ d2@5 ~ d2@5 ~ d2@5 ~ d2@3 ~@3 e2@5 ~ d2@6 a1@6 d1@6 e1@5 ~ f#1@5 ~ g1@23 ~ a1@6 a#1@6 b1@23 ~ f#1@6 b1@6 c2@20, ~@256 d2@3 ~@125]/8",
  K: "[~@4 c2@5 ~ c#2@6 d2@6 e2@6 d2@6 a1@6 f#1@6 d1@6 g1@23 ~ a1@6 a#1@6 b1@24 f#1@6 d1@5 ~ c2@20]/3",
  L: "~@4 c2@5 ~ c#2@5 ~ d2@5 ~ d2@4 ~@2 d2@6 e2@5 ~ d2@6 b1@2, ~@34 d#2 ~@13",
  M: "[~ a1@3 g1@23 ~ a1@5 ~ a#1@6 b1@23 ~ f#1@6 b1@6 c2@20, ~ g#1 ~@94]/2",
  N: "[~@4 c2@5 ~ c#2@6 d2@5 ~ e2@6 d2@6 a1@6 f#1@6 d1@6 g1@23 ~ a1@6 a#1@6 b1@24 f#1@6 d1@5 ~ c2@20]/3",
  O: "~@4 c2@5 ~ c#2@5 ~ d2@6 d2@4 ~@2 d2@6 e2@6 d2@6 b1@2, ~@34 d#2 ~@13",
  P: "[~ a1@3 g1@6 g2@6 d2@6 b1@5 ~ a1@6 a#1@6 b1@4 ~@2 b1@5 ~ b1@5 ~ b1@5 ~ f#1@6 b1@6 c2@17 ~ c2@4 ~@2 c2@5 ~ c#2@5 ~ d2@11 ~ d2@6 e2@5 ~ d2@5 ~@4 a1@3 g1@12 d1@6 g1@5 ~ a1@6 a#1@6 b1@24 f#1@6 b1@6 c2@20, ~ g#1 ~@104 d2@2 ~@22 d#2 ~@11 b1@5 ~@93]/5",
  Q: "[~@4 c2@5 ~ c#2@5 ~ d2@5 ~ d1@4 ~@2 d1@6 d1@5 ~ e1@5 ~ f#1@6 g1@71 ~@21]/3",
})).s("gm_acoustic_bass").gain(0.56)

// other · string ensemble 2
const string_ensemble_2 = note("<~ A@6 ~@12 B@3 C@3 ~@12 D@6 ~@6 E@12 F@8>".pickRestart({
  A: "[~@3 b4@53 ~ b4@5 ~ a4@6 g4@6 ~ f#4@11 d#4@41 ~ b3@6 b4@6 a4@6 g4@53 ~ g4@6 f#4@6 g4@5 ~@2 a4@38 ~@30]/6",
  B: "[~@2 d4@18 d#4@17 ~ e4@18 f#4@16]/3", C: "[~@4 d4@36 d#4@36 e4@36 d4@5 ~@27]/3",
  D: "[~@4 d4@36 d#4@34 ~@2 e4@36 f#4@36 d4@36 d#4@36 e4@35 ~ d4@4 ~@28]/6",
  E: "[~@4 d4@36 d#4@35 ~ e4@36 f#4@36 d4@36 d#4@36 e4@35 ~ d4@32]/6",
  F: "[~@4 d4@36 d#4@35 ~ e4@36 f#4@36 d4@36 d#4@36 e4@35 ~ d4@12 d4@12 e4@6 f#4@6 g4@72 ~@20]/8",
})).s("gm_string_ensemble_2").gain(0.19)

// chords · string ensemble 1
const string_ensemble_1 = note("<~ A@6 ~@12 B@6 ~@12 C@6 ~@6 D@3 E@6 F@6 G@5>".pickRestart({
  A: "[~@3 [d5,g5,b5]@73 [b4,c#5,d#5,f#5]@71 [c5,d5,e5,g5]@72 ~ [d5,e5,f#5,a5]@40 ~@28]/6", // G B C D
  B: "[~@2 [d5,g5,b5]@18 [b4,c#5,d#5,f#5]@18 [c5,d5,e5,g5]@18 [d5,e5,f#5,a5]@18 [d5,g5,b5]@18 [b4,c#5,d#5,f#5]@18 [c5,d5,e5,g5]@18 [d5,e5,f#5,a5]@3 ~@13]/6", // G B C D G B C D
  C: "[~@2 [d5,g5,b5]@18 [b4,c#5,d#5,f#5]@17 ~ [c5,d5,e5,g5]@18 [d5,e5,f#5,a5]@18 [d5,g5,b5]@18 [b4,c#5,d#5,f#5]@18 [c5,d5,e5,g5]@18 [d5,e5,f#5,a5]@3 ~@13]/6", // G B C D G B C D
  D: "[~@4 [d5,g5,b5]@36 [b4,c#5,d#5,f#5]@33 ~@3 [c5,d5,e5,g5]@36 [d5,e5,f#5,a5]@32]/3", // G B C D
  E: "[~@4 [d5,g5,b5]@35 ~ [b4,c#5,d#5,f#5]@36 [c5,d5,e5,g5]@35 ~ [d5,e5,f#5,a5]@36 [d5,g5,b5]@36 [b4,c#5,d#5,f#5]@33 ~@3 [c5,d5,e5,g5]@36 [d5,e5,f#5,a5]@32]/6", // G B C D G B C D
  F: "[~@4 [d5,g5,b5]@36 [b4,c#5,d#5,f#5]@36 [c5,d5,e5,g5]@35 ~ [d5,e5,f#5,a5]@36 [d5,g5,b5]@34 ~@2 [b4,c#5,d#5,f#5]@35 ~ [c5,d5,e5,g5]@36 [d5,e5,f#5,a5]@32]/6", // G B C D G B C D
  G: "[~@4 [d5,g5,b5]@35 ~ [b4,c#5,d#5,f#5]@36 [c5,d5,e5,g5]@35 ~ [d5,e5,f#5,a5]@36 [d5,g5,a5,d6]@72 ~@20]/5", // G B C D Dsus4
})).s("gm_string_ensemble_1").gain(0.22)

// chords · pad choir
const pad_choir = note("<~@14 A@7 ~@5 B@6 C@7 ~@5 D@3 E@4 ~@18>".pickRestart({
  A: "[~@3 [d3,g3,b3]@70 ~@3 [f#3,b3,d#4]@70 ~ [g3,c4,e4]@69 ~@4 [a3,d4,f#4]@73 ~@43]/7", // G B C D
  B: "[~@4 [d3,g3,b3]@71 ~ [f#3,b3,d#4]@70 ~@2 [g3,c4,e4]@71 ~ [a3,d4,f#4]@39 ~@29]/6", // G B C D
  C: "[~@4 [d3,g3,b3]@69 ~@3 [f#3,b3,d#4]@70 ~@2 [g3,c4,e4]@71 ~ [a3,d4,f#4]@71 ~@45]/7", // G B C D
  D: "[~@2 [d3,g3,b3]@35 ~ [f#3,b3,d#4]@34]/3", E: "[~@4 [g3,c4,e4]@71 ~ [a3,d4,f#4]@69 ~@47]/4",
})).s("gm_pad_choir").gain(0.17)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B C A B D A B C A B D A B C A B C E B F G B H I B H I B J I B H I B H I B H I B H I B H I B H I B H I B H I B H I
  B H I B H I B H K ~
>`.pickRestart({
  A: "~ x ~@9 x ~ x ~@2", B: "~@7 x ~@4", C: "~@3 x ~ x ~@10", D: "~@5 x ~@10", E: "~@3 x ~@29 x ~@6 x ~@7",
  F: "~@9 x ~@6 x ~@31", G: "~@4 x ~@28 x ~@6 x ~@7", H: "~@5 x ~@2 x ~@15", I: "~@2 x ~@14 x ~@2 x ~@3", J: "~ x ~",
  K: "~ x ~@10",
})).gain(0.57)

// drums · snare
const snare = s("sd").struct(`<
  ~ A B C A B D A B C A B D A B C A B E A B F G H ~ G H F G H I G H F G H J G H F G H ~ G H F G H K G H F G H K G H F G
  H K G H F G H L M ~
>`.pickRestart({
  A: "~@7 x ~@8", B: "~@3 x ~@11 x", C: "~@11 x ~@4", D: "~ x ~ x ~ x ~@10", E: "~@11 x ~ x!2 ~", F: "~@17 x ~@6",
  G: "~@11 x ~@12", H: "~@5 x ~@17 x", I: "~@2 x ~@2 x ~@2 x ~@15", J: "~@22 x ~@2 x ~@5 x ~@8 x ~@2 x ~@4",
  K: "~@34 x ~@2 x ~@10", L: "~@11 x ~@2 x ~@2 x ~@2 x ~@2 x", M: "~ x ~@46",
})).gain(0.57)

// drums · hihat
const hihat = s("hh").struct(`<
  A B@5 C B@5 C B@6 D E F G H I J K@4 I K@7 L M K L I K@7 L M K L M K L M K L M K L M K L M N ~
>`.pickRestart({
  A: "~@11 x ~@4", B: "~@3 x ~@5 x ~@5 x ~@5 x ~@6 x ~@4 x ~@5 x ~@5 x ~@2", C: "~ x ~ x ~ x ~@10",
  D: "~@3 x ~@5 x ~@5 x ~@5 x ~@6 x ~@4 x ~@6 x ~@4 x ~@2", E: "~@3 x ~@5 x ~@5 x ~@12 x ~@4 x ~@5 x ~@5 x ~@2",
  F: "~@3 x ~@5 x ~@6 x ~@4 x ~@6 x ~@4 x ~@5 x ~@8", G: "~@4 x ~@4 x ~@5 x ~@5 x ~@6 x ~@4 x ~@6 x ~@4 x ~@2",
  H: "~@3 x ~@6 x ~@5 x ~@11 x ~@4 x ~@5 x ~@6 x ~", I: "~@2 x ~@2 x ~@2 x ~@15",
  J: "~@4 x ~@4 x ~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@5 x ~", K: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
  L: "~@2 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@2 x", M: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@3", N: "~ x ~@10",
})).gain(0.5)

// drums · low tom
const low_tom = s("lt").struct("<~ A ~@17 A ~@16 B ~@12 C ~ D ~@2 D ~@2 D ~@2 D ~@2 D C ~@4>".pickRestart({
  A: "x", B: "~@17 x ~@6", C: "~ x ~@46", D: "~@23 x",
})).gain(0.57)

// drums · mid tom
const mid_tom = s("mt").struct("<A ~@17 B ~@17 C D ~@10 E ~@2 F ~@2 F ~@2 F ~@2 F ~@2 G ~@5>".pickRestart({
  A: "~@13 x!3", B: "~@15 x", C: "~@23 x", D: "~ x ~@46", E: "~@40 x ~@2 x ~@2 x ~", F: "~@5 x",
  G: "~@22 x ~@2 x ~@8 x ~@2 x ~@10",
})).gain(0.5)

// drums · open hat
const open_hat = s("oh").struct("<~@20 A B ~ A ~@14 C D ~ C ~@8 C D ~ C D ~ C D ~ C D ~ C D ~ C D ~@2>".pickRestart({
  A: "~@7 x ~@8", B: "~@15 x", C: "~@11 x ~@12", D: "~@23 x",
})).gain(0.57)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@5 A ~@5 A ~@5 A ~@2 B ~@2 A ~@5 B ~@5 B ~@2 B ~@2 B ~@5 B ~@2 B ~ C B ~@2 B ~ C B ~@2 B ~ C B ~
>`.pickRestart({
  A: "~ x ~@14", B: "~ x ~@10", C: "~ x ~",
})).gain(0.5)

// drums · ride bell
const ride_bell = s("rd").struct(`<
  ~ A B C D B E ~@12 F G H F B I ~@12 J K L J K M ~@6 N O P Q R S N O P Q R S N K L J K T ~@2
>`.pickRestart({
  A: "~@9 x ~@11 x ~@6 x ~@10 x ~@5 x ~@2", B: "~@9 x ~@18 x ~@4 x ~@11 x ~@2", C: "~ x ~@3 x ~@5 x ~ x ~@2",
  D: "~@3 x ~@5 x ~@11 x ~@6 x ~@10 x ~@5 x ~@2", E: "~@3 x ~ x ~@10", F: "~@9 x ~@11 x ~@6 x ~@11 x ~@4 x ~@2",
  G: "~@9 x ~@5 x ~@12 x ~@4 x ~@11 x ~@2", H: "~@3 x ~@12 x ~@16 x ~@5 x ~@8", I: "~@3 x ~@5 x ~@6 x ~@31",
  J: "~@5 x ~@5 x ~@2 x ~@5 x ~@3", K: "~@5 x ~@8 x ~@2 x ~@5 x", L: "~@2 x ~@5 x ~@2 x ~@5 x ~@2 x ~@3",
  M: "~@2 x ~@2 x ~@2 x ~@15", N: "~@5 x ~@5 x ~@2 x ~@5 x ~@2 x", O: "~@5 x ~@2 x ~@5 x ~@8 x",
  P: "~@2 x ~@5 x ~@8 x ~@2 x ~@3", Q: "~@5 x ~@5 x ~@8 x ~@2 x", R: "~@5 x ~@2 x ~@5 x ~@2 x ~@5 x",
  S: "~@2 x ~@8 x ~@5 x ~@2 x ~@3", T: "~@2 x ~@8 x ~@5 x ~@2 x ~@2 x",
})).gain(0.43)

// drums · ride bell · soft notes
const ride_bell_soft = s("rd").struct(`<
  ~@2 A B ~ A C ~@14 B ~ A ~@13 D E F D E ~@8 G H F ~@3 G H F ~@3 E ~ D E ~@3
>`.pickRestart({
  A: "~@5 x ~@10", B: "~@7 x ~@8", C: "~ x ~@14", D: "~@23 x", E: "~ x ~", F: "~@7 x ~@4", G: "~@17 x ~@6",
  H: "~@11 x ~@12",
})).gain(0.29)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@19 A B C A B ~@13 D E F D E ~@7 D E F D E F D E F D E F D E F D E G ~@2
>`.pickRestart({
  A: "~@7 x ~@8", B: "~@3 x ~@11 x", C: "~@11 x ~@4", D: "~@11 x ~@12", E: "~@5 x ~@17 x", F: "~@17 x ~@6",
  G: "~@11 x ~@2 x ~@2 x ~@2 x ~@2 x",
})).gain(0.57)

stack(
  piano, piano_soft, bass, string_ensemble_2, string_ensemble_1, pad_choir, kick, snare, hihat, low_tom, mid_tom,
  open_hat, crash, ride_bell, ride_bell_soft, tambourine
)

More by Adamo