Strudelify

Daisy Jane

America

KeyG majorTempo90 bpm
0:00/0:00
// Daisy Jane — America
// 90 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 67 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/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 · electric bass finger · "Bass"
const bass = note("<~@11 A B C D E F G H I J K L M N O P Q@2 ~@10 R S T@2 U@5 V W X Y Z AA@4 AB@8 ~@2>".pickRestart({
  A: "~@7 c2", B: "f2@6 e2@11 ~ d2@12 c2@2 ~@4 c2@5 ~ d2@2 ~@4", C: "c2@23 ~", D: "g1@37 a1@6 b1@5", E: "c2@43 ~@5",
  F: "g1@5 ~", G: "c2@11 ~", H: "g1@47 ~", I: "f2@6 e2@11 ~ d2@11 c2@3 ~@4 c2@2 ~@4 c2@5 ~",
  J: "f2@6 e2@12 d2@7 ~@5 c2@3 ~@3 c2@6 a1@4 ~@2", K: "a#1@13 ~@6 a#1@3 ~@2 c2@8 ~@4 c2@8 ~@4",
  L: "a1@2 ~@4 a1@3 ~@3 c2@4 ~@2 d2@16 ~@2 d2@11 ~", M: "g1@15 ~@3 a#1@3 ~ b1@2 c2@10 ~@3 c2@9 ~@2",
  N: "a1@2 ~@3 a1@7 e2@6 d2@17 ~@2 d2@10 ~", O: "a#1@41 ~@7", P: "a1@47 ~", Q: "[~ g1@53 ~@42]/2",
  R: "~@11 f2@6 ~ e2@12 d2@11 c2@7", S: "~@6 c2@6 f2@6 e2@11 ~ d2@12 c2@2 ~@4", T: "[c2@6 d2@2 ~@4 c2@46 ~ g1@37]/2",
  U: "[a1@6 b1@6 c2@43 ~@5 g1@40 ~@8 c2@44 ~@4 g1@47 ~ f2@6 e2@11 ~ d2@11 c2@3 ~@4]/5",
  V: "c2@8 ~@3 f2@7 e2@12 d2@11 ~ c2@3 ~@3", W: "a1@4 ~ a1@4 ~@3 a#1@13 ~@5 a#1@3 ~@3 c2@8 ~@4",
  X: "c2@8 ~@4 a1@2 ~@4 a1@3 ~@3 c2@4 ~@2 d2@16 ~@2", Y: "d2@11 ~ g1@15 ~@3 a#1@3 b1@2 ~ c2@10 ~@2",
  Z: "c2@9 ~@3 a1@2 ~@3 a1@6 e2@6 ~ d2@17 ~", AA: "[d2@10 ~@2 a#1@41 ~@7 a1@47 ~@2 g1@74 ~@8 g1]/4",
  AB: "[~@5 g1@3 ~@3 g1@3 a1@5 ~@4 a#1@13 ~@6 a#1@3 ~@2 c2@8 ~@5 c2@8 ~@4 a1@3 ~@2 a1@3 ~@4 c2@4 ~ d2@16 ~@2 d2@11 ~ g1@15 ~@4 a#1@3 b1@2 c2@10 ~@3 c2@9 ~@2 a1@2 ~@3 a1@7 e2@6 d2@17 ~@2 d2@10 ~ a#1@41 ~@7 a1@47 ~@3 g1@71]/8",
})).s("gm_electric_bass_finger").gain(0.32)

// other · cello
const cello = note("<~@29 A@2 B C@3 D E F@6 G@2 H@3 I@2 J@8 K L@8>".pickRestart({
  A: "[~@30 g4@30 f#4@7 g4@5 f#4@4 ~@2 f#4@13 e4@5]/2", B: "d4 e4 b3 a3",
  C: "[g3@6 b3@47 f#3@6 e3@60 d3@13 e3@6 g3@6]/3", D: "a3@3 b3@3 d4@3 e4@14 ~", E: "~@17 d4@13 b3@11 a3@7",
  F: "[b3@5 e3@55 d3@48 c3@44 ~@3 a3@7 g3@12 f3@12 e3@5 f3@13 g3@48 ~@6 d4@12 b3@12 a3@6]/6",
  G: "[g3@12 b3@45 ~@3 f#4@6 g4@11 f#4@12 e4@7]/2", H: "[d4@11 c4@19 d4@17 e4@13 d4@40 ~@7 f4@6 e4@12 d4@13 c4@6]/3",
  I: "[~@11 f4@6 e4@12 d4@6 c4@12 a3@13 a#3@11 ~ a#3@11 ~ c4@11 ~]/2",
  J: "[c4@11 ~ a3@47 g3@48 a3@18 d3@31 a#3@48 a3@49 g3@98 ~@8 a#3@11 ~@2 a#3@11 ~]/8", K: "c4@11 c4@11 ~@2 a3@24",
  L: "[~@23 g3@48 a3@18 d3@31 a#3@47 a3@50 g3@158 ~@9]/8",
})).s("gm_cello").gain(0.26).pan(0.7)

// chords · piano
const piano = note(`<
  A B C B C B C B C B C D E B C B C B C D F G H I J@2 K L M N@7 O@5 P@8 Q@2 R@7 S@2 T@7
>`.pickRestart({
  A: "~@3 c-1 ~@44", B: "~@18 [c5,d5,e5]@23 ~@7, [g3,c4,e4]@5 ~", C: "~@6 [a4,b4,d5]@9 ~, [g2,a3,d4]@11 ~",
  D: "~ f4@5 [e4,g4]@11 ~ [d4,f4]@12 [c4,e4]@18, f2@11 ~, a4@5 ~@43", // Em Dm C
  E: "[a2,f3,a3]@6 ~ [e3,g3]@10 ~ d3@11 ~ c3@5 ~@2 c3@4 ~ c3@4 ~@2, ~@6 g2@11 f3@13 e3@17 ~, ~@18 f2@29 ~", // Dm Em
  F: "[a2,f3,a3]@6 ~ [e3,g3]@10 ~ [f2,d3]@12 ~@7 a2@3 ~@2 [a2,c3]@4 ~@2, ~@6 g2@11 f3@13 e3@17 ~, ~@30 c3@5 ~@13, ~@31 e2@13 ~@4", // Dm Em Dm Am
  G: "~ d4@10 ~@2 a#3@4 ~@2 [a#3,d4]@2 ~@4 c4@9 ~@3 [e3,a#3,c4]@7 ~@4, f3@16 ~@2 f3@3 ~@3 g3@20 ~@4, a#3@4 ~@2 d4@2 ~@4 e3@5 ~@7", // A# C7
  H: "f3@3 ~@2 f3@5 ~@2 a3@2 ~@4 f3@5 ~@13 a3@6 d3@3 ~@3, c3@15 ~@2 [d3,a3]@16 ~@3 d3@4 ~@8, a3@9 ~@3 f3 ~@17 f3@11 ~@7", // D5
  I: "g3@10 ~@2 f3@6 ~ g3@2 ~@3 [e3,g3]@9 ~@3 [e3,g3]@7 ~@5, [d3,a#3]@18 d3@3 ~@3 [c3,a#3]@20 ~@4", // Em Gm C7
  J: "[~@5 e3@7 a3@5 ~ [d3,a3]@12 f3@4 ~@2 [d3,f3,a3]@11 ~ [a#3,d4,f4]@16 ~@3 [a#3,d4,f4]@22 ~@7, c3@7 ~@41, a3@8 ~@10 f3@7 ~@22 a3@16 ~@3 a3@22 ~@8]/2", // D5 Dm A#
  K: "~@12 f4@6 e4@13 f4@15 ~@2, [c3,f3,a3]", L: "~ [g3,c4]@23, d3@15 ~", M: "~ b3@5, ~@5 d3@43, ~ g3@7",
  N: "[~@30 [c5,d5,e5]@23 ~@25 [a4,b4,d5]@27 ~@21 [c5,d5,e5]@23 ~@25 [a4,b4,d5]@27 ~@21 [c5,d5,e5]@23 ~@25 [a4,b4,d5]@27 ~@21 [c5,d5,e5]@18, ~@3 [g3,c4,e4]@10 ~@2 [g2,a3,d4]@11 ~ [g3,c4,e4]@10 ~@2 [g2,a3,d4]@11 ~ [g3,c4,e4]@10 ~@2 [g2,a3,d4]@11 ~ [g3,c4,e4]@9]/7", // C Bm7 C Bm7 C Bm7 C Gsus2 …
  O: "[~@30 [a4,b4,d5]@27 ~@21 [c5,d5,e5]@23 ~@25 [a4,b4,d5]@27 ~@3 f4@6 [e4,g4]@11 [d4,f4]@12 ~ e4@17 ~ a3@5 ~ [e3,g3]@11 ~@13 [c3,e3]@6, ~@12 [g2,a3,d4]@44 ~@4 [g3,c4,e4]@40 ~@8 [g2,a3,d4]@44 ~@3 f2@44 ~@4 [a2,f3]@8 ~@10 [d3,f3]@13 ~@6, ~@155 a4@5 ~@25 c4@16 ~@8 g2@11 ~@2 f2@18]/5", // Bm7 C Bm7 Em Dm Em C Gsus2 …
  P: "[c3@4 ~@2 c3@4 ~@20 [c5,d5,e5]@23 ~@25 [a4,b4,d5]@27 ~@21 [c5,d5,e5]@23 ~@25 [a4,b4,d5]@27 ~@21 [c5,d5,e5]@23 ~@25 [a4,b4,d5]@27 ~@3 f4@6 [e4,g4]@11 [d4,f4]@12 ~ e4@17 ~ a3@5 ~ [e3,g3]@11 ~ f2@12 [e2,c3,e3]@6, ~@12 [g3,c4,e4]@40 ~@8 [g2,a3,d4]@44 ~@4 [g3,c4,e4]@40 ~@8 [g2,a3,d4]@44 ~@4 [g3,c4,e4]@40 ~@8 [g2,a3,d4]@44 ~@3 f2@44 ~@4 [a2,f3]@8 ~@10 [d3,f3]@13 ~@6, ~@299 a4@5 ~@25 c4@16 ~@8 g2@11 ~@20]/8", // C Bm7 C Bm7 C Bm7 Em Dm …
  Q: "[a2@4 ~@2 c3@4 ~@2 [a#3,d4]@10 ~@2 [a#3,d4]@4 ~@2 [f3,a#3,d4]@3 ~@4 c4@9 ~@2 [e3,a#3,c4]@7 ~@10 f3@5 ~@2 f3 ~@4 f3@5 ~@7 f3@7, ~@5 a2@4 ~@3 f3@16 ~@8 g3@20 ~@4 c3@15 ~@2 [d3,a3]@16 ~@3, ~@36 e3@10 ~@13 f3@3 ~@34, ~@60 a3@9 ~@2 a3@2 ~@23]/2", // A# C7 D5
  R: "[a3@5 d3@3 ~@16 f3@6 [d3,g3]@3 ~@3 [e3,g3]@9 ~@3 [e3,g3]@7 ~@10 e3@7 a3@5 ~ a3@12 f3@4 ~ [d3,f3,a3]@11 ~@2 [d4,f4]@16 ~@3 f4@21 ~@20 f4@6 e4@12 f4@15 ~@5 [g3,c4]@46 ~@7 b3@26 ~@2 [d3,g3,g4]@5 ~ [d3,g3,g4]@5 ~ g4@3 [e3,a3,c4,a4]@5 ~@5 [a#3,d4]@10 ~@2 [a#3,d4]@4 ~@2 [a#3,d4]@3 ~@3, d3@4 ~@7 g3@10 ~@39 a3@8 ~@9 f3@7 ~@23 [a3,a#3]@16 ~@3 [a3,a#3,d4]@22 ~@8 [f3,a3]@49 ~@53 g3@27 ~@14 g3@5 ~@7 f3@16 ~@2 f3@3 ~@4, ~@12 [d3,a#3]@20 ~@4 [c3,a#3]@20 ~@3 c3@14 ~@4 d3@14 ~@64 c3@47 ~@2 d3@45 ~@8 d3@27 ~@52]/7", // G5 Em Dm C5 G5 Am A# A#maj7 …
  S: "[[e3,c4]@10 ~@2 [e3,a#3,c4]@7 ~@4 f3@3 ~@2 f3@5 ~@2 a3@2 ~@4 a3@12 ~@6 a3@6 d3@3 ~@3 g3@10 ~@3 f3@6 [d3,g3]@3 ~@3, g3@20 ~@3 c3@15 ~@2 d3@16 ~@3 d3@4 ~@8 [d3,a#3]@20 ~@5, ~@23 a3@9 ~@3 f3 ~@5 f3@5 ~@7 f3@11 ~@32]/2", // C C7 G5 Gm
  T: "[[e3,g3]@9 ~@3 e3@7 ~@9 e3@7 a3@5 ~ [d3,a3]@12 f3@4 ~@2 [d3,f3,a3]@11 ~ [a3,a#3,d4,f4]@16 ~@3 [a3,a#3,d4,f4]@22 ~@19 f4@6 e4@13 f4@15 ~@4 [g3,c4]@46 ~@8 b3@105 ~@8, [c3,a#3]@20 ~@3 c3@14 ~@82 [c3,f3,a3]@49 d3@45 ~@8 d3@109 ~@6, ~@11 g3@7 ~@5 a3@8 ~@10 f3@7 ~@174 g3@106 ~@8]/7", // Em D5 Dm A#maj7 C5 C7 F
})).s("gm_piano").gain(0.27).pan(0.6)

// chords · acoustic guitar nylon · "Acoustic Guitar"
const acoustic_guitar_nylon = note(`<
  ~@13 A B C D E F G H I J K L@3 M N@2 ~@3 O P Q@2 R S T@3 U@4 V@3 W X@2 Y Z@5 AA@2 AB@7
>`.pickRestart({
  A: "[g3,c4,e4] ~@5 [g3,c4,d4,e4]@33 ~@9", B: "~@18 [a3,b3] ~@17 d4@11 ~, ~ [g3,a3,b3]",
  C: "~@18 [g3,c4,d4,e4] ~@5 [g3,c4,d4,e4]@20 ~@4", D: "~@3 [g3,a3,b3] ~@5 d4@11 ~@4, ~@12 [g3,a3,b3]@29 ~@7",
  E: "~@6 [g3,c4,e4]@10 ~@2 [g3,c4,d4,e4]@2 ~@4 [g3,c4,d4,e4]@15 ~@9", // C
  F: "[g3,b3] ~@11 [a3,b3]@11 ~, ~@2 g3@13 ~, ~ [a3,b3]@2 ~@5, ~@4 d4@11 ~", // G Asus2
  G: "[f4,a4]@4 ~@2 [e4,g4]@11 ~ [d4,f4]@12 [c4,e4]@15 ~@3", // F Em Dm C
  H: "[f4,a4]@4 ~@2 [e4,g4]@11 ~ [d4,f4]@7 ~@5 [a3,c4,e4]@2 ~@4 [a3,c4,e4]@3 ~@3 [a3,c4,e4]@3 ~@3", // F Em Dm Am
  I: "[d3,g3,a#3,d4]@10 ~@3 [d3,g3,a#3,d4]@3 ~@3 [d3,g3,a#3]@3 ~@3 g3@9 ~@3 [g3,c4]@2 ~@3 [e3,g3,a#3]@3 ~@3, ~@24 [e3,a#3,c4]@10 ~@2 [e3,a#3]@3 ~@3 c4 ~@5", // Gm C5 Edim C7 Edim
  J: "~ c4@10 ~ [e3,a3,c4]@2 ~@4 a3@6 [d3,f3]@6 a3@4 ~@2 [d3,f3,a3]@3 ~@3 [d3,a3]@5 ~, [e3,a3]@11 ~@7 d4@24 ~@6, ~@18 c4@13 ~@17, ~@18 f3@5 ~@25", // Am Dm D5 A5
  K: "[d3,g3]@10 ~@2 [d3,g3,d4]@3 ~@3 [d3,g3,a#3,d4]@2 ~@4 [g3,c4]@6 e3@3 ~@4 a#3@3 ~@2 [g3,a#3] c4 ~@4, a#3@16 ~@8 e3@3 ~@9 [e3,g3,c4]@3 ~@3 e3@4 ~@2", // G5 Gm C5 Gm C
  L: "[[e3,a3,c4]@3 ~@3 [e3,a3,c4]@3 ~@3 [e3,a3,c4]@4 ~@2 a3@12 ~ [f3,a3]@2 ~@3 [d3,f3,a3]@5 ~@8 d4@11 ~@8 a4@25 ~@5 e4@43 ~@3, ~@17 [d3,f3]@12 ~@18 a#3@10 ~@8 a#3@12 ~@16 f3@48 ~@3, ~@66 d4@29 a3@47 ~@2, ~@67 f4@29 c4@46 ~@2]/3", // Am F Dm
  M: "~@3 d4@43 ~@2, [d3,g3]@23 ~, ~ c4@45 ~@2", N: "[~@6 d4@49 ~@41, ~ g3@13 ~@10, ~@5 b3@51 ~@40]/2",
  O: "~@13 e4@31 ~@4, ~@10 g3@37 ~, ~@11 c4@35 ~@2, ~@12 d4@35 ~", P: "~ [g3,a3,d4]@3, ~@11 b3@37",
  Q: "[~@13 g3@39 ~@9 d4@32 ~@3, ~@11 c4@37 ~@11 [g3,b3]@36 ~, ~@12 [d4,e4]@37 ~@47]/2", // G Dsus2
  R: "~@13 [d4,e4]@35, ~@11 g3@37, ~ c4@3", S: "~@12 [b3,d4]@35 ~, ~@11 g3@34 ~@3, ~@12 a3@31 ~@5",
  T: "[~@12 a3@5 g3@12 [d3,f3]@9 ~@4 [c3,e3]@12 ~@5 [f3,a3]@6 [e3,g3]@12 ~ [d3,f3]@11 [c3,e3]@14 ~@5 [g3,c4,e4] ~@5 e4@30, ~@11 f3@6 e3@7 ~@89 [g3,c4,d4]@31]/3", // Dm C F Em Dm C Gsus4
  U: "[~@29 [a3,b3] ~@18 d4@11 ~@19 [g3,c4,d4,e4] ~@5 d4@18 ~@12 [g3,a3,b3]@2 ~@10 d4@22 ~@14 [g3,c4,e4]@10 ~@2 [g3,c4,d4,e4]@2 ~@4 [g3,c4,d4,e4]@12, ~@35 [g3,a3,b3]@26 ~@22 [g3,c4,e4]@19 ~@18 [g3,a3,b3]@29 ~@43]/4", // Asus2 C G C G C G
  V: "[~@12 [g3,b3]@2 ~@21 [a3,b3]@22 ~@2 [f4,a4]@4 ~@2 [e4,g4]@11 ~ [d4,f4]@12 ~ [c4,e4]@15 ~@3 [f4,a4]@4 ~@2 [e4,g4]@11 ~ [d4,f4]@7 ~@5 [a3,c4,e4]@2 ~@4, ~@6 g3@13 ~@29, ~@3 [a3,b3]@2 ~@19, ~@8 d4@11 ~@29]/3", // G Asus2 F Em Dm C F Em …
  W: "[a3,c4,e4]@3 ~@3 [a3,c4,e4]@3 ~@3 [d3,g3,a#3]@10 ~@3 g3@3 ~@2 [d3,g3,a#3]@3 ~@3 [e3,g3,a#3,c4]@10 ~@2, ~@11 d4@10 ~@3 [d3,a#3,d4]@3 ~@21", // Am Gm C7 Gm
  X: "[[e3,g3,a#3,c4]@3 ~@3 [e3,g3,a#3]@3 ~@3 [e3,a3,c4]@10 ~@2 [e3,a3,c4]@3 ~@3 a3@6 ~@5 a3@4 ~@2 [d3,f3,a3]@3 ~@4 a3@5 ~ [d3,g3]@10 ~@2 [d3,g3,d4]@3 ~@3 [d3,g3,a#3]@2 ~@4 c4@5 e3@3 ~@3 c4, ~@6 c4 ~@22 d4@24 ~@24 d4@2 ~@17, ~@30 c4@13 ~@17 a#3@16 ~@7 g3@8 ~@5, ~@30 f3@5 ~ [d3,f3]@9 ~@8 d3@5 ~@26 e3@3 ~@9]/2", // C7 Edim Am Dm G5 Gm Dm
  Y: "[e3,g3,a#3]@3 ~@3 [g3,a#3,c4] ~@5 [a3,c4]@3 ~@2 [e3,a3,c4]@3 ~@4 [e3,a3,c4]@4 ~ [d3,f3,a3]@12 ~@2 [f3,a3]@2 ~@2 f3, ~@6 e3@4 ~ e3@3 ~@34", // Edim C7 Am Dm F
  Z: "[[d3,a3]@6 ~@7 d4@11 ~@8 a4@25 ~@4 e4@43 ~@7 d4@43 ~@8 d4@49 ~@5 [g3,a#3]@10 ~@2 [d3,g3,a#3,d4]@3 ~@3 [d3,g3,a#3]@3 ~@2 a#3, ~@11 a#3@10 ~@8 a#3@12 ~@16 f3@48 ~@2 d3@46 ~@62 d3@10 ~@15, ~@30 [d4,f4]@29 a3@47 ~@2 g3@46 ~@5 g3@52 ~@29, ~@60 c4@46 ~@3 c4@45 ~@6 b3@51 ~@29]/5", // D5 Gm Dm
  AA: "[[e3,g3,c4]@9 ~@3 [g3,c4]@3 ~@3 [g3,c4]@2 ~@4 c4@10 ~@2 [e3,a3]@2 ~@3 a3@6 [d3,f3]@6 a3@4 ~@2 [d3,f3,a3]@3 ~@3 [d3,a3]@5 ~@2 d3@10 ~@2 g3@3 ~@3 [d3,g3,a#3]@2 ~@3 [g3,c4], ~@11 [e3,a#3]@3 ~@3 [e3,a#3]@3 ~@3 [e3,a3]@11 ~ c4@3 ~@3 d4@24 ~@24 d4@2 ~@5, ~@41 c4@13 ~@17 a#3@16 ~@9, ~@41 f3@5 ~@25 g3@10 ~@2 [d3,d4]@4 ~@9]/2", // C C5 A5 Dm D5 Gm C5 Edim …
  AB: "[e3@3 ~@2 e3@3 ~@4 a#3@3 ~@3 [g3,a#3,c4] ~@5 c4@2 ~@3 [e3,a3,c4]@3 ~@3 [e3,a3,c4]@3 ~@3 [d3,f3,a3]@12 ~ [f3,a3]@2 ~@3 [d3,f3,a3]@5 ~@8 d4@11 ~@8 a4@26 ~@4 e4@43 ~@6 d4@43 ~@9 d4@94 ~@20, ~@11 [e3,g3,c4]@3 ~@3 e3@4 ~@2 [e3,a3]@3 ~@45 a#3@10 ~@7 a#3@11 ~@18 f3@48 ~@2 d3@46 ~@123, ~@89 d4@29 a3@47 ~@3 [g3,c4]@46 ~@5 g3@95 ~@22, ~@90 f4@29 ~ c4@46 ~@54 b3@95 ~@21]/7", // C7 Am Dm F Dm C A5 C5
})).s("gm_acoustic_guitar_nylon").gain(0.21)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note("<~@13 A@2 B C D C ~@22 E@7 F G@8 H@3 I@7>".pickRestart({
  A: "[~ c4@46 b3@49]/2", B: "~ e4@47, c4@47 ~", C: "b3", D: "[c4,e4]",
  E: "[~@13 c4@46 ~@7 b4@5 c5@6 d5@13 e5@5 b4@4 ~@20 d5@7 ~@5 d5@6 e5@2 ~@40 f#5@6 ~ g5@5 f#5@6 d5@7 c5@23 b4@24 ~ a4@24 b4@24 [f4,a4]@5 [e4,g4]@4 ~@9 [d4,f4]@11 ~@7, ~@59 b3@49 [c4,e4]@47 b3@49 [c4,e4]@47 b3@48 ~@37]/7", // F Em Dm C
  F: "~@12 [f5,a5]@6 [e5,g5]@3 ~@8 [d5,f5]@6 c5@13", G: "[a4@12 a#4@24 c5@42 d5@54 e5@42 f5@78 e5@49 c5@53 b4@30]/8",
  H: "[~@11 [g4,d5]@3 ~ a4@9 a#4@23 c5@43 d5@54, ~@14 c5@9 ~@121]/3", // G5
  I: "[e5@41 f5@35 ~ f5@12 e5@13 f5@17 c5@12 f5@7 e5@12 f5@19 c5@53 b4@105 ~@9]/7",
})).s("gm_string_ensemble_1").gain(0.11).pan(0.2)

// chords · string ensemble 1 · "Strings" · soft notes
const string_ensemble_1_soft = note("<~@13 A B ~ C ~ C ~@22 D@3 E@2 F@2 ~@19>".pickRestart({
  A: "e4", B: "d4", C: "~ d4@47", D: "[~@12 e4@48 d4@49 ~@16 e5@2 ~@17]/3", E: "[~@12 d4@49 ~@35]/2",
  F: "[~ d4@4 ~@3]/2",
})).s("gm_string_ensemble_1").gain(0.05).pan(0.2)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@10 ~@2 A@6 B C D E D F G H I ~ J A@9 K ~ J A@5 L M N O P O Q R S T U V W V X Y Z ~@3
>`.pickRestart({
  A: "x!4", B: "x!2 ~ x ~ x ~@2", C: "~@2 x ~@3 x ~@3 x ~@3 x!2", D: "x!2", E: "x ~@2 x!2 ~@3", F: "x ~@2 x!2 ~ x ~",
  G: "x ~@2 x ~@4", H: "x ~@18 x ~@28", I: "~ x ~@46", J: "~ x!3", K: "x", L: "x ~ x!2 ~ x ~ x", M: "~@3 x ~ x ~ x",
  N: "~@2 x!3 ~@7 x ~@3", O: "~@2 x ~@2 x!2 ~", P: "~ x ~ x", Q: "x ~ x ~@2 x ~@2", R: "~@2 x ~@2 x ~@2",
  S: "~@13 x ~@34", T: "~@47 x", U: "~@5 x ~@5 x ~@2 x ~@8 x ~@23 x", V: "~@23 x ~@17 x ~@5 x", W: "~@23 x ~@23 x",
  X: "~@11 x ~@11 x ~@17 x ~@6", Y: "~@23 x ~@18 x ~@5", Z: "~@25 x ~@22",
})).gain(0.21)

// drums · snare
const snare = s("sd").struct("<~@20 A B@3 C D@2 ~@21 E F G@2 H I J ~ K L M@3 N O ~@4>".pickRestart({
  A: "~@4 x ~@2 x!2 ~@3 x!2 ~@2", B: "~ x ~ x", C: "~@4 x ~@5 x ~@3 x!2", D: "~ x ~@2", E: "~@8 x ~@2 x!2 ~@3",
  F: "x!2 ~@6 x ~@7", G: "x!2", H: "x ~@3 x ~@2 x", I: "~@2 x!2 ~@4 x ~@7", J: "~ x", K: "~@41 x ~@6", L: "~@35 x ~@12",
  M: "~@11 x ~@23 x ~@12", N: "~@5 x ~@11 x ~@2 x ~@14 x ~@12", O: "~@3 x",
})).gain(0.32)

// drums · hihat
const hihat = s("hh").struct("<~@13 A@6 ~ B C D C D C E ~@14 F G@5 H I J K C K C L M N O P Q P Q R S ~@3>".pickRestart({
  A: "~ x ~ x", B: "x ~@6 x", C: "x!8", D: "x!3 ~ x!4", E: "x ~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4", F: "~ x",
  G: "x!2", H: "x", I: "~ x ~@2", J: "~ x!7", K: "x!5 ~ x!2", L: "x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~@4",
  M: "~ x ~@5 x ~@40", N: "~@47 x", O: "~@5 x ~@5 x ~@11 x ~@5 x ~@5 x ~@5 x ~@5 x",
  P: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@11 x", Q: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x",
  R: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~@5 x ~@5", S: "x!4 ~@4",
})).gain(0.32)

// drums · open hat
const open_hat = s("oh").struct("<~@22 A ~ A ~@25 B ~ B ~@4 C D ~ D ~@6>".pickRestart({
  A: "~@3 x ~@4", B: "~@5 x ~@2", C: "~@5 x ~@10", D: "~@41 x ~@6",
})).gain(0.32)

// drums · ride
const ride = s("rd").struct("<~@19 A ~@7 B C ~@18 D ~@7 E F ~@6 G H ~@2>".pickRestart({
  A: "x!2 ~ x ~ x ~@2", B: "~ x ~@46", C: "~ x ~@6", D: "~@2 x!2 ~ x ~ x", E: "~@13 x ~@34", F: "~@3 x ~@4",
  G: "~@25 x ~@22", H: "~@29 x ~@18",
})).gain(0.32)

// drums · congas
const congas = s("conga:13").struct("<~@13 [~ x]!6 ~@22 [~@3 x]!6 ~@20>").gain(1.03)

// drums · congas
const congas_2 = s("conga:33").struct("<~@13 [~@3 x ~@4]!6 ~@22 [~@5 x ~@2]!6 ~@20>").gain(1.03)

// drums · triangle
const triangle = s("triangles:35").struct("<~@11 [x!2 ~ x ~@4]!2 ~@26 [~@2 x!2 ~ x ~@2]!2 ~@26>").gain(1.87)

stack(
  bass, cello, piano, acoustic_guitar_nylon, string_ensemble_1, string_ensemble_1_soft, kick, snare, hihat, open_hat,
  ride, congas, congas_2, triangle
)

More by America