0:00/0:00
// Sunshine Of Your Love — Cream
// 118 bpm, 4/4, key D major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 7 overdriven guitar (copy of ch 5 distortion guitar)
// note: Full arrangement: all 151 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(118/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, A@4 for four bars: edit a riff to change every repeat.
// bass · electric bass finger · "SunshineLove"
const bass = note(`<
~@5 A B A C A B A D A B E D F G A D F G H I J K L M A B A B N O P O P O Q R A S A T F U A V W X F I F X A D Y Z Y AA F
U F AB AC O P O P O Q AD A B A AE A B A AF AG AH AI AJ AK B A B P O AC O N O Q AL F X F AM A AN A AO F X F AP F X F X
Y AH Y Z A B A B P O AC O AQ O P O AR AS AT AU AV AW AV AX AY AZ BA BB BC BD BE BB BF A BG@3 BH
>`.pickRestart({
A: "d2 ~ d2@2 c2@2 d2 ~@3 a2 ~@3 g#2 ~", B: "~@2 g2 ~@3 d2@2 f2@4 d2@2 ~@2", C: "~@2 g2 ~@3 d2@2 f2@4 g2@4",
D: "~@2 g2 ~@3 d2@2 f2@8", E: "d2 ~ d2@2 c2@2 d2@2 ~@2 a2 ~@3 g#2 ~", F: "d2 ~ d2@2 c2@2 d2 ~@3 a1 ~@3 g#1 ~",
G: "~ g1 ~ d2 f2@2 d2 ~", H: "d2 ~ d2@2 c2@2 d2@2 ~@2 a1@2 ~@2 g#1 ~", I: "~@2 g1@2 ~@2 d1@2 f1@7 ~",
J: "g2 ~ g2@2 f2@2 g2 ~@3 d3 ~@3 c#3 ~", K: "~@2 c3 ~@3 g2@2 a#2@4 ~ g2@2 ~",
L: "g2 ~ g2@2 f2@2 g2 ~@3 d2@2 ~@2 c#2 ~", M: "~@2 c2 ~@3 g1@2 a#1@4 c2@4", N: "a1@3 a1!2 ~@11", O: "c2@8 g1@7 ~",
P: "a1@2 ~ a1!2 ~@11", Q: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", R: "a1@2 a1 ~ a1@2 a1 ~ a1@2 a1@2 c2@2 c#2@2",
S: "~@2 g2 ~@3 d2@2 f2@5 d2@2 ~", T: "~ f2 g2 a2 c3 d3 f3 g3 f3@4 d3@3 ~", U: "~@2 g1 ~@3 d2@2 f2@4 d2@2 ~@2",
V: "~@2 g2 ~@3 f2@3 g2 f2 d2 c2 a1 g1 f1", W: "d1 ~ d1@2 c1@2 d1 ~@3 a1 ~@3 g#1@2",
X: "~@2 g1 ~@3 d1@2 f1@4 d1@2 ~@2", Y: "g1 ~ g1@2 f1@2 g1 ~@3 d2 ~@3 c#2 ~", Z: "~@2 c2 ~@3 g1@2 a#1@4 g1@2 ~@2",
AA: "~@2 c2 ~@3 g1@2 c2@4 a#1@3 ~", AB: "~@2 g1 ~@3 d1 ~ f1@6 g1 g#1", AC: "a1@2 ~ a1 a1@2 ~@10",
AD: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2 c2 ~ c#2 d2", AE: "~@2 g2 ~@3 c2 d2 f2 g2 f2@2 d2@4",
AF: "~@2 g2 ~@3 d2 ~ f2@3 ~ g2@3 ~", AG: "g1 ~ g1 ~ f1@2 g1@2 ~@2 d2 ~@3 c#2 ~", AH: "~@2 c2 ~@3 g1 ~ a#1@4 g1@2 ~@2",
AI: "g1 ~ g1@2 f1 ~ g1@2 ~@2 d2 ~@3 c#2 ~", AJ: "~@2 c2 ~@3 g1 ~ c2@3 ~ a#1@3 ~",
AK: "d2 ~ d2@2 c2 ~ d2 ~@3 a2 ~@3 g#2 ~", AL: "a2 ~ a2 ~ a2 ~ a2 ~ a2@2 a1@2 c2 ~ c#2 ~",
AM: "~@2 g1 ~@3 d1 ~ f1@3 ~ f1@4", AN: "~@2 g2 ~@3 d2 ~ f2@4 d2@2 ~@2",
AO: "~@2 g2 a2 c3 d3 f3 g3 g3@3 f3 d3 c3 a2 g2", AP: "~@2 g1@2 ~@2 f1 ~ f2@4 d2@2 ~@2", AQ: "a1@2 ~ a1!2 ~@9 a1 b1",
AR: "a1@15 ~", AS: "a1@3 g2@3 f#2@4 g2@4 a1@2", AT: "a1@3 a1@3 a1@4 a1@4 g1 g#1", AU: "a1 f#1 a1 f#1 a1 f#2 e2 f#2",
AV: "a1 c#2 e2 f#2 g2 f#2 e2 c#2", AW: "a1 f#1 a1 f#1 a1 e2!2 f#2", AX: "a1 g1 a1@2 a1 f#2 e2 f#2",
AY: "a1 c#2 e2 f#2 g2 f#2 e2 a1", AZ: "a1@2 f#1@2 a1@2 f#1 a1@2 f#1 f#2@2 e2@2 f#2@2",
BA: "a1@2 f#1@2 a1@2 f#1 a1@2 a1 f#2@2 e2@2 f#1@2", BB: "a1@2 f#1@2 a1@2 f#1 a1@2 a1 f#2@2 e2@2 f#2@2",
BC: "a1@2 f#1@2 a1@2 f#1 a1@2 a1 f#2@2 e2@2 c#2@2", BD: "a1 f#1 a1 f#1 a1 f#2 e2 f#2, ~@10 a1 ~@5",
BE: "a1@2 c#2@2 e2@2 f#2@2 g2@2 f#2@2 e2@2 f#2 e2", BF: "g2 f#2 e2 a1 e2 c#2 a1 g1 c#2 a1 g1 e1 g1@2 a1@2",
BG: "[~@2 g2 ~@3 d2@2 f2@4 g1@36]/3", BH: "d2 ~@7",
})).s("gm_electric_bass_finger").gain(0.39)
// other · piano
const piano = note(`<
~@5 A B C D C E C F C E C G H E C I J K C L M N O P Q E C K ~@8 R K C S Q K T U C V W X Y Z AA AB O AC AD AE AF E AG G
~@8 AH K AI AJ AK AL T AM AN AO AP AQ AR K AS AT ~@8 C K C AU AV AW AX AY C E C E AZ E C BA AD BB AD BC AH BD C E ~@9
BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV@3 BW
>`.pickRestart({
A: "d3 ~ [d2,d3]@2 [c2,c3]@2 d2@2 ~@2 [a1,a2,a3] ~@3 [g#2,g#3] ~, ~@6 d3 ~@7 g#1@2", // D C A G#
B: "~@2 [g1,g3] ~@3 d2@2 [f2,f3]@4 d3@2 ~@2, ~@2 g2@2 ~@2 d3 ~@5 d2 ~@3", // G F
C: "d3 ~ [d2,d3]@2 c2@2 [d2,d3] ~@3 [a2,a3] ~@3 [g#2,g#3] ~, ~@4 c3 ~@11", // D A G#
D: "~@2 [g2,g3] ~@3 d2@2 [f2,f3]@4 g3@4, ~@6 d3 ~@5 g2@2 ~@2", // G F
E: "~@2 [g2,g3] ~@3 d2@2 [f2,f3]@4 [d2,d3]@2 ~@2, ~@6 d3 ~@9", F: "~@2 g2@2 ~@2 d2@2 [f2,f3]@7 ~, ~@2 g3 ~@3 d3 ~@9",
G: "~@2 [g2,g3] ~@3 [d2,d3]@2 [f2,f3]@7 ~", H: "[d3,f3,a3,c4]@2 d2 ~ [c2,c3]@2 [d2,d3] ~@3 [a2,a3] ~@3 [g#2,g#3] ~",
I: "~@2 [g2,g3] ~@3 [d2,d3]@2 f3@5 f2 [d3,b3]@2, ~@8 f2@3 ~@3 g3 ~", // G D G
J: "[d3,f3] ~ d2@2 [c2,c3]@2 [d2,d3] ~@3 [a2,a3] ~@3 [g#2,g#3] ~, ~@2 d3 ~@13", // Dm C D A G#
K: "~@2 [g2,g3] ~@3 d2@2 [f2,f3]@4 d3@2 ~@2, ~@6 d3 ~@5 d2 ~@3", // G F
L: "~@2 [g2,g3] ~@3 [d3,f#3,g3] ~@5 d2 ~ d2@2, ~@5 d2@6 ~@5, ~@6 b3@2 [c3,f3,a3]@7 ~", // G Gmaj7 F
M: "g3 ~ g3@2 [f2,f3]@2 [g2,g3] ~@3 [d2,d4] ~@3 [c#2,c#4] ~, ~@2 g2 ~@13", // F G D C#
N: "~@2 [c2,c4] ~@3 [g3,e4] ~ [g2,d4]@3 ~ [g2,g3] ~ f2@2, ~@5 g1@2 ~@9, ~@6 c4@2 [g3,a#3] ~@5 f3 ~", // C G5 G Gm
O: "g3 ~ [g2,g3]@2 f2@2 [g2,g3] ~@3 [d2,d3] ~@3 [c#2,c#3] ~, ~@4 f3 ~@11", // G D C#
P: "~@2 [c2,c3] ~@3 g1@2 [a#1,a#2]@4 [c2,c3]@2 ~@2, ~@6 g2 ~@9", // C A# C
Q: "d3 ~ [d2,d3]@2 [c2,c3]@2 [d2,d3] ~@3 [a2,a3] ~@3 [g#2,g#3] ~", // D C D A G#
R: "~@2 [d2,d3]@2 c2@2 [d2,d3] ~@3 [a2,a3] ~@3 [g#2,g#3] ~, ~@4 c3 ~@11", // D A G#
S: "~@2 g3 ~@2 d2 [d4,f#4,b4] g4 [c4,f4,a4]@3 a3 d3 ~ c3@2, ~@13 c2@2 ~", // Bm F
T: "[d2,d3] ~ [d2,d3]@2 [c2,c3]@2 [d2,d3] ~@3 [a2,a3] ~@3 [g#2,g#3] ~", U: "~@2 [g2,g3] ~@3 [d2,d3]@2 [f2,f3]@4 ~@4",
V: "~@2 [g2,g3] ~@3 d2@2 [f2,f3]@3 ~@3 [d3,f#3] ~, ~@6 d3 ~@6 d2@2 ~, ~@7 b3", // G F D
W: "[f3,a3]@2 ~@2 [c2,c3] ~ [d2,d3] ~@3 a2 ~@3 [g#2,g#3] ~", // F C D G#
X: "~@2 [g2,g3] ~@3 d2@2 [f2,f3]@4 ~ f2 [d3,f#3] g3, ~@6 d3 ~@7 b3@2", // G F D
Y: "[f3,a3]@2 [d2,d3] ~ [c2,c3]@2 [d2,d3] ~@3 [a2,a3] ~@3 [g#2,g#3] ~", // F D C D A G#
Z: "~@2 [g2,g3] ~@3 [d2,d3]@2 [f2,f3]@3 ~@3 [d4,f#4,b4] g4, ~@13 d2@2 ~", // G D F Bm
AA: "[f4,a4] ~@3 c2@2 [d2,d3] ~@3 [a2,a3] ~@3 [g#2,g#3] ~, c4@2 ~@2 c3 ~@11", // F D A G#
AB: "~@2 [g2,g3] ~@3 d2@2 [f2,f3]@4 [f#2,f#3]@3 ~, ~@6 d3 ~@9", // G F F#
AC: "~@2 [c2,c3] ~@3 g1@2 [a#1,a#2]@4 g1@2 ~@2, ~@6 g2 ~@5 g2 ~@3", // C A#
AD: "g3 ~ [g2,g3]@2 [f2,f3]@2 [g2,g3] ~@3 [d3,d4] ~@3 [c#3,c#4] ~", // G F G D C#
AE: "~@2 [c3,c4] ~@3 g2@2 [c3,g3,c4,e4]@4 [a#2,f3,a#3,d4]@3 ~", // C A#
AF: "d4 ~ [d2,d4]@2 [c2,c4]@2 [d2,d4] ~@3 [a2,a3] ~@3 g#3@2, ~@14 g#2 ~", // D C D A
AG: "d3 ~ [d2,d3]@2 c3@2 [d2,d3] ~@3 [a2,a3] ~@3 [g#2,g#3] ~, ~@4 c2 ~@11", // D A G#
AH: "d4 ~ d4@2 [c3,c4]@2 [d3,d4] ~@3 [a2,a3] ~@3 [g#2,g#3] ~, ~@2 d3 ~@13", // C D A G#
AI: "d3 ~ [d2,d3] ~ [c2,c3] ~ [d2,d3] ~@3 [a2,a3] ~@3 [g#2,g#3] ~", // D C D A G#
AJ: "~@2 [g3,g4] ~@3 [c2,c3] [d2,d3] [f2,f3] [g2,g3] [f2,f3]@2 [d2,d3]@4", // G C D F G F D
AK: "d3 ~ d3@2 c3@2 [d2,d3] ~@3 [a2,a3] ~@3 [g#2,g#3] ~, ~@2 d2 ~ c2 ~@11", // D A G#
AL: "~@2 [g2,g3] ~@3 d2@2 f2@4 [d2,d3] ~@3, ~@6 d3 ~ f3@2 ~@6", // G D
AM: "~@2 [g2,g3] ~@3 d2@2 [f2,f3,a3,c4]@4 [g2,d3,g3,b3]@3 ~", // G F G
AN: "[a3,d4,f4] ~ [g2,a3,d4,f4] ~ [g2,g3,c4] ~ [g2,g3,b3,d4] ~@7 [c#3,c#4] ~, ~@2 e4 ~@5", // Dm C5 G C#
AO: "~@2 [c3,c4] ~@3 [g2,g3]@2 [a#2,a#3]@4 [g2,g3] ~@3", // C G A# G
AP: "[g3,d4,f4] ~ [g2,g3,d4,f4] ~ [g3,e4]@2 [g2,b3,d4] ~@3 [d3,d4] ~@3 [c#3,c#4] ~, ~@4 [g2,c4] ~@11", // G7 C G D C# C5
AQ: "~@2 [c3,c4] ~@3 [g2,g3]@2 [c3,c4]@4 [a#2,a#3] ~@3", // C G C A#
AR: "[a3,d4] ~ [d2,a3,d4] ~ c2@2 [d2,d3] ~@3 [a2,a3] ~@3 [g#2,g#3] ~, ~@4 d3 ~@11", // D5 D A G#
AS: "[d3,d4] ~ [d3,d4] ~ [c2,c4]@2 [d2,f3,a3,d4] ~@3 [a2,a3] ~@3 [g#2,g#3] ~, ~@2 d2@2 [c3,g3] ~@11", // D C Dm A G# C5
AT: "~@2 [g2,g3] ~@3 [d3,b3] ~ [d3,f3,a3]@3 ~ [d3,a3,d4]@2 ~@2, ~@5 d2@2 ~ d2@7 ~", // G Dm D5
AU: "~@2 [g2,g3]@2 ~@2 d2@2 g#4 a4@3 [f2,d4,g4,b4]@4, ~@8 [g2,c5]@3 ~@5", // G G7 C5
AV: "~@2 d2@2 c2@2 [d2,d3] ~@3 [a2,a3] ~@3 [g#2,g#3] ~, ~@4 c3 ~@11", // D A G#
AW: "~@2 [g2,g3] ~@3 [d2,d3]@2 f2@2 [d3,d4] ~ f2 ~ f2@2, ~@13 [d3,g3,b3,d4]@3", // G D G
AX: "[a3,d4] ~ d3 ~ [c2,c3]@2 [d2,d3] ~@3 [a2,d3] ~@2 a3 ~ d3, ~@5 a3 ~@2", // D5 C D D5
AY: "[f4,g#4] [d3,a4] [d4,g4,b4] ~ [c4,f4,a4] ~ [b3,d4,g4] d3 [a3,c4,f4] ~ [g#3,d4] d3 ~ d3 f3 d3, c5 ~@5 [g3,d4] ~", // Fm D5 G F G F G#dim G5
AZ: "[d3,d4] ~ [d2,d4]@2 [c2,c4]@2 [d2,d4] ~@3 [a2,a3] ~@3 [g#2,g#3] ~, ~@2 d3 ~ c3 ~ d3@2 ~@8", // D C D A G#
BA: "~@2 g3@3 d3 ~@2 [a3,c4]@2 g3@2 c4 ~ d3@2, ~@2 g2 ~@4 d2@4 ~@5, ~@8 [f3,g#3] ~ d4 ~ [a3,d4,f4]@4", // Am Fm Dm
BB: "~@2 [c3,c4] ~@3 [g3,e4] ~ a#3 b3@2 ~ g3@3 ~, ~@6 c4@2 [g3,d4]@3 ~@5", // C G5
BC: "~@2 [c3,c4] ~@3 g2@2 [a#2,a#3]@4 g3@2 a2 ~, ~@6 g3 ~@5 g2 ~@3", // C A#
BD: "~@2 [g2,g3] ~@2 d2 [d3,b4]@2 [c4,f4,a4] ~ d4 c4 d4@2 a2 ~, ~@6 [d4,f#4] ~@9", // G F D
BE: "[a5,e6,g6,a6]@2 ~ e6@2 ~ [e6,g6,a6]@3 ~ e6@3 ~ [d6,f#6,a6]@2", BF: "a6@2 ~@4 a6@6 ~@2 f#6 ~",
BG: "[e6,a6]@2 ~ a6@2 ~ [g6,a6]@3 ~ [e6,a6]@3 ~ d6 ~", BH: "[e6,a6]@2 ~ [e6,a6]@2 ~ [e6,a6]@3 ~@5 [d6,f#6,a6] ~",
BI: "[a5,e6,a6]@3 a5@2 ~ [c#6,e6,a6]@3 ~ [e6,a6]@3 ~@3, ~@3 a6 ~@12", // A5 A A5
BJ: "a6@2 ~ [e6,a6]@2 ~ a6@2 ~@2 [a5,e6]@4 [d6,f#6,a6] ~, ~@5 g6 ~@2", // A5 D
BK: "[c#6,e6]@2 ~ [c#6,e6,a6]@2 ~ [c#6,e6,a6]@3 ~ [c#6,e6]@3 ~ [d6,f#6]@2, ~@14 a6 ~", // C#m A C#m D
BL: "a6@2 ~ [e6,g6,a6]@2 ~@7 a6 ~ d6@2", // A7
BM: "[c#6,e6]@3 [e6,a6]@2 ~ [c#6,e6,a6]@2 ~ [c#6,e6,a6]@2 ~ [c#6,e6]@2 d6@2, ~@12 a6 ~ a5 ~", // C#m A5 A C#m
BN: "a6@2 ~ e6@2 ~ [e6,a6]@2 ~ [e6,a6]@2 ~ [e6,a6] ~ [d6,f#6,a6]@2", // A5 D
BO: "[a5,c#6,e6,a6]@3 [e6,a6]@2 ~ [c#6,e6,a6]@3 [a5,c#6,e6,a6]@3 ~@2 d6@2", // A A5 A
BP: "[e6,a6]@2 ~ [e6,a6]@2 ~ [e6,a6]@3 [d6,f#6,a6]@3 [c#6,e6]@2 [a5,d6,a6] ~, ~@12 [a5,a6] ~ f#6@2", // A5 D C#m D5 A
BQ: "[a5,c#6,e6,a6]@3 ~@3 [a5,a6]@3 ~ [f#6,a6]@2 [c#6,e6]@2 d6 ~, ~@12 a5 ~@3", // A F#m C#m
BR: "[e6,a6]@3 e6@2 ~@4 [a5,e6]@2 ~ e6 ~ [a5,d6] ~", // A5 D5
BS: "[a5,c#6,e6]@2 ~ [a5,e6,a6]@2 ~ [a5,c#6,e6,a6]@3 ~ [f#6,a6]@2 e6 ~@3, ~@10 d6 ~@5", // A A5 A F#m
BT: "[e6,a6]@2 ~ e6@2 ~ [g6,a6]@3 ~ [f#6,a6]@2 [a5,c#6,e6]@3 ~, ~@10 [a5,d6] ~@5", // A5 Gsus2 F#m A D5
BU: "d3 ~ [d2,d3]@2 c2@2 [d2,d3] ~@3 [a1,a2,a3] ~@3 [g#2,g#3] ~, ~@4 c3 ~@9 g#1@2", // D A G#
BV: "[~@2 [g1,g2,g3] ~@3 [d2,d3] ~ [f1,f3] ~@3 [g2,f3,a3,d4]@33 ~@3, ~@3 d1 ~@20]/3", BW: "[d1,d3,a3,d4] ~@7",
})).s("gm_piano").gain(0.32).pan(0.3)
// other · piano · soft notes
const piano_soft = note(`<
~@44 A ~@6 B ~@28 C ~@7 D ~@12 E ~@10 F ~@5 G ~@11 H I J K L M N O P Q R S T U V W ~@5
>`.pickRestart({
A: "~@12 d2 ~@3", B: "~@2 d3 ~@8 a3 ~@4", C: "~@6 d3 ~@9", D: "~@6 g3 ~@9", E: "~@2 d3 ~@13", F: "~@10 c4 ~@5",
G: "~@7 g4 ~@8", H: "~@3 [a5,g6,a6]@2 ~@5 [g6,a6]@3 ~ a5 ~, ~@3 a5@3 ~@2",
I: "[a5,e6,g6]@2 ~ [a5,e6,g6,a6]@2 ~ a5@4 a5@2 ~@2 [a5,a6] ~, ~@3 [e6,g6]@3 ~ d6", // A7 A Em
J: "[a5,g6]@2 ~ [a5,e6,g6]@2 ~ [a5,e6]@3 ~ [a5,g6]@2 ~@2 [a5,a6] ~, ~@7 f#6", // A7 A5 A7 A
K: "[a5,g6]@2 ~ [a5,g6]@2 ~ [a5,g6]@3 [a5,e6,g6,a6]@4 a5@2 ~", // A7
L: "c#6@2 ~ [c#6,e6]@2 ~ a5@3 ~ [a5,c#6]@3 ~ [a5,d6,f#6]@2, ~@14 a6 ~", // C#m A D
M: "[a5,e6,g6]@2 ~ [a5,g6]@2 ~ [a5,e6,g6]@3 ~ a6@2 ~@2 a5 ~", N: "[g5,a6]@2 ~ g5@2 ~ g5@3 ~ [g5,a6]@3 ~ a5@2",
O: "[a5,e6,g6]@2 ~ a5@2 ~ [a5,e6,g6,a6]@2 ~ [a5,e6,g6,a6]@2 ~ [a5,e6,g6] ~ [a5,a6] ~, ~@7 f#6", // A7 A
P: "[g5,a6]@2 ~ [g5,c#6]@2 ~ g5@2 ~ g5@2 ~ g5 ~ [f#6,a6] ~", // Gsus2 Gdim F#m
Q: "[a5,e6,g6]@2 ~ [a5,g6,a6]@2 ~ [a5,g6]@2 ~ [a5,g6]@2 ~ [a5,g6] ~ g5 ~", // A7
R: "g5@2 ~ [g5,a5,c#6]@2 ~ [g5,a5]@2 ~ g5@2 ~@2 a6 [a5,f#6,a6] ~", S: "[a5,g6]@2 ~ [a5,g6]@2 ~ [a5,g6]@2 ~ a5@2 ~@5",
T: "g5@2 ~ [g5,a5,c#6,e6,a6]@2 ~ [g5,c#6,e6]@4 [a5,d6] ~@3 [a5,f#6,a6] ~", // A7 C#dim D5 D
U: "[a5,g6]@3 [a5,g6,a6]@2 ~ [a5,e6,g6,a6]@2 ~ [g6,a6]@2 ~ [a5,g6,a6] ~ a6@2", // A7 Gsus2 A7
V: "a6@2 ~ c#6@2 ~@5 a5 ~ [a5,c#6] ~ [a5,f#6,a6] ~, ~@7 d6", W: "[a5,g6]@2 ~ [a5,g6,a6]@2 ~ [a5,e6]@3 ~@3 a6@3 ~",
})).s("gm_piano").gain(0.18).pan(0.3)
// chords · distortion guitar
const distortion_guitar = note(`<
~ A B A C D E A F A E A G A E A H A I A H A J A I K L M N A J A J O P O P O P Q R A E A H A E A H A E A H A E S H T L
U V A W A X O P Y Z O P Q AA@2 AB AC AD AE AF AG AH AI AJ AK AL AM AN@2 AO AP@2 AQ@2 AR AS AT AU AV AW A AX A E A AY A
AW A AY A AZ A J T L T L A AW A E Y P O P O P O P BA BB BC BD BE BF BG BF BE BD BE BF BE BH BG BF BE D BI@3 BJ
>`.pickRestart({
A: "[d3,a3,d4]@2 [d3,a3,d4]@2 [c3,g3,c4]@2 [d3,a3,d4] ~@3 a3 ~@3 g#3 ~", B: "~@2 g3 ~@3 d3@2 f3@4 d3@2 ~@2",
C: "~@2 g3 ~@3 g4@2 f4@6 ~@2", D: "[d3,a3,d4]@2 [d3,a3,d4]@2 [c3,g3,c4]@2 [d3,g3,a3,d4] ~@3 a3 ~@3 g#3 ~",
E: "~@2 g3 ~@3 d3 ~ f3@4 d3@4", F: "~@2 g3 ~@3 g4@2 f4@4 d4@2 ~@2", G: "~@2 g3 ~@3 g4@2 f4@8",
H: "~@2 g3 ~@3 f4@2 f4@8", I: "~@2 g3 ~@3 [d4,g4]@2 [c4,f4]@4 d4@4", J: "~@2 g3 ~@3 d3@2 f3@4 d3@4",
K: "[g2,d3,g3]@2 [g2,d3,g3]@2 [f2,c3,f3] ~ [g2,d3,g3]@2 ~@2 d4 ~@3 c#4 ~", L: "~@2 c4 ~@3 g3 ~ a#3@4 g3@4",
M: "[g2,d3,g3]!2 [f2,c3,f3] [g2,d3,g3] ~ d3 ~ c#3", N: "~ c3 ~ g2 a#2@2 c3@2", O: "[a2,e3,a3]@3 [a2,e3,a3]!2 ~@11",
P: "[c3,g3,c4] [g2,d3,g3]", Q: "[a2,e3,a3]!8", R: "[a2,e3,a3]!7 [e3,a3]",
S: "[d3,a3,d4]@2 [d3,a3,d4]@2 [c3,g3,c4]@2 [d3,a3,d4]@2 ~@2 a3 ~@3 g#3 ~", // D5 C5 D5
T: "[g2,d3,g3]@2 [g2,d3,g3]@2 [f2,c3,f3]@2 [g2,d3,g3] ~@3 d4 ~@3 c#4 ~", // G5 F5 G5
U: "[g2,d3,g3]@2 [g2,d3,g3]@2 [f2,c3,f3]@2 [g2,d3,g3]@2 ~@2 d3 ~@3 c#3 ~", V: "~@2 c3 ~@3 g2@2 c3@4 a#2@4",
W: "~@2 g3 ~@3 [d4,g4,b4]@2 [c4,f4,a4]@4 d4@4", X: "~@2 g3 ~@3 [d4,g4,b4]@2 [c4,f4,a4]@8",
Y: "[a2,e3,a3]@3 [a2,e3,a3] [a2,e3,a3]@2 ~@10", Z: "[c3,g3,c4] [d3,g3], ~@4 g2@3 ~",
AA: "[[a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 ~@2 a4@7 ~ a4@8, ~@14 [a2,e3,a3]@5 ~@13]/2", // A5
AB: "~@2 g4@2 a4@6 ~ a4@3 g4@2", AC: "a4@5 ~ a4@8 ~@2", AD: "~@2 f#4@5 ~ f#4@2 e4@2 f#4@2 e4@2", AE: "d4@3 a3@5",
AF: "~@2 a3 b3 d4 e4 f#4 d4 e4@3 d4 b3 d4 b3 a3", AG: "f#3 g3 a3 f#3 e3 [b2,d3] d3@2 d3@8", AH: "~@8 c5@4 c5@3 ~",
AI: "c5@2 a4 ~@2 f4 g4@6 f4 d4 f4 g4, ~@2 g4 ~@5", AJ: "g4@3 f4 d4@6 f4@2 d4@4", AK: "~@2 c5@2 d5 c5 d5@2",
AL: "d5!2 c5@2 d5@2 c5 a4 a4@2 g4@2 f4@2 d4@2", AM: "e4@2 d4@2 g3@2 f#3@9 ~",
AN: "[d5 b4 d5 b4 d5 e5@4 a5 e5@2 d5@3 c5]/2", AO: "a4@2 c5@2 a4 g4@3 f#4@2 d4@2 c4@2 d4@2",
AP: "[~@2 d4@2 f4@2 g4@2 a4@3 c5 a4@9 ~ c5@7 c5 ~ a4]/2",
AQ: "[g5@2 e5@2 c5@3 d5@2 a4 d5@2 c5@8 a4@3 c5@2 a4@2 c5 a4@2 c5 ~]/2", AR: "a4@2 c5 a4@2 c5 c#4@9 ~",
AS: "~@4 d5@2 d5 ~@2 d5@3 d5@3 c5", AT: "g5 e5 d5 c5 e5 d5 c5 a4 d5 a4 c5 a4 g4 e4 d4 c4",
AU: "d4 c4 a3 g3 a3 g3 e3 g3 a3 c4 d4 f4 g4@2 f4 d4",
AV: "[d3,a3,d4]@2 [d3,a3,d4]@2 [c3,g3,c4]@2 [d3,a3,d4]@2 ~@2 a3 ~@3 g#3@2", // D5 C5 D5
AW: "~@2 g3 ~@3 [c4,f4,a4]@2 [c4,f4,a4]@4 d4@4", AX: "~@2 g3 ~@3 [c4,f4,a4]@2 [c4,f4,a4]@8",
AY: "~@2 g3 ~@3 d3@2 f3@8", AZ: "~@2 g3 ~@3 f4@2 f4@4 d4@4", BA: "[a2,e3,a3]",
BB: "[a2,e3,a3]@3 [a2,f#3,a3]@2 [a2,e3,a3]@4 [a2,f#3,a3]@3 [a2,e3] ~ [a2,f#3]@2, ~@6 a3 ~", // A5 D A5 D A5 D
BC: "[a2,e3,a3]@3 [a2,f#3,a3]@3 [a2,e3,a3]@3 [a2,f#3,a3]@3 [a2,e3,a3]@2 a2@2", // A5 D A5 D A5
BD: "[a2,e3,a3]@3 [a2,f#3,a3]@3 [a2,e3,a3]@3 [a2,f#3,a3]@3 [a2,e3] ~ [a2,f#3]@2, ~@6 a3 ~", // A5 D A5 D A5 D
BE: "[a2,e3,a3]@3 [a2,f#3,a3]@3 [a2,e3,a3]@3 [a2,f#3,a3]@3 [a2,e3,a3]@4", // A5 D A5 D A5
BF: "[a2,e3,a3]@3 [a2,f#3,a3]@3 [a2,e3,a3]@3 [a2,f#3,a3]@3 [a2,e3,a3]@2 [a2,f#3,a3]@2", // A5 D A5 D A5 D
BG: "[a2,e3,a3]@3 [a2,f#3,a3]@3 [a2,e3,a3]@3 [a2,f#3,a3]@3 [a2,e3,f#3,a3]@4", // A5 D A5 D F#m7
BH: "[a2,e3,a3]@3 [a2,f#3,a3]@3 [a2,e3,f#3,a3]@3 [a2,f#3,a3]@3 [a2,e3,a3]@2 [a2,f#3,a3]@2", // A5 D F#m7 D A5 D
BI: "[~@2 g3 ~@3 d3@2 f3@4 [g2,d3]@35 ~]/3", BJ: "[d3,a3,d4] ~@7",
})).s("gm_distortion_guitar").gain(0.25).pan(0.6)
// chords · rock organ
const rock_organ = note(`<
~@33 A B C D E F G@2 ~@24 C D H D I D J K ~@16 C L M D N D O@2 ~@24 P D Q D R D Q S T U@8 ~@13
>`.pickRestart({
A: "[a5,e6,g6,a6]@2 ~ [a5,e6,g6,a6]!2 ~@11, d#6 ~@15", B: "c6@8 [b5,d6]@7 ~, g6@15 ~, d#6 ~@15",
C: "[a5,e6,g6,a6]@2 ~ [a5,e6,g6,a6] [a5,e6,g6,a6]@2 ~@10", D: "[c6,e6]@4 [b5,d6]@3 ~, [g5,g6]@7 ~",
E: "d#6 e6@2 [a5,e6,g6,a6] [a5,e6,g6,a6]@2 ~@10, [a5,g6,a6] ~@7", F: "[g5,c6,e6,g6]@7 ~ [g5,b5,d6]@7 ~, ~@8 f6 ~@7",
G: "[d#6 e6@15 ~@2 [a5,e6,a6]@2 [e6,a6]@2 [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,a6] ~ [a5,e6,a6] ~, [a5,a6]@18 ~@2 a5 ~@7 e6@2 ~@2]/2", // A5 A A5 A
H: "[a5,e6,a6]@2 ~ [a5,e6,a6] [a5,e6,a6]@2 ~@10, d#6 ~@15", I: "[a5,e6,a6]@2 ~ [a5,e6,a6] [a5,e6,a6]@2 ~@10",
J: "[a5,e6,a6]@15 ~, d#6 ~@15", // A5
K: "[a5,e6,a6]@2 [e6,a6]@2 [a5,a6] ~ [a5,a6] ~ [e6,a6] ~ [a5,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~, d#6 ~ a5 ~ e6@2 e6@2 ~@2 e6@2 ~@4", // A5 A A5 A A5
L: "[c6,e6]@7 ~ [b5,d6]@7 ~, [g5,g6]@15 ~, d#6 ~@15", M: "[a5,e6,g6,a6]@2 ~ [a5,e6,g6] [a5,e6,g6,a6] ~@11",
N: "[a5,e6,g6,a6]@3 e6 [a5,e6,a6] ~@11", O: "[[a5,e6,g6,a6]@31 ~, d#6 ~@31]/2",
P: "[a5,e6,g6,a6]@3 [e6,a6] [a5,e6,g6,a6]@2 ~@10, d#6 ~@15", Q: "[a5,e6,g6,a6]@2 ~ [a5,e6,a6] [a5,e6,g6,a6]@2 ~@10",
R: "[a5,e6,g6,a6]@2 ~ [e6,g6,a6] [a5,e6,a6]@2 ~@10", S: "e6@8 [b5,d6]@7 ~, g6@15 ~, g5@13 ~@3, c6@3 ~@5",
T: "[a5,e6,a6]@15 ~", U: "[[e6,a6], a5@15 ~@113]/8",
})).s("gm_rock_organ").gain(0.25).pan(0.7)
// chords · rock organ · soft notes
const rock_organ_soft = note("<~@34 A ~@3 B C ~@32 D ~@18 E F G ~@27 H ~ H ~ I J H ~@10 K@8 ~@5>".pickRestart({
// … 86 more lines
More by Cream
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.