0:00/0:00
// Friday On My Mind — The Easybeats
// 150 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 116 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(150/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 · "Bass"
const bass = note("<A B C D E ~@47 F G H I C J K A ~@46 L G H M L N O P Q R>".pickRestart({
A: "e2 ~ e2@2 c#3@2 e2@3 ~ e2@2 c#3 ~ e2@2", B: "~@2 e2@2 c#3 ~ e2@2 e2@2 b1@2 c#2@2 e2@2",
C: "e2 ~ e2@2 c#3@2 e2 ~ e2 ~ e2@2 c#3@2 e2 ~", D: "e2 ~ e2@2 c#3 ~ e2@3 ~ e2@2 e3@2 f#2 ~",
E: "e2 ~ e2@2 d2@2 d2@2 c#2@2 c#2@2 b1 ~ b2 ~", F: "a1 ~ a1@2 f#2@2 a1 ~ a1 ~ a1@2 f#2@2 e2 ~",
G: "d2 ~ d2@2 b2 ~ d2@3 ~ d2@2 d3@2 d2 ~", H: "g2 ~ g2@2 e3@2 g2@3 ~ g2@2 e3 ~ g2@2",
I: "~@2 e2@2 c#3 ~ e2@2 e2@2 b1@2 c#2@2 c#2@2", J: "e2 ~ e2@2 c#3 ~ e2@3 ~ e2@2 e3@2 e2 ~",
K: "e2 ~ e2@2 d2@2 d2@2 c#2@2 c#2@2 b1 ~ g2 ~", L: "a1 ~ a1@2 f#2@2 a1 ~ a1 ~ a1@2 f#2@2 a1 ~",
M: "~@2 e2@2 c#3 ~ e2@2 e2@2 b1@2 c#2@2 g#1@2", N: "a1 ~ a1@2 f#2 ~ a1@3 ~ a1@2 a2@2 a1 ~",
O: "a1 ~ a1@2 f#2@2 a1@3 ~ a1@2 f#2 ~ c#2@2", P: "a1 ~ a1@2 a1@2 a1@2 f#1@2 f#1@2 e1 ~ g#2 ~", Q: "a2!4 f#2!2 f2!2",
R: "e2 d2 c#2 a1 ~@2 a1 ~",
})).s("gm_electric_bass_finger").gain(0.52).pan(0.7)
// bass · slap bass 2 · "Bass"
const bass_2 = note(`<
~@5 A B C D A E C F G H I D A J K L K M N O M P Q L K R S T U V S W M X@2 Y Z M@2 I H M W K@2 AA AB ~@8 E C AC A B C
G@2 AD I D A AE K@2 U AF M AG AH P Q K U R S K U V S AI AJ AK X AL I M@2 I@2 AJ AI K@2 A@2 ~@10
>`.pickRestart({
A: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~", B: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ c#2@2 d2@2",
C: "d2 ~ d2 ~ a1 ~ a1 ~ d2 ~ d2 ~ a1 ~ a1 ~", D: "e2 ~ e2 ~ e2 ~ e2 ~ b2 ~ b2 ~ d3 ~ e3 ~",
E: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ e1 ~ e1 ~", F: "g2 ~ g2 ~ g2 ~ g2 ~ b2@2 c3@2 d3@2 g3@2",
G: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~", H: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ f#1 ~ f#1 ~",
I: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~", J: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ c2@2 d2@2",
K: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", L: "a1 ~ a1 ~ a1 ~ a1 ~ c#2@2 d2@2 e2@2 a2@2",
M: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~", N: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 a1 ~",
O: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ f2@2 g2@2", P: "c2 ~ c2 ~ c2 ~ c2 ~ e2 ~ e2 ~ e2 ~ e2 ~",
Q: "a1 ~ a1 ~ f#2 ~ f#2 ~ b1 ~ b1 ~ e2 ~ e2 ~", R: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ e2@2 f#2@2",
S: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~", T: "a1 ~ a1 ~ a1 ~ a1 ~ e2 ~ e2 ~ a2 ~ a2 ~",
U: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2 e1 ~", V: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ b1 ~ b1 ~ g#1 ~ g#1 ~",
W: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ a1 ~ a1 ~", X: "f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~",
Y: "b1 ~ b1 ~ b1 ~ b1 ~ d2@2 e2@2 f#2@2 a2@2", Z: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ a1@2 f#1 ~",
AA: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ d2@2 b1 ~", AB: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ g#2@2 a2@2",
AC: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ g2@2 a2@2", AD: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ d#2@2 e2@2",
AE: "a1 ~ a1 ~ a1 ~ a1 ~ g1 ~ g1 ~ e1 ~ e1 ~", AF: "d2 ~ d2 ~ d2 ~ d2 ~ c2 ~ c2 ~ a1 ~ a1 ~",
AG: "d2 ~ d2 ~ d2 ~ d2 ~ f2@2 g2@2 g#2@2 c3@2", AH: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 g#1 ~",
AI: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ f#2@2 g2@2", AJ: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2@2 a1 ~",
AK: "f#2 ~ f#2 ~ f#2 ~ f#2 ~ e2 ~ e2 ~ c#2 ~ c#2 ~", AL: "b1 ~ b1 ~ b1 ~ b1 ~ a1 ~ a1 ~ f#1 ~ f#1 ~",
})).s("gm_slap_bass_2").gain(0.52).pan(0.7)
// chords · piano
const piano = note("<A B C B D ~@47 E F G H@2 I J K ~@46 E F G L M N O P Q R>".pickRestart({
A: "[e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5]@2", // E5
B: "~@2 [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,a4,c#5] ~ [e4,g4,b4] ~", // E5 A Em
C: "[e4,b4,e5] ~ [e4,b4] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5]@2", // E5
D: "[e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [g6,a6,b6,c#7,e7] [c#6,e6,f#6] [g5,a5,b5] [e5,f#5] [g4,a4,b4,c#5] f#4", // E5 A7 F#7 G Esus2 A7
E: "~@2 [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4] ~ [e4,a4] ~ f#4 ~ [c4,e4]@2 a3 ~, ~@4 a3 ~@3", // A5 C
F: "~@2 [d4,a4] ~@3 [d4,a4,d5]@3 ~ g4 ~ [f4,f#4] ~ d4 ~, ~@6 a4 ~", // D5 F#maj7
G: "~@2 [g3,d4,g4] ~ [g3,d4,g4] ~ [g3,d4] ~ [d4,g4] ~ e4 ~ [b3,d4]@2 g3 ~, ~@8 g3@2 ~@2 a#3 ~@3", // G5 Bm
H: "~@2 [e4,b4,e5] ~@3 [e4,b4,e5]@3 ~ [e4,a4,c#5] ~ b4@2 e4 ~, ~@12 g4 ~@3", // E5 A
I: "~@2 [e4,e5] ~@3 [e4,b4,e5]@3 ~ [e4,a4,c#5] ~ b4@2 e4@2, ~@2 b4@2 ~@8 g4 ~@3", // E E5 A
J: "~@2 [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [b4,e5] ~ [e4,a4,c#5] ~ [g4,b4]@2 e4 ~, ~@4 e4 ~@3", // E5 A G
K: "[e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4] ~ [e4,b4] ~ [e4,b4,e5]@2", // E5
L: "~@2 [e4,b4] ~@3 [e4,b4,e5]@3 ~ a4 ~ [g4,g#4] ~ e4 ~, ~@6 b4 ~", // E5 G#maj7
M: "~@2 [a3,e4] ~@3 [a3,e4,a4]@3 ~ [d4,f#4] ~ [c#4,e4]@2 a3 ~, ~@12 c4 ~@3", // A5 D C#m
N: "~@2 [a3,a4] ~@3 [a3,e4,a4]@3 ~ [a3,d4,f#4] ~ [c#4,e4]@2 a3@2, ~@2 e4@2 ~@8 c4 ~@3", // A A5 D C#m
O: "~@2 [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [e4,a4] ~ [a3,d4,f#4] ~ [c#4,e4]@2 a3 ~, ~@8 a3@2 ~@2 c4 ~@3", // A5 D C#m
P: "[a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [c#6,d6,e6,f#6,a6] [f#5,a5,b5] [c#5,d5,e5] [a4,b4] [c#4,d4,e4,f#4] b3", // A5 Dmaj7 B7 C#m Asus2 Dmaj7
Q: "[a3,a4]!4 [f#3,f#4]!2 [f3,f4]!2", R: "[e3,e4] [d3,d4] [c#3,c#4] [a2,a3] ~@2 [a2,e3,a3,c#4,a4] ~",
})).s("gm_piano").gain(0.35).pan(0.4)
// chords · piano · soft notes
const piano_soft = note("<~@2 A ~@49 B C D ~@4 E ~@46 B C D F G ~@5>".pickRestart({
A: "~@2 e5 ~@13", B: "~@6 a4 ~@3 [a3,d4] ~@5", C: "~@2 d5 ~@7 [d4,b4] ~@5", D: "~@6 g4 ~@3 [g3,c4] ~@5",
E: "~@10 e5 ~ e5 ~@3", F: "~@2 e5 ~@7 [e4,c#5] ~@5", G: "~@2 a4 ~@7 a3 ~@5",
})).s("gm_piano").gain(0.2).pan(0.4)
// chords · rock organ · "Piano"
const rock_organ = note(`<
~@29 A B C D E B C F G H I J K G L K M G L N O P Q ~@31 R S T D E U V F G W X J Y G L K M Z AA AB AC AD AE ~@10
>`.pickRestart({
A: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~, ~@3 [a4,c#5,e5]@5", // A
B: "[c#3,g#3,c#4] ~ [c#3,g#3,c#4] ~ [c#3,g#3,c#4] ~ [c#3,g#3,c#4] ~ [c#5,e5] ~ [c#3,g#3,c#4] ~ [g#4,c#5] ~ [c#3,g#3,c#4] ~", // C#5 C#m C#5
C: "[c#3,g#3,c#4] ~ [c#3,g#3,c#4] ~ [c#3,g#3,c#4] ~ [c#5,g#5,c#6]@3 ~ [c#3,g#3,c#4] ~ [c#5,c#6] ~ [c#3,g#3,c#4] ~, ~@6 g#5 ~", // C#5 C# C#5
D: "[a4,c#5,e5]@2 a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ [a4,c#5]@2 a2 ~, a2 ~@5 [a4,c#5,e5]@4 ~@2 a2 ~@3", // A
E: "[a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [e4,a4]@4 [a2,e3,a3] ~ [e4,a4]@2 [a2,e3,a3] ~", // A5
F: "[d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d5,a5,d6]@2 [d3,a3] ~ [d5,g5,b5] ~ [d5,f#5,a5] ~", // D5 G D
G: "[d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [a4,d5]@4 [d3,a3,d4] ~ [a4,d5]@2 [d3,a3,d4] ~", // D5
H: "[f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#3,c#4,f#4] ~ [f#2,c#3] ~ [f#3,c#4,f#4] ~ [f#2,c#3] ~", // F#5
I: "[f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#3,c#4,f#4]@4 [f#2,c#3] ~ [f#3,f#4] ~ [f#2,c#3] ~, ~@6 c#4 ~", // F#5 F# F#5
J: "[b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b4,f#5,b5]@2 [b2,f#3] ~ [b4,e5,g#5] ~ [b4,d5,f#5] ~", // B5 E Bm
K: "[b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [f#4,b4]@4 [b2,f#3,b3] ~ [f#4,b4]@2 [b2,f#3,b3] ~", // B5
L: "[d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d5,f#5] ~ [d3,a3,d4] ~ [a4,d5] ~ [d3,a3,d4] ~", // D5 D D5
M: "[b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b4,d#5] ~ [b2,f#3,b3] ~ [f#4,b4] ~ [b2,f#3,b3] ~", // B5 B B5
N: "[a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a4,e5,a5]@3 ~ [a2,e3,a3] ~ [a4,a5] ~ [a2,e3,a3] ~, ~@6 e5 ~", // A5 A A5
O: "[a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [e5,a5] a4 [d#5,a5] a4 [d5,a5] a4 [c5,a5] [c#5,a5]", // A5 D#dim D5 F F#m
P: "[e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e4,b4,e5]@3 ~ [e3,b3] ~ [e4,b4,e5] ~ [e3,b3] ~", // E5
Q: "[e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e4,b4,e5] ~ [e3,b3] ~ [e4,b4,e5] ~ [e3,b3] ~", // E5
R: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a3,e4,a4]@3 ~ [a2,e3] ~ [a3,e4,a4] ~ [a2,e3] ~", // A5
S: "c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~, ~@3 [c#5,e5,g#5]@5", // C#m
T: "c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ [c#5,e5,g#5]@2, ~@6 [c#5,e5,g#5]@5 ~@3 c#3 ~", // C#m
U: "[c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#4,g#4,c#5] ~ [c#3,g#3] ~ [c#4,g#4,c#5] ~ [c#3,g#3] ~", // C#5
V: "[c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#4,g#4,c#5]@4 [c#3,g#3] ~ [c#4,c#5] ~ [c#3,g#3] ~, ~@6 g#4 ~", // C#5 C# C#5
W: "[f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [e4,a#4] ~ [f#2,c#3,f#3] ~ [c#4,f#4] ~ [f#2,c#3,f#3] ~", // F#5 Edim F#5
X: "[f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#4,c#5,f#5]@3 ~ [f#2,c#3,f#3] ~ [f#4,f#5] ~ [f#2,c#3,f#3] ~, ~@6 c#5 ~", // F#5 F# F#5
Y: "b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~, ~@3 [b4,d5,f#5]@5", // Bm
Z: "[d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d4,a4,d5]@3 ~ [d3,a3] ~ [d4,a4,d5] ~ [d3,a3] ~", // D5
AA: "[d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d4,a4,d5] ~ [d3,a3] ~ [d4,a4,d5] ~ [d3,a3] ~", // D5
AB: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a3,e4,a4]@4 [a2,e3] ~ [a3,a4] ~ [a2,e3] ~, ~@6 e4 ~", // A5 A A5
AC: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a4,e5,a5]@2 [a2,e3] ~ [a4,d5,f#5] ~ [a4,c#5,e5] ~", // A5 D A
AD: "[e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [b4,e5]@4 [e3,b3,e4] ~ [b4,e5]@2 [e3,b3,e4] ~", // E5
AE: "[e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [d5,g#5] ~ [e3,b3,e4] ~ [b4,e5] ~ [e3,b3,e4] ~", // E5 Ddim E5
})).s("gm_rock_organ").gain(0.3).pan(0.4)
// chords · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel = note("<A B C D C ~@47 E F G H@2 I H C ~@46 E J G K L M N@2 O P>".pickRestart({
A: "~@2 [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,a4,c#5] ~ [g4,b4]@2 e4 ~", // E5 A G
B: "~@2 [e4,b4,e5] ~@3 [e4,b4,e5]@3 ~ [e4,a4,c#5] ~ [g4,b4]@2 e4 ~", // E5 A G
C: "[e3,b3]@2 e3 ~ [e3,c#4]@2 e3@2 e4@2 e3@2 c#4 ~ [e3,b3]@2", D: "[e3,b3] ~ g3 ~ g3 ~ b3 ~ c#4 ~ [b3,e4]@6",
E: "~@2 [e3,a3] ~@3 [e3,a3]@4 f#3 ~ c3 ~ c3 ~", F: "~@2 f3 ~ f#3 ~ a3 ~ b3 ~ [a3,d4]@6",
G: "~@2 [d3,g3] ~@3 [d3,g3]@4 e3 ~ a#2@2 b2 ~", H: "~@2 [b3,e4] ~@3 [b3,e4]@4 c#4 ~ g3@2 g3 ~",
I: "~@2 g3 ~ g3 ~ b3 ~ c#4 ~ [b3,e4]@6", J: "[f4,a4] ~ e4 ~ d4 ~ b3 ~ a3 ~ [a3,d4]@6",
K: "~@2 [b3,e4] ~@3 [b3,e4]@4 c#4 ~ g3@2 g#3 ~", L: "~@2 [e3,a3] ~@3 [e3,a3]@4 f#3 ~ c3 ~ c#3 ~",
M: "[c4,e4] ~ b3 ~ a3 ~ f#3 ~ e3 ~ [e3,a3]@6", N: "~@2 [e3,a3] ~@3 [e3,a3]@4 f#3 ~ c3@2 c#3 ~",
O: "[a3,a4]!4 [f#3,f#4]!2 [f3,f4]!2", P: "[e3,e4] [d3,d4] [c#3,c#4] [a2,a3] ~@2 [a2,e3,a3,c#4,a4] ~",
})).s("gm_acoustic_guitar_steel").gain(0.2).pan(0.7)
// chords · synth brass 1 · "Guitar"
const synth_brass_1 = note(`<
~@6 A ~ B C A ~ D E F G H ~ I J K ~ L M N O P ~ Q R S T K ~ S U V ~ W X Y Z ~ AA ~ F ~ AA AB@2 AC AD ~@8 AE ~ AF C A ~
AG E AH G AI ~ AJ J A ~ L AK N O P ~ AL R S T Q R S AM V ~ W AN AO Z ~ AA AP AH ~ AA ~ K AQ AR ~@10
>`.pickRestart({
A: "~@6 [c#4,e4,a4,c#5]@4 [e4,c#5] ~@5", B: "[d5,g5] ~@2 [e4,b4,d5,g5]@2 ~ [e4,b4,d5,g5] [e5,a5]",
C: "~@6 [e4,b4,d5,g5]@3 ~@7", D: "~@10 [b4,d5,g5]@2 ~@2 [b4,d5,g5] ~", E: "~@6 [g4,b4,d5,g5]@3 ~@7",
F: "~@10 [d#4,f#4]@2 ~@2 [d#4,f#4] ~", G: "~@6 [f#4,b4,d#5]@3 ~@3 [f#4,b4,d#5] ~@3",
H: "~@10 [e4,g#4,b4] ~@3 [e4,g#4,b4] ~", I: "~@6 [c4,e4,a4,c5]@4 [e4,c5] ~@5",
J: "~@6 [a3,e4,g4,c5]@3 ~@5 [a3,e4,g4,c5]@2", K: "~@10 [e4,a4,c#5]@2 ~@2 [e4,a4,c#5] ~",
L: "~@6 [d4,a4,c5,f5]@4 [a4,d5] ~@5", M: "~@6 [a4,d5,f5]@3 ~@3 [a4,d5,f5] ~@3",
N: "~@10 [g#4,b4,d5] ~@3 [g#4,b4,d5] ~", O: "~@6 [d4,g#4,b4,f5]@3 ~@7", P: "~@10 [e4,g#4]@2 ~@2 [e4,g#4] ~",
Q: "~@10 [e4,a4,c#5] ~@3 [e4,a4,c#5] ~", R: "~@6 [c#4,e4,a4,c#5]@3 ~@7", S: "~@6 [c#4,g#4,b4,e5]@4 [g#4,c#5] ~@5",
T: "~@6 [e4,g#4,c#5,e5]@3 ~@5 [e4,g#4,c#5,e5]@2", U: "~@6 [c#4,g#4,b4,e5]@3 ~@5 [c#4,g#4,b4,e5]@2",
V: "~@10 [a4,d5,f#5]@2 ~@2 [a4,d5,f#5] ~", W: "~@6 [c#4,f#4,a#4,e5]@4 [f#4,c#5] ~@5",
X: "~@6 [f#4,a#4,c#5]@3 ~@3 [f#4,a#4,c#5] ~@3", Y: "~@6 [b3,f#4,a4,d5]@4 [f#4,b4] ~@5", Z: "~@6 [b3,f#4,a4,d5]@3 ~@7",
AA: "~@10 [f#4,a4]@2 ~@2 [f#4,a4] ~", // F#m
AB: "[~@6 [c#4,e4,a4,c#5]@3 ~@5 [c#4,e4,a4,c#5]@4 ~@4 [c#4,e4,a4,c#5]@4 ~@2 [c#4,e4,a4,c#5]@2 [c#5,d5]@2]/2", // A Dmaj7
AC: "~@6 [b4,d5,e5]@3 ~@3 [b4,d5,e5] ~@3", AD: "~@10 [b4,d5,e5] ~@3 [b4,d5,e5] ~",
AE: "~@10 [c#4,e4]@2 ~@2 [c#4,e4] ~", AF: "~@10 [g4,b4,e5]@2 ~@2 [g4,b4,e5] ~",
AG: "~@3 [g4,b4,d5,g5]@2 ~ [g4,b4,d5,g5] [g5,a5]", AH: "~@6 [d#4,f#4,b4,d#5]@4 [f#4,d#5] ~@5",
AI: "~@3 [b3,e4,g#4,d5]@2 ~ [b3,e4,g#4,d5] [b4,e5]", AJ: "~@6 [a3,e4,g4,c5]@4 [e4,a4] ~@5",
AK: "~@6 [d4,a4,c5,f5]@3 ~@5 [d4,a4,c5,f5]@2", AL: "~@3 [c#4,e4,a4,c#5]@2 ~ [c#4,e4,a4,c#5] [c#5,d5]",
AM: "~@6 [c#4,g#4,b4,e5]@3 ~@7", AN: "~@6 [c#4,f#4,a#4,e5]@3 ~@5 [c#4,f#4,a#4,e5]@2",
AO: "~@10 [f#4,b4,d5] ~@3 [f#4,b4,d5] ~", AP: "~@6 [d#4,f#4,b4,d#5]@3 ~@7", AQ: "~@6 [b3,e4,g#4,d5]@3 ~@7",
AR: "~@6 [b3,e4,g#4,d5]@4 [e4,b4] ~@5", // E7 E5
})).s("gm_synth_brass_1").gain(0.35).pan(0.7)
// chords · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel_2 = note("<A@4 B ~@47 C D E F A@2 B@2 ~@46 C D E F G@2 C H I J>".pickRestart({
A: "[[e3,b3]@3 ~ [e3,c#4] ~ b3 ~ [e3,e4]@3 ~ [e3,c#4] ~ [e3,b3]@5 ~ [e3,c#4]@2 b3 ~ [e3,e4]@2 b3 ~ [e3,c#4] ~ [e3,b3]@2]/2", // E5 C#m E C#m E5 C#m E C#m …
B: "[e3,b3]@3 ~ [e3,c#4] ~ b3 ~ [e3,e4]@3 ~ [e3,c#4] ~ [e3,b3]@2", // E5 C#m E C#m E5
C: "[a2,e3]@3 ~ [a2,f#3] ~ e3 ~ [a2,a3]@3 ~ [a2,f#3] ~ [a2,e3]@2", // A5 D A D A5
D: "[d3,a3]@3 ~ [d3,b3]@2 a3 ~ [d3,d4]@2 a3 ~ [d3,b3] ~ [d3,a3]@2", // D5 G D G D5
E: "[g2,d3]@3 ~ [g2,e3] ~ d3 ~ [g2,g3]@3 ~ [g2,e3] ~ [g2,d3]@2", // G5 C G C G5
F: "[e3,b3]@3 ~ [e3,c#4]@2 b3 ~ [e3,e4]@2 b3 ~ [e3,c#4] ~ [e3,b3]@2", // E5 C#m E C#m E5
G: "[[a2,e3]@3 ~ [a2,f#3] ~ e3 ~ [a2,a3]@3 ~ [a2,f#3] ~ [a2,e3]@5 ~ [a2,f#3]@2 e3 ~ [a2,a3]@2 e3 ~ [a2,f#3] ~ [a2,e3]@2]/2", // A5 D A D A5 D A D …
H: "[a2,e3]@3 ~ [a2,f#3]@2 e3 ~ [a2,a3]@2 e3 ~ [a2,f#3] ~ [a2,e3]@2", I: "[a3,a4]!4 [f#3,f#4]!2 [f3,f4]!2",
J: "[e3,e4] [d3,d4] [c#3,c#4] [a2,a3] ~@2 [a2,e3,a3,c#4,a4] ~", // E D C# A
})).s("gm_acoustic_guitar_steel").gain(0.2).pan(0.4)
// chords · electric guitar muted · "Guitar"
const electric_guitar_muted = note(`<
~@5 A B C D A B C E F G H D A B I B I J K L M N O B I P Q B I P Q J K R S G H K J H G K J I B A D ~@8 B C D A B C E F
G H D A B I B I J K L M N O B I P Q B I P Q J K R S G H K J H G K J I B A D ~@10
>`.pickRestart({
A: "[e2,e3,b3] ~ [e2,e3,b3] ~ [e2,e3,b3] ~ [e2,e3,b3] ~ [e2,e3,b3] ~ [e2,e3,b3] ~ [e2,e3,b3] ~ [e2,e3,b3] ~", // E5
B: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3]@2 [a2,e3] ~ [a2,e3] ~", // A5
C: "[d2,d3,a3] ~ [d2,d3,a3] ~ [a2,e3] ~ [a2,e3] ~ [d2,d3,a3] ~ [d2,d3,a3] ~ [a2,e3] ~ [a2,e3] ~", // D5 A5 D5 A5
D: "[e2,e3,b3] ~ [e2,e3,b3] ~ [e2,e3,b3] ~ [e2,e3,b3] ~ [e2,e3,b3] ~ [e2,e3,b3]@2 [e2,e3,b3] ~ [e2,e3,b3] ~", // E5
E: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3]@2 [g2,d3] ~ [g2,d3] ~", // G5
F: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~", // G5
G: "[b1,b2,f#3] ~ [b1,b2,f#3] ~ [b1,b2,f#3] ~ [b1,b2,f#3] ~ [b1,b2,f#3] ~ [b1,b2,f#3]@2 [b1,b2,f#3] ~ [b1,b2,f#3] ~", // B5
H: "[b1,b2,f#3] ~ [b1,b2,f#3] ~ [b1,b2,f#3] ~ [b1,b2,f#3] ~ [b1,b2,f#3] ~ [b1,b2,f#3] ~ [b1,b2,f#3] ~ [b1,b2,f#3] ~", // B5
I: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~", // A5
J: "[d2,d3,a3] ~ [d2,d3,a3] ~ [d2,d3,a3] ~ [d2,d3,a3] ~ [d2,d3,a3] ~ [d2,d3,a3]@2 [d2,d3,a3] ~ [d2,d3,a3] ~", // D5
K: "[d2,d3,a3] ~ [d2,d3,a3] ~ [d2,d3,a3] ~ [d2,d3,a3] ~ [d2,d3,a3] ~ [d2,d3,a3] ~ [d2,d3,a3] ~ [d2,d3,a3] ~", // D5
L: "[d2,d3,g#3] ~ [d2,d3,g#3] ~ [d2,d3,g#3] ~ [d2,d3,g#3] ~ [d2,d3,g#3] ~ [d2,d3,g#3]@2 [d2,d3,g#3] ~ [d2,d3,g#3] ~", // Ddim
M: "[d2,d3,g#3] ~ [d2,d3,g#3] ~ [d2,d3,g#3] ~ [d2,d3,g#3] ~ [d2,d3,g#3] ~ [d2,d3,g#3] ~ [d2,d3,g#3] ~ [d2,d3,g#3] ~", // Ddim
N: "[c2,c3,g3] ~ [c2,c3,g3] ~ [c2,c3,g3] ~ [c2,c3,g3] ~ [e2,e3,b3] ~ [e2,e3,b3] ~ [e2,e3,b3] ~ [e2,e3,b3] ~", // C5 E5
O: "[a2,e3] ~ [a2,e3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [b1,b2,f#3] ~ [b1,b2,f#3] ~ [e2,e3,b3] ~ [e2,e3,b3] ~", // A5 F#5 B5 E5
P: "[c#2,c#3,g#3] ~ [c#2,c#3,g#3] ~ [c#2,c#3,g#3] ~ [c#2,c#3,g#3] ~ [c#2,c#3,g#3] ~ [c#2,c#3,g#3]@2 [c#2,c#3,g#3] ~ [c#2,c#3,g#3] ~", // C#5
Q: "[c#2,c#3,g#3] ~ [c#2,c#3,g#3] ~ [c#2,c#3,g#3] ~ [c#2,c#3,g#3] ~ [c#2,c#3,g#3] ~ [c#2,c#3,g#3] ~ [c#2,c#3,g#3] ~ [c#2,c#3,g#3] ~", // C#5
R: "[f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3]@2 [f#2,c#3] ~ [f#2,c#3] ~", // F#5
S: "[f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~", // F#5
})).s("gm_electric_guitar_muted").gain(0.3).pan(0.4)
// drums · kick
const kick = s("bd").struct(`<
A@4 B@4 C B@3 C B@3 C B@3 C B@3 C B@7 C B@3 C B@3 C B@8 C B@2 A@5 C A@2 B@2 C B@3 C B@3 C B@3 C B@3 C B@7 C B@3 C B@3
C B@8 C B@2 A@5 C A@3 D
>`.pickRestart({
A: "x ~@2 x!2 ~@3", B: "x ~@3 x!2 ~@2", C: "x!2", D: "x ~ x!2 ~@2 x ~",
})).gain(0.57).pan(0.3)
// … 62 more lines
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.