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, A@4 for four bars: 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 AG@6 BL
>`.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 ~ c2@3 e2 ~ c2 f2 d2, ~@8 d2 ~@7",
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@7 f2 f2@4 g2@2 a2@2, ~@8 g2 ~@7", 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!2 a1@3 bb1@2 b1 d2",
Y: "c2@2 ~ eb2 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@2 ~@2 a1@2 ~@2 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 ~@2 b2 ab2!2 ~ db2 ~ 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: "~@4 gb2@3 ~@9",
})).s("gm_acoustic_bass").gain(0.5)
// chords · piano · "Ac.Piano"
const piano = note(`<
~@8 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@2 AF@2 AG AH AI AJ AK AL AM AN AO AP AQ AR AS
AT AU AV AG AW AX AY AZ BA BB BC BD BE BF@2 BG BH BI BJ BK@4 BL
>`.pickRestart({
A: "~@2 [ab4,c5] a4 ~ [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] ~@6 [gb4,a4,eb5] ~ [gb4,a4,eb5] ~, [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] [bb4,d5,f5] f4 ~@2 [gb4,bb4,d5,gb5] ~@2, [f3,bb3,d4]@7 ~ [gb3,bb3,d4]@7 ~", // Gm7 F Dmaj7 Bb Gbaug Bb Gbaug
E: "[g4,bb4,d5,g5]@3 ~ [g4,bb4,d5,g5]@2 ~@4 [gb4,bb4]@2 ~@2 [gb4,bb4] ~, [g3,bb3,d4]@7 [d5,gb5]@8 ~, ~@7 [gb4,bb4]@2 ~@7, ~@8 [gb3,bb3,d4]@7 ~", // Gm Gb Gm D Gb Gbaug
F: "[f4,d5,f5]@4 db5 d5 [bb4,db5] f4 ~ [eb4,e4] ~@2 [eb4,e4] ~ c4 a3, [f3,bb3,d4]@7 ~ [e3,bb3,c4]@7 ~, db5 ~@8 g4@2 ~ g4@2 ~@2", // Dm Bbm Emaj7 Bb C7
G: "[c4,a4]@2 ~@2 [c4,ab4,a4] ~@2 [e4,ab4,c5,e5] ~@2 [e4,ab4,c5,e5]@2 ~@2 [e4,ab4,c5,e5] f4, [f3,a3]@7 ~ [e3,ab3,c4]@8, ab4 ~@15", // F Eaug F Eaug
H: "a4@3 f4 [ab4,c5] [a4,c5]!3 ab4 a4 ~ [a4,c5] [ab4,a4] [f4,ab4] g4 ~, [f3,a3,c4]@15 ~, ab4 ~@7 c5@2 ~@2 c5@3 ~", // Ab Am Amaj7 Fm F
I: "ab4 a4@2 [ab4,a4] ~ f4 ~ c4 f4 ~ ab4 a4 ~ ab4 a4 ~, [f3,a3]@15 ~, c4@2 ~@8 c4@2 ~ c4@2 ~", // Amaj7 F
J: "~@3 [ab4,a4,db5] ~ f4 [f4,a4,db5] db4 ~ f4@2 [ab4,a4,db5] ~@2 [ab4,a4,db5] ~, [f3,a3]@7 ~, db4@3 ~@5", // Amaj7 Faug Amaj7 F
K: "[d4,f4,a4,d5]@4 ~@2 [f4,d5,f5] ~@2 [d5,f5]@2 ~ a4 bb4 d5 f5, a3@7 ~, ~@9 [f4,db5] ~@6", // Dm Db
L: "[d4,g4,bb4,f5]@2 ~@2 [bb4,d5]@2 ~ [f4,g4,bb4,d5] ~ bb4 [f4,g4] ~ [f3,bb3,d4,f4]@3 ~, [g3,bb3]@11 ~@5, ~@4 [f4,g4] ~@7 bb4 ~@3", // Gm7 Bb Gm7 Fsus2 Bb Gm Fsus2
M: "~@3 f4 [ab4,c5] [a4,c5]!3 [ab4,c5] [a4,c5] ~ [ab4,a4,c5] [c4,f4,ab4] f4 g4 ~, [e3,a3,e4]@15 ~, c4@3 ~, ~@4 g4@3 ~", // Ab Am Ab Am Ab Fm A5
N: "[f4,ab4,a4,d5] ~ [f4,ab4,a4] f4 ~@3 [f4,ab4,a4,d5] ~ f4 [d4,f4,a4] [f4,a4]@2 ~@3, [f3,a3]@7 ~, d4@5 ~@3, ~ d5 ~@6", // Dm F Dm F
O: "[f3,bb3,d4,f4] [c4,e4,g4], ~@4 g3@3 ~", P: "[a3,d4,f4,a4] ~@3 [ab3,d4] ~ [g3,db4] ~ [gb3,c4]@2 ~ [f3,bb3]@3 c3 ~",
Q: "~@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
R: "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
S: "f4 ~@2 f4 ~ [d5,f5] ~ [d5,f5] ~@2 f4 ~ f4 ~ f4 ~, [f3,bb3,d4]", // Dm Bb
T: "~@2 [c5,eb5] e5 ~ [d5,f5] ~@2 bb5 ~@2 f5 ~ e5 ~@2, [e3,bb3,c4]@15 ~", // Cm Dm C7
U: "[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
V: "[bb4,d5]@2 ~@2 d5 [d5,f5] bb4 g4 ~@2 [g4,bb4,e5] ~@3 [g4,bb4,e5] ~, [f3,bb3,d4]@7 ~ [g3,bb3,e4]@8, [f4,g4] ~@15", // Bb Dm Edim Bb Edim Fsus2
W: "[e3,a4,c5,e5]@3 ~ [a4,c5,e5]@2 ~ [f4,a4,d5] ~@2 [f4,a4,d5]@2 ~@2 [f4,a4,d5] ~, [f3,a3,e4] [a3,d4], ~@4 f3@3 ~", // Am Dm Fmaj7 D5
X: "[g4,bb4,c5,eb5]@3 ~ [g4,bb4,c5,eb5]@2 ~ [f4,a4,c5,eb5] ~@2 [f4,a4,c5,eb5]@2 ~@4, [bb3,eb4] ~, g3@6 ~@2 [f3,a3,eb4]@7 ~", // Cm7 F7 Eb5 F7
Y: "c4@2 [c4,a4,c5]@3 a4 [a4,c5]!5 ab4 ~ f4 g4 f4, [f3,a3]@15 ~, ~@2 ab4 ~@9 [a4,c5]@2 ~@2", // F Am F Am
Z: "~@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
AA: "[d4,f4]@5 ~ f4@2 ~@4 bb4 ~ g4 ~, [f3,a3]@15 ~, db4 ~@15", // Dm F
AB: "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
AC: "[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
AD: "[g3,bb3,d4,f4]@2 ~@2 [g2,bb3,d4]@3 [f3,bb3,d4,f4] [bb3,d4,f4] ~ [f3,bb3,d4,f4]@2 c2@2 [f3,bb3,d4,f4] ~, f3@7 ~ c2@2 ~@6, g2@4 [g3,f4] ~@3 g3@7 ~", // Gm7 Gm Bb G7
AE: "[[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
AF: "[[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
AG: "[gb3,bb3,db4]@4 [gb3,bb3,db4]@2 ~ [gb3,bb3,d4] [gb3,bb3,d4]@2 [gb3,bb3,d4]@3 ~ [gb3,bb3,d4] ~", // Gb Gbaug
AH: "[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
AI: "[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
AJ: "[ab3,b3,eb4]@4 [gb3,ab3,b3,eb4]@2 ~ [g3,b3,eb4] [g3,b3,eb4]@6 ~@2, gb3 ~@7", // Abm Abm7 Gaug
AK: "[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
AL: "[b3,eb4,gb4]@4 [gb3,ab3,b3,eb4,gb4]@2 ~ [f3,ab3,b3,f4] [ab3,b3,f4]@2 [f3,ab3,b3,f4]@3 ~ [f3,ab3,b3,f4] ~, [gb3,ab3] ~@7", // B Abm7 Fdim Gbsus2
AM: "[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
AN: "[bb3,db4]@4 [bb3,db4,gb4]@2 ~ [bb3,db4,gb4] ~@2 [bb3,db4,gb4]@3 ~ [bb3,db4,gb4] ~, gb3@7 ~, gb4 ~@7", // Bbm Gb
AO: "[bb3,db4,gb4]@3 ~ [bb3,db4,gb4]@2 ~ [bb3,db4,gb4] ~@2 [bb3,db4,gb4]@3 ~ [bb3,db4,gb4] ~, bb4@15 ~", // Gb
AP: "[bb3,d4,gb4]@4 [bb3,d4,gb4]@2 ~ [bb3,d4,gb4] ~@2 [bb3,d4,gb4]@2 ~@2 [bb3,d4,gb4] ~, bb4@15 ~", // Bbaug
AQ: "[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
AR: "[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
AS: "[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
AT: "[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
AU: "[eb3,gb3,b3,eb4,ab4]@4 ab3@2 ab3 ~, ~@4 [f3,db4,f4,bb4]@3 ~", // Abm7 Bbm
AV: "[gb3,bb3,eb4]@2 ~@2 [a3,eb4] ~ [ab3,d4] ~ [g3,db4]@2 ~ [gb3,b3]@3 db3 ~", // Ebm Adim Abdim Gdim B5
AW: "[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
AX: "[gb3,b3,eb4]@2 ~@2 [gb3,b3,eb4]@2 ~ [gb3,b3,eb4] ~@2 [gb3,b3,eb4]@2 ~@2 [gb3,b3,eb4] ~", // B
AY: "[ab3,b3,f4]@3 ~ [ab3,b3,f4]@2 ~ [ab3,b3,f4] ~@2 [ab3,b3,f4]@3 ~ [ab3,b3,f4] ~, db4@15 ~", // Fdim
AZ: "[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
BA: "[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
BB: "[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
BC: "[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
BD: "[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
BE: "[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
BF: "[[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
BG: "[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
BH: "[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
BI: "[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
BJ: "~@4 [db4,gb4,a4] ~ [d4,f4,bb4]@8 ~@2", // Gbm Bb
BK: "[[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
BL: "~@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 b4 a4@2, ~@14 bb4 ~", 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 ~ gb4@2 ~@2 b4@3 ~ a4@4 ~@2 a4 ~ [bb4,d5]@8 ~@2]/2", // Bb
F: "~@4 eb4 ~ gb4 ~ bb4@2 ~ db5@2 c5 bb4@2, ~@14 b4 ~", G: "bb4@3 ~@5", H: "bb4@2 ~@2 g4 ~@2 ab4@8 ~",
I: "~@2 bb4 ~ bb4 g4 ~ ab4@6 ~@3", J: "[[gb4,db5]@2 ~@2 [gb4,db5]@2 b4@3 ~ b4@3 ~ a4@4 ~@2 a4 ~ [bb4,d5]@8 ~@2]/2",
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 J K J 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@7 ~@3]/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",
})).s("gm_trombone").gain(0.4)
// other · string ensemble 1 · "String 1"
const string_ensemble_1 = note(`<
~@22 A B C D E F G H I J ~@6 K@2 L@2 ~@4 M N ~@9 O P Q R S T U V W ~@6 X@4 Y Z AA
>`.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 f5 d5", F: "c5@4 ~ bb4 d5 f5 a5 bb5 g5@5 ~",
G: "g5@4 ~ g5 d5 bb4 gb5@4 ~ gb5 d5 bb4", H: "f5@4 ~ f5 d5 bb4 e5@7 ~", I: "e5 d5", J: "eb5@15 ~",
K: "[[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
L: "[[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
M: "[ab5,ab6] [g5,g6]", N: "[gb5,gb6]@7 ~ [f5,f6]@8",
O: "~@4 [eb5,eb6] ~ [gb5,gb6] ~ bb6@2 ~ [db6,db7]@2 ~ [bb5,bb6]@2, ~@8 bb5 ~@7", P: "db5 d5", Q: "eb5 e5",
R: "~@3 eb5 b4 eb5 gb5 bb5 db6 b5 db6@3 b5 gb5 eb5", S: "db5@4 ~ b4 eb5 gb5 bb5 b5 ab5@5 ~",
T: "ab5@4 ~ ab5 eb5 b4 g5@4 ~ g5 eb5 b4", U: "gb5@4 ~ gb5 eb5 b4 f5@7 ~", V: "f5@8 eb5@7 ~", W: "e5@15 ~",
X: "[[gb5,gb6]@2 ~@2 [gb5,gb6] ~ [e5,e6]@2 ~@2 [a5,a6]@2 ~@2 [gb5,gb6]@4 ~@2 [gb5,gb6] ~ [bb5,bb6]@8 ~@2]/2", // Gb E A Gb Bb
Y: "[gb5,gb6]@2 ~@2 [gb5,gb6] ~ [e5,e6]@2 ~@2 [a5,a6]@2 ~@2 [gb5,gb6]@2", Z: "~@4 [gb5,gb6] ~ [bb5,bb6]@8 ~@2",
AA: "~@2 [gb5,gb6] ~@5", // Gb
})).s("gm_string_ensemble_1").gain(0.35)
// chords · string ensemble 1 · "String 2"
const string_ensemble_1_2 = note(`<
~@16 A B C@2 D E F G H I J K L M N O ~@6 P@2 Q@2 R S T@3 U V@5 W X Y Z AA R S AB AC AD AE AF AG B AH AI Y ~@2 AJ@4 ~@2
AK
>`.pickRestart({
A: "c4@15 ~", B: "db4", C: "[d4@31 ~]/2", D: "e4", E: "f4", F: "d5 e5", G: "f5 ~@3 d4 ~ f4 ~ a4@2 ~ c5@2 ~ a4@2",
H: "c4 db4", I: "d4 eb4", J: "~@3 d6 bb5 d6 f6 a6 c7 bb6 c7@3 bb6 f6 d6", K: "c6@4 ~ bb5 d6 f6 a6 bb6 g6@5 ~",
L: "g6@5 g6 d6 bb5 gb6@4 ~ gb6 d6 bb5", M: "f6@5 f6 d6 bb5 e6@7 ~", N: "e6@8 d6@7 ~", O: "eb6@15 ~",
P: "[[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
Q: "[[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
// … 83 more lines
More by Stevie Wonder
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.