0:00/0:00
// Halfway to Paradise — Billy Fury
// 126 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 118 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126/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 · electric bass finger · "FINGERDBAS"
const bass = note(`<
A B C D E F D G F H I G J K L M N O P D E M G@2 F H I G J K L M N Q R H S T U H S T U H S T U V W X Y D E F D G F H I
G J K L M N Q R H S T U H S T U H S T U V W X Y D E F D G F H I G J K L M N Z AA I@2 Z AA I@2 AB AC Q AD AE ~@8
>`.pickRestart({
A: "c2@2 ~@2 c2!5 ~@3 c2!4", B: "c2@2 ~@2 d2!3 ~ e2!3 ~ d2!3 ~", C: "c2@2 ~@6 g1 ~@2 g1!2 ~ g1 ~",
D: "c2@6 e2@5 ~ g2@4", E: "c2@6 e2@6 g2@3 ~", F: "c2@5 ~ e2@5 ~ g2@3 ~", G: "c2@3 e2@3 g2@2", H: "g1@5 ~ b1@5 ~ d2@4",
I: "g1@5 ~ b1@5 ~ d2@3 ~", J: "c2@6 e2@5 ~ g2@2 ~@2", K: "f1@6 a1@5 ~ c2@3 ~", L: "f1@6 a1@6 c2@3 ~",
M: "c2@5 ~ e2@6 g2@3 ~", N: "g1@5 ~ b1@6 d2@2 ~@2", O: "c2@2 ~@2 d2!3 ~ e2!4 d2!4", P: "c2 ~@7 g1 ~@2 g1!2 ~ g1 ~",
Q: "c2@3 ~ d2@3 ~ e2@3 ~ d2@3 ~", R: "c2@4 ~@4 c2 ~@2 c2!2 ~ c2 ~", S: "g1@3 b1@3 d2@2", T: "c2@5 ~ e2@6 g2@4",
U: "c2@3 e2@3 g2 ~", V: "a1@5 ~ c2@5 ~ e2@3 ~", W: "d2@6 f#2@5 ~ a2@4", X: "d2@6 f2@5 ~ a2@3 ~",
Y: "g2 ~ g2 ~ f2 ~ f2 ~ e2 ~ e2 ~ d2!2 ~@2", Z: "c2@3 ~ d2@3 ~ e2@4 d2@3 ~", AA: "c2@5 ~ e2@5 ~ g2@2 ~@2",
AB: "c2@3 ~ d2@3 ~ e2@4 d2@4", AC: "c2@3 ~ d2@4 e2@3 ~ d2@3 ~", AD: "c2@6 ~@2 c2 ~@2 c2!2 ~ c2 ~", AE: "c2@11 ~@5",
})).s("gm_electric_bass_finger").gain(0.5)
// chords · brass section · "BRASS 1"
const brass_section = note(`<
A@2 B C@2 D@2 E@2 F@2 ~@6 G H C@2 D@2 E@2 F@2 ~@6 G I ~@16 C@2 D@2 E@2 F@2 ~@6 G I ~@16 C@2 D@2 E@2 F@2 ~@6 G J K@2 G
J K@2 G@3 L M ~@8
>`.pickRestart({
A: "[~ g4@18 ~ [a4,d5,f5]@3 ~ [b4,g5]@2 ~@2 [a4,d5,f5]@2 ~@2, [c5,e5]@19 ~@13]/2", B: "[g4,c5,e5]@8 g4@7 ~",
C: "[g4@11 ~ g4@3 ~, [c5,e5]@15 ~]/2", D: "[[g4,c5,e5]@28 [c5,e5] ~@3]/2", E: "[[g4,c5,e5]@27 ~ [g4,c5,e5] ~@3]/2",
F: "[[b4,d5]@14 [b4,d5] ~, g4 ~@15]/2", G: "[g4,c5,e5]@3 ~ [a4,d5,f5]@3 ~ [b4,e5,g5]@3 ~ [a4,d5,f5]@3 ~",
H: "[g4,c5,e5]@5 ~@3 g4@7 ~", I: "[g4,c5,e5]@8 [c5,e5] ~@2 [g4,c5,e5]@2 ~ [g4,c5,e5]@2", J: "[g4,c5,e5]@15 ~",
K: "[g4,b4,d5]@15 ~", L: "[g4,c5,e5]@13 ~ [g4,c5,e5] ~", M: "[g4,c5,e5]@5 ~@3",
})).s("gm_brass_section").gain(0.45)
// chords · piano · "A.PIANO 2"
const piano = note(`<
A B C D E F G@2 H I J K L M N O P Q@2 D E F G@2 H I J K L M N O P R S@8 T@8 U D E F G@2 H I J K V M N O P R W@8 T@8 U
D E F G@2 H I J K V M N O P X Y Z AA X Y Z AB AC@4 AD ~@8
>`.pickRestart({
A: "[c3,c4,g4,c5,e5]@3 ~ [c3,c4,c5]!2 [c3,g4,c5]!2 [c3,c4,g4,c5,e5]@3 ~ [c3,c4,g4,c5,e5]!4, ~@2 [g4,e5] e5 ~@4", // C C5 C
B: "[c3,c4,g4,c5,e5]@3 ~ [d3,a4,d5,f5]!3 ~ [e3,b4,e5,g5]!2 e3 ~ d3!2 d3@2, ~@7 [d3,a4,d5,f5]@3 [b4,e5,g5]@2 [a4,d5,f5]@3 ~, ~@11 e3@3 ~@2", // C Dm Em Dm Em Dm
C: "[c3,g4,c5,e5]@3 ~@5 [g2,g3,g4]@3 g2 [g2,b4,d5]@2 [g2,b4,d5]@2, ~@11 [g3,g4]@4 ~", // C G
D: "~@4 e5@2 [g4,c5,e5]@3 ~ [g4,c5]@2 c5@2 c5@2, c3@3 e3@3 [g3,g4,e5]@2, ~@3 c5@3 ~@10", // C C5 C
E: "~@4 e5@2 [g4,c5,e5]@3 ~ c5@2 [g3,g4,c5,e5]@4, c3@3 e3@3 ~@2, ~@3 c5@3 ~@10", // C
F: "~@4 c5@2 [g4,c5,e5]@3 ~@3 c5@2 c5@2, c3@3 e3@3 [g3,g4,e5]@2, ~@3 g4@3 ~@10", // C
G: "~@4 c5@2 [g4,c5,e5]@3 ~ g4@2 [g3,g4,c5,e5]@4, c3@3 e3@3 ~@2, ~@3 g4@3 ~@10", // C
H: "~@4 c5@2 [g4,c5,e5]@3 ~@3 [g3,g4,c5,e5]@2 g4@2, c3@3 e3@3 ~@2, ~@3 g4@3 ~@10", // C
I: "~@4 [b4,d5]@2 [g4,b4,d5]@3 ~ g4@2 g4@2 g4@2, g2@5 ~ b2@4 ~@2 [d3,b4,d5]@4, ~@3 g4@3 ~@10", // Bm G
J: "b4@3 ~ [g4,b4]@2 [g4,b4,d5]@3 ~ [g4,b4]@2 [d3,g4,b4,d5]@4, g2@3 b2@3 ~@2", // G
K: "[g4,c5,e5]@3 ~ c5@2 g4@3 ~ g4@2 ~@2 g4@2, c3@3 [e3,c5,e5]@3 [g3,c5,e5]@2, ~@3 g4@3 ~@10", // C
L: "[g4,c5,e5]@3 ~ c5@2 [e3,c5,e5]@4 g4@2 [g3,g4,c5,e5]@3 ~, c3@3 ~@5, ~@3 [g4,e5]@3 g4@3 ~@7", // C
M: "[f4,a4,c5]@3 [f4,a4]@3 f4@3 ~ f4@2 ~@2 f4@2, f2@5 ~ [a2,a4,c5]@6 [c3,a4,c5]@4", // F Am F
N: "[f4,a4,c5]@3 ~ a4@2 f4@3 ~ f4@2 [c3,a4,c5]@2 [f4,a4,c5]@2, f2@3 [a2,a4,c5]@3 ~@2, ~@3 [f4,c5]@3 ~@10", // F Am F5
O: "[g4,c5,e5]@3 ~ c5@2 g4@3 ~ g4@2 [g3,g4,c5,e5]@2 [g4,c5]@2, c3@3 [e3,c5,e5]@3 ~@2, ~@3 g4@3 ~@10", // C C5 C
P: "[g4,b4,d5]@3 ~ b4@2 g4@3 ~ g4@2 [d3,g4,b4,d5]@4, g2@5 ~ [b2,b4,d5]@6 ~@4, ~@3 [g4,d5]@3 ~@10", // G Bm G5
Q: "[[c3,g4,c5,e5]@3 ~ [d3,a4,d5,f5]!2 [d3,d5] ~ [e3,b4,e5,g5]!3 ~ [d3,a4,d5,f5]!3 ~ [g4,c5,e5]@3 ~@5 [g2,g4]@3 [g2,g4] [g2,g4]@2 [g2,g4]@2, ~@6 f5@3 ~@7 c3@5 ~@11, ~@7 [d3,d5]@3 ~ [e3,e5,g5]@3 ~ [d3,a4,d5,f5]@3 ~@14]/2", // C Dm D Em Dm C G D …
R: "[c3,g4,c5,e5]@3 ~ [a4,d5,f5]!2 [d5,f5] ~ [e3,b4,e5,g5]@4 [a4,d5,f5] [a4,f5] f5 [d5,f5], ~@4 d3@3 [d5,f5]@3 ~@3 d5@2 ~, ~@6 a4@3 ~@3 d3@4, ~@7 a4", // C Dm Em Dm
S: "[[g4,c5,e5]@7 ~ [c3,g4,c5,e5]@3 [c3,c5,e5] [c3,g4,c5,e5]@2 [c3,g4]@2 [g4,b4,d5]@3 ~ b4@2 [g4,b4,d5]@3 ~ b4@2 [g4,b4,d5]@2 [g4,b4]@2 [b4,d5]@3 ~ b4@2 [g4,b4,d5]@3 ~ [g4,b4]@2 [b4,d5]@2 g4@2 g4@3 g4@3 [g4,c5,e5]@4 c5@2 ~@2 g4@2 c5@3 ~ [g4,c5]@2 g4@3 ~ g4@2 ~@2 g4@2 [g4,b4,d5]@3 ~ b4@2 [g4,b4,d5]@3 ~ b4@2 [g4,b4,d5]@2 [g4,b4]@2 [b4,d5]@3 ~ b4@2 [g4,b4,d5]@3 ~ [g4,b4]@2 [b4,d5]@2 g4@2 g4@3 g4@3 [g4,c5,e5]@4 c5@2 ~@2 g4@2, c3@5 ~@9 [c5,e5]@40 ~@6 e5@9 ~@7 [c5,e5]@42 ~@10, ~@8 g2@3 b2@3 d3@2 g2@3 b2@3 d3@2 c3@3 e3@3 [g3,c5]@2 c3@3 [e3,c5,e5]@3 g3@24 [g3,c5,e5]@2, ~@19 g4@3 ~@58 g2@6 b2@6 d3@4 g2@6 b2@6 d3@4 c3@6 e3@6 ~@4, ~@83 g4@3 ~@42]/8", // C C5 G Bm G Bm C C5 …
T: "[c5@3 ~ [g4,c5]@2 g4@3 ~ g4@2 ~@2 g4@2 [g4,b4,d5]@3 ~ b4@2 [g4,b4,d5]@3 ~ b4@2 [g4,b4,d5]@2 [g4,b4]@2 [b4,d5]@3 ~ b4@2 [g4,b4,d5]@3 ~ [g4,b4]@2 [b4,d5]@2 g4@2 g4@3 g4@3 [g4,c5,e5]@4 c5@2 ~@2 g4@2 c5@3 ~ [g4,c5]@2 g4@3 ~ g4@2 ~@4 [a4,c5,e5]@3 ~ c5@2 [a4,c5,e5]@3 ~ a4@2 [e3,c5,e5]@4 [a4,d5]@3 ~@3 [a4,c5,d5,f#5]@3 ~@3 [a3,a4,c5,d5,f#5]@4 [a4,c5,d5,f5]@3 ~@3 [a4,c5,d5,f5]@3 ~@3 [a3,a4,c5,d5,f5]@3 ~, c3@3 [e3,c5,e5]@3 g3@24 [g3,c5]@2 ~@3 [e3,c5,e5]@3 g3@26, ~@12 [c5,e5]@42 ~@6 e5@9 ~@7 [c5,e5]@4 ~@3 a4@3 ~@42, ~@8 g2@3 b2@3 d3@2 g2@3 b2@3 d3@2 c3@3 e3@3 ~@2 c3@3 ~@5 a2@3 c3@3 ~@2 d3@3 f#3@3 ~@2 d3@3 f3@3 ~@2, ~@19 g4@3 ~@56 g4@50]/8", // C5 G Bm G Bm C C5 Am …
U: "g3!2 f3!2 e3!2 d3!2, [g4,b4,d5]@13 ~@3", // G
V: "[g4,c5,e5]@3 ~ c5@2 g4@3 ~ g4@2 [g3,g4,c5,e5]@3 ~, c3@3 [e3,c5,e5]@3 ~@2, ~@3 [g4,e5]@3 ~@10", // C
W: "[[g4,c5,e5]@7 ~ [c3,g4,c5,e5]@3 [c3,c5,e5] [c3,g4,c5,e5]@2 [c3,g4]@2 [g4,b4,d5]@3 ~ b4@2 [g4,b4,d5]@3 ~ b4@2 [g4,b4,d5]@2 [g4,b4]@2 [b4,d5]@3 ~ b4@2 [g4,b4,d5]@3 ~ [g4,b4]@2 [b4,d5]@2 g4@2 g4@3 g4@3 [g4,c5,e5]@4 c5@2 ~@2 g4@2 c5@3 ~ [g4,c5]@2 g4@3 ~ g4@2 ~@2 g4@2 [g4,b4,d5]@3 ~ b4@2 [g4,b4,d5]@3 ~ b4@2 [g4,b4,d5]@2 [g4,b4]@2 [b4,d5]@3 ~ b4@2 [g4,b4,d5]@3 ~ [g4,b4]@2 [b4,d5]@2 g4@2 g4@3 g4@3 [g4,c5,e5]@4 c5@2 ~@2 g4@2, c3@5 ~@9 [c5,e5]@40 ~@6 e5@9 ~@7 [c5,e5]@42 ~@10, ~@16 g2@6 b2@6 d3@4 g2@6 b2@6 d3@4 c3@6 e3@6 [g3,c5]@4 c3@7 ~@9 g2@6 b2@6 d3@4 g2@6 b2@6 d3@4 c3@6 e3@6 ~@4, ~@19 g4@3 ~@48 [e3,c5,e5]@6 g3@48 [g3,c5,e5]@4, ~@83 g4@3 ~@42]/8", // C C5 G Bm G Bm C C5 …
X: "[c3,g4,c5,e5]@3 ~ [d3,a4,d5] d5 [d5,f5]@2 [e3,b4,e5,g5]@3 ~ d3!2 d3@2, ~@4 f5@2 ~@6 [a4,d5,f5]@3 ~, ~@5 d3@3 ~@8", // C D5 Dm Em Dm
Y: "g4@3 g4@3 [g4,c5,e5]@3 ~ g4@2 [g3,g4,c5,e5]@2 g4@2, [c3,c5,e5]@5 ~ e3@4 ~@6", // C
Z: "c5@3 ~ [g4,b4,d5]@2 [g4,b4,d5]@3 ~@3 [g4,b4]@2 g4@2, g2@6 b2@5 ~ [d3,d5]@4", // G D
AA: "~@4 [g4,b4,d5]@2 [g4,b4,d5]@3 ~ [g4,b4]@2 g4@2 g4@2, g2@3 b2@2 ~ [d3,b4,d5]@2", // G
AB: "~@4 [g4,b4,d5]@2 [g4,b4,d5]@3 ~ [g4,b4]@2 [d3,g4,b4,d5]@2 g4@2, g2@3 b2@2 ~@3", // G
AC: "[[c3,g4,c5,e5]@3 ~ [d3,a4,d5] [d3,d5] [d3,d5,f5] ~ [e3,b4,e5,g5]@3 ~ [d3,a4,d5,f5]!2 [d3,d5,f5] ~ [c3,g4,c5,e5]@3 ~ [d3,a4,d5,f5]!3 ~ [e3,b4,e5,g5]@3 ~ [d3,a4,d5,f5]!3 ~ [c3,g4,c5,e5]@3 ~ [d3,a4,d5,f5] [a4,d5,f5]!2 ~ [e3,b4,e5,g5]@3 ~ [d3,a4,d5,f5] [d3,a4,f5]!2 ~ [g4,c5,e5]@7 ~ [c3,g4,c5,e5]@3 [c3,g4,c5,e5] [c3,g4,c5,e5]@2 [c3,g4,c5,e5]@2, ~@4 f5@2 ~ [d3,d5,f5]@3 ~@5 [d3,a4,d5,f5]@3 ~@5 [d3,a4,d5,f5]@3 ~@5 [d3,a4,d5,f5]@3 ~@3 d3@2 [d3,a4,d5,f5]@3 ~@5 [d3,a4,d5,f5]@3 ~@14, ~@5 a4@3 ~@37 d5@2 ~ c3@3 ~@13]/4", // C D5 D Dm Em Dm C Dm …
AD: "[c3,g4,c5,e5]@5 ~@3", // C
})).s("gm_piano").gain(0.4)
// chords · piano · "A.PIANO 2" · soft notes
const piano_soft = note(`<
A ~@2 B C D E ~ F ~@2 G ~@5 H ~ B C D E ~ F ~@2 G ~@7 I J K ~ I J K ~ I J K ~ L M@2 ~ B C D E ~ F ~@2 G ~@7 I J K ~ I
J K ~ I J K ~ L M@2 ~ B C D E ~ F ~@2 G ~@5 N O P Q N O P Q R ~@12
>`.pickRestart({
A: "~@3 c4 ~@4", B: "~@3 g4@3 ~@10", C: "c5@2 ~ g4@3 ~@4 g4@2 ~@4, ~ e5 ~@6", D: "~@3 e5@3 ~@4 g4@2 ~@4",
E: "~@3 e5@3 ~@10", F: "~@2 e5 ~@5", G: "~@3 e5@3 ~@10, ~ c5 ~@6", H: "~@6 a4@3 ~@2 b4@3 ~@2", I: "~@5 g4 ~ d5",
J: "~@3 g4@3 ~@6 g4@2 [b4,d5]@2", K: "~@5 c5 ~@4 g4@3 ~@3", L: "~@10 [c5,e5]@2 ~@3 a4", M: "~@2 a4 ~@5",
N: "~@5 a4@3 ~@8", O: "~@5 [c5,e5] ~@2", P: "~@5 [g4,b4] ~ b4", Q: "~@5 d5 ~@2", R: "~@14 a4 ~",
})).s("gm_piano").gain(0.2)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
~@9 A B@8 ~@7 A C@8 D@7 E@4 F@8 ~@4 A C@8 G@7 E@4 F@8 ~@4 A H@8 I J K L I J K M N O P Q ~@8
>`.pickRestart({
A: "[g4,g5]", // G
B: "[g4@4 [g4,g5]@4 [g4,g5,a5]@4 g5@4 [g5,c6]@7 ~ [g5,c6]@15 ~ [g5,b5]@8 [g5,b5]@5 ~ [f5,a5,c6]@21 ~ [f5,a5,c6]@4 [e5,c6]@14 ~@2 [d5,g5,b5]@15 ~ [c5,e5]@3 ~ [d5,f5]@2 ~@2 g5@3 ~ f5@2 ~@2, ~@3 g4@29, ~@3 b5@7 ~@10 g5@4 ~@8, ~@16 e6@31 ~@81]/8", // G Gsus2 C5 G F C G C …
C: "[g4@4 [g4,g5]@4 [g4,g5,a5]@4 g5@4 [g5,c6]@7 ~ [g5,c6]@15 ~ [g5,b5]@8 [g5,b5]@5 ~ [f5,a5,c6]@21 ~ [f5,a5,c6]@4 [e5,c6]@14 ~@2 [d5,g5,b5]@15 ~ [c6,e6]@3 ~ [a5,d6,f6]@4 [b5,e6,g6]@3 ~ [a5,d6,f6]@3 ~, ~@3 g4@29, ~@3 b5@7 ~@10 g5@4 ~@8, ~@16 e6@31 ~@81]/8", // G Gsus2 C5 G F C G C …
D: "[[c6,e6]@7 ~ c6 ~@2 c6!2 ~@19 d6@14 ~@2 g5@15 ~ a5@4 g5@2 a5@4 g5@2 a5@2 g5@2 ~@16 d6@14 ~@2, g5@16 [g5,b5]@29 ~@3 e5@64, ~ c6@7, ~@80 [g5,b5]@29 ~@3]/7", // C G
E: "[g5@15 ~ a5@4 g5@2 a5@4 g5@2 a5@2 g5@2 ~@16 d6@13 ~@3, e5, ~@32 [g5,b5]@29 ~@3]/4", // G
F: "[g5@15 ~ a5@4 g5@2 a5@4 g5@2 a5@2 ~@2 [c6,e6]@13 ~@3 [f#5,a5]@13 ~@3 [a5,d6]@16 g5@15 ~@33, e5, ~@30 g5@50 b5@11 ~@37, ~@32 a5@15 ~@17 f5@14 ~@50]/8", // C F#m D5
G: "[[c6,e6]@7 ~ c6 ~@2 c6!2 ~@19 d6@14 ~@2 g5@15 ~ a5@4 g5@2 a5@4 g5@2 a5@2 g5@2 ~@16 d6@13 ~@3, g5@16 [g5,b5]@29 ~@3 e5@64, ~ c6@7, ~@80 [g5,b5]@29 ~@3]/7", // C G
H: "[g4@4 [g4,g5]@4 [g4,g5,a5]@4 g5@4 [g5,c6]@7 ~ [g5,c6]@15 ~ [g5,b5]@8 [g5,b5]@5 ~ [f5,a5,c6]@21 ~ [f5,a5,c6]@4 [e5,c6]@14 ~@2 [d5,g5,b5]@15 ~ [c5,g5,c6,e6]@3 ~ [d5,a5,d6,f6]@3 ~ [e5,b5,e6,g6]@3 ~ [d5,a5,d6,f6]@3 ~, ~@3 g4@29, ~@3 b5@7 ~@10 g5@4 ~@8, ~@16 e6@31 ~@81]/8", // G Gsus2 C5 G F C G C …
I: "[c5,c6,e6]@15 ~, g5@13 ~@3", J: "[g4,g5,b5,d6]", K: "[f5,b5,d6]@15 ~, g4 ~@15",
L: "[c5,g5,c6,e6]@3 ~ [d5,a5,d6,f6]@3 ~ [e5,b5,e6,g6]@3 ~ [d5,a5,d6,f6]@3 ~", // C Dm Em Dm
M: "~@4 [a5,d6,f6]@3 ~ [b5,e6]@2 ~@2 [a5,d6,f6]@2 ~@2", // Dm E5 Dm
N: "[g5,c6,e6]@3 ~ [a5,d6,f6]@2 ~@2 [b5,e6]@2 ~@2 [a5,d6,f6]@2 ~@2", // C Dm E5 Dm
O: "[g5,c6,e6]@3 ~ [a5,d6]@2 ~@2 [b5,e6,g6]@2 ~@2 [a5,d6,f6]@2 ~@2", // C D5 Em Dm
P: "~@8 [g5,c6,e6] ~@2 [c6,e6] [g5,c6,e6] ~ [c6,e6] ~", Q: "[g5,c6,e6]@3 ~",
})).s("gm_string_ensemble_1").gain(0.3).pan(0.4)
// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note(`<
~@17 A B ~@14 C ~@13 D@2 ~@16 C ~@13 D@2 ~@17 E ~@3 E ~@2 F G H I J ~@8
>`.pickRestart({
A: "~@8 e5@3 ~ d5@2 ~@2", B: "[c5,e5]@3 ~@5 [g4,b4]@5 ~@3", C: "g5@3 ~@13", D: "[~@15 d6@17]/2", E: "~@14 g5 ~",
F: "[g5,c6,e6] ~@3 g6 ~@3", G: "~@4 g6 ~@3", H: "~@2 f6 ~@5", I: "[g5,c6,e6]@7 ~@4 g5 ~@2 g5 ~", J: "c5@3 ~",
})).s("gm_string_ensemble_1").gain(0.2).pan(0.4)
// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
~@9 A B@8 ~@7 A C@8 D@8 E F@2 G H@4 I ~@6 A C@8 J@8 E F@2 G H@4 I ~@6 A K@8 L M N O L M N P Q R S T ~@8
>`.pickRestart({
A: "g3@15 ~",
B: "[g3@3 ~ [g3,g4]@3 ~ [g3,g4,a4]@3 ~ g4@4 [g4,c5]@7 ~ [g4,c5]@15 ~ [g4,b4]@8 [g4,b4]@5 ~ [f4,a4,c5]@21 ~ [f4,a4,c5]@4 [e4,c5]@14 ~@2 [d4,b4]@15 ~ [c4,e4]@3 ~ [d4,f4]@2 ~@2 g4@3 ~ f4@2 ~@2, ~@3 g3@29, ~@3 b4@7 ~@10 g4@4 ~@8, ~@16 e5@31 ~@81]/8", // G Gsus2 C5 G F C G C …
C: "[g3@3 ~ [g3,g4]@3 ~ [g3,g4,a4]@3 ~ g4@4 [g4,c5]@7 ~ [g4,c5]@15 ~ [g4,b4]@8 [g4,b4]@5 ~ [f4,a4,c5]@21 ~ [f4,a4,c5]@4 [e4,c5]@14 ~@2 [d4,b4]@15 ~ [c5,e5]@3 ~ [a4,d5,f5]@4 [b4,e5,g5]@3 ~ [a4,d5]@3 ~, ~@3 g3@29, ~@3 b4@7 ~@10 g4@4 ~@8, ~@16 e5@31 ~@81]/8", // G Gsus2 C5 G F C G C …
D: "[[c5,e5]@7 ~ c5 ~@2 c5!2 ~@19 d5@14 ~@2 g4@15 ~ a4@4 g4@2 a4@4 g4@2 a4@2 g4@2 ~@16 d5@14 ~@2 g4@15 ~, g4@16 b4@29 ~@35 b4@29 ~@19, ~@7 c5@57]/8", // C
E: "a4@2 g4 a4@2 g4 a4 g4", F: "[~@16 d5@13 ~@3, b4@29 ~@3]/2", G: "g4@15 ~",
H: "[a4@4 g4@2 a4@4 g4@2 a4@2 ~@2 [c5,e5]@13 ~@3 [f#4,a4]@13 ~@3 [a4,d5]@16, ~@7 g4@25, ~@16 a4@15 ~@17 f4@14 ~@2]/4", // C F#m D5
I: "g4@15 ~, b4@11 ~@5",
J: "[[c5,e5]@7 ~ c5 ~@2 c5!2 ~@19 d5@14 ~@2 g4@15 ~ a4@4 g4@2 a4@4 g4@2 a4@2 g4@2 ~@16 d5@13 ~@3 g4@15 ~, g4@16 b4@29 ~@35 b4@29 ~@19, ~@7 c5@57]/8", // C
K: "[g3@3 ~ [g3,g4]@3 ~ [g3,g4,a4]@3 ~ g4@4 [g4,c5]@7 ~ [g4,c5]@15 ~ [g4,b4]@8 [g4,b4]@5 ~ [f4,a4,c5]@21 ~ [f4,a4,c5]@4 [e4,c5]@14 ~@2 [d4,b4]@15 ~ [c4,g4,c5,e5]@3 ~ [d4,a4,d5,f5]@3 ~ [e4,b4,e5,g5]@3 ~ [d4,a4,d5,f5]@3 ~, ~@3 g3@29, ~@3 b4@7 ~@10 g4@4 ~@8, ~@16 e5@31 ~@81]/8", // G Gsus2 C5 G F C G C …
L: "[c4,c5,e5]@15 ~, g4@13 ~@3", M: "[g3,g4,b4,d5]", N: "[f4,b4,d5]@15 ~, g3 ~@15",
O: "[c4,g4,c5,e5]@3 ~ [d4,a4,d5,f5]@3 ~ [e4,b4,e5,g5]@3 ~ [d4,a4,d5,f5]@3 ~", // C Dm Em Dm
P: "~@4 [a4,d5,f5]@3 ~ [b4,e5]@2 ~@2 [a4,d5]@2 ~@2", Q: "[g4,c5]@3 ~ [a4,d5]@2 ~@2 e5@2 ~@2 [a4,d5,f5]@2 ~@2",
R: "c5@3 ~@5 e5@2 ~@2 [a4,d5,f5]@2 ~@2", S: "~@8 [g4,c5,e5] ~@2 [c5,e5] [g4,c5,e5] ~ [c5,e5] ~", T: "[c5,e5]@3 ~",
})).s("gm_string_ensemble_2").gain(0.25)
// chords · string ensemble 2 · "SLOWSTRING" · soft notes
const string_ensemble_2_soft = note(`<
~@9 A@2 ~@5 B C D ~@6 A@2 ~@5 B E ~ F@2 G@8 H@8 ~@4 A@2 ~@5 B E ~ F@2 G@8 H@8 ~@4 A@2 ~@5 B ~ I ~@3 I ~@2 J K L M N
~@8
>`.pickRestart({
A: "[g4@19 ~@13]/2", B: "g4@7 ~", C: "~@8 e4@3 ~ d4@2 ~@2", D: "[c4,e4]@3 ~@5 [g3,b3]@5 ~@3", E: "g4@3 ~@9 f5@2 ~@2",
F: "[g4@29 ~@3]/2", G: "[~@32 g4@29 ~@3, e4]/4", H: "[~@47 d5@17 ~@64, e4]/8", I: "~@14 g4 ~",
J: "[g4,c5,e5] ~@3 g5 ~ f5 ~", K: "e5@3 ~ f5@2 ~@2 [b4,g5]@2 ~@6", L: "[g4,e5]@3 ~ [a4,d5,f5]@2 ~@2 [b4,g5]@2 ~@6",
M: "[g4,c5,e5]@7 ~@4 g4 ~@2 g4 ~", N: "[c4,g4]@3 ~",
})).s("gm_string_ensemble_2").gain(0.15)
// drums · kick
const kick = s("bd").struct("<A@2 B C@15 B C@14 D B C@30 D B C@30 D C@3 D C@3 D@3 B@2 ~@8>".pickRestart({
A: "x!2", B: "x", C: "x ~@6 x", D: "x ~@2 x!2 ~@2 x",
})).gain(0.46)
// drums · snare
const snare = s("sd").struct(`<
A B C D@14 B C D@14 A C D@15 C D@14 A C D@15 C D@14 A E D@2 A E D@2 A@3 C ~@9
>`.pickRestart({
A: "x ~@3 x!5 ~@3 x!4", B: "x ~@3 x!12", C: "x", D: "~@2 x!2 ~@2 x ~", E: "x ~ x!2 ~@2 x ~",
})).gain(0.46)
// drums · low tom
const low_tom = s("lt").struct("<~@2 A ~@15 B ~@15 C ~@15 C ~@15 C ~@15 C ~@25 C ~@9>".pickRestart({
A: "~@6 x!2", B: "~@8 x ~@2 x ~@4", C: "~@7 x",
})).gain(0.46)
// drums · hihat
const hihat = s("hh").struct("<A B C D@8 ~@6 B C D@8 ~@6 E C ~@16 D@8 ~@6 E C ~@16 D@8 ~@14 E@3 C ~@9>".pickRestart({
A: "x ~@3 x!5 ~@4 x!3", B: "x ~@3 x!12", C: "x", D: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~", E: "x ~@3 x!5 ~@3 x!4",
})).gain(0.46)
// drums · mid tom
const mid_tom = s("mt").struct("<~@2 A ~@15 B ~@15 C ~@15 D ~@15 C ~@15 D ~@25 C ~@9>".pickRestart({
A: "~@8 x ~@2 x ~@4", B: "~@6 x!2", C: "~@8 x ~@2 x!2 ~@3", D: "~@3 x",
})).gain(0.41)
// drums · high tom
const high_tom = s("ht").struct("<~@50 [~@5 x ~@2] ~@31 [~@5 x ~@2] ~@35>").gain(0.36)
// drums · crash
const crash = s("cr").struct(`<
~@3 A ~@7 A ~@5 A ~ A ~@7 A ~@7 A ~@3 A ~@3 A ~@7 A ~@7 A ~@7 A ~@3 A ~@3 A ~@7 A ~@7 A ~@5 A ~@3 A ~@3 A@5 ~@8
>`.pickRestart({
A: "x",
})).gain(0.2)
// drums · ride
const ride = s("rd").struct(`<
A ~@2 A ~@3 A ~@3 B@6 A ~ A ~@3 A ~@3 B@6 ~@2 B@15 C A ~@3 A ~@3 B@6 ~@2 B@15 C A ~@3 A ~@3 B@6 A D B@2 A D B@2 A ~@12
>`.pickRestart({
A: "x", B: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~", C: "x!8", D: "x ~ x!2 ~ x!3",
})).gain(0.36)
stack(
bass, brass_section, piano, piano_soft, string_ensemble_1, string_ensemble_1_soft, string_ensemble_2,
string_ensemble_2_soft, kick, snare, low_tom, hihat, mid_tom, high_tom, crash, ride
)
More by
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.