Strudelify
Aline (I Want to Be Free) cover art

1962-1975

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 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: The whole transcription plays 37 ms behind the beat; the grid follows it, so its parts stay together.
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, A@4 for four bars: 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: "[~@23 [a2,a3]@2 ~@22 d#4@2 ~@20 g4@4 ~@10 [d3,f#4]@2 [d3,d4] ~@10, ~ g2@20 [g2,g3]@4 b2@20 [b2,f#4]@4 c3@24 d3@8 a4@5 ~@10, ~ g3@10 b3@2 g3@8 ~@10 b4@12 b4@6 ~@4 g4@2 c5@12 c5@6 ~@4 a4@2 d5@7 ~@10, ~@3 b3@6 d4@8 ~@8 b3@10 d#4@2 b3@12 c4@12 c4@12 d4@12 ~@11, ~@5 d4@2 g4@12 g4@6 ~@2 d#4@6 f#4@6 d#4@8 ~@4 e4@6 g4@8 g4@4 ~@6 f#4@8 ~@13]/6", // A D G B5
  B: "[~@23 [a2,a3]@2 ~@10 d#4@2 ~@10 d#4@2 ~@8 g4@4 ~@8 g4@4 a4@4 d4@2 ~@4 d4@2 [d3,a3,d4] ~@10, ~ g2@20 [g2,g3]@4 [b2,b3]@12 [b2,b3]@12 [c3,c4]@12 [c3,c4]@12 d3@6 ~@2 [d3,e4]@4 ~@11, ~ g3@12 g3@8 ~@10 b4@7 ~@5 b4@6 ~@6 c5@6 ~@6 c5@6 ~@23, ~@3 b3@8 b3@4 ~@12 d#4@8 ~@4 d#4@8 ~@26 d4@2 ~@4 d4@4 ~@13, ~@5 d4@2 g4@12 g4@6 ~@4 f#4@4 f#4@4 ~@16 g4@4 ~@8 g4@4 ~@10 f#4@6 ~@11]/6", // A D5 G B C Dsus2
  C: "[~@23 [a2,a3]@2 ~@22 d#4@2 ~@20 g4@4 [d4,f#4]@2 ~@5, ~ g2@20 [g2,g3]@4 b2@24 c3@24 d3@7, ~ g3@12 g3@8 ~@8 f#4@2 b4@10 f#4@2 b4@6 ~@6 c5@12 c5@6 ~@7, ~@3 b3@8 b3@4 ~@2 d4@8 b3@10 d#4@2 b3@12 c4@12 c4@12 ~@7, ~@7 g4@12 g4@6 ~@2 d#4@6 f#4@6 d#4@6 f#4@4 ~@4 g4@4 g4@8 g4@4 ~@11]/5", // A D G
  D: "[~@5 e5@2 ~@8 e4@2 ~@6 g3@2 ~@2 [a2,a3]@2 b3@2 ~@2 f#3@2 ~@2 b3@4 c4@2 ~@8 g3@2 d4@2 ~@4 e4@2 ~@2 d4@2 g3@2 ~@8 [a2,a3]@2 b3@4 b3@2 b3@2 ~@2 [b2,f#3]@2 e4@6 g3@2 [c3,g3]@2 [c3,g3,e4]@2 [d3,a3,d4,f#4] ~@10, ~@5 a5@8 d4@4 g3@6 ~@6 f#3@4 ~@8 g3@4 ~@2 g3@4 ~@10 e4@4 d4@6 d4@6 ~@6 d#4@6 ~@6 e4@4 ~@13, ~@5 d3@6 [d3,a4]@6 g2@8 [g2,g3,b3]@4 [b2,d#4]@12 c3@12 d3@4 d3@8 g2@8 [g2,g3]@4 b2@10 ~@2 c3@8 ~@15, ~@7 e5@10 ~@4 d4@8 ~@2 b3@6 ~@6 c4@6 c4@4 ~@2 d4@8 ~@2 b3@12 ~@8 b3@4 c4 ~@7 c4@4 ~@11, ~@9 d5@8 ~@2 b3@4 g4@6 ~@6 f#4@6 e4@6 e4@6 [f#4,a4]@6 [f#4,a4]@6 ~@4 g3@4 ~@4 f#3@2 ~@10 g3@4 ~@19]/7", // A B5 C5 C D D5 G B …
  E: "[~@21 b3@2 [a2,b3]@2 b3@2 ~@20 d#4@2 ~@20 [c3,c4,g4]@4 [d4,a4]@2 ~@4 [e4,a4]@2 ~@2 d4@2 [d3,a3,d4] ~@10, ~ g2@20 [g2,g3]@4 b2@18 b4@6 ~@4 g4@4 g4@8 g4@4 ~@12 [e4,a4]@4 ~@11, ~ g3@12 g3@8 ~@4 f#3@24 ~@6 c5@12 c5@6 ~@23, ~@3 b3@8 b3@4 ~@10 d#4@4 d#4@2 b4@8 d#4@6 [b2,f#4]@4 c3@20 ~@4 d3@6 [d3,f#4]@6 ~@11, ~@7 g4@12 g4@6 ~@2 b3@6 f#4@2 d#4@2 b3@12 c4@12 c4@8 ~@8 d4@6 ~@13]/6", // Asus2 C5 D5 A5 D5 G A5 B5 …
  F: "[~@23 g4@2 ~@14 d#4@2 ~ d#4 d#4@2 [b2,d#4,f#4]@2 d#4, ~ g2@16 g2@2 [b4,g5]@6 ~@2 d#4@8 d#4@4 ~@9, ~ g3@12 g3@12 ~@4 f#4@2 b4@12 b4@5, ~@3 b3@8 b3@4 b3@10 b3@12 b3@11, ~@5 d4@2 g4@14 [g2,d5]@4 b2@16 b2@4 ~@3]/3", // B Em G5
  G: "[~@23 e4@2 ~@6 d3@2 d3@2 [d3,f#4]@2 ~@2 [e4,a4]@2 ~@2 d3@2 [d3,e3]@2 a3, ~ c3@24 d3@6 ~@6 [d3,d4]@6 [a3,d4]@5, ~ c4@12 c4@12 d4@12 ~@4 e4@7, ~@3 e4@6 g4@8 g4@4 g4@4 ~@4 a4@4 a4@4 ~@2 f#4@9, ~@5 g4@2 c5@12 c5@6 ~@6 d5@6 ~@11]/3", // D A5 Dsus2 D D5
  H: "[~ [g2,g3]@8 ~@4 [b2,f#3,d#4]@6 ~@4 d#4@2 [e4,g4]@6 [d4,g4]@2 ~@2 c4@2 e4@2 ~@8 e3@2 [g2,g3,b3]@8 ~@2 [a2,a3]@2 ~@10 b3@2 e4@5 ~@5 e4@2 [d3,f#4,a4]@2 ~@9, ~ d4@12 ~@6 b4@6 ~@16 d4@2 [a3,d4]@6 ~@12 b3@10 ~@25, ~ b3@10 b3@14 c4@10 ~@4 e4@10 d4@12 ~@8 d#4@4 ~@8 g4@4 ~@11, ~@9 [g2,g3]@4 ~@6 d#4@4 ~@2 c3@4 ~@4 [c3,d4]@4 d3@5 d3@3 d3@4 ~@8 [g2,g3,b3]@4 [b2,f#3]@12 [c3,g3,c4]@12 ~@11, ~@21 f#4@4 ~@6 e4@6 [f#4,a4]@12 ~@30 c5@6 ~@11]/6", // G B Em G5 G A D D5 …
  I: "[~@17 d4@3 ~ [a#3,b3,d4]@2 [b3,d4]@2 ~@14 [f#4,b4]@2 ~@6 d#4@2 ~@22 c4@2 d4 ~@3 a3@2 d3, ~ g2@18 ~ [g2,g3]@3 ~@2 [b2,b3]@13 ~@3 f#4@4 [b2,b3,f#4]@4 c3@20 c3@5 ~@6, ~ g3@10 b3@2 g3@7 ~@11 b4@8 ~@2 b4@8 ~@4 g4@2 c5@12 c5@6 ~@7, ~@3 b3@6 d4@6 b3@5 ~@7 d#4@8 d#4@8 d#4@4 ~@2 c4@12 c4@10 ~@2 [d3,f#4]@7, ~@5 d4@2 g4@14 ~@8 f#4@4 ~@6 [e4,f4]@11 ~ e4@6 g4@8 g4@8 ~@2 d4@5]/5", // A# Bm B5 G B B5 D Fmaj7
  J: "[~ [d3,f#3,a3,d4]@2 [d3,g3,b3,d4]@2 [d3,d4]@6 [e4,a4]@2 ~@2 d4@2 ~@8 [g2,g3,b3]@4 b3@2 ~@2 d#4@2 ~@4 d#4@2 ~@8 [d4,g4]@2 [d4,g4]@2 a4@2 ~@6 [d3,f#3]@2 a3, ~@5 [f#3,a3]@12 [g2,g3]@8 ~@4 [b2,f#3]@12 [c3,c4]@8 c3@4 d3@5 d3@3 ~@3, ~@11 [d3,d#4,f4,f#4]@7 ~@3 d4@8 d#4@4 ~@2 d#4@4 ~@4 e4@10 e4 ~ e4@9, ~@13 [e4,a4]@4 ~@2 b3@6 ~@6 b3@4 [b3,b4]@6 ~@6 c5@6 ~@4 d4@2 [a3,d4]@5, ~@23 g4@6 ~@8 f#4@4 ~@4 g4@4 ~@4 f#4@11]/4", // D G D A5 G G5 D F#m …
  K: "[~@9 g3@2 g3@2 b3@2 ~@2 d#4@2 ~@4 d#4@2 ~@10 c3@2 ~@10 e4@2 ~@8 [g2,g3,b3]@4 b3@2 ~@2 d#4@2 ~@4 d#4@2 ~@8 [d4,g4]@2 [d4,g4]@2 a4@2 ~@6 [d3,f#3]@2 a3, ~ [g2,g3]@8 [g2,b3]@4 [b2,f#3]@12 c3@10 ~@2 d3@8 d4@4 [g2,g3]@8 ~@4 [b2,f#3]@12 [c3,c4]@8 c3@4 d3@5 d3@3 ~@3, ~@3 b3@6 ~@6 b3@10 c4@8 c4@4 ~ d4@2 ~ [g4,b4]@8 ~@6 g4@6 ~@8 f#4@4 ~@4 g4@4 ~@4 f#4@11, ~@5 d4@8 d#4@4 ~@2 d#4@2 f#4@4 ~@4 g4@8 ~@2 f4@10 ~@2 b3@6 ~@6 b3@4 [b3,b4]@6 ~@6 c5@6 ~@4 d4@2 [a3,d4]@5, ~@7 g4@6 ~@6 b4@6 ~@6 c5@6 ~@2 [f#4,a4]@2 d4@2 [f#4,a4]@6 ~@4 d4@8 d#4@4 ~@2 d#4@4 ~@4 e4@10 e4 ~ e4@9]/6", // G G5 D G B5 G B5 C …
  L: "[~@9 g3@2 g3@2 b3@2 ~@2 d#4@2 ~@4 d#4@2 ~@10 c3@2 ~@10 e4@2 ~@10 [a2,a3]@2 ~@10 d#4@2 ~@10 e4@2 ~@2 [e4,a4]@2 ~@2 e5 ~@3 d4, ~ [g2,g3]@8 [g2,b3]@4 [b2,f#3]@12 c3@10 ~@2 d3@8 d4@4 [g2,g3]@8 [g2,g3]@4 [b2,b3]@12 [c3,c4]@12 d3@5 ~ a5@3 a4@2, ~@3 b3@6 ~@6 b3@10 c4@8 c4@4 ~ d4@2 ~ [g4,b4]@8 ~@6 g4@6 ~@4 f#4@4 f#4@4 ~@4 g4@4 g4@4 ~@2 f#4@9, ~@5 d4@8 d#4@4 ~@2 d#4@2 f#4@4 ~@4 g4@8 ~@2 f4@10 ~@2 b3@10 ~@6 b4@6 ~@6 c5@6 ~@4 a4@3 e5@4, ~@7 g4@6 ~@6 b4@6 ~@6 c5@6 ~@2 [f#4,a4]@2 d4@2 [f#4,a4]@6 ~@14 d#4@8 ~@4 e4@8 ~@6 e4@7]/6", // A A5 G B5 G B C G …
  M: "[~@11 g3@2 d#4 ~@3 d#4@2 ~@4 d#4@2 ~@2 d4@2 d4@2 [c3,d4,e4,g4]@3 ~ c3@2 [d4,a4]@2 [d2,d3,d4,d5]@2 [d2,d3,d4,d5]@2 ~@4 [f#2,f#3,f#4,f#5]@2 [g2,g3,g4,g5]@24 ~@7, ~ g2@12 [b2,b3]@12 c3@6 ~@12 [d2,d3,d4,d5]@6 ~@31, ~ g3@8 d4@4 ~@6 d#4@2 f#4@4 c4@12 ~@43, ~@3 b3@10 ~@2 f#3@10 ~@20 [e2,e3,e4,e5]@4 ~@31, ~@5 d4@2 g4@6 ~@6 b4@6 ~@2 [e4,g4]@4 ~@49]/5", // C D5 D F# G B D E …
})).s("gm_piano").gain(0.36)

// chords · piano · soft notes
const piano_soft = note(`<
  ~ A@2 B C@2 ~ D@2 E F@3 G@2 ~ H@3 I J ~ K@2 ~ L@2 B M@2 ~ N@2 O P@3 ~ Q R ~ S@2 ~ T U V@2 W ~@2 X ~ Y@2 ~@2 X ~ Y@2 Z
  ~ AA AB ~ AC ~@2
>`.pickRestart({
  A: "[~@17 d4@8 ~@4 f#4@3, ~@15 b3@10 ~@7]/2", B: "~@9 f#4@4 ~@3", C: "[~@11 e4@4 e4@8 e4@2 ~@7]/2",
  D: "[~@17 d4@8 ~@7, ~@9 d4@8 ~@15, ~@15 b3@10 ~@7]/2", E: "~@9 f#4@4 f#4@3",
  F: "[~@3 e4@8 e4@2 ~@2 e4@8 e4@2 f#4@2 [d4,f#4]@2 f#4@2 d3@2 ~@15, ~@29 a4@8 ~@11]/3", // D
  G: "[~@5 d4@4 ~@6 b3@10 ~@7, ~@9 d4@8 ~@15]/2",
  H: "[~@3 e4@8 e4@4 e4@8 e4@2 a4@2 [d4,f#4,a4]@2 [d4,f#4,a4]@2 [d4,f#4,a4]@2 [d4,a4]@2 ~@2 f#5@11, ~@11 f#4@5, ~@35 d4@10 ~@3, ~@35 a4@8 ~@5]/3", // D D5
  I: "~@7 b3@2 ~@7", J: "~@3 f#3@4 f#3@2 ~@4 g3@2 ~", K: "[~ c#4 ~ g3@2 ~@10 f#3@8 ~@6 g3@2 ~, ~@27 c4@5]/2",
  L: "[~@5 d4@4 ~@8 d4@8 ~@7, ~@9 d4@8 ~@15, ~@15 b3@6 ~@11]/2",
  M: "[~@3 e4@8 e4@4 e4@8 e4@2 ~@2 [d4,a4]@2 a4@2 ~, ~@25 f#4@6 ~]/2", N: "[~@18 b4 ~@13, ~@9 d4@16 ~@7]/2",
  O: "~ f#4@12 ~@3", P: "[~@11 e4@4 e4@8 ~@4 f#4@8 ~@6 a4@7]/3", Q: "~@13 c3@3", R: "~ g4@4 ~@11",
  S: "[~@14 e4@5 ~@2 d4@3 ~@8, ~@21 e4 ~@10]/2", T: "~@3 g2 b3 ~@11",
  U: "~@6 b2@2 b2@5 c#4@3, ~ f#4@6 ~@9, ~@5 b3@8 ~@3", V: "[~@11 e4@4 e4@10 ~@7]/2", W: "f#3 ~@10 d4@4 ~",
  X: "c4@5 d4 ~ a4@9", Y: "[~@11 e4@10 ~@11]/2", Z: "~@5 d4@8 ~@3", AA: "~@13 d5@3, ~@5 d3@3", AB: "c4 ~@15",
  AC: "~@2 d4@2 e4 ~@11",
})).s("gm_piano").gain(0.18)

// bass · acoustic bass
const bass = note("<~ A@6 B@6 C@8 D@3 E B@6 C@8 D@3 E F@8 G@3 H I@2 G@3 H J@2 K@3 L@3>".pickRestart({
  A: "[~ g1@10 d1@2 g1@8 g1@2 a1@2 b1@10 f#1@2 b1@10 b1@2 c2@10 g1@2 c2@8 c2@2 c2@2 d2@2 d2@2 d2@2 d2@2 d2@2 a1@2 d1@2 ~@9]/6",
  B: "[~ g1@10 d1@2 g1@8 g1@2 a1@2 b1@10 f#1@2 b1@8 b1@2 b1@2 c2@10 g1@2 c2@8 c2@2 c2@2 d2@2 d2@2 d2@2 d2@2 d2@2 a1@2 d1@2 ~@9]/6",
  C: "[~ g1@10 d1@2 g1@8 g1@2 a1@2 b1@10 f#1@2 b1@8 b1@2 b1@2 c2@10 g1@2 c2@8 c2@2 c2@2 d2@2 d2@2 d2@2 d2@2 d2@2 a1@2 d1@2 d1@2 d1 ~ d1@2 e1@2 f#1@2 g1@8 a1@2 a#1@2 b1@10 f#1@2 c2@7]/8",
  D: "[~ c2@2 c#2@2 d2@6 d2@2 a1@2 d1@2 g1@8 a1@2 a#1@2 b1@10 f#1@2 c2@7]/3", E: "~ c2@2 c#2@2 d2@2 ~@9",
  F: "[~ g1@10 d1@2 g1@8 g1@2 a1@2 b1@10 f#1@2 b1@8 b1@2 b1@2 c2@10 g1@2 c2@8 c2@2 c2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2 ~ e2@2 d2@2 a1@2 d1@2 e1@2 f#1@2 g1@8 a1@2 a#1@2 b1@8 f#1@2 b1@2 c2@7, ~@85 d2 ~@42]/8",
  G: "[~ c2@2 c#2@2 d2@2 e2@2 d2@2 a1@2 f#1@2 d1@2 g1@8 a1@2 a#1@2 b1@8 f#1@2 d1@2 c2@7]/3",
  H: "~ c2@2 c#2@2 d2@2 d2 ~ d2@2 e2@2 d2@2 b1, ~@11 d#2 ~@4", I: "[[g#1,a1] g1@8 a1@2 a#1@2 b1@8 f#1@2 b1@2 c2@7]/2",
  J: "[[g#1,a1] g1@2 g2@2 d2@2 b1@2 a1@2 a#1@2 b1 ~ b1@2 b1@2 b1@2 f#1@2 b1@2 c2@6 c2]/2", // Amaj7
  K: "[~ c2@2 c#2@2 d2@4 d2@2 e2@2 d2@2 ~ a1 g1@4 d1@2 g1@2 a1@2 a#1@2 b1@8 f#1@2 b1@2 c2@7, ~@3 d2 ~@7 d#2 ~@3 b1@2 ~@31]/3",
  L: "[~ c2@2 c#2@2 d2@2 d1 ~ d1@2 d1@2 e1@2 f#1@2 g1@24 ~@7]/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 B@3 C@3 ~@6 B@3 D@3 B@3 D@3 B@3 E@5>".pickRestart({
  A: "[~ b4@18 b4@2 a4@2 g4@2 f#4@4 d#4@14 b3@2 b4@2 a4@2 g4@18 g4@2 f#4@2 g4@2 a4@13 ~@10]/6",
  B: "[~ d4@12 d#4@12 e4@12 f#4@11]/3", C: "[~ d4@12 d#4@12 e4@12 d4@2 ~@9]/3", D: "[~ d4@12 d#4@12 e4@12 d4@11]/3",
  E: "[~ d4@12 d#4@12 e4@12 d4@4 d4@4 e4@2 f#4@2 g4@24 ~@7]/5",
})).s("gm_string_ensemble_2").gain(0.19)

// chords · string ensemble 1
const string_ensemble_1 = note("<~ A@6 ~@12 B@3 C@3 ~@12 B@3 C@3 ~@6 D@3 B@3 D@3 B@9 E@2>".pickRestart({
  A: "[~ [d5,g5,b5]@24 [b4,c#5,d#5,f#5]@24 [c5,d5,e5,g5]@24 [d5,e5,f#5,a5]@13 ~@10]/6", // G B C D
  B: "[~ [d5,g5,b5]@12 [b4,c#5,d#5,f#5]@12 [c5,d5,e5,g5]@12 [d5,e5,f#5,a5]@11]/3", // G B C D
  C: "[~ [d5,g5,b5]@12 [b4,c#5,d#5,f#5]@12 [c5,d5,e5,g5]@12 [d5,e5,f#5,a5]@2 ~@9]/3", // G B C D
  D: "[~ [d5,g5,b5]@12 [b4,c#5,d#5,f#5]@11 ~ [c5,d5,e5,g5]@12 [d5,e5,f#5,a5]@11]/3", E: "[~ [d5,g5,a5,d6]@24 ~@7]/2",
})).s("gm_string_ensemble_1").gain(0.22)

// chords · pad choir
const pad_choir = note("<~@14 A@3 B@4 ~@5 A@3 C@3 A@3 D@4 ~@5 A@3 E@3 ~@19>".pickRestart({
  A: "[~ [d3,g3,b3]@23 ~ [f#3,b3,d#4]@23]/3", B: "[~ [g3,c4,e4]@23 ~ [a3,d4,f#4]@24 ~@15]/4",
  C: "[~ [g3,c4,e4]@24 [a3,d4,f#4]@13 ~@10]/3", D: "[~ [g3,c4,e4]@24 [a3,d4,f#4]@24 ~@15]/4",
  E: "[~ [g3,c4,e4]@24 [a3,d4,f#4]@23]/3", // C D
})).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 A B C A B C A B C A B D A B C A B C A B C A B C A B C A B C A B C A B C A B C A
  B C A B C A B C E ~
>`.pickRestart({
  A: "~ x ~@9 x ~ x ~@2", B: "~@9 x ~@6", C: "~@3 x ~ x ~@10", D: "~@5 x ~@10", E: "~ x ~@14",
})).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 C A B ~ A B C A B D A B C A B F A B C A B ~ A B C A B G A B C A B G A B C A
  B G A B C A B H I ~
>`.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: "~@7 x!2 ~ x ~@2 x!2 ~", G: "~@11 x!2 ~@3", H: "~@7 x ~ x ~ x ~ x ~ x", I: "x",
})).gain(0.57)

// drums · hihat
const hihat = s("hh").struct(`<
  A B@5 C B@5 C B@7 D E B D C B@5 C B@7 D E B D C B@7 D E B D E B D E B D E B D E B D E F ~
>`.pickRestart({
  A: "~@11 x ~@4", B: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", C: "~ x ~ x ~ x ~@10", D: "~ x ~ x ~ x ~@3 x ~ x ~ x ~ x",
  E: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2", F: "~ x ~@14",
})).gain(0.5)

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

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

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

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

// drums · ride bell
const ride_bell = s("rd").struct(`<
  ~ A B C D B E ~@12 A F C A B G ~@12 H B I H B G ~@6 A J C K F L A J C K F L A B I H B M ~@2
>`.pickRestart({
  A: "~@3 x ~@3 x ~ x ~@3 x ~ x", B: "~@3 x ~@5 x ~ x ~@3 x", C: "~ x ~@3 x ~@5 x ~ x ~@2",
  D: "~ x ~ x ~@3 x ~ x ~@3 x ~ x", E: "~@3 x ~ x ~@10", F: "~@3 x ~ x ~@3 x ~ x ~@3 x", G: "~ x ~ x ~ x ~@10",
  H: "~@3 x ~@3 x ~ x ~@3 x ~@2", I: "~ x ~@3 x ~ x ~@3 x ~ x ~@2", J: "~@3 x ~ x ~@3 x ~@5 x",
  K: "~@3 x ~@3 x ~@5 x ~ x", L: "~ x ~@5 x ~@3 x ~ x ~@2", M: "~ x ~@5 x ~@3 x ~ x ~ 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 A E D A ~@8 F B E ~@3 F B E ~@3 A ~ D A ~@3
>`.pickRestart({
  A: "~@5 x ~@10", B: "~@7 x ~@8", C: "~ x ~@14", D: "~@15 x", E: "~@9 x ~@6", F: "~@11 x ~@4",
})).gain(0.29)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@19 A B C A B ~@13 A B C A B ~@7 A B C A B C A B C A B C A B C A B D ~@2
>`.pickRestart({
  A: "~@7 x ~@8", B: "~@3 x ~@11 x", C: "~@11 x ~@4", D: "~@7 x ~ x ~ x ~ x ~ 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