0:00/0:00
// Main Title Looks Like a Suicide — Barry John
// 60 bpm, 4/4, key D# 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 (4/4 at bar 1, 1/4 at bar 48) are rendered on a constant 4/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 63 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(60/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 · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<A@4 B@8 C@6 D@2 E F@8 G@2 H@4 ~@3 I@3 J K@6 L@3 M@3 N@8 ~>".pickRestart({
A: "[~@17 [eb1,eb2]@111]/4", B: "[~ [eb1,eb2]@30 ~]/8",
C: "[~@3 eb2@58 ~@9 eb2@56 ~@9 eb2@55 ~@2, ~@62 db5@65 [b4,g5]@65]/6", D: "[~@4 eb2@27 ~, db5@63 ~]/2", E: "b4",
F: "[~@24 [eb1,eb2]@4 ~@31 bb3@4 eb4@7 gb4@4 f4@3 ~ bb4@11 bb4@4 b4@8 db5@4 ~@18 bb3@5 eb4@7 gb4@4 f4@4 bb4@10 ~ bb4@4 b4@9 db5@9 [eb5,gb5]@60 ~@7 [eb5,gb5]@13, ~@7 [b4,g5]@34 ~@7 [eb2,bb2,eb3,gb3]@29 [eb3,b3]@28 ~@6 eb2@32 ~@33 eb2@65 ~@15, ~@78 ab3@28 ~@6 gb3@30 ~ b3@30 ~@83]/8", // Eb Ebm Em Ebm Abm
G: "[~@2 f5@13 ~@2 [eb5,g5]@29 ~@4 [eb5,gb5]@14, ~ ab5@16 ~@47]/2", // Eb Ebm
H: "[~ f5@14 [eb5,g5]@31 ~@4 [eb3,g3]@27 ~@6 [eb3,g3]@29 ~@16, ab5@7 ~@57]/4", // Eb
I: "[~@30 [a4,d5,a5]@6 ~@2 [a4,d5,a5]@7 ~ [a4,d5,a5]@10 ~@5 [a4,d5,a5]@6 ~@2 [a4,d5,a5]@14 ~@7 [a4,d5,a5]@6]/3", // D5
J: "~@2 [a4,d5,a5]@6 ~@2 [a4,d5,a5]@10 ~@5 [a4,d5,a5]@6 ~", // D5
K: "[~ [a4,d5,a5]@14 ~@8 [a5,a6]@6 ~@2 [a5,a6]@16 ~@6 [a5,a6]@6 ~@2 [a5,a6]@61 ~@3 e5 d5 e5 d5 e5 a5 e5 [d5,e5] ~@3 a5 b5 a5 b5@2 ~@2 b5 a5 b5@2 ~ e5 d5 e5 d5 e5 bb5 e5 d5 e5 d5@2 ~ c6 d6 c6 d6@2 ~@2 d6 c6 d6@2 ~ e5 d5 e5 [d5,e5] a5 e5 d5 e5 d5@2 ~ a5 b5 a5 b5@2 ~@2 b5 a5, ~@124 e2@23 f3@24 a1@5 a1@5 ~ a1@5 ~ a1@4, ~@65 a1@2 d5 ~@28, ~@135 a1@5 ~ a1@6 d2@6 d2@6 d2@5 ~ d2@6 [e2,a2]@21]/6", // D5 A Dsus2 A5
L: "[b5@2 ~ e5 d5 e5 d5 e5 bb5 e5 d5 e5 d5@2 ~ c6 d6 c6 d6@2 ~@2 d6 c6 d6@2 a1@6 a1@5 ~ a4 b4 a4 b4@2 ~@2 b4 a4 b4@2 d2@5 ~ d2@5 d2@5 ~ d2@6 e2@6 e2@6 ~ a4 b4 a4 b4@2 ~@2 e5 d5 e5@2, ~@2 [bb2,f3]@23 ~@12 a1@5 ~ a1@6 ~@35 e2@6 e2@6, ~@2 d2@5 ~ d2@6 d2@5 ~ d2@5 ~ [e2,a2]@23 [bb2,f3]@23 [b2,f3]@24]/3", // Bb5 A5 Bb5 Bdim
M: "[~ e5 d5 e5 ~ [d5,e5] b5 ~ e5 d5 e5 d5@2 ~ a5 b5 a5 b5@2 ~@2 e6 d6 e6@2 a1@5 ~ a1@6 ~ a4 b4 a4 b4@2 ~@3 b4 a4 b4@2 d2@6 d2@6 d2@6 d2@6 e2@6 e2@5 ~@3 a4 b4 a4 b4@2 e2@2 e5, [b2,f3]@24 ~@13 a1@6 a1@6 ~@37 e2@6 ~@4, e2@6 ~ e2@6 e2@6 e2@6 [e2,a2]@25 [bb2,f3]@24 [b2,f3]@22]/3", // Dsus2 Bdim A5 Bb5 Bdim
N: "[d5 e5@2 ~ e5 d5 e5 d5 e5 b5 e5 d5 e5 d5 ~@2 a5 b5 a5 b5@2 ~@2 e6 d6 e6@2 [a1,e2,b4,e5]@25 ~@204, ~@3 [b2,f3]@24 [a2,b5]@229, ~@3 e2@6 e2@6 e2@5 ~ e2@6 ~@229]/8", // Asus2 Bdim Asus2
})).s("gm_string_ensemble_1").gain(0.35)
// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@11 A@7 B@2 C@3 ~ D@5 ~@16 E@3 ~@15>".pickRestart({
A: "[~@26 [ab3,b4,g5]@68 [bb3,bb4,gb5]@65 [ab3,eb4]@65, ~@13 eb4@66 ~@33, ~@26 g4@64 ~@69 g4@62 ~@3]/7", // Abm Ebm Ab5
B: "[[bb3,gb5], [eb4,bb4]@61 ~@3]/2", // Ebm Eb5
C: "[~@18 [eb1,eb2]@3 ~@2 [eb1,eb2]@14 ~@24 eb1@18 ~@17, [ab3,eb4,g4,g5]@32 ~@7 [ab3,eb4,g4]@34 ~@23, ~@61 eb2@14 ~@21]/3", // Eb Abmaj7
D: "[~@15 [bb2,eb3]@32 ab3@30 ~@4 bb4@60 ~@19, ~@47 eb3@26 ~@87]/5", E: "[~@28 a2@23 bb2@23 ~@22, ~@28 a1@5 ~@63]/3",
})).s("gm_string_ensemble_1").gain(0.2)
// chords · piano · "A.PIANO 1"
const piano = note("<~@13 A@3 B@2 ~@6 C@3 ~ D@3 E@4 F@6 G H@4 I@2 J@3 K@5 ~@7>".pickRestart({
A: "[~@19 eb2@28 ~, ~@7 eb4@16 ~]/3", B: "[~@7 eb2@56 ~]/2", C: "[~@15 [eb2,eb3]@31 ~ [eb3,ab3,b3]@29 ~@20]/3",
D: "[~@19 eb3@7 [eb3,gb3,bb3]@4 [eb3,gb3,bb3]@4 db3@3 ~ ab2 [db2,ab2,db3]@2 [db2,ab2,db3]@4 [db2,ab2,db3]@4 [c2,g2,c3]@33 eb3@7 [gb3,bb3]@4 [eb3,gb3,bb3]@3, ~@19 [eb2,bb2]@14 ~ [f3,ab3]@15 ~@47, ~@37 [db2,db3]@2 ~@43 [eb2,bb2]@14]/3", // Ebm Db5 C5 Gb Ebm Eb5 Fm Db …
E: "[db3@4 [db2,ab2,db3]@2 [db2,ab2,db3]@2 [db2,ab2,db3]@3 [db2,ab2,db3]@4 [c2,g2,c3]@35 c2@4 ~@4 c2 ~@3 c2@3 ~@5 c2 ~ c2 ~ c2@2 ~@7 c2@4 ~@4 c2 ~@33 [a3,bb3]@3, [f3,ab3]@15 ~@35 g2@27 ~@6 g2@26 ~@19]/4", // Db5 C5 Bbmaj7 Fm
F: "[~@5 [eb3,a3,bb3]@8 ~@16 [eb3,a3,bb3]@8 [eb3,a3,bb3]@17 ~@7 [eb3,a3,bb3]@8 [eb3,a3,bb3]@8 ~@16 [eb3,a3,bb3]@8 [a3,bb3]@16 ~@9 [eb4,a4,bb4]@7 ~ [eb4,a4,bb4]@8 [a4,bb4]@12 ~@3 [eb4,a4,bb4]@8 [eb4,a4,bb4]@14 ~@7 [eb4,a4,bb4]@6]/6", // Eb Bbmaj7 Eb Bbmaj7 Eb
G: "~@2 [eb4,a4,bb4]@8 [a4,bb4]@11 ~@4 [eb4,a4,bb4]@7", // Eb Bbmaj7 Eb
H: "[~ [eb4,a4]@16 ~@7 [eb5,a5,bb5]@7 [eb5,a5,bb5]@17 ~@5 [eb5,a5,bb5]@8 [eb5,a5,bb5]@62 ~@5]/4", // Ebdim Eb
I: "[~@7 a1@6 a1@5 ~@7 d2@6 d2@6 d2@6 a1@5 a1@6 a1@6 a1@4, ~@18 d2@7 ~@18 [e2,a2]@21, ~@19 f3@23 ~@22]/2", // A5
J: "[~@8 d2@6 d2@6 d2@6 a1@5 a1@6 a1@6 a1@5 ~@7 d2@5 d2@6 d2@5 ~@7 e2@6 e2@6 e2@5 ~, ~ d2@6 ~@19 [e2,a2]@22 d2@6 ~@17 e2@7 ~@18, ~@2 [bb2,f3]@24 ~@22 bb2@23 ~ [b2,f3]@24, ~@49 f3@22 ~@25]/3", // A5 Bb5 Bdim
K: "[e2@6 e2@6 ~ e2@6 e2@6 a1@6 a1@6 a1@6 a1@5 ~@8 d2@6 d2@6 d2@5 ~@7 e2@6 ~ e2@6 e2@5 ~@7 e2@6 e2@6 e2@5 ~ [a1,e2,a2]@25 ~@12, [b2,f3]@25 [e2,a2]@24 bb2@24 ~ [b2,f3]@24 b2@24 ~@38, ~@49 d2@7 ~@17 e2@7 ~@18 e2@7 ~@55, ~@50 f3@24 ~@25 f3@24 ~@37]/5", // A5 Bdim A5 Bdim
})).s("gm_piano").gain(0.35)
// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note("<A@4 B@7 C@7 D@8 E@3 ~ F ~@2 G@3 ~ H I J ~ K L ~@2 M@3 ~@15>".pickRestart({
A: "[~@17 [eb1,eb2]@111]/4", B: "[~@9 [eb1,eb2]@215]/7",
C: "[~@35 eb2@56 bb3@64 ~@4 [ab3,eb4]@64 ~, ~@23 ab3@64 ~@137, ~@3 eb4@8 ~@17]/7", // Ab5
D: "[~@9 eb2@53 ~@20 eb1@5 eb1@10 ~@23 eb1@5 eb1@12 ~@7 [eb2,bb2,eb3]@29 ~ [eb3,ab3,b3]@29 ~@4 bb2@31 ~@18, [bb3,eb4]@62 ab3@35 ~@2 ab3@38 ~@119, ~@63 eb4@34 ~@3 eb4@37 ~@119]/8", // Eb5 Abm Eb5
E: "[~@17 bb2@64 ~@15, ~ [eb2,eb3]@4 ~]/3", F: "~@25 eb3@4 ~@3",
G: "[~@31 c2@2 ~@6 c2 ~ c2 ~@2 c2 ~@16 eb3@8 ~@8 [eb3,a3,bb3]@12 ~@7]/3", H: "~@13 [eb3,a3,bb3]@12 ~@7",
I: "~@5 eb3@16 ~@11", J: "~@7 eb4@6 ~@3", K: "~@10 eb4@11 ~@11", L: "~ bb4@15 ~@16",
M: "[~@28 a1@6 a1@5 ~@12 bb2@24 ~@21, ~@28 [e2,a2]@23 ~@45]/3", // A5
})).s("gm_piano").gain(0.2)
// chords · piano · "A.PIANO 1"
const piano_2 = note("<A@2 B@2 C@5 D E@8 F@2 G H@8 I@2 J@8 K@2 L M@4 N O P@2 Q R@3 S@8 ~>".pickRestart({
A: "[~@17 eb4@12 ~@2 eb4@2 g4@8 eb4@8 eb5@11 f5@2 eb5@2]/2", B: "[bb4@14 c5@11 bb4@2 ab4@2 bb4@8 eb4@8 ab4@12 ~@7]/2",
C: "[~@16 eb5@4 ~@4 bb3@2 eb4@2 ~@4 bb4@4 [eb4,c5]@8 ~@4 c5@4 ~@4 f5@2 eb5@2 ~@4 d5@4 f5@8 ~@4 eb5@4 ~@4 d5@2 ~ eb5@2 ~@4 bb5@4 [bb5,g6]@8 ~@4 c5@4 ~@4 f5@2 ~@8 f5@4 g5@8 ~@5 eb4@4 ~@4 d4@2 eb4@2, ~@12 eb4@12 ~@4 g4@8 ~@8 eb5@12 ~@4 bb4@17 ~@7 eb6@8 ~@60 eb5@8, ~@20 eb6@8 ~@24 ab5@8 ~@16 c5@12 ~@5 eb5@8 ~@8 g5@8 bb5@9 eb5@17 c4@13 ~@4]/5", // Cm Eb
D: "~@5 bb4@4 [bb4,g5]@8 ~@4 c4@4 ~@7, eb4@9 ~@8 g4@14 ~", // Eb
E: "[~ eb4@2 eb4@54 ~@14 bb4@2 ~@3 eb5@8 ~@8 eb5@32 ~@14 bb4@2 ~@19 ab5@32 ~@17 eb4@7 ~@9 eb4@32, ~@57 b4@64 ~@22 f5@48 ~@24 eb4@8 ~@33, ~@58 g5@64 ~@4 gb5@25 eb5@40 ~@14 bb3@27 ~@24, ~@73 bb4@27 ~@24 bb4@14 ~@2 bb4@50 ~ [b4,g5]@64 ~, ~@84 eb5@4 db5@36 ~ d5@30 gb5@36 ~@28 db4@36 ~]/8", // Em
F: "[~@13 bb3@2 ~@17 ab4@31 ~, gb5@28 gb4@35 ~, ~@15 bb3@49, ~@17 f4@46 ~, ~@24 eb4@39 ~]/2", G: "~ g5@15, ~ b4@31",
H: "[~@7 g5@41 ~@25 f4@4 ~ bb4@11 ~@4 b4@13 ~@33 f4@4 bb4@11 ~@4 b4@13 ~@19 f4@2 ~@24 db5@27 [gb4,bb4,eb5,gb5]@13, ~@5 b4@43 gb3@29 ~@34 gb3@31 ~@65 eb4@36 ~@13, ~@59 bb3@19 ~@45 bb3@19 ~@52 bb4@18 ab4@31 ~@13, ~@63 eb4@15 eb4@29 ~@20 eb4@15 ~ eb4@29 ~@5 [gb4,eb5,gb5]@64 ~@15, ~@70 gb4@8 ~@11 bb4@17 ~@29 gb4@8 ~@11 bb4@17 ~@21 f4@51 ~@13]/8", // Ebm
I: "[~@2 [ab4,db5,f5,ab5]@15 ~@9 f5@23 ~ [gb4,bb4,eb5,gb5]@14, ~@17 [g5,c6,eb6,g6]@32 ~@15, ~@21 g4@28 ~@15]/2", // Db Ebm Cm
J: "[[ab4,db5,f5,ab5]@15 ~@10 f5@25 g3@28 ~@5 [eb3,g3]@30 ~@12 [d4,a4]@8 [d4,a4]@8 a4@9 ~@7 [d4,a4]@8 [d4,a4]@18 ~@6 [d4,a4]@8 [d4,a4]@8 [d4,a4]@12 ~@4 [d4,a4]@8 [d4,a4]@16 ~@9 [d5,a5]@2, ~@15 [g5,c6,eb6,g6]@35 ~@206, ~@10 g4@15 ~@103]/8", // Db Eb D5 Cm
K: "[~@6 [d5,a5]@8 [d5,a5]@12 ~@3 [d5,a5]@8 [d5,a5]@15 ~@6 [d5,a5]@6]/2", L: "~@2 [d5,a5]@8 [d5,a5]@11 ~@4 [d5,a5]@7",
M: "[~ [d5,a5]@15 ~@8 [d6,a6]@7 [d6,a6]@19 ~@3 [d6,a6]@8 [d6,a6]@62 ~@5]/4", // D5
N: "~ e5 a5 e5 ~ e5 ~@2 a5 b5 a5 b5@3 ~ b5 a5 b5@2 ~@4 d5 e5 bb5 ~@6",
O: "c6 d6 c6 d6@3 ~ d6 c6 d6@2 ~ e5 d5 e5 d5 [e5,a5] e5 d5 e5 d5@2 ~ a5 b5 a5 b5@3 ~ b5 a5", // A5
P: "[b5@2 ~ e5 d5 e5 d5 e5 bb5 e5 d5 e5 d5@2 ~ c6 d6 c6 d6@3 ~ d6 c6 d6@2 e3@5 b3@4 a3@2 ~ a4 b4 a4 b4@3 ~ b4 a4 b4@2 ~@6 bb3@5 f4@4, ~@37 e4@17 ~@10]/2",
Q: "~@2 bb4@6 b4@6 eb4@4 e4@2 ~ a4 b4 a4 b4@3 ~ e5 d5 e5@2, ~@5 b3@3",
R: "[~ e5 d5 e5 ~ d5 e5 b5 e5 d5 e5 d5@2 ~ a5 b5 a5 b5@3 ~ e6 d6 e6@2 e3@6 b3@4 a3@2 ~ a4 b4 a4 b4@3 ~@2 b4 a4 b4@2 ~@6 bb3@6 f4@6 bb4@6 b4@6 eb4@4 e4@2 ~@2 a4 b4 a4 b4@3 ~ e5, ~@37 e4@11 ~@39 b3@9]/3",
S: "[d5 e5@2 ~ e5 d5 e5 d5 e5 b5 e5 d5 e5 d5@2 ~ a5 b5 a5 b5@3 ~ e6 d6 e6@2 [b4,b5]@25 ~@204, ~@27 e5@229]/8", // B
})).s("gm_piano").gain(0.35)
// chords · piano · "A.PIANO 1" · soft notes
const piano_soft_2 = note("<A ~@2 B@2 ~@2 C ~ D@5 ~ E@3 F@2 G H@2 ~ I ~ J K@2 ~@3 L@3 M ~@9 N O ~@16>".pickRestart({
A: "~@29 bb3@2 ~", B: "[~@25 f4@2 eb4@2 f4@12 ~@23]/2", C: "~@27 eb5@2 ~@3",
D: "[~@31 f4@2 ~@7 f4@5 g4@43 ~@45 bb4@23 ~@4, ~@26 bb4@9 ~@53 g4@64 ~@8]/5",
E: "[~@43 bb3@2 ~@27 bb3@24, ~@31 g4@64 ~]/3", F: "[[bb4,d5]@63 ~]/2", G: "g4", H: "[~@5 g4@43 ~@16]/2",
I: "~@6 db5@5 ~@21", J: "~@7 db5@5 ~@5 bb4@15", K: "[~@28 bb4@23 ~@13]/2", L: "[~@18 [c3,eb3]@28 ~@5 c3@29 ~@16]/3",
M: "~@13 d4@8 ~@11", N: "~@29 e5 d5 e5", O: "d5 ~@3 d5 ~ d5@2 ~@12 e5 d5 e5 ~@3 e5 d5 e5 d5@2 ~",
})).s("gm_piano").gain(0.2)
// chords · french horn · "FR.HORN"
const french_horn = note("<~@8 A B@3 ~@4 C@2 D E ~@14 F@5 ~@9 G H I J@4 ~@8>".pickRestart({
A: "~@15 c4@13 d4@2 eb4@2", B: "[eb4@9 bb4@8 g4@13 ~ f4@2 eb4@2 eb4@47 ~@14]/3",
C: "[~@12 bb3 ~ bb3@2 eb4@6 ~ eb4@4 db4@4 eb4@8 ~ bb3@24]/2", D: "~@13 bb3 ~ bb3@2 f4@7 eb4@4 gb4@4", E: "ab4@25 ~@7",
F: "[~@29 [eb3,a3,bb3,d4]@8 [eb3,a3,bb3,d4]@7 ~ [eb3,a3,bb3,d4]@9 ~@7 [eb3,a3,bb3,d4]@7 ~ [eb3,a3,bb3,d4]@16 ~@8 [eb3,a3,bb3,d4]@7 ~ [eb3,a3,bb3,d4]@7 ~ [eb3,a3,bb3,d4]@10 ~@6 [eb3,a3,bb3,d4]@7 ~ [eb3,a3,bb3,d4]@16 ~@11]/5", // Ebmaj7
G: "~@26 e3@5 ~", H: "b3@3 a3@2 e4@17 ~ bb3@5 f4@4", I: "~ bb4@3 b4@3 eb4@2 e4 b3@6",
J: "[~@25 e3@6 b3@4 a3@2 e4@18 ~ bb3@6 f4@6 bb4@6 b4@6 eb4@4 e4@2 ~ b3@12 ~@29]/4",
})).s("gm_french_horn").gain(0.35).pan(0.7)
// other · brass section · "BRASS 1"
const brass_section = note("<~@48 A@2 B C@4 ~@8>".pickRestart({
A: "[~@26 e3@5 b3@4 a3@2 e4@17 ~ bb3@5 f4@4]/2", B: "~ bb4@3 b4@3 eb4@2 e4 b3@6",
C: "[~@25 e3@6 b3@4 a3@2 e4@18 ~ bb3@6 f4@6 bb4@6 b4@6 eb4@4 e4@2 ~ b3@12 ~@29]/4",
})).s("gm_brass_section").gain(0.38).pan(0.3)
// chords · oboe
const oboe = note("<~@38 A@3 B C@4 ~@17>".pickRestart({
A: "[~@30 [e4,bb4]@6 ~@2 [e4,bb4]@6 ~@2 [e4,bb4]@9 ~@6 [eb4,bb4]@6 ~@2 [eb4,bb4]@14 ~@7 [eb4,bb4]@6]/3", // Edim Eb5
B: "~@2 [eb4,bb4]@6 ~@2 [eb4,bb4]@9 ~@6 eb4@6 ~, ~@12 bb4@3 ~", // Eb5
C: "[~ [eb4,bb4]@15 ~@7 [eb5,bb5]@6 ~@2 [eb5,bb5]@15 ~@7 [eb5,bb5]@6 ~@2 [eb5,bb5]@62 ~@5]/4", // Eb5
})).s("gm_oboe").gain(0.22).pan(0.2)
// chords · trombone
const trombone = note("<~@28 A B@2 C@4 ~@28>".pickRestart({
A: "~@19 [eb2,bb2,eb3,gb3,bb3]@13", // Ebm
B: "[~@2 [ab2,db3,f3]@13 ~@2 [c2,g2,g3]@33 [eb2,bb2,eb3,gb3,bb3]@14, ~@2 [db2,ab3]@15 [c3,eb3]@29 ~@18]/2", // Db C5 Ebm Db5 Cm
C: "[~ [db2,ab2,db3,ab3]@14 [c2,g2,c3,eb3,g3]@31 ~@4 [c2,g2,c3,eb3,g3]@28 ~@5 [c2,g2,c3,eb3,g3]@29 ~@16, ~ f3@11 ~@116]/4", // Db5 Cm
})).s("gm_trombone").gain(0.3).pan(0.4)
// chords · flute
const flute = note("<~@4 A B C D E ~@29 F@3 G H@4 ~@17>".pickRestart({
A: "~@16 eb4@4 eb5@11 ~", B: "bb4@4 c5@11 ~ c5@4 ab5@12", C: "d5 f5@3 eb5 eb6@3", D: "~ bb5@4 g6@9 ~@3 c5@4 bb5@11",
E: "~@2 f5@4 ~ g5@9 ~@16",
F: "[~@30 [d5,a5]@6 ~@2 [d5,a5]@7 ~ [d5,a5]@9 ~@6 [d5,a5]@5 ~@3 [d5,a5]@14 ~@7 [d5,a5]@6]/3", // D5
G: "~@2 [d5,a5]@6 ~@2 a5@9 ~@6 [d5,a5]@6 ~, ~@9 d5@9 ~@14", // D5
H: "[~ [d5,a5]@15 ~@7 [d6,a6]@6 ~@2 [d6,a6]@15 ~@7 [d6,a6]@6 ~@2 [d6,a6]@62 ~@5]/4", // D5
})).s("gm_flute").gain(0.19).pan(0.3)
// drums · snare
const snare = s("sd").struct("<~@10 A B ~ C ~ D ~ E F G H I J ~@5 K L M N O P Q ~@28>".pickRestart({
A: "~@27 x ~ x ~ x", B: "~ x ~ x ~ x ~ x ~@13 x ~ x ~@2 x ~@5", C: "~@13 x ~@3 x ~@8 x ~ x ~ x ~",
D: "~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~@11 x ~ x ~ x", E: "~@8 x ~ x ~@3 x!2", F: "x", G: "~@2 x!7 ~@5 x!2",
H: "x ~@15 x!3 ~@4 x ~@8", I: "~ x ~@2 x ~ x ~@15 x!3 ~@4 x ~@2", J: "~@9 x ~@2 x ~@3 x ~@15", K: "~@25 x!2 ~@3 x ~",
L: "~@2 x ~@2 x ~ x ~ x ~ x ~ x ~ x ~ x ~@14", M: "~@23 x!3 ~@3 x ~@2", N: "x ~@3 x ~ x ~ x ~ x ~ x!2 ~ x ~@16",
O: "~@16 x!3 ~@5 x!3 ~@3 x ~", P: "~@6 x ~ x ~ x ~@6 x!3 ~@5 x!3 ~@3 x", Q: "~@7 x ~@2 x ~ x ~@19",
})).gain(0.35)
stack(
string_ensemble_1, string_ensemble_1_soft, piano, piano_soft, piano_2, piano_soft_2, french_horn, brass_section, oboe,
trombone, flute, snare
)
More by Barry John
Dances With Wolves - John Dunbar ThemeF major · 61.2 bpmFarewell and End TitleG major · 64.8 bpmJohn Dunbar ThemeE♭ major · 80 bpmJourney to Fort SedgewickC minor · 80 bpmKicking Bird's GiftF major · 70 bpmRescue of Dances With WolvesE♭ major · 90 bpmThe Buffalo HuntE♭ major · 115 bpmThe Death of CiscoF minor · 80 bpm
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.