0:00/0:00
// Little Willy — Sweet
// 130 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 6/4 at bar 11, 4/4 at bar 13, 6/4 at bar 36, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: ch 5 "Fuzz L" named as a guitar, played on distortion guitar (its piano patch is not one); ch 6 "Fuzz R" named as a guitar, played on distortion guitar (its piano patch is not one)
// note: duplicate parts dropped: ch 11 "Melody" voice oohs (copy of ch 4 "Melody" distortion guitar); ch 6 "Fuzz R" distortion guitar (copy of ch 5 "Fuzz L" distortion guitar); ch 8 "6 String" acoustic guitar steel (copy of ch 7 "12 String" acoustic guitar steel)
// note: Full arrangement: all 106 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/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 · epiano1 · "Wurlitzer"
const epiano1 = note(`<
~ A@4 B C D E F G H@3 I J@3 K L@7 M@2 N O P Q R S T U V C D E W@2 X Y Z@2 AA AB AC@2 AD@2 AE AF AG AH AI AJ AK AL AM
AN AO G AP AQ AR AS AT AU AV@8 ~ AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BN BO BR BD BS@2
>`.pickRestart({
A: "[[e2,e3,b3,e4,b4]@31 ~]/2", B: "[e2,b3]@7 ~ a2@3 ~ b2@3 ~, [e3,e4]@5 ~@11", C: "b1@2 e2 ~",
D: "e2@8 a2@2 a2 ~ a2@2 ~@2", E: "~@4 b2@3 ~ e2@7 ~", F: "e2@8 a2 ~ a2 ~ a2@2 ~@2", G: "~@3 b2",
H: "[e2@7 ~ [e2,e3,b3,e4]@29 ~@3 [a3,e4,a4]@6 ~@2, ~@5 a2]/3", // E5 A5
I: "[b3,f#4,b4]@4 ~@4 [e2,e3,b3,e4]@3 ~ a2@2 ~@2, b2@7 ~@9", // B5 E5
J: "[[e2,e3,b3,e4]@7 ~ [e3,b3,e4]@28 ~@4 [a2,a3,e4,a4]@7 ~, d4 ~@7 e2@30 ~@10]/3", // E5 A5
K: "[b3,f#4,b4]@5 ~@3 [e2,e3,b3,e4]@3 ~ a2@3 ~, b2@7 ~ c#4 ~@7", // B5 E5
L: "[[e2,e3,b3,e4]@4 ~@4 b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1 ~ b2 ~ b1 ~ b2 ~ b1 ~ b2 ~ b1 ~ b2 ~ b1 ~ b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1 ~ b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1 ~ b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ a1@2 a2 ~ a1@2 a2 ~, ~@8 [f#3,b3,f#4]@31 ~ [f#3,b3,f#4]@31 ~ [f#3,b3,f#4]@16 [f#3,b3,f#4]@15 ~ [a3,c#4,e4]@8]/7", // E5 B5 A
M: "[a1@2 a2 ~ a1@2 a2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ [e2,b2,b3,e4]@4 ~@4, ~@8 [f#3,b3,f#4]@15 ~@9]/2", // E5 B5
N: "[e3,a3,e4]@2 [a2,e3,a3,e4]@2 ~@6 [b2,b3] ~ [b2,f#3,b3,f#4]@2 ~@2, a2 ~@15", // A5 B B5
O: "[e2,b2,b3,e4]@3 ~ [e2,b2,b3,e4]@2 ~@2, ~@8 a3 ~@7", P: "[a2,e3,a3,e4]!2 ~@4 [b2,f#3,b3,f#4] ~",
Q: "[e2,b2,b3,e4]@5 ~@3 [e2,b2,b3,e4]@4 ~@4", R: "[a3,e4] [a2,e3,e4] ~@4 [b2,f#3,b3,f#4] ~, [a2,e3] ~ a3 ~@13",
S: "[e2,b2,b3,e4]@6 ~@2 [e2,b2,b3,e4]@5 ~@3", T: "[e3,a3,e4] [a2,e3,a3,e4] ~@6, a2 ~@15", U: "~@4 b2@4 e2@7 ~",
V: "e2@7 ~ a2@3 ~ b2@3 ~", W: "[[e2,e3,b3,e4]@29 ~@3]/2", X: "[a3,e4,a4]@3 ~ [b3,f#4,b4]@2 ~@2, a2@8 b2@7 ~",
Y: "[e2,e3,b3,e4]@3 ~ a2@2 ~@2 [e2,e3,b3,e4]@7 ~, ~@8 d4 ~@7", Z: "[[e3,b3,e4]@7 ~, e2@15 ~]/2",
AA: "[a2,a3,e4,a4]@7 ~ [b3,f#4,b4]@5 ~@3, ~@8 b2@7 ~", AB: "[e2,e3,b3,e4]@3 ~ a2@3 ~ [e2,e3,b3,e4]@4 ~@4, c#4 ~@15",
AC: "[b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1 ~ b2 ~ b1 ~ b2 ~ b1 ~ b2 ~ b1 ~ b2 ~ b1 ~ b2 ~, [f#3,b3,f#4]@31 ~]/2", // B5
AD: "[b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~, [f#3,b3,f#4]@31 ~]/2", // B5
AE: "b1 ~ b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~, [f#3,b3,f#4]", // B5
AF: "b1 ~ b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~, [f#3,b3,f#4]@15 ~", // B5
AG: "a1@2 a2 ~ a1@2 a2 ~ a1@2 a2 ~ a1@2 a2 ~, [a3,c#4,e4]@13 ~@3", // A
AH: "b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~ b1@2 b2 ~, [f#3,b3,f#4]@15 ~", // B5
AI: "[e2,b2,b3,e4]@2 ~@2 [e3,a3,e4] [a2,e3,a3,e4] ~@2, ~@8 a2 ~@7", // E5 A5
AJ: "~@2 [b2,b3] ~ [b2,f#3,b3,f#4]@2 ~@2 [e2,b2,b3,e4]@6 ~@2", AK: "[e2,b2,b3,e4]@2 ~@2 [a2,e3,a3,e4]!2 ~@2, a3 ~@15",
AL: "~@4 [b2,f#3,b3,f#4]@2 ~@2 [e2,b2,b3,e4]@5 ~@3", // B5 E5
AM: "[e2,b2,b3,e4]@2 ~@2 [a3,e4] [a2,e3,a3,e4] ~@2, ~@8 [a2,e3] ~@7", AN: "~@2 [b2,f#3,b3,f#4] ~ [e2,b2,b3,e4]@3 ~",
AO: "[e2,b2,b3,e4]@5 ~@3 [e3,a3,e4]@2 [a2,e3,a3,e4]@2 ~@4, ~@8 a2 ~@7", AP: "e2@7 ~ e2@7 ~", AQ: "a2@3 ~ b2@3 ~ b1@8",
AR: "e2 ~ e2@2", AS: "a2@2 a2 ~ a2@2 ~@6 b2@3 ~", AT: "e2@7 ~ [e2,e3,b3,e4]@3 ~ [e2,e3,b3,e4]@3 ~",
AU: "[e2,e3,b3,e4]@3 ~ [e2,e3,b3,e4]@3 ~ [e2,e3,b3,e4]@3 ~ [e2,e3,b3,e4]@3 ~", // E5
AV: "[[e2,e3,b3,e4]@3 ~ [e2,e3,b3,e4]@2 ~@2 [e2,e3,b3,e4]@31 ~ [e2,e3,b3,e4]@30 ~@2 [e2,e3,b3,e4]@31 ~ [e2,e3,b3,e4]@24]/8", // E5
AW: "[f#2,c#3,c#4,f#4]@2 ~@2 [f#3,b3,f#4] [b2,f#3,b3,f#4] ~@2, ~@8 b2 ~@7", // F#5 B5
AX: "~@2 [c#3,c#4] ~ [c#3,g#3,c#4,g#4]@2 ~@2 [f#2,c#3,c#4,f#4]@6 ~@2", // C# C#5 F#5
AY: "[f#2,c#3,c#4,f#4]@2 ~@2 [b2,f#3,b3,f#4]!2 ~@2, b3 ~@15", // F#5 B5
AZ: "~@4 [c#3,g#3,c#4,g#4]@2 ~@2 [f#2,c#3,c#4,f#4]@5 ~@3", // C#5 F#5
BA: "[f#2,c#3,c#4,f#4]@2 ~@2 [b3,f#4] [b2,f#3,b3,f#4] ~@2, ~@8 [b2,f#3] ~@7", // F#5 B5
BB: "~@2 [c#3,g#3,c#4,g#4] ~ [f#2,c#3,c#4,f#4]@3 ~", // C#5 F#5
BC: "[f#2,c#3,c#4,f#4]@5 ~@3 [f#3,b3,f#4]@2 [b2,f#3,b3,f#4]@2 ~@4, ~@8 b2 ~@7", BD: "~@3 c#3",
BE: "f#2@7 ~ [f#2,c#3,c#4,f#4]@4 ~@4", // F#5
BF: "[f#3,b3,f#4]@2 [b2,f#3,b3,f#4]@2 ~@6 [c#3,c#4] ~ [c#3,g#3,c#4,g#4]@2 ~@2, b2 ~@15", // B5 C# C#5
BG: "[f#2,c#3,c#4,f#4]@3 ~ [f#2,c#3,c#4,f#4]@2 ~@2, ~@8 b3 ~@7", BH: "[b2,f#3,b3,f#4]!2 ~@4 [c#3,g#3,c#4,g#4] ~",
BI: "[f#2,c#3,c#4,f#4]@5 ~@3 [f#2,c#3,c#4,f#4]@4 ~@4", // F#5
BJ: "[b3,f#4] [b2,f#3,f#4] ~@4 [c#3,g#3,c#4,g#4] ~, [b2,f#3] ~ b3 ~@13", // B5 C#5 B5
BK: "[f#2,c#3,c#4,f#4]@6 ~@2 [f#2,c#3,c#4,f#4]@5 ~@3", BL: "[f#3,b3,f#4] [b2,f#3,b3,f#4] ~@6, b2 ~@15",
BM: "~@4 c#3@4 f#2@7 ~", BN: "f#2@7 ~ b2@3 ~ c#3@3 ~", BO: "c#2@2 f#2 ~", BP: "f#2@8 b2@2 b2 ~ b2@2 ~@2",
BQ: "~@4 c#3@3 ~ f#2@7 ~", BR: "f#2@8 b2 ~ b2 ~ b2@2 ~@2", BS: "[f#2@3 ~]/2",
})).s("gm_epiano1").gain(0.26).pan(0.6)
// bass · electric bass finger · "Bass"
const bass = note(`<
~ A@2 B@2 C D E D F G H I J K I@2 L K M N O N P N Q R S T U T V W X Y Z C D E D I@2 R I@2 AA R I N AB N AC N@2 AD N AE
AF AG AH AI AH AJ G AK AL AM AN H I@5 AO AP AQ AP AR AS AT AU AV AW AV AX AY AZ BA BB BA BC BD BE BF BG BH BI BJ BI BH
BI BK AY BL@2
>`.pickRestart({
A: "[e1@31 ~]/2", B: "[e1@15 ~]/2", C: "e1@7 ~ a1@2 a1 ~ a1@2 ~@2", D: "~@2 b1 ~ b1@3 ~ e1@6 ~@2",
E: "e1@8 a1 ~ a1 ~ a1@2 ~@2", F: "e1@7 ~ a1 ~ a1 ~ a1@2 ~@2", G: "~@10 b1 ~ b1@4", H: "e1@6 ~@2 e1 ~ e1 ~ e1 ~ e1 ~",
I: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~", J: "e1 ~ e1 ~ e1 ~ e1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
K: "b1 ~ b1 ~ b1 ~ b1 ~ e1 ~ e1 ~ e1 ~ e1 ~", L: "e1 ~ e1 ~ e1 a#1 f#1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
M: "e1 ~ e1 ~ e1 ~ e1 ~ b1 ~ b1 ~ b1 ~ b1 ~", N: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~",
O: "b1 ~ f#1 ~ g#1@2 a1@2 b1 ~ b1 ~ b1 ~ b1 ~", P: "b1@2 f#1@2 g#1@2 a1@2 b1 ~ b1 ~ b1 ~ b1 ~",
Q: "b1 ~ b1 ~ b1 ~ b1 ~ a1 ~ a1 ~ a1 ~ a1 ~", R: "a1 ~ a1 ~ a1 ~ a1 ~ b1 ~ b1 ~ b1 ~ b1 ~",
S: "b1 ~ b1 ~ b1 ~ b1 ~ e1@5 ~@3", T: "a1!2 ~@3 a1 b1 ~", U: "e1@5 ~@3 e1@6 ~@2", V: "e1@3 ~ e1@2 ~ e1",
W: "a1 ~ a1 ~@7 a1@2 b1@2 ~@2", X: "e1@6 ~@2 e1@5 ~ e1@2", Y: "a1!2 ~@6", Z: "~@2 b1 ~ b1@4 e1@6 ~@2",
AA: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 a#1 f#1 ~", AB: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ f#1 ~ g#1@2 a1@2",
AC: "b1 ~ b1 ~ b1 ~ b1 ~ b1@2 f#1@2 g#1@2 a1@2", AD: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
AE: "e1@5 ~@3 a1@2 a1@2 ~@4", AF: "~@2 a1@2 b1@2 ~@2 e1@5 ~@3", AG: "e1@3 ~ a1!2 ~@2", AH: "~ a1 b1 ~ e1@3 ~",
AI: "e1@4 ~@2 e1@2 a1 ~ a1@2 ~@4", AJ: "e1@5 ~ e1@2 a1@2 a1@2 ~@4", AK: "e1@6 ~@2 e1@7 ~",
AL: "a1@2 a1 ~ a1@2 ~@4 b1 ~ b1@3 ~", AM: "e1@3 ~ e1@4", AN: "a1 ~ a1 ~ a1@2 ~@4 b1 ~ b1@3 ~",
AO: "e1 ~ e1 ~ e1 ~ e1 ~ e2 ~ e2 ~ e2@2 g2@2", AP: "a2@2 b2@2 e2@2 d2@2 e2 ~ e2@2 g2@2 a2@2",
AQ: "b2@2 a2@2 g2@2 e2 ~ e2 ~ e2 ~ e2@2 g2@2", AR: "b2@2 a2@2 g2@2 e2 ~@9", AS: "f#1@5 ~@3 b1@2 b1@2 ~@4",
AT: "~@2 b1@2 c#2@2 ~@2 f#1@5 ~@3", AU: "f#1@3 ~ b1!2 ~@2", AV: "~ b1 c#2 ~ f#1@3 ~",
AW: "f#1@4 ~@2 f#1@2 b1 ~ b1@2 ~@4", AX: "f#1@5 ~ f#1@2 b1@2 b1@2 ~@4", AY: "~@10 c#2 ~ c#2@4",
AZ: "f#1@6 ~@2 f#1@5 ~@3", BA: "b1!2 ~@3 b1 c#2 ~", BB: "f#1@5 ~@3 f#1@6 ~@2", BC: "f#1@3 ~ f#1@2 ~ f#1",
BD: "b1 ~ b1 ~@7 b1@2 c#2@2 ~@2", BE: "f#1@6 ~@2 f#1@5 ~ f#1@2", BF: "b1!2 ~@6", BG: "~@2 c#2 ~ c#2@4 f#1@6 ~@2",
BH: "f#1@7 ~ b1@2 b1 ~ b1@2 ~@2", BI: "~@2 c#2 ~ c#2@3 ~ f#1@6 ~@2", BJ: "f#1@8 b1 ~ b1 ~ b1@2 ~@2",
BK: "f#1@7 ~ b1 ~ b1 ~ b1@2 ~@2", BL: "[f#1@3 ~]/2",
})).s("gm_electric_bass_finger").gain(0.26).pan(0.7)
// chords · rock organ · "Organ"
const rock_organ = note(`<
~@11 A@3 B@4 C D@6 E@4 F@2 G@2 H@2 I ~@4 J@2 K L@3 K M N@4 O@2 P Q R S T U V W X Y Z ~@3 AA@3 ~@3 AB@5 AC AD AE AF AG
AH AI AJ AK@2 AL@2 AM@2 AN@2 AO AP AQ AR AS AP AT AU AV AW@2
>`.pickRestart({
A: "[~ [e3,e4,b4]@4 [a2,e4,a4]]/3", B: "[[b2,f#4,b4] [e3,e4,b4]@6 [a2,e4,a4]]/4", C: "[b2,f#4,b4] [e3,e4,b4]",
D: "[~@8 b5@31 ~ a5@31 ~ [b2,b4,f#5,b5]@24, ~@8 [b2,b4,f#5]@63 ~@25]/6", // B5
E: "[~@8 [a2,a4,e5,a5]@15 ~ [b2,b4,f#5,b5]@16 b5@8 a5@6 ~@6 [f#5,b5]@3 ~, ~@20 e6@7 ~@5]/4", // A5 B5
F: "[[b5,e6]@6 ~@2 b5@8 a5@7 ~@5 [f#5,b5]@2 ~@2, ~@8 e6@15 ~@9]/2", // E5 B5
G: "[[b5,e6]@7 ~ b5@7 ~ a5@6 ~@6 [f#5,b5]@3 ~, ~@4 e6@7 ~@5]/2", H: "[[b5,e6]@7 ~ b5@8 a5@8 ~@8, ~ e6@2 ~]/2",
I: "~@4 [f#5,b5]@3 ~ [b5,e6]@8", J: "[e3,e4,b4]/2", K: "[a2,e4,a4] [b2,f#4,b4]", L: "[e3,e4,b4]/3", M: "[e3,e4,b4]",
N: "[b5@31 ~ a5@31 ~, [b2,b4,f#5]@63 ~]/4", O: "[[b2,b4,f#5,b5]@31 ~]/2", P: "[a2,a4,e5,a5]@15 ~",
Q: "[b2,b4,f#5,b5]", R: "b5@4 a5@3 ~, e6@7 ~", S: "~@4 [f#5,b5]@3 ~ [b5,e6]@6 ~@2", T: "b5@8 a5@7 ~, e6@15 ~",
U: "~@4 [f#5,b5]@2 ~@2 [b5,e6]@7 ~", V: "b5@7 ~ a5@6 ~@2, e6@7 ~", W: "~@4 [f#5,b5]@3 ~ [b5,e6]@7 ~", X: "b5 a5, e6",
Y: "~@12 [f#5,b5]@3 ~", Z: "[b5,e6] ~", AA: "[~ [e3,e5,b5,e6]@4 ~]/3", AB: "[~@8 [b5,e6]@63 ~@9]/5",
AC: "c#6@4 b5@3 ~, f#6@7 ~", AD: "~@4 [g#5,c#6]@3 ~ [c#6,f#6]@6 ~@2", AE: "c#6@8 b5@7 ~, f#6@15 ~",
AF: "~@4 [g#5,c#6]@2 ~@2 [c#6,f#6]@7 ~", AG: "c#6@7 ~ b5@6 ~@2, f#6@7 ~", AH: "~@4 [g#5,c#6]@3 ~ [c#6,f#6]@7 ~",
AI: "c#6 b5, f#6", AJ: "~@12 [g#5,c#6]@3 ~", AK: "[[c#6,f#6]@8 c#6@8 b5@6 ~@6 [g#5,c#6]@3 ~, ~@4 f#6@7 ~@5]/2",
AL: "[[c#6,f#6]@6 ~@2 c#6@8 b5@7 ~@5 [g#5,c#6]@2 ~@2, ~@8 f#6@15 ~@9]/2", // F#5 C#5
AM: "[[c#6,f#6]@7 ~ c#6@7 ~ b5@6 ~@6 [g#5,c#6]@3 ~, ~@4 f#6@7 ~@5]/2", // F#5 C#5
AN: "[[c#6,f#6]@7 ~ c#6@8 b5@8 ~@8, ~ f#6@2 ~]/2", AO: "~@4 [g#5,c#6]@3 ~ [c#6,f#6]@8",
AP: "[c#5,f#5,c#6]@7 ~ [b4,f#5,b5]@7 ~", AQ: "~@4 [g#5,c#6]@3 ~ [c#5,f#5,c#6]@7 ~, ~ c#5@2 ~@5",
AR: "[c#5,c#6]@8 ~ b5@6 ~, f#5@7 ~, ~@4 b4@3 ~", AS: "~@4 [c#5,g#5,c#6]@3 ~ [c#5,f#5,c#6]@7 ~",
AT: "~@4 [g#5,c#6]@2 ~@2 [c#5,f#5,c#6]@7 ~, ~ c#5@2 ~@5", AU: "[c#5,f#5,c#6]@8 [b4,f#5,b5]@7 ~",
AV: "~@12 [c#5,g#5,c#6]@3 ~", AW: "[[c#5,f#5,c#6]@3 ~]/2",
})).s("gm_rock_organ").gain(0.21).pan(0.3)
// chords · distortion guitar · "Fuzz L"
const distortion_guitar = note(`<
~ A@2 B@2 C D E F C G H@3 I J@3 K L@6 M@3 N O P Q R O S T C D E F A@2 U V A@2 W X Y@4 Z@2 AA AB AC AD AE AF AG AH AE G
AI AJ AK AJ AL AM AN@8 ~ AO AP AQ AR AS AT AQ AU AV AW AX AY AZ BA AX BB BC BD BE BF BG BD BE BD AU BH@2
>`.pickRestart({
A: "[[e3,b3,e4]@31 ~]/2", B: "[[e3,b3,e4]@15 ~]/2", C: "[e2,b2]@6 ~@2 [a2,e3]@2 [a2,e3] ~ [a2,e3]@2 ~@2",
D: "~@2 [b2,f#3] ~ [b2,f#3]@2 ~@2 [e2,b2]@7 ~", E: "[e2,b2]@7 ~ [a2,e3]@2 [a2,e3] ~ [a2,e3]@2 ~@2",
F: "~@2 [b2,f#3] ~ [b2,f#3]@2 ~@2 [e2,b2]@5 ~@3, ~@8 f3 ~@7", G: "~@10 [b2,f#3] ~ [b2,f#3]@2 ~@2",
H: "[[e2,b2]@8 [e3,b3,e4]@31 ~ [e3,a3,e4]@6 ~@2]/3", I: "[f#3,b3,f#4]@7 ~ [e3,b3,e4]@3 ~ [e3,a3,e4]@3 ~, a#3 ~@15",
J: "[[e3,b3,e4]@7 ~ [e3,b3,e4]@31 ~ [e3,a3,e4]@6 ~@2]/3", K: "[f#3,b3,f#4]@6 ~@2 [e3,b3,e4]@3 ~ [e3,a3,e4]@2 ~@2",
L: "[[e3,b3,e4]@7 ~ [b2,f#3,b3]@31 ~ [b2,f#3,b3]@31 ~ [b2,f#3,b3]@24]/6", // E5 B5
M: "[~@8 [a2,e3,a3]@15 ~ [b2,f#3,b3]@15 ~ [b2,e3]@5 ~@3]/3", N: "[e3,a3]@2 [e3,a3] ~ [e3,a3] ~@7 [b2,f#3]@2 ~@2",
O: "[b2,e3]@3 ~ [b2,e3]@3 ~", P: "[e3,a3] ~ [e3,a3] ~ [e3,a3] ~@5 [e3,a3] ~ [b2,f#3]@2 ~@2",
Q: "[b2,e3]@6 ~@2 [b2,e3]@5 ~@3", R: "[e3,a3] ~ [e3,a3] ~ [e3,a3] ~@5 [e3,a3] ~ [b2,f#3] ~@3",
S: "[e3,a3] ~ [e3,a3] ~ [e3,a3] ~@11", T: "~@2 [b2,f#3] ~ [b2,f#3]@2 ~@2 [e2,b2]@8",
U: "[e3,a3,e4]@6 ~@2 [f#3,b3,f#4]@7 ~, ~@8 a#3 ~@7", V: "[e3,b3,e4]@3 ~ [e3,a3,e4]@3 ~ [e3,b3,e4]@7 ~",
W: "[e3,a3,e4]@3 ~ [f#3,b3,f#4]@3 ~", X: "[e3,b3,e4]@3 ~ [e3,a3,e4]@2 ~@2 [e3,b3,e4]@7 ~", Y: "[[b2,f#3,b3]@31 ~]/2",
Z: "[[b2,f#3,b3]@15 ~]/2", AA: "[a2,e3,a3]@15 ~", AB: "[b2,f#3,b3]@15 ~",
AC: "[b2,e3]@5 ~@3 [e3,a3]@2 [e3,a3] ~ [e3,a3] ~@3", AD: "~@2 [b2,f#3] ~ [b2,e3]@3 ~",
AE: "[b2,e3]@6 ~@2 [e3,a3] ~ [e3,a3] ~ [e3,a3] ~@3", AF: "~@2 [e3,a3] ~ [b2,f#3]@2 ~@2 [b2,e3]@6 ~@2",
AG: "[b2,e3]@5 ~@3 [e3,a3] ~ [e3,a3] ~ [e3,a3] ~@3", AH: "~@2 [e3,a3] ~ [b2,f#3] ~@3 [b2,e3]@6 ~@2",
AI: "[e2,b2]@4 [e2,b2]@3 ~", AJ: "[a2,e3]@2 [a2,e3] ~ [a2,e3]@2 ~@4 [b2,f#3] ~ [b2,f#3]@2 ~@2",
AK: "[e2,b2]@7 ~ [e2,b2]@7 ~", AL: "[e2,b2]@5 ~@3 [e2,b2,e3] ~@3 [e2,b2,e3] ~@3, f3 ~@15",
AM: "[e2,b2,e3] ~@3 [e2,b2,e3] ~@3 [e2,b2,e3] ~ e3 ~ [e2,b2,e3] ~ e3 ~", // E5
AN: "[[e2,b2,e3] ~ e3 ~ [e2,b2,e3] ~ e3 ~ [e3,b3,e4]@31 ~ [e3,b3,e4]@30 ~@2 [e3,b3,e4]@31 ~ [e3,b3,e4]@24]/8", // E5
AO: "[c#3,f#3]@5 ~@3 [f#3,b3]@2 [f#3,b3] ~ [f#3,b3] ~@3", AP: "~@2 [c#3,g#3] ~ [c#3,f#3]@3 ~",
AQ: "[c#3,f#3]@6 ~@2 [f#3,b3] ~ [f#3,b3] ~ [f#3,b3] ~@3", AR: "~@2 [f#3,b3] ~ [c#3,g#3]@2 ~@2 [c#3,f#3]@6 ~@2",
AS: "[c#3,f#3]@5 ~@3 [f#3,b3] ~ [f#3,b3] ~ [f#3,b3] ~@3", AT: "~@2 [f#3,b3] ~ [c#3,g#3] ~@3 [c#3,f#3]@6 ~@2",
AU: "~@10 [c#3,g#3] ~ [c#3,g#3]@2 ~@2", AV: "[f#2,c#3]@8 [c#3,f#3]@5 ~@3",
AW: "[f#3,b3]@2 [f#3,b3] ~ [f#3,b3] ~@7 [c#3,g#3]@2 ~@2", AX: "[c#3,f#3]@3 ~ [c#3,f#3]@3 ~",
AY: "[f#3,b3] ~ [f#3,b3] ~ [f#3,b3] ~@5 [f#3,b3] ~ [c#3,g#3]@2 ~@2", AZ: "[c#3,f#3]@6 ~@2 [c#3,f#3]@5 ~@3",
BA: "[f#3,b3] ~ [f#3,b3] ~ [f#3,b3] ~@5 [f#3,b3] ~ [c#3,g#3] ~@3", BB: "[f#3,b3] ~ [f#3,b3] ~ [f#3,b3] ~@11",
BC: "~@2 [c#3,g#3] ~ [c#3,g#3]@2 ~@2 [f#2,c#3]@8", BD: "[f#2,c#3]@6 ~@2 [b2,f#3]@2 [b2,f#3] ~ [b2,f#3]@2 ~@2",
BE: "~@2 [c#3,g#3] ~ [c#3,g#3]@2 ~@2 [f#2,c#3]@7 ~", BF: "[f#2,c#3]@7 ~ [b2,f#3]@2 [b2,f#3] ~ [b2,f#3]@2 ~@2",
BG: "~@2 [c#3,g#3] ~ [c#3,g#3]@2 ~@2 [f#2,c#3]@5 ~@3, ~@8 g3 ~@7", BH: "[[f#2,c#3]@3 ~]/2",
})).s("gm_distortion_guitar").gain(0.51)
// chords · acoustic guitar steel · "12 String"
const acoustic_guitar_steel = note(`<
~ A@2 B@2 C D C E F G H ~@15 I J K L M N O P Q R S T Q ~@16 U V W S X S R G Y L O Z H ~@10 AA AB AC AD AE AD AF AG AH
AI AJ AK AL AM AN AO AP AF AD AQ AP AF AD AQ AG AR ~
>`.pickRestart({
A: "[[e3,b3,e4]@29 ~ [e2,e3,b3,e4]!2]/2", B: "[[e2,e3,b3,e4]@29 ~ [e2,e3,b3,e4] [e2,b3,e4]]/2",
C: "[e3,b3,e4,b4]@6 ~@2 [a2,a3,e4,a4] ~ [a2,a3,e4,a4] ~ [a2,a3,e4,a4] ~@3", // E5 A5
D: "~@2 [b2,b3,f#4,b4] ~ [b2,b3,f#4,b4]@2 ~@2 [e3,b3,e4,b4]@6 ~@2", // B5 E5
E: "~@2 [b2,b3,f#4,b4] ~ [b2,b3,f#4,b4] ~@3 [e3,b3,e4,b4]@6 ~@2", // B5 E5
F: "[e3,b3,e4]@6 ~@2 [a2,a3,e4,a4] ~ [a2,a3,e4,a4] ~ [a2,a3,e4,f#4,a4] ~@3, b4 ~@3", G: "~@6 [b2,b3,f#4,b4] ~",
H: "[e3,b3,e4,b4]@7 ~@9", I: "~@2 [e3,b3,e4,b4] ~",
J: "[a2,a3,e4,f#4,a4] ~ [a2,a3,e4,a4] ~ [a2,a3,e4,a4] ~@7 [b2,b3,f#4,b4]@2 ~@2", // F#m7 A5 B5
K: "[e3,b3,e4,b4]@5 ~@3 [e3,b3,e4,b4]@4 ~@4", // E5
L: "[a2,a3,e4,a4] ~ [a2,a3,e4,a4] ~ [a2,a3,e4,a4] ~@7 [b2,b3,f#4,b4]@2 ~@2", // A5 B5
M: "[e3,b3,e4,b4]@3 ~ [e3,b3,e4,b4]@2 ~@2", N: "[a2,a3,e4,a4] ~ [a2,a3,e4,a4] ~@9 [b2,b3,f#4,b4]@2 ~@2",
O: "[e3,b3,e4,b4]@6 ~@2 [e3,b3,e4,b4]@5 ~@3", P: "[a2,a3,e4,a4] ~ [a2,a3,e4,a4] ~ [a2,a3,e4,a4] ~@11",
Q: "~@4 [b2,b3,f#4,b4]@2 ~@2 [e3,b3,e4,b4]@7 ~", // B5 E5
R: "[e3,b3,e4,b4]@5 ~@3 [a2,a3,e4,a4] ~ [a2,a3,e4,a4] ~ [a2,a3,e4,a4] ~@3", // E5 A5
S: "~@2 [b2,b3,f#4,b4] ~ [e3,b3,e4,b4]@3 ~", // B5 E5
T: "[e3,b3,e4,b4]@5 ~@3 [a2,a3,e4,a4] ~ [a2,a3,e4,f#4,a4] ~ [a2,a3,e4,f#4,a4] ~@3", // E5 A5 F#m7
U: "[e3,b3,e4,b4]@4 ~@4 [a2,a3,e4,f#4,a4] ~ [a2,a3,e4,a4] ~ [a2,a3,e4,a4] ~@3", // E5 F#m7 A5
V: "~@4 [b2,b3,f#4,b4]@2 ~@2 [e3,b3,e4,b4]@5 ~@3", // B5 E5
W: "[e3,b3,e4,b4]@4 ~@4 [a2,a3,e4,a4] ~ [a2,a3,e4,a4] ~ [a2,a3,e4,a4] ~@3", // E5 A5
X: "[e3,b3,e4,b4]@4 ~@4 [a2,a3,e4,a4] ~ [a2,a3,e4,a4] ~@5", Y: "[e3,b3,e4,b4]@7 ~ [e3,b3,e4,b4]@5 ~@3",
Z: "[a2,a3,e4,a4] ~ [a2,a3,e4,f#4,a4] ~ [a2,a3,e4,f#4,a4] ~@7 [b2,b3,f#4,b4]@2 ~@2", // A5 F#m7 B5
AA: "[f#3,c#4,f#4,c#5]@4 ~@4 [b2,b3,f#4,g#4,b4] ~ [b2,b3,f#4,b4] ~ [b2,b3,f#4,b4] ~@3", // F#5 G#m7 B5
AB: "~@4 [c#3,c#4,g#4,c#5]@2 ~@2 [f#3,c#4,f#4,c#5]@5 ~@3", // C#5 F#5
AC: "[f#3,c#4,f#4,c#5]@4 ~@4 [b2,b3,f#4,b4] ~ [b2,b3,f#4,b4] ~ [b2,b3,f#4,b4] ~@3", // F#5 B5
AD: "~@2 [c#3,c#4,g#4,c#5] ~ [f#3,c#4,f#4,c#5]@3 ~", // C#5 F#5
AE: "[f#3,c#4,f#4,c#5]@4 ~@4 [b2,b3,f#4,b4] ~ [b2,b3,f#4,b4] ~@5", // F#5 B5
AF: "[f#3,c#4,f#4,c#5]@5 ~@3 [b2,b3,f#4,b4] ~ [b2,b3,f#4,b4] ~ [b2,b3,f#4,b4] ~@3", AG: "~@6 [c#3,c#4,g#4,c#5] ~",
AH: "[f#3,c#4,f#4,c#5]@7 ~ [f#3,c#4,f#4,c#5]@4 ~@4", // F#5
AI: "[b2,b3,f#4,g#4,b4] ~ [b2,b3,f#4,b4] ~ [b2,b3,f#4,b4] ~@7 [c#3,c#4,g#4,c#5]@2 ~@2", // G#m7 B5 C#5
AJ: "[f#3,c#4,f#4,c#5]@5 ~@3 [f#3,c#4,f#4,c#5]@4 ~@4", // F#5
AK: "[b2,b3,f#4,b4] ~ [b2,b3,f#4,b4] ~ [b2,b3,f#4,b4] ~@7 [c#3,c#4,g#4,c#5]@2 ~@2", // B5 C#5
AL: "[f#3,c#4,f#4,c#5]@3 ~ [f#3,c#4,f#4,c#5]@2 ~@2", // F#5
AM: "[b2,b3,f#4,b4] ~ [b2,b3,f#4,b4] ~@9 [c#3,c#4,g#4,c#5]@2 ~@2", // B5 C#5
AN: "[f#3,c#4,f#4,c#5]@6 ~@2 [f#3,c#4,f#4,c#5]@5 ~@3", AO: "[b2,b3,f#4,b4] ~ [b2,b3,f#4,b4] ~ [b2,b3,f#4,b4] ~@11",
AP: "~@4 [c#3,c#4,g#4,c#5]@2 ~@2 [f#3,c#4,f#4,c#5]@7 ~", // C#5 F#5
AQ: "[f#3,c#4,f#4,c#5]@5 ~@3 [b2,b3,f#4,b4] ~ [b2,b3,f#4,g#4,b4] ~ [b2,b3,f#4,g#4,b4] ~@3", // F#5 B5 G#m7
AR: "[f#2,f#3,c#4,f#4,c#5]", // F#5
})).s("gm_acoustic_guitar_steel").gain(0.28).pan(0.6)
// … 140 more lines
More by Sweet
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.