Strudelify

The Kick Inside

Kate Bush

KeyB♭ minorTempo71 bpm
0:00/0:00
// The Kick Inside — Kate Bush
// 71 bpm, 4/4, key Bb minor. 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 (1/4 at bar 1, 4/4 at bar 1) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 63 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(71/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 · piano
const piano = note("<A@5 B@2 C@2 D E F@5 G@8 H@6 I@2 J@5 K@8 L@8 M N O P Q R S T@2 ~>".pickRestart({
  A: "[~@5 db5@2 ~@2 [ab4,c5]@24 ab4@5 c5@5 eb5@4 gb5@5 db5@5 gb5@14 gb5@5 gb5@2 db5@2 bb4@5 db5@9 ~@6 db4@10 db4@5 db5@6 db4@6 [ab4,c5,eb5]@37 eb4@6 ab4@6 gb5@6 db5@6 gb5@18 ~ gb4@6 [bb4,db5,gb5]@6 gb4@6 [ab4,c5,eb5]@15, ~@47 bb4@9 ~ bb4@19 gb4@9 [f4,ab4]@14 ~@141, ~@95 db5@20 ~@61 bb4@37 ~@27]/5", // Ab Gb Ab Fm
  B: "[~@4 ab4@12 eb4@6 ~ ab4@6 eb4@6 ab4@12 f4@6 ab4@12 ~ db4@6 [f4,ab4]@6 db4@6 [ab4,c5,eb5]@12, ~@4 c5@31 db5@37 ~@24]/2", // Fm Ab
  C: "[~ eb5@6 [c5,eb5,ab5]@18 [c5,eb5,ab5]@12 ~@7 db5@6 ~@12 [bb4,db5]@6 ~ gb4@6 [bb4,db5]@6 gb4@6 [a4,db5,gb5]@9, ~@19 bb4@12 ~@17, ~@50 gb5@25 gb5@12 ~@9]/2", // Ab Bbm Gbm
  D: "~@3 gb4@6 ~ db5@6 gb5@6 db4@6 [a4,db5]@6 gb4@6 [ab4,c5,eb5]@8", // A Ab
  E: "~@4 [ab4,bb4]@5 c5@6 [gb4,bb4,db5]@8 ~ gb4@3 ab4@5 bb4@6 [f4,ab4,db5]@10", // Absus2 Gb Db
  F: "[~ [db4,f4,ab4]@11 ~ [db4,f4]@22 [c5,eb5,ab5]@11 ~ [ab4,c5,eb5]@11 [gb4,ab4,bb4,db5]@11 [gb4,ab4,db5]@11 ~ [f4,ab4,db5]@11 [f4,ab4]@11 [db4,f4]@23 [c5,eb5,ab5]@11 ~ [ab4,c5,eb5]@11 [gb4,ab4,bb4,db5]@11 [gb4,bb4,db5]@11 ~ [eb4,gb4,bb4]@30 ~@30 [b4,eb5,ab5]@8]/5", // Db Ab Gb Gbsus2 Db Fm Db Ab …
  G: "[~@5 [ab4,b4,eb5]@12 [ab4,b4,eb5,ab5]@12 [bb4,db5,gb5]@12 [gb4,bb4,db5]@12 [gb4,bb4,db5]@12 ~ [gb4,bb4,db5]@12 [e4,ab4,b4]@12 [e4,ab4,b4]@12 [e4,ab4,b4]@12 [e4,ab4,b4]@12 [eb4,g4,bb4]@12 ~ [eb4,g4,bb4]@12 eb5@3 gb5@3 ab5@3 ab5@6 g5@3 ab5@3 bb5@3 [b4,eb5,gb5]@12 [b4,eb5,gb5]@12 [b4,eb5,gb5]@12 ~ [b4,eb5,gb5]@12 [a4,db5,e5]@12 [e4,a4,db5]@12 [db4,e4,a4]@12 [a3,db4,e4]@12 [ab3,b3,eb4]@12 ~ [ab3,b3,eb4]@12 [ab3,b3,eb4]@12 [ab3,b3,eb4]@12 [g3,bb3,eb4]@12 [g3,bb3,eb4]@12 eb4@3 ~ gb4@3 ab4@3 ab4@6 g4@3 ab4@3 bb4@3 [ab4,bb4,eb5]@9 ab5 bb5 ~ eb6@2]/8", // Abm Gb E Eb B A Abm Eb …
  H: "[~@4 bb5@6 [gb5,ab5,db6]@9 gb4 ~ ab4 bb4@3 bb4@6 ab4@3 [ab4,bb4,eb5]@9 ~ ab5 bb5 ~ eb6@6 bb5@6 [gb5,ab5,db6]@9 gb4 ab4 ~ bb4@3 bb4@6 ab4@3 [ab4,bb4,eb5]@9 ab5 ~ bb5 eb6@6 bb5@6 ~ [gb5,ab5,db6]@9 gb4 ab4 ~ bb4@3 bb4@6 ab4@3 ab4@3 bb4@3 db5@3 db5@6 ab4@3 bb4@3 db5@3 db5@3 ab4@3 bb4@3 db5@3 bb4@3 db5@3 gb5@6 ~ [db5,f5,ab5]@10 ~@21 [db5,f5]@10 ~ [c5,eb5,ab5]@10 ~@16 ab4@5 c5@10 ~ [bb4,gb5]@10 db5@13, ~@191 f5@21 ~@21 eb5@31 ~@24, ~@98 f4@13 ~@33]/6", // Gbsus2 Absus2 Gbsus2 Absus2 Gbsus2 Db Ab Ebm
  I: "[~@3 gb4@5 [db5,gb5]@5 ~ gb4@5 eb5@10 c5@5 ~ c4@26 ~@12 ab5@5 [db5,f5]@12 ab5@6]/2", // Gb5 Db
  J: "[[db5,f5]@6 [db5,ab5]@6 [c5,eb5]@11 eb5@6 [c5,eb5]@12 eb4@6 [ab4,c5,eb5]@11 [bb4,gb5]@6 db5@6 [bb4,gb5]@17 [gb4,db5]@6 [db5,gb5]@6 [gb4,db5]@6 gb5@12 gb5@5 [db5,gb5]@12 [gb4,db5]@6 [db5,gb5]@12 [ab4,c5,eb5]@11 bb4@5 c5@5 ~ [ab4,bb4,db5]@5 ~ db4@5 gb4@5 ~ db5@17 [eb4,f4,ab4]@5 db4@27]/5", // Db Db5 Cm Ab Ebm Gb5 Ab Bbm7 …
  K: "[~ [ab4,c5,eb5]@11 [ab4,c5,eb5]@11 ~ [gb4,bb4,db5]@11 [gb4,bb4,db5]@11 [db4,ab4]@11 [db4,ab4]@11 ~@23 [ab4,c5,eb5,ab5]@11 [ab4,c5,eb5]@11 [ab4,bb4,db5]@11 ~@6 bb4@5 ~ [gb4,bb4,eb5]@24 ~@12 [f4,ab4,db5]@12 [b3,eb4,ab4]@12 [eb4,ab4,b4,eb5]@12 [ab4,b4,eb5,ab5]@12 [ab4,b4,eb5,ab5]@12 [bb4,db5,gb5]@12 [gb4,bb4,db5]@12 [ab4,bb4,db5]@12 ~@6 gb4@6 [ab4,b4,e5,ab5]@12 [e4,ab4,b4,e5]@12 [e4,ab4,b4,e5]@12 [e4,ab4,b4]@12 [eb4,g4,bb4]@12 [eb4,g4,bb4]@12 eb5@3 gb5@3 ab5@3 ab5@6 g5@3 ab5@3 bb5@3 [b4,eb5,gb5]@8, ~@67 [bb4,db5]@3 ~@26]/8", // Ab Gb Db5 Ab Bbm7 Ebm Db Abm …
  L: "[~@4 [b4,eb5,gb5]@12 [b4,eb5,gb5]@12 [b4,eb5,gb5]@12 [a4,db5,e5]@12 [e4,a4,db5]@12 [a3,db4,e4]@12 [a3,db4,e4]@12 [ab3,b3,eb4]@12 [ab3,b3,eb4]@12 [ab3,b3,eb4]@12 ~ eb4@12 [g3,bb3,eb4]@12 ~ [g3,bb3,eb4]@12 eb4@3 gb4@3 ab4@3 ab4@6 g4@3 ab4@3 bb4@3 ~ [ab4,bb4,eb5]@9 ab5 bb5 ~ eb6@6 bb5@6 [gb5,ab5,db6]@9 ~ gb4 ab4 ~ bb4@3 bb4@6 ab4@3 eb5@9 ab5 ~ bb5 eb6@6 bb5@6 ~ [gb5,ab5,db6]@9 gb4 ab4 ~ bb4@3 bb4@6 ab4@3 [ab4,bb4,eb5]@9 ~ ab5 bb5 ~ eb6@6 bb5@6 [gb5,ab5,db6]@9 gb4 ~ ab4 bb4@3 bb4@6 ~ ab4@3 ab4@3 bb4@3 db5@3 db5@6 ab4@3 bb4@3 db5@3 db5@3 ~ ab4@3 bb4@3 db5@3 bb4@3 db5@3 gb5@6]/8", // B A Abm Eb Absus2 Gbsus2 Absus2 Gbsus2
  M: "db5 db5@2 [db5,f5,ab5], [f5,ab5]@3 ~", N: "[c5,eb5,ab5]@3 [ab4,c5]@2 eb4 [ab4,c5,eb5] eb4",
  O: "[gb4,bb4] db5 gb5@3 gb4 [bb4,db5,gb5]@2", P: "[c5,eb5,ab5]@2 eb5 c5@2 ab4 c5@2",
  Q: "[f4,db5]@2 db5 [f4,ab4,db5]@3 [f4,ab4] db4", R: "[ab4,c5,eb5]@2 [ab4,c5,eb5] [ab4,c5,eb5]@3 [ab4,c5,eb5] eb4",
  S: "~ db5 gb5@4 [bb4,db5,gb5]@2, bb4@3 ~", T: "[a4,db5,gb5]/2",
})).s("gm_piano").gain(0.4).pan(0.6)

// other · piano
const piano_2 = note("<A@4 B@8 C@7 D E F G H@2 I@7 J@3 K@2 L M@2 N@7 O@6 P Q R Q S Q T U@2 ~>".pickRestart({
  A: "[~@5 db3@2 ~@2 [ab3,eb4]@38 gb3@14 ~ gb3@14 gb3@9 db3@41 ~ ab3@49 gb3@16]/4", // Ab5
  B: "[~@3 gb3@30 ab3@49 ~ db3@49 ab3@49 ~ gb3@18 gb3@55 ~@25 ab3@17 ab3@6 gb3@17 gb3@6 db3@23 db3@2 eb3@3 gb3@3 gb3@6 db3@3 eb3@2 gb3@3 ab2@13]/8",
  C: "[~@4 ab2@6 gb2@17 gb3@6 db3@22 db3@3 eb3@3 gb3@3 gb3@6 db3@3 eb3@2 gb3@3 ab2@17 ab2@6 gb2@17 gb3@6 eb3@30 eb3@6 ab3@6 ab3@6 ~@31 ab3@12 [ab2,ab3]@6 [gb2,gb3]@18 gb3@6 db3@18 ~ gb3@6 [e2,b2]@24 [e2,b2]@18 e3@6 [eb2,bb2]@18, ~@160 db3@12 ab2@24 ~ ab2@18 ~@121, ~@46 eb3@3 ~@35, ~@191 ab3@12 ~@133]/7", // Ab Gb E5 Eb5
  D: "~ eb3@6 eb3@18 eb3@6 [b2,gb3]@17", E: "~ b3@6 [b2,b3]@18 ~ [b2,b3]@6 [a2,a3]@16",
  F: "~ a3@3 a2@9 [a2,a3]@3 [e2,e3]@8", G: "~ e3@2 e3@6 e3@2 [eb2,eb3]@5",
  H: "[~@3 eb3@6 eb3@18 ~ eb3@6 [ab2,ab3]@18 ab3@6 [gb2,gb3]@18 gb3@6 [ab2,ab3]@14]/2", // Ab Gb Ab
  I: "[~@5 ab3@6 [gb2,gb3]@18 gb3@6 [ab2,ab3]@18 ab3@6 ~ [gb2,gb3]@18 gb3@6 [ab2,ab3]@36 gb3@12 ~ ab3@42 ab3@15 ab3@26 ~ gb3@15 gb3@26 ~ ab3@42 db4@29 db4@6]/7", // Gb Ab Gb Ab
  J: "[~@6 db4@6 ab3@46 gb3@17 ~ gb3@29 a3@39]/3",
  K: "[~@2 db4@6 ab3@22 gb3@22 db3@17 db3@5 ~ db3@3 eb3@2 gb3@3 gb3@5 ~ db3@3 eb3@2 gb3@2]/2",
  L: "~ [ab2,ab3]@22 ~ [gb2,gb3]@17 gb3@5 db3@2", // Ab Gb
  M: "[~@15 db3@5 ~ db3@2 eb3@3 gb3@3 gb3@5 ~ db3@2 eb3@3 gb3@3 [ab2,ab3]@17 ab3@5 [gb2,gb3]@17 gb3@5 ~ eb3@8]/2", // Ab Gb
  N: "[~@11 [eb2,eb3]@3 [db2,db3]@3 db3@3 [ab2,ab3]@9 ~@3 ab3@9 ab3@3 [gb2,db3]@9 gb3@3 [gb2,db3]@9 gb3@3 [e2,b2]@12 [e2,b2]@9 e3@3 [eb2,bb2]@9 eb3@3 eb3@9 eb3@3 [b2,gb3]@9 b3@3 [b2,b3]@9 [b2,b3]@3 [a2,a3]@9 a3@3 a2@9 [a2,a3]@3 [e2,e3]@4, ~@29 ab2@15 ~@124]/7", // Eb Db Ab Gb5 E5 Eb5 B5 B …
  O: "[~@10 e3@6 e2@25 [eb2,eb3]@18 ~ eb3@6 eb3@18 eb3@6 ~ [ab2,ab3]@18 ab3@6 [gb2,gb3]@18 ~ gb3@6 [ab2,ab3]@18 ab3@6 ~ [gb2,gb3]@18 gb3@6 [ab2,ab3]@18 ~ ab3@6 [gb2,gb3]@18 ~ gb3@6 [ab2,ab3]@37 gb3@12]/6", // Eb Ab Gb Ab Gb Ab Gb Ab
  P: "db3@3 ~@2 db4@3, db4@5 ~@3, ~@3 db3@5", Q: "ab3", R: "gb3@3 gb3@4 gb3", S: "db3", T: "gb3@3 gb3@5", U: "a3/2",
})).s("gm_piano").gain(0.4).pan(0.4)

// chords · string ensemble 1
const string_ensemble_1 = note("<A ~@8 B C@4 D@3 E@6 F@8 G@6 H@8 I@8 J K L@2 M N O P@2 ~>".pickRestart({
  A: "~@5 db5@2 ~@41", B: "~@5 [eb4,ab4]",
  C: "[~@4 [eb4,ab4]@11 [gb4,ab4]@11 ~ [gb4,ab4]@11 [f4,ab4]@23 ~@22 [eb4,ab4]@11 ~ [eb4,ab4]@11 [gb4,ab4]@11 [gb4,ab4]@11 ~ [f4,ab4]@23 ~@22 [eb4,ab4]@11 ~ [eb4,ab4]@6]/4", // Ab5 Gbsus2 Fm Ab5 Gbsus2 Fm Ab5
  D: "[~@5 [gb4,ab4]@11 gb4@3 ab4@3 bb4@6 [gb4,bb4]@30 ~@18 [eb4,ab4,b4]@49 [db4,gb4,bb4]@19]/3", // Gbsus2 Gb Abm Gb
  E: "[~@5 [ab4,bb4,ab5]@12 ~ [gb4,bb4,gb5]@12 [b3,ab4,e5]@36 [e4,b4]@6 [gb4,e5]@6 bb3@36 ~ eb4@6 ~@12 gb4@12 gb4@30 ~ [a5,db6]@48 [ab5,b5]@49 [g5,bb5]@15, ~@78 g4@49 [b5,eb6]@49 ~@112, ~@78 eb5@43 eb5@12 ~@155]/6", // Absus2 Gb E E5 Gb7 A Abm Gm …
  F: "[~@28 bb5@6 [eb5,ab5,eb6]@24 [f5,bb5,db6]@24 [eb5,ab5,eb6]@24 ~ [f5,bb5,db6]@24 [eb5,ab5,eb6]@24 ~ [f5,bb5,db6]@24 [eb5,ab5,eb6]@36 [bb5,db6]@12 ~ [f4,ab4]@10 [f4,ab4]@21 [f4,ab4]@10 ~ [eb4,ab4]@42 [gb4,bb4]@31 [gb4,bb4]@10 ~ ab4@5 bb4@5 c5@5 ~ bb4@10 c5@3, ~@355 [db4,eb4]@29]/8", // Ab5 Bbm Ab5 Bbm Ab5 Bbm Ab5 Bbm …
  G: "[~@2 gb5@5 ~ gb5@5 [ab4,db5,f5]@47 ab4@46 ~@24 gb5@23 db5@47 [c4,eb4,ab4]@22 [db4,gb4,ab4]@11 [db4,gb4,ab4]@11 [db4,f4,ab4]@22 ~@15 [ab3,db4,f4]@7, ~@2 [c4,ab4]@10 ~@48 eb5@23 ~@23 gb4@93 ~@89]/6", // Db Ab Dbsus4 Db Fm
  H: "[~ [c4,eb4,ab4]@11 [c4,eb4,ab4]@11 ~ [bb3,db4,gb4,ab4]@11 [bb3,db4,gb4,ab4]@11 db4@11 db4@5 ~ eb4@5 ~ f4@22 [c4,eb4,ab4]@17 [c4,eb4,ab4]@5 [gb4,ab4]@12 ~@2 ab4@3 bb4@5 ~ [eb4,gb4,bb4]@36 [db4,f4,ab4]@12 [b3,ab4]@6 [ab3,eb4]@6 [b3,ab4]@6 [ab3,eb4]@6 [b3,ab4]@6 [ab3,eb4]@6 [b3,ab4]@6 [ab3,eb4]@6 [gb3,db4]@6 [bb3,gb4]@6 [gb3,db4]@6 [bb3,gb4]@6 [gb3,db4]@6 [bb3,gb4]@6 [gb3,db4]@6 [bb3,gb4]@6 [e4,ab4,b4]@6 [b3,e4,ab4]@6 [e4,ab4,b4]@6 [b3,e4,ab4]@6 [e4,ab4,b4]@6 [b3,e4,ab4]@6 [e4,ab4,b4]@6 [b3,e4,ab4]@6 [eb4,g4,bb4]@6 [bb3,eb4,g4]@6 [eb4,g4,bb4]@6 [bb3,eb4,g4]@6 [eb4,g4]@6 [bb3,eb4]@12 [eb4,g4]@6 ~@8, ~@46 ab4@45 ~@22 db4@22 ~@249, ~@125 gb4@11 ~@216 bb4@24 ~@8]/8", // Ab Gb Ab Gbsus2 Ebm Db E Ab5 …
  I: "[~@10 [b5,eb6]@30 [a5,db6]@48 [eb5,ab5,b5]@24 [eb5,ab5,b5]@25 [eb5,g5,bb5]@49 ~ [eb5,ab5,eb6]@24 [f5,bb5,db6]@25 [eb5,ab5,eb6]@25 [f5,bb5,db6]@24 [eb5,ab5,eb6]@25 [f5,bb5,db6]@25 [eb5,ab5,eb6]@37 [gb4,bb4]@12]/8", // B A Abm Eb Ab5 Bbm Ab5 Bbm …
  J: "[db4,f4,ab4]", K: "[c4,eb4,ab4]", L: "[[db4,gb4]@3 [c4,gb4,ab4]]/2", M: "db4",
  N: "[c4,eb4,ab4]@2 [db4,eb4,ab4] [eb4,ab4]", O: "[gb4,bb4]", P: "[gb4,a4]/2",
})).s("gm_string_ensemble_1").gain(0.4).pan(0)

// chords · string ensemble 1
const string_ensemble_1_2 = note("<A ~@6 B@3 C@7 D@3 E@2 F@3 G@6 H@6 I@2 J@8 K@6 ~@2 L@2 M N O P@2 ~>".pickRestart({
  A: "~@5 db3@2 ~@41", B: "[~@38 bb3@49 a3@49 [ab3,c4]@8]/3",
  C: "[~@4 [ab3,c4]@11 [gb3,db4]@11 ~ [gb3,db4]@11 [db3,db4]@23 ~@22 [ab3,c4]@11 ~ [ab3,c4]@11 [ab3,db4]@11 [ab3,db4]@11 ~ [db3,db4]@23 ~@22 [ab3,c4]@11 ~ [ab3,c4]@11 [ab3,db4]@11 [bb3,db4]@11 ~ [eb3,db4]@30 ~@18 eb3@30 ~ ab3@6 bb3@6 b3@6 [gb2,bb3]@19, ~@268 ab2@49 ~@19]/7", // Ab Gb5 Db Ab Db5 Db Ab Db5 …
  D: "[~@30 e3@24 e3@12 b2@6 e3@6 eb3@49 b3@17, ~@5 e2@6 ~@13]/3", E: "[~@7 b3@24 ~ [a3,e4]@48 [e3,eb4]@16]/2",
  F: "[~@9 [e3,eb4]@24 eb3@6 ~@12 eb3@6 ~@19 eb4@6 [eb4,ab4]@24 [db4,bb4]@24 [eb4,ab4]@14, ~@11 eb4@14 ~@23, ~@19 eb2@8 ~@21]/3", // Emaj7 Ab5 Gb Ab5
  G: "[~@11 [db4,bb4]@24 [eb4,ab4]@24 ~ [db4,bb4]@24 [eb4,ab4]@36 [ab3,db4,gb4]@12 ~ ab3@10 ab3@21 ab3@5 bb3@5 ~ c4@31 eb3@5 c4@5 ~ [bb2,db4]@42 ab2@29, ~@133 db3@42 ab2@42 ~@71]/6", // Gb Ab5 Gb Ab5 Dbsus4 Bbm
  H: "[~@13 [db3,db4]@47 ~@23 c4@23 bb3@47 a3@47 ab3@22 gb3@22 db3@22 ~@22, ~@60 ab3@47 ~@181]/6", // Db
  I: "[~ ab3@11 ab3@11 ~ ab3@11 ab3@11 [db3,ab3,db4]@45 ab3@5]/2", // Db5
  J: "[~@17 ab3@11 ~ [gb3,bb3]@11 [eb3,bb3]@36 [db3,ab3]@12 ab3@6 eb3@6 ab3@6 eb3@6 ab3@6 eb3@6 ab3@6 eb3@6 db3@6 gb3@6 db3@6 gb3@6 db3@6 gb3@6 b3@6 gb3@6 [e2,e3]@48 [eb2,eb3]@24 eb3@24 [b3,gb4]@24 [b3,gb4]@24 [a3,e4]@24 [a3,e4]@24 [e3,eb4]@8, ~@11 ab2@6 gb2@6 ~@25]/8", // Gb Eb5 Db5 E Eb B5 A5 Emaj7
  K: "[~@16 [e3,eb4]@25 eb3@18 ~ eb3@6 eb3@25 [eb4,ab4]@24 [db4,bb4]@25 [eb4,ab4]@25 [db4,bb4]@24 [eb4,ab4]@25 [db4,bb4]@25 [eb4,ab4]@37 [bb3,db4]@12, ~@41 eb4@43 ~@204]/6", // Emaj7 Ab5 Gb Ab5 Gb Ab5 Gb Ab5 …
  L: "[~@4 ab3@2 c4 gb4, bb3@3 ab3]/2", M: "[db3,ab3]", N: "ab3@2 bb3 c4", O: "[bb3,db4]", P: "[a3,db4]/2",
})).s("gm_string_ensemble_1").gain(0.4).pan(0.1)

// chords · flute
const flute = note("<A ~@14 B@4 ~@19 C@7 ~@5 D E ~@8 F@2 ~>".pickRestart({
  A: "~@5 db5@2 ~@41", B: "[~@28 b4@49 bb4@49 ab4@36 ~@30]/4",
  C: "[~@26 [ab5,db6,f6]@5 ~ [ab5,db6,f6]@5 [f5,ab5,db6]@5 ~ [ab5,c6]@22 [gb5,bb5]@22 ~ [eb5,gb5,bb5]@36 ~@12 eb5@42 b5@6 bb5@24 ab6@12 gb6@12 e6@36 b5@6 e6@6 eb6@36 ~@20]/7", // Db Ab Gb Ebm
  D: "~@8 eb6@25 ~@15", E: "~@10 eb6@25 ~@13", F: "db4/2",
})).s("gm_flute").gain(0.3).pan(0.3)

// other · oboe
const oboe = note("<A ~@46 B@2 ~@2 C@2 ~@10>".pickRestart({
  A: "~@5 db5@2 ~@41", B: "[~@10 eb5@6 eb5@6 ~ b4@18 eb5@49 ~@6]/2", C: "[~@31 gb4 ~ ab4 bb4@3 ~@7 ab4@40 ~@12]/2",
})).s("gm_oboe").gain(0.45).pan(0.9)

// other · english horn
const english_horn = note("<A ~@29 B C D@2 E F@2 ~@4 G@2 ~@12 H I ~@6>".pickRestart({
  A: "~@5 db5@2 ~@41", B: "~@19 eb3@29", C: "~@2 gb3@10 ~ f3@29 gb3@6",
  D: "[ab3@6 db4@6 c4@35 eb4@5 ab4@6 bb4@29 db5@9]/2", E: "~@3 bb4@6 a4@29 db5@6 db5@4", F: "[~@2 a4@6 ab4@67 ~@21]/2",
  G: "[~@8 b3@3 bb3@3 ab3@3 b3@3 bb3@12 ~@16]/2", H: "~ bb3", I: "ab3!2",
})).s("gm_english_horn").gain(0.4).pan(0.8)

// other · clarinet
const clarinet = note("<A ~@6 B@3 ~@12 C@2 ~@5 D@3 ~@3 E@2 F@4 ~ G@2 ~@3 H@2 ~@11 I@2 ~>".pickRestart({
  A: "~@5 db5@2 ~@41", B: "[~@38 [db4,gb4]@99 ~@7]/3", C: "[~@3 eb5@6 b4@2 bb4@8 ~@13]/2",
  D: "[~@46 db3@21 eb3@42 ~@35]/3", E: "[~@4 ab3@11 gb3@11 db3@11 ~@11]/2",
  F: "[~ ab3@11 ab3@11 ~ bb3@11 bb3@11 ab3@11 ab3@11 ~@23 ab3@22 ab3@11 ~ bb3@11 bb3@24 ~@32]/4",
  G: "[~@4 ab4@3 gb4@3 e4@9 ~@5]/2", H: "[~@29 eb5@6 b4@6 bb4@49 ~@6]/2", I: "[gb4,a4]/2",
})).s("gm_clarinet").gain(0.4).pan(1)

stack(piano, piano_2, string_ensemble_1, string_ensemble_1_2, flute, oboe, english_horn, clarinet)

More by Kate Bush