Strudelify

Dance With Me

Orleans

KeyD♭ majorTempo97 bpm
0:00/0:00
// Dance With Me — Orleans
// 97 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (8/8 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: ch 14 "RECORDER" named as a pipe, played on recorder (its clarinet patch is not one)
// note: Full arrangement: all 83 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(97/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 · acoustic guitar nylon · "GUITAR"
const acoustic_guitar_nylon = note("<A@2 B@2 C@2 D E@8 F@5 G@8 H@2 I J@8 K@6 L@7 G@8 M@2 I N@8 O@5 P Q@6>".pickRestart({
  A: "[~@3 d5@3 ~ g4 ~@3 gb4@3 ~@5 d3 ~@3 gb4 ~@2 gb4@2 gb2@4, d3@9 d3@7 d4@4 b2@4 [a2,a3]@4 ~@4, d5@2 gb4@2 ~@2 d5@3 d4@3 ~@3 gb4@3 gb4@2 ~@2 d4@2 ~ d4@3 ~@4, ~ d4@7 gb4@2 d5@4 d5@3 d5@3 ~@12]/2", // A
  B: "[[db4,e4]@3 ~ e4@2 ~@4 a3@2 ~@2 gb3 a3@3 [db4,e4] [d4,gb4] ~ [e4,g4] ~ [d4,gb4] ~ [db4,e4] ~ [b3,d4] ~ [a3,db4]@3, ~@3 [d4,gb4]@5 ~@8]/2", // Dbm D Em D Dbm Bm A D
  C: "[[a3,db4]@3 db4@3 ~@4 d3@2 ~@2 b2 d3@3 [a3,db4] [b3,d4] ~ [db4,e4]@2 [b3,d4] ~ [a3,db4] ~ [g3,b3] ~ [gb3,a3]@2 [gb3,a3], ~@3 [b3,d4]@5 ~@8]/2", // A Bm Dbm Bm A G Gbm Bm
  D: "[g3,b3]@3 [gb3,a3]@3 [gb3,a3]@3 ~ [e3,g3]@4 [e3,g3]@2", // G Gbm Em
  E: "[~@3 [gb3,a3]@2 ~ b3@3 ~ [b3,d4]@3 [db4,e4]@2 [gb3,a3] [db4,e4]@3 ~ e4@2 a3@10 ~@3 a4@3 ~@5 d4 ~@3 d3 [db4,e4]@3 ~ e4@2 ~@4 a3@2 ~@2 gb3 a3@3 [db4,e4] [d4,gb4] ~ [e4,g4] ~ [d4,gb4] ~ [db4,e4] ~ [b3,d4] ~ [a3,db4]@3 [a3,db4]@3 db4@3 ~@4 d3@2 ~@2 b2 d3@3 [a3,db4] [b3,d4] ~ [db4,e4]@2 [b3,d4] ~ [a3,db4] ~ b3 ~ [gb3,a3]@2 [gb3,a3] b3@3 [gb3,a3]@3 [gb3,a3]@3 ~ [e3,g3]@4 [e3,g3]@2, e3@23 e3@38 ~@3, g3@6 g3@101 g3@5 g3@10 ~@6, ~@32 d3@15 ~@81, ~@32 a4 a3 d4@2 ~@2 a4 d4 a3 a4 a3@2 ~@10 [d4,gb4]@10 ~@22 [b3,d4]@10 ~@32]/8", // Gbm Bm Dbm Gbm Dbm D Em D …
  F: "[~@3 [gb3,a3]@2 ~ b3@3 ~ [b3,d4]@3 [db4,e4]@2 [gb3,a3] [db4,e4]@3 ~ e4@2 [a3,d4]@10 ~@3 a4@3 ~@5 d4 ~@3 d3 [d4,gb4]@4 ~@2 b3@4 [b3,d4]@3 [db4,e4]@3 [b3,d4]@3 [a3,db4]@3 ~@10, e3@23 e3@17, g3@3 g3@24 g3@13, ~@32 d3@15 ~@33, ~@32 a4 a3 d4@2 ~@2 a4 d4 a3 a4 a3@2 ~@36]/5", // Gbm Bm Dbm Gbm Dbm D5 D Bm …
  G: "[[d4,gb4]@4 ~@2 b3@6 a3@4 b3@2 a3 e3@2 e3 ~@10 b3@2 d4@2 b3 ~ d4@4 e4@2 gb4 ~ e4@6 g4@2 g4@6 gb4 ~ [db4,f4]@17 ~ [gb4,a4]@4 ~@4 [e4,g4]@4 [d4,gb4]@3 a3 [db4,e4]@3 ~ e4@2 ~@4 a3@2 ~@2 gb3 a3@3 [db4,e4] [d4,gb4] ~ [e4,g4] ~ [d4,gb4] ~ [db4,e4] ~ [b3,d4] ~ [a3,db4]@3, ~@3 g3@61, ~@11 e3@53, ~@51 [d4,gb4]@5 ~@8]/8", // D Db Gbm Em D Dbm D Em …
  H: "[[a3,db4]@3 ~@6 [d4,gb4]@2 b3@5 ~@2 [a3,db4] [b3,d4] ~ [db4,e4]@2 [b3,d4] ~ [a3,db4] ~ b3 ~ [gb3,a3]@2 [gb3,a3], ~@11 g3@16 g3@5]/2", // A D A Bm Dbm Bm A Gbm
  I: "b3@3 [gb3,a3]@3 [gb3,a3]@3 ~ [e3,g3]@4 [e3,g3]@2, g3@5 ~@3", // Gbm Em
  J: "[~@3 [gb3,a3]@2 ~ b3@3 ~ [b3,d4]@3 [db4,e4]@2 [gb3,a3] [db4,e4]@3 ~ e4@2 [a3,d4]@10 ~@3 a4@3 ~@5 d4 ~@4 d3 ~ [gb4,a4]@2 a4@2 d5 b4 ~ a4@3 gb4@2 d5 g4 ~ gb4@3 d4@2 gb4 e4 ~ d4@3 a3@2 ~@2 b3@8 ~@2 g4 ~@4 b4 g4 a4 ~@2 b3 ~ [a3,db4] ~ [b3,d4]@2 [a3,db4] [b3,d4] ~ [db4,e4]@3 gb4@3 [d4,gb4]@2 ~ [d4,gb4]@3 ~ b3@2 ~ [db4,e4]@2 [g3,b3], e3@23 e3@41, g3@6 g3@72 g3@10 g3@12 g3@22 g3@5 ~, ~@32 d3@15 ~@42 d4@2 ~@2 b4@2 ~@33, ~@32 a4 a3 d4@2 ~@2 a4 d4 a3 a4 a3@2 ~@44 d5@6 d5@5 ~@29]/8", // Gbm Bm Dbm Gbm Dbm D5 Gbm A …
  K: "[b3@3 [a3,db4]@2 ~ [b3,d4]@3 ~ db4@3 [db4,e4]@2 [db4,e4]@3 ~@2 e4 gb4@2 ~@4 a4 ~@19 a4 d3 ~ [d4,gb4]@2 gb4@2 d5 [e4,g4] ~ [d4,gb4]@3 d4@2 gb4 e4 ~ d4@3 a3@2 d4 b3 ~ a3@3 ~@2 a3 ~ b3@7 ~@4 b4 ~@3 b3, g3@89 g3@4 gb3@3, ~@18 a3@5 ~ d3@4 ~@3 e3@45 e3@20, ~@19 d4@4 d4@2 a3@3 ~@4 a3@2 d4@2 gb3@2 d4@2 d3@2 d4@2 b2@2 d4@2 ~@40 b4@3 ~ a4@4, ~@26 d4@2 ~@5 d3@2 a4@2 a3@2 a4@2 a3@2 a4@2 a3@3 ~@42 b3@4 g3@2]/6", // A Bm Dbm D Em D
  L: "[~@7 b3 e4@2 gb4 ~ g4@2 gb4 ~ [bb3,gb4]@3 e4 ~@2 g3@4 [g3,b3]@3 db4@3 d4@3 [b3,d4] ~ e4 ~ [db4,gb4] [d4,g4]@2 [db4,gb4]@2 [db4,e4] [a3,d4]@2 db4 ~@6 d4@6 ~@3 d4 ~@3 d4@4 b3 ab3@4 ~@3 gb3 [d4,gb4]@4 ~@2 b3@4 [b3,d4]@3 [db4,e4]@3 [b3,d4]@3 [a3,db4]@3 ~@10, g4@3 b3@3 g3@16 ~@7 g3@57 g3@26, ~ e3@75 e3@36, ~@2 g3@3 d3@3 ~@40 [d3,e4]@3 a3 [d3,gb4]@8 ~ a3@2 ~ db4@2 d3@6 ~@40, ~@4 gb4@4 ~@14 e4@2 ~@25 a3 db4@3 a3@7 db4@2 d3@3 a3@4 ~@43]/7", // Ebm G Bm Gb5 G5 Gb5 Dbm D5 …
  M: "[[a3,db4]@3 db4@3 ~@4 d3@2 ~@2 b2 d3@3 [a3,db4] [b3,d4] ~ [db4,e4]@2 [b3,d4] ~ [a3,db4] ~ b3 ~ [gb3,a3]@2 [gb3,a3], ~@6 [b3,d4]@10 ~@11 g3@5]/2", // A Bm Dbm Bm A Gbm Bm
  N: "[~@3 [gb3,a3]@2 ~ b3@3 ~ [b3,d4]@3 [db4,e4]@2 [gb3,a3] [db4,e4]@3 ~ e4@2 [a3,d4]@10 ~@3 a4@3 ~@5 d4 ~@3 d3 [db4,e4]@3 ~ e4@2 ~@4 a3@2 ~@2 gb3 a3@3 [db4,e4] [d4,gb4] ~ [e4,g4] ~ [d4,gb4] ~ [db4,e4] ~ [b3,d4] ~ [a3,db4]@3 [a3,db4]@3 db4@3 ~@4 d3@2 ~@2 b2 d3@3 [a3,db4] [b3,d4] ~ [db4,e4]@2 [b3,d4] ~ [a3,db4] ~ b3 ~ [gb3,a3]@2 [gb3,a3] b3@3 [gb3,a3]@3 [gb3,a3]@3 ~ [e3,g3]@4 [e3,g3]@2, e3@23 e3@38 ~@3, g3@6 g3@101 g3@5 g3@10 ~@6, ~@32 d3@15 ~@81, ~@32 a4 a3 d4@2 ~@2 a4 d4 a3 a4 a3@2 ~@10 [d4,gb4]@10 ~@22 [b3,d4]@10 ~@32]/8", // Gbm Bm Dbm Gbm Dbm D5 Dbm D …
  O: "[~@3 [gb3,a3]@2 ~ b3@3 ~ [b3,d4]@3 [db4,e4]@2 [gb3,a3] [db4,e4]@3 ~ e4@2 [a3,d4]@10 ~@3 a4@3 ~@5 d4 ~@3 d3 [db4,e4]@3 ~ [db4,e4] ~ [d4,gb4]@10 ~@3 a4@3 ~@5 d4 ~@3 d3, e3@79 ~, ~@32 d3@15 ~@17 d3@15 ~, ~@32 a4@2 d4@2 ~@2 a4@2 a3 a4@3 ~@20 a4@2 d4@2 ~@2 a4@2 a3 a4@3 ~@4, ~@33 a3@3 ~@3 d4@3 a3@2 ~@21 a3@3 ~@3 d4@3 a3@2 ~@4]/5", // Gbm Bm Dbm Gbm Dbm D5 Dbm D
  P: "[db4,e4]@4 [db4,e4] ~ [d4,gb4]@10", // Dbm D
  Q: "[~@4 d5@3 ~ g4 ~@3 gb4@3 ~@5 d3 b2@3 ~ gb4 ~@2 gb4@3 gb2@7 ~@2 gb4@46 ~@10, ~ d3@9 d3@7 d4@4 ~@3 d4@2 [a2,a3]@6 ~@6 a2@48 ~@10, ~ d5@2 gb4@2 ~@2 d5@3 d4@3 ~@3 gb4@3 gb4@2 ~@6 d4@4 ~@8 [d3,a3,d4]@47 ~@10, ~@2 d4@7 gb4@2 d5@4 d5@3 d5@3 ~@75]/6", // A D5
})).s("gm_acoustic_guitar_nylon").gain(0.25)

// other · acoustic guitar nylon · "GUITAR-PITCH"
const acoustic_guitar_nylon_2 = note(`<
  A B C ~ D ~@3 E F C ~ D ~@3 G F ~ H ~@5 I C ~ J ~@3 G F K ~ L ~ M N O ~ P ~@4 Q ~ R ~ H ~@5 I C ~ D ~@3 G F C ~ D ~@3
  G F ~ F ~ S T@2 ~@3
>`.pickRestart({
  A: "~@4 gb4@3 ~@5 d4@4", B: "~ a3 ~ e3", C: "~@4 db4@2 ~@2 e3@3 ~ a3@3 ~", D: "~@3 a3@3 ~@2 a2@3 ~ d3@3 ~",
  E: "~@2 db4 ~@5", F: "~@4 a3@3 ~@5 e3@2 ~@2", G: "~@4 db4 ~@11", H: "~@3 [b3,d4]@4 ~", I: "~@5 [ab4,b4]@3 ~@8",
  J: "~@3 [b3,d4]@5 ~@8", K: "~@2 gb4 ~@3 d4 ~", L: "~@11 a4@2 ~@3", M: "d4@3 ~@13", N: "~@10 a3@3 ~@3",
  O: "~@12 a3@3 ~", P: "~@2 d4 ~@5", Q: "b3@3 ~@13", R: "~@4 a3@3 ~@9", S: "~@5 gb4@3 ~@5 d4@3",
  T: "[~@5 a3@4 ~@6 e3@7 ~@10]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.25)

// bass · slap bass 1 · "BASS"
const bass = note(`<
  ~@2 A@2 B C D E A F A@2 B G D H A I J K L M N@3 O A@2 B C D E A F A@2 B C D E A F A@2 B G D H A I J K L M N@3 O A@2 B
  C D E A F A@2 B C D E A F A P Q@4 ~@3
>`.pickRestart({
  A: "d2@4 d2 ~@2 a1 ~ a1 d2@2 d2 ~@2 d2", B: "g1@4 g1 ~@2 e1 ~ e1 g1@2 g1 ~@2 g1", C: "g1@4 g1 ~@2 g1 g1@4 gb1@4",
  D: "e1@4 e1 ~@2 e1 e1@4 e1 ~ g1@2", E: "a1@6 ~@2 a2@5 ~ e2 ~", F: "d2@7 a1 d2 ~ d2!2 a1 d2 e2 ~",
  G: "g1@4 g1 ~@2 g1 g1@2 g2@2 gb1@2 gb2@2", H: "a1@4 a1 ~ e1@2 a1@4 a1 ~ e2@2", I: "d2@4 d2 ~@2 a1 d2 a1 d2@6",
  J: "g1@4 g1 ~ g1@7 ~@3", K: "a1@4 a1 ~ a1@7 ~@2 g1", L: "g1@4 g1 ~ g1@6 gb1@4", M: "e1@8 ~@2 e1@2 ~ gb1@2 ~",
  N: "[g1@4 g1 ~ g1@7 ~ a1@6 ~@2 bb1@7 ~ b1@4 e1@2 gb1 d2 gb1 a1 a1@2 b1!2 e2@2 e1 ~]/3", O: "e1 a1",
  P: "d2@4 d2@3 d2 d2@4 d2@3 d2", Q: "[d2@27 ~@5]/4",
})).s("gm_slap_bass_1").gain(0.72)

// chords · epiano1 · "E.PIANO"
const epiano1 = note(`<
  ~@2 A@2 B@2 C D E F G@2 H I C J K L M ~ M ~ N@3 ~ O@2 P@2 Q R@2 S T U V W X Y Z AA AB AC V W X Y ~@2 AD AE AF AG AH@3
  ~@3 AI I C J AJ AK AL@2 H I C J AM@4 AN@2 AO@5
>`.pickRestart({
  A: "[~ a5, ~@7 a4@8 ~, ~@15 d5@16 ~]/2", B: "[[e4,a4,db5]@3 ~ b5@4, ~@3 gb5@5, ~@13 b4@19]/2",
  C: "[g5,b5]@3 [gb5,a5]@3 [gb5,a5]@4 ~@2 g4@4, ~@5 [e5,g5]@3", D: "[e5,g5]@3 [d5,gb5]@3 [db5,e5]@10",
  E: "~@3 [gb5,a5]@5", F: "~@8 [db5,e5] [d5,gb5] ~@6",
  G: "[[gb4,a4,d5]@3 ~ [gb4,a4,d5] ~ [d4,gb4,a4]@8 ~ [db4,gb4,a4]@16 ~]/2", H: "[e4,a4,db5]@3 [d4,gb4,b4]@5",
  I: "[gb5,b5]@5 [e5,a5]@3, b4", J: "[e5,g5]@3 [d5,gb5]@3 [db5,e5]@4 [db5,e5]@4 [e5,a5]@2",
  K: "[db5,e5]@3 ~ [d5,gb5] ~ [d5,gb5]@10", // Dbm D
  L: "~@4 [a4,d5] [gb4,b4,d5] ~@2 [e4,a4,d5] [gb4,b4,d5] ~@2 [d4,gb4]@2 [d4,e4] ~", // D5 Bm Dsus2 Bm D Dsus2
  M: "[d4,gb4,b4]@2 ~ [d4,gb4,b4]@3 ~@2", // Bm
  N: "[[d4,gb4,b4]@2 ~ [d4,gb4,b4]@3 ~ [e4,g4,db5]@4 [g4,db5,e5]@3 [gb4,b4,d5] [gb4,b4,d5]@4 ~@5]/3", // Bm Dbdim Bm
  O: "[~@3 a6@4 ~, ~@5 a5@8 ~@3]/2", P: "[~@10 b5@14 a5 ~@7]/2",
  Q: "[b4,g5]@3 [a4,gb5]@3 [a4,gb5]@4 ~@4 g4@2, ~@5 [b4,g5]@3", // Em D Em
  R: "[[b4,g5]@3 [a4,gb5]@3 ~@10 [gb4,d5]@16, ~@3 [g4,e5]@5 ~@8, ~@7 a4@8 ~]/2", // Em D C
  S: "[gb5,a5]@3 [gb5,a5] [e5,g5]@3 [e5,g5] [d5,gb5]@3 [d5,gb5] [b4,e5]@4", T: "[gb4,a4,d5] ~@7 [gb4,a4,d5] ~@7",
  U: "[gb4,a4,d5] ~@5 [gb4,a4,d5] ~@4 [gb4,a4,d5] ~@4", V: "[gb4,b4,d5]@4 ~@7 [gb4,b4,d5] ~@4",
  W: "[gb4,b4,d5] ~@5 [gb4,b4,d5] ~@4 [gb4,b4,d5] ~@4", X: "~@3 [e4,g4,b4,d5] ~@5 [e4,g4,b4,d5] ~ [e4,g4,b4,d5] ~@4",
  Y: "[a3,db4,g4,a4]@4 ~@7 [a3,db4,g4,a4] ~@4", Z: "[a3,db4,gb4,a4]@4 ~@7 [a3,db4,gb4,a4,d5] ~@4",
  AA: "[d5,gb5] ~@2 [d5,gb5] [e5,g5] ~@2 [e5,g5] [d5,gb5] ~@2 [d5,gb5] [b4,e5] ~@2 [b4,e5]", // D Em D E5
  AB: "[a4,d5]@2 ~ [a4,d5] ~@2 [gb4,a4,d5] ~@2 [gb4,a4,d5] ~ [gb4,a4,d5]!2 ~@3", // D5 D
  AC: "[a4,d5]@2 ~ [a4,d5] ~@2 [gb4,a4,d5] ~@2 [gb4,a4,d5] ~ [gb4,a4,d5] ~@4", // D5 D
  AD: "e5 gb5@3 ~@2 [g4,b4,d5,gb5]@8 ~@2, [g4,b4,d5] ~@3", AE: "[g4,db5,e5,a5]@4 ~@2 [g4,db5,e5,a5]@7 b5 ~@2",
  AF: "[b5,d6]@4 ~@2 [b4,d5,gb5]@6 e5 gb5@3", AG: "d5@10 d5@2 ~ db5@3",
  AH: "[bb5 b5@4 ~ [d5,gb5,b5]@8 a5@4 g5@2 gb5@2 e5@4 gb5@2 e5@2 [b4,d5]@16 ~@2, [d5,gb5]@2 ~@5 db5@4 db5@4 ~@9]/3", // Bm D
  AI: "~@12 e5 gb5 ~@2, ~@6 [g4,d5] ~", AJ: "[db5,e5]@3 ~ [d5,gb5] ~@7 a5@4, ~@3 [d5,gb5]@4 ~, ~@11 a4@5",
  AK: "g5 gb5 e5 d5", AL: "[[gb4,a4,db5]@4 [gb4,a4,db5] ~ [d4,gb4,a4]@8 ~ [db4,gb4,a4]@16 ~]/2",
  AM: "[[d4,a4,db5,e5]@3 ~ [d4,a4,db5,e5] ~ [d4,a4,d5,gb5]@21 ~@5]/2", // A D
  AN: "[[d5,a5,db6,e6]@4 [d5,a5,db6,e6] ~@2 [d6,gb6]@11 ~@11 [g4,a4,e5,gb5]@3, ~@6 [d5,a5]@11 ~@15]/2", // A D Gbm7 D5
  AO: "[~ [gb4,a4,d5,gb5]@4 [gb4,g4,b4,gb5]@4 ~ [db4,e4,g4,d5]@5 [db4,e4,g4,b4]@7 [d3,a3,gb4,a4,d5]@48 ~@10]/5", // D Gmaj7 Dbdim Dbm7b5 D
})).s("gm_epiano1").gain(0.13)

// chords · epiano1 · "60'S E.PIANO"
const epiano1_2 = note("<~@18 A B A C A ~@26 D E F E G ~@16 H ~@12>".pickRestart({
  A: "[g3,b3,d4,gb4]@2 ~ [g3,b3,d4]@4 ~", B: "[g3,db4]@4 ~@2 [g3,db4]@4 [db4,e4,a4] ~@5", C: "[g3,db4] ~",
  D: "~@2 [b3,e4,a4] ~@3 [b3,e4,a4]@3 ~ [b3,e4,a4] ~ [ab3,gb4,c5,d5]@4", E: "[g4,b4,d5,gb5]@2 ~ [g4,b4,d5,gb5]@5",
  F: "[g4,db5,e5,a5]@2 ~ [g4,db5,e5,a5]@5", G: "[g4,db5,e5,a5] ~",
  H: "~@4 [g3,b3]@2 ~@6 db4 d4 ~@2, ~@4 [db4,d4] ~@7 [g3,b3]@2 ~@2", // G Dmaj7 G
})).s("gm_epiano1").gain(0.23).pan(0.6)

// chords · string ensemble 2 · "STRINGS-R"
const string_ensemble_2 = note("<~@18 A B C ~@8 D@2 E@2 F@2 ~@15 A B C ~@16 D@2 G@3 H@6 ~@3>".pickRestart({
  A: "[gb4,b4]@3 ~@13", B: "[e4,a4]@3 ~@13", C: "[gb4,b4]@3 ~@3 b4@6 ~@4, ~@6 gb4@3 ~@7", D: "[d6@7 b5]/2",
  E: "[a5@31 ~]/2", F: "[[d4,gb4]@7 ~]/2", G: "[~ [gb4,a4]@2, a5]/3", H: "[[gb4,a4,a5]@43 ~@5]/6",
})).s("gm_string_ensemble_2").gain(0.11).pan(0.7)

// chords · string ensemble 1 · "STRINGS-R"
const string_ensemble_1 = note(`<
  ~@18 A B C D E@3 F@2 G H@8 I J K L M N O@2 P Q R L M N A B C D E@3 S@5 ~@4 T U@2 ~@14
>`.pickRestart({
  A: "~@3 [gb4,b4]@4 ~", B: "~@3 [e4,a4]@4 ~", C: "~@3 [e4,a4]", D: "[g4,d5]@8 ~@2 d4@3 e4@3",
  E: "[[d4,gb4]@2 ~ [d4,gb4]@2 ~@2 [db4,e4]@3 ~ [db4,e4]@3 ~ [b3,d4]@9]/3", // D Dbm Bm
  F: "[[d4,gb4]@5 [d4,g4] [d4,gb4]@2 [d4,e4]@4 a3@16 ~@2 gb6 g6]/2", G: "a6",
  H: "[~@14 e6 ~@93 [d4,g4]@4 [d4,gb4]@4 [b3,e4]@4 d4@4 e4@2 gb4@2, ~@15 gb6@113, ~@15 a3]/8", I: "~@3 b4, [b3,g4]",
  J: "g5@3 gb5, b4", K: "[g4,b4]@3 g4", L: "e5@3 a4, db5", M: "a4@3 b4, d5", N: "d5 e5 gb5 g5",
  O: "[[gb5,a5]@5 [e5,g5] [d5,gb5] [db5,e5]]/2", P: "[b4,d5]@3 [a4,db5]", Q: "b4 a4 g4 gb4", R: "g4",
  S: "[[d4,gb4]@5 [d4,g4] [d4,gb4]@2 [d4,e4]@4 [a3,d4]@68]/5", T: "~@15 g6", U: "[a6@29 ~ e6 ~]/2",
})).s("gm_string_ensemble_1").gain(0.11).pan(0.7)

// other · orchestral harp · "HARP"
const orchestral_harp = note("<~@32 A B ~@7 A C ~@6 D E ~@21 A B ~@9>".pickRestart({
  A: "~@10 e4 [gb4,g4] [a4,b4] [db5,d5] [e5,gb5] [g5,a5]", B: "[b5,db6] d6 ~@14",
  C: "[b5,db6] d6 [gb6,g6,a6]@4 ~@10, ~ e6@4 ~@11", // Bsus2 Gbm
  D: "~@5 e4 [gb4,g4,a4] [b4,db5] [d5,e5] [gb4,g4,a4] [b4,db5] [d5,e5,gb5] [b4,g5] [db5,d5] [e5,gb5,g5] [a5,b5]", // Gbm Bsus2 Dsus2 Gbm Bsus2 D Em Dmaj7 …
  E: "~ gb6@4 ~@11, [db6,d6,e6] ~@3", // Dbm
})).s("gm_orchestral_harp").gain(0.19)

// other · orchestral harp · "HARP" · soft notes
const orchestral_harp_soft = note("<~@33 A ~@39 A ~@5 B@3 ~>".pickRestart({
  A: "~ [gb6,g6,a6]@2 ~@5, ~ e6@4 ~@11", B: "[~@7 [a4,d5] gb5 a5@25 ~@14]/3",
})).s("gm_orchestral_harp").gain(0.13)

// other · woodblock
const woodblock = note(`<
  ~@2 A@2 B A@4 C D E F G H I F J K@3 L K ~@2 M N O N O P Q R S A@2 T A U V W ~ A@2 T A U V W ~ K@3 X K ~@2 M D E F G H
  I F Y D E F G H I F J F J Z ~@6
>`.pickRestart({
  A: "~@4 d5 ~@7 d5 ~@3", B: "~@4 gb6 ~@7 d5 ~@3", C: "~@4 d5 ~@3 a4 ~@3 d5 ~@3", D: "~@4 d5 ~@2 gb6 ~@2 d5 ~@5",
  E: "gb6 ~ gb6 ~@5 d5 ~ d5 ~ d5 ~@3", F: "~@10 d5 ~@5", G: "gb6 ~ gb6 ~@13", H: "gb6 ~@3 gb6 ~@7 ab6 ~@3",
  I: "~@12 a4 ~@3", J: "gb6 ~ gb6 ~@5 gb6 ~ gb6 ~@5", K: "gb6 ~@5 gb6 ~@9", L: "gb6 ~@7 gb6 ~@7", M: "gb6 ~@15",
  N: "~@10 d5 ~ d5 ~@3", O: "gb6 ~ gb6 ~ d5 ~@11", P: "~@10 d5 ~ gb6 ~@3", Q: "~@7 gb6 ~@4 gb6 ~@3",
  R: "~@7 gb6 ~@2 d5!3 ~@3", S: "gb6 ~ gb6 ~@3 gb6 ~@3 gb6 ~@3 gb6 ~", T: "~@3 gb6 ~@5 gb6!2 ~@5",
  U: "gb6 ~@6 gb6 ~@2 gb6 ~@5", V: "~@4 gb6 ~@11", W: "~@7 gb6 ~@8", X: "~@8 gb6 ~ gb6 ~@2 gb6 ~@2",
  Y: "gb6 ~ gb6 ~@7 d5 ~@2 d5!2 ~", Z: "~@11 d5 ~@4",
})).s("gm_woodblock").gain(0.16)

// other · recorder
const recorder = note("<~@22 A@3 B@2 ~@27 A@3 B@2 ~@24>".pickRestart({
  A: "[~@14 db5@8 e5@6 d5@2 d5@17 ~]/3", B: "[~@8 d5@23 ~]/2",
})).s("gm_recorder").gain(0.08)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A@7 B C@7 B D@3 E D ~ F C@8 B C@7 B C@7 B D@3 E D ~ F C@8 B C@7 B C B F ~@6
>`.pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "~ x ~ x ~ x ~@2", C: "x ~@6 x!2 ~ x ~ x ~@3", D: "x ~@2 x ~@4",
  E: "~@4 x ~@3 x ~ x ~@2 x ~@2", F: "x",
})).gain(0.48)

// drums · snare
const snare = s("sd").struct(`<
  ~@2 A@7 B C@7 B D@3 E F G ~ H I@7 B I@7 B I@7 B D@3 E F G ~ H I@7 B I@7 B I B J ~@6
>`.pickRestart({
  A: "~@2 x ~@2 x!2 ~", B: "x!2 ~ x!3 ~ x!3 ~ x!2 ~ x ~", C: "x!16", D: "x ~ x!2 ~@2 x ~", E: "~@4 x!5 ~@3 x ~@2 x",
  F: "x ~ x!3 ~ x ~@7 x ~", G: "~@3 x ~@3 x", H: "~ x ~ x", I: "x!5 ~ x!7 ~ x!2", J: "~ x ~@2",
})).gain(0.18)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@22 [~@5 x!2 ~] [~ x!2 ~@2 x!2 ~] ~@30 [~@5 x!2 ~] [~ x!2 ~@2 x!2 ~] ~@27>")
  .gain(0.48)

// drums · open hat
const open_hat = s("oh").struct("<~@18 A@3 ~ A ~@27 A@3 ~ A ~@28>".pickRestart({
  A: "x ~@2 x ~@4",
})).gain(0.36)

// drums · crash
const crash = s("cr").struct("<~@25 [x!2] ~@31 [x!2] ~@18 [~@3 x!2 ~@3] ~@6>").gain(0.18)

// drums · ride
const ride = s("rd").struct("<~@2 [x ~@3 x!2 ~ x!2 ~@2 x!4 ~]!6 [x ~@3 x!2 ~ x!2 ~@2 x!3 ~@2] ~@74>").gain(0.3)

// drums · shaker
const shaker = s("sh").struct("<~@26 [x!16]!24 ~@8 [x!16]!18 [x!5 ~@11] ~@6>").gain(0.24)

// drums · triangle
const triangle = s("triangles:30").struct(`<
  ~@34
  [x!4 ~@4 x!4 ~@4]!8
  [x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2]!6
  [x!4 ~@2 x!4 ~@2 x!2 ~@2]
  [x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2]
  ~@33
// … 16 more lines

More by Orleans