Strudelify

Somewhere (Adagio)

Bernstein Leonard

KeyF majorTempo75 bpm
0:00/0:00
// Somewhere (Adagio) — Bernstein Leonard
// 75 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 12 "ORGAN 2" percussive organ (copy of ch 7 "OCARINA" ocarina)
// note: Full arrangement: all 39 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(75/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 · fretless bass · "FRETLESS"
const bass = note("<A@2 B@8 C@7 D@6 E@4 F G H I J K L M N O P Q>".pickRestart({
  A: "[~@46 c2@14 ~@4 c2@5 ~ c2@19 ~@5 c2@2]/2",
  B: "[~@16 c2@5 ~ c2@19 ~@5 c2@19 ~@5 bb1@19 ~@5 f1@19 ~@5 bb1@10 ~@2 a1@10 ~@2 g1@19 ~@5 c2@19 ~@5 f1@19 ~@5 bb1@19 ~@5 c2@19 ~@5 bb1@19 ~@5 a1@19 ~@5 d2@19 ~@5 bb1@19 ~@5 eb2@19 ~@5 c2@2]/8",
  C: "[~@22 e2@10 ~@2 g1@10 ~@2 c2@14 ~@4 c2@5 ~ c2@9 ~@3 e2@9 ~@3 f2@10 ~@2 f1@9 ~@3 bb1@9 ~@3 bb1@5 ~ a1@5 ~ g1@14 ~@4 g1@5 ~ c2@9 ~@3 g1@10 ~@2 f1@10 ~@2 f2@9 ~@3 bb1@10 ~@2 d2@9 ~@3 c2@9 ~@3 c3@9 ~@3 bb1@9 ~@3 bb2@9 ~@3 a1@10 ~@2 a2@10 ~@2 d2@9 ~@3 a1@10 ~@2 bb1@2]/7",
  D: "[~@10 d2@10 ~@2 eb2@9 ~@3 bb1@9 ~@3 c2@14 ~@4 bb1@5 ~ ab1@10 ~@2 c2@10 ~@2 db2@14 ~@4 db2@5 ~ db2@9 ~@3 c2@9 ~@3 bb1@14 ~@4 bb1@5 ~ bb1@9 ~@3 db2@9 ~@3 f2@13 ~@3 f1@7 ~ f1@19 ~@5 g1@14 ~@4 g1@5 ~ g1@9 ~@3 bb1@9 ~@3 db2@2]/6",
  E: "[~@14 db2@7 ~ db2@19 ~@5 ab1@14 ~@4 ab1@5 ~ ab1@19 ~@5 g1@14 ~@4 g1@5 ~ g1@9 ~@3 d2@10 ~@2 g2@19 ~@6 d2@10 ~@2 g1@10 ~@3]/4",
  F: "c2@14 ~@4 c2@5 ~ c2@9 ~@3 e2@9 ~@3", G: "f2@9 ~@3 f1@9 ~@3 bb1@9 ~@3 bb1@5 ~ a1@5 ~",
  H: "g1@14 ~@4 g1@5 ~ c2@9 ~@3 g1@9 ~@3", I: "f1@3 ~ f2@3 ~ bb1@3 ~ d2@3 ~", J: "c2@3 ~ c3@3 ~ bb1@3 ~ bb2@3 ~",
  K: "a1@3 ~ a2@3 ~ d2@3 ~ a1@3 ~", L: "bb1@3 ~ d2@3 ~ eb2@3 ~ bb1@3 ~", M: "c2@14 ~@4 bb1@5 ~ ab1@9 ~@3 c2@9 ~@3",
  N: "db2@14 ~@4 db2@5 ~ db2@9 ~@3 c2@9 ~@3", O: "bb1@14 ~@4 bb1@5 ~ bb1@9 ~@3 db2@9 ~@3",
  P: "f1@5 ~ f1@9 ~@3 c2@5 ~ f2@9 ~@3 c2@5 ~@7", Q: "f1@19 ~@29",
})).s("gm_fretless_bass").gain(0.42)

// other · orchestral harp · "HARP"
const orchestral_harp = note("<~@2 A@8 B@5 C@6 D@6 E F G H I J K L@2 M N O>".pickRestart({
  A: "[~@46 c4@5 ~ e4@5 ~ g4@4 ~@2 c5@5 ~ c4@4 ~@2 e4@5 ~ g4@5 ~ bb4@5 ~ c4@5 ~ f4@5 ~ a4@5 ~ c5@5 ~ bb3@5 ~ d4@5 ~ f4@5 a4@5 ~@2 g4@5 ~ d4@5 ~ bb4@5 ~ d5@5 ~ c4@5 ~ e4@5 ~ g4@5 ~ bb4@5 ~ c4@5 f4@5 ~@2 a4@5 ~ c5@5 ~ bb3@5 ~ d4@5 ~ f4@5 ~ bb4@5 ~ c4@5 ~ e4@5 ~ g4@5 ~ c5@5 ~ c4@5 ~ e4@5 ~ g4@5 ~ bb4@5 ~ c4@5 ~ e4@5 ~ a4@5 ~ c5@5 ~ d4@5 ~ f4@5 ~ a4@5 ~ d5@5 ~ d4@5 ~ f4@5 ~ bb4@5 ~ d5@5 ~ eb4@5 g4@5 ~@2 bb4@5 ~ eb5@5 ~ c4@2]/8",
  B: "[~@4 e4@5 ~ g4@5 ~ c5@5 ~ c4@5 ~ e4@5 ~ g4@5 ~ c5@5 ~ c4@5 ~ e4@5 ~ g4@5 ~ c5@5 ~ c4@5 ~ e4@5 ~ g4@4 ~@2 bb4@5 ~ c4@5 ~ f4@5 ~ a4@5 ~ c5@5 ~ bb3@5 ~ d4@5 ~ f4@5 ~ a4@5 ~ g4@4 ~@2 d4@5 ~ bb4@5 ~ d5@5 ~ c4@5 ~ e4@5 ~ g4@5 ~ bb4@5 ~ c4@4 ~@2 f4@5 ~ a4@4 ~@2 c5@4 ~@2 bb3@5 ~ d4@5 ~ f4@5 ~ bb4@5 ~ c4@2]/5",
  C: "[~@4 e4@5 ~ g4@4 ~@2 c5@5 ~ c4@4 ~@2 e4@5 ~ g4@5 ~ bb4@5 ~ c4@5 ~ e4@5 ~ a4@4 ~@2 c5@5 ~ d4@4 ~@2 f4@5 ~ a4@5 ~ d5@5 ~ d4@5 ~ f4@5 ~ bb4@5 ~ d5@5 ~ eb4@4 ~@2 g4@5 ~ bb4@4 ~@2 eb5@5 ~ c4@5 ~ eb4@5 ~ g4@5 ~ c5@5 ~ ab3@2 ~ bb3@2 ~ c4@2 ~ eb4@2 ~@2 bb3@2 c4 eb4@2 ~ bb4 ~ c5 db5@2 eb5@5 ~ f5@5 ~ db5@5 ~ ab4@5 ~ db5@5 ~ c5@5 ~ bb4@5 ~ ab4@5 ~ bb3@5 ~ db4@4 ~@2 f4@4 ~@2 bb4@4 ~@2 db5@5 ~ c5@5 ~ bb4@5 ~ ab4@5 ~ c4@2, ~@89 ab4 ~@2 ab4 ~@51]/6",
  D: "[~@4 f4@5 ~ ab4@4 ~@2 c5@5 ~ c4@5 ~ f4@5 ~ ab4@5 ~ c5@5 ~ d4@5 ~ g4@4 ~@2 bb4@4 ~@2 d5@5 ~ d4@4 ~@2 g4@5 ~ bb4@5 ~ d5@5 ~ db4@5 ~ f4@5 ~ ab4@5 ~ db5@5 ~ db4@4 ~@2 f4@5 ~ bb4@4 ~ db5@5 ~@2 eb4@5 ~ ab4@5 ~ c5@5 ~ eb5@5 ~ eb4@5 ~ ab4@5 ~ c5@4 ~@2 eb5@5 ~ d4@5 ~ g4@5 ~ b4@5 ~ d5@5 ~ d4@5 ~ g4@5 ~ b4@5 ~ d5@4 ~@2 d4@4 ~@2 g4@5 ~ b4@5 ~@2 d5@5 ~ g4@5 ~ f4@5 ~ d4@5 ~@2 e4@5 ~]/6",
  E: "c4@4 ~@2 e4@5 ~ g4@4 ~@2 c5@5 ~ c4@5 ~ e4@5 ~ g4@5 ~ bb4@5 ~",
  F: "c4@5 ~ f4@5 ~ g4@5 ~ a4@5 ~ d4@4 ~@2 f4@5 ~ bb4@5 ~ d5@5 ~",
  G: "d4@5 ~ g4@5 ~ bb4@4 ~@2 d5@5 ~ c4@4 ~@2 e4@5 ~ g4@5 ~ bb4@5 ~",
  H: "c4@5 ~ f4@5 ~ a4@5 ~ d5@5 ~ d4@5 ~ f4@5 ~ bb4@4 ~@2 d5@5 ~",
  I: "c4@5 ~ e4@5 ~ g4@5 ~ c5@5 ~ c4@5 ~ e4@5 ~ g4@4 ~@2 bb4@5 ~",
  J: "c4@4 ~@2 e4@5 ~ a4@5 ~ c5@5 ~ d4@5 ~ f4@5 ~ a4@5 ~ d5@5 ~",
  K: "d4@4 ~@2 f4@5 ~ bb4@4 ~@2 d5@4 ~@2 eb4@5 ~ g4@5 ~ bb4@5 ~ eb5@5 ~",
  L: "[c4@4 ~@2 eb4@5 ~ g4@4 ~@2 c5@4 ~@2 ab3@2 ~ bb3@3 c4@2 ~ eb4@2 ~ ab4@2 ~ c4 ~ eb4 ab4@2 bb4 c5 ~@2 eb5@5 ~ f5@5 ~ db5@4 ~@2 ab4@5 ~ db5@4 ~@2 c5@5 ~ bb4@5 ~ ab4@5 ~, ~@38 bb3@2 ~@7 db5@2 ~@47]/2",
  M: "bb3@5 ~ db4@5 ~ f4@5 ~ bb4@5 ~ db5@4 ~@2 c5@5 ~ bb4@4 ~@2 ab4@5 ~",
  N: "c4@5 ~ f4@5 ~ a4@5 ~ c5@5 ~ f5@5 ~ c5@5 ~ f5@5 ~ g5@5 ~", O: "a5@19 ~@29",
})).s("gm_orchestral_harp").gain(0.19).pan(0.2)

// other · vibraphone
const vibraphone = note("<A@3 B@2 C@6 B@2 D@7 E@7 F G H I@2 J K L M@2 N@2>".pickRestart({
  A: "[~@46 f4@5 ~ g4@37 ~@5 f4@5 ~ g4@37 ~@7]/3", B: "[~@22 e4@19 ~@5 eb4@19 ~@5 bb3@19 ~@7]/2",
  C: "[~@10 f4@9 ~@3 e4@9 ~@3 d4@9 ~@3 c4@19 ~@5 bb3@19 ~@5 c4@19 ~@5 bb3@19 ~@5 a3@38 ~@10 bb3@38 ~@10 g3@28 ~@22]/6",
  D: "[~@10 f4@9 ~@3 e4@9 ~@3 d4@9 ~@3 c4@19 ~@5 bb3@19 ~@5 c4@19 ~@5 bb3@19 ~@5 a3@38 ~@10 bb3@38 ~@10 g4@19 ~@5 gb4@9 ~@15 c4@5 ~ db4@37 ~@5 c4@2]/7",
  E: "[~@4 db4@37 ~@5 ab4@38 ~@10 g4@38 ~@10 f4@38 ~@10 eb4@38 ~@10 d4@58 ~@40]/7", F: "c4@28 ~@8 d4@5 ~ e4@5 ~",
  G: "f4@9 ~@3 g4@5 ~ a4@5 ~ bb4@14 ~@4 a4@5 ~", H: "g4@10 ~@2 f4@9 ~@3 e4@9 ~@3 d4@9 ~@3", I: "c4@19 ~@5 bb3@19 ~@5",
  J: "a3@19 ~@5", K: "bb3@19 ~@5 eb4@19 ~@5", L: "g4@19 ~@5 c5@9 ~@15", M: "c5@5 ~ db5@37 ~@5",
  N: "[g4@5 ~ a4@54 ~@36]/2",
})).s("gm_vibraphone").gain(0.3).pan(0.6)

// chords · ocarina
const ocarina = note("<A@5 B@8 C@8 D@6 E F G F E H I J K L M@2>".pickRestart({
  A: "[~@23 [d4,f4]@3 [e4,g4]@21 [d4,f4]@3 [e4,g4]@21 [e4,c5]@3 ~@3 [e4,c5]@3 ~@3 [g4,bb4]@3 ~@3 [g4,bb4]@3 ~@3 [f4,a4]@3 ~@3 [f4,a4]@3 ~@3 [d4,bb4]@3 ~@3 [d4,bb4]@3 ~@3 g4, ~@79 bb4]/5", // Dm Em Dm Em C Gm F Gm
  B: "[~@5 [g4,bb4]@3 ~@3 [g4,c5]@3 ~@3 [g4,bb4]@3 ~@3 [f4,a4]@3 ~@3 [f4,a4]@3 ~@3 [d4,bb4]@3 ~@3 [d4,bb4]@3 ~@3 [e4,c5]@3 ~@3 [e4,c5]@3 ~@3 [g4,bb4]@3 ~@3 [g4,bb4]@3 ~@3 [a4,c5]@3 ~@3 [a4,c5]@3 ~@3 [f4,d5]@3 ~@3 [f4,d5]@3 ~@3 [f4,d5]@3 ~@3 [f4,d5]@3 ~@3 [g4,eb5]@3 ~@3 [g4,eb5]@3 ~@3 [c5,f5]@3 ~@3 [g4,e5]@3 ~@3 e4@3 ~@3 [c4,g4]@3 ~@3 [e4,c5]@3 ~@3 [e4,c5]@3 ~@3 [g4,bb4]@3 ~@3 [g4,bb4]@3 ~@3 [f4,a4]@3 ~@3 [f4,a4]@3 ~@3 [d4,bb4]@3 ~@3 [d4,bb4]@3 ~@3 g4, ~@87 c5@2 ~@38 bb4]/8", // Gm C5 Gm F Gm C Gm Am …
  C: "[~@10 [g4,bb4]@6 ~@6 [g4,c5]@6 ~@6 [g4,bb4]@6 ~@6 [f4,a4]@6 ~@6 [f4,a4]@6 ~@6 [d4,bb4]@6 ~@6 [d4,bb4]@6 ~@6 [e4,c5]@6 ~@6 e4@6 ~@6 [g4,bb4]@6 ~@6 [g4,bb4]@6 ~@6 [a4,c5]@6 ~@6 [a4,c5]@6 ~@6 [f4,d5]@6 ~@6 [f4,d5]@6 ~@6 [f4,d5]@6 ~@6 f4@6 ~@6 [g4,eb5]@6 ~@6 [g4,eb5]@6 ~@6 [eb4,c5]@6 ~@6 eb4@6 ~@6 ab3@3 bb3@3 c4@3 eb4@3 ab4 bb3@2 c4 eb4 ~@2 bb4 ~@2 db5 ~ [ab4,c5]@6 ~@6 [f4,db5]@6 ~@6 [f4,db5]@6 ~@6 [f4,db5]@6 ~@6 [f4,c5]@6 ~@6 f4@6 ~@6 [f4,db5]@6 ~@6 f4@6 ~@6 [ab4,c5]@2, ~@105 c5@6 ~@90 d5@6 ~@42 c5@6 ~@25 ab4@2 ~ c5@2 ~@60 db5@6 ~@18 db5@6 ~@9]/8", // Gm C5 Gm F Gm C Gm Am …
  D: "[~@10 [ab4,c5]@6 ~@6 [ab4,c5]@6 ~@6 [ab4,c5]@6 ~@6 [bb4,d5]@6 ~@6 bb4@6 ~@6 [bb4,d5]@6 ~@6 bb4@6 ~@6 [f4,db5]@6 ~@6 [f4,db5]@6 ~@6 [bb4,db5]@6 ~@6 [bb4,db5]@6 ~@6 [ab4,c5]@6 ~@6 ab4@6 ~@6 [ab4,c5]@6 ~@6 [ab4,c5]@6 ~@6 [g4,b4]@18 d4@6 g4@6 gb4@6 e4@6 d4@6 [g3,b3]@12 [b3,d4]@6 ~@7 [b3,g4]@6 ~@6 [d4,b4]@6 ~@7, ~@57 d5@6 ~@18 d5@6 ~@66 c5@6 ~@49 b3@25 ~@55]/6", // Ab Bb Db Bbm Ab G Bm Em …
  E: "[e4,c5] ~ [e4,c5] ~ [g4,bb4] ~ [g4,bb4] ~", F: "[f4,a4] ~ [f4,a4] ~ [d4,bb4] ~ [d4,bb4] ~",
  G: "[g4,bb4] ~ [g4,bb4] ~ [g4,c5] ~ [g4,bb4] ~", H: "[a4,c5] ~ [a4,c5] ~ [f4,d5] ~ [f4,d5] ~",
  I: "[f4,d5] ~ [f4,d5] ~ [g4,eb5] ~ [g4,eb5] ~", // Dm Cm
  J: "[eb4,c5]@6 ~@6 [eb4,c5]@6 ~@6 ab3@3 bb3@3 c4@3 eb4@3 ~ bb3@2 c4 eb4 ~@2 bb4@2 ~ db5@2, ~@36 ab4@2 ~@4 ab4@2 ~ c5@2 ~", // Cm
  K: "[ab4,c5] ~ [f4,db5] ~ [f4,db5] ~ [f4,db5] ~", L: "[f4,c5] ~ [f4,db5] ~ [f4,db5] ~ [f4,db5] ~",
  M: "[[eb4,g4]@6 [f4,a4]@65 ~@25]/2", // Eb F
})).s("gm_ocarina").gain(0.35).pan(0.6)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note("<~@2 A@8 B@8 C@8 D@5 E@8>".pickRestart({
  A: "[~@46 c3@5 ~@331 c3@2, ~@52 e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ c4@5 ~ bb2@5 ~ d3@5 ~ f3@5 ~ a3@5 ~ g3@5 ~ d3@5 ~ bb3@5 ~ d4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ c4@5 ~ bb2@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ e3@5 ~ a3@5 ~ c4@5 ~ d3@5 ~ f3@5 ~ a3@5 ~ d4@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ d4@5 ~ eb3@5 ~ g3@5 ~ bb3@5 ~ eb4@5 ~@3, ~@55 c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ c4@5 ~ bb2@5 ~ d3@5 ~ f3@5 ~ a3@5 ~ g3@5 ~ d3@5 ~ bb3@5 ~ d4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ c4@5 ~ bb2@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ e3@5 ~ a3@5 ~ c4@5 ~ d3@5 ~ f3@5 ~ a3@5 ~ d4@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ d4@5 ~ eb3@5 ~ g3@5 ~ bb3@5]/8",
  B: "[~@191 c3, ~ eb4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ c4@5 ~ bb2@5 ~ d3@5 ~ f3@5 ~ a3@5 ~ g3@5 ~ d3@5 ~ bb3@5 ~ d4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ c4@5 ~ bb2@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ e3@5 ~ a3@5 ~ c4@5 ~ d3@5 ~ f3@5 ~ a3@5 ~ d4@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ d4@5 ~ eb3@5 ~ g3@5 ~ bb3@5, ~@4 e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ c4@5 ~ bb2@5 ~ d3@5 ~ f3@5 ~ a3@5 ~ g3@5 ~ d3@5 ~ bb3@5 ~ d4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ c4@5 ~ bb2@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ e3@5 ~ a3@5 ~ c4@5 ~ d3@5 ~ f3@5 ~ a3@5 ~ d4@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ d4@5 ~ eb3@5 ~ g3@5 ~ bb3@5 ~ eb4@5 ~@3]/8",
  C: "[~@22 ab2@2 ~ bb2@2 ~ c3@2 ~ [ab2,eb3]@2 ~ bb2 bb2@2 c3 eb3@2 ~ bb3 ~ [ab3,c4] [bb2,db4]@2 c3 eb3@2 ~ bb3 ~ c4 db4@2 ~@3 db4@3 ~@6 db4@3 db4@2 ~@7 db4@2 ~@301 d3@2, ~ eb4@5 ~ c3@5 ~ eb3@5 ~ g3@5 ~@10 ab3@2 ~@4 [eb3,ab3]@2 ~@7 ab3@2 ~@4 eb4@5 ~@4 ab3@5 ~@4 ab3@5 ~@4 bb3@5 ~ ab3@5 ~ bb2@5 ~ db3@5 ~ f3@5 ~ bb3@5 ~ db4@5 ~ c4@5 ~ bb3@5 ~ ab3@5 ~ c3@5 ~ f3@5 ~ ab3@5 ~ c4@5 ~ c3@5 ~ f3@5 ~ ab3@5 ~ c4@5 ~ d3@5 ~ g3@5 ~ bb3@5 ~ d4@5 ~ d3@5 ~ g3@5 ~ bb3@5 ~ d4@5 ~ db3@5 ~ f3@5 ~ ab3@5 ~ db4@5 ~ db3@5 ~ f3@5 ~ bb3@5 ~ db4@5 ~ eb3@5 ~ ab3@5 ~ c4@5 ~ eb4@5 ~ eb3@5 ~ ab3@5 ~ c4@5 ~ eb4@5 ~ d3@5 ~ g3@5 ~ b3@5 ~ d4@5 ~ d3@5 ~ g3@5 ~ b3@5 ~ d4@5 ~@3, ~@4 eb3@5 ~ g3@5 ~ c4@5 ~@4 c4@5 ~@16 eb4@5 ~ f4@5 ~@4 f4@5 ~@10 c4@5 ~@4 c4@5 ~ bb3@5 ~ ab3@5 ~ bb2@5 ~ db3@5 ~ f3@5 ~ bb3@5 ~ db4@5 ~ c4@5 ~ bb3@5 ~ ab3@5 ~ c3@5 ~ f3@5 ~ ab3@5 ~ c4@5 ~ c3@5 ~ f3@5 ~ ab3@5 ~ c4@5 ~ d3@5 ~ g3@5 ~ bb3@5 ~ d4@5 ~ d3@5 ~ g3@5 ~ bb3@5 ~ d4@5 ~ db3@5 ~ f3@5 ~ ab3@5 ~ db4@5 ~ db3@5 ~ f3@5 ~ bb3@5 ~ db4@5 ~ eb3@5 ~ ab3@5 ~ c4@5 ~ eb4@5 ~ eb3@5 ~ ab3@5 ~ c4@5 ~ eb4@5 ~ d3@5 ~ g3@5 ~ b3@5 ~ d4@5 ~ d3@5 ~ g3@5 ~ b3@5]/8", // Ab5 Ab Bbm Ab5
  D: "[~@7 d3@4 ~@2 g3@4 ~@15 g3@4 ~@15 e3@2 ~@184 bb3@3, ~ d4@5 ~@5 b3@5 ~ d4@5 ~ g3@5 ~ f3@5 ~@2 d3@5 ~ e3@5 ~ c3@5 ~@4 c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ g3@5 ~ a3@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ d4@5 ~ d3@5 ~ g3@5 ~ bb3@5 ~ d4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ d4@5 ~ d3@5 ~ f3@5 ~@4, ~@4 g3@5 ~@11 b3@5 ~ d4@5 ~@8 f3@5 ~ d3@5 ~@4 e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ g3@5 ~ a3@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ d4@5 ~ d3@5 ~ g3@5 ~ bb3@5 ~ d4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ d4@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ d4@5 ~]/5",
  E: "[~@168 ab2@2 ~ bb2@3 c3@2 ~ [ab2,eb3]@2 ~ [bb2,ab3]@2 ~ c3@2 eb3 [eb3,ab3]@2 ~ [ab3,c4]@2 ~ c3@2 eb3 ab3@2 ~ c4@2 ~@13 db4@2 ~ db4@2 ~@7 db4@2 ~@88 c4@2 ~@4 f4@2 ~@4 c4@2 ~@7 a4@19 ~@29, c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ e3@5 ~ a3@5 ~ c4@5 ~ d3@5 ~ f3@5 ~ a3@5 ~ d4@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ d4@5 ~ eb3@5 ~ g3@5 ~ bb3@5 ~ eb4@5 ~ c3@5 ~ eb3@5 ~ g3@5 ~ c4@5 ~@4 c4@5 ~@12 bb3@2 ~@2 eb4@5 bb3@2 ~ db4@2 ~@2 db4@5 ~ ab3@5 ~@4 ab3@5 ~@4 bb3@5 ~ ab3@5 ~ bb2@5 ~ db3@5 ~ f3@5 ~ bb3@5 ~ db4@5 ~ c4@5 ~ bb3@5 ~ ab3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ c4@5 ~@7 c4@5 ~@10 f4@5 ~@46, ~@3 d4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ e3@5 ~ a3@5 ~ c4@5 ~ d3@5 ~ f3@5 ~ a3@5 ~ d4@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ d4@5 ~ eb3@5 ~ g3@5 ~ bb3@5 ~ eb4@5 ~ c3@5 ~ eb3@5 ~ g3@5 ~@12 bb2@2 ~@7 [bb2,db4]@2 ~@5 f4@5 ~@4 f4@5 ~@100 f4@5 ~@7 f4@5 ~ g4@5 ~@49, ~@201 eb4@5 ~@16 c4@5 ~@4 c4@5 ~ bb3@5 ~ ab3@5 ~ bb2@5 ~ db3@5 ~ f3@5 ~ bb3@5 ~ db4@5 ~ c4@5 ~ bb3@5 ~ ab3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~@70]/8", // Ab5 Bb7 Ab5 Ab Bbm
})).s("gm_acoustic_guitar_nylon").gain(0.22).pan(0.6)

// chords · acoustic guitar nylon · "NYLON GTR" · soft notes
const acoustic_guitar_nylon_2 = note("<~@3 A@8 B@8 C@8 D E F G H I J K L M N O>".pickRestart({
  A: "[~@16 c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ c4@5 ~ bb2@5 ~ d3@5 ~ f3@5 ~ a3@5 ~ g3@5 ~ d3@5 ~ bb3@5 ~ d4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ c4@5 ~ bb2@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ e3@5 ~ a3@5 ~ c4@5 ~ d3@5 ~ f3@5 ~ a3@5 ~ d4@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ d4@5 ~ eb3@5 ~ g3@5 ~ bb3@5 ~ eb4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@2]/8",
  B: "[~@4 g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ c4@5 ~ bb2@5 ~ d3@5 ~ f3@5 ~ a3@5 ~ g3@5 ~ d3@5 ~ bb3@5 ~ d4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ c4@5 ~ bb2@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ e3@5 ~ a3@5 ~ c4@5 ~ d3@5 ~ f3@5 ~ a3@5 ~ d4@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ d4@5 ~ eb3@5 ~ g3@5 ~ bb3@5 ~ eb4@5 ~ c3@5 ~ eb3@5 ~ g3@5 ~ c4@5 ~ ab2@2 ~ bb2 ~@4]/8",
  C: "[~ eb3@2 ~@2 bb2@2 c3 eb3@2 ~ bb3 ~ c4 db4@2 eb4@5 ~ f4@5 ~@7 ab3@5 ~ db4@5 ~ c4@5 ~ bb3@5 ~ ab3@5 ~ bb2@5 ~ db3@5 ~ f3@5 ~@7 db4@5 ~ c4@5 ~ bb3@5 ~@7 c3@5 ~ f3@5 ~ ab3@5 ~ c4@5 ~ c3@5 ~ f3@5 ~ ab3@5 ~ c4@5 ~ d3@5 ~ g3@5 ~ bb3@5 ~ d4@5 ~ d3@5 ~ g3@5 ~ bb3@5 ~ d4@5 ~ db3@5 ~ f3@5 ~ ab3@5 ~ db4@5 ~ db3@5 ~ f3@5 ~ bb3@5 ~ db4@5 ~ eb3@5 ~ ab3@5 ~ c4@5 ~ eb4@5 ~ eb3@5 ~ ab3@5 ~ c4@5 ~ eb4@5 ~ d3@5 ~ g3@5 ~ b3@5 ~ d4@5 ~ d3@5 ~ g3@5 ~ b3@5 ~@2 d4@5 ~ d3@5 ~@7 b3@5 ~@2 d4@5 ~ g3@5 ~, ~@2 ab3 ~@2 ab3 ~@186]/8",
  D: "f3@5 ~ d3@5 ~ e3@2 ~@4 c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~",
  E: "e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ g3@5 ~ a3@5 ~ d3@5 ~",
  F: "f3@5 ~ bb3@5 ~ d4@5 ~ d3@5 ~ g3@5 ~ bb3@5 ~ d4@5 ~ c3@5 ~",
  G: "e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ d4@5 ~ d3@5 ~",
  H: "f3@5 ~ bb3@5 ~ d4@5 ~ c3@5 ~ e3@5 ~ g3@5 ~ c4@5 ~ c3@5 ~",
  I: "e3@5 ~ g3@5 ~ bb3@5 ~ c3@5 ~ e3@5 ~ a3@5 ~ c4@5 ~ d3@5 ~",
  J: "f3@5 ~ a3@5 ~ d4@5 ~ d3@5 ~ f3@5 ~ bb3@5 ~ d4@5 ~ eb3@5 ~",
  K: "g3@5 ~ bb3@5 ~ eb4@5 ~ c3@5 ~ eb3@5 ~ g3@5 ~ c4@5 ~ ab2@2 ~ bb2@2 ~",
  L: "~@3 eb3@2 ~ ab3@2 ~ c3@2 ~ ab3@2 ~ c4@2 ~ eb4@5 ~ f4@5 ~ db4@2 ~@4 ab3@5 ~ db4@5 ~, ~@8 bb2@2 ~ eb3@2 ~ bb3@2 ~ db4@2 ~@29",
  M: "c4@5 ~ bb3@5 ~ ab3@5 ~ bb2@5 ~ db3@5 ~ f3@5 ~@7 db4@5 ~",
  N: "c4@5 ~ bb3@5 ~ ab3@5 ~ c3@5 ~ f3@5 ~ a3@5 ~ c4@2 ~@4 f4@2 ~@4", O: "c4@5 ~@43",
})).s("gm_acoustic_guitar_nylon").gain(0.09).pan(0.6)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@10 A@6 B@3 C@8 D E F G H I J K L M N@2>".pickRestart({
  A: "[~@23 [g5,c6]@12 [g5,bb5]@12 [f5,a5]@12 [d5,bb5]@12 [d5,bb5]@12 [e5,g5]@12 [c5,a5]@12 [d5,f5]@12 [c5,e5]@9 [d5,f5]@3 [e5,g5]@4 [f5,a5]@4 [g5,bb5]@4 [c5,e5]]/6", // C5 Gm F Gm Em F Dm C …
  B: "[~@5 [d5,f5]@3 [e5,g5]@3 [f5,a5]@9 [d5,f5]@3 [d5,bb5]@12 [eb5,g5]@4 [f5,a5]@4 [g5,bb5]@4 [eb5,c6]@16 [ab5,db6]@4 [ab5,eb6]@4 [c5,eb6]]/3", // Dm Em F Dm Gm Eb F Gm …
  C: "[~@4 [db5,f6]@12 [ab4,ab5]@6 [db5,db6]@6 [c5,c6]@6 [bb4,bb5]@6 [ab4,ab5]@6 [f4,f5]@18 [ab4,ab5]@6 [db5,db6]@6 [c5,c6]@6 [bb4,bb5]@6 [ab4,ab5]@6 [g5,ab5]@8 [f5,ab5]@8 [eb5,ab5]@8 [d5,ab5]@24 [g5,bb5]@18 [g4,g5]@6 [eb5,eb6]@6 [d5,d6]@6 [c5,c6]@6 [bb4,bb5]@6 [db5,ab5]@24 [db5,bb5]@24 [eb5,c6]@18 [eb4,eb5]@6 [ab4,ab5]@6 [g4,g5]@6 [f4,f5]@6 [eb4,eb5]@6 [d5,g5]@24 [g5,b5]@24 [b5,d6]@25 [d6,f6]@25]/8", // Db Ab Db C Bb Ab F Ab …
  D: "[g5,c6] [g5,bb5]", E: "[f5,a5] [d5,bb5]", F: "[d5,bb5] [e5,g5]", G: "[c5,a5] [d5,f5]",
  H: "[c5,e5]@9 [d5,f5]@3 [e5,g5]@4 [f5,a5]@4 [g5,bb5]@4", I: "[c5,e5]@2 [d5,f5] [e5,g5] [f5,a5]@3 [d5,f5]",
  J: "[d5,bb5]@3 [eb5,g5] [f5,a5] [g5,bb5]", K: "[eb5,c6]@4 [ab5,db6] [ab5,eb6]",
  L: "[c5,eb6] [db5,f6]@2 [ab4,ab5] [db5,db6] [c5,c6] [bb4,bb5] [ab4,ab5]", // Cm Db Ab Db C Bb Ab
  M: "[f4,f5]@3 [ab4,ab5] [db5,db6] [c5,c6] [bb4,bb5] [ab4,ab5]", N: "[[g4,eb6] [a4,f6]@11 ~@4]/2",
})).s("gm_string_ensemble_2").gain(0.17).pan(0.1)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@10 A@6 B@3 C@8 D E F G H I J K L M N@2>".pickRestart({
  A: "[~@23 [g4,c5]@12 [g4,bb4]@12 [f4,a4]@12 [d4,bb4]@12 [d4,bb4]@12 [e4,g4]@12 [c4,a4]@12 [d4,f4]@12 [c4,e4]@9 [d4,f4]@3 [e4,g4]@4 [f4,a4]@4 [g4,bb4]@4 [c4,e4]]/6", // C5 Gm F Gm Em F Dm C …
  B: "[~@5 [d4,f4]@3 [e4,g4]@3 [f4,a4]@9 [d4,f4]@3 [d4,bb4]@12 [eb4,g4]@4 [f4,a4]@4 [g4,bb4]@4 [eb4,c5]@16 [ab4,db5]@4 [ab4,eb5]@4 [c4,eb5]]/3", // Dm Em F Dm Gm Eb F Gm …
  C: "[~@4 [db4,f5]@12 [ab3,ab4]@6 [db4,db5]@6 [c4,c5]@6 [bb3,bb4]@6 [ab3,ab4]@6 [f3,f4]@18 [ab3,ab4]@6 [db4,db5]@6 [c4,c5]@6 [bb3,bb4]@6 [ab3,ab4]@6 [g4,ab4]@8 [f4,ab4]@8 [eb4,ab4]@8 [d4,ab4]@24 [g4,bb4]@18 [g3,g4]@6 [eb4,eb5]@6 [d4,d5]@6 [c4,c5]@6 [bb3,bb4]@6 [db4,ab4]@24 [db4,bb4]@24 [eb4,c5]@18 [eb3,eb4]@6 [ab3,ab4]@6 [g3,g4]@6 [f3,f4]@6 [eb3,eb4]@6 [d4,g4]@24 [g4,b4]@24 [b4,d5]@25 [d5,f5]@25]/8", // Db Ab Db C Bb Ab F Ab …
  D: "[g4,c5] [g4,bb4]", E: "[f4,a4] [d4,bb4]", F: "[d4,bb4] [e4,g4]", G: "[c4,a4] [d4,f4]",
  H: "[c4,e4]@9 [d4,f4]@3 [e4,g4]@4 [f4,a4]@4 [g4,bb4]@4", I: "[c4,e4]@2 [d4,f4] [e4,g4] [f4,a4]@3 [d4,f4]",
  J: "[d4,bb4]@3 [eb4,g4] [f4,a4] [g4,bb4]", K: "[eb4,c5]@4 [ab4,db5] [ab4,eb5]",
  L: "[c4,eb5] [db4,f5]@2 [ab3,ab4] [db4,db5] [c4,c5] [bb3,bb4] [ab3,ab4]", // Cm Db Ab Db C Bb Ab
  M: "[f3,f4]@3 [ab3,ab4] [db4,db5] [c4,c5] [bb3,bb4] [ab3,ab4]", N: "[[g3,eb5]@6 [a3,f5]@65 ~@25]/2",
})).s("gm_string_ensemble_1").gain(0.22).pan(0.9)

// drums · kick
const kick = s("bd").struct("<~@2 A B@15 C B@2 D@2 B E B F G H G@6 I@2 J K>".pickRestart({
  A: "~@23 x", B: "~@8 x ~@2 x ~@11 x", C: "~@8 x ~@14 x", D: "~@11 x ~@8 x ~@2 x", E: "~@11 x ~@11 x",
  F: "~@35 x ~@12", G: "x ~@2 x!2 ~@3", H: "x ~@2 x!2 ~@2 x", I: "x!3 ~@5", J: "x!2 ~@5 x", K: "x",
})).gain(0.46)

// drums · rim
const rim = s("rim").struct("<~@11 [~@17 x ~@6]!8 ~@20>").gain(0.51)

// drums · snare
const snare = s("sd").struct("<~@19 [~@5 x ~@11 x ~@6]!7 ~ [~ x ~ x]!8 [~@4 x ~@2 x]!2 [~ x] ~>").gain(0.51)

// drums · low tom
const low_tom = s("lt").struct("<~@18 [~@17 x ~@6] ~@16 [~@13 x ~@2]!2 ~ x>").gain(0.46)

// drums · hihat
const hihat = s("hh").struct("<~@3 A B@8 C D@5 E F G H I J K@2 ~@9 L@2 ~@2>".pickRestart({
  A: "~@17 x ~@6", B: "~@5 x ~@11 x ~@6", C: "~@5 x ~@11 x ~@2 x ~@2 x", D: "~@5 x ~@5 x ~@5 x ~@5 x",
  E: "~@5 x ~@5 x ~@11 x", F: "~@2 x ~@2 x ~@5 x ~@5 x ~@5 x", G: "~@5 x ~@5 x ~@5 x ~@2 x ~@2 x",
  H: "~@2 x ~@2 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x", I: "~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@2 x ~@2 x",
  J: "~@5 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x", K: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", L: "~@2 x!2",
})).gain(0.36)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@3 A ~@15 B C D E F ~@15>".pickRestart({
  A: "~@5 x ~@18", B: "~@4 x ~@2 x ~@2 x ~", C: "~ x ~@2 x ~@2 x ~@4", D: "~@7 x ~@4", E: "~ x ~", F: "~ x ~@5 x ~@4",
})).gain(0.21)

// drums · mid tom
const mid_tom = s("mt").struct("<~@36 [~@9 x ~@6] [~@7 x] ~>").gain(0.41)

// drums · high tom
const high_tom = s("ht").struct("<~@35 [~@5 x ~@2] [~@3 x ~@4] [~@3 x] ~>").gain(0.36)

// drums · crash
const crash = s("cr").struct("<~@26 [~@3 x] x ~ x ~@5 [x!2 ~@6]!3 ~>").gain(0.51)

// drums · crash · soft notes
const crash_soft = s("cr").struct("<~ [~@11 x ~@2 x ~@9]!2 ~@36>").gain(0.1)

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

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@27 [~@11 x ~@4] [~ x ~@6] ~ [~@7 x] [~@3 x ~@4] ~@7>").gain(0.21)

stack(
  bass, orchestral_harp, vibraphone, ocarina, acoustic_guitar_nylon, acoustic_guitar_nylon_2, string_ensemble_2,
  string_ensemble_1, kick, rim, snare, low_tom, hihat, hihat_soft, mid_tom, high_tom, crash, crash_soft, ride, ride_soft
)

More by Bernstein Leonard