Strudelify

I Wanna Be With You

Mandy Moore

KeyE♭ majorTempo75 bpm
0:00/0:00
// I Wanna Be With You — Mandy Moore
// 75 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 12 pan flute (copy of ch 5 pan flute); ch 11 string ensemble 2 (copy of ch 6 pad warm)
// note: Full arrangement: all 80 bars on a 16-step grid, each part at one level. 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
const bass = note(`<
  ~ A@2 B@2 A@2 C A@3 C A D E F E G H I J K H L M N O P Q R S T U V W X Y Z AA AB AC G H I J K H L AD AE AF AG AH AI AJ
  AK AL AM AN G H I J AO AP AQ AP AR AS AT AU AV AW AX AY ~@5
>`.pickRestart({
  A: "eb3 ~", B: "ab3 ~", C: "ab2 ~", D: "db2@3 c2", E: "bb1", F: "db2", G: "eb1@6 ~ eb1!2 ~ eb1@2 ~ eb1@3",
  H: "ab1@6 ~ ab1!2 ~ ab1@2 ~ ab1 g1 ~", I: "f1@6 ~ f1!2 ~ f1@2 ~ f1@3", J: "db1@6 ~ db1 bb1@4 ~ ab1 bb1@2",
  K: "eb1@6 ~ eb1!2 ~ eb1@4 ~@2", L: "f1@6 ~ f1!2 ~ f1@2 ~ f1 eb1 ~", M: "db1@6 ~ db1 bb1@5 ab1 bb1 ~",
  N: "eb1@4 ~@2 eb1 ~ eb1@4 ~ bb1 eb2 bb1", O: "eb1@4 ~@3 eb1!2 ~ eb1@2 ~ bb1 eb1 ~",
  P: "ab1@4 ~@3 ab1!2 ~ ab1@4 ~ eb1", Q: "ab1@4 ~ eb2 ab1@4 ~@6", R: "eb1@4 ~ eb1 eb1@6 ~@2 eb1!2",
  S: "eb1@4 ~ eb1 eb1@4 ~ bb1 eb2@2 bb1 eb1", T: "ab1@4 ~ ab1 ab1@5 ~@2 eb1 bb1 ~",
  U: "eb1@4 ~ eb1 eb1@6 ~ bb1 eb2 bb1", V: "eb1@4 ~ eb1!2 ~ eb1@4 ~@4", W: "eb1@4 ~ eb1 eb1@4 ~ eb1!2 ~ eb1@2",
  X: "ab1@3 ~@2 ab1 ab1@5 ~@2 ab1 ab1@2", Y: "eb1@4 ~ eb1 eb1@6 ~ bb1 eb2 eb1", Z: "db2@4 ~ ab1 db2@4 ~ db2 c2@3 ~",
  AA: "bb1@4 ~ f1 bb1@4 ~ bb1 ~ f1 bb1 ~", AB: "db2@4 ~ ab1 db2@5 ~ c2@3 ~", AC: "bb1@11 ~ bb1@4",
  AD: "db1@6 ~ db1 bb1@4 ~ ab1 bb1 ~", AE: "eb1@6 ~ eb1!2 ~ eb1@2 ~ bb1 eb2 eb1", AF: "ab1@6 ~ ab1!2 ~ ab1@3 ~@3",
  AG: "bb1@3 bb2 ~@3 bb1 gb1 ~ gb1@3 gb2 ab2 ~", AH: "ab1@3 ab2 ~ ab1 ab1@2 ~ ab1@3 ~ ab1 ab1@2",
  AI: "bb1@2 ~ bb1 bb2 ~ bb1@2 gb1 ~ gb1@2 ~ gb1 gb1@2", AJ: "ab1@4 ~@2 ab2@3 bb2 ab2 eb2 c2 ab1 ~ ab1",
  AK: "eb2@4 ~ eb2 ~ eb2 ~ eb2@2 bb1 eb2@2 db2@2", AL: "b1@4 ~@2 b1@4 ~ b1 db2 ~ eb2@2",
  AM: "db2@4 ~ db2 ~ db2 ~ db2 ~ db2 f2 ab2 bb2 ab2", AN: "db2@15 ~", AO: "eb1@6 ~ eb1!2 ~ eb1@2 ~ eb1 ~ eb1",
  AP: "ab1@6 ~ ab1!2 ~ ab1@2 ~ ab1@3", AQ: "eb1@6 ~ eb1!2 ~ eb1@2 ~ eb1 bb1 eb1",
  AR: "eb1@4 ~ eb1!2 ~ eb1 ~ eb1@2 ~ eb1 ~ bb1", AS: "eb1@4 ~ eb1 eb1@4 ~@2 eb1@2 ~ eb1",
  AT: "ab1@4 ~ ab1 ab1@5 ~@2 ab1 eb1 ~", AU: "ab1@4 ~@3 ab1!2 ~ ab1@2 ~ ab1@2 ~", AV: "eb1@4 ~ eb1 eb1@4 ~@2 bb1@3 ~",
  AW: "eb1@4 ~ bb1 eb1@4 ~ eb1 ~@3 eb1", AX: "ab1@4 ~ eb1 ab1@5 ~@2 ab1 ~@2", AY: "ab1@4 ~ ab1 ab1@4 ~@6",
})).s("gm_fretless_bass").gain(0.45)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~ A B C D E F G H@2 F G I J K J L M N O P Q R S T U V W X E F G I E F G I J K J L Y N O P Q R S T U Z AA AB AC AD AE
  AF AG@2 M N O P Q R AH AI AJ AK AL AM AN AO AP AQ AR AS AT ~@2
>`.pickRestart({
  A: "~@3 f4@2 eb4@2 d4@7 ~@2", B: "~@3 bb4@2 f4@2 d4@7 ~@2", C: "~@3 bb4@2 f4@2 d4@8 ~",
  D: "~@2 eb4 bb4@2 f4 eb4 d4@7 ~@2", E: "~@2 bb3 f4@2 eb4@2 d4@9", F: "~@2 bb3 f4@2 eb4@2 eb4 d4@6 ~@2",
  G: "~@2 eb4 bb4@2 f4@2 d4@7 ~@2",
  H: "[~ f4 eb4 bb4@2 f4 ~ d4 d4@6 ~@4 bb3 f4@2 eb4@2 d4@9, ~@6 eb4@2 ~@6 eb4@7 ~@11]/2",
  I: "~ f4 eb4 bb4@2 f4 eb4 d4@6 ~@3", J: "~ db4 eb4 ab4@2 eb4@2 db4@6 ~@3", K: "f4 eb4 db4 bb4@2 ab4@2 f4@6 ~@3",
  L: "~@3 bb4@2 f4@6 ~@5", M: "~@2 eb4 ~@2 f4@2 eb4@8 ~, eb3, ~ bb3@14 ~, ~@3 bb4@12 ~",
  N: "~@2 f4 ~@2 f4@2 eb4@9, ab3@7 ~, ~ eb4@4 ~@11, ~@3 bb4@12 ~",
  O: "~@2 f4 ~@2 f4@2 eb4@5 ~@2 eb4 f4, f3@7 ~, ~ c4@10 ~@2 c4@3, ~@3 ab4@9 ~@4",
  P: "~@3 eb4@2 ~ ab3@2 ~ d4 eb4 f4@2 ~ bb3@2, db3 ~, ~ ab3@4 f4@3 ~@5 bb4@3, ~ db4@3 bb3@3 ~",
  Q: "~@2 eb4 ~@2 f4@2 eb4@5 ~@2 f4@2, eb3@7 ~, ~ bb3@10 ~@2 eb4@3, ~@3 bb4@9 ~@4",
  R: "~@2 eb4 ~@2 f4 eb4@6 ~ c4 eb4@2, ab2@3 ~, ~ ab3@11 ~@4, ~@3 bb4@13",
  S: "~@2 f4 ~@2 ab4@2 f4@6 ~ f4@2, f3@7 ~, ~ c4@10 ~@2 c4@3, ~@3 bb4@10 ~@3",
  T: "~@3 eb4@2 f4@3 ~ d4 ~ f4@2 bb4@3, db3 ~, ~ ab3@7 bb3@8, ~ db4@3 ~ eb4 ~@2",
  U: "~@2 eb4 ~@2 f4@3 d4@6 eb4@2, eb3@7 ~, ~ bb3@15, ~@3 bb4@13",
  V: "~@2 eb4 ~@2 f4 eb4 d4@5 ~ d4 eb4@2, eb3@13 ~@3, ~ bb3@12 ~@3, ~@3 bb4@13",
  W: "~@2 eb4 ~@2 f4@2 d4@7 eb4@2, ab2@7 ~, ~ ab3@15, ~@3 bb4@13",
  X: "~@2 eb4 ~@2 f4 eb4 d4@6 ~@3, ab2@7 ~, ~ ab3@13 ~@2, ~@3 bb4@11 ~@2",
  Y: "~@2 eb4 ~@2 f4@2 eb4@8 ~, ~ bb3@14 ~, ~@3 bb4@12 ~", Z: "~@2 eb4 ~@2 f4 eb4@8 ~@2, ~ bb3@12 ~@3, ~@3 bb4@13",
  AA: "~@3 ab4@5 ~@3 ab4@5, ~ db4@7 bb3@6 ~@2, ~@2 eb4@4 ~@4 db4@5 ~",
  AB: "~@3 ab4@10 ~@2 ab4, ~ ab3@13 eb4@2, ~@2 c4@10 ~ c4@3",
  AC: "~@3 ab4@5 ~@3 ab4@5, ~ db4@7 bb3@8, ~@2 eb4@6 ~ db4@7, ~@5 eb4@3",
  AD: "~@13 eb4@3, ab3@13 ~@3, ~@2 eb4@9 c4@5, ~@3 ab4@13",
  AE: "~@3 f4@2 eb4@2 f4@2 ~@3 eb3@2 [bb3,gb4]@2, eb3@11 f4@3 ~@2, ~ bb3@5 ~@2, ~@9 eb4@5 ~@2", // Ebm
  AF: "~@2 eb4 f4@2 eb4@2 f4@2 ~@4 eb4 f4 gb4, gb3@9 gb4@3 b3@4, ~ b3@10 gb3@4 ~",
  AG: "[~@3 eb4@2 f4@6 ~@2 eb4 f4 ~ db3@11 ~@5, db3@13 ~@19, f4@2 db4@9 ~ db4@2 ~ db4@12 ~@5, ~ ab3@9 ~ ab3@16 ~@5]/2",
  AH: "~@2 eb4 ~@2 f4@2 d4@7 ~@2, eb3@7 ~, ~ bb3@13 ~@2, ~@3 bb4@11 ~@2",
  AI: "~@2 eb4 ~@2 f4 eb4 d4@5 ~@4, ab2@13 ~@3, ~ ab3@12 ~@3, ~@3 bb4@10 ~@3",
  AJ: "~@2 eb4 ~@2 f4@2 d4@8 ~, eb3@7 ~, ~ bb3@14 ~, ~@3 bb4@12 ~",
  AK: "~@2 eb4 ~@2 f4 eb4 d4@6 ~@3, eb3@3 ~, ~ bb3@11 ~@4, ~@3 bb4@10 ~@3",
  AL: "~@2 eb4 ~@2 f4@2 d4@8 ~, ab2@7 ~, ~ ab3@14 ~, ~@3 bb4@12 ~",
  AM: "~@2 eb4 ~@2 f4 eb4 d4@6 ~@3, ab2@13 ~@3, ~ ab3@12 ~@3, ~@3 bb4@11 ~@2",
  AN: "~@2 eb4 ~@2 f4@2 d4@6 ~@3, eb3@7 ~, ~ bb3@14 ~, ~@3 bb4@10 ~@3",
  AO: "~@2 eb4 ~@2 f4 eb4 d4@7 ~@2, eb3@13 ~@3, ~ bb3@12 ~@3, ~@3 bb4@11 ~@2",
  AP: "~@2 eb4 ~@2 f4 ~ d4@9, ab2@7 ~, ~ ab3@14 ~, ~@3 bb4@12 ~",
  AQ: "~@2 eb4 ~@2 f4 eb4 d4@7 ~@2, ab2@15 ~, ~ ab3@14 ~, ~@3 bb4@12 ~", AR: "~@3 eb4 d4@3 eb4",
  AS: "f4 g4@5 eb4@2 d4@6 eb4@2", AT: "ab4 bb4@7 ~@8",
})).s("gm_electric_guitar_jazz").gain(0.29).pan(0.3)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~ A@2 B C D@4 C E F C G H I J C K L M N O P Q E C R S T D@3 C E F C G H I U V K L M N O P Q E W X Y Z AA AB AC AD@2 C
  K L M N O AE AF C E C@2 AE C@2 E AG@4 ~
>`.pickRestart({
  A: "[eb4@3 ~@2 f4@2 d4@7 eb4@4 ~@3 f4@2 d4@7 eb4@2, ~@3 bb4@11 ~@5 bb4@11 ~@2]/2",
  B: "~@5 f4@2 d4@7 eb4@2, ~@3 bb4@11 ~@2", C: "~@5 f4@2 d4@7 ~@2, ~@3 bb4@11 ~@2", D: "~@5 f4@2 d4@8 ~, ~@3 bb4@12 ~",
  E: "~@5 f4@2 d4@6 ~@3, ~@3 bb4@10 ~@3", F: "~@5 f4@2 d4@9, ~@3 bb4@13",
  G: "~@7 ab3@5 eb4@4, ~@3 f4@9 ~@4, ~@5 db4@5 ~@6", H: "~@7 db4@5 db4@4, ~@3 bb4@10 ~@3, ~@5 f4@7 ~@4",
  I: "~@7 ab3@6 ~@3, ~@3 f4@10 ~@3, ~@5 db4@8 ~@3", J: "~@3 f4 bb4@2 f4@8 ~@2", K: "~@5 f4@2 c4@7 ~@2, ~@3 bb4@11 ~@2",
  L: "~@5 f4@2 c4@6 ~@3, ~@3 ab4@11 ~@2", M: "~@5 f4@3 ~@5 f4@3, ~@2 ab3@5 ~@3 bb3@6, ~@3 db4@5 ~@3 d4@5",
  N: "~@5 f4@2 d4@5 ~@4, ~@3 bb4@9 ~@4", O: "~@5 f4@2 c4@5 ~@4, ~@3 bb4@9 ~@4", P: "~@5 f4@2 c4@7 ~@2, ~@3 ab4@11 ~@2",
  Q: "~@5 f4@3 ~@5 f4@2 ~, ~@2 ab3@5 ~@3 bb3@6, ~@3 db4@5 ~@3 d4@5", R: "~@7 d4@6 ~@3, ~@3 bb4@10 ~@3, ~@5 f4@8 ~@3",
  S: "~@5 f4@2 ~@2 ab3 g3 f3 eb3 d3 c3 d3, ~@3 bb4@10 ~@3, ~@7 d4@6 ~@3", T: "bb2@3 ~@2 f4@2 d4@8 ~, ~@3 bb4@12 ~",
  U: "~@3 f4 bb4@2 f4@5 d4 ~ g4 ab4 bb4, ~@6 [eb4,f4] ~", V: "g4@3 ~@2 f4@2 d4@7 ~@2, ~@3 bb4@11 ~@2",
  W: "~@5 f4@2 eb4@7 ~@2, ~@3 bb4@11 ~@2",
  X: "~@3 f4@5 ~@3 gb4@5, bb3@6 ~@2 gb3@7 ~, ~@2 db4@6 ~ bb3@6 ~, ~@10 db4@5 ~",
  Y: "eb4 ~ eb4 ~@8 eb4@2 ab3@2 eb4, ab3@3 ~, ~@3 ab4@13", Z: "~ f4@3 ~ gb4@3, bb3@7 ~ gb3@7 ~, ~ db4@6 ~@2 db4@6 ~",
  AA: "~@3 ab4@6 ~@2 ab4@2 ~@2 ab4, ab3@7 ~, ~ eb4@7 ~ eb4@4 ~ eb4@2, ~@2 c4@7 ~ c4@2 ~ c4@3",
  AB: "~@7 eb4@2 bb3@2 eb4@2 ~@2 eb4, eb3@15 ~, ~ bb3@7 ~@5 bb3@2 ~, ~ eb4@2 ~@5, ~@3 gb4@8 ~@3 gb4@2",
  AC: "~@7 eb4@2 ~@2 eb4@2 gb3 eb4 gb4, gb3@3 ~, ~ b3@7 ~ b3@7, ~ eb4@2 ~@5, ~@3 gb4@8 ~@5",
  AD: "[~@11 db4@2 ~@3 db3@11 ~@5, db3@7 ~@9, ~ ab3@10 ~@2 ab3@14 ~@5, ~@2 db4@8 ~@4 db4@13 ~@5, ~@3 f4@11 ~ f4@12 ~@5]/2",
  AE: "~@5 f4@2 d4@6 ~@3, ~@3 bb4@11 ~@2", AF: "~@5 f4@2 d4@7 ~@2, ~@3 bb4@12 ~",
  AG: "[eb4@3 eb4@2 ~ eb4@2 d4@3 d4@2 ~@6 eb4@2 ~ eb4@2 d4@3 d4@2 bb3 ~@2 bb3@3 bb3@2 ~ eb4@2 d4@3 d4@2 ~@3 bb3@12 ~@4, eb3@14 eb4@5 ~@2 bb3@8 ~ eb4@7 ab3@7 ~ ab3@16 ~@3, ~@5 bb3@7 ~ bb3@3 eb3@14 ~@2 ab2@29 ~@3, ~@23 eb4@7 ~@2]/4",
})).s("gm_acoustic_guitar_nylon").gain(0.32).pan(0.3)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<A@2 ~@2 B@2 C@2 D@2 E@2 F@5 ~@12 G H G H G H G H I G I J K ~@38>".pickRestart({
  A: "[~ [eb3,bb3], ~@15 [eb4,g4,bb4]@16 ~]/2", B: "[~ [bb3,eb4], ~@15 [eb3,g3]@16 ~]/2",
  C: "[~ [eb4,bb4], ~@15 [ab3,c4]@16 ~]/2", D: "[~ [g3,bb3,eb4], ~@15 eb3@16 ~]/2",
  E: "[~ [c4,eb4,bb4], ~@15 ab3@16 ~]/2", // Cm7
  F: "[~@16 [db4,f4]@15 ~ [db4,f4]@15 ~ [db4,f4]@15 ~ [d4,f4]@16, ~@15 [f3,ab3]@16 [f3,bb3]@16 [f3,ab3]@16 [f3,bb3]@16 ~]/5", // Db Dm Fm Bb5 Fm Bb5
  G: "~@3 bb4@2 ~@2 bb4@2 ~@2 bb4@2 ~@3", H: "~@3 bb4@2 ~@2 bb4@2 ~@7", I: "~@3 ab4@2 ~@2 ab4@2 ~@2 ab4@2 ~@3",
  J: "~@3 bb4@2 ~@2 bb4@2 ~@2 d4 [eb4,f4] g4 ab4 bb4", K: "g4@3 ~@13",
})).s("gm_acoustic_guitar_steel").gain(0.16)

// chords · lead 5 charang
const lead_5_charang = note("<~@41 A B C D A E C F A G ~@4 A H I@2 A B C F A J A K A ~ B ~ A ~ B ~ L ~@4>".pickRestart({
  A: "[eb2,bb2,eb3]@15 ~", B: "[ab2,eb3,ab3]@15 ~", C: "[f2,c3,f3]@15 ~", D: "[db2,ab2,db3]@8 [bb2,d3]@7 ~",
  E: "[ab2,eb3,ab3]", F: "[db2,ab2,db3] [bb2,d3]",
  G: "bb4 ab4@2 bb4 ab4@2 bb4 ab4 ~ bb4 ab4 ~ bb4 ab4@2 ~, [ab2,eb3,ab3]@15 ~", H: "[gb2,b2,gb3]",
  I: "[db2,ab2,db3]@15 ~", J: "bb4 ab4 ~ bb4 ab4@2 bb4 ab4 ~ bb4 ab4 ~ bb4 ab4@2 ~, [ab2,eb3,ab3]@15 ~",
  K: "bb4 ab4@2 bb4 ab4@2 bb4 ab4 ~ bb4 ab4 ~ bb4 ab4@2 ~, [ab2,eb3,ab3]@7 ~", L: "[eb2,bb2,eb3]@7 ~",
})).s("gm_lead_5_charang").gain(0.22)

// chords · pan flute
const pan_flute = note("<~@17 A@2 B@5 ~@17 C@8 ~@3 D ~@2 E F ~@2 G@5 H@2 ~@3 I@2 J@2 K L@2 M@2 ~@2>".pickRestart({
  A: "[~@7 [eb5,g5] [d5,g5]!2 ~ [g5,bb5] ~ [bb4,d5] ~ [ab4,c5]@4 ~@13]/2", // Eb G5 Gm Bb Ab
  B: "[~@15 [f5,ab5]@2 db5@2 [db5,f5]@3 ~ [d5,bb5]@3 [d5,ab5]@2 [eb5,g5]@7 ~@4 [eb5,g5] [d5,g5]!2 ~ [g5,bb5] ~ [bb4,d5] ~ [ab4,c5]@4 ~@4 ab4 [c5,eb5]@2 [ab4,c5] [g4,bb4] ~ [f4,ab4]@2 [ab4,c5]@4 ~@13, ~@17 g5 ~@62]/5", // Fm Db Gm Ddim Eb G5 Gm Bb …
  C: "[~@7 [eb5,g5] [d5,g5]!2 ~ [g5,bb5] ~ [bb4,d5] ~ [ab4,c5]@3 ~@13 [c5,ab5]@4 ~@12 [f5,bb5]@2 ab5@2 [db5,f5]@2 ~@2 [d5,bb5]@2 ~ [d5,ab5] ~ [eb5,g5]@6 ~@5 [eb5,g5] [d5,g5]!2 ~ [g5,bb5] ~ [bb4,d5] ~ [ab4,c5]@4 ~@4 c5 [ab5,c6]@2 [g5,bb5] ab5@2 [eb5,g5] ~ [c5,f5]@4 ~@4 c5 [f5,bb5]@2 [f5,ab5] f5@2 c5 ~ [f5,bb5]@2 [f5,ab5] ~ [db5,g5] ~ f5@2 [d5,bb5]@3 ab5@2 [eb5,g5]@4, ~@49 f5 ~@41 f5 ~@15 c5 ~@9 db5 ~@4 d5 ~@5]/8", // Eb G5 Gm Bb Ab Fm Bb5 Db …
  D: "~@7 gb4 eb4 eb4@3 ~@4", E: "~@2 [db5,f5]@3 [bb4,eb5]@2 [db5,f5]@2 [bb4,eb5]@2 [db5,f5]@2 [eb5,gb5]@3",
  F: "~@2 [db5,f5]@3 [b4,eb5]@2 [db5,f5]@2 [eb5,gb5]@4 ~@3", // Db B Db Ebm
  G: "[~@7 [eb5,g5] [d5,g5]!2 ~ [g5,bb5] ~ [bb4,d5] ~ [ab4,c5]@4 ~@4 c5 [g5,bb5]@2 [f5,ab5] [eb5,g5]@2 [c5,f5]@2 [c5,ab5]@4 ~@4 c5 [g5,bb5]@2 [f5,ab5] g5@2 [c5,f5]@2 [g5,bb5]@2 [f5,ab5]@2 [eb5,g5]@2 [db5,f5]@2 [d5,bb5]@3 [d5,ab5]@2 [eb5,g5]@8 ~@12, ~@43 eb5 ~@36]/5", // Eb G5 Gm Bb Ab Gm Fm Eb …
  H: "[~@7 [g5,bb5]!2 [f5,ab5] [f5,ab5]@2 [eb5,g5]@2 [eb5,g5]@18]/2", // Gm Fm Eb
  I: "[~@7 [g5,bb5]!2 [f5,ab5] [f5,ab5]@2 [eb5,g5] ~ [eb5,g5]@6 ~@11 [bb4,eb5]]/2", // Gm Fm Eb Eb5
  J: "[[g5,bb5]@2 [f5,ab5] [f5,ab5]@2 [eb5,g5] ~ [eb5,g5] [d5,f5] [d5,f5]@2 [bb4,eb5] [d5,f5]@2 [bb4,eb5] [eb5,g5]@5 ~@11 [eb5,g5]]/2", // Gm Fm Eb Dm Eb5 Dm Eb5 Eb
  K: "[eb5,g5]!2 ~ [g5,bb5] ~ [g4,bb4]@2 [ab4,c5]@4 ~@5", // Eb Gm Ab
  L: "[~@7 [g5,bb5]!2 [f5,ab5] [f5,ab5]@2 [eb5,g5] [eb5,g5]@17 ~@2]/2", // Gm Fm Eb
  M: "[~@7 [eb5,g5] [d5,g5]!2 ~ [g5,bb5] ~ [g4,bb4]@2 [ab4,c5]@4 ~@13]/2", // Eb G5 Gm Ab
})).s("gm_pan_flute").gain(0.14).pan(0.9)

// chords · pad warm
const pad_warm = note("<~ A@7 B@3 C D E@4 F@6 G@6 H@8 I@4 J@8 K@2 ~@4 L@2 M@2 N@2 O@8 P@4 Q@2 R@5>".pickRestart({
  A: "[eb5 d5 c5 d5 eb5 d5 [c4,ab4,c5], eb4, [g4,bb4]@2 [c4,ab4]@2 [g4,bb4]@2 ~]/7", B: "[d5 eb5 d5, [g4,bb4]]/3",
  C: "[c4,ab4,c5]", D: "[g4,bb4,d5]", E: "[ab4 bb4 ab4 [bb3,d4], f4, db4@3 ~]/4",
  F: "[eb4 d4 eb4@2 ~@2 db4 d4 eb4 d4 [c4,eb4]@2, bb4@2 f4@2 g4 ~, g4 c4@2 ~@3, ~@4 ab4@3 bb4@5]/6", // Cm
  G: "[~@2 db4 d4 g4@4 c4@4, f4 eb4@2, ab4 bb4@3]/6",
  H: "[eb5 d5 [c4,ab4,c5] d5 eb5 d5 [c4,ab4,c5] [g4,bb4,d5], eb4, [g4,bb4]@2 ~ [g4,bb4]@3 ~@2]/8", // Fm Gm
  I: "[ab4 bb4 ab4 [d4,bb4], f4, db4@3 ~]/4", // Gm
  J: "[eb4 d4 eb4@2 ~@2 db4 d4 eb4 d4 eb4@2 ~@2 db4 [d4,ab4], bb4@2 f4@2 g4 ~ f4@2, g4 c4@2 ~@2 c4@2 ~, ~@4 ab4@3 bb4@5 ab4@3 ~]/8", // Ddim
  K: "[[eb4,g4] [c4,eb4], bb4]/2", L: "[bb3 b3, [gb3,eb4]]/2", M: "[ab3,db4,f4]/2",
  N: "[eb4 d4 [c4,eb4]@2, bb4, g4 ~]/2", // Cm
  O: "[~@2 db4 d4 eb4 d4 c4@2 ~ d4 c4@2 ~ d4 eb4 d4, f4@4 g4@2 eb4@3 ~ eb4@3 ~@3, ab4@3 bb4@13, ~@4 g4 ~ g4@2]/8",
  P: "[c4@4 ~ d4 eb4 d4, eb4@5 ~@3, ~ g4]/4", Q: "[c4,eb4]/2", R: "[g4@2 ab4@3, [eb4,bb4]]/5",
})).s("gm_pad_warm").gain(0.11).pan(0.3)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@25 A B@2 C@2 ~@2 D E ~@7 F@2 ~@2 F@2 ~@2 F@2 ~@8 G ~@3 H@5 I@2 J@2 I@2 K ~@5
>`.pickRestart({
  A: "~@2 [eb4,eb5]@2 [d4,d5]@3 [eb4,eb5]", B: "[g4,g5]@3 [eb4,eb5] [d4,d5]@3 [eb4,eb5]", C: "[[g4,g5] [bb4,bb5]@7]/2",
  D: "~@3 [eb4,eb5] [d4,d5]@3 [eb4,eb5]", E: "[g4,g5]", F: "eb6/2", G: "g5", H: "[eb6@36 [d5,d6]@3 [eb5,eb6]]/5",
  I: "[g5,g6]@3 [eb5,eb6] [d5,d6]@3 [eb5,eb6]", J: "[[g5,g6]@2 [bb5,bb6]@9 [eb5,eb6] [d5,d6]@3 [eb5,eb6]]/2",
  K: "[g5,g6] [bb5,bb6]@3", // G Bb
})).s("gm_string_ensemble_1").gain(0.1).pan(0.8)

// other · piccolo
const piccolo = note("<~@8 A@2 ~@15 B@3 C ~@3 D@3 ~@45>".pickRestart({
  A: "[~@6 eb6@2 d6@6 eb6@11 ~@7]/2", B: "[~@6 eb6@2 d6@6 eb6@7 ~ eb6@2 d6@6 eb6@8 eb6@2 d6@6 eb6@2]/3", C: "g6 bb6@3",
  D: "[~@6 eb6@2 d6@6 eb6@19 ~@15]/3",
})).s("gm_piccolo").gain(0.11).pan(0.9)

// other · ocarina
const ocarina = note(`<
  ~@4
  [~@5 bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5]
  ~@7
  [~@5 bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5]
  ~@23
  [~@5 bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5]
  ~@43
>`).s("gm_ocarina").gain(0.08).pan(0.9)

// other · lead 8 bass lead
const lead_8_bass_lead = note(`<
  ~
  [~@2 bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~]
  [bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~]!3
  ~@4
  [~@2 bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~]
  [bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~]!3
  ~@67
>`).s("gm_lead_8_bass_lead").gain(0.03).pan(0.1)

// other · clarinet
const clarinet = note("<~@49 [~@3 eb4 d4 eb4!3 d4 eb4!3 d4 eb4!2 ~] ~@13 [~@3 eb4 d4 eb4!3 d4 eb4!3 d4 eb4!2 ~] ~@16>")
  .s("gm_clarinet").gain(0.35).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~@17 A@11 B C@3 D E@3 F E D E D A G A@8 H@7 ~ A@16 ~@5>".pickRestart({
  A: "x ~@6 x!2 ~ x ~@2 x ~@2", B: "x ~@6 x!2 ~ x!3 ~@3", C: "x ~@4 x!2 ~@4 x ~@4", D: "x ~@4 x!2 ~@4 x!2 ~@3",
// … 84 more lines

More by Mandy Moore