KeyD♭ majorTempo67 bpm
0:00/0:00
// (Everything I Do) I Do It For You — Bryan Adams
// 67 bpm, 4/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 107 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(67/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
const piano = note(`<
A B@5 C@4 D@8 E F G H I J K L M N O@2 P Q R S T U V W X Y Z AA AB AC AD@2 AE AF AG AH AE AF AI AJ AK AL AK AM AN AO AP
AQ@2 AR@6 ~ AS AT AU AV AW ~ AX AY ~ AZ BA BB BC@2 ~ AY ~ AZ BA BD BC@2 ~ AY ~ AZ BA BD BE@2 ~ AY ~ AZ BF ~@2
>`.pickRestart({
A: "~@47 c5, ~@23 bb4",
B: "[ab4@2 ~@27 ab5 ~ db5 ~@32 [ab3,db4,f4]@4 [ab3,db4]@4 [ab3,db4]@4 ~@3 f4, [db3,f3]@16 [ab4,eb5]@2 db4@2 [eb4,ab4]@2 db4@2 [eb4,ab4]@2 db4@2 c5@16 db5 eb5 f5@26 eb4@6 [db4,gb4]@2, f5@7 gb5@7 eb4@2 [bb4,db5] gb4 [bb4,db5] gb4 [bb4,db5] gb4 bb4@2 [ab2,eb3,eb5]@16, db5@2 db5@2 db5@2 db5@2 [ab2,eb3]@6 eb5 ab5@8 gb4 ab4 db4 [eb4,ab4] db4 [eb4,ab4]@6 f4@4 ab3@2, ~@2 ab4@4 ab4@4 ab4@2 gb5 ab5 ab4 f5@13 ab4@2 db4@2 [gb2,db3]@15 db5@29 [db4,gb4] ab4@3]/5", // Db Db5 Db Ab5 Gb5 Bbm Ab5 Gb5
C: "[[ab3,db4,eb4]@4 [ab3,db4,eb4]@3 db4 [ab3,eb4]@4 ~ ab4 ~@2 [gb3,bb3]@4 ~@4 bb3@4 ~@2 db4@2 db4@2 ~@6 [ab3,c4]@4 [ab3,f4]@3 ~@3 db4@2 ~@6 ab3@2 [ab3,eb4]@3 db4, ~@4 db4@3 ab4@15 c4@10, ~@6 [ab3,eb4]@10 [ab3,eb4] db4 eb4 db4@5 f4@8, ~@15 db4@5 bb3@2 c4@18 eb4@7 gb4@17, ~@20 gb3@4 db4@4 [gb3,bb3]@20 [f3,ab3] eb4@3 [f3,db4]@2 ab3@2 [f3,db4]@8]/4", // Absus4 Ab5 Gb Ab Db Ab5 Gb Fm …
D: "[ab3 ab3@3 ~@10 ab3 ~@9 [bb3,db4]@4 ~@4 ab3@4 ~@2 eb4@2 ~@8 [bb3,eb4,gb4]@4 [bb3,eb4,gb4]@4 ~@4 f4@2 ~@18 [bb3,eb4,gb4]@4 [bb3,eb4,gb4]@4 ~@4 f4@2 ~@13 ab3 f4@2 ~@17 f4, bb3@12 eb3@16 db4@28 gb4@8 eb4@2 bb3@2 eb4@2 bb3@2 eb4@2 bb3@2 ab3@16 db4@2 f4@2 gb3@24 db4@2 ab3@2 [db4,gb4] ab4 gb4@2, f3@2 [f3,ab3,eb4]@2 f3@10 [bb3,gb4]@4 ab3@2 [ab3,c4]@10 db4 f4 gb3@12 eb4 bb4@7 eb4@2 ab3 f4 [f3,db4] ab3 [f3,db4] ab3 f3@4, ~@6 db4@2 ab3@2 db4@2 c4@3 ab3 bb3@4 c4@10 eb4@2 f4@4 eb3@24 ab4@18 f4@10 gb4@8 eb4@2 bb3@2 eb4@2 bb3@26, ~@8 eb4@8 gb3@24 eb4@6 f4@10 [bb3,eb4]@2 bb4@18 f4 db4@11 bb3@4 ab4@19 eb4@17]/8", // Bbm Ebm Gb5 Fm7 Ebm Ab Db Eb5
E: "~@8 eb4@3 ab3 [ab3,f4]@4, ab3@29 ~@19, eb4!2 ~@2, ~@6 db4@12 db4@11 ~@19", // Db
F: "db3@12 ~@3 db3, [ab3,db4]@13 ab3@3, ~@6 db3 db4", G: "[ab3,db4]@12 ab3@2 bb3 ab3",
H: "[ab3,db4,f4]@4 [ab3,db4]@4 [ab3,db4]@4 gb4 ab4 gb4 f4, ~@4 f4 ~@3 eb4 ~@3 ab3@4, ~@6 db4!2", // Db Db5
I: "[ab3,db4,eb4]@4 [ab3,db4,eb4]@3 db4 [ab3,db4,eb4]@4 ~ ab4!2 db4, ~@3 [ab3,eb4]", // Absus4 Ab5
J: "[gb3,bb3]@2 [gb3,bb3] c4 [bb3,db4]@2 ~ db4, ~@3 [gb3,bb3]", // Gb Bbm Gb
K: "[db4,eb4]@2 ~@2 eb4@2 db4@2 [ab3,c4]@4 [ab3,c4,f4]@3 gb4, ab3 ~, ~ db4@2 ~ eb4 ~@3", // Dbsus2 Ab Fm
L: "f4 eb4 db4@2 f3@2 ab3@2 f3@2 ab3@2 [ab3,eb4]@3 db4, [f3,ab3] db4!2 ~", // Ab5 Fm
M: "[ab3,bb3] ab3@3 eb4@2 db4@2 eb4@2 db4@2 ~@2 ab3!2, f3 [f3,ab3]!2 [eb3,c4]", // Absus2 Fm Cm
N: "bb3@2 c4@2 [bb3,db4]@2 gb4 eb4, gb3@2 ~ [bb3,db4]", // Bbm
O: "[[ab3,f4]@2 ~ eb4 [ab3,c4,eb4]@3 f4 [bb3,eb4,gb4]@2 [bb3,eb4,gb4]@2 ~ bb4 f4!2, ~ eb3@4 ~@3, ~ ab3 ~@4 [bb3,eb4,gb4] [db4,ab4]]/2", // Db Ab Ebm Db5
P: "eb4@2 bb3@2 eb4@2 bb3@2 eb4@2 bb3@2 f4 db4 f4@2, gb3@2 ~ ab3",
Q: "[bb3,eb4,gb4]@2 [bb3,eb4,gb4]@2 ~ bb4 f4!2, ~@2 [bb3,eb4,gb4] [db4,ab4]", // Ebm Db5
R: "eb4@2 bb3@2 eb4@2 bb3@2 eb4@3 ab3 f4@2 f4 eb4, gb3@2 ~ ab3",
S: "db4@2 ab3@2 db4@2 ab3@2 db4@2 ab3@2 gb4 ab4 gb4 f4, f3!2 f3@2, ~@3 db4",
T: "eb4@2 db4@2 eb4@2 db4@2 eb4@3 ab3 [ab3,f4]@4, ab3 ~", U: "db4 ab3 db4 ab3 db4 ab3 [gb3,ab3,db4]@2, [ab2,f3]",
V: "db4 ab3 db4 ab3 db4@2 [f3,ab3,db4]@2, ab2, f3@3 ~, ~ db3", W: "[gb3,b3,eb4] [gb3,b3,eb4]@2 [gb3,b3,eb4]",
X: "[ab3,b3,e4]@4 [ab3,e4] db4 ~@6 e4@2 gb4@2, ~@3 [ab3,b3]@4 ~", // E Dbm Abm
Y: "[b3,eb4,gb4]@2 e4 eb4 [b3,eb4]@8 [bb3,db4,e4]@2 gb4@2", Z: "[bb3,db4,gb4]@2 e4 db4 [bb3,db4]@8 [bb3,db4,gb4]@4",
AA: "[ab3,db4,gb4] f4@3 [ab3,f4] eb4 db4@6 [ab3,db4,f4]@2 ab4@2", // Dbsus4 Db
AB: "[ab3,eb4,ab4]@2 gb4 eb4 [ab3,c4,eb4]@8 [c4,eb4,ab4]@3 ab4", // Ab5 Ab
AC: "[bb3,eb4,ab4]@2 g4@3 f4 eb4@2 [bb3,eb4,g4]@4 [eb4,g4,bb4]@3 c5", // Ebsus4 Eb
AD: "[bb4@2 ab4@4 bb4@4 ab4@14 eb4@3 f4@3 bb3@2, [c4,eb4]@3 [db4,eb4]@9 ~@4]/2", // Cm Dbsus2
AE: "[ab3,bb3,db4]@11 [ab3,db4]@2 gb3 [ab3,db4]@2", AF: "[ab3,bb3,db4]@8 [ab3,eb4]@3 [ab3,f4]@3 [gb3,bb3]@2",
AG: "[f3,ab3,db4]@12 f3 ab3 db4@2", AH: "[f3,ab3,db4]@8 [ab3,db4,eb4]@3 [ab3,db4,f4]@3 [ab3,bb3]@2",
AI: "[f3,ab3,db4]@11 f3 eb4 f3 ab3@2", AJ: "[f3,ab3,db4]@8 [db4,f4,ab4]@4 [db4,f4,ab4] [db4,f4,ab4]@3",
AK: "gb4@4 gb4@3 f4 [bb3,eb4,gb4]@2 bb4@2 ab4@2 f4@2, [bb3,eb4] ~", // Ebm Eb5
AL: "[ab3,c4,eb4]@6 [ab3,db4,eb4]@4 [c4,eb4]@2 [c4,eb4,ab4] [c4,eb4,ab4]@3", // Ab Absus4 Cm Ab
AM: "[ab3,c4,eb4]@8 ~@3 [ab3,c4,gb4]@2 gb4 gb4@2", AN: "gb4 f4@3 f4@2 f4@2 [db4,f4]@3 [db4,gb4]@3 [db4,f4,ab4]@2",
AO: "ab4 f4 eb4@2 eb4@2 eb4@6 [db4,eb4,ab4]@2 c4 bb4, c4@3 ~", AP: "ab4@4 gb4@2 gb4@5 ab4@3 gb4@2, [bb3,db4]",
AQ: "[gb4@9 ~@9 a4@74 ~@4, [a3,db4]@23 ~, ~@9 ab4@83 ~@4]/2", // A
AR: "[~@72 ab3@6 ~@46 gb3@6 ~ eb4@25 ab3@4 ~@74 eb4@10 f4@10 bb3@6 ~@28, ~ f3@52 [db4,eb4]@6 ab3@7 db4@13 c4@81 [ab3,db4,f4]@86 ~@42, ~ db4@39 db4@6 gb4@59 [bb3,db4]@6 gb3@7 db4@38 eb4@78 ~@54, ~ f4@13 f4@13 f4@13 gb4@3 ab4@36 ab3@77 f3@90 ~@42, ~@7 ab3@13 ab3@19 ~ ab3@9 f4@69 bb3@13 [gb3,bb3]@51 db2@64 ~@42]/6", // Dbsus2 Db Bbm Gb
AS: "~@5 ab3@6 ~@3 ab3@4 ~@30", AT: "~@11 gb3@3 ~@3 db4@3 ~@28", AU: "~@5 f4@8 ~@4 db4@3 ~@28", AV: "~@14 ab3@5 ~@29",
AW: "~@5 ab3@6 ~@3 ab3@3 ~@31", AX: "~@14 ab3@3 ~@31", AY: "~@17 db4@26 ~@5", AZ: "~@17 eb5@3 ~@28",
BA: "~@5 ab4@5 ~@16 db4@2 ~@20", BB: "~@41 db4 ~@5 db4", BC: "[~@5 db4 ~@11 bb4@2 ~@19 f3@17 ~@22 f4@9 ~@10]/2",
BD: "~@47 db4", BE: "[~@5 db4 ~@11 bb4@2 ~@19 f3@16 ~@23 f4@9 ~@10]/2", BF: "~@5 ab4@5 ~@16 db4 ~@21",
})).s("gm_piano").gain(0.58).pan(0.4)
// chords · piano · soft notes
const piano_soft = note("<~@68 A@3 B@3 C@5 D@8 E@8 F@8 G@3 ~>".pickRestart({
A: "[~@20 [gb3,bb3,db4]@15 ~@3 [gb3,bb3,db4]@24 bb3@2 ~ db4@3 [ab3,bb3,db4]@21 ~@3 [gb3,ab3,db4,eb4]@8 ~ [db4,f4]@9 gb3@4 ~@2 [f3,ab3]@28]/3", // Gb Bbm7 Gbsus2 Db Fm
B: "[~@8 f3@3 ~@3 ab3@3 ~@3 [f3,ab3]@19 ~@5 [gb3,ab3]@7 ~@2 [ab3,db4]@6 ~@3 bb3@3 ~@3 [gb3,bb3,db4]@34 ~@2 ab3@3 bb3@3 ~@6 [gb3,bb3]@20 ~@4 [gb3,ab3,db4,eb4]@4, ~@44 eb4@9 ~@51 db4@13 ~@27]/3", // Fm Gbsus2 Db5 Gb Gbsus2
C: "[~@5 [db4,f4]@5 ~@4 gb3@3 ~@3 [f3,ab3]@36 [eb3,ab3]@2 ~@10 [f3,ab3]@19 ~@5 [ab3,db4,ab4]@8 ~ [ab3,db4,gb4]@7 ~@2 [db4,gb4]@3 ~@3 [db4,gb4]@23 ~@4 [db4,db5]@4 ~@2 [db4,db5]@9 bb3@5 ~@2 bb3@21 ~@2 [ab3,eb4,ab4]@7 ~@2 [ab3,f4,ab4]@8 ~ [gb3,ab3]@3 ~@3 [f3,ab3]@28, ~@58 bb3@21 ~@3 gb3@10 ~@28]/5", // Db Fm Ab5 Fm Db5 Dbsus4 Gb5 Db …
D: "[~@5 [f4,ab4,f5]@6 ~@3 gb4@3 ~@3 [f4,db5]@4 ~@2 f4@3 [db4,f4,ab4]@9 ~@6 [eb4,ab4]@8 ~ ab3@8 ~ [db4,ab4,db5]@5 ~ [db4,bb4]@3 ~@6 db4@14 ~ ab3@4 ~@4 bb3@4 ab3@3 bb3@2 ~ db4@5 ~ db4@16 ~@8 db4 ~@17 db4@4 ~@2 [db4,f4,ab4]@4 ~@2 ab3@3 db4@3 db4@3 f3@2 ~ [ab3,db4]@17 ~ f3@3 gb3@2 ~ [gb3,ab3,eb4]@4 ~@2 [gb3,eb4]@2 ~ [ab3,f4]@5 ~ ab3@8 ~ [ab3,f4]@9 [bb3,bb4]@3 ~@3 [db4,db5]@5 ~ [eb4,eb5]@3 [f4,f5]@6 [db4,gb4]@23 ~@4 [db4,db5]@4 ~@2 [db4,db5]@9 bb3@5 ~@2 bb3@21 ~@2 [ab3,eb4,ab4]@7 ~@2 [ab3,f4,ab4]@8 ~ [gb3,ab3]@3 ~@3 [f3,ab3]@28, ~@41 ab3@11 ~ db4@3 ~@12 gb4@5 ~@19 db4@18 ~@6 [gb3,bb3]@42 ab4@2 ~@100 bb3@42 ~@6 gb3@20 ~@56]/8", // Fm Db Ab5 Db5 Gb Db Db5 Ab7 …
E: "[~@5 [f4,ab4,f5]@6 ~@3 gb4@3 ~@3 [f4,db5]@4 ~@2 f4@3 [db4,f4,ab4]@9 ~@6 [eb4,ab4]@8 ~ ab3@8 ~ [db4,ab4,db5]@5 ~ [db4,bb4]@3 ~@6 db4@14 ~ ab3@4 ~@4 bb3@4 ab3@3 bb3@2 ~ db4@5 ~ db4@16 ~@5 db4 ~@2 db4 ~@17 db4@4 ~@2 [db4,f4,ab4]@4 ~@2 ab3@3 db4@3 db4@3 f3@2 ~ [ab3,db4]@17 ~ f3@3 gb3@2 ~ [gb3,ab3,eb4]@4 ~@2 [gb3,eb4]@2 ~ [ab3,f4]@5 ~ ab3@8 ~ [ab3,f4]@9 [bb3,bb4]@3 ~@3 [db4,db5]@5 ~ [eb4,eb5]@3 [f4,f5]@6 [db4,gb4]@23 ~@4 [db4,db5]@3 ~@3 [db4,db5]@9 bb3@5 ~@2 bb3@21 ~@2 [ab3,eb4,ab4]@7 ~@2 [ab3,f4,ab4]@8 ~ [gb3,ab3]@3 ~@3 [f3,ab3]@28, ~@41 ab3@11 ~ db4@3 ~@12 gb4@5 ~@19 db4@18 ~@6 [gb3,bb3]@42 ab4@2 ~@100 bb3@42 ~@6 gb3@20 ~@56]/8", // Fm Db Ab5 Db5 Gb Db Db5 Ab7 …
F: "[~@5 [f4,ab4,f5]@6 ~@3 gb4@3 ~@3 [f4,db5]@4 ~@2 f4@3 [db4,f4,ab4]@9 ~@6 [eb4,ab4]@9 ab3@8 ~ [db4,ab4,db5]@5 ~ [db4,gb4,bb4]@4 ~@5 db4@14 ~ ab3@4 ~@4 bb3@4 ab3@3 bb3@2 ~ db4@5 ~ db4@16 ~@5 db4 ~@2 db4 ~@17 db4@4 ~@2 [db4,f4,ab4]@4 ~@2 ab3@3 db4@3 db4@3 f3@2 ~ [ab3,db4]@16 ~@2 f3@3 gb3@2 ~ [gb3,ab3,eb4]@4 ~@2 [gb3,eb4]@2 ~ [ab3,f4]@5 ~ ab3@8 ~ [ab3,f4]@9 [bb3,bb4]@3 ~@3 [db4,db5]@5 ~ [eb4,eb5]@3 [f4,f5]@6 [db4,gb4]@23 ~@4 [db4,db5]@3 ~@3 [db4,db5]@9 bb3@5 ~@2 bb3@21 ~@2 [ab3,eb4,ab4]@7 ~@2 [ab3,f4,ab4]@8 ~ [gb3,ab3]@3 ~@3 [f3,ab3]@28, ~@41 ab3@10 ~@2 db4@3 ~@36 db4@18 ~@6 [gb3,bb3]@42 ab4@2 ~@100 bb3@42 ~@6 gb3@20 ~@56]/8", // Fm Db Ab5 Db5 Gb Db Db5 Ab7 …
G: "[~@5 [f4,ab4,f5]@6 ~@3 gb4@3 ~@3 [f4,db5]@4 ~@2 f4@3 [db4,f4,ab4]@9 ~@6 [eb4,ab4]@8 ~ ab3@8 ~ [db4,ab4,db5]@5 ~ [db4,bb4]@3 ~@6 db4@14 ~ ab3@4 ~@4 bb3@4 ab3@3 bb3@3 db4@5 ~@29, ~@41 ab3@10 ~@2 db4@3 ~@12 gb4@5 ~@19 db4@18 ~@34]/3", // Fm Db Ab5 Db5 Gb
})).s("gm_piano").gain(0.29).pan(0.4)
// chords · piano
const piano_2 = note("<~ A@5 B@4 C@5 D@8 ~@40 E@5 F@8 G@4 H@8 I@8 J@8 K@2 ~>".pickRestart({
A: "[~@32 db2@3 db2 db2@4, db2@2 gb1@2 ~, ~ ab1@2 ab1@2]/5",
B: "[db2@6 db2@2 ~@8 gb2@6 gb2@2 ~@8 ab2@6 ab2@2 ab2@3 ab2 ~@4 db2@6 db2@2 db2@8, ~@2 db2@8 ~ ab2@5, ~@3 gb2@4 ~]/4",
C: "[db2@6 db2@2 ~@8 gb2@6 gb2@2 ~@8 ab2@6 ab2@2 ab2@3 ab2 ab2@2 ~@2 eb2@2 ~@14 eb2@6 eb2@2 eb2@8, ~@4 db2@16 ~@3 ab2@16 ~, ~@6 gb2@8 ~ db2@5, ~@25 eb2@7 ~@8]/5",
D: "[eb2 ~@7 eb2@3 eb2 eb2@2 ~@2 db2@3 db2 db2@3 ~ ab2@3 ab2 ~@4 db2@3 db2 db2@2 db2@2 db2@3 db2 db2@16 ~@4, ~ eb2@7 ~@6 eb2@16 ~@34, ~@6 db2@10 ~@7 db2@9 ~@32, ~@15 bb1@16 ~@33, ~@7 ab2@4 ~@5]/8",
E: "[~ ab2@52 ~@52 db3@51 [db2,db3]@84, ~ f3@96 ~@8 gb2@96 ~@39, ~@53 [ab2,eb3]@96 ~@91]/5", // Db Ab5
F: "[~@20 gb2@14 ~@4 gb2@2 ~@16 db3 ~@2 db3@4 ~@5 gb2@18 db3 ~@5 gb2@20 ~@4 db2@15 ~@3 db2@2 ~@16 ab2@2 ~ bb2@7 ~@2 db2@16 ~@2 db2@2 ~@4 db2@19 ~@5 [gb2,db3]@16 ~@2 gb2@2 ~@4 [gb2,db3]@21 ~@3 gb2@12 db3@5 ~ gb2 ~@5 gb2@22 ~@2 db2@16 ~@2 db2@2 ~@13 db3@13 ~@2 db3@18 db2@2 ~@4 [db2,db3]@4, ~@44 gb2@21 ~@24 db3@25 ~@2 db3@35 ~@13 db3@45 ~@21 db3 ~@47 db3@29 ~ db3@31 ~@45, ~@140 db2@21 ~@97 gb1@18 ~@56 db2@22 ~@2 db2@15 ~@13]/8", // Gb5 Db
G: "[~@5 [db2,db3]@6 ~@3 db2@4 ~@2 gb2@15 ~@3 gb2@2 ~@4 gb2@20 ~@4 db3@12 ~@6 db3@3 gb3@23 ~@4 db2@16 ~@2 db2@2 ~@4 db2@20 ~@4 [db2,db3]@20 ~@4 [db2,db3]@4, ~@14 db3@2 ~@4 db3@44 ~@4 gb2@9 ~@3 gb2@27 ~@9 db3@45 ~@31]/4", // Db
H: "[~@5 [db2,db3]@6 ~@3 [db2,db3]@5 ~ gb3@14 ~@4 gb3@3 ~@3 gb3@23 ~ db3@32 ~ gb3@3 ~@3 gb3@9 db2@19 ~@5 db2@24 db3@20 ~@4 db3@22 ~@2 gb2@15 ~@3 gb2@2 ~@4 gb2@20 ~@4 db3@12 ~@6 db3@3 gb3@23 ~@4 db2@16 ~@2 db2@2 ~@4 db2@20 ~@4 [db2,db3]@20 ~@4 [db2,db3]@4, ~@20 gb2@45 ~@3 gb2@45 ~@3 db3@44 ~@25 db2@27 db3@44 ~@4 gb2@9 ~@3 gb2@27 ~@9 db3@45 ~@31]/8", // Db
I: "[~@5 [db2,db3]@6 ~@3 [db2,db3]@5 ~ gb3@14 ~@4 gb3@3 ~@3 gb3@22 ~@2 db3@32 ~ gb3@3 ~@3 gb3@9 db2@19 ~@5 db2@24 db3@20 ~@4 db3@22 ~@2 gb2@15 ~@3 gb2@2 ~@4 gb2@20 ~@4 db3@12 ~@6 db3@3 gb3@23 ~@4 db2@16 ~@2 db2@2 ~@4 db2@20 ~@4 [db2,db3]@20 ~@4 [db2,db3]@4, ~@20 gb2@45 ~@3 gb2@45 ~@3 db3@44 ~@25 db2@27 db3@44 ~@4 gb2@9 ~@3 gb2@27 ~@9 db3@45 ~@31]/8", // Db
J: "[~@5 [db2,db3]@7 ~@2 [db2,db3]@5 ~ gb3@13 ~@5 gb3@3 ~@3 gb3@22 ~@2 db3@32 ~ gb3@3 ~@3 gb3@9 db2@19 ~@5 db2@24 db3@20 ~@4 db3@22 ~@2 gb2@15 ~@3 gb2@2 ~@4 gb2@20 ~@4 db3@12 ~@6 db3@3 gb3@23 ~@4 db2@16 ~@2 db2@2 ~@4 db2@20 ~@4 [db2,db3]@20 ~@4 [db2,db3]@4, ~@20 gb2@45 ~@3 gb2@45 ~@3 db3@44 ~@25 db2@27 db3@44 ~@4 gb2@9 ~@3 gb2@27 ~@9 db3@45 ~@31]/8", // Db
K: "[~@5 [db2,db3]@7 ~@2 [db2,db3]@5 ~ gb3@13 ~@5 gb3@3 ~@3 gb3@22 ~@30, ~@20 gb2@45 ~@31]/2", // Db
})).s("gm_piano").gain(0.2)
// chords · pad metallic · "Metal Pad"
const pad_metallic = note("<~ A B C B ~@12 A B A@2 ~@15 D ~@70>".pickRestart({
A: "[db3,f3]", B: "[ab2,eb3]", C: "[gb2,db3]", D: "~@3 db5",
})).s("gm_pad_metallic").gain(0.62)
// bass · fretless bass
const bass = note(`<
~@20 A B@2 C D B@2 C E F G F H I J K L M N O P Q R S T@2 C U V W C U X Y Z AA Z AB AC AD AE@3 ~@5 AF@8 AG@8 AH@16 AI@4
AJ@2 ~
>`.pickRestart({
A: "~@3 ab2", B: "db2@3 db2 db2@4", C: "gb2@3 gb2 gb2@4", D: "ab2@6 ab2@2 ab2@3 ab2 ab2@4",
E: "ab2@6 ab2@2 ab2@3 ab2 ab2@2 ab2@2", F: "eb2 ~ eb2@10 db2@4", G: "eb2@3 eb2 eb2@4", H: "eb2@3 eb2 eb2@2 eb2 bb1",
I: "db2@3 db2 db2@3 db2", J: "ab2@3 ab2 ab2@4", K: "db2@6 db2@2 db2@7 ab2", L: "db2@6 db2@2 db2@3 db2 ab2 db2@3",
M: "b1@3 b1 b1@2 b1@2", N: "e2@6 e2@2 e2@3 b1 e2 b1 e2 gb2", O: "b2@3 b2 b2@2 b2@2",
P: "gb2@6 gb2@2 gb2@3 db2 gb2 db2 gb2@2", Q: "db2@6 db2@2 db2@3 db2 f2@2 ab2@2", R: "ab2@3 ab2 ab2@2 c2 db2",
S: "eb2@3 eb2 eb2@2 eb2@2", T: "[ab2@3 ab2@13]/2", U: "gb2@3 gb2 gb2@3 ab2", V: "db2@3 db2 db2@3 ab2",
W: "db2@6 db2@2 db2@3 db2@3 db2@2", X: "db2@6 db2@2 db2@6 bb2 ab2", Y: "db2@6 bb2 ab2 db2@6 f2@2",
Z: "eb2@6 eb2@2 eb2@4 eb3 bb2 eb3@2", AA: "ab2@6 ab2@2 ab2@3 eb2 ab2@4", AB: "ab2@6 ab2@2 ab2@6 ab2 bb2",
AC: "db2@6 db2@2 db2@3 db2@3 db2 eb2", AD: "ab2@3 ab2 ab2@2 ab2@2",
AE: "[gb2@3 gb2 gb2@2 gb2 ~ gb2@16, ~@7 db2@16 ~]/3",
AF: "[~@20 gb1@16 ~@2 gb1@2 ~@4 gb1@17 ~@4 gb1 ~@2 gb1@15 ~@3 gb1@2 ~@4 gb1@15 ab1@3 ~@6 db2@14 ~@4 db2@2 ~@4 db2@18 bb1@2 ~ db2 ~@2 db2@13 ~@5 db2@2 ~@4 db2@12 ~@6 db2@3 ~@3 gb1@15 ~@3 gb1@2 ~@4 gb1@17 ~@4 gb1 ~@2 gb1@15 ~@3 gb1 ~@5 gb1@7 ~@2 ab1@6 ~@3 ab1@3 bb1@2 ~ db2@15 ~@3 db2@2 ~@4 db2@18 ab1@2 ~@4 db2@14 ~@4 db2@2 ~@8]/8",
AG: "[~@5 ab2@8 ~ eb2@3 ~@3 gb1@14 ~@4 gb1@2 ~@4 gb1@18 ~@6 gb1@13 ~@5 gb1@2 ~@4 gb1@9 bb1@8 ~ db2@6 ~@18 db2@3 ~@3 db2@18 ab1@3 ~@3 db2@18 ~@6 db2@7 ~@2 db2@3 eb2@6 f2@4 ~@2 gb1@13 ~@5 gb1@2 ~@4 gb1@17 ~@4 gb1 ~@2 gb1@17 ~ gb1@2 ~@4 gb1@9 ab1@8 ~ bb1@6 db2@15 ~@3 db2@2 ~@4 db2@18 ab1@3 bb1@2 ~ db2@8 ~ db2@7 ~@5 db2@5 ~@2]/8",
AH: "[~@5 eb2@5 ~@7 gb1@3 ~@18 gb1@2 ~@4 gb1@18 ~@6 gb1@13 ~@5 gb1@2 ~@4 gb1@9 bb1@8 ~ db2@6 ~@18 db2@3 ~@3 db2@18 ab1@3 ~@3 db2@18 ~@6 db2@7 ~@2 db2@3 eb2@6 f2@5 ~ gb1@13 ~@5 gb1@2 ~@4 gb1@17 ~@4 gb1 ~@2 gb1@17 ~ gb1@2 ~@4 gb1@9 ab1@8 ~ bb1@6 db2@15 ~@3 db2@2 ~@4 db2@18 ab1@3 bb1@2 ~ db2@8 ~ db2@7 ~@5 db2@4 ~@3]/8",
AI: "[~@5 eb2@5 ~@7 gb1@3 ~@18 gb1@2 ~@4 gb1@18 ~@6 gb1@13 ~@5 gb1@2 ~@4 gb1@9 bb1@8 ~ db2@6 db2 ~@17 db2@3 ~@3 db2@18 ab1@3 ~@3 db2@18 ~@6 db2@4]/4",
AJ: "[~@5 db2@3 eb2@6 f2@5 ~ gb1@13 ~@5 gb1@2 ~@4 gb1@17 ~@4 gb1 ~@30]/2",
})).s("gm_fretless_bass").gain(0.49)
// bass · fretless bass · soft notes
const bass_soft = note("<~@70 A ~ B ~@2 C@2 D ~ E ~@4 F D ~ E ~@4 F D ~ E ~@4 F G ~ E ~@3>".pickRestart({
A: "~@14 bb1@3 db2 ~@30", B: "~@8 bb1@3 ~@37", C: "[~@17 bb1@2 ~@25 db3@7 ~@45]/2", D: "~@14 eb2@3 db2@3 ~@28",
E: "~@17 bb1@2 ~@22 ab1@3 ~@4", F: "~@11 f2@5 ~@32", G: "~@14 eb2@3 db2@4 ~@27",
})).s("gm_fretless_bass").gain(0.28)
// chords · electric guitar clean · "Elec. Guitar (clean)"
const electric_guitar_clean = note(`<
~@21 A@2 B C A@2 B D E F G H I J K L M N O P Q R S T@2 U V W X U V Y Z E AA G AA AB AC AD AE@2 ~@5 AF@6 AG@6 AH@8
AI@16 AJ@3
>`.pickRestart({
A: "[db2,ab3,db4,f4]", B: "[gb2,bb3,db4,gb4]", C: "[ab2,ab3,eb4] c4", D: "~@3 eb4 eb4@4, f4 ~",
E: "bb3@5 eb3 ~ eb4 eb4@8, [gb3,eb4] ~, ~@3 bb3 ~@4", // Ebm
F: "~@18 eb3@3 bb3@3 db4@2 ~ eb3@3 ~@3 eb4@15, [gb3,bb3,eb4] gb3, ~@4 [bb3,eb4] bb3@3", // Ebm Eb5
G: "bb3@5 eb3 ~ eb4 [gb3,bb3,eb4]@8, [gb3,eb4] ~, ~@3 bb3 ~@4", // Ebm
H: "~@6 eb3 bb3 db4 eb3 ~ eb4@5, [gb3,bb3,eb4] gb3, ~@4 [bb3,eb4] bb3@3", I: "[db3,ab3,db4]", J: "[eb3,ab3,c4]",
K: "[f3,bb3,db4]", L: "bb3@3 [f3,bb3,db4], [db3,f4]", M: "[gb3,b3,eb4] [gb3,b3,eb4]@2 [gb3,b3,eb4]",
N: "[ab3,b3,e4]@4 [ab3,e4] db4 ~@6 e4@2 gb4@2, ~@3 [ab3,b3]@4 ~", // E Dbm Abm
O: "[b3,eb4,gb4]@2 e4 eb4 [b3,eb4]@8 [bb3,db4,e4]@2 gb4@2", P: "[bb3,db4,gb4]@2 e4 db4 [bb3,db4]@8 [bb3,db4,gb4]@4",
Q: "[ab3,db4,gb4] f4@3 [ab3,f4] eb4 db4@6 [ab3,db4,f4]@2 ab4@2", // Dbsus4 Db
R: "[ab3,eb4,ab4]@2 gb4 eb4 [ab3,c4,eb4]@8 [c4,eb4,ab4]@3 ab4", // Ab5 Ab
S: "[bb3,eb4,ab4]@2 g4@3 f4 eb4@2 [bb3,eb4,g4]@4 [eb4,g4,bb4]@3 c5", // Ebsus4 Eb
T: "[bb4 ab4@2 bb4@2 ab4@11, [c4,eb4]@3 [db4,eb4]@13]/2", U: "[ab3,bb3,db4]@11 [ab3,db4]@2 gb3 [ab3,db4]@2",
V: "[ab3,bb3,db4]@8 [ab3,eb4]@3 [ab3,f4]@3 [gb3,bb3]@2", W: "[f3,ab3,db4]@12 f3 ab3 db4@2",
X: "[f3,ab3,db4]@8 [ab3,db4,eb4]@3 [ab3,db4,f4]@3 [ab3,bb3]@2", Y: "[f3,ab3,db4]@11 f3 eb4 f3 ab3@2",
Z: "[f3,ab3,db4] ~", AA: "~@18 db3@3 ab3@2 ~ c4@2 ~ db3@3 ~@3 db4@15, [gb3,bb3,eb4] f3, ~@4 [ab3,db4] ab3@3",
AB: "gb4 f4@3 f4@2 f4@2 [db4,f4]@3 [db4,gb4]@3 [db4,f4,ab4]@2", // Db Gb5 Db
AC: "ab4 f4 eb4@2 eb4@2 eb4@6 [db4,eb4,ab4]@2 c4 bb4, c4@3 ~", AD: "ab4@4 gb4@2 gb4@5 ab4@3 gb4@2, [bb3,db4]",
AE: "[gb4@9 ~@9 a4@74 ~@4, [a3,db4]@23 ~, ~@9 ab4@83 ~@4]/2", // A
AF: "[~@26 [db4,gb4,bb4,db5,gb5,bb5]@84 ~@12 [db4,eb4,ab4,db5,eb5,ab5]@87 ~@21 [db4,gb4,bb4,db5,gb5,bb5]@58]/6", // Gb Dbsus2 Gb
AG: "[~@38 [db4,eb4,ab4,db5,eb5,ab5]@77 ~ gb4 gb4@11 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@9 ~@2 ab4 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5,f5]@12 [ab4,db5,f5]@12 [ab4,db5,f5]@12 [ab4,db5]@12 [ab4,db5,f5]@4, ~@116 [db3,db4]@93 ~@3 f5@8 ~@4 f5@8 ~@40 f5@8 ~@8, ~@116 [db5,gb5]@12 ~@83 ab5@77, ~@117 gb3@89 ~@6 [ab3,db4]@76]/6", // Dbsus2 Gb5 Db5 Db Db5 Db Gb5 Db5
AH: "[~@8 [ab4,db5,f5]@8 ~@4 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@8 ~@4 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5,f5]@12 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5,f5]@9 ~@3 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@9 ~@3 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5,f5]@12 [ab4,db5,f5]@12 [ab4,db5,f5]@12 [ab4,db5]@12 [ab4,db5,f5]@4, ~@20 [db3,gb3,db4]@93 ~@3 [ab3,db4,ab5]@93 ~@3 [db3,gb3,db4]@93 ~@3 [ab3,db4,ab5]@76, ~@29 f5@2 ~ f5@2 ~ f5@2 ~@4 f5@2 ~ f5@2 ~ f5@2 ~@28 f5@2 ~ f5@2 ~@10 f5@2 ~@2]/8", // Db Gb5 Db5 Db Db5 Db Gb5 Db5 …
AI: "[~@8 [ab4,db5,f5]@7 ~@5 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@8 ~@4 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5,f5]@12 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5,f5]@9 ~@3 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@9 ~@3 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5,f5]@12 [ab4,db5,f5]@12 [ab4,db5,f5]@12 [ab4,db5]@12 [ab4,db5,f5]@4, ~@20 [db3,gb3,db4]@92 ~@4 [ab3,db4,ab5]@93 ~@3 [db3,gb3,db4]@93 ~@3 [ab3,db4,ab5]@76, ~@29 f5@2 ~ f5@2 ~ f5@2 ~@4 f5@2 ~ f5@2 ~ f5@2 ~@28 f5@2 ~ f5@2 ~@10 f5@2 ~@2]/8", // Db Gb5 Db5 Db Db5 Db Gb5 Db5 …
AJ: "[~@8 [ab4,db5,f5]@7 ~@5 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@56 ~@32, ~@5 [db3,gb3,db4]@23 ~@8]/3", // Db Gb5
})).s("gm_electric_guitar_clean").gain(0.3).pan(0.6)
// chords · distortion guitar
const distortion_guitar = note("<~@36 A B C D E F G H I@3 ~@10 J K L M@2 ~@13 N@6 ~@26>".pickRestart({
A: "~@3 [db2,ab2,db3]", B: "[gb2,b2,eb3]@3 [gb2,b2,eb3]", C: "[e2,b2,e3]@3 [e2,b2,e3]",
D: "[b2,eb3,gb3]@7 [b2,eb3,gb3]", E: "[gb2,db3,gb3]@12 [gb2,db3,gb3]!2 [gb2,db3,gb3]@2",
F: "~@7 [gb2,db3,gb3], [db2,ab2,f3]", G: "[ab2,eb3,ab3]@6 [ab2,eb3,ab3]!2 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@2",
H: "[bb2,eb3,ab3] [bb2,g3] bb2@10 [bb2,eb3,ab3]@4, ~ g3@6 ~", I: "[[ab2,eb3,ab3]@3 [ab2,eb3,ab3]@16 ~@5]/3",
J: "~@8 [ab1,ab2,eb3,ab3]@4 [ab2,eb3,ab3]!2 [ab2,eb3,ab3]@2", // Ab5
K: "[db3,f3]@8 db3@3 [db3,gb3]@3 [db3,f3,ab3]@2, db2, ~@4 f3@3 ~", L: "[eb3,ab3]@3 [eb3,ab3], ab1",
M: "[[db3,gb3] ~, gb1]/2", // Gb5
N: "[~@44 [eb3,eb4]@9 [f3,f4]@9 [bb2,bb3]@6 [db3,gb3,db4,gb4]@93 ~@3 [ab3,db4,ab4]@91 ~@33]/6", // Eb F Bb Gb5 Db5
})).s("gm_distortion_guitar").gain(0.53)
// chords · distortion guitar · soft notes
const distortion_guitar_soft = note("<~@61 A@2 ~@17 B@24 C@3>".pickRestart({
A: "[db3,gb3]/2", // Gb5
B: "[~@20 [db3,gb3,db4,gb4]@92 ~@4 [ab3,db4,ab4]@93 ~@3 [db3,gb3,db4,gb4]@93 ~@3 [ab3,db4,ab4]@76]/8", // Gb5 Db5 Gb5 Db5
C: "[~@5 [db3,gb3,db4,gb4]@23 ~@8]/3", // Gb5
})).s("gm_distortion_guitar").gain(0.27)
// other · pad new age · "New Age Pad"
const pad_new_age = note("<~@37 A B C D E F G ~@63>".pickRestart({
A: "~@6 eb5 gb4 b4 eb5 b4 gb4 b4 gb4 eb5 ~", B: "~@6 eb5 ab4 b4 eb5 b4 ab4 eb5 ab4 b4 ~",
C: "~@18 eb5@3 gb4@3 b4@3 eb5@3 b4@3 gb4@3 eb5@3 gb4@3 b4@2 ~@4",
D: "~@18 eb5@3 gb4@3 bb4@3 eb5@3 db5@3 gb4@3 db5@3 gb4@3 db5@3 gb4@2 ~",
E: "~@18 db5@3 f4@3 ab4@2 ~ f5@3 db5@3 ab4@3 db5@3 ab4@3 db5@3 f4@2 ~",
F: "~@18 c5@3 eb4@3 ab4@3 eb5@3 c5@3 eb4@3 c5@3 ab4@3 c5@3 eb4@2 ~",
G: "~@18 eb5@3 g4@3 bb4@3 g5@3 ~@3 g4@3 eb5@3 bb4@3 eb5@3 g4@2 ~, ~@30 eb5@5 ~@13",
})).s("gm_pad_new_age").gain(0.26)
// chords · drawbar organ · "New Age Pad"
const drawbar_organ = note("<~@68 A@8 B@8 C@16 D@7>".pickRestart({
A: "[~@20 db4@67 ~@5 eb4@9 f4@9 ab3@5 ~ [f3,ab3]@67 ~@5 eb4@9 f4@14 ~ [bb3,db4,gb4]@95 ~ [f3,ab3,db4]@65 ~@7 [eb5,ab5]@4, ~@20 [gb3,bb3]@85 ~@5 gb3@3 ~@75 ab3@19 ~@177]/8", // Fm Gb Db Ab5 Gb
B: "[~@5 f5@9 bb4@4 ~@2 [db4,db5,ab5]@96 [ab4,bb4]@48 [ab4,bb4]@6 ~@3 ab4@36 ~@3 [db4,db5,ab5]@96 [ab4,bb4]@48 [ab4,bb4]@6 ~@3 ab4@19]/8", // Db5 Absus2 Db5 Absus2
C: "[~@20 [db4,db5,ab5]@96 [ab4,bb4]@48 [ab4,bb4]@6 ~@3 ab4@36 ~@3 [db4,db5,ab5]@96 [ab4,bb4]@48 [ab4,bb4]@6 ~@3 ab4@19]/8", // Db5 Absus2 Db5 Absus2
D: "[~@20 [db4,db5,ab5]@96 [ab4,bb4]@48 [ab4,bb4]@6 ~@3 ab4@36 ~@3 [db4,db5,ab5]@96 ~@28]/7", // Db5 Absus2 Db5
})).s("gm_drawbar_organ").gain(0.4)
// other · synth strings 1
const synth_strings_1 = note("<~@12 A@3 B@2 C D E@2 C@2 F G E@2 F H I J I J C J E@2 ~@17 K L K M ~@49>".pickRestart({
A: "[~ gb5@5]/3", B: "gb5/2", C: "f5", D: "~ eb5, ab5", E: "db5", F: "bb4", G: "eb5 c5", H: "f5 eb5 db5 eb5 eb5@4",
I: "gb5 f5", J: "eb5", K: "bb4@7 [bb4,db5], eb5", L: "[ab4,c5]", M: "[ab4,eb5,ab5]",
})).s("gm_synth_strings_1").gain(0.19)
// chords · overdriven guitar
const overdriven_guitar = note("<~@21 A@3 B C D E F ~@17 G@5 H I J ~@53>".pickRestart({
A: "[~@36 [eb4,bb4]@39 ~@3 [db4,ab4]@35 ~@4 [ab3,db4,ab4]@3 [ab3,db4,ab4]@21 ~@3]/3", B: "~@3 [eb4,bb4]@5",
C: "~ [ab3,db4]@3", D: "~ [ab3,eb4,ab4]@7", E: "~ [bb3,db4,gb4]@7", F: "~ [ab3,eb4,ab4]@3",
G: "[~@12 eb5@51 ~@3 eb5@6 db5@3 bb4@48 ~@9 bb4@2 ~ db5@3 ~@3 db5@27 eb5@3 ab5@2 ~@4 ab5@7 ~@2 bb4@3 bb4@9 ~@6 ab5@3 bb5@28 ~@2 db6 ~@2]/5",
H: "bb5 ~@2 bb5@40 ~@5", I: "~@6 bb5@3 ab5@8 ~ eb5@23 ~@7", J: "~@2 f5@2 e5@2 eb5@5 ~ eb5@10 ~@2",
})).s("gm_overdriven_guitar").gain(0.41)
// chords · distortion guitar · "Overdriven Guitar"
const distortion_guitar_2 = note("<~@55 A@2 B ~@11 C@2 D@4 E F@4 G@24 H@3>".pickRestart({
// … 109 more lines
More by Bryan Adams
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.