0:00/0:00
// Love Is a Wonderful Thing — Michael Bolton
// 124 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 136 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(124/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 · synth bass 2 · "SYN BASS 2"
const bass = note(`<
~@9 A B C D A B C D E F A B A B C D G@2 H I J K L M J K N@2 J K O@3 P A B C D A B C D E F A B A B C D G@2 H I J K L M
J K N@2 J K O@3 P A B Q@2 R@2 S T U V W A B C D X Y Z D X Y AA@2 AB AC AD AE AB AC AF@2 AB AC AG@3 AH AI AJ AK AL ~ AM
AN AO AP AQ AN AO AP AQ AN AO AP AQ AN AO AP AR
>`.pickRestart({
A: "d1@4 d2@4 b1@2 d2 ~@3 b1@2", B: "d2 b1 d2 d1@2 d2 a1 d2", C: "d1@3 ~ d2@4 b1@2 d2 ~@3 b1@2",
D: "d2 b1 d2 d1@2 a1 d2 d1", E: "g1@4 g2@4 e2@2 g2 ~@3 e2@2", F: "g2 e2 g2 g1@2 g2 d2 g2",
G: "[g1@4 g2@2 e2 ~ g2@2 e2@2 g2 ~ b1@4 b2@3 ~ f#2@3 ~ e2@2 f#2@2 e2@2]/2", H: "a1@4 a2@2 ~@2 f#2@2 a2@2 e2 ~ f#2@2",
I: "~@2 a1@4 a2@4 a1@2 f#2 ~@3", J: "d2@3 ~ b1@2 a1@2 d2@2 b1@2 a1 ~ b1@2", K: "~@2 b1@2 f#1@2 b1@4 a1@2 b1@2 f#1 ~",
L: "a1@4 a2@3 e2 a2@2 a1@2 a2@2 f#1@2", M: "~@2 f#1@2 f#2@2 g1@3 ~ g1@2 g2@2 g1 ~",
N: "[e2@3 ~ e2@3 b1 e2@2 b1@2 e1 ~ a1@4 a1@2 a2@3 e2 a2@2 e2@2 a2 e2 a1 ~]/2",
O: "[g#2@3 ~ g#2@3 e2 g#2 e2 g#1@3 ~ g2@4 d2@2 g2@2 g1@4 g2@2 g1@2 f#2@4 f#1@2 f#2@4 f#1@2 f#2@2 ~@2 e2@2]/3",
P: "~@2 e2 b1 e1 ~ a1@3 ~ a1@2 a2@2 a1 ~", Q: "[f#1@5 ~ f#2@3 ~ f#2 c#2 f#2@2 f#1@6 f#2 ~ f#2@4 f#1@2 f#2@3 ~]/2",
R: "[b1@6 b2@4 f#2@2 b2@2 b1@7 ~ b1 ~ b1 ~ b1@3 ~ b1 ~]/2", S: "e2@2 e1 e2@2 e1 e2@2",
T: "f#1@4 f#2@2 f#1@6 f#2@2 f#1 ~", U: "g1@4 g2@2 g1@3 ~ g1@2 g2@4", V: "a1@5 ~ a2@2 ~@2 a2 e2 a2@2 e2@2",
W: "a1@4 a2@2 a1@3 ~ a1@2 a2@2 a1 ~", X: "f2 ~ f2@2 c2 ~ f2@4 c2@2 f1@2 c2@2",
Y: "g2 ~ g2@2 d2@2 g1@4 g2 d2 g1@2 ~@2", Z: "d1@3 ~ d2@4 b1@2 d2 ~@3 b1@2, d2 ~@15",
AA: "[a1@4 a2@2 e2@2 a2@4 f#2@2 a1@4 a2@2 f#2@2 e2@3 ~ f#2 ~ a2@2 ~@2]/2",
AB: "d#2@3 ~ c2@2 a#1@2 d#2@2 c2@2 a#1 ~ c2@2", AC: "~@2 c2@2 g1@2 c2@4 a#1@2 c2@2 g1 ~",
AD: "a#1@4 a#2@3 f2 a#2@2 a#1@2 a#2@2 g1@2", AE: "~@2 g1@2 g2@2 g#1@3 ~ g#1@2 g#2@2 g#1 ~",
AF: "[f2@3 ~ f2@3 c2 f2@2 c2@2 f1 ~ a#1@4 a#1@2 a#2@3 f2 a#2@2 f2@2 a#2 f2 a#1 ~]/2",
AG: "[a2@3 ~ a2@3 f2 a2 f2 a1@3 ~ g#2@4 d#2@2 g#2@2 g#1@4 g#2@2 g#1@2 g2@4 g1@2 g2@4 g1@2 g2@2 ~@2 f2@2]/3",
AH: "~@2 f2 c2 f1 ~ a#1@3 ~ a#1@2 a#2@2 a#1 ~", AI: "g1@4 g2 ~ g1@3 ~ g1@2 g2@2 g#1@2",
AJ: "~@2 g#1@2 g#2@2 g#1@3 ~ g#1@2 g#2@2 g#1 ~", AK: "g1@2 a#1 ~ b1 ~ c2@4 c3@2 c2 ~ f2@2",
AL: "~@2 f2@3 ~ f2@2 a#1@4 a#2 a#1 a#2 ~", AM: "~@2 a#1@2 a#1 ~ a#1 ~ a#1 ~ a#1 ~ a#1 c2 d#2 ~",
AN: "d#1@4 d#2@4 c2@2 d#2 ~@3 c2@2", AO: "d#2 c2 d#2 d#1@2 d#2 a#1 d#2", AP: "d#1@3 ~ d#2@4 c2@2 d#2 ~@3 c2@2",
AQ: "d#2 c2 d#2 d#1@2 a#1 d#2 d#1", AR: "d#2 c2 a#1 d#2 ~@4",
})).s("gm_synth_bass_2").gain(0.56)
// chords · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
~@5 A B A C A B A C D E F G H I D J D K F G L@2 M@2 N@2 O@2 P@2 Q@2 N@2 R@4 A B A C D E F G H I D J D K F G L@2 M@2
N@2 O@2 P@2 Q@2 N@2 R@4 A B S@2 T@2 U V W X Y A B A C Z AA AB C Z AA AC@2 AD@2 AE@2 AF@2 AG@2 AD@2 AH@4 AI@2 AJ@2 ~ AK
AL AM AL AN AL AM AL AN AL AM AL AN AL AM AL AO
>`.pickRestart({
A: "~@4 [b3,e4,g4]@3 ~ [a3,d4,f#4]@6 ~@2", B: "[b3,e4,g4] ~ [b3,e4,g4]@2 ~@2 [a3,d4,f#4]@10",
C: "[b3,e4,g4] ~ [b3,e4,g4]@2 ~@2 [a3,d4,f#4]@8 ~@2", D: "d2@4 d3@4 b2@2 d3 ~@3 b2@2", E: "d3 b2 d3 d2@2 d3 a2 d3",
F: "d2@3 ~ d3@4 b2@2 d3 ~@3 b2@2", G: "d3 b2 d3 d2@2 a2 d3 d2", H: "g2@4 g3@4 e3@2 g3 ~@3 e3@2",
I: "g3 e3 g3 g2@2 g3 d3 g3", J: "d3@2 b2@2 d3@2 ~@2 [b3,e4,g4] ~ [d3,b3,e4,g4]@2 a2@2 [d3,a3,d4,f#4]@2, ~@3 d2@2 ~@3",
K: "d3@2 b2@2 d3@2 ~@2 [b3,e4,g4] ~ [d3,b3,e4,g4]@2 a2@2 [d3,a3,f#4]@2, ~@6 d2@4 ~@4 d4 ~", // Em Em7 D
L: "[[g2,g3,b3,d4]@12 ~@2 [b2,b3,d4,f#4]@17 ~]/2", // G Bm
M: "[[a2,a3,c#4,e4]@9 ~ [a2,a3,d4,e4] ~@11 e3 ~ [a3,c#4,e4]@2 [a3,c#4,e4] ~ [a3,c#4,e4]@2 ~@2, ~@7 a2@8 ~, ~@7 [a3,c#4,e4]@5 ~@4]/2", // A Asus4 A
N: "[[d3,a3,d4,f#4]@9 ~ [d3,a3,d4,f#4] ~@3 [b3,d4,f#4]@11 ~ [b3,d4,f#4] ~ [c#4,f#4]@2 b3 ~, ~@7 [b2,f#3]@8 ~]/2", // D Bm F#5 B5
O: "[~@4 [a3,c#4,e4]@9 ~ [f#3,a3,d4,f#4]@7 ~@5 g4@3 ~@3, a2@13 ~@9 [g3,b3,d4]@7 ~@3]/2", // A D G
P: "[[d4,f#4]@8 [d4,f#4,a4]@3 ~@3 [b3,d4,f#4]@7 ~ [c#4,f#4] ~@3 [b3,d4,f#4]@6, [d3,a3]@11 ~@3 [b2,f#3]@18]/2", // D Bm F#5 Bm D5 B5
Q: "[[e3,b3,e4,g4]@10 f#4 ~ e4 ~@5 [g3,b3,d4] ~@3 a2@4 a2@2 [a3,c#4,e4] ~@3, ~@7 a2@3 ~ [g3,b3,d4]@3 ~@2]/2", // Em G A G
R: "[[g#3,b3,e4]@8 [g#3,b3,d4,e4] ~ [g#3,b3,d4] ~@3 g3@4 g3@2 ~@4 [g3,b3,d4]@2 [a3,d4]@3 ~ [d4,f#4]@7 ~ [e4,a4]@6 ~@2 [e3,b3,d4,g4]@6 ~@6 e3@2 [g3,d4] ~@3, ~@10 e4@2 ~@2 g2@12 ~@28 [a2,g3,b3,d4]@7 ~@3, ~@7 [d3,b3,d4]@3 a3@3 ~@19, ~@5 d4 ~@10, ~@11 d3@2 ~@2 [d3,a3]@7 ~@10]/4", // E E7 G#dim G D5 D A5 Em7 …
S: "[f#2@6 ~@6 a3@2 [a3,c#4,f#4]@4 [a3,b3,f#4]@3 ~ [a3,c#4,f#4]@9 ~, [c#4,f#4]@7 ~@9, a3@3 ~@5, ~@3 f#3@4 ~@9]/2", // F#m B7 F#m F#5
T: "[[b2,f#3,b3,d4,f#4]@9 ~ [b2,f#3,a3,c#4,e4]@5 ~ [b3,d4]@6 b3@4 f#3@2 [c#4,f#4]@2 ~@2, ~@15 b2@13 ~@4, ~@4 f#4@3 ~]/2", // Bm F#m7 Bm F#5
U: "~@3 e4, [e3,b3], ~@3 [d4,g4]@5", V: "~@3 [e4,a4]@3 f#4 ~, [f#3,c#4]@3 ~, ~@3 c#5@4 ~",
W: "~@4 d3@2 ~@4 d3@2 [b3,d4]@3 ~, g2@13 ~@3, [g3,b3,d4]@3 [a3,d4]@3 ~@2", // Bm G D5
X: "[a2,g3,b3,d4] ~ [a2,g3,b3,d4]@4 [a2,g3,b3,d4] ~ [a2,g3,b3,d4]@4 [a2,g3,b3,d4]@3 ~", // G
Y: "a3@4 e3 ~@7 [e4,a4]@2 [e4,a4] ~, [a2,c#4]@15 ~, e4@3 ~, ~@6 a3@9 ~, ~@8 e3@7 ~", Z: "[f3,c4,f4,a4]@15 ~",
AA: "[g3,d4,g4]@4 [g3,b3,d4]@3 ~", AB: "[a3,d4,f#4] ~@3 [b3,e4,g4]@3 ~ [a3,d4,f#4]@6 ~@2",
AC: "[[a3,d4]@2 [a3,d4,e4]@2 [e4,a4]@2 [e4,a4,d5] ~, a2@7 ~]/2", // D5 Asus4 A5 Dsus2
AD: "[[d#3,a#3,d#4,g4]@9 ~ [d#3,a#3,d#4,g4] ~@3 [c4,d#4,g4]@11 ~ [c4,d#4,g4] ~ [d4,g4]@2 c4 ~, ~@7 [c3,g3]@8 ~]/2", // D# Cm G5 C5
AE: "[~@4 [a#3,d4,f4]@9 ~ [g3,a#3,d#4,g4]@7 ~@5 g#4@3 ~@3, a#2@13 ~@9 [g#3,c4,d#4]@7 ~@3]/2", // A# D# G#
AF: "[[d#4,g4]@8 [d#4,g4,a#4]@3 ~@3 [c4,d#4,g4]@7 ~ [d4,g4] ~@3 [c4,d#4,g4]@6, [d#3,a#3]@11 ~@3 [c3,g3]@18]/2", // D# Cm G5 Cm D#5 C5
AG: "[[f3,c4,f4,g#4]@10 g4 ~ f4 ~@5 [g#3,c4,d#4] ~@3 a#2@4 a#2@2 [a#3,d4,f4] ~@3, ~@7 a#2@3 ~ [g#3,c4,d#4]@3 ~@2]/2", // Fm G# A# G#
AH: "[[a3,c4,f4]@8 [a3,c4,d#4,f4] ~ [a3,c4,d#4] ~@3 g#3@4 g#3@2 ~@4 [g#3,c4,d#4]@2 [a#3,d#4]@3 ~ [d#4,g4]@7 ~ [f4,a#4]@6 ~@2 [f3,c4,d#4,g#4]@6 ~@6 f3@2 [g#3,d#4] ~@3, ~@10 f4@2 ~@2 g#2@12 ~@28 [a#2,g#3,c4,d#4]@7 ~@3, ~@7 [d#3,c4,d#4]@3 a#3@3 ~@19, ~@5 d#4 ~@10, ~@11 d#3@2 ~@2 [d#3,a#3]@7 ~@10]/4", // F F7 Adim G# D#5 D# A#5 Fm7 …
AI: "[[g3,a#3,d#4,g4]@4 ~@2 [g3,a#3,d#4,g4]@5 ~@3 [g#3,c4,d#4,g#4]@7 ~ [g#3,c4,d#4,g#4] ~ [g#3,c4,d#4,g#4] ~ [g#3,c4,d#4,g#4]@5 ~]/2", // D# G#
AJ: "[[g3,a#3,d4] ~@2 [c3,g3,c4,d#4,g4]@3 ~ [f3,g#3,c4,d#4,g#4]@3 ~@3 f3 [g#3,c4,d#4] ~, ~@11 a#2@4 ~, ~@11 [g#3,c4,d#4]@3 ~@2]/2", // Gm Cm Fm7 G#
AK: "~@2 [a#2,g#3,c4,d#4]@2 [a#2,g#3,c4,d#4]@2 [a#2,g#3,c4,d#4]@2 [a#2,g#3,c4,d#4]@2 [a#2,g#3,c4,d#4]@2 [a#2,g#3,c4,d#4]@2 [a#2,g#3,c4,d#4] ~", // G#
AL: "~@4 [c4,f4,g#4]@3 ~ [a#3,d#4,g4]@6 ~@2", AM: "[c4,f4,g#4] ~ [c4,f4,g#4]@2 ~@2 [a#3,d#4,g4]@10",
AN: "[c4,f4,g#4] ~ [c4,f4,g#4]@2 ~@2 [a#3,d#4,g4]@8 ~@2", // Fm D#
AO: "[d#3,a#3,d#4,g4,a#4] ~ [d#3,a#3,d#4,g4,a#4] ~ [d#3,a#3,d#4,g4,a#4]@2 [d#3,d#4,g4,a#4]@2 ~@8, ~@6 a#3 ~@9", // D#
})).s("gm_epiano2").gain(0.5)
// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
~@5 A B C D A B C D ~@7 E F G H I J@2 K L M N O P M N Q R M N S T@3 A B C D ~@7 E F G H I J@2 K L M N O P M N Q R M N
S T@3 A B U@2 V W X Y Z AA@2 AB@4 AC AD AB@2 AC AD AE@2 AF AG AH AI AF AG AJ AK AF AG AL AM@3 AN@2 AO@2 ~ AP AQ AR AS
AT AQ AR AS AT AQ AR AS AT AQ AR AS AU
>`.pickRestart({
A: "~@2 d4!3 ~ d4@2 b3@2 d4 ~@3 d4 ~", B: "~@2 d4 ~@3 e4@3 ~ e4 ~ e4@4", C: "~@2 d4 ~ d4 ~@5 b3@2 d4 ~ d4@2",
D: "~@2 d4 ~@3 a4@2 ~@2 a4 ~ f#4 ~ e4 ~", E: "~@8 [b3,d4,g4] ~ [b3,d4,g4]@3 ~ [a3,d4,f#4] ~",
F: "~@2 d4 ~@2 d4 ~@2 d4 ~@3 d4 a3 d3 ~", G: "~@2 d4 ~@3 d4 ~@3 d4 ~ d4@2 a3 ~",
H: "~@2 d4 ~ d4@2 b3 ~ d4 ~ d4 ~ d4 b3 a3 ~", I: "~@2 d4 ~@3 d3@2 d4 ~ d4 ~ d3 ~@3",
J: "[[g3,b3,d4]@9 ~ [b3,d4] ~@3 [b2,f#3]@15 ~@3, ~@14 c#3 ~@17]/2", // G Bm B5
K: "~@10 [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~, [a2,e3]", // A5
L: "[a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4]@4 [a3,e4,a4]@2 ~@2", // A5
M: "~@4 [a3,d4,f#4] ~@7 [a3,d4,f#4] ~@3", N: "~@4 [b3,d4,f#4] ~@7 [b3,d4,f#4] ~@3",
O: "~@4 [a3,c#4,e4] ~@7 [a3,c#4,e4] ~@3", P: "~@4 [a3,d4] ~@7 [g3,b3,d4] ~@3", Q: "~@4 [b3,e4,g4] ~@7 [b3,e4,g4] ~@3",
R: "~@2 a3 ~ a3 ~ a3@2 a2@2 a3@2 a2@2 a3 ~", S: "~@4 [g#3,b3,d4,e4] ~@7 [g#3,b3,d4,e4] ~@3",
T: "[~@4 [g3,b3,d4] ~@7 [g3,b3,d4] ~ d3@6 d4@2 d3@6 d4 ~ [e3,b3]@6 ~@2 [a2,e3]@7 ~@3]/3", // G E5 A5
U: "[~@6 a4@25 ~, f#3@31 ~, ~ c#4@11 ~@4, ~@4 f#4@27 ~]/2", V: "[b2,b3]@5 ~ [a3,c#4,e4]@10, ~@6 b2 ~@9",
W: "[b2,b3,d4]@15 ~", X: "[e3,b3,e4,g4]@15 ~", Y: "f#4@7 ~", Z: "~ g4, g3, ~ d4@3",
AA: "[~@2 a3@13 ~ [a3,e4,a4] ~ [a3,e4,a4]@2 [a3,e4,a4]@2 [a3,e4,a4]@2 [a3,e4,a4]@2 [a3,e4,a4]@2 [a3,e4,a4] ~@3, a2@29 ~@3]/2", // A5
AB: "~@4 [d4,f#4,a4] ~@7 [d4,f#4,a4] ~@3", AC: "~@4 [f3,a3,c4,f4] ~@7 [f3,a3,c4,f4] ~@3",
AD: "~@4 [g3,b3,d4] ~@7 [g3,b3,d4] ~@3", // G
AE: "[a2@4 a2 ~@9 a3 ~, e3@7 e3@8 ~, a3@3 a3@2 a3!2 ~, ~@5 a2@4 a2@2 a2@2 a2@2 ~]/2",
AF: "~@4 [a#3,d#4,g4] ~@7 [a#3,d#4,g4] ~@3", AG: "~@4 [c4,d#4,g4] ~@7 [c4,d#4,g4] ~@3",
AH: "~@4 [a#3,d4,f4] ~@7 [a#3,d4,f4] ~@3", AI: "~@4 [a#3,d#4] ~@7 [g#3,c4,d#4] ~@3",
AJ: "~@4 [c4,f4,g#4] ~@7 [c4,f4,g#4] ~@3", AK: "~@2 a#3 ~ a#3 ~ a#3@2 a#2@2 a#3@2 a#2@2 a#3 ~",
AL: "~@4 [a3,c4,d#4,f4] ~@7 [a3,c4,d#4,f4] ~@3", // F7
AM: "[~@4 [g#3,c4,d#4] ~@7 [g#3,c4,d#4] ~ d#3@6 d#4@2 d#3@6 d#4 ~ [f3,c4]@6 ~@2 [a#2,f3]@7 ~@3]/3", // G# F5 A#5
AN: "[[d#3,a#3] ~@5 [d#3,a#3]@6 ~@2 [g#3,c4]@11 ~@7]/2", // D#5 G#
AO: "[[g3,d4] ~@5 [c3,c4]@7 ~ f3@8 a#2@4 a#2@2 a#3@2 ~@2, ~@11 a#3@3 ~@2]/2", // G5 C
AP: "~@2 [a#2,f3]@2 [a#2,f3]@2 [a#2,f3]@2 [a#2,f3]@2 [a#2,f3]@2 [a#2,f3]@2 [a#2,f3] ~", // A#5
AQ: "~@2 d#4!3 ~ d#4@2 c4@2 d#4 ~@3 d#4 ~", AR: "~@2 d#4 ~@3 f4@3 ~ f4 ~ f4@4",
AS: "~@2 d#4 ~ d#4 ~@5 c4@2 d#4 ~ d#4@2", AT: "~@2 d#4 ~@3 a#4@2 ~@2 a#4 ~ g4 ~ f4 ~",
AU: "[d#2,a#2,d#3] ~ [d#2,a#2,d#3]@2 [d#2,a#2,d#3]@2 [d#2,a#2,d#3] ~@9", // D#5
})).s("gm_overdriven_guitar").gain(0.56)
// other · brass section · "BRASS 1"
const brass_section = note(`<
~@9 A@3 B C ~@7 D ~@6 E F ~@6 G H ~@3 I ~ A@3 B C ~@7 D ~@6 E F ~@6 G H ~@3 I ~ J@2 ~@7 K L ~@11 M N ~@6 O P ~@3 Q ~
R@2 S@2 ~ T U ~@7 V@3 W V@3 X
>`.pickRestart({
A: "[~@4 [d4,d5]@19 ~ [b3,b4] ~ [a3,a4] ~ [f#3,f#4] ~ [a3,a4]@4 [b3,b4] ~@13]/3", // D B A F# A B
B: "~@10 [f#4,f#5] ~ [e4,e5] [d4,d5] [b3,b4] ~", C: "[d4,d5] ~@7", D: "~@2 [d5,a5,d6] ~@5",
E: "[a4,a5]@11 ~ [a4,a5] [b4,b5] [d5,d6] ~", F: "[d5,a5,d6] ~@7", G: "~@10 f#5 ~ e5 d5 b4 ~",
H: "[a5,d6] ~@7, d5 ~@15", I: "~@2 [d5,d6] ~@3 [e5,e6] ~@3 [d5,d6]@3 ~@3",
J: "[~@4 [d4,d5]@19 ~ [b3,b4] ~ [a3,a4] ~ [f#3,f#4] ~ [a3,a4]@2]/2", // D B A F# A
K: "~@2 [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6]@3 ~ [d5,a5,d6] ~@5", // D5
L: "~@2 [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6]@3 ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~", // D5
M: "~@8 [a3,a4] [b3,b4] [d4,d5] ~ [d4,d5]@2 [b3,b4] [a3,a4]", N: "[d#5,a#5,d#6] ~@7", O: "~@10 g5 ~ f5 d#5 c5 ~",
P: "[a#5,d#6] ~@7, d#5 ~@15", Q: "~@2 [d#5,d#6] ~@3 [f5,f6] ~@3 [d#5,d#6]@3 ~@3",
R: "[[a#3,a#4]@5 ~ [a#3,a#4]@14 ~@2 [a#3,a#4] ~@3 [c4,c5] ~ [a#3,a#4] ~@3]/2", // A# C A#
S: "[[d#4,d#5]@14 [f4,f5]@7 ~ [f4,f5]@4 [f4,f5] ~ [g4,g5] ~ [f4,f5] ~]/2", // D# F G F
T: "~@2 [a#4,a#5] ~ [a#4,a#5] ~ [a#4,a#5] ~ [a#4,a#5] ~ [a#4,a#5] ~ [a#4,a#5] [c5,c6] [d#5,d#6] ~", // A# C D#
U: "[d#4,d#5,a#5] ~@7", V: "[~@4 [d#4,d#5]@19 ~ [c4,c5] ~ [a#3,a#4] ~ [g3,g4] ~ [a#3,a#4]@4 [c4,c5] ~@13]/3",
W: "~@10 [g4,g5] ~ [f4,f5] [d#4,d#5] [c4,c5] ~", // G F D# C
X: "[d#5,a#5,d#6] ~ [d#5,a#5,d#6] ~ [d#5,a#5,d#6] ~ [d#5,d#6] ~@9, ~@3 a#5 ~@4", // D#5 D#
})).s("gm_brass_section").gain(0.72)
// other · alto sax
const alto_sax = note(`<
~@9 A@2 ~@9 B C ~@5 D E ~@7 F G ~@3 H@2 A@2 ~@2 I ~@6 B C ~@5 D E ~@7 F G ~@3 H@2 A@2 ~@9 J K L@2 M N O P Q R S T ~@7
U V ~@3 W@2 X Y ~@3 Z ~@8 AA@2 ~@2 AA@2 ~ AB
>`.pickRestart({
A: "[d2@31 ~]/2", B: "~@7 c#2", C: "d2 ~@7", D: "~@6 a3 e3", E: "a2@9 ~ a2 ~ a2 ~ a2 ~", F: "~@10 f#4 ~ e4 d4 b3 ~",
G: "d4 ~@7", H: "[~@6 [a3,a4]@25 ~]/2", I: "[d5,f#5,a5] ~@15",
J: "c5 [a4,c5]!2 a4 [a4,c5]!4 c5 [a4,c5]!3 a4 [a4,c5]!3", // Am
K: "[a4,c5] c5 [a4,c5] a4 [a4,c5]!3 c5 [a4,c5]!2 a4 [a4,c5] c5 a4 c5 a4", // Am
L: "[d4@4 ~@6 a3 b3 e4 d4 b3 d4@4 ~ b3 d4 e4 d4 b3 e4 d4 b3 ~@2 c4 d4]/2", M: "f4@2 d4 f4 a4 ~ f4@5 ~ d4 c4 ~@2",
N: "d4@2 f4 ~ a4 ~ g4@3 f4 g4 ~ a4 g4 f4 ~", O: "~@2 c5@4 a4 ~ f4 ~ d4@3 ~ d4 ~",
P: "f4 d4 ~@2 d4@3 ~@3 d4 f#4 a4 b4 d5 ~", Q: "~@2 f5@4 d5 ~ d5@4 c5 d5 ~@2",
R: "a4 b4 d5 b4 a4 ~ d5@3 ~ d5 ~ f5 d5 ~@2", S: "~@2 c#5 ~@2 e5 ~@2 f#5 ~@2 a5 ~@2 b5 ~", T: "b5@3 ~",
U: "~@10 g4 ~ f4 d#4 c4 ~", V: "d#4 ~@7", W: "[~@6 [a#3,a#4]@25 ~]/2", X: "a#4@15 ~",
Y: "~@2 a#4 ~@3 a#4 ~@3 a#4 ~ a#4 ~@3",
Z: "~@2 [a#4,a#5] ~ [a#4,a#5] ~ [a#4,a#5] ~ [a#4,a#5] ~ [a#4,a#5] ~ [a#4,a#5] [c5,c6] [d#5,d#6] ~", // A# C D#
AA: "[d#2@31 ~]/2", AB: "[g4,a#4,d#5] ~ [g4,a#4,d#5] ~ [g4,a#4,d#5] ~ [g4,a#4,d#5] ~@9",
})).s("gm_alto_sax").gain(0.8)
// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
~@9 A@4 ~@12 B C D@2 E@2 F@2 G@2 H@2 E@2 I@3 J A@4 ~@12 B C D@2 E@2 F@2 G@2 H@2 E@2 I@3 J K@2 L@2 M N O P Q R@2 ~@10
S@2 T@2 U@2 V@2 W@2 T@2 X@3 Y Z@2 AA@2 AB ~ AC@12 AD@3 ~
>`.pickRestart({
A: "[a5@22 b5@4 ~@8 a5@2 ~@2 a5@2 ~@2 a5@2 ~@2 a5 ~ b5 ~ b5@4 a5@9 ~, d6@63 ~, f#5@27 ~@3 f#5@15 ~@19]/4",
B: "[b5,b6]", C: "[f#5,f#6]@6 [e5,e6]@4 [f#5,f#6]@2 e6 ~@3", D: "[[a4,c#5,e5]@8 [a5,e6]@7 ~, [a3,e4]@15 ~]/2",
E: "[[a4,d5,f#5]@13 ~ [b4,d5,f#5]@18]/2", F: "[[a4,c#5,e5]@13 ~ [a4,d5,f#5]@8 [b4,d5,g5]@9 ~]/2",
G: "[[a4,d5,f#5]@13 ~ [b4,d5,f#5]@16 ~@2]/2", H: "[[e4,g4,b4,e5,g5]@14 [a4,a5]@17 ~]/2",
I: "[~@8 e5@6 [g4,b4,d5]@15 ~ [a4,d5,f#5]@8 [a5,d6,f#6]@4 [e5,f#5,g5,a5,b5] [e4,f#4,g4,a4,b4,c#5,d5] d4 ~@3, [e4,g#4,b4]@7 ~@17]/3", // G D Em Em7 E
J: "~@2 [e5,g5] ~ [e5,g5] ~@5 [a4,c#5,e5]@4 ~@2", K: "[a5@11 b5@2 ~@2 f#5, d6, f#5@27 ~@5]/2",
L: "[[f#4,a4,c#5,a5,c#6], f#5 ~@15]/2", M: "[b3,f#4,b4,d5,f#5]@9 ~ [a4,c#5,e5]@6", N: "[b4,d5,f#5]",
O: "[e4,g4,b4,e5,g5]", P: "[f#4,a4,c#5,f#5,a5]", Q: "[g4,b4,d5,g5,b5]",
R: "[~@16 a5@15 ~, a4@31 ~, a3@17 ~@15, ~@8 e5@23 ~]/2", S: "[[a3,e4,d5]@8 c#5@7 ~, [a4,e5]@15 ~]/2",
T: "[[a#4,d#5,g5]@13 ~ [c5,d#5,g5]@18]/2", U: "[[a#4,d5,f5]@13 ~ [a#4,d#5,g5]@8 [c5,d#5,g#5]@9 ~]/2",
V: "[[a#4,d#5,g5]@13 ~ [c5,d#5,g5]@16 ~@2]/2", W: "[[f4,g#4,c5,f5,g#5]@14 [a#4,a#5]@17 ~]/2",
X: "[~@8 f5@6 [g#4,c5,d#5]@15 ~ [a#4,d#5,g5]@8 [a#5,d#6,g6]@4 [f5,g5,g#5,a#5,c6] [f4,g4,g#4,a#4,c5,d5,d#5] d#4 ~@3, [f4,a4,c5]@7 ~@17]/3", // G# D# Fm Fm7 F
Y: "~@2 [f5,g#5] ~ [f5,g#5] ~@5 [a#4,d5,f5]@4 ~@2", Z: "[[a#4,d#5,g5]@7 [c5,d#5,g#5]@9]/2",
AA: "[[g3,d4,g4,a#4,d5]@6 [c4,g4,c5,d#5,g5]@8 [f4,g#4,c5,f5,g#5]@8 [a#4,a#5]@9 ~]/2", // Gm Cm Fm A#
AB: "[a#5,d#6,g6]@2 [c6,d6] [d5,d#5,f5,g5,g#5,a#5] [c4,d4,d#4,f4,g4,g#4,a#4,c5] a#3 ~@10", // D# Csus2 D#maj7 Cm7
AC: "[a#5@22 c6@4 ~@8 a#5@2 ~@2 a#5@2 ~@2 a#5@2 ~@2 a#5 ~ c6 ~ c6@4 a#5@9 ~, d#6@63 ~, g5@27 ~@3 g5@15 ~@19]/4",
AD: "[a#5@22 c6@4 ~@8 a#5@2 ~@2 a#5@2 ~@2 a#5@2 ~@2 a#5 ~, d#6, g5@9 ~ g5@5 ~]/3",
})).s("gm_rock_organ").gain(0.52)
// chords · rock organ · "ORGAN 3" · soft notes
const rock_organ_soft = note(`<
~@10 A B@2 ~@13 C ~@14 D ~@2 A B@2 ~@13 C ~@14 D ~@2 A ~@8 E ~@24 F ~@5 G ~@2 H I@2 ~ H I@2 ~ H I@2 ~ H J ~
>`.pickRestart({
A: "~@10 a5@2 f#5 ~@3", B: "[~@13 f#5@17 ~@2]/2", C: "~@12 e5 ~@3", D: "~@8 f6 [c#6,e6] ~@6", E: "~@8 a6@7 ~",
F: "~@8 f#6 [d6,f6] ~@6", G: "c6 ~ f6 ~@13", H: "~@10 a#5@2 g5 ~@3", I: "[~@13 g5@17 ~@2]/2", J: "~@13 g5@3",
})).s("gm_rock_organ").gain(0.22)
// drums · kick
const kick = s("bd").struct(`<
~ A B A B A B A B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C D C B C B C B C B C B C B C B C B
C B C B C B C B C B C B C B C B C D C B C B C B C B C B C@2 B C B C B C B C B C B C B C B C B C B C B C B C D C B C B
A E C B C B C B C B C B C B C B C F
>`.pickRestart({
A: "x ~@2 x ~@4", B: "x ~@5 x ~@3 x!2 ~@2 x ~", C: "x ~@2 x ~ x ~ x", D: "x ~@3 x ~ x ~@3 x!2 ~@2 x ~",
E: "x ~@2 x!5", F: "x!4 ~@4",
})).gain(0.64)
// drums · rim
// … 83 more lines
More by Michael Bolton
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.