0:00/0:00
// Soolaimon — Neil Diamond
// 135 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: duplicate parts dropped: ch 5 "Staff-5" french horn (copy of ch 1 "Staff-1" trombone); ch 6 "Staff-6" synth strings 1 (copy of ch 3 "Staff-3" piano)
// note: Full arrangement: all 119 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(135/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.
// other · trombone · "Staff-1"
const trombone = note(`<
~@6 A@3 B C@2 D@2 E@3 ~ F G H@2 ~@3 I@3 J I@3 J K@3 L ~@2 M@8 N@8 O ~ P@3 Q@2 R S T@2 U@3 V@3 W@2 ~@2 X@8 Y@5 ~ Z@7
AA@8 AB@3 AC@2 AD AE ~ AF@2 ~@4
>`.pickRestart({
A: "[~@5 a4@10 d4@6 g4@10 a4@10 g4@3 f#4@11 ~@17]/3", B: "~@11 f#4@6 ~ f#4@2 ~ g4 f#4@2, ~@18 g4 ~@5",
C: "[g4 f#4@2 g4 f#4@6 d4@3 e4@5 ~ b3@11 ~@18, ~@9 d4 ~@14]/2", D: "[~@7 f#4@3 e4@3 ~ f#4@28 ~@6]/2",
E: "[~@21 a4@13 d4@3 g4@6 a4@13 g4@3 ~ f#4@11 ~]/3", F: "~@2 f#4@6 ~ g4 f#4@2 g4 f#4@2 g4 f#4@2 ~ f#4@5, ~@19 g4 ~@4",
G: "~ d4@3 e4@5 d4@2 b3@11 ~@2", H: "[~@22 e4@6 ~ f#4@3 f#4@11 ~@5]/2",
I: "[~@12 f#4@21 g4@6 f#4@6 d4@8 ~@7 f#4@3 f#4@6 f#4@3]/3", J: "f#4@6 ~@3 g4@6 f#4@3 d4@5 ~",
K: "[~@12 f#4@21 g4@6 f#4@6 d4@8 ~@7 f#4@3 f#4@5 ~ f#4@3]/3", L: "f#4@5 ~@4 g4@6 f#4@3 d4@5 ~",
M: "[d5!3 d5@3 ~ d5@3 ~ d5@3 ~ d5@2 d5!2 d5@3 ~ d5@3 ~ d5@3 ~ d5@2 d5!2 d5@3 ~ d5@3 ~ d5@3 ~ d5@2 d5!2 c#5@2 c#5!2 b4@2 b4!2 a4@3 ~@2]/8",
N: "[d5@3 d5@3 d5@3 d5@9 ~@3 d5@9 ~@3 d5@8 ~@4 d5@6 d5@3 d5@3 d5@9 ~@3 d5@9 ~@3 d5@9 ~@3 d5@6 d5@3 d5@3 d5@8 ~@4 d5@9 ~@3 d5@8 ~@4 d5@6 d5@3 d5@6 b4@3 a4@30 a4@3]/8",
O: "c#4@6 e4@5 ~@13", P: "[~@16 a4@10 d4@6 g4@10 a4@9 g4@3 ~ f#4@11 ~@6]/3",
Q: "[~@22 f#4@6 g4 f#4@2 g4 f#4@2 ~ f#4@2 ~ g4 f#4@5 d4@3 ~, ~@35 g4 ~@12]/2", R: "e4@4 d4@2 b3@11 ~@7",
S: "~@6 f#4 e4", T: "[f#4@7 ~@5]/2", U: "[~@7 a4@13 d4@3 g4@6 ~ a4@13 g4@3 f#4@11 ~@15]/3",
V: "[~@13 f#4@6 g4 f#4@2 ~ f#4@2 ~ g4 f#4@2 g4 f#4@6 d4@3 e4@5 ~ b3@11 ~@16, ~@23 g4 ~@20 d4@2 ~@26]/3",
W: "[~@9 e4@6 f#4@3 ~ f#4@11 ~@18]/2",
X: "[~@23 f#4@21 g4@6 f#4@6 d4@8 ~@7 f#4@3 f#4@6 f#4@3 f#4@6 ~@3 g4@6 f#4@3 d4@5 ~@13 f#4@21 g4@6 f#4@6 d4@8 ~@7 f#4@3 f#4@6 f#4@3 f#4@6 ~@3 g4@4]/8",
Y: "[~@2 f#4@3 d4@5 ~@13 f#4@21 g4@6 f#4@6 d4@8 ~@7 f#4@3 f#4@5 ~ f#4@3 f#4@5 ~@4 g4@6 f#4@3 d4@5 ~@14]/5",
Z: "[~@11 d5@3 d5@3 d5@3 d5@9 ~@3 d5@9 ~@3 d5@9 ~@3 d5@6 d5@3 d5@3 d5@9 ~@3 d5@9 ~@3 d5@9 ~@3 d5@6 d5@3 d5@3 d5@9 ~@3 d5@9 ~@3 d5@9 ~@3 d5@6 d5@3 d5@3 c#5@4]/7",
AA: "[~@2 c#5@3 c#5@3 b4@6 b4@3 b4@3 a4@9 ~@6 d5@3 d5@3 d5@3 d5@9 ~@3 d5@9 ~@3 d5@8 ~@4 d5@6 d5@3 d5@3 d5@9 ~@3 d5@9 ~@3 d5@9 ~@3 d5@6 d5@3 d5@3 d5@8 ~@4 d5@9 ~@3 d5@8 ~@4 d5@6 d5@3 d5@3 c#5@4]/8",
AB: "[~@2 c#5@3 c#5@3 b4@6 b4@3 b4@3 a4@9 ~@6 d4@3 d4@3 d4@3 d4@14 ~@14]/3",
AC: "[~@13 d4@3 ~ d4@3 d4@3 d4@17 ~@8]/2", AD: "~@19 d4@3 d4@2", AE: "~@2 d4@3 d4@17 ~@2",
AF: "[~@3 d4@3 d4@4 d4@3 d4@30 ~@5]/2",
})).s("gm_trombone").gain(0.45)
// chords · piano · "Staff-3"
const piano = note(`<
~@4 A B C@5 D@6 E F@2 G@2 H I@2 J@3 K L@3 M N@3 K O P Q@8 R@6 S@3 T@6 U V W X@8 Y@3 Z@5 AA@8 AB AC@8 AD@7 AE@3 AF ~
AG@2 AH@2 AI@2 AJ@3
>`.pickRestart({
A: "~ [a4,d5]@23", B: "~ [a4,d5]@7", C: "[~@5 [a3,d4]@24 ~@2 [a3,d4]@24 ~@2 [a4,d5]@24 ~@2 [a3,d4]@24 ~@2 g3@11]/5",
D: "[~@15 [g4,d5,g5]@24 ~@2 f#4@24 ~@2 [a4,d5]@24 ~@2 [a3,d4]@24 ~@2 [a3,d4]@24 ~]/6", E: "[a4,d5]",
F: "[~ [a3,d4]@12 ~ g3@9 ~]/2", G: "[~@6 [g4,d5,g5]@24 ~@2 f#4@11 ~@5]/2", H: "~@10 a4@11 ~@3",
I: "[~@2 d5 ~@3 a4 ~@2 d4 ~@2 [a3,e4]@22 ~@14]/2", // A5
J: "[~@12 [a3,d4]@20 ~ [b3,d4]@6 [a3,d4]@5 ~ [f#3,a3]@8 ~ [b3,d4]@5 ~ [a3,d4]@3 [a3,d4]@5 ~ [a3,d4]@3]/3", // D5 Bm D5 F#m Bm D5
K: "[a3,d4]@5 ~@4 [b3,d4]@6 [a3,d4]@3 [f#3,a3]@5 ~", // D5 Bm D5 F#m
L: "[~@21 [a4,d5,f#5]@11 ~ [b3,d4]@6 [a3,d4]@5 ~ [f#3,a3]@8 ~ [g4,b4,d5]@5 ~ [a3,d4]@3 [a3,d4]@5 ~ [a3,d4]@3]/3", // D Bm D5 F#m G D5
M: "[a3,d4]@5 ~@4 [b3,d4]@6 [a3,c#4]@3 [f#3,a3]@5 ~", // D5 Bm A F#m
N: "[~@12 [a3,d4,f#4]@20 ~ [b3,d4,g4]@6 [a3,d4,f#4]@5 ~ [f#3,a3,d4]@8 ~ [d4,g4,b4,d5]@5 ~ [a3,d4]@3 [a3,d4]@5 ~ [a3,d4]@3]/3", // D G D G D5
O: "~@12 a3@5 ~ a3@5 ~", P: "f#3@3 g3@3 g#3@3 a3@8 ~ a3@5 ~",
Q: "[d4@3 d4@3 d4@3 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@6 d5@3 d5@3 [d4,g4,b4]@8 ~@4 [d4,g4,b4]@8 ~@4 [d4,g4,b4]@8 ~@4 [d4,g4,b4]@6 d5@3 d5@3 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@6 c#4@3 c#4@3 [c#4,e4,a4]@6 c#5@3 c#5@3 [b3,d4,e4]@6 b3@3 b3@3 a3@8 ~@7]/8", // D G D A E7
R: "[d4@3 d4@3 d4@3 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@6 d5@3 d5@3 [d4,g4,b4]@8 ~@4 [d4,g4,b4]@8 ~@4 [d4,g4,b4]@8 ~@4 [d4,g4,b4]@6 d4@3 d4@3 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@3]/6", // D G D
S: "[~@3 d4@3 d4@3 c#4@3 [a3,c#4,e4]@46 ~@14]/3", // A
T: "[~@7 [a4,d5]@12 ~ [a3,d4]@12 ~ [a3,d4]@12 ~ [a4,d5]@12 ~ [a3,d4]@12 ~]/6", U: "g3@3 ~", V: "~ [g4,d5,g5]@23",
W: "~ f#4@7",
X: "[~@5 [a4,d5]@24 ~@2 [a3,d4]@24 ~@2 [a3,d4]@24 ~@2 [a4,d5]@24 ~@2 [a3,d4]@24 ~@2 g3@18 ~@8 [g4,d5,g5]@24 ~@2 f#4@5]/8", // D5 G5
Y: "[~@21 a4@11 ~@5 d5 ~@2 a4 ~@2 d4 ~@3 [a3,e4]@22 ~@3]/3", // A5
Z: "[~@23 [a3,d4]@20 ~ [b3,d4]@6 [a3,d4]@5 ~ [f#3,a3]@8 ~ [b3,d4]@5 ~ [a3,d4]@3 [a3,d4]@5 ~ [a3,d4]@3 [a3,d4]@5 ~@4 [b3,d4]@6 [a3,d4]@3 [f#3,a3]@5 ~@14]/5", // D5 Bm D5 F#m Bm D5 Bm D5 …
AA: "[~@8 [a4,d5,f#5]@11 ~ [b3,d4]@6 [a3,d4]@5 ~ [f#3,a3]@8 ~ [g4,b4,d5]@5 ~ [a3,d4]@3 [a3,d4]@5 ~ [a3,d4]@3 [a3,d4]@5 ~@4 [b3,d4]@6 [a3,c#4]@3 [f#3,a3]@5 ~@13 [a3,d4,f#4]@20 ~ [b3,d4,g4]@6 [a3,d4,f#4]@5 ~ [f#3,a3,d4]@8 ~ [d4,g4,b4,d5]@5 ~ [a3,d4]@3 [a3,d4]@5 ~ [a3,d4]@3 [a3,d4]@5 ~@4 [b3,d4]@6 [a3,d4]@3 [f#3,a3]@5 ~@13 a3]/8", // D Bm D5 F#m G D5 Bm A …
AB: "~@5 a3@5 ~ f#3@3 g3@3 g#3@3 a3@4",
AC: "[~@5 a3@5 ~ d4@3 d4@3 d4@3 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@6 d5@3 d5@3 [d4,g4,b4]@8 ~@4 [d4,g4,b4]@8 ~@4 [d4,g4,b4]@8 ~@4 [d4,g4,b4]@6 d5@3 d5@3 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@6 c#4@3 c#4@3 [c#4,e4,a4]@6 c#5@3 c#5@3 [b3,d4,e4]@6 b3@3 b3@3 a3@4]/8", // D G D A E7
AD: "[~@11 d4@3 d4@3 d4@3 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@6 d5@3 d5@3 [d4,g4,b4]@8 ~@4 [d4,g4,b4]@8 ~@4 [d4,g4,b4]@8 ~@4 [d4,g4,b4]@6 d4@3 d4@3 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@6 d4@3 d4@3 c#4@4]/7", // D G D
AE: "[~@2 c#4@3 c#4@3 [b3,d4,e4]@6 b3@3 b3@3 a3@8 ~@7 d4@3 d4@3 d4@3 [d3,f#3,a3]@27 ~]/3", AF: "[a3,c4,d4,f#4]",
AG: "[~@5 [b3,d4,e4,g4]@25 ~@18]/2", AH: "[~@13 [c4,d4,f#4,a4]@26 ~@9]/2",
AI: "[~@21 [e3,g3,b3]@12 ~@2 [g3,b3,d4]@6 ~ [g4,b4,d5]@6]/2", // Em G
AJ: "[~ [a4,d5,f#5]@12 ~@2 [d4,g4,b4]@6 ~ [g4,b4,d5]@6 ~ [a4,d5,f#5]@26 ~@17]/3", // D G D
})).s("gm_piano").gain(0.59)
// bass · acoustic bass · "Staff-4"
const bass = note(`<
A@3 B C D E F G H@8 I@7 J K L M L@3 M L N L M L O P Q R S T U R V W Q R S T U R X@2 Y@7 B C D E F Z@8 AA@8 AB@5 AC@8
AD@8 AE@4 AF@3 AG AH@2 AI AJ AK@3
>`.pickRestart({
A: "[~@20 d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~, ~@10 [a2,d3]@12 ~ [a2,d3]@12 ~]/3", // D5
B: "d2@3 d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@2, [a2,d3]", C: "~ d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3, ~ [a2,d3]@23",
D: "d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2, ~ [a2,d3]@7", // D5
E: "~@2 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 d2@3, ~@5 [a2,d3]@19", // D5
F: "~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2, ~@7 [a2,d3]@17", // D5
G: "~@3 d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@2, ~@3 [a2,d3]@5", // D5
H: "[~ d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3, ~@11 [a2,d3]@24 ~@2 [a2,d3]@24 ~@2 [a2,d3]@24 ~@2 [a2,d3]@24 ~@2 [a2,d3]@24 ~@2 [a2,d3]@24 ~@2 [a2,d3]@24 ~]/8", // D5
I: "[d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 a2@4 a2 ~ a2@3 e2@3, [a2,d3]@12 ~ [a2,d3]@12 ~ [a2,d3]@12 ~ [a2,d3]@12 ~ [a2,d3]@12 ~ [a2,d3]@12 ~@7]/7", // D5
J: "a2@4 a2 ~ a2@3 e2@3 a2@4 a2 ~ a2@3 e2@3", K: "a2@4 a2 ~ a2@3 e2@3 d2@3 d2@3 d2@3 d2@3", L: "d2!8",
M: "d2!3 a1 d2!4", N: "a1 b1 d2 b1 d2!4", O: "d2@3 d2@3 f#2@3 g2@3 [a1,a2]@5 ~ [a1,a2]@5 ~",
P: "[f#1,f#2]@3 [g1,g2]@3 [g#1,g#2]@3 [a1,b2]@8 ~ [a1,b2]@5 ~", Q: "~@4 [d2,a2]!2 [d2,b2] [d2,a2]",
R: "[d2,a2]!2 [d2,b2] [d2,a2]!3 [d2,b2] [d2,a2]", S: "[d2,a2]!2 [d2,b2] [d2,d3] [g2,d3]!2 [g2,e3] [g2,d3]",
T: "[g2,d3]!2 [g2,e3] [g2,d3]!3 [g2,e3] [g2,d3]", U: "[g2,d3]!2 [g2,e3] [g2,d3] [d2,a2]!2 [d2,b2] [d2,a2]",
V: "[d2,a2]@3 [d2,a2]@3 [d2,b2]@3 [d2,a2]@3 [a2,a3]@5 ~ [a2,a3]@5 ~", // D5 G D5 A
W: "[f#2,f#3]@3 [g2,g3]@3 [g#2,g#3]@3 [a2,a3]@8 ~ [a2,a3]@5 ~", X: "[[d2,a2]!2 [d2,b2] [d2,a2] [a1,a2]@12]/2",
Y: "[~@6 a2@3 e2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~, ~@6 [a2,d3]@12 ~ [a2,d3]@12 ~ [a2,d3]@12 ~ [a2,d3]@12 ~ [a2,d3]@12 ~ [a2,d3]@12 ~]/7", // D5
Z: "[~@3 d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ a2, ~@9 [a2,d3]@24 ~@2 [a2,d3]@24 ~@2 [a2,d3]@24 ~@2 [a2,d3]@24 ~@2 [a2,d3]@24 ~@2 [a2,d3]@24 ~@2 [a2,d3]@24 ~@3]/8", // D5
AA: "[~@3 a2 ~ a2@3 e2@3 a2@4 a2 ~ a2@3 e2@3 a2@4 a2 ~ a2@3 e2@3 a2@4 a2 ~ a2@3 e2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 a1@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 a1@3 d2]/8",
AB: "[~@2 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 a1@3 b1@3 d2@3 b1@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 a1@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2]/5",
AC: "[~@2 d2@3 d2@3 d2@3 d2@3 d2@3 f#2@3 g2@3 [a1,a2]@5 ~ [a1,a2]@5 ~ [f#1,f#2]@3 [g1,g2]@3 [g#1,g#2]@3 [a1,b2]@8 ~ [a1,b2]@5 ~@13 [d2,a2]@3 [d2,a2]@3 [d2,b2]@3 [d2,a2]@3 [d2,a2]@3 [d2,a2]@3 [d2,b2]@3 [d2,a2]@3 [d2,a2]@3 [d2,a2]@3 [d2,b2]@3 [d2,a2]@3 [d2,a2]@3 [d2,a2]@3 [d2,b2]@3 [d2,d3]@3 [g2,d3]@3 [g2,d3]@3 [g2,e3]@3 [g2,d3]@3 [g2,d3]@3 [g2,d3]@3 [g2,e3]@3 [g2,d3]@3 [g2,d3]@3 [g2,d3]@3 [g2,e3]@3 [g2,d3]@3 [g2,d3]@3 [g2,d3]@3 [g2,e3]@3 [g2,d3]@3 [d2,a2]@3 [d2,a2]@3 [d2,b2]@3 [d2,a2]@3 [d2,a2]@3 [d2,a2]@3 [d2,b2]@3 [d2,a2]@3 [d2,a2]]/8", // A F# G G# Asus2 D5 G D5 …
AD: "[~@2 [d2,a2]@3 [d2,b2]@3 [d2,a2]@3 [d2,a2]@3 [d2,a2]@3 [d2,b2]@3 [d2,a2]@3 [a2,a3]@5 ~ [a2,a3]@5 ~ [f#2,f#3]@3 [g2,g3]@3 [g#2,g#3]@3 [a2,a3]@8 ~ [a2,a3]@5 ~@13 [d2,a2]@3 [d2,a2]@3 [d2,b2]@3 [d2,a2]@3 [d2,a2]@3 [d2,a2]@3 [d2,b2]@3 [d2,a2]@3 [d2,a2]@3 [d2,a2]@3 [d2,b2]@3 [d2,a2]@3 [d2,a2]@3 [d2,a2]@3 [d2,b2]@3 [d2,d3]@3 [g2,d3]@3 [g2,d3]@3 [g2,e3]@3 [g2,d3]@3 [g2,d3]@3 [g2,d3]@3 [g2,e3]@3 [g2,d3]@3 [g2,d3]@3 [g2,d3]@3 [g2,e3]@3 [g2,d3]@3 [g2,d3]@3 [g2,d3]@3 [g2,e3]@3 [g2,d3]@3 [d2,a2]@3 [d2,a2]@3 [d2,b2]@3 [d2,a2]@3 [d2,a2]@3 [d2,a2]@3 [d2,b2]@3 [d2,a2]@3 [d2,a2]]/8", // D5 G D5 G D5 A F# G …
AE: "[~@2 [d2,a2]@3 [d2,b2]@3 [d2,a2]@3 [d2,a2]@3 [d2,a2]@3 [d2,b2]@3 [d2,a2]@3 [a2,a3]@5 ~ [a2,a3]@5 ~ [f#2,f#3]@3 [g2,g3]@3 [g#2,g#3]@3 [a2,a3]@8 ~ [a2,a3]@5 ~@13 d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3]/4", // D5 G D5 G D5 A F# G …
AF: "[d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 ~ d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 ~ d2@3 d2@3 ~ d2@3 d2@3 d2@2]/3",
AG: "~@2 d2@3 d2@3 d2@3 ~ d2@3 d2@3 ~ d2@3 d2@2",
AH: "[~@2 d2@3 ~ d2@3 d2@3 ~ d2@3 d2@3 ~ d2@3 d2@3 ~ d2@3 d2@3 ~ d2@3 d2@3 ~ d2@3 d2@3 ~]/2",
AI: "d2@3 d2@3 ~ d2@3 d2@3 ~ d2@3 d2@3 ~ g2@3", AJ: "f#2@6 ~ d2@7 ~ b1@6 ~ b1@2",
AK: "[~ [d2,d3]@12 ~@2 [g1,g2]@6 ~ [b1,b2]@6 ~ [d2,a2,d3]@26 ~@17]/3", // D G B D5
})).s("gm_acoustic_bass").gain(0.25)
// drums · kick
const kick = s("bd").struct(`<
~@5 A B C D E F G H I J K L M N O P Q R S T@31 U V W X Y Z AA AB AC A B C D E F G H I J K AD@32 L M AE AF AG AH AI AJ
AA AK ~@2
>`.pickRestart({
A: "~@3 x ~@9 x ~@2 x ~@7", B: "~@5 x ~@9 x ~@2 x ~@5", C: "~@7 x ~@9 x ~@2 x ~@3", D: "~@9 x ~@9 x ~@2 x ~",
E: "~@11 x ~@9 x ~@2", F: "x ~@12 x ~@9 x", G: "~@2 x ~@12 x ~@8", H: "~ x ~@2 x ~@12 x ~@6",
I: "~@3 x ~@2 x ~@12 x ~@4", J: "~@4 x ~@3 x ~@12 x ~@2", K: "~@6 x ~@3 x ~@12 x", L: "~@2 x!2 ~@2",
M: "x ~@9 x ~@2 x ~@10", N: "~@2 x ~@9 x ~@2 x ~@8", O: "~@4 x ~@9 x ~@2 x ~@6", P: "~@6 x ~@9 x ~@2 x ~@4",
Q: "~@8 x ~@9 x ~@2 x ~@2", R: "~@10 x ~@9 x ~@2 x", S: "~@4 x ~@2 x", T: "x ~@3 x ~@2 x", U: "x", V: "~@7 x ~@4",
W: "x ~@2 x ~@12 x ~@7", X: "~@2 x ~@2 x ~@12 x ~@5", Y: "~@3 x ~@3 x ~@12 x ~@3", Z: "~@5 x ~@3 x ~@12 x ~",
AA: "~@7 x ~@3 x ~@12", AB: "x ~@2 x!2 ~@3", AC: "~ x ~@9 x ~@2 x ~@9", AD: "~@8 x ~@2 x ~@11 x",
AE: "~@2 x ~@10 x ~@2 x ~@7", AF: "~@5 x ~@10 x ~@2 x ~@4", AG: "~@8 x ~@10 x ~@2 x ~", AH: "~@13 x ~@9 x",
AI: "~@3 x ~@13 x ~@6", AJ: "~@3 x ~@3 x ~@13 x ~@2", AK: "~ x ~@10 x ~@2 x ~@8",
})).gain(0.34)
// drums · snare
const snare = s("sd").struct(`<
~@5 A B C D E F G H I J D E K L M N O P Q R@15 S R@7 S R@7 T U V M N O P F G H W X D E F G H I C Y Z@15 AA Z@7 AA Z@7
AA E K AB I O AC AD AE AF AG AH ~
>`.pickRestart({
A: "~@10 x ~@9 x ~@2 x", B: "x!3 ~@3 x ~@5", C: "~ x ~@12 x ~@9", D: "~@3 x ~@12 x ~@7", E: "~@5 x ~@12 x ~@5",
F: "~@6 x ~@12 x ~@4", G: "~@8 x ~@12 x ~@2", H: "~@10 x ~@12 x", I: "~ x", J: "~ x ~@9 x ~@2 x ~ x!2 ~ x ~@4",
K: "~@7 x ~@12 x ~@3", L: "~@9 x ~@12 x ~", M: "~@11 x ~@12", N: "x ~@12 x ~@10", O: "~@2 x ~@12 x ~@8",
P: "~@4 x ~@12 x ~@6", Q: "~@2 x ~@3 x!2 ~ x!2 ~@7 x ~@5", R: "~ x ~ x", S: "~@3 x ~@2 x!2 ~ x!2 ~@7 x ~@5",
T: "~@3 x ~@2 x!2 ~ x!2 ~@13", U: "~@5 x", V: "~@6 x ~@2 x ~ x ~ x!2 ~@7 x ~", W: "~@4 x ~@2 x",
X: "~ x!2 ~ x ~ x ~@7 x ~@9", Y: "~@3 x ~@9 x ~@2 x ~ x!2 ~ x ~@2", Z: "~@5 x ~@11 x ~@6",
AA: "~@5 x ~@8 x ~@2 x!2 ~ x!2 ~@2", AB: "~@9 x ~@13 x", AC: "~@3 x ~@6 x ~", AD: "~@5 x ~@6", AE: "x ~@6 x ~@4",
AF: "~@2 x ~@6 x ~@2", AG: "~@8 x ~@10 x ~@2 x ~", AH: "x!3 ~@9",
})).gain(0.34)
// drums · hihat
const hihat = s("hh").struct(`<
~@6 A B C D E F G H I J K L M N O P Q R S@14 T R S@6 T R S@6 T ~@2 U V W X Y Z AA AB ~ AC C D E F G AD AE AF AG@14 AH
AF AG@6 AH AF AG@6 AH AF K L AI AJ AK AL AM AN AO ~@3
>`.pickRestart({
A: "~@5 x ~@3 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2", B: "~ x ~@5 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2 x",
C: "~@3 x ~@5 x ~@2 x ~@3 x ~@2 x ~@2 x ~", D: "~ x ~@3 x ~@5 x ~@2 x ~@3 x ~@2 x ~@2",
E: "x ~@2 x ~@2 x ~@6 x ~@2 x ~@2 x ~@3 x", F: "~@2 x ~@2 x ~@2 x ~@6 x ~@2 x ~@2 x ~@2",
G: "~ x ~@2 x ~@2 x ~@2 x ~@6 x ~@2 x ~@2 x", H: "~ x!4 ~@3", I: "~@7 x", J: "x ~@2 x ~@2 x ~@3 x ~@2 x ~@2 x ~@6 x",
K: "~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~@2 x ~@5", L: "x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~@3",
M: "~@2 x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~", N: "~@4 x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~@2",
O: "x ~@5 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2 x ~", P: "~@2 x ~@5 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2", Q: "x!2 ~@4",
R: "~@4 x!4", S: "x!3 ~ x!4", T: "x!3 ~@5", U: "~@16 x ~@2 x ~@2 x ~", V: "~@2 x ~@2 x ~@2 x ~@2 x ~@6 x ~@2 x ~@2",
W: "x ~@2 x ~@3 x ~@2 x ~@2 x ~@6 x ~@2 x", X: "~@2 x ~@2 x ~@3 x ~@2 x ~@2 x ~@6 x ~",
Y: "~ x ~@2 x ~@2 x ~@3 x ~@2 x ~@2 x ~@6", Z: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~@4",
AA: "~ x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~@2", AB: "~@3 x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x",
AC: "~@7 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2 x", AD: "~@3 x ~@2 x ~@2 x ~@2 x ~@6 x ~@2 x ~",
AE: "~ x ~@2 x ~@3 x ~@2 x ~@2 x ~@9", AF: "~@23 x", AG: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@5 x",
AH: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@6", AI: "~@2 x ~@3 x ~@2 x ~@3 x ~@2 x ~@2 x ~@3 x",
AJ: "~@5 x ~@3 x ~@2 x ~@3 x ~@2 x ~@2 x ~", AK: "~@2 x ~@5 x ~@3 x ~@2 x ~@3 x ~@2 x ~",
AL: "~@2 x ~@3 x ~@6 x ~@2 x ~@3 x ~@2 x", AM: "~@3 x ~@2 x ~@3 x ~@6 x ~@2 x ~@3",
AN: "x ~@2 x ~@3 x ~@2 x ~@3 x ~@6 x ~@2", AO: "x ~@3 x ~@2 x ~@3 x ~@3 x ~@2 x ~@5",
})).gain(0.34)
// drums · open hat
const open_hat = s("oh").struct(`<
~@7 A B C D E F G ~ H I J ~ K L M N ~ O@15 ~ O@7 ~ O@7 ~@3 G P Q R S ~ T U ~ B C D E F G V ~ R@15 ~ R@7 ~ R@7 ~ I J ~
U M O W V S ~@3
>`.pickRestart({
A: "~ x ~@4", B: "~ x ~@2", C: "~ x ~", D: "~@5 x ~@6", E: "~ x", F: "~@7 x ~@4", G: "~@5 x ~@2", H: "~@19 x ~@4",
I: "~@7 x", J: "~@23 x", K: "~ x ~@22", L: "~ x ~@6", M: "~@5 x ~@18", N: "~@7 x ~@16", O: "~@3 x ~@4", P: "~@2 x",
Q: "~@3 x", R: "~@5 x", S: "~@11 x", T: "x", U: "~ x ~@10", V: "~@17 x ~@6", W: "~@13 x ~@10",
})).gain(0.34)
// drums · crash
const crash = s("cr").struct("<~@117 [~@5 x ~@18] ~>").gain(0.34)
stack(trombone, piano, bass, kick, snare, hihat, open_hat, crash)
More by Neil Diamond
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.