0:00/0:00
// For Once in My Life — Wonder Stevie
// 107 bpm, 4/4, key A# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 79 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Pick Gtr.
setcpm(107/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 · acoustic bass · "Bass Gtr"
const bass = note(`<
~@7 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF@2 AG@2 AH AI AJ AK AL AM AN AO AP AQ AR AS
AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL@2 BM@4 BN
>`.pickRestart({
A: "~@13 c1 d1 e1", B: "f1 ~ f1@4 ~@2 f1@3 a1 d2 a1 c2@2", C: "f2@4 ~ e2 ~ a1 d2@2 a1@2 gb1@2 a1@2",
D: "g1@5 c2 ~ db2 d2@2 ~ d2@3 f2 gb2", E: "g2@2 ~ g2@2 f2 e2 eb2 d2 d2@2 a1@2 ab1@2 ~",
F: "g1@4 ~ a1 gb1 g1@3 ~ f1@3 gb1@2", G: "g1@4 bb1@2 b1 d2 c2@3 e2 ~ c2 f2 d2",
H: "f2@2 ~ f2 a1@2 bb1@2 c2@2 ~ c2@2 ~@2 e2", I: "f2@4 ~ a1 d2 b1 c2@4 ~ e1 g1 e1",
J: "f1@3 ~ f1@2 ~ f1 f1@2 ~ f1 a1 bb1 b1 c2", K: "f1@4 a1@2 d2@2 c2@2 d2 e2 f2 a1 c2@2",
L: "bb1@6 f2 g2 f2@4 g2@2 a2@2", M: "bb2@5 g2 f2 a1 bb1@2 f1@2 bb1@2 g1@2", N: "a1@6 ~ a1!2 ~ a1@2 c2@2 db2@2",
O: "d2@4 ~ a2@2 a1 a1@2 d2@2 f1 ~ gb1@2", P: "g1@3 bb1 g1@3 bb1 a1@2 ~ a1 a1@4",
Q: "bb1@2 ~@2 e2 ~ eb2 ~ d2@2 ~ g1@2 ~ c2 ~", R: "f2 ~ f2@3 ~@2 f2 a1@2 bb1@2 c2@2 d2 e2",
S: "f2@2 f1@4 ~ a1 gb1 ~ gb1@2 a1@2 gb1@2", T: "g1@4 bb1 d2@2 g2@2 ~ d2@4 b1@2", U: "c2@4 ~ bb1 e1@6 f1@2 gb1@2",
V: "g1@6 ~ bb1 g1@4 f1@2 gb1@2", W: "g1@5 ~ bb1 b1 c2@3 ~ c2 d2 f2 d2",
X: "f2@6 ~ f2 a1@3 ~ bb1@2 [b1,d2] ~, ~@8 f2 ~@7", Y: "c2@2 ~ eb2@2 ~ e2@2 f2@3 ~ d2 c2 f1@2",
Z: "f1@5 ~@2 f1 f1@2 a1@2 d2@2 c2@2", AA: "f2@5 d2 c2 f1 f1@5 a1 bb1 g1", AB: "bb1@6 ~ d2@2 a1 f2 ~ bb2@2 a2@2",
AC: "g2@4 d2@3 a1 g1@2 a1@2 b1@2 g1 d2", AD: "c2@2 ~ c2 c2@3 db2 d2@2 ~ db2 d2@3 gb2",
AE: "g2@2 ~ f2 g2@2 ~ d2 c2@3 ~ c2@2 eb2@2", AF: "[f2@3 ~ f2 ~ eb2@3 ~ ab2@2 ~@2 db2@4 ~@2 db2 ~ c2@8 ~@2]/2",
AG: "[gb2@2 ~@2 gb2 ~ e2@3 ~ a1@3 ~ d2@4 ~@2 d2 ~ db2@4 ~@2 db2 eb2 gb2 eb2]/2",
AH: "gb1@4 ~ bb1@2 ~ b1@2 c2@2 db2@2 f2@2", AI: "gb2@5 f2 e2 eb2 eb2@2 ~ eb2@2 ~ bb2 a2",
AJ: "ab2@3 ~ ab2@2 ~ eb2 eb2@5 g2 gb2 g2", AK: "ab2@2 ~@2 ab2@2 ~ eb2 eb2@2 b1@2 bb1@2 ab1 ~",
AL: "ab1@7 b1@3 eb2@3 ~ bb2@2", AM: "ab2@3 ~ ab2@3 eb2 db2@2 ~ db2!2 eb2 gb2 eb2",
AN: "gb2@5 eb2 c2 db2 db2@5 eb2 f1@2", AO: "gb1@4 bb1@2 b1 c2 db2@3 eb2 db2 eb2 gb2 eb2",
AP: "gb2 ~ gb2@3 ~@2 gb2 gb2@2 ~ bb1 bb1@2 b1 db2", AQ: "gb1@5 ~@2 gb1 gb2@3 gb1!2 ab1 bb1 ab1",
AR: "b1@5 ~@2 eb2@3 e2@2 gb2@2 ab2@2", AS: "b1@4 ~ bb2@3 ab2@2 gb2@2 b1@2 ab1@2",
AT: "bb1@5 ~@2 db2!2 ~ db2@2 f2@2 e2@2", AU: "eb2@5 bb2@2 bb1 bb1@2 bb2@2 eb2@2 a1@2",
AV: "ab1@2 ~@2 ab1@2 ~ ab1 bb1@2 ~ bb1 bb1@3 ~", AW: "b1@2 ~@2 f2 ~ e2 ~ eb2@2 ~ ab1@2 ~ db2 ~",
AX: "gb1 ~ gb1@4 ~ bb1 gb1@2 bb1@2 b1@2 db2@2", AY: "gb1@2 ~@2 gb2 f2@2 gb2 g2@2 ~ g2 eb2@2 g2@2",
AZ: "ab2@3 ~ b1 eb2@2 a1 ab1@2 ~ ab1 b1@2 c2@2", BA: "db2@4 ~ b2 ~ ab2!2 db2!2 ~ db3 f1 gb1 g1",
BB: "ab1 ~ ab1@4 ~ ab1 ab1@2 ~ gb1 gb1@2 g1@2", BC: "ab1@3 b1@3 c2@2 db2@2 ~ db2!2 eb2 gb2 eb2",
BD: "gb2@5 ~@2 gb2 bb1 ~ bb1@2 b1@2 c2@2", BE: "db2@2 ~ db2@2 ~ db2@2 gb1@2 ~ bb1 gb1@2 ~@2",
BF: "gb1 ~ gb1@5 bb1 bb1@2 b1@2 c2@2 db2@2", BG: "gb2@2 ~@2 gb2 db2@3 gb1@2 ~@2 gb1@2 bb1@2",
BH: "b1@5 ~@2 eb2@3 e2@2 gb2@4", BI: "ab2@4 ~ ab2@3 b1 ~ eb2@2 ab1@2 c2@2",
BJ: "db2 ~ db2@3 eb2 db2 d2 eb2 ~ eb2@3 ~ eb2 a1", BK: "ab1@2 ~ ab1 b1@2 c2@2 db2@2 ~ eb2 db2 eb2 gb2 eb2",
BL: "[gb2@2 ~@2 gb2 ~ e2@3 ~ a1@2 ~@2 d2@4 ~@2 d2 ~ db2@4 ~@2 db2 eb2 gb2 eb2]/2",
BM: "[gb2@2 ~@2 gb2 ~ e2@2 ~@2 a1@2 ~@2 d2@4 ~@2 d2 ~ db2@4 ~@2 db2 eb2 gb2 eb2]/2", BN: "~@4 gb2@3 ~@9",
})).s("gm_acoustic_bass").gain(0.5)
// chords · piano · "Ac.Piano"
const piano = note(`<
~@8 A B C D@2 E F G H I J@2 K L M N O P Q R S T U@2 V W X Y Z AA AB@2 AC@2 AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ
AR AS AD AT AU AV AW AX AY AZ BA BB BC@2 BD BE BF BG BH@2 BI@2 BJ
>`.pickRestart({
A: "~@2 [ab4,a4,c5] ~@2 [ab4,c5] [ab4,a4] f4 [ab4,a4] ~@2 [ab4,a4] ~ f4 [ab4,a4] ~, [f3,a3,c4]@7 ~ [f3,a3,db4]@7 ~", // Ab Amaj7 F Faug
B: "a4@3 f4 ab4 [a4,d5] ~@5 [gb4,a4,eb5] ~ [gb4,a4,eb5] ~@2, [f3,a3,d4]@7 ~ [gb3,a3,eb4]@7 ~, ab4 ~@6 [gb4,a4,eb5]@4 ~@5", // D5 Ebdim Dm Ebdim
C: "[f4,g4,bb4,d5]@3 ~ [f4,g4,bb4,d5]@3 ~@3 [gb4,bb4] ~@2 [gb4,bb4] ~@2, [g3,bb3,d4]@7 [gb4,bb4,d5]@2 ~ d5@2 ~ d5@2 ~, ~@8 [gb3,bb3,d4]@7 ~", // Gm7 Gb Gm Gbaug
D: "[[f4,g4,bb4,d5] ~@2 f4 db5 d5 [f4,f5] db5 [db5,d5,f5] [f4,bb4,d5] ~@3 [gb4,bb4,d5,gb5] ~@6 [g4,bb4,d5,g5]@2 ~@4 [gb4,bb4]@2 ~@2 [gb4,bb4] db5, [f3,bb3,d4]@7 ~ [gb3,bb3,d4]@7 [g4,bb4,d5,g5]@3 ~@5 [d5,gb5]@8 ~, ~@16 [g3,bb3,d4]@7 [gb4,bb4]@2 ~@7, ~@24 [gb3,bb3,d4]@7 ~]/2", // Gm7 F Db Bb Gbaug Gm Gb Bb …
E: "[f4,d5,f5]@4 db5 [db5,d5] bb4 f4 ~ [eb4,e4] ~ eb4 g4@2 c4 a3, [f3,bb3,d4]@7 ~ [e3,bb3,c4]@7 ~, ~@9 g4@2 ~ e4 ~@3", // Dm Dmaj7 Emaj7 Bb C7
F: "[c4,a4]@2 ~@2 [c4,ab4,a4] ~@2 [e4,ab4,c5,e5] ~ [e4,ab4,c5,e5]@2 ~@3 [e4,ab4,c5,e5] f4, [f3,a3]@7 ~ [e3,ab3,c4]@8, ab4 ~@15", // F Eaug F Eaug
G: "a4@3 f4 [ab4,c5] [a4,c5]!3 ab4 a4 ~ [ab4,a4]!2 f4 g4 ~, [f3,a3,c4]@15 ~, ab4 ~@7 c5@2 ~ c5@3 ~@2", // Ab Am Amaj7 F
H: "[c4,a4]@2 ~ [ab4,a4] ~ f4 ~ c4 f4 ~ ab4 a4 ~ ab4 a4 ~, [f3,a3]@15 ~, ab4 ~@9 c4@2 ~ c4@2 ~", // F Amaj7 F
I: "~@3 [ab4,a4,db5] ~ [f4,a4,db5] [db4,f4] ~ f4@2 ~ [ab4,a4,db5] ~@2 [ab4,a4,db5] ~, [f3,a3]@7 ~, db4@3 ~@5", // Amaj7 Faug Db Amaj7 F
J: "[[d4,f4,a4,d5]@4 ~ [f4,d5,f5] ~@2 [d5,f5]@2 ~@2 a4 bb4 d5 [d4,g4,bb4,f5]@2 ~@3 [bb4,d5]@2 ~ [f4,g4,bb4,d5] ~ [g4,bb4] f4 ~ [f3,bb3,d4,f4]@3 ~, a3@14 ~ [g3,bb3]@11 ~@6, ~@8 [f4,db5] ~@11 [f4,g4] ~@7 bb4 ~@3]/2", // Dm Gm7 Bb Gm7 Gm Bb Gm Db …
K: "~@3 f4 [ab4,c5] [a4,c5]!3 [ab4,c5] [a4,c5] ~ [f4,ab4,a4,c5] c4 f4 g4 ~, [e3,a3,e4]@15 ~, c4@3 ~, ~@4 g4@3 ~", // Ab Am Ab Am F A5
L: "[f4,ab4,a4,d5] ~ [f4,ab4,a4] f4 ~@2 ab4 [f4,a4,d5] ~ [f4,a4] d4 [f4,a4]@2 ~@3, [f3,a3]@7 ~, d4@5 ~@3, ~ d5 ~@6", // Dm F Dm F
M: "[f3,bb3,d4,f4] [c4,e4,g4], ~@4 g3@3 ~", N: "[a3,d4,f4,a4] ~@3 [ab3,d4] ~ [g3,db4] ~ [gb3,c4]@2 ~ [f3,bb3]@3 c3 ~",
O: "~@4 ab4@2 f4 a4 ~ f4 [db4,f4,a4]!2 ~ [db4,f4,a4] ~@2, [f3,c4]@8 [f3,a3]@7 ~, a3@3 ~ db4 ~@3, ~@4 a4 ~@11", // Dbaug F5 F
P: "a4@2 ~ f4 ab4 a4 ~@2 eb4@2 [eb4,gb4,ab4,a4] ~@2 [eb4,gb4,ab4,a4] ~@2, [f3,a3,d4]@8 [gb3,a3]@7 ~, ab4 ~@15", // Ebdim Dm Gbm
Q: "f4 ~@2 f4 ~ [d5,f5] ~ [d5,f5] ~@2 f4 ~ f4 ~ f4 ~, [f3,bb3,d4]", // Dm Bb
R: "~@2 [c5,eb5,e5] ~@2 [d5,f5] ~@2 bb5 ~@2 f5 ~ e5 ~@2, [e3,bb3,c4]@15 ~", // C Dm C7
S: "[db5,d5,g5] ~@4 [g4,bb4,d5] ~ [gb4,bb4,d5] ~@2 [gb4,bb4,d5] ~@3 [gb4,bb4,d5] ~, [g3,bb3,d4] [gb3,bb3], ~@4 d4@3 ~", // G Gm Gbaug Gm Gb
T: "[bb4,d5]@2 ~@2 [d5,f5] [bb4,d5] ~ g4 ~@2 [g4,bb4,e5] ~@3 [g4,bb4,e5] ~, [f3,bb3,d4]@7 ~ [g3,bb3,e4]@8, [f4,g4] ~@15", // Bb Dm Bb Edim Bb Edim Fsus2
U: "[[e3,a4,c5,e5]@3 ~ [a4,c5,e5]@2 ~ [f4,a4,d5] ~@2 [f4,a4,d5]@2 ~@2 [f4,a4,d5] ~ [g4,bb4,c5,eb5]@3 ~ [g4,bb4,c5,eb5]@2 ~ [f4,a4,c5,eb5] ~@2 [f4,a4,c5,eb5]@2 ~@4, [f3,a3,e4]@8 [a3,d4]@7 g3@6 ~@3 [f3,a3,eb4]@7 ~, ~@8 f3@6 ~ [bb3,eb4]@8 ~@9]/2", // Am Dm Cm7 F7 Fmaj7 D5 F7 Eb5
V: "c4@2 [c4,a4,c5]@3 [a4,c5]!5 a4 [a4,c5]@2 f4 g4 f4, [f3,a3]@15 ~, ~@2 ab4 ~@8 ab4 ~@4", // F Am F
W: "~@2 [ab4,a4,db5] ~ [a4,db5]@2 ~@2 [a4,db5]@3 [a4,db5]@2 f4 ~@2, [f3,a3,db4]@15 ~, ~@4 ab4 ~@3 ab4 ~@2 ab4 ~@4", // Amaj7 A Faug
X: "[d4,f4]@5 ~ f4@2 ~@4 bb4 ~ g4 ~, [f3,a3]@15 ~, db4 ~@15", // Dm F
Y: "f4@2 [f4,b4,d5]@2 ~ [f4,bb4,d5] ~@2 [f4,b4,d5]@2 ~ [b4,d5]@2 ~ g4 ~, [f3,b3,d4]@15 ~, ~@2 bb4 ~@2 b4@2 ~ bb4 ~@2 [f4,bb4] ~@4", // Bdim Bb Bdim Bm Bdim Bb5
Z: "[c2,c4,f4,a4]@3 ~ [c4,a4]@2 ~ [a3,d4,f4]!2 ~ [a3,c4,d4,f4]@2 ~ [c4,d4,f4]@2 ~, [f3,a3]@7 ~ f3@7 ~, ab4 ~@3 c2@3 ~ d2@2 ~@2 d2@3 ~, ~@4 [f4,ab4] ~@2 c4@2 ~@4 a3 ~@2", // F Dm Dm7 F Fm
AA: "[g3,bb3,d4,f4]@2 ~@2 [g2,bb3,d4]@3 [f3,bb3,d4,f4] c2@2 [f3,bb3,d4,f4]@2 c2@2 [f3,bb3,d4,f4] ~, f3@7 ~@9, g2@4 [g3,f4] ~@2 g3@7 ~@2", // Gm7 Gm Bb G7
AB: "[[c4,f4,a4]@2 ~@2 [c4,f4,a4] ~ [bb3,eb4,g4]@3 ~ [f4,bb4]@2 ~@2 [c4,f4,ab4]@4 ~@2 [c4,f4,ab4] ~ [e4,a4]@8 ~@2, ~@11 db4@3 ~@2]/2", // F Eb Bb5 Fm A5
AC: "[[db4,gb4,bb4]@2 ~@2 [db4,bb4] ~ [b3,ab4]@2 ~@2 [gb4,b4]@2 ~@2 [db4,gb4,a4]@4 ~@2 [db4,gb4,a4] ~ [f4,bb4]@7 ~@3, ~@4 gb4@2 e4 ~@15 d4@5 ~@5]/2", // Gb E B5 Gbm Bb5
AD: "[gb3,bb3,db4]@4 [gb3,bb3,db4]@2 ~ [gb3,bb3,d4] [gb3,bb3,d4]@2 [gb3,bb3,d4]@3 ~ [gb3,bb3,d4] ~", // Gb Gbaug
AE: "[gb3,bb3,eb4]@4 [gb3,bb3,eb4]@2 ~ [g3,bb3,db4,e4] [g3,db4,e4]@2 [g3,bb3,db4,e4]@3 ~ [g3,bb3,db4,e4] ~", // Ebm Gdim Dbdim Gdim
AF: "[gb3,ab3,b3,eb4]@2 ~@2 [ab3,eb4]@2 ~ [g3,b3,eb4] [g3,b3,eb4]@6 ~@2, ~@4 [gb3,b3] ~@11", // Abm7 Ab5 Gaug B5
AG: "[ab3,b3,eb4]@4 [gb3,ab3,b3,eb4]@2 ~ [g3,b3,eb4] [g3,b3,eb4]@6 ~@2, gb3 ~@7", // Abm Abm7 Gaug
AH: "[ab3,b3,eb4,ab4]@3 ~ [ab3,b3,eb4,ab4]@2 ~ [g3,b3,eb4,g4] [b3,eb4]@2 [g3,b3,eb4,g4]@3 ~ [g3,b3,eb4,g4] ~, ~@8 g4 ~@7", // Abm Gaug B Gaug
AI: "[b3,eb4,gb4]@4 [gb3,ab3,b3,eb4,gb4]@2 ~ [f3,ab3,b3,f4] [ab3,b3,f4] [f3,ab3,b3,f4]@3 ~@2 [f3,ab3,b3,f4] ~, [gb3,ab3] ~@7", // B Abm7 Fdim Gbsus2
AJ: "[bb3,db4,gb4]@2 ~@2 [bb3,db4,gb4] ~@2 [f3,ab3,a3,db4] [f3,a3,db4]@2 [f3,a3,db4]@3 ~ [f3,a3,db4] ~, gb3@7 ~@3 ab3 ~@5", // Gb Db Faug
AK: "[bb3,db4]@4 [bb3,db4,gb4]@2 ~ [bb3,db4,gb4] ~@2 [bb3,db4,gb4]@3 ~ [bb3,db4,gb4] ~, gb3@7 ~, gb4 ~@7", // Bbm Gb
AL: "[bb3,db4,gb4]@3 ~ [bb3,db4,gb4]@2 ~ [bb3,db4,gb4] ~@2 [bb3,db4,gb4]@3 ~ [bb3,db4,gb4] ~, bb4@15 ~", // Gb
AM: "[bb3,d4,gb4]@4 [bb3,d4,gb4]@2 ~ [bb3,d4,gb4] ~@2 [bb3,d4,gb4]@2 ~@2 [bb3,d4,gb4] ~, bb4@15 ~", // Bbaug
AN: "[eb4,gb4,bb4]@4 [bb3,eb4,gb4,bb4]@2 ~ [bb3,eb4,gb4,bb4] ~@2 [bb3,eb4,gb4,bb4]@2 ~ [bb3,gb4,bb4]@2 ~, bb3@2 ~@11 eb4 ~@2", // Ebm
AO: "[ab3,b3,eb4,ab4]@3 ~ [ab3,b3,eb4,ab4]@2 ~ [ab3,b3,eb4,ab4] ~@2 [ab3,b3,eb4,ab4]@2 gb4@2 [ab3,b3,eb4,ab4] ~", // Abm
AP: "[bb3,db4,f4]@4 [bb3,db4,f4,ab4]@2 ~ [bb3,db4,f4,ab4] ab4@2 [bb3,db4,f4,ab4]@3 [bb3,f4,ab4] ~@2, [f3,ab3]@15 ~, ~@13 db4@2 ~", // Bbm Bbm7 Bb7 Fm
AQ: "[gb3,bb3,db4,eb4,gb4]@2 ~@2 [gb3,bb3,db4,eb4,gb4]@3 [gb3,bb3,db4,eb4,gb4] ~@2 [gb3,bb3,db4,eb4,gb4]@5 ~", // Ebm7
AR: "[eb3,gb3,b3,eb4,ab4]@4 ab3@2 ab3 ~, ~@4 [f3,db4,f4,bb4]@3 ~", // Abm7 Bbm
AS: "[gb3,bb3,eb4]@2 ~@2 [a3,eb4] ~ [ab3,d4] ~ [g3,db4]@2 ~ [gb3,b3]@3 db3 ~", // Ebm Adim Abdim Gdim B5
AT: "[gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~ [g3,bb3,db4,e4] [g3,db4,e4]@2 [g3,bb3,db4,e4]@2 ~ [g3,bb3,db4,e4] ~@2", // Ebm Gdim Dbdim Gdim
AU: "[gb3,b3,eb4]@2 ~@2 [gb3,b3,eb4]@2 ~ [gb3,b3,eb4] ~@2 [gb3,b3,eb4]@2 ~@2 [gb3,b3,eb4] ~", // B
AV: "[ab3,b3,f4]@3 ~ [ab3,b3,f4]@2 ~ [ab3,b3,f4] ~@2 [ab3,b3,f4]@3 ~ [ab3,b3,f4] ~, db4@15 ~", // Fdim
AW: "[b3,eb4,ab4] ~ [b3,eb4,ab4]@2 ~ [b3,eb4,ab4]@2 ~ [b3,eb4] ~ [b3,eb4,g4]@2 ~ [b3,eb4,g4]@2 ~, ~@4 g4 ~@3", // Abm B Baug
AX: "[b3,eb4,gb4]@2 ~@2 [b3,eb4,gb4]@2 ~ [ab3,b3,f4] [ab3,b3,f4]@2 [ab3,b3,f4]@3 ~ [ab3,b3,f4] ~", // B Fdim
AY: "[gb3,bb3]@4 [gb3,bb3,db4,f4]@2 ~ [gb3,bb3,eb4] [gb3,bb3,eb4]@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4] ~, [db4,f4] ~@7", // Gb Gbmaj7 Ebm Db
AZ: "[e3,ab3,b3,e4]@3 ~ [e3,ab3,b3,e4]@2 ~ [gb3,ab3,bb3,e4] [gb3,e4] ~ [gb3,ab3,bb3,e4]@2 ~ [gb3,ab3,bb3,e4]@2 ~, ~@4 bb3 ~@3", // E Gb7
BA: "[gb3,bb3,db4]@2 ~@2 [gb3,bb3,db4]@2 ~ [gb3,bb3,db4] ~@2 [gb3,bb3,db4]@2 gb2 [gb3,bb3,db4] gb2 ~, gb2@11 ~@5", // Gb
BB: "[e3,gb3,bb3,d4]@2 ~@2 [e3,gb3,bb3,d4]@2 ~ [e3,gb3,bb3,d4] ~@2 [gb2,e3,gb3,bb3,d4]@2 ~ [e3,gb3,bb3,d4] ~@2, gb2@9 ~@4 gb2@2 ~", // Daug Gbaug Daug
BC: "[[b3,bb4]@4 b3@2 ~ b3 ~ b3 ~@2 [b2,b3] bb3 [a2,a3] ab3 [gb3,ab3,c4,eb4,gb4]@2 ~@2 [gb3,ab3,c4,eb4,gb4]@2 ~ [gb3,ab3,c4,eb4,gb4] ~@2 [gb3,ab3,c4,eb4,gb4] ~ [gb3,ab3,c4,eb4,gb4] ab2@2 ~, [bb3,eb4,gb4]@7 ~@9, b1@12 ~ bb2@2 ab2@10 ~ ab2@2 ~@4]/2", // Bmaj7 B A Ab7 Ebm
BD: "[db2,gb3,bb3,db4,gb4,bb4]@3 ~ [gb3,bb3,db4,gb4,bb4]@2 ~ [gb3,bb3,db4,gb4,bb4] [eb2,bb3,db4,gb4]@2 [gb3,bb3,db4,gb4,bb4]@2 ~ [gb3,bb3,db4,gb4,bb4] ~@2, ~@4 db2@3 ~ eb4@7 ~, ~@8 gb3 ~@3 eb2@3 ~", // Gb Ebm7 Gb
BE: "[ab2,gb3,ab3,b3,eb4,gb4]@3 ~ [ab2,gb3,ab3,eb4,gb4]@3 [gb3,ab3,b3,eb4,gb4] [db2,b3,eb4,gb4]@2 [gb3,ab3,b3,eb4,gb4]@2 ~ [ab3,b3,eb4,gb4]@2 ~, ~@4 b3 ~@3 gb3 ~@3 db2@3 ~, ~@13 gb3 ~@2", // Abm7 Ab7 Abm7 B Abm7
BF: "[db4,gb4,ab4,bb4]@2 ~@2 [db4,gb4,ab4,bb4] ~ [e4,gb4,ab4]@2 ~@2 [e4,a4,b4,db5]@2 ~@2 [db4,gb4,a4]@2, ~@6 b3 ~@9", // Gb E A Gbm
BG: "~@4 [db4,gb4,a4] ~ [d4,f4,bb4]@8 ~@2", // Gbm Bb
BH: "[[db4,gb4,ab4,bb4]@2 ~@2 [db4,gb4,ab4,bb4] ~ [e4,gb4,ab4]@2 ~@2 [a4,db5]@2 ~@2 [db4,gb4,a4]@4 ~@2 [db4,gb4,a4] ~ [d4,f4,bb4]@8 ~@2, ~@6 b3 ~@3 [e4,b4] ~@21]/2", // Gb E A Gbm Bb E5
BI: "[[db4,gb4,ab4,bb4]@3 ~ [db4,gb4,ab4,bb4] ~ [e4,gb4,ab4]@2 ~@2 [e4,a4,b4,db5]@2 ~@2 [db4,gb4,a4]@4 ~@2 [db4,gb4,a4] ~ [d4,f4,bb4]@8 ~@2, ~@6 b3 ~@25]/2", // Gb E A Gbm Bb
BJ: "~@2 [db4,gb4,ab4,bb4] ~@5", // Gb
})).s("gm_piano").gain(0.45)
// other · electric guitar muted · "Pick Gtr"
const electric_guitar_muted = note("<~@2 A ~@16 B ~@11 C ~@3 D ~ E ~@15 F ~@11 G ~@3 H ~ I ~@7>".pickRestart({
A: "[c4,f4,a4] ~@2 [c4,f4,a4]!2 ~@2 [c4,f4,a4] ~ [c4,f4,a4]@2 ~ [c4,f4,a4] ~@3", B: "g4@2 ~ g4 g4@2 ~ g4@2 ~ g4 ~@5",
C: "~@7 f4@2 ~@7", D: "~@7 g4 ~ g4 ~ g4!2 ~@3", E: "~@9 g4 ~ g4!2 ~ g4 ~", F: "ab4@2 ~ ab4 ab4@2 ~ ab4@2 ~ ab4 ~@5",
G: "~@7 gb4@2 ~@7", H: "~@7 ab4 ~ ab4 ~ ab4!2 ~@3", I: "~@14 ab4 ~",
})).s("gm_electric_guitar_muted").gain(0.4)
// chords · electric guitar clean · "El. Gtr1"
const electric_guitar_clean = note(`<
~@3 A@5 B C D E D F G A@2 H I@2 J K L M B N O P D F Q R A H K S T I ~@4 U V W X W Y Z AA@2 AB AC@2 AD AE AF AG U AH AI
AJ W Y AK AL AA AB AE AM AN AO@3 ~@5
>`.pickRestart({
A: "[a3,c4,f4]!16", B: "[a3,c4,f4]!8 [a3,db4,f4]!8", C: "[a3,d4,f4]!8 [a3,eb4,gb4]!8",
D: "[bb3,d4,g4]!8 [bb3,d4,gb4]!8", E: "[bb3,d4,f4]!8 [bb3,d4,gb4]!8", F: "[bb3,d4,f4]!8 [g3,bb3,e4]!8",
G: "[a3,c4,f4]!8 [ab3,c4,e4]!8", H: "[a3,db4,f4]!16", I: "[bb3,d4,f4]!16", J: "[a3,c4,e4]!16", K: "[a3,d4,f4]!16",
L: "[bb3,d4,f4]!8 [c4,e4,g4]!6 ~ [d4,e4,f4,a4], ~@7 [c4,e4,g4]", M: "[d4,f4,a4] ~@15",
N: "[a3,d4,f4]!8 [a3,eb4,gb4]!5 [a3,gb4] [a3,eb4,gb4]!2", O: "[bb3,d4,g4]!14 [d4,g4] [bb3,d4,g4]",
P: "[g3,bb3,e4]!16", Q: "[a3,c4,e4]!6 ~ [f3,a3,d4]!9, ~@3 [a3,c4,e4] ~@4",
R: "[g3,bb3,eb4]!8 [f3,a3,eb4]!4 [a3,eb4] [a3,eb4,f4]!3, ~@3 f3", S: "[b3,d4,f4]!6 [d4,f4] [b3,d4,f4]!9",
T: "[a3,c4,f4]!8 [a3,c4,d4,f4]!8", U: "[bb3,db4,gb4]!8 [bb3,d4,gb4]!8", V: "[bb3,eb4,gb4]!8 [bb3,e4,g4]!8",
W: "[b3,eb4,ab4]!8 [b3,eb4,g4]!8", X: "[b3,eb4,gb4]!8 [b3,eb4,g4]!8", Y: "[b3,eb4,gb4]!8 [ab3,b3,f4]!8",
Z: "[bb3,db4,gb4]!8 [a3,db4,f4]!8", AA: "[bb3,db4,gb4]!16", AB: "[bb3,d4,gb4]!16", AC: "[b3,eb4,gb4]!16",
AD: "[bb3,db4,f4]!16", AE: "[bb3,eb4,gb4]!16",
AF: "[b3,eb4,gb4]!8 [db4,f4,ab4]!6 ~ [eb4,f4,gb4,bb4], ~@7 [db4,f4,ab4]", AG: "[eb4,gb4,bb4] ~@15",
AH: "[bb3,eb4,gb4]!8 [bb3,e4,g4]!5 [bb3,g4] [bb3,e4,g4]!2", AI: "[b3,eb4,ab4]!14 [eb4,ab4] [b3,eb4,ab4]",
AJ: "[ab3,b3,f4]!16", AK: "[bb3,db4,f4]!6 ~ [gb3,bb3,eb4]!9, ~@3 [bb3,db4,f4] ~@4",
AL: "[ab3,b3,e4]!8 [gb3,bb3,e4]!4 [bb3,e4] [bb3,e4,gb4]!3, ~@3 gb3", AM: "[c4,eb4,gb4]!6 [eb4,gb4] [c4,eb4,gb4]!9",
AN: "[bb3,db4,gb4]!8 [bb3,db4,eb4,gb4]!8", AO: "[[b3,eb4,gb4]!15 [b3,eb4,gb4]@32 ~]/3",
})).s("gm_electric_guitar_clean").gain(0.3)
// other · electric guitar clean · "El. Gtr2"
const electric_guitar_clean_2 = note("<~@4 [f3 ~ f3@11 c4 d4 f4]!2 [g4@2 f4@11 a3 bb3 c4] [f3 ~ f3@11 c4 d4 f4] ~@71>")
.s("gm_electric_guitar_clean").gain(0.4)
// other · french horn · "Horns"
const french_horn = note("<~@23 A ~@2 B C ~@10 D@2 E@2 ~@15 F G ~ H I ~@10 J@6 K>".pickRestart({
A: "~@4 d4 ~ f4 ~ a4@2 ~ c5@2 [bb4,b4] a4@2", B: "a4@2 ~@2 gb4 ~@2 g4@8 ~", C: "~@2 a4 ~ a4 gb4 ~ g4@6 ~@3",
D: "[c5@2 ~@2 c5@2 bb4@3 ~ bb4@2 ~@2 ab4@4 ~@2 ab4 ~ [a4,db5]@8 ~@2]/2", // A
E: "[ab4@3 ab4 ~@2 gb4@2 ~@2 b4@3 ~ a4@4 ~@2 a4 ~ [bb4,d5]@7 ~@3]/2", // Bb
F: "~@4 eb4 ~ gb4 ~ bb4@2 ~ db5@2 [b4,c5] bb4@2", G: "bb4@3 ~@5", H: "bb4@2 ~@2 g4 ~ ab4@8 ~@2",
I: "~@2 bb4 ~ bb4 g4 ~ ab4@6 ~@3",
J: "[[gb4,db5]@2 ~@2 [gb4,db5]@2 b4@3 ~ b4@3 ~ a4@4 ~@2 a4@2 [bb4,d5]@8 ~@2 db5@2 ~ [gb4,db5] ~@2 b4@2 ~@2 b4@2 ~@2 a4@4 ~@2 a4 ~ [bb4,d5]@8 ~ [gb4,db5]@3 ~ [gb4,db5]@2 ~ b4@3 ~ b4@3 ~ a4@4 ~@2 a4 ~ [bb4,d5]@8 ~@2, ~@31 gb4@2 ~@63]/6", // Gb5 Bb Gb5 Bb Gb5 Bb
K: "~@2 [gb4,db5] ~@5", // Gb5
})).s("gm_french_horn").gain(0.35)
// other · trombone
const trombone = note("<~@22 A B C ~@13 D E F@2 ~@14 G H I ~@13 J K L K M K ~>".pickRestart({
A: "bb3@8 c4@7 ~", B: "d4@2 ~@2 d4 ~ db4 ~ c4@2 ~ bb3@5", C: "a3@3 ~@5", D: "c4@2 ~@2 c4 ~ bb3@3 ~ c4@2 ~@2 c4@2",
E: "~@4 c4 ~ a4@7 ~@3", F: "[db4@2 ~@2 db4@2 b3@2 ~@2 db4@2 ~@2 db4@4 ~@2 db4 ~ bb4@6 ~@4]/2", G: "b3@8 db4@7 ~",
H: "eb4@2 ~@2 eb4 ~ d4 ~ db4@2 ~ b3@4 ~", I: "db4@3 ~@5", J: "db4@2 ~@2 db4 ~ b3@3 ~ db4@2 ~@2 db4@2",
K: "~@4 db4 ~ bb4@7 ~@3", L: "db4@2 ~@2 db4 ~ b3@2 ~@2 db4@2 ~@2 db4@2", M: "db4@3 ~ db4 ~ b3@3 ~ db4@2 ~@2 db4@2",
})).s("gm_trombone").gain(0.4)
// other · string ensemble 1 · "String 1"
const string_ensemble_1 = note(`<
~@22 A B C D E@2 F G H I ~@6 J@2 K@2 ~@4 L M ~@9 N O P Q@2 R S T@2 ~@6 U@2 V W V X Y
>`.pickRestart({
A: "d6 e6", B: "f6@3 ~ [d5,d6] ~ [f5,f6] ~ a6@2 ~ [c6,c7]@2 ~ [a5,a6]@2, ~@8 a5 ~@7", C: "c5@8 db5@7 ~", D: "d5 eb5",
E: "[~@3 d5 bb4 d5 f5 a5 c6 bb5 c6@3 bb5 [d5,f5] c5@4 ~@2 bb4 d5 f5 a5 bb5 g5@5 ~]/2", // Dm
F: "g5@4 ~ g5 d5 bb4 gb5@4 ~ gb5 d5 bb4", G: "f5@4 ~ f5 d5 bb4 e5@7 ~", H: "e5 d5", I: "eb5@15 ~",
J: "[[f5,f6]@2 ~@2 [f5,f6] ~ [eb5,eb6]@2 ~@2 [ab5,ab6]@2 ~@2 [f5,f6]@4 ~@2 [f5,f6] ~ [a5,a6]@7 ~@3]/2", // F Eb Ab F A
K: "[[gb5,gb6]@2 ~@2 [gb5,gb6] ~ [e5,e6]@2 ~@2 [a5,a6]@2 ~@2 [gb5,gb6]@4 ~@2 [gb5,gb6] ~ [bb5,bb6]@6 ~@4]/2", // Gb E A Gb Bb
L: "[ab5,ab6] [g5,g6]", M: "[gb5,gb6]@7 [f5,f6]@8 ~",
N: "~@4 [eb5,eb6] ~ [gb5,gb6] ~ bb6@2 ~ [db6,db7]@2 ~ [bb5,bb6]@2, ~@8 bb5 ~@7", O: "db5 d5", P: "eb5 e5",
Q: "[~@3 eb5 b4 eb5 gb5 bb5 db6 b5 db6@3 b5 [eb5,gb5] db5@4 ~@2 b4 eb5 gb5 bb5 b5 ab5@5 ~]/2", // Ebm
R: "ab5@4 ~ ab5 eb5 b4 g5@4 ~ g5 eb5 b4", S: "gb5@4 ~ gb5 eb5 b4 f5@7 ~", T: "[f5@8 eb5@7 e5@15 ~@2]/2",
U: "[[gb5,gb6]@2 ~@2 [gb5,gb6] ~ [e5,e6]@2 ~@2 [a5,a6]@2 ~@2 [gb5,gb6]@4 ~@2 [gb5,gb6] ~ [bb5,bb6]@7 ~@3]/2", // Gb E A Gb Bb
V: "[gb5,gb6]@2 ~@2 [gb5,gb6] ~ [e5,e6]@2 ~@2 [a5,a6]@2 ~@2 [gb5,gb6]@2", // Gb E A Gb
W: "~@4 [gb5,gb6] ~ [bb5,bb6]@8 ~ [gb5,gb6]", X: "~@4 [gb5,gb6] ~ [bb5,bb6]@8 ~@2", Y: "~@2 [gb5,gb6] ~@5",
})).s("gm_string_ensemble_1").gain(0.35)
// chords · string ensemble 1 · "String 2"
const string_ensemble_1_2 = note(`<
~@16 A@2 B@3 C D E F G H I J K L@2 ~@6 M@2 N@2 O@5 P Q@5 R S@2 T U V W X Y Z AA AB@2 AC@4 ~@2 AD@2 AE@2 ~@2 AF
>`.pickRestart({
A: "[c4@15 db4@16 ~]/2", B: "[d4@31 e4@16 ~]/3", C: "f4", D: "d5 e5", E: "f5 ~@3 d4 ~ f4 ~ a4@2 ~ c5@2 ~ a4@2",
F: "c4 db4", G: "d4 eb4", H: "~@3 d6 bb5 d6 f6 a6 c7 bb6 c7@3 bb6 [d6,f6] ~", I: "c6@4 ~ bb5 d6 f6 a6 bb6 g6@5 ~",
J: "g6@5 g6 d6 bb5 gb6@4 ~ gb6 d6 bb5", K: "f6@5 f6 d6 bb5 e6@7 ~", L: "[e6@8 d6@7 eb6@15 ~@2]/2",
M: "[[c4,f4,a4]@2 ~@2 [c4,f4,a4] ~ [bb3,eb4,g4]@2 ~@2 [eb4,ab4,c5]@2 ~@2 [c4,f4,ab4]@4 ~@2 [c4,f4,ab4] ~ [e4,a4,db5]@7 ~@3]/2", // F Eb Ab Fm A
N: "[[db4,gb4,bb4]@3 ~ [db4,gb4,bb4] ~ [b3,e4,ab4]@2 ~@2 [e4,a4,db5]@2 ~@2 [db4,gb4,a4]@4 ~@2 [db4,gb4,a4] ~ e4@4 gb4@3 ~@3, ~@22 [bb4,d5]@7 ~@3]/2", // Gb E A Gbm Bb
O: "[db4@8 d4@7 eb4@8 ~ e4@7 ab4@40 ~ g4@8]/5", P: "gb4 f4", Q: "[db4 gb4]/5", R: "ab4", S: "[bb4@15 gb4@16 ~]/2",
// … 83 more lines
More by Stevie Wonder
I Just Called to Say I Love YouC major · 110 bpmIsn't She LovelyE major · 119 bpmYou Are the Sunshine of My LifeG major · 120 bpmMy Cherie AmourG major · 98 bpmBoogie on Reggae WomanD♭ major · 120 bpmDo I Do1982 · B major · 114 bpmHigher Ground1973 · E♭ major · 187 bpmIf You Really Love Me1971 · F major · 121 bpm
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.