0:00/0:00
// Cold as Ice — Foreigner
// 131 bpm, 4/4, key D# minor. 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 109 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(131/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 · piano · "A.PIANO 2"
const piano = note(`<
A@2 B@2 C D E F C D E G H D E I J K L M N O P Q R S@2 T@2 U V E W U V E W U V E X Y Z AA AB AC O P AD AE AF@2 AG@2 AH
AI AJ@2 AK AL AM@2 AK AN AO@2 AP AQ AR@2 AS AT AU AV AW AX AU AV AY AZ AU AV BA BB AU AV BA BC AU AV BD BE BF BG BH BI
AU AV AW BJ AU AV BK BL AU AV AW BM ~
>`.pickRestart({
A: "[[eb4,ab4,bb4]@3 ~@3 [eb4,ab4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 ~@2 [eb4,ab4,bb4]@4 ~@2 [eb4,ab4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 bb2@2 [db3,eb4,gb4,bb4]@4 bb2@2, [eb2,eb3]@5 ~]/2", // Ebsus4 Ebm Ebsus4 Ebm Ebm7 Eb
B: "[[eb4,ab4,bb4]@3 ~@3 [eb4,ab4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 ~@2 [eb4,ab4,bb4]@4 ~@2 [eb4,ab4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 bb2@2 [db3,eb4,gb4,bb4]@4 bb2 ~, [eb2,eb3]@19 ~@5]/2", // Ebsus4 Ebm Ebsus4 Ebm Ebm7 Eb
C: "[eb2,eb3,eb4,ab4,bb4]@2 ~ [eb4,ab4,bb4]@2 ~ [eb4,gb4,bb4]@2 ~ [eb4,gb4,bb4]@2 ~", // Ebsus4 Ebm
D: "[eb4,ab4,bb4]@4 ~@2 [eb4,ab4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 bb2@2 [db3,eb4,gb4,bb4]@4 bb2 ~", // Ebsus4 Ebm Ebm7
E: "[b2,b3,eb4,ab4]@2 ~ [b3,eb4,ab4]@2 ~ [b3,eb4,gb4]@2 ~ [b3,eb4,gb4]@2 ~", // Abm B
F: "[b3,eb4,ab4]@4 ~@2 [b3,eb4,ab4]@4 ~@2 [b3,eb4,gb4]@4 bb2 ~ [db3,b3,eb4,gb4]@4 bb2 ~", // Abm B
G: "[b3,eb4,ab4]@2 ~ [b3,eb4,ab4]@2 ~ [b3,eb4,gb4]@2 ~ [b3,eb4,gb4]@2 ~, ~@16 db3@7 ~, ~@17 db2@6 ~", // Abm B
H: "[eb2,eb3,eb4,ab4,bb4]@3 ~@3 [eb4,ab4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 ~@2", // Ebsus4 Ebm
I: "[b3,eb4,ab4]@4 ~@2 [b3,eb4,ab4]@4 ~@2 [b2,b3,eb4,gb4]@5 ~ [bb2,bb3,eb4,gb4]@6", // Abm B Ebm
J: "[ab3,b3,eb4,ab4]@5 ~ [ab3,b3,eb4,ab4]@6 [ab3,b3,eb4,ab4]@6 [ab3,b3,eb4,ab4]@6, ab2@7 ~", // Abm
K: "[gb2,gb3,bb3,db4,gb4]@23 ~", L: "[f2,f3,a3,db4,f4]@23 ~",
M: "[b3,eb4,ab4]@5 ~ [b3,eb4,ab4]@5 ~ [b3,eb4,ab4]@5 ~ [b3,eb4,ab4]@4 bb2@2, ab2@5 ~", // Abm
N: "[b3,eb4,gb4]@3 ~@3 [b3,eb4,gb4]@4 ~@2 [b3,eb4,gb4]@4 ~@2 [b3,eb4,gb4]@5 ~, b2 db3", // B
O: "[gb3,bb3,db4,gb4]@11 ~ [gb3,bb3,db4,gb4]@11 ~, gb2@11 ~", // Gb
P: "f4@9 ~ [f4,a4,db5,f5] ~ [f4,a4,db5,f5]@11 ~, [f2,f3,a3,db4]@23 ~", // Faug
Q: "[b3,eb4,ab4,b4]@2 ~ [b3,eb4,ab4,b4]@2 ~ [b3,eb4,ab4,b4]@2 ~ [b3,eb4,ab4,b4]@2 ~, ab2@11 ~", // Abm
R: "[bb3,d4,f4,bb4]@5 ~ [bb3,d4,f4,bb4]@5 ~ [bb3,d4,f4,bb4]@5 ~ [bb3,d4,f4,bb4]@5 ~, bb2@11 ~", // Bb
S: "[[eb4,ab4,bb4]@3 ~@3 [eb4,ab4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 ~@2 [eb4,ab4,bb4]@4 ~@2 [eb4,ab4,bb4]@4 ~@2 eb2@2 bb2@2 eb3@2 [eb4,gb4,bb4]@4 ~@2, [eb2,eb3]@17 ~ [eb4,gb4,bb4]@2 ~ bb2@3]/2", // Ebsus4 Ebm Ebsus4 Ebm Eb Ebm
T: "[[b3,eb4,ab4]@3 ~@3 [b3,eb4,ab4]@4 ~@2 [b3,eb4,gb4]@4 ~@2 [b3,eb4,gb4]@4 ~@2 [b3,eb4,ab4]@4 ~@2 [b3,f4,ab4]@4 ~@2 gb2@2 b2 ~ eb3@2 [b2,b3,eb4]@5 ~, b2@34 ~@2 [b3,eb4,gb4]@4 ~@2 gb4@3 ~@3]/2", // Abm B Abm Fdim B
U: "[eb3,eb4,ab4,bb4]@2 ~ [eb4,ab4,bb4]@2 ~ [eb4,gb4,bb4]@2 ~ [eb4,gb4,bb4]@2 ~", // Ebsus4 Ebm
V: "[eb4,ab4,bb4]@4 ~@2 [eb4,ab4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 eb3@2 [bb2,eb4,bb4]@5 ~, ~@6 gb4 ~", // Ebsus4 Ebm Eb5
W: "[b3,eb4,ab4]@2 ~ [b3,eb4,ab4]@2 ~ [b3,eb4,gb4]@2 b2 [b3,eb4,gb4]@2 ~, ~@3 db3", // Abm B
X: "[b3,eb4,ab4]@4 ~@2 [b3,eb4,ab4]@4 ~@2 [b2,b3]@5 ~ [bb2,bb3,eb4]@5 ~, ~@4 [eb4,gb4] ~ gb4 ~", // Abm B Eb5 Ebm
Y: "[ab2,ab3,b3,eb4,ab4]@11 ~", Z: "[db4,gb4]@11 ~ [db4,gb4,bb4]@12, [gb2,gb3,bb3]@23 ~",
AA: "f4@9 ~ [f4,a4,db5,f5] ~ [f4,db5,f5]@12, [f2,f3,a3,db4]@23 ~, ~@6 a4@5 ~", // Faug Db Faug
AB: "[b3,eb4,ab4,b4]@2 ~ [b3,eb4,ab4,b4]@2 ~ [b3,eb4,ab4,b4]@2 ~ [b3,eb4,ab4,b4]@2 bb2, ab2@5 ~", // Abm
AC: "[b3,eb4,gb4,b4]@3 ~@3 [b3,eb4,gb4,b4]@4 ~@2 [b3,eb4,gb4,b4]@4 ~@2 [b3,eb4,gb4,b4]@4 ~@2, b2 db3", // B
AD: "[ab2,b3,eb4,ab4,b4]@23 ~", AE: "[bb3,d4,f4,bb4]@10 ~@2 [bb3,d4,f4,bb4]@10 [bb3,d4,f4] ~, bb2@10 ~ bb2",
AF: "[[gb3,b3,eb4,gb4]@4 ~@2 [gb3,b3,eb4,gb4]@4 ~@2 [gb3,b3,eb4,gb4]@5 ~ [gb3,b3,eb4,gb4]@5 ~ [gb3,b3,eb4,gb4]@5 ~ [gb3,b3,eb4,gb4]@4 ~@2 [gb3,b3,eb4,gb4]@4 ~@2 [gb3,b3,eb4,gb4]@5 ~, b2@34 ~@2 b2@11 ~]/2", // B
AG: "[[gb3,bb3,eb4,gb4]@4 ~@2 [gb3,bb3,eb4,gb4]@4 ~@2 [gb3,bb3,eb4,gb4]@5 ~ [gb3,bb3,eb4,gb4]@5 ~ [gb3,bb3,eb4,gb4]@5 ~ [gb3,bb3,eb4,gb4]@4 ~@2 [gb3,bb3,eb4,gb4]@4 ~@2 [gb3,bb3,eb4,gb4]@3 ~ [b2,gb3,b3,eb4,gb4] bb2, bb2@23 ~]/2", // Ebm B
AH: "[gb3,b3,eb4,gb4]@4 ~@2 [gb3,b3,eb4,gb4]@4 ~@2 [gb3,b3,eb4,gb4]@5 ~ [bb2,gb3,bb3,eb4,gb4]@5 ~, b2@17 ~@7", // B Ebm
AI: "[ab3,b3,eb4]@5 ~ [ab3,b3,eb4]@4 ~@2 [ab3,b3,eb4,ab4]@4 ~@2 [ab3,b3,eb4,ab4]@5 ~, ab2@11 ~", // Abm
AJ: "[[gb3,bb3,db4,gb4]@5 ~ [gb3,bb3,db4,gb4]@4 ~@2 [gb3,bb3,db4,gb4]@5 ~ [gb3,bb3,db4,gb4]@3 ~ [f3,bb3,d4,f4]@8 [f3,bb3,d4,f4]@4 ~@2 [f3,bb3,d4,f4]@4 ~@2 [ab3,bb3,db4,f4]@5 ~, gb2@9 ~@2 bb2@8 ~ db3@4]/2", // Gb Bb Bbm7
AK: "eb4@6 eb4@6 eb4@6 eb4@5 ~, [eb2,eb3], [bb3,gb4,bb4]@12 [bb3,gb4,bb4]@11 ~", // Eb Ebm
AL: "d4@6 d4@6 d4@6 ~@3 gb3@2 ~, [f2,f3]@21 gb2 ~@2, [f4,ab4]@6 [f4,ab4]@5 ~, ~@18 d4@5 ~", // F Fm
AM: "[d4@6 d4@6 [d4,f4,bb4]@6 bb3@3 ~@3 [d4,f4,ab4]@6 bb3@3 ~@3 [d4,f4,ab4]@5 ~ [bb3,d4,f4,bb4]@6, ab2 ~, ab3@21 b3@8 ~@4 ab3@8 ~@7, [f4,bb4]@12 ~@6 [d4,f4,bb4]@6 ~@6 [d4,f4,ab4]@5 ~@13]/2", // Bb Ddim Bb Bb5 Bb Ddim
AN: "d4@2 d4@2 d4@2 ~ gb3, [f2,f3,ab3]@21 gb2 ~@2, [f4,ab4]@6 [f4,ab4]@5 ~, ~@18 d4@5 ~", // Fm
AO: "[d4@6 d4@6 [d4,f4,ab4]@6 bb3@3 ~@3 [d4,f4,ab4]@5 ~ bb3@3 ~@3 [d4,f4,ab4]@5 ~ [gb2,gb3,d4,f4,ab4]@6, ab2 ~, ab3@18 ~@3 b3@7 ~@5 ab3@8 ~@7, [f4,ab4]@12 ~@6 [d4,f4,ab4]@5 ~@7 [d4,f4,ab4]@5 ~@13]/2", // Ddim Fm Ddim
AP: "eb4@6 eb4@6 eb4@6 eb4@5 ~, [eb2,eb3], [bb3,gb4,bb4]@6 [bb3,gb4,bb4]@5 ~", // Eb Ebm
AQ: "d4@2 d4@2 d4@2 ~ gb3, [f2,f3]@20 ~ gb2 ~@2, [f4,ab4]@6 [f4,ab4]@5 ~, ~@18 d4@5 ~", // F Fm
AR: "[d4@6 d4@6 [d4,f4,ab4,bb4]@6 [bb2,bb3,bb4]@3 ~@3 [d4,f4]@5 ~ [bb2,bb3,d4,f4,ab4]@3 ~ ab3@8 [gb2,gb3,db4,d4,gb4,ab4]@5 ~, [ab2,ab3]@18 ~@3 b3@7 ~@20, [f4,ab4,bb4]@12 ~@6 [d4,f4]@4 [b2,b4]@8 ~@3 [ab2,d4,f4,bb4]@8 ~@7]/2", // Bb7 Bb Dm Bb7 Gbsus2 Ab Bb7 Dm …
AS: "[eb4,gb4,b4]@5 ~ [eb4,gb4,b4]@5 ~ [eb4,gb4,b4]@5 ~ [eb4,gb4,b4]@5 ~, [b2,b3]@23 ~", // B
AT: "[b2,b3,eb4,gb4,b4]@6 [bb2,bb3,eb4,gb4,b4]@5 ~ [ab2,ab3,eb4,gb4,b4]@5 ~ [gb2,gb3,eb4,gb4,b4]@6", // B Bmaj7 Abm7 B
AU: "[eb3,eb4,ab4,bb4]@6 [eb4,ab4,bb4]@5 ~ [eb4,gb4,bb4]@5 ~ [eb4,gb4,bb4]@5 ~", // Ebsus4 Ebm
AV: "[eb4,ab4,bb4]@5 ~ [eb4,ab4,bb4]@5 ~ [eb4,gb4,bb4]@4 eb3@2 [bb2,eb4,gb4,bb4]@6", // Ebsus4 Ebm
AW: "[b2,b3,eb4,ab4]@6 [b3,eb4,ab4]@5 ~ [b3,eb4,gb4]@5 ~ [b3,eb4,gb4]@5 ~", // Abm B
AX: "[b2,b3,eb4,ab4]@5 ~ [b3,eb4,ab4]@5 ~ [b3,eb4,gb4]@4 b2@2 [db3,b3,eb4,gb4]@6, ~@6 b2@3 ~@3 b2@2 ~@10", // Abm B
AY: "[b2,eb4,ab4,b4]@6 [eb4,ab4,b4]@5 ~ [eb4,gb4,b4]@5 ~ [eb4,gb4,b4]@5 ~", // Abm B
AZ: "[b2,eb4,ab4,b4]@5 ~ [b2,eb4,ab4,b4]@6 [eb4,gb4,b4]@4 b2@2 [db3,eb4,gb4,b4]@6, ~@12 b2 ~@11", // Abm B
BA: "[b2,eb4,ab4,b4]@6 [eb4,ab4,b4]@5 ~ [eb4,gb4,b4]@5 ~ [eb4,gb4,b4]@4 bb2@2", // Abm B
BB: "[b2,eb4,ab4,b4]@3 [db3,eb4,f4,b4]@3 [eb3,eb4,gb4,b4]@3 [db3,eb4,ab4,b4]@2 bb2", // Abm Db7 B Abm
BC: "[b2,eb4,ab4,b4]@6 [db3,eb4,ab4,b4]@6 [eb4,gb4,b4]@5 ~ [db3,eb4,gb4,b4]@4 bb2 ~, ~@2 eb3 ~", // Abm B
BD: "[b3,eb4,ab4]@5 ~ [b3,eb4,ab4]@5 ~ [b3,eb4,gb4]@5 ~ [b3,eb4,gb4]@5 ~, b2 ~@3", // Abm B
BE: "[b3,eb4,ab4]@5 ~ [b3,eb4,ab4]@5 ~ [b3,eb4,gb4]@4 b2@2 [db3,b3,eb4,ab4]@6", // Abm B Abm
BF: "[db4,eb4,gb4,bb4]@4 ~@2 [db4,eb4,gb4,bb4]@3 ~@3 [db4,eb4,gb4,bb4]@3 ~ [db4,eb4,gb4,bb4]@2 eb3@4 bb2@2, eb3 ~@3", // Ebm7
BG: "[db4,eb4,gb4,bb4]@3 ~@3 [db4,eb4,gb4,bb4]@3 ~@3 [db4,eb4,gb4,bb4]@3 ~ [eb4,gb4]@2 bb2@6, eb3 ~ eb3 ~, ~@16 [db4,bb4] ~@7", // Ebm7 Ebm Gb
BH: "[b3,eb4,ab4]@4 ~@2 [b3,eb4,ab4]@3 ~@3 [b3,eb4,gb4]@3 ~ [b3,eb4,gb4] ~ b2@4 bb2@2, b2 ~@3", // Abm B
BI: "[b2,eb4,ab4,b4]@2 b1 [db3,eb4,ab4,b4]@2 db2 [eb3,eb4,gb4,b4]@2 [eb2,b3] [b2,eb4,gb4,b4]@2 b1, ~@4 b3 ~@5 b3 ~@11 b3 ~", // Abm B Abm B
BJ: "[b3,eb4,ab4]@5 ~ [b3,eb4,ab4]@5 ~ [b3,eb4,gb4]@4 b2@2 [db3,b3,eb4,gb4]@6", // Abm B
BK: "[b2,b3,eb4,ab4]@6 [b3,eb4,ab4]@5 ~ [b3,eb4,gb4]@5 ~ [b3,eb4,gb4]@4 bb2@2", // Abm B
BL: "[b2,a3,eb4,gb4]@2 c2 [db3,a3,eb4,gb4]@2 db2 [eb3,a3,eb4,gb4]@2 eb2 ~@2 gb2, ~@3 [gb3,a3,eb4,gb4]", // B7 Ebm7b5 Ebdim
BM: "[b3,eb4,ab4]@5 ~ [b3,eb4,ab4]@5 ~@13", // Abm
})).s("gm_piano").gain(0.38)
// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
~@3 A B A C A B A C D B A C E F G H I J G H K L M N O P M Q O R M S O T M U O V F G W X Y G W Z AA AB@2 AC@3 AD AE@2 B
~@3 AF AG AH@2 AF AG AI@2 AJ AK M AL O AM M AN O AO M AP AQ AR M U AS AT M AU O AV AW AX AY AZ BA BB AO BC M BD O BE
BA BF O BE ~
>`.pickRestart({
A: "~@16 bb1 ~ db2@3 ~@3", B: "eb2 ~@7", C: "b1 ~@7", D: "~@16 db2 ~ db2@3 ~@3", E: "~@12 b1@5 ~ bb1@5 ~", F: "ab1",
G: "gb1@11 ~", H: "f1@11 ~", I: "ab1@3 ~@3 b1@3 ~@3 eb2@3 ~@3 ab1@3 ~ bb1 ~", J: "b1@5 ~ bb1@5 ~ db2@4 ~@2 ab1@5 ~",
K: "ab1 ~ b1 ~ eb2 ~ ab1 ~", L: "bb1@5 ~ d2@6 f2@4 ~@2 bb1@5 ~", M: "eb2 ~ eb2 ~ bb1 ~ bb1 ~",
N: "eb2 ~ eb2 ~ bb1 ~ gb2 ~", O: "b1 ~ b1 ~ gb1 ~ gb1 ~", P: "b1 ~ b1 ~ gb1 ~ b1 ~", Q: "eb2 ~ eb2 ~ bb1 ~ eb2 ~",
R: "b1@3 ~@3 b1@3 ~@3 bb1@3 ~ b1 ~ db2@4 ~@2", S: "eb2@3 ~@3 eb2@3 ~@3 bb1@3 ~ bb1 ~ eb2@4 ~@2",
T: "b1@3 ~@3 b1@3 ~@3 gb1@3 ~ b1 ~ ab1@3 ~ db2@2", U: "eb2@3 ~@3 eb2@3 ~@3 eb2@4 bb1 ~ eb2@5 ~",
V: "b1@3 ~@3 b1@3 ~@3 b1@5 ~ bb1@6", W: "f1@19 ~@5", X: "ab1@3 ~@3 b1@3 ~ b1 ~ eb2@3 ~@3 ab1@3 ~ ab1 ~",
Y: "b1@5 ~ bb1@5 ~ ab1@4 ~@2 db2@5 ~", Z: "ab1@3 ~@3 b1@2 ~@3 b1 eb2@3 ~@3 ab1@3 ~@3",
AA: "bb1@5 ~ d2@6 f2@6 bb2@4 b1 bb1", AB: "[b2@28 gb2@2 b2@10 ~@6 b1 ~, b1@23 ~, ~@5 gb2]/2",
AC: "[[bb1,bb2]@46 b1 ~ [b1,b2]@18 [bb1,bb2]@6, ~@47 bb1@2 ~@23]/3", AD: "[ab1,ab2]@23 ~",
AE: "[[gb1,gb2]@22 [bb1,bb2]@16 ~ [db2,db3]@8 ~]/2", AF: "eb2@7 ~", AG: "f2@7 gb2",
AH: "[ab2@15 ~@3 bb2@3 b2@7 ~@2 bb2@3 ab2@8 ~ gb2@6]/2", AI: "[ab2@15 ~@3 bb1@3 b1@7 ~@2 bb1@3 ab1@7 ~@2 gb1@6]/2",
AJ: "b1", AK: "b1@5 ~ bb1@5 ~ ab1@5 ~ gb1@6", AL: "eb1 ~ f1 ~ bb1 ~ gb1 ~",
AM: "b1@3 ~@3 b1@3 ~@3 gb1@3 ~ gb1 ~ b1@3 ~@3", AN: "eb2@3 ~@3 eb2@3 ~@3 bb1@3 ~ eb2@8", AO: "b1 ~ b1 ~ bb1 ~ bb1 ~",
AP: "eb2@3 ~@3 eb2@3 ~@3 bb1@3 ~ ab1 ~ bb1@5 ~", AQ: "b1 ~ b1 ~ b1 ~ b1 ~", AR: "b1 ~ b1 ~ b1 ~ bb1@2",
AS: "b1@3 ~@3 b1@3 ~@3 gb1@3 ~@3 gb1@3 ~ bb1@2", AT: "b1@3 ~@3 b1@3 ~@3 gb1@3 ~@3 bb1@4 db2 ~",
AU: "eb2@3 ~@3 eb2@3 ~@3 bb1@3 ~@3 eb2@5 ~", AV: "b1@3 ~@3 b1@3 ~@3 eb2@2 gb1@2 b1@2 bb1@2 b1@2 db2@2",
AW: "eb2@3 ~@3 eb2@3 ~@3 eb2@3 ~@3 eb2@3 ~ bb1@2", AX: "eb2@3 ~@3 eb2@3 ~@3 eb2@3 ~@3 bb1@5 ~",
AY: "b1@3 ~@3 bb1@3 ~@3 b1@3 ~@3 b1@2 gb1@2 bb1@2", AZ: "b1@6 db2@6 eb2@5 ~ bb1@6", BA: "eb2 ~ eb2 ~ gb1 ~ gb1 ~",
BB: "bb2@2 ~@2 bb2 ~ bb2@3 ~@3 ab1@3 ~ bb1 ~ ab1@6", BC: "ab1@3 ~@3 ab1@3 ~@3 gb1@3 ~ gb1 ~ bb1@4 ~@2",
BD: "eb2@2 ~@2 bb1 ~ eb2@3 ~@3 bb1@3 ~@3 eb2@3 ~@3", BE: "b1@3 ~@3 b1@3 ~@3 gb1@3 ~@3 gb1@4 ~@2",
BF: "bb1 ~ bb1 ~ eb2@2 bb1 ~",
})).s("gm_electric_bass_finger").gain(0.48)
// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
~@16 A B@3 C@4 D E F G H E F G H E F G H E F G I J K@3 L@4 M N@3 O P@2 Q R ~@10 S@2 T U E F G H E F G H E F G H E F G
H E F G H E F G H E F G H E F G H E F G V ~
>`.pickRestart({
A: "~@18 ab3@3 ~ [g2,d3,g3]@2, ~@10 ab4@3 ab2@8 [ab2,eb3,ab3]@2 ~, ~@11 eb4@8 ~@5, ~@4 [eb3,b3]@3 ~, ~@2 ab3 ~", // G5 Ab5 Abm
B: "[[gb2,db3,gb3]@22 ~@2 [f3,a3,db4]@23 ~@19 ab2@3 ~ a2@2, ~@22 f2@25 ab2@17 ~@5 ab2@2 ~, ~@23 db3@24 ~ [eb3,b3,eb4]@20 ~@4, ~@6 f4@5 ~@7]/3", // Gb5 Faug Abm
C: "[[bb2,gb3]@3 ~@3 [b2,gb3]@4 ~@2 [db3,ab3]@3 ~@4 [c3,g3]@2 b2 ~@2 gb3@12 f3@9 ~@3 db3@22 ~@2 [eb4,ab4]@24, b2@6 ~@4 [b2,c3,gb3]@2 ~@6 [db3,ab3]@2 ~@3 gb2@23 [a3,db4]@25 [gb3,b3]@24 ~, ~@11 g3@2 ~@11 db3@23 f3@23 ab2@25 ~, ~@24 bb3@20 ~ f4@26 ~@25]/4", // Ebm B5 Db5 C5 Ab5 B Db5 A …
D: "[ab3,d4] [ab3,d4,f4] [f3,ab3,d4]!2 [f3,ab3,d4,f4]!2 [ab3,d4,f4]!2 [f3,ab3,d4,f4] [ab3,d4] [ab3,d4,f4] [d4,f4], f3@2 ~@4 f3@2 ~ f3@3, f4 ~@3 f4@4 ~@16", // Abdim Ddim Abdim Ddim Dm
E: "~@6 [gb3,bb3,eb4,bb4]@4 eb4 ~@7 [gb3,bb3,eb4,bb4]@4 ~@2", // Ebm
F: "~@6 [gb3,bb3,eb4,bb4]@4 ~@8 [gb3,bb3,eb4,bb4]@4 eb4 ~", // Ebm
G: "~@6 [b2,gb3,b3,eb4]@4 [b3,eb4] ~@7 [b2,gb3,b3,eb4]@4 ~@2", H: "~@6 [b2,gb3,b3,eb4]@4 ~@8 [b2,gb3,b3,eb4]@4 b3 ~",
I: "~@3 [b2,gb3,b3,eb4]@2 ~@4 [bb2,eb3,bb3]@2 ~", // B Eb5
J: "~@18 ab3@3 ~ [g2,d3,g3]@2, ~@5 ab4@13 ~@6, ~@3 eb3@7 ~@2, ~ [ab3,b3,eb4]@2 ~, ~@7 ab2@13 ~ [ab2,eb3,ab3]@2 ~", // G5 Abm Ab5
K: "[~ [db4,gb4]@21 ~@2 [f3,a3,db4]@23 ~@19 ab2@3 ~ a2@2, [gb2,db3,gb3]@22 f2@25 ab2@17 ~@5 ab2@2 ~, ~@23 db3@24 ~ [eb3,b3,eb4]@20 ~@4, ~@6 f4@5 ~@7]/3", // Gb5 Faug Gb5 Abm
L: "[[bb2,gb3]@3 ~@3 [b2,gb3]@4 ~@2 [db3,ab3]@3 ~@4 [c3,g3]@2 b2 ~@2 bb3@20 ~@4 db3@22 ~@2 [eb4,ab4]@24, b2@6 ~@4 [b2,c3,gb3]@2 ~@6 [db3,ab3]@2 ~@3 gb2@23 [a3,db4]@25 [gb3,b3]@24 ~, ~@11 g3@2 ~@11 [db3,gb3]@23 f3@23 ab2@25 ~, ~@45 f4@26 ~@25]/4", // Ebm B5 Db5 C5 Ab5 B Db5 A …
M: "[bb2,f3]@11 [bb2,f3], bb3", // Bb5
N: "[[b2,gb3]@2 bb2 ~ b2@2 ~ f3@2 gb3@2 b3@2 bb3@2 b3@2 eb4@2 d4@2 eb4@2 gb4@2 f4@2 gb4@2 b4@2 bb4@2 b4@2 [db5,d5,eb5] ~ d5@2 eb5@2 gb5@3 ~@2 gb5 ~ ab5@2 ~@2 gb5@2 eb5@12 ~@3 ab5@3, ~@6 gb3@2 ~@39 g5@2 ~@23]/3", // B5
O: "~@3 gb5@2 ~@5 db5@2 ~@5 d5 c5 [a4,b4] [e4,f4,g4] d4 [b3,c4] a3, ~@9 eb5@2 ~ eb5@7 ~@5", // Asus2 Em Cmaj7
P: "[b2 ~ bb2 ~ b2@2 ~ f3@2 gb3@2 b3@2 bb3@2 b3@2 eb4@2 d4@2 eb4@2 gb4@2 f4@2 gb4@2 b4@2 bb4@2 b4@2 [db5,d5,eb5] ~@4 eb5@2 ~@3 db5 b4 ~, ~@3 gb3 ~@20]/2",
Q: "bb4@13 a4 g4 [d4,e4,f4] [b3,c4] [g3,a3] f3 ~@2 bb4 d5 [b4,d5,eb5]", // Dm Cmaj7 Gsus2 B
R: "[bb4,eb5] [bb4,b4,d5] [b4,eb5] [bb4,d5]@2 db5 ~ [db5,d5,gb5] [d5,f5,gb5] ~ d5 db5 ~ [gb5,b5] [f5,bb5] [gb5,b5] [f5,bb5] [f5,gb5,bb5,b5] [gb5,b5] [f5,bb5] [gb5,b5] [f5,bb5] [f5,gb5,bb5,b5] ~, ~@6 f5@2 ~ [db5,f5]@2 ~ [f5,bb5]@2 ~@10", // Eb5 Bb B Bb Dmaj7 D B5 Bb5 …
S: "[~@18 bb3@3 b3@8 ~ bb3@3 ab3@9 gb3@3 ~@3]/2", T: "b3@23 ~", U: "b3@5 ~ bb3@6 ab3@5 ~ gb3@6",
V: "~@3 [b2,gb3,b3,eb4]@2 ~@4 [b2,gb3,b3,eb4]@2 ~", // B
})).s("gm_distortion_guitar").gain(0.27).pan(0.4)
// chords · distortion guitar · "DISTORTION" · soft notes
const distortion_guitar_soft = note(`<
~@19 A B ~@4 C D ~ E C D ~ E C D ~ E C D ~@3 F ~ A B ~@5 G ~@3 G ~@16 C D ~ E C D ~ E C D ~ E C D ~ E C D ~ E C D ~ E
C D ~ E C D ~ E C D ~@3
>`.pickRestart({
A: "ab3@5 ~", B: "~@21 gb3 ~@2", C: "~@10 bb4 ~@13", D: "~@22 bb4 ~", E: "~@22 eb4 ~", F: "bb3@11 ~",
G: "~@10 c5 ~@13",
})).s("gm_distortion_guitar").gain(0.16).pan(0.4)
// chords · church organ · "CHURCH ORG"
const church_organ = note(`<
~@11 A B C D E ~ F G H I F G H J B C D E B C D E B C D E B C D E ~ F G H I F G H K ~@22 B C D E B C D E B C D E B C D
E B C D E B C D E B C D E B C D E B C D E ~
>`.pickRestart({
A: "~@3 [eb4,gb4,b4]", B: "~ [ab4,bb4,eb5] ~ [gb4,bb4,eb5]", C: "~ [f4,bb4,eb5] ~ [gb4,bb4,eb5]",
D: "~ [eb4,ab4,b4] ~ [eb4,gb4,b4]", E: "~ [eb4,f4,b4] ~ [eb4,gb4,b4]", F: "[gb4,bb4,db5]", G: "[f4,a4,db5]",
H: "[eb4,gb4,ab4,b4]", I: "[eb4,gb4,b4] ~@2 [eb4,gb4,b4]@3 [eb4,gb4,b4] ~@2 [gb4,ab4,db5]@3",
J: "~ [d4,f4,ab4] ~ [d4,f4,bb4]", K: "[d4,f4,ab4]",
})).s("gm_church_organ").gain(0.4).pan(0.6)
// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@57 A@8 B@4 ~@40>".pickRestart({
A: "[~@24 eb6@23 bb4@24 ~@24 b5@12 ~@13 eb6@23 bb4@24 [ab4,ab5]@25, ~@23 bb5@47 ~ [ab4,ab5]@48 ~@73, ~@23 [eb5,gb5]@24 [d5,f5]@72 [eb5,gb5]@24 [d5,f5]@49, ~@9 bb5@5 ~@2]/8", // Ab Ebm Dm Ebm Dm
B: "[~@24 eb6@23 bb4@24 ab4@13 ~@12, ~@23 [eb5,gb5,bb5]@24 [d5,f5,bb5]@37 ~@12]/4", // Ebm Bb
})).s("gm_string_ensemble_2").gain(0.3)
// other · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note(`<
~@25 A B C D E@2 ~@3 F@3 ~@12 G H@2 I@2 J K L@2 M ~@9 N@2 O P E@2 ~@6 A B C Q A B C Q A B C Q A B C Q A B C Q A B C Q
A B C R ~
>`.pickRestart({
A: "eb3@11 bb2", B: "ab3@2 bb2 gb3@3 eb3@3 bb2@3", C: "b2@11 bb2", D: "b2 db3 eb3 gb3", E: "eb3/2",
F: "[~@5 bb2@5 eb3@5 ab2@3 bb2@4 b2@50, ~@4 ab3@3 ~@65]/3", G: "~@21 b2 ~ bb2", H: "b2/2",
I: "[bb2@28 ab2@2 bb2@4 eb3@6 ~ bb2@4 b2 ~ bb2, ~@20 ab2 ~@3]/2", J: "b2@3 bb2", K: "ab2",
L: "[gb2@16 ab2@2 a2@4 bb2@17 db3@9]/2", M: "eb3 ~@7", N: "[~@18 bb2@3 b2@8 ~ bb2@3 ab2@9 gb2@3 ~@3]/2", O: "b2@23 ~",
P: "b2 bb2 ab2 gb2", Q: "b2@3 db3@3 eb3@2 bb2 db3@2 bb2", R: "b2@3 db3@3 eb3@2 bb2 db3@2 ~",
})).s("gm_synth_brass_1").gain(0.49)
// chords · pad sweep · "SWEEP PAD"
const pad_sweep = note("<~@2 A B@2 ~@104>".pickRestart({
A: "~ bb5 ~ ab5 bb5 gb5 ab5 eb5 gb5 db5 eb5 bb4, eb6 db6 ~@4",
B: "[~@2 ab4@2 ~@2 gb4@2 ab4@2 eb4@2 gb4@2 db4@2 ~ gb4@2 ab4 eb5@2 [gb5,ab5] bb5 eb6@3 ~@21, db5@4 bb4@4 ~@8 eb4@3 bb4@2 ~@27, ~@20 db5 ~@2 db6@2 ~@23]/2", // Gbsus2
})).s("gm_pad_sweep").gain(0.48)
// other · clavinet
const clavinet = note("<~@29 A B C D A B C D A B C D ~@68>".pickRestart({
A: "bb3 ~ eb4 eb3 bb3 eb4 ~ bb3 eb4 eb3 bb3 eb4",
B: "eb3@2 bb3@2 eb4@2 eb3@2 bb3@2 eb4@2 ~@2 bb3@2 eb4@2 eb3@2 bb3@2 eb4 ~",
C: "b3 ~ eb4 eb3 b3 eb4 ~ b3 eb4 ~ b3 eb4", D: "~@2 b3@2 eb4@2 ~@2 b3@2 eb4@2 ~@2 b3@2 eb4@2 ~@2 b3@2 eb4 ~",
})).s("gm_clavinet").gain(0.15)
// other · clavinet · soft notes
const clavinet_soft = note("<~@29 A B C D A B C D A B C D ~@68>".pickRestart({
A: "~@2 eb3@2 ~@8 eb3@3 ~@9", B: "~@6 eb3 ~@5", C: "~@2 eb3@2 ~@8 eb3@3 ~@3 eb3@3 ~@3",
D: "eb3 ~@2 eb3 ~@2 eb3 ~@2 eb3 ~@2",
})).s("gm_clavinet").gain(0.11)
// other · piano · "A.PIANO 1"
const piano_2 = note("<~@29 A B C B C B D B A B C E ~@68>".pickRestart({
A: "~@3 ab2@2 ~ ab2@2 ~ ab2@2 ~", B: "ab2@4 ~@2 ab2@5 ~ ab2@4 ~@2 ab2@5 ~", C: "ab2@2 ~ ab2@2 ~ ab2@2 ~ ab2@2 ~",
D: "ab2@2 bb2 gb2@2 ~ ab2@2 ~ ab2@2 ~", E: "ab2@4 ~@2 ab2@5 ~ ab2@4 ~@8",
})).s("gm_piano").gain(0.56)
// … 73 more lines
More by Foreigner
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.