Strudelify
Gli aironi neri cover art

1991 · Gente Come Noi

Gli aironi neri

Nomadi

KeyA majorTempo106 bpm
0:00/0:00
// Gli aironi neri — Nomadi
// 106 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 16 "organ mt32" named as an organ, played on drawbar organ (its tubular bells patch is not one)
// note: Full arrangement: all 123 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(106/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.

// other · piccolo · "d50 digitalnativedance"
const piccolo = note(`<
  ~ A@2 B@2 ~@2 C@2 ~@2 D@2 ~@2 E@2 ~@2 F@2 ~@31 A@2 B@2 ~@2 C@2 ~@2 D@2 ~@2 E@2 ~@2 F@2 ~@51
>`.pickRestart({
  A: "[~@8 b4@3 g4@5 a4@4 e5@8 b4@12 ~@24]/2", B: "[~@8 b4@4 g4@4 a4@4 e5@8 b4@15 ~@21]/2",
  C: "[~@8 b4@3 g4@4 a4@5 e5@8 b4@21 ~@15]/2", D: "[~@7 b4@4 g4@4 a4@4 e5@9 b4@17 ~@19]/2",
  E: "[~@8 b4@3 g4@5 a4@4 e5@8 b4@15 ~@21]/2", F: "[~@8 b4@4 g4@4 a4@4 e5@8 b4@13 ~@23]/2",
})).s("gm_piccolo").gain(0.24)

// bass · acoustic bass · "basso"
const bass = note(`<
  ~ A B A C D E F G H I@2 G J K L@2 M E N O P Q R S T U V W X Y Z AA AB AC AD AE@2 AF AG AH AI AF AJ AK AL AF AM AN AO
  AP AQ A B A C D E F G H I@2 G J K L@2 M E N O P Q R AR T AS V W AT Y Z AA AB AC AD AE@2 AF AG AH AI AF AU AK AL AF AM
  AN AO AV AW AX@2 AY AZ BA BB BC AZ BD BE AY BF BG BH BI BJ BF BJ BK ~
>`.pickRestart({
  A: "g1@26 ~@2 g1 ~@3", B: "g1@27 ~@3 e1@2, ~@29 d1@2 ~", C: "g1@27 ~@5",
  D: "d2@2 ~@2 d2@4 ~@3 d2@2 ~@2 d2@5 a2@8 d2@4, ~@8 a2@5 ~@19", E: "a2@13 ~ a2@2",
  F: "e2@2 ~@2 e2@4 b2@3 e2@3 ~ e2@5 b2@8 e2@2 f2@2", G: "g2@13 ~ g2@2",
  H: "d2@3 ~ d2@4 a2@4 d2@2 ~@2 d2@4 a2@8 ~ e2@3, ~@14 d2 ~",
  I: "[a2@27 ~@4 e2@3 ~@2 e2@4 b2@4 e2@3 e2@5 b2@8 e2@2 f2@2, ~@28 a2@5 ~@31]/2",
  J: "d2@3 ~ d2@4 a2@4 d2@2 ~ d2@5 a2@8 ~ e2@3, ~@28 d2@3 ~", K: "a2@27 ~ a2@4",
  L: "[e2@3 ~ e2@4 b2@4 e2@3 ~ e2@4 b2@8 e2@2 ~ g2@27 ~@2 g2@4, ~@15 f2 ~@16]/2",
  M: "d2@3 ~ d2@4 a2@4 d2@2 ~@2 d2@4 a2@8 ~ e2@3, ~@28 d2@3 ~", N: "e2@3 ~ e2@4 b2@4 e2@2 ~@2 e2@4 b2@8 [d2,e2]@2 f2@2",
  O: "g2@25 ~@7", P: "g2@19 ~ a2@4 ~@4 f2@4, ~@24 g2@7 ~",
  Q: "d2@3 d2@5 a2@3 d2@2 ~@3 d2@4 a2@4 ~@3 a2@5, ~@24 f#2@7 ~",
  R: "d2@2 ~@2 d2@4 a2@2 ~@2 d2@2 ~@6 a2@4 f#2@3 a2@4 ~, ~@16 d2@9 ~@7",
  S: "a1@2 ~ a1@4 e2@3 ~ a1@3 ~ a1@5 e2@4 a1@4 e2@4",
  T: "a1@2 ~@2 a1@4 e2@3 ~ a1@2 ~ a1@5 ~@3 a1@5 e2@4, ~@20 e2@5 ~@7",
  U: "e2@2 ~@2 e2@4 b2@3 ~ e2@3 e2@5 b2@4 e2@4 b2@4", V: "e2@2 ~@2 e2@4 b2@3 e2@3 ~@2 e2@4 b2@4 e2@4 b2@4",
  W: "g2@2 ~@2 g2@4 d3@4 g2@3 g2@5 d3@4 g2@4 d3@4", X: "g2@3 ~ g1@4 d2@4 g1@3 ~ g1@4 d2@4 g1@4 d2@4",
  Y: "d2@3 ~ d2@4 a2@3 ~ d2@2 ~ d2@5 a2@4 ~@3 a2@5, ~@12 d2@3 ~", Z: "d2@3 d2@4 ~ a2@3 ~ d2@3 ~ d2@4 a2@4 f#2@4 a2@4",
  AA: "~@4 a1@4 e2@4 a1@3 ~ a1@4 e2@4 ~@3 e2@5, ~@24 a1@5 ~@3", AB: "a1@3 a1@5 e2@4 a1@3 ~ a1@4 e2@4 ~@4 e2@4, ~@3 c#2",
  AC: "e1@3 ~ e2@4 b2@4 e2@3 ~ e2@4 b2@4 e2@4 b2@4", AD: "e2@29 ~@3",
  AE: "[d2@2 ~@2 d2@4 a2@4 d2@7 ~ d2@4 ~@3 d2@3 ~ d2@3 ~@2 d2@4 a2@4 d2@7 ~ d2@4 a2@4 d2@3 ~, ~@12 a2@3 ~@17]/2",
  AF: "e2@3 ~ e2@4 a2@4 e2@7 ~ e2@4 a2@4 e2@3 ~", AG: "e2@3 ~ e2@4 a2@4 e2@8 e2@4 a2@3 e2@3 ~@2",
  AH: "e2@3 ~ e2@4 b2@4 e2@7 ~ e2@4 b2@4 e2@3 ~", AI: "e2@3 ~ e2@4 b2@4 e2@7 ~ e2@4 b2@4 e2@4",
  AJ: "e2@3 e2@5 a2@4 e2@7 ~@5 e3@4 a2@4, ~@20 e2@7 ~@5", AK: "d2@3 ~ d2@4 a2@4 d2@6 ~ d2@5 a2@4 d2@3 ~",
  AL: "d2@3 ~ d2@4 a2@4 d2@7 ~ d2@4 a2@4 d2@2 ~@2", AM: "e2@3 ~ e2@4 a2@4 e2@7 ~ e2@4 a2@4 e2@2 ~@2",
  AN: "e2@3 ~ e2@4 b2@4 e2@7 ~ e2@3 ~ b2@4 e2@3 ~", AO: "e2@2 ~@2 e2@4 b2@4 e2@6 ~ e2 ~@2 e2@2 b2@4 e2@3 ~",
  AP: "e2@3 ~ e2@4 a2@4 e2@6 ~@2 a2@4 c#3@3 a2@5", AQ: "g2@5 ~@27", AR: "a2@2 ~ a1@4 e2@3 ~ a1@3 ~ a1@5 e2@4 a1@4 e2@4",
  AS: "e1@2 ~@2 e2@4 b2@3 ~ e2@3 e2@5 b2@4 e2@4 b2@4", AT: "g2@3 ~ g2@4 d3@4 g2@3 ~ g2@4 d3@4 g2@4 d3@4",
  AU: "e2@3 e2@5 a2@4 e2@7 ~ a2 ~@3 e3@4 a2@4, ~@20 e2@7 ~@5", AV: "e2@3 ~ e2@4 a2@4 e2@6 ~@2 a2@4 e2@3 a2@5",
  AW: "e2@2 ~ e2@5 a2@4 e2@2 ~ e2@2 ~@2 e2@5 a2@4 e2@2 ~@2",
  AX: "[d2@3 ~ d2@4 a2@3 ~ d2@3 ~ d2@3 ~ d2@4 a2@4 d2@3 d2@3 ~@2 d2@4 a2@4 d2@3 ~ d2@2 ~@2 d2@4 a2@4 d2@4]/2",
  AY: "a2@3 ~ a1@4 e2@4 a1@3 ~ a1@3 ~ a1@4 e2@4 a1@3 ~", AZ: "a1@3 ~ a1@4 e2@4 a1@3 ~ a1@3 ~ a1@4 e2@4 a1@4",
  BA: "e1@3 e2@5 b2@4 e2@6 ~ e2@5 b2@4 e2@3 ~", BB: "e2@2 ~@2 e2@4 b2@4 e2@3 ~ e2@3 ~ e2@4 b2@4 e2@4",
  BC: "a2@3 ~ a1@4 e2@4 a1@3 ~ a1@2 ~@2 a1@4 e2@4 a1@3 ~", BD: "d1@3 ~ d2@4 a2@4 d2@3 ~ d2@3 ~ d2@4 a2@4 d2@3 ~",
  BE: "d2@3 ~ d2@4 a2@4 d2@3 ~ d2@2 ~@2 d2@4 a2@4 d2@4", BF: "a1@3 ~ a1@4 e2@4 a1@3 ~ a1@2 ~@2 a1@4 e2@4 a1@4",
  BG: "e1@2 ~@2 e2@4 b2@4 e2@2 ~@2 e2@2 ~@2 e2@4 b2@4 e2@3 ~", BH: "e2@3 ~ e2@3 ~ b2@4 e2@3 ~ e2@2 ~@2 e2@4 b2@4 e2@4",
  BI: "a2@3 ~ a1@4 e2@4 a1@3 ~ a1@3 ~ a1@4 e2@4 a1@4", BJ: "g1@3 ~ g1@4 d2@4 g1@3 ~ g1@3 ~ g1@4 d2@4 g1@4",
  BK: "a1@31 ~",
})).s("gm_acoustic_bass").gain(0.37)

// chords · church organ · "organ1"
const church_organ = note(`<
  ~@5 A@8 B@2 C@4 D@5 E@6 F@4 G ~ H@2 I@4 J@4 K@2 L@2 M N ~@4 A@8 B@2 C@4 D@5 E@6 F@4 G ~ H@2 I@4 J@4 K@2 L@2 O@4 P@6
  Q@8 R@3 ~
>`.pickRestart({
  A: "[[f#3,d4]@32 c#4@32 ~@64 f#3@30 ~@2 c#4@32 ~@31 d4@32 ~, a3@62 ~@2 [g3,b3]@62 ~@2 a3@62 ~@2 [g3,b3]@61 ~@3, ~@32 e3@63 d4@65 e3@64 ~@32]/8", // D G
  B: "[[f#3,d4]@31 [e3,c#4]@33, a3@31 ~]/2", // D C#m
  C: "[~@31 d4@31 ~@2 f#3@30 ~@2 e3@32, [g3,b3]@62 ~ d4@32 c#4@31 ~@2, ~@32 a3@31 ~]/4", // G
  D: "[~@31 d4@63 ~ [a3,d4,f#4]@63 ~@2, [g3,b3]@47 ~@33]/5", // D G
  E: "[[a3,c#4,e4]@62 ~@2 [b3,g4]@63 ~ d4@63 d4, ~@63 e4@63 ~ [b3,g4]@63 ~@2]/6", // A Em
  F: "[f#4@62 ~@2 [c#4,e4]@63 ~, a3@127 ~]/4", G: "[g3,b3,e4]", H: "[[d4,f#4,a4]@63 ~]/2",
  I: "[[e4,a4,c5]@31 ~ g#4@31 ~, ~@63 [e4,b4]@63 ~@2]/4", J: "[[e4,a4,c5]@31 ~ [d4,f#4]@31 ~, ~@63 a4@63 ~@2]/4",
  K: "[[e4,a4,c5]@63 ~]/2", L: "[[e4,g#4,b4]@63 ~]/2", M: "[e4,a4,c5]", N: "[d4,g4,b4]@3 ~@29",
  O: "[[e4,a4,c5]@61 ~@3 f#4@62 ~ e4, ~@63 a4@64 ~, ~@63 d4@61 ~@4]/4", // Am
  P: "[[a4,c5]@62 ~ [g#4,b4]@62 ~@2 [a4,c5]@62 ~@3, ~@63 e4@127 ~@2]/6", // Am G#m Am
  Q: "[[d4,a4]@62 ~ [e4,a4,c5]@63 ~@2 g#4@62 ~@2 c5@31 ~ [d4,g4]@32, f#4@59 ~@68 [e4,b4]@63 ~ e4@30 ~@35, ~@192 a4@30 ~ b4@32 ~]/8", // D5 Am G5 E5
  R: "[[a4,c5]@31 [g4,b4]@32 ~ [e4,c5]@31 ~, e4@30 ~ d4@30 ~@2 a4@31 ~@2]/3", // Am G C
})).s("gm_church_organ").gain(0.19)

// chords · electric guitar clean · "el clean gt"
const electric_guitar_clean = note(`<
  ~ A B@2 C D E@4 F@8 G@3 H@2 I@2 J@2 K@8 ~@2 L@4 M@2 N@8 ~ A B@2 C D E@4 F@8 G@3 O@2 P@2 Q@2 R@8 ~@2 S@7 T@7 U@8 V@4
  W@8 X
>`.pickRestart({
  A: "~@8 b3@4 ~@3 a3@4 d4@9 b3@4, ~@12 g3@5 ~@15", B: "[~@8 b3@4 g3@4 a3@4 d4@8 b3@11 ~ b3@4 g3@4 a3@4 d4@8 b3@4]/2",
  C: "~@4 b3@2 g3@2 a3@2 d4@4 ~ d3, ~@7 a3", D: "f#3@16 ~@15 c#3, ~@15 a2",
  E: "[e3@20 ~@12 b3@25 ~@7 d4@24 ~@8 a3@24 ~@5 a2@2 c#3, ~@30 e3@26 ~@7 b3@26 ~@6 f#3@26 ~@7, ~@31 g3@26 ~@5 g3@27 ~@5 d3@27 ~@7]/4",
  F: "[e3@25 ~@7 b3@27 ~@5 d4@25 ~@7 a3@25 ~@6 [c#3,e3]@26 ~@7 b3@28 ~@4 d4@26 ~@6 a3@25 ~@6 c#3, ~@30 e3@27 ~@6 b3@27 ~@5 f#3@26 ~@37 [e3,g3]@28 ~@3 g3@29 ~@4 d3@28 ~@4 a2@2, ~@31 g3@27 ~@4 g3@28 ~@4 d3@28 ~@4 a2@26 ~@38 b3@28 ~@5 f#3@26 ~@7]/8", // C#m Em
  G: "[e3@24 ~@8 b3@28 ~@4 d4@25 ~@7, ~@30 e3@28 ~@5 b3@26 ~@7, ~@31 g3@28 ~@3 g3@28 ~@6]/3",
  H: "[~ a3, ~@15 d3@17, ~@31 f#3@33]/2", I: "[~@4 e3@3 ~, ~@30 a2@27 ~@7, ~@31 c#3@26 ~@7]/2",
  J: "[~@32 b3@31 ~, ~@15 e3@17, ~@31 g3@33]/2",
  K: "[~@32 b3@36 ~@29 a3@38 ~@25 c#4@55 ~@9 b3@30 ~@2, ~@30 d3@39 ~@26 d3@41 ~@22 e3@58 ~@6 e3@32 ~@2, ~@31 g3@38 ~@27 f#3@40 ~@23 a3@56 ~@8 g3@31 ~@2]/8",
  L: "[~@16 c4@19 ~@13 b3@16, ~@30 e3@41 ~@23 e3@34, ~@31 a3@40 ~@24 g#3@33]/4", M: "[~ c4, ~@15 e3@17, ~@31 a3@33]/2",
  N: "[~@32 a3@53 ~@11 c4@57 ~@8 b3@58 ~@6 c4@29 ~@2, ~@30 d3@55 ~@10 e3@61 ~@3 e3@59 ~@5 e3@31 ~@2, ~@31 f#3@54 ~@10 a3@58 ~@7 g#3@58 ~@6 a3@30 ~@2]/8",
  O: "[~@8 [f#3,a3]@7 ~, ~@31 d3@29 ~@4]/2", P: "[~@32 [c#3,e3]@25 ~@7, ~@15 a2@13 ~@4]/2",
  Q: "[~@32 b3@29 ~@3, ~@30 e3@33 ~, ~@31 g3@32 ~]/2",
  R: "[~@32 b3@34 ~@30 a3@38 ~@26 c#4@37 ~@27 [g3,b3]@32, ~@30 d3@37 ~@27 d3@40 ~@24 e3@40 ~@24 e3@33 ~, ~@31 g3@36 ~@28 f#3@37 ~@27 a3@39 ~@58]/8", // G
  S: "[~@32 c4@52 ~@12 b3@58 ~@6 c4@55 ~@8 d3, ~@30 e3@55 ~@9 e3@60 ~@4 e3@58 ~@8, ~@31 a3@54 ~@10 g#3@59 ~@5 a3@57 ~@8]/7",
  T: "[[f#3,a3]@49 ~@16 c4@57 ~@6 [g#3,b3]@57 ~@7 c4@32, ~@63 e3@60 ~@4 e3@59 ~@4 e3@34, ~@64 a3@57 ~@70 a3@33]/7", // F#m G#m
  U: "[~@32 [f#3,a3]@45 ~@20 c4@46 ~@18 b3@45 ~@19 c4@31, ~@31 d3@46 ~@18 e3@48 ~@16 e3@47 ~@17 e3@33, ~@96 a3@47 ~@17 g#3@44 ~@20 a3@32]/8", // F#m
  V: "[~@32 [f#3,a3]@42 ~@23 c4@31, ~@31 d3@43 ~@21 e3@33, ~@3 a3]/4", // F#m
  W: "[~@33 b3@46 ~@17 c4@26 ~@6 b3@27 ~@5 c4@27 ~@5 [g3,b3]@26 ~@6 c4@26 e4@4 c4@2, ~@31 e3@48 ~@15 e3@28 ~@4 d3@28 ~@4 e3@25 ~@8 d3@27 ~@5 e3@33, ~@32 g#3@48 ~@15 a3@26 ~@6 g3@27 ~@5 a3@28 ~@37 a3@31 ~]/8", // G
  X: "~@3 a3@5 e3@6 a2@6 ~@12",
})).s("gm_electric_guitar_clean").gain(0.24)

// other · overdriven guitar · "overdrive gt"
const overdriven_guitar = note(`<
  ~ A@4 ~@15 B@2 C@4 D@2 E@2 F@2 G@2 H@2 I@2 J@2 K@4 L@2 M@2 N@2 O P A@4 ~@15 B@2 C@4 D@2 E@2 F@2 G@2 H@2 I@2 J@2 K@4
  L@2 M@2 N@2 Q@2 R@2 S@2 T@2 U@2 V@4 W@2 O X O X Y ~
>`.pickRestart({
  A: "[[g2,g3]@59 [d2,d3]@4 ~ g2@58 ~@6, ~@63 g3@58 ~@7]/4", B: "[g4@58 ~@3 f#4 f4 ~, ~@30 g4 ~]/2",
  C: "[d4@58 ~@2 d4@3 a4@61 e4@2 g4@2]/4", D: "[b4@60 ~ a4@3, ~@60 g4@3 ~]/2", E: "[d5@30 d5 c5]/2",
  F: "[a4@30 d4 f#4]/2", G: "[a4@30 e4 g4]/2", H: "[b4@29 [g4,a4]@2 e4@4 ~@29]/2", I: "a4/2", J: "[e4@58 ~@4 e4 ~]/2",
  K: "[e4@64 a4@46 ~@2 a4@6 b4@5 c5@5]/4", L: "[d5@48 a4@6 b4@5 c5@4 ~]/2", M: "[c5@48 a4@6 b4@5 c5@5]/2",
  N: "[b4@47 ~ b4@5 c5@6 b4@5]/2", O: "a4", P: "[g4,d5]@5 ~@27", Q: "[[a4,c5]@48 a4@5 b4@6 c5@5]/2",
  R: "[d5@24 a4@3 b4@3 c5@2]/2", S: "[e5@48 a4@6 b4@5 c5@5]/2", T: "[b4@47 ~ b4@6 c5@6 b4@4]/2",
  U: "[a4@46 ~@2 a4@6 b4@5 c5@5]/2", V: "[d5@48 a4@6 b4@5 c5@4 e5@49 a4@6 b4@5 c5@5]/4", W: "[b4@48 e5@6 d5@5 c5@5]/2",
  X: "g4", Y: "a4@31 ~",
})).s("gm_overdriven_guitar").gain(0.33)

// other · overdriven guitar · "overdrive gt" · soft notes
const overdriven_guitar_soft = note("<~@21 A ~ B ~@15 C D ~@3 E ~@27 A ~ B ~@15 C D ~@3 E ~@27>".pickRestart({
  A: "~@31 f#4", B: "~@15 f#4", C: "~@28 e4 ~@3", D: "f#4 ~@31", E: "c5 ~@31",
})).s("gm_overdriven_guitar").gain(0.2)

// other · bassoon
const bassoon = note("<~@110 A B@2 C@2 D@2 E F E G H ~>".pickRestart({
  A: "~@21 b4@7 d5@4", B: "[f5@7 d5@41 b4@5 a4@6 b4@5]/2", C: "[e5@36 c5@6 ~ c5@4 ~ c5@6 c5@6 b4@4]/2",
  D: "[d5@7 c5@4 b4@24 ~ b4@6 ~ b4@4 ~ b4@5 c5@6 b4@5]/2", E: "a4", F: "g4", G: "~ g4@31", H: "~ a4@28 ~@3",
})).s("gm_bassoon").gain(0.29)

// other · drawbar organ · "organ mt32"
const drawbar_organ = note(`<
  ~ A@4 B C@2 D@8 E@4 F@2 G@2 H@2 I@4 J@2 K@2 L ~ M@6 N@6 O@4 A@4 B C@2 D@8 E@4 F@2 G@2 H@2 I@4 J@2 K@2 L ~ M@6 N@6 P@8
  Q@6 R@4 S T U@4
>`.pickRestart({
  A: "[d5@35 b4@4 ~@5 b4@4 ~@4 d5@4 b4@4 ~@39 b4@4 ~@13 d5@4 ~@4 d5@4, g5@39 d5@8 ~ g5@7 ~@5 d5@41 ~@2 d5@8 ~ g5@8 ~@8, ~@63 g5@41 ~@4 b4@7 ~@5 b4@8]/4",
  B: "a5", C: "[e5@31 b5@32 g5]/2", D: "[~@31 a5@32 e5@32 b5@32 g5@32 a5@32 e5@32 b5@32 g5]/8",
  E: "[~@31 a5@32 e5@32 b5@33]/4", F: "[g5@37 ~@3 b5@4 a5@4 ~@3 f#5@5 e5@4 a4@4, ~@48 g5@5 ~@11]/2",
  G: "[a5@37 ~@2 a5@4 g5@4 f#5@4 e5@4 d5@4 a4@5]/2", H: "[a5@38 ~ a5@4 g5@4 ~@4 e5@4 d5@4 a4@5, ~@47 f#5@7 ~@10]/2",
  I: "[b5@38 ~ b5@4 a5@4 g5@4 f#5@5 e5@4 ~@3 b5@38 ~@2 b5@4 a5@4 g5@4 f#5@4 e5@5 a4@4, ~@60 a4@5 ~@63]/4",
  J: "[a5@39 a5@4 g5@4 f#5@5 e5@4 d5@4 a4@4]/2", K: "[a5@39 ~ a5@3 g5@4 f#5@4 e5@4 d5@5 a4@4]/2",
  L: "b5@8 b5@4 a5@4 ~@3 f#5@4 e5@4 d5@5, ~@16 g5@5 ~@11", M: "[~ d5@63 e5@64 g#5@64]/6",
  N: "[e5@63 ~ f#5@64 e5@64, a5]/6", O: "[~@8 e5@56 a5@31 ~ d5@5 ~@27, g#5@65 ~@30 g5@5 ~@28]/4",
  P: "[~@8 e5@56 ~@64 a5@63 e5@65, g#5@32 a5@31 ~@65, ~@66 e5@65 ~@125]/8", Q: "[g#5@64 ~@63 d6@65, ~@32 a5@63 ~]/6",
  R: "[[e5,a5]@63 ~ b5@63 ~, ~@63 g#5@65]/4", S: "[a5,c6]", T: "[g5,b5]",
  U: "[[a5,c6]@31 ~ g5@31 ~ [e5,c6]@35 ~@29, ~@31 b5@32 a5@35 ~@30]/4", // Am C
})).s("gm_drawbar_organ").gain(0.35)

// drums · kick
const kick = s("bd").struct("<~ A@34 B A@15 B A@34 B A@34 B ~>".pickRestart({
  A: "x ~@6 x!2 ~ x ~@3 x ~", B: "x",
})).gain(0.53)

// drums · snare
const snare = s("sd").struct("<~ A@34 ~ A@15 ~ A@34 ~ A@34 ~@2>".pickRestart({
  A: "~ x ~ x",
})).gain(0.6)

// drums · low tom
const low_tom = s("lt").struct("<~@102 [~@15 x] ~@17 [~@14 x!2] ~@2>").gain(0.67)

// drums · hihat
const hihat = s("hh").struct(`<
  A ~@4 B C D C B C D C B C D C B C D C B C D C B C D C B C D C B E ~@21 B C D C B C D C B C D C B C D C B C D C B C D C
  B C D C B E ~@17 B C D C B C D C B C D C B C D C B C ~@2
>`.pickRestart({
  A: "x!3 ~", B: "~ x!7", C: "x!8", D: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x ~", E: "x!6 ~@2",
})).gain(0.53)

// drums · mid tom
const mid_tom = s("mt").struct("<~@34 A ~@50 A ~@16 B ~@17 C ~@2>".pickRestart({
  A: "~@12 x!4", B: "~@12 x!3 ~", C: "~@10 x ~ x!2 ~@2",
})).gain(0.6)

// drums · open hat
const open_hat = s("oh").struct("<[~@3 x] ~@122>").gain(0.53)

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

// drums · ride
const ride = s("rd").struct(`<
  ~ A B C D ~@31 A B C B A B C B A B C B A B@2 ~ A B C D ~@31 A B C B A B C B A B C B A B@2 E ~@20
>`.pickRestart({
  A: "~ x!7", B: "x!8", C: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x ~", D: "x!6 ~ x", E: "x!6 ~@2",
})).gain(0.53)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@5 A@30 ~ A@15 ~@5 A@30 ~ A@34 ~@2>".pickRestart({
  A: "x!2 ~ x!2 ~@3",
// … 11 more lines

More by Nomadi