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
Not in the database
That song isn't here.
Nothing in the database matches this link. It may have been renamed, or the address was mistyped. The closest songs to :
Real transcriptions · Editable patterns · Instrumental
Type a song.
Get Strudel code.
Chords, structure, melody, bass and drums compiled from open transcriptions into Strudel live-coding patterns. Play it here, scrub through the bars, then open it in strudel.cc and start hacking.
Smells Like Teen SpiritNirvana
The JokerSteve Miller Band · 1973
Love Me DoThe Beatles · 1964
I Don't MindJames Brown · 1961
- Real transcriptionsMcGill chord charts, Lakh MIDI and quality-filtered PDMX scores. The library includes alternate transcriptions of some songs.
- One bar, one cycleEvery layer follows the same bar timeline, keeping the code, playback and song structure aligned.
- Instrumental by designDetected vocal parts are removed. Guitar riffs, harmonica and other instrumental leads stay.