0:00/0:00
// Taxi — Antoine
// 138 bpm, 4/4, key D# 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: Full arrangement: all 139 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(138/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.
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
~@15 A B A@2 C A@2 D E F@2 G@2 H@2 I J K L@2 M N@4 M O P Q R S T U ~ V W X ~@8 Y@4 Z AA AB AC AD AE@2 AF AG AH@2 AI AJ
AK@2 ~@7 AL@8 AM@8 AN@5 AO AP@2 AQ@4 AR AS@5 ~ AT@5 AO AP@2 AQ@4 AR AS@5
>`.pickRestart({
A: "~@6 [bb3,d4,g4]@4 [bb3,d4,g4] ~ [g2,d3]@3 [bb3,d4,g4]@3 [g2,d3]@3 [bb3,d4,g4]@3, [g2,d3]@11 ~@13", // Gm G5 Gm G5 Gm G5
B: "~@3 [bb3,d4] ~@2 [bb3,d4,g4]@3 ~ [bb3,d4,g4]@2 [g2,d3]@3 [bb3,d4,g4]@3 ~@3 [bb3,d4,g4]@2 ~, [g2,d3]@11 ~@7 [g2,d3]@5 ~", // Bb Gm G5 Gm G5
C: "~@3 bb3 ~@2 [bb3,d4,g4]@3 ~ [bb3,d4,g4] ~ [g2,d3]@3 [bb3,d4,g4]@3 [g2,d3]@3 [bb3,d4,g4]@3, [g2,d3]@11 ~@13", // Gm G5 Gm G5 Gm G5
D: "~@6 [bb3,d4,g4]@3 ~ [bb3,d4,g4] ~ [g2,d3]@3 [bb3,d4,g4]@3 [g2,d3]@3 [bb3,d4,g4]@2 ~, [g2,d3]@11 ~@13", // Gm G5 Gm G5 Gm G5
E: "~@6 [a3,c4,gb4]@3 ~ [a3,c4,gb4] ~ d3@3 [a3,c4,gb4]@3 d3@3 [a3,c4,gb4]@3, d3@5 ~@7", // Gbdim
F: "[~@3 a3 ~@2 [a3,c4,gb4]@4 [a3,c4,gb4] ~ d3@3 [a3,c4,gb4]@3 d3@3 a3@3 ~@3 a3 ~@2 [a3,c4,gb4]@3 ~ [a3,c4,gb4] ~ d3@3 [a3,c4,gb4]@3 d3@3 [a3,c4,gb4] ~@2, d3@11 ~@10 [c4,gb4]@6 ~@21, ~@12 d3@5 ~@7]/2", // Gbdim Cdim
G: "[~@3 a3 ~@2 [a3,c4,gb4]@3 ~ [a3,c4,gb4] ~ d3@3 [a3,c4,gb4]@3 d3@3 a3@3 ~@3 a3 ~@2 [a3,c4,gb4]@3 ~ [a3,c4,gb4] ~ d3@3 [a3,c4,gb4]@3 d3@3 [a3,c4,gb4]@3, d3@11 ~@10 [c4,gb4]@6 ~@21, ~@12 d3@5 ~@7]/2", // Gbdim Cdim
H: "~@3 a3 ~@2 [a3,c4,gb4]@3 ~ [a3,c4,gb4] ~ d3@3 [a3,c4,gb4]@3 d3@3 [a3,c4,gb4]@3, d3@5 ~@7", // Gbdim
I: "~@3 a3 ~@2 [a3,c4,gb4]@3 ~ [a3,c4,gb4] ~ d3@3 [a3,c4,gb4]@3 d3@3 [a3,c4,gb4]@2 ~, d3@5 ~@7", // Gbdim
J: "~@3 a3 ~@2 [a3,c4,gb4]@3 ~ [a3,c4,gb4] ~ d3@3 [a3,c4,gb4]@3 d3@3 [a3,c4,gb4] ~@2, d3@5 ~@7", // Gbdim
K: "[d4,g4]@6 b3@2 ~ [b3,d4,g4]@3 g2@3 ~@6 [b3,d4,g4]@2 ~, g2@10 ~@8 g2@5 ~, b3@3 ~@12 [b3,d4,g4]@5 ~@4", // G5 G
L: "~@3 [b3,d4,g4]@2 ~@4 [b3,d4,g4]@3 ~@3 [b3,d4,g4]@3 ~@3 [b3,d4,g4]@3, g2@6 d3@5 ~ g2@6 d3@5 ~", // G
M: "~@3 [b3,d4,g4]@3 ~@3 [b3,d4,g4]@3 ~@3 [b3,d4,g4]@3 ~@3 [b3,d4,g4] ~@2, g2@5 ~ d3@6 g2@6 d3@5 ~", // G
N: "~@3 [a3,c4,gb4]@2 ~@4 [a3,c4,gb4]@2 ~@4 [a3,c4,gb4]@2 ~@4 [a3,c4,gb4]@2 ~, a2@5 ~ d2@5 ~ a2@5 ~ d2@5 ~", // Gbdim
O: "g4@6 c4@2 ~@4 c3@3 ~@6 c4@2 ~, c3@10 ~@5 [c4,eb4]@5 ~@4, c4@4 ~@5 [c4,eb4,g4]@5 ~ g4@7 ~@2, ~@3 c3", // Cm
P: "d4@4 ~@2 [bb3,d4]@2 ~ [bb3,d4,g4]@3 g2@3 bb3@3 g2@3 bb3@2 ~, g2@10 ~@5 [d4,g4]@7 ~@2", // Bb Gm G5
Q: "[c4,gb4]@6 a3@2 ~ [a3,c4,gb4]@3 d3@3 [a3,c4]@3 d3@3 a3 ~@2, d3@5 ~@7, a3@4 ~@11 gb4@7 ~@2", // Cdim Gbdim Am
R: "[d4,g4]@5 ~ [bb3,g4]@2 ~ [bb3,d4,g4]@4 g2@2 [bb3,d4,g4]@3 ~@3 [bb3,d4,g4] ~@2, g2@11 ~@7 g2@5 ~, bb3 ~@7", // G5 Eb Gm
S: "[c4,eb4]@5 ~ c4@2 ~ [c4,eb4,g4]@3 c3@3 [c4,eb4,g4]@3 ~@3 [c4,g4]@2 ~, c3@10 ~@8 c3@5 ~, g4 ~@3", // Cm C5
T: "[g3,bb3,d4]@5 ~ [g3,bb3,d4] ~@2 [g3,bb3,d4]@3 g2@3 [g3,bb3]@3 g2@2 ~ g3 ~@2, g2@10 ~@5 d4@6 ~@3", // Gm
U: "[c4,gb4]@5 ~ a3@2 ~ [a3,c4,gb4]@3 d3@3 [a3,c4,gb4]@3 d3@3 [a3,gb4]@2 ~, d3@3 ~@5, a3 ~@7", // Cdim Gbdim D
V: "~@3 [g3,b3,d4] ~@5 [g3,b3,d4] ~@5 [g3,b3,d4] ~@5 [g3,b3,d4] ~@2", // G
W: "~@3 [g3,b3,d4] ~@5 [g3,b3,d4] ~@5 [g3,b3,e4] ~@5 [g3,b3,e4] ~@2", X: "[g3,c4,e4]@9 ~@3 [a3,d4,gb4]@10 ~@2",
Y: "[~@20 [eb4,g4]@55 ~@21]/4", Z: "~@7 [c3,eb3]@2 [ab3,c4,eb4]@4 ~ [c3,eb3]@3 [ab3,c4,eb4]@5 [c3,eb3]@2",
AA: "~@5 [c3,eb3]@2 ~ [c4,eb4]@4 [c3,eb3]@3 [ab3,c4,eb4]@5 [c3,eb3]@3 ~, ~@7 ab3@4 ~@13", // Cm Ab Cm
AB: "~@3 [c3,eb3]@3 [ab3,c4,eb4]@4 ~ [c3,eb3]@2 [ab3,c4,eb4]@5 [c3,eb3]@3 ~@3", // Cm Ab Cm Ab Cm
AC: "~ [c3,eb3]@2 ~ [ab3,c4,eb4]@4 ~ [c3,eb3]@2 [ab3,c4,eb4]@5 [c3,eb3]@6 ~@2", // Cm Ab Cm Ab Cm
AD: "[c3,eb3]@2 [ab3,c4,eb4]@4 ~ [c3,eb3]@2 ~ eb4@4 [c3,eb3]@2 ~@6 [c3,eb3]@2, ~@9 [ab3,c4]@4 ~@11", // Cm Ab Cm Ab
AE: "[[ab3,c4,eb4]@4 ~ [c3,eb3]@3 [ab3,c4,eb4]@4 ~ [c3,eb3]@2 ~@5 [db3,f3]@2 [bb3,db4,f4]@4 ~ [db3,f3]@3 [bb3,db4,f4]@5 [db3,f3]@2 ~@5 db3@3 [f3,ab3,db4]@3]/2", // Ab Cm Ab Cm Db Bbm Db Bbm …
AF: "~@2 db3@2 [f3,ab3,db4]@5 [bb2,db3]@2 ~@5 [bb2,db3]@3 [f3,ab3,db4]@5, ~ bb2@3 ~@20", // Db Bbm Db
AG: "[bb2,db3]@2 [f3,ab3,db4]@5 [bb2,db3]@2 ~@6 db3@2 [f3,ab3,db4]@4 ~ [bb2,db3]@2, ~@14 bb2@3 ~@7", // Bbm Db Bbm Db Bbm
AH: "[[f3,ab3,db4]@5 [bb2,db3]@2 ~@6 [bb2,eb3]@2 [g3,bb3,eb4]@4 ~ [bb2,eb3]@2 ~ [bb3,eb4]@4 [bb2,eb3]@2 ~@6 [bb2,eb3]@2 [g3,bb3,eb4]@4 ~ [bb2,eb3]@2 ~ [g3,bb3,eb4]@3, ~@22 g3@5 ~@21]/2", // Db Bbm Eb5 Eb Eb5 Eb Eb5 Eb
AI: "~@2 [bb2,eb3]@2 ~@5 [bb2,db3]@2 ~ [ab3,db4]@4 [bb2,db3]@3 [f3,ab3,db4]@4 ~, ~@11 f3@4 ~@9", // Eb5 Bbm Db5 Bbm Db
AJ: "[bb2,db3]@2 ~@5 [bb2,eb3]@2 ~ [g3,bb3,eb4]@4 ~ [bb2,eb3]@2 [g3,bb3,eb4]@4 ~ [bb2,eb3]@2", // Bbm Eb5 Eb Eb5 Eb Eb5
AK: "[~@5 [ab2,c3]@2 ~ [ab3,c4,eb4]@4 ~ [ab2,c3]@2 [ab3,c4,eb4]@4 ~ [ab2,c3]@2 ~ [ab2,c3,ab3,c4,eb4]@2 ~@23]/2", // Ab
AL: "[~@8 [g3,bb3] ~@5 [g3,bb3,eb4]@4 [g3,bb3] eb4 eb3@3 [g3,bb3,eb4]@3 [eb2,eb3]@2 ~ [g3,bb3,eb4]@3 ~@3 g3 ~@2 [g3,bb3,eb4]@3 ~ [g3,bb3] eb4 eb3@3 [g3,bb3,eb4]@3 eb3@3 [g3,bb3,eb4]@3 ~@3 g3 ~@2 [g3,bb3,eb4]@3 ~ [g3,bb3] eb4 [eb2,eb3]@3 [g3,bb3,eb4]@3 [eb2,eb3]@3 [g3,bb3,eb4]@3 ~@3 g3 ~@2 [g3,bb3,eb4]@3 ~ [g3,bb3] eb4 [eb2,eb3]@3 [g3,bb3,eb4]@3 [eb2,eb3]@3 [g3,bb3,eb4]@3 ~@3 [g3,bb3] ~@2 [g3,bb3,eb4]@3 ~ [g3,bb3] eb4 [eb2,eb3]@3 [g3,bb3,eb4]@3 [eb2,eb3]@3 [g3,bb3,eb4]@3 ~@3 [g3,bb3,eb4] ~@2 [g3,bb3,eb4]@3 ~ [g3,bb3] eb4 [eb2,eb3]@3 [g3,bb3,eb4]@3 [eb2,eb3]@3 [g3,bb3,eb4]@3 ~@3 g3 ~@2 [g3,bb3,db4,eb4]@3 ~ [g3,bb3] [db4,eb4] [eb2,eb3]@3 [g3,bb3,db4,eb4]@3 [eb2,eb3]@3 [g3,bb3,db4,eb4] ~@18, ~@8 eb2@15 ~@9 eb2@21 ~@3 [eb2,eb3]@11 ~@13 [eb2,eb3]@11 ~@13 [eb2,eb3]@11 ~@13 [eb2,eb3]@11 ~@13 [eb2,eb3]@10 ~@30, ~@32 eb3@11 ~@149]/8", // Gm Eb Gm Eb Gm Eb Gm Eb …
AM: "[~@8 ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@2 ~ [g3,bb3,db4,eb4] ~@2 ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]]/8", // Ab Eb7 Ab
AN: "[~@2 eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4] ~@2 bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4] ~@2 bb2@3 [g3,bb3,db4,eb4] ~@2 eb2@2 ~ [g3,bb3,db4,eb4] ~@2 bb2@3 [g3,bb3,db4,eb4]]/5", // Ab Eb7
AO: "~@2 eb2@2 ~ [g3,bb3,db4,eb4] ~@2 bb2@3 [g3,bb3,db4,eb4] ~@2 eb2@3 [g3,bb3,db4,eb4] ~@2 bb2@3 [g3,bb3,db4,eb4]", // Eb7
AP: "[~@2 eb2@2 ~ [g3,bb3,db4,eb4] ~@2 bb2@3 [g3,bb3,eb4] ~@2 eb2@3 [g3,bb3,eb4] ~@2 bb2@3 [g3,bb3,eb4]@2 ~ eb2@3 [g3,bb3,eb4] ~@2 ab2@3 [ab3,c4,eb4] ~@2 eb2@3 [ab3,c4,eb4] ~@2 ab2@3 [ab3,c4,eb4]]/2", // Eb7 Eb Ab
AQ: "[~@5 [ab3,c4,eb4] ~@2 ab2@3 [ab3,c4,eb4] ~@2 eb2@3 [ab3,c4,eb4] ~@2 ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4] ~@2 bb2@3 [g3,bb3,eb4] ~@2 eb2@3 [g3,bb3,eb4] ~@2 bb2@3 [g3,bb3,eb4], ~@2 eb2@5 ~@89]/4", // Ab Eb
AR: "~@2 eb2@3 [g3,bb3,eb4] ~@2 bb2@3 [g3,bb3,eb4] ~@2 eb2@3 [g3,bb3,eb4] ~@2 bb2@3 [g3,bb3,eb4]", // Eb
AS: "[~@2 eb2@3 [g3,bb3,eb4] ~@2 bb2@3 [g3,bb3,eb4]@2 ~ eb2@3 [g3,bb3,eb4]@2 ~ bb2@3 [g3,bb3,eb4]@2 ~ eb2@3 [g3,bb3,eb4] ~@2 bb2@3 [g3,bb3,eb4]@2 ~ eb2@3 [g3,bb3,eb4]@2 ~ bb2@3 [g3,bb3,eb4]@2 ~ eb2@3 [g3,bb3,eb4] ~@2 [ab2,ab3,c4,eb4]@4 ~@2 [ab3,c4,eb4] ~@2 [gb3,b3,eb4]@4 ~@2 [gb3,eb4]@6 b2@3 [ab2,ab3,eb4]@2 ~ [ab3,eb4] ~@2 [ab3,eb4]@2 ~ [gb3,eb4]@3 ~@3 [gb3,eb4]@5 ~ b2@2 ~ [ab2,ab3,eb4]@4 ~@12, ~@60 ab2@4 ~ b2@6 ~@13 ab2@4 ~ b2@6 ~@25]/5", // Eb Ab B Ebm Ab5 Ebm Ab5
AT: "[~@8 ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4] ~@2 bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4] ~@2 bb2@3 [g3,bb3,db4,eb4] ~@2 eb2@2 ~ [g3,bb3,db4,eb4] ~@2 bb2@3 [g3,bb3,db4,eb4]]/5", // Ab Eb7
})).s("gm_acoustic_guitar_steel").gain(0.29).pan(0.6)
// bass · acoustic bass
const bass = note(`<
~@14 A B C D@2 B E B F G H G@2 I G J G K L M N O P Q@2 R S T U V W X Y Z AA AB AC AD AE@3 ~@5 AF@4 AG AH@8 AI@3 AJ AK
AL@8 AM@7 AN@2 AO@2 AP AQ AP AR AS AT AO@2 AP AQ AP AR AS AT AO@2 AP AQ AP AR AU@3 ~ AV AO@2 AP AQ AP AR AS AT AO@2 AP
AQ AP AR AU@3
>`.pickRestart({
A: "eb2@11 ~ f2@7 ~@2 f2@2 ~", B: "g2@9 ~ g2 ~ d2 ~@2 d2@4 ~@2 f2@2 ~", C: "g2@2 ~ bb1@6 c2@6 d2@2 ~ eb2 e2 ~ f2@3",
D: "g2@9 ~ g2 ~ d2@2 ~ d2@6 f2@2 ~", E: "g2@2 ~ bb1@6 c2@5 ~ d2@6 f2@3",
F: "g2@9 ~ d2 ~ g2 d2 ~ d3 ~@2 c3 f2 ~ bb2 f2 ~", G: "d2@9 ~ d2 ~ a1 ~@2 a1@5 ~ c2@2 ~",
H: "d2@3 gb2@5 ~ g2@5 ~ a2@2 ~ bb2 b2 ~ c3 ~@2", I: "d2@2 ~ d3@6 c3@4 ~@2 a2@3 g2 a2 ~ c3 ~@2",
J: "d2@9 ~ d2 ~ a1 ~@2 a1@4 ~@2 c2@2 ~", K: "d2@3 ~@3 a2@3 ~@3 d3@3 ~@3 a2@2 ~@4",
L: "g2@2 ~ gb2@2 ~ e2@2 ~ d2@2 ~ c2@2 ~ b1@2 ~ a1@2 ~@4", M: "g1 ~ d1 ~ g1 ~ d1 ~",
N: "g1@3 ~@3 d1@3 ~@3 g2@2 ~ e2@2 ~ d2@2 ~@4", O: "g2@2 ~ d2@2 ~ g2@2 ~ d2@2 ~",
P: "a2@4 ~@2 d2@4 ~@2 a2@4 ~@2 d2 ~@2 gb2@2 ~", Q: "a2@2 ~ d2@2 ~ a2@2 ~ d2@2 ~",
R: "a2@3 ~@3 d2@3 ~@3 a2@2 ~ gb2 ~@2 g2@2 ~ a2@2 ~", S: "g2@3 ~@3 d2@3 ~@3 g2 ~@2 e2 ~@2 d2@2 ~@4",
T: "c2@6 g2@6 c2 ~@2 c2@3 eb2@3 f2@3", U: "g2@3 g2@2 ~ d2@6 g2 ~@2 g2@3 d2@2 ~ g2@2 ~",
V: "a2@6 d2@6 a2 ~@2 a2@3 d2@3 a2@3", W: "g2@6 d2@2 ~ g2@5 ~ f2@2 ~ eb2@3 d2@3",
X: "c2@6 g2@2 ~ g2@5 ~ c2@3 eb2@3 f2@3", Y: "g2@6 d2@3 g2@5 ~ d2@2 ~ g2@3 d2@2 ~",
Z: "a2@5 ~ d2 ~@2 d2@6 a2@3 d2@3 a2 ~@2", AA: "d2@4 ~@2 a2@3 g2@2 ~ gb2@5 ~ e2@5 ~",
AB: "g1@4 ~@2 d1@4 ~@2 g1@4 ~@2 d1@3 ~@3", AC: "g1 ~@2 e1@2 ~ d1@4 ~@2 g1@4 ~@2 d1@3 ~@3",
AD: "a1@4 ~@2 d1@3 ~@3 d2 ~@2 c2@2 ~ b1@2 ~ a1@2 ~", AE: "[g1@19 ~@5]/3", AF: "[~@10 eb1@31 ~@7]/4",
AG: "~@2 ab1@21 ~",
AH: "[eb1@18 ~@4 ab1@19 ~@4 eb1@21 ~ ab1@20 ~@2 eb1@19 ~@3 bb1@20 ~@2 eb1@18 ~@4 bb1@19 ~@4 eb1@14]/8",
AI: "[~@4 bb1@10 ~ eb1@10 ~ bb1@10]/3", AJ: "~@2 eb1@19 ~@3", AK: "~ ab1@13 ~ eb1@5 ~@3 ab1",
AL: "[~@11 ab1@9 ~@2 eb1@9 ~@3 ab1@10 ~@2 eb1@10 ~@2 ab1@10 ~@2 eb1@10 ~@2 bb1@11 eb1@5 ~@7 bb2@9 ~@3 eb2@11 ~ bb2@10 ~@2 eb2@51]/8",
AM: "[~@8 eb2@9 ~@2 eb2 bb1 ~@2 bb1@5 ~ db2@2 ~ eb2@9 ~@2 eb2 bb1 ~@2 bb1@6 db2@2 ~ eb2@2 ~ eb3@6 db3@4 ~@2 bb2@3 ab2 ~ bb2 db3 ~@2 eb2@9 ~@2 eb2 bb1 ~@2 bb1@5 ~ db2@2 ~ eb2@9 ~@2 eb2 bb1 ~@2 bb1@4 ~@2 db2@2 ~ eb2@9 ~@2 eb2 bb1 ~@2 bb1@4 ~@2 db2@2 ~ eb2@3 ~@3 bb2@3 ~@3 eb3@3 ~]/7",
AN: "[~@2 bb2@2 ~@4 ab2@2 ~ g2@2 ~ f2@3 eb2@3 db2@3 c2@3 bb1@6 ab1@3 ~@3 eb1@3 ~@3 ab1@3 ~]/2",
AO: "[~@2 eb1@3 ~@3 ab1@3 ~@3 eb1@3 ~@3 ab2@2 ~ f2@2 ~ eb2@2 ~@4 ab2@4 ~@2 eb2@4 ~@2 ab2@4]/2",
AP: "~ eb2@2 ~ bb2@2 ~ eb2@2 ~ bb2@2", AQ: "~@2 eb2 ~@2 g2@2 ~ bb2@4 ~@2 eb2@4 ~@2 bb2@4",
AR: "~@2 eb2@5 ~ bb2@3 ~@3 eb2@3 ~@3 bb2@2 ~ g2", AS: "~@2 ab2@2 ~ bb2@2 ~ ab2@3 ~@3 eb2@3 ~@3 ab2 ~@2 g2",
AT: "~@2 f2 ~@2 eb2@2 ~ ab1@3 ~@3 eb1@3 ~@3 ab1@3 ~",
AU: "[~@2 ab2@2 ~ bb2@2 ~ ab1@4 ~@2 ab1@2 ~ b1@4 ~@2 b1@4 ~@2 b1@2 ~ ab1@3 ~@3 ab1@3 b1@4 ~@2 b1@4 ~@2 b1@2 ~ ab1@3 ~@13]/3",
AV: "~@8 ab1@3 ~@3 eb1@3 ~@3 ab1@3 ~",
})).s("gm_acoustic_bass").gain(0.48)
// chords · string ensemble 1
const string_ensemble_1 = note(`<
~@3 A@6 B@2 C@3 D E@2 F@6 G@8 ~ H I J K L J M N O ~@11 P@2 Q@6 R@4 S@5 T U V@2 W@2 X@2 Y Z AA AB@2 AC AD@3 AE@8 AF@8
AG@8 AH@7 AI@3 ~ AJ@8 AH@7 AI@3
>`.pickRestart({
A: "~@3 [bb4,d5,g5,bb5] ~@5 [bb4,d5,g5,bb5] ~@5 [bb4,d5,g5,bb5] ~@5 [bb4,d5,g5,bb5] ~@2", // Gm
B: "~@3 [a4,d5,gb5] ~@5 [a4,d5,gb5] ~@5 [a4,d5,gb5] ~@5 [a4,d5,gb5] ~@2", // D
C: "~@3 [g4,c5,eb5] ~@5 [g4,c5,eb5] ~@5 [g4,c5,eb5] ~@5 [g4,c5,eb5] ~@2", D: "[g4,bb4,eb5] [a4,c5,f5]",
E: "[[bb4,d5,g5]@47 ~]/2", F: "[g4,bb4,g5]/6", G: "[gb5@143 ~ [c5,gb5]@48, [d5,d6]]/8", H: "g5@2 a5 b5, b4",
I: "d6@23 ~", J: "e5", K: "gb5 e5", L: "c5", M: "gb5@23 ~", N: "gb5 e5 d5 c6", O: "b5@7 ~@5", P: "[bb4,eb5,bb5]/2",
Q: "[~@22 [ab2,eb3,ab3,b3,eb4]@22 ~ [gb2,db3,bb5]@24 b5@24 bb5@8 b5@9 bb5@7 ab5@24 eb5@3, ~@22 ab5@23 [gb3,bb3,db4]@22 ~@2 [e2,b2,e3,ab3,b3]@75]/6", // Abm Gb E
R: "[~@3 eb5@7 ~ eb5@8 [bb2,e5]@21 ~ [bb2,eb5]@35 ~@15 b4@3 c5@2, ~@19 [eb2,eb3,g3,bb3]@57 ~@20]/4", // Bbdim Eb5 Eb
S: "[~@2 eb5@30 ~@7 b4@4 c5@3 f5@29 ~@8 b4@3 ~ c5@4 eb5@7 c5@7 ~ ab4@7 c5 ~@3 bb4 ~@2]/5",
T: "ab4 ~@3 g4 ~@3 f4 ~@2 eb4 ~@3 f4 ~@6 db4 ~", U: "~@6 bb3 ~@17", V: "[~@4 c5@4 db5@3 f5@32 ~@5]/2",
W: "[c5@4 db5@4 g5@33 ~@4 c5@3]/2", X: "[db5@4 f5@7 ~ db5@7 bb4@7 g4@7 ~ bb4@7 f5@7]/2", Y: "~ eb5@22 c5",
Z: "~@3 b4 ~ c5 ~ b4 ~ c5 ~ eb5 ~ eb5!2 ~ eb5 ~ eb5 ~ eb5 ~ eb5 ~",
AA: "~@2 b4 ~ c5 ~ b4 ~ c5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~",
AB: "[~@2 b4 ~ c5 ~ b4 ~ c5 ~ eb5@4 c5@4 ab4@4 eb4@8 c5@4 db5@12 ~@2]/2", AC: "~ c5 ~ db5 ~ c5 ~ db5 ~ f5@11 ~@4",
AD: "[~ c5 ~ db5 ~ c5 ~ db5@2 g5 ~ g5 ~ g5 ~ g5 ~ g5 ~ g5 ~ [db5,g5]@51]/3", // Dbdim
AE: "[~@8 [eb5,g5,bb5]@167 ~ ab5@12 bb5@4]/8", // Eb
AF: "[~@2 c6@6 eb6@23 ~ f5@23 ~ g5@12 f5@12 db5@24 f5@23 ~ g5@20 ~@4 g5@6 f5@6 eb5@6 db6@6 c6@14 ~@2]/8",
AG: "[~@8 eb6@23 ~ f5@23 ~ g5@12 f5@12 db5@24 f5@23 ~ g5@22 ~@2 g5@6 f5@6 eb5@6 db6@6 c6@14 ~@2]/8",
AH: "[~@8 eb6@23 ~ f5@23 ~ g5@12 f5@12 db5@24 f5@23 ~ g5@22 ~@2 g5@6 f5@6 eb5@4]/7",
AI: "[~@2 g5@5 ~ [eb5,ab5]@3 ~@3 [eb5,gb5] ~@2 [eb5,gb5,b5]@4 ~@2 [eb5,gb5,b5]@4 ~@2 [eb5,gb5,b5]@2 ~ [eb5,ab5]@3 ~@3 [eb5,ab5]@2 ~ [eb5,gb5,b5]@4 ~@2 [eb5,gb5,b5]@3 ~@3 [eb5,gb5,b5]@2 ~ [eb5,ab5]@3 ~@13, ~@7 ab5 ~@28]/3", // Ab5 Ebm B Ab5 B Ab5
AJ: "[~@2 c6@6 eb6@23 ~ f5@23 ~ g5@12 f5@12 db5@24 f5@23 ~ g5@22 ~@2 g5@6 f5@6 eb5@6 db6@6 c6@14 ~@2]/8",
})).s("gm_string_ensemble_1").gain(0.45).pan(0.7)
// other · oboe
const oboe = note(`<
[g3@2 ~ d5 ~@2 d4@2 ~ d5 ~@2 g3@2 ~ d5 ~@2 d4@2 ~ d5 ~@2]!6
[g3@2 ~ d5 ~@2 d3@2 ~ d5 ~@2 g3@2 ~ d5 ~@2 d3@2 ~ d5 ~@2]!3
[a3@2 ~ d5 ~@2 d3 ~@2 d5 ~@2 a3@2 ~ d5 ~@2 d3 ~@2 d5 ~@2]!2
[g3@2 ~ c5@2 ~ c3@2 ~ c5@2 ~ g3@2 ~ c5@2 ~ c3@2 ~ c5@2 ~]
[g3@2 ~ c5 ~@2 c3@2 ~ c5 ~@2 g3@2 ~ c5 ~@2 c3@3 c5 ~@2]!2
~@125
>`).s("gm_oboe").gain(0.45).pan(0.8)
// chords · flute
const flute = note("<~@25 A@6 B ~@54 C D@5 E F ~@45>".pickRestart({
A: "~@9 [gb4,a4,d5] ~@11 [gb4,a4,d5] ~@2", B: "~@3 [gb4,a4,d5] ~@5 [gb4,a4,d5] ~@5 [gb4,a4,d5] ~@5 [gb4,a4,d5] ~@2",
C: "~@17 [g4,bb4,eb5] ~@6", D: "~@5 [g4,bb4,eb5] ~@11 [g4,bb4,eb5] ~@6",
E: "~@5 [g4,bb4,eb5] ~@5 [g4,bb4,eb5] ~@5 [g4,bb4,eb5] ~@5 [g4,bb4,eb5]", F: "~@5 [g4,bb4,eb5] ~@18",
})).s("gm_flute").gain(0.52).pan(0.7)
// other · trombone
const trombone = note(`<
~@14 A ~@16 B C D E F G H I J K ~@51 L M@4 N@4 O P@3 N@4 O P@3 N@4 Q ~@3 P@3 N@4 O P@3 N@4 Q ~@2
>`.pickRestart({
A: "[eb3,g3,bb3]@11 ~ [f3,a3,c4]@12", B: "d2@3 ~@3 a2@3 ~@3 d3@3 ~@3 a2@4 ~@2",
C: "g3@2 ~ gb3@2 ~ e3@2 ~ d3@2 ~ c3@2 ~ b2@2 ~ a2@5 ~", D: "~@12 d3@7 ~@5", E: "~@6 gb3@2 ~ g3@2 ~ e3@6 ~@6",
F: "e3@4 ~@2 d3@3 ~@3 d4@4 ~@2 db4@4 ~@2", G: "c4@4 ~@2 b3@4 ~@2 a3@7 ~@5", H: "~@6 c3@3 ~@3 e3@8 ~@4",
I: "~@6 c3@4 ~@2 gb3@7 ~@5", J: "~@6 c3@4 ~@2 e3@5 ~ eb3@5 ~", K: "d3@4 ~@2 d3@4 ~@2 g3@5 ~@7",
L: "~@8 eb2@3 ~@3 bb2@3 ~@3 eb3@3 ~",
M: "[~@2 bb2@2 ~@4 ab3@2 ~ g3@2 ~ f3@2 ~ eb3@2 ~ db3@2 ~ c3@2 ~ bb2@5 ~@13 eb3@7 ~@11 g3@2 ~ ab3@2 ~ f3@6 ~@6 f3@4 ~@2 eb3@3 ~@3 eb4@4]/4",
N: "[~@2 d4@4 ~@2 db4@4 ~@2 c4@4 ~@2 bb3@7 ~@11 db3@3 ~@3 f3@8 ~@10 db3@4 ~@2 g3@7 ~@11 db3@4 ~@2 f3@4]/4",
O: "~@2 e3@5 ~ eb3@4 ~@2 eb3@4 ~@2 ab3@4", P: "[~@20 eb3@7 ~@11 g3@2 ~ ab3@2 ~ f3@6 ~@6 f3@4 ~@2 eb3@3 ~@3 eb4@4]/3",
Q: "~@2 e3@5 ~@17",
})).s("gm_trombone").gain(0.6).pan(0.2)
// other · string ensemble 1
const string_ensemble_1_2 = note("<~@9 A B ~@56 C@2 D@4 E@2 ~@2 F G@3 H I@5 ~@52>".pickRestart({
A: "~ ab6@2 ~ gb6@2 ~ e6@2 ~ d6@2 ~ c6@2 ~ bb5@2 ~ ab5@2 ~ gb5@2, a6@2 ~ g6@2 ~ f6@2 ~ eb6@2 ~ db6@2 ~ b5@2 ~ a5@2 ~ g5@2 ~",
B: "~ e5@2 ~ d5@2 ~ c5@2 ~ bb4@2 ~ ab4@2 ~ gb4@2 ~ e4@2 ~ d4@2, f5@2 ~ eb5@2 ~ db5@2 ~ b4@2 ~ a4@2 ~ g4@2 ~ f4@2 ~ eb4@2 ~",
C: "[~@4 [eb2,eb3]@7 [ab2,ab3]@7 ~ c4@22 eb4@7]/2", D: "[~@8 c5@7 db5@22 g3@22 ~@8 db4@7 ab3@7 ~ f4@7 db4@7]/4",
E: "[eb4@4 ~@11 f4@7 ~ eb4@7 bb4@7 g4@7 ~@4]/2", F: "~ c4@2 ~ c4@2 ~@2 b3@3 ~ c4 ~@2 c4@2 ~@2 c4@2 ~@2 ab3",
G: "[~@3 b3 ~ c4 ~ b3 ~ c4 ~ ab2@3 c5 ~ bb4 ~ ab4 ~ g4 ~ f4@12 ab2@4 eb5 ~ db5 ~ c5 ~ bb4 ~ ab4@11 ~ ab2@3 ~ ab3 ~ bb3 ~ c4 ~ db4 ~ eb2@2, ~@11 eb4 ~@10 eb2@3 ~@21 eb2@4 ~@20 c5 ~]/3",
H: "bb4 ~ ab4 ~ g4 ~ f4 ~ eb4 ~ f4 eb4 ~ db4 ~ c4 ~ bb3 ~ ab3 ~ [eb2,g3]@3, ~@5 bb2@2 ~@5", // Eb
I: "[~@9 [bb2,bb3]@4 eb4 ~@3 f4 ~@3 g4@2 ~@2 [f4,ab4]@2 ~@2 a4@2 ~@2 [g4,bb4]@2 ~@2 [ab4,c5]@2 ~@2 [bb4,db5]@2 ~@2 [eb3,bb4]@53 ~@22, ~@21 eb3@7 ~@5 bb3@6 ~@81, ~@21 eb4 ~@7 gb4 ~@90]/5", // Bb Fm Gm Ab Bbm Eb5
})).s("gm_string_ensemble_1").gain(0.48).pan(0.3)
// chords · trumpet
const trumpet = note(`<
~@14 A B@2 ~@21 C ~@2 D E F G D E F@2 H I J K@3 ~@14 L M ~@6 N ~@3 O P Q@4 ~@30 R@3 ~@16 R@3
>`.pickRestart({
A: "[eb4,g4,bb4]@11 ~ [f4,a4,c5]@12", B: "[bb4,d5]/2",
C: "~@3 [a4,d5,a5] [d5,a5]!2 ~@3 [a4,d5,a5]!2 [a4,d5,a5]@6 ~@7, ~@2 a4 ~@9", // D5
D: "[eb4,g4,c5,eb5] ~@8 [eb4,g4,c5,eb5]@14 ~", E: "[d4,g4,bb4] ~@8 [d4,g4,bb4,d5]@14 ~",
F: "[d4,gb4,a4] ~@8 [d4,gb4,a4,d5]@14 ~", G: "[d4,g4,bb4] ~@8 [f4,g4,b4,d5]@12 ~@3",
H: "~@3 [d4,g4,b4]@2 ~ [d4,g4,d5]@6", I: "~@2 [d4,g4,b4] ~ [d4,g4,b4,e5]@3 ~",
J: "[g4,c5,e5]@10 ~@2 [gb4,a4,d5]@9 ~@3", K: "[[bb3,eb4,g4]@59 ~@13]/3", L: "~@20 [bb4,db5] ~ db5@2, ~@22 bb4 ~",
M: "~@3 [bb4,db5] ~@2 db5@2 ~@3 [bb4,db5] ~ [bb4,db5]@5 ~@6, ~@6 bb4 ~@17", // Bbm
N: "~ [c5,eb5] ~@2 [c5,eb5] ~@3 [c5,eb5] ~@3 [c5,eb5] ~@2 [c5,eb5] ~@3 [c5,eb5] ~@3 [c5,eb5]", // Cm
O: "~@10 [bb4,db5]!2 ~ [bb4,db5] ~ [bb4,db5] ~ [bb4,db5] ~ [bb4,db5] ~ [bb4,db5] ~@2", // Bbm
P: "~@9 [db5,f5] ~ [db5,f5] ~ [db5,f5] ~ [db5,f5] ~ [db5,f5] ~ [db5,f5] ~ [db5,f5]@2 ~", // Db
Q: "[~@9 [eb5,g5] ~ [eb5,g5] ~ [eb5,g5] ~ [eb5,g5] ~ [eb5,g5] ~ [eb5,g5] ~ [eb5,g5]@53 ~@22]/4", // Eb
R: "[~@8 [ab3,eb4,ab4] ~@2 [ab3,eb4,ab4]!2 ~ [ab3,eb4,ab4] ~@2 [b3,eb4,gb4,b4]@3 ~@3 [b3,eb4,gb4,b4]@3 ~@3 [b3,eb4,gb4,b4] ~@2 [ab3,eb4,ab4] ~@2 [ab3,eb4,ab4]!2 ~ [ab3,eb4,ab4] ~@2 [b3,eb4,gb4,b4]@3 ~@3 [b3,eb4,gb4,b4]@3 ~@3 [b3,eb4,gb4] ~@2 [ab3,eb4,ab4]@3 ~@13, ~@53 b4@2 ~@17]/3", // Ab5 B Ab5 B Ab5
})).s("gm_trumpet").gain(0.46).pan(0.7)
// chords · rock organ
const rock_organ = note(`<
~@14 A B@8 C@8 D E F@3 G@4 H I J K L I J K@2 F M N ~@34 O@7 P@2 Q@2 R S T U V W Q@2 R S@2 T V W Q@2 R S T U X ~@3 W
Q@2 R S@2 T V W Q@2 R S T U X ~@2
>`.pickRestart({
A: "[eb5,g5,bb5] [f5,a5,c6]", B: "[[g5,bb5] [d5,g5,bb5]@3, d6@191 ~]/8", C: "[gb5,a5,d6]/8", D: "[gb5,a5,d6]",
E: "[g5,b5]", F: "~@3 [g5,b5,d6] ~@5 [g5,b5,d6] ~@5 [g5,b5,d6] ~@5 [g5,b5,d6] ~@2",
G: "~@3 [a5,d6,gb6] ~@5 [a5,d6,gb6] ~@5 [a5,d6,gb6] ~@5 [a5,d6,gb6] ~@2", // D
H: "~@3 [b5,d6,g6] ~@5 [b5,d6,g6] ~@2 [b5,d6,g6] ~@11", I: "[eb5,g5,c6] ~@8 [eb5,g5,c6]@14 ~",
J: "[d5,g5,bb5] ~@8 [d5,g5,bb5]@14 ~", K: "[d5,gb5,a5] ~@8 [d5,gb5,a5]@14 ~", L: "[d5,g5,bb5] ~@8 [d5,f5,b5]@13 ~@2",
M: "~@3 [g5,b5,d6] ~@5 [g5,b5,d6] ~@5 [g5,b5,e6] ~@5 [g5,b5,e6] ~@2", N: "[g5,c6,e6]@11 ~ [a5,d6,gb6]@11 ~",
O: "[~ eb6@18 db6@2, ~ [g5,bb5]@20]/7", // Gm
P: "[~@8 [ab5,c6,eb6]@25 ~@2 [ab5,c6,eb6] ~@5 [ab5,c6,eb6] ~@5 [ab5,c6,eb6]]/2", // Ab
Q: "~@5 [ab5,c6,eb6] ~@5 [ab5,c6,eb6] ~@5 [ab5,c6,eb6] ~@5 [ab5,c6,eb6]", // Ab
R: "~@5 [ab5,c6,eb6] ~@5 [g5,bb5,eb6] ~@5 [g5,bb5,eb6] ~@5 [g5,bb5,eb6]", // Ab Eb
// … 110 more lines
More by Antoine
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.