0:00/0:00
// Love Walked In — Gershwin
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 98 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · "ACOU BASS"
const bass = note(`<
A B C D@2 E@2 F@4 G H@2 I@2 J@3 K@2 L M@5 N O@3 P@2 Q@2 R S@3 T@3 U@8 V@3 W@3 X@5 Y@3 Z@2 AA AB@2 AC AD@2 AE@3 AF@3
AG@3 AH@3 AI@2 AJ@3 AK@3 AL@2 AM AN ~@2
>`.pickRestart({
A: "~@5 c2 ~ c2@8 ~@5 c2 ~ c2@8 ~@2", B: "~@2 c2 ~@2 c2@8 ~@4 c2 ~ c2@5 ~@8", C: "a2@8 ~ d2@3 ~@5 gb2@2 ~@5 g2@8",
D: "[~@4 db2@2 ~ c2@10 ~@2 gb1@2 ~ f1@14 bb1@6 ~@6 bb1@2 ~ a1@7 eb2@6, ~@4 d2 ~@59]/2",
E: "[~@2 d2@7 gb2@7 g2@13 d2@2 b1@12 c2@6 ~@9 [f3,g3]@2 e3@4]/2", // Fsus2
F: "[~ g2@2 ~ c2@5 eb2 ~ f2@7 b1@7 ~ bb1@12 a1 ~ a1@13 eb2@2 d2@6 ~ gb2@6 ~@2 g2@5 ~@2 g1@7 b1@7 ~ d2@7 c2@13 ~@2 gb2@12 eb2@2, ~@70 db2 ~@6 d2@2 ~@49]/4",
G: "~@13 bb2 ~ bb3@15 ~@2", H: "[~@20 f2@7 bb2@14 ~ d2@12 bb1@2 ~ a1@7]/2",
I: "[eb2@7 d2@7 ~ gb2@7 ~@15 g1@10 f2 ~ e2@2 eb2@13, ~@22 g2@25 ~@17]/2",
J: "[bb1@2 eb2@2 ~@5 eb2@7 ~@6 a1@9 d2@2 ~@6 gb2@2 ~@5 g2@3 ~@5 db2@3 ~@4 c2@5 gb2@5 ~@2 f2@16 ~ bb2@6]/3",
K: "[~@2 d2@7 ~@15 d2@12 gb1@2 g1@7 ~ a1@7 bb1@7 b1@4]/2", L: "~@2 c2@7 gb2@7",
M: "[~ f2@10 c2@2 b1@2 ~ bb1@12 db2@2 a1@13 eb2@2 d2@7 gb2@8 g2@7 a2@7 bb2@6 ~@2 b2@7 c3@12 g2@2 ~@6 g2@2 gb2@8 f2@14 c2@13 ~@2 f1@12]/5",
N: "bb1@2 ~ f2@2 ~@5 b1@7 bb1@14 ~",
O: "[f2@12 bb2@2 ~ b2@6 ~ e2@7 bb2@7 ~ eb2@7 a2@12 eb2@2 ~ d2@7 gb2@7 g2@7 ~ db2@7 c2@6 ~@2]/3",
P: "[~@4 f2@2 ~@6 f2@2 a1@7 bb1@7 ~ b1@7 c2@7 d2@8 eb2@6 ~ e2@6]/2",
Q: "[~@2 f2@4 eb2@2 ~ d3@7 c3@8 bb2@7 a2@7 eb2@7 ~ d2@7 ab2@5 gb2@2 g2@4]/2", R: "~ d2@2 ~ g1@7 a1@7 bb1@7 ~ c2@6",
S: "[~ d2@7 g1@7 ~ c2@7 f1@7 bb2@7 ~ a2@7 bb1@7 a1@8 eb2@7 d2@7 gb2@8 g2@7 a2@7]/3",
T: "[bb2@7 ~ b2@7 c3@8 d3@7 eb3@6 ~ e3@6 ~@2 f3@4 c3@2 ~ f2@7 g2@8 ab2@8 ~@6 g2@8 f2@7]/3",
U: "[eb2@7 d2@7 ~ c2@7 bb1@7 ab1@7 ~ a1@7 eb2@7 d2@7 ~ gb2@7 g2@7 a2@8 bb2@7 f2@7 eb2@7 ~ bb2@6 ~ eb3@7 eb2@5 ab2@2 ~ a2@7 eb2@7 d2@7 ~ gb2@6 ~ g2@5 db2@2 g1@8 c2@7 e2@8 f2 ~@3 f2@2 ~ a1@7 bb1@7 ~ b1@7 c2@7 a1@7 ~ eb2@7 d2@7 g1@7 ~ d2@6]/8",
V: "[~ a2@7 g2@7 ~ gb1@7 db2@7 ab2@8 gb2@7 f2@5 gb2 ~ d3@7 ~ c3@7 bb2@7 a2@7 ~ eb2@7 d2@6 ~, ~@8 db2 ~@39]/3",
W: "[ab2@7 ~ g2@5 gb2@2 a2@7 d2@7 ~ a2@7 g2@7 f2@8 e2@7 db2@8 c2@7 g1@7 c2@8 gb1@7]/3",
X: "[f1@7 g1@8 ab1@7 a1@7 bb1@8 c2@7 d2@7 gb2@8 b2@7 f2@7 eb2@7 ~ bb2@5 gb2 ~ a2@7 eb2@7 ~ d2@6 ~ ab2@5 gb2@2 g2@5 d2@2 ~ g1@7 c2@7 e2@8 f2@7 eb2@6]/5",
Y: "[~ d2@7 ~ ab1@5 bb1 ~ g1@7 db2@8 c2@7 gb2@7 ~ f2@7 c3@7 d3@8 c3@7 a2@7 eb2@7 ~ d2@6, ~@53 d3@2 ~@41]/3",
Z: "[~ gb2@5 eb2@2 g2@8 a2@7 bb2@7 b2@7 ~ c3@7 d3@7 eb3@7 ~ e3@4]/2", AA: "~ eb3@2 f3@7 b2@8 bb2@7 d2@6 ~",
AB: "[~@8 eb2@7 d2@7 gb1@7 ~ g1@7 a1@7 bb1@8 b1@5 bb1@2 ~@5]/2", AC: "~@2 d2@7 ~ eb2@6 ~ e2@8 f2@4 eb2 ~@2",
AD: "[c3@7 d3@7 ~ db3@7 c3@7 gb2@7 ~ f2@7 b1@7 bb1@5 f2 ~@2 eb3@5]/2",
AE: "[~@2 d3@7 bb1@5 db2 ~@2 a1@5 db2 ~ d3@7 c3@8 gb2@7 g2@7 a2@7 ~ bb2@6 ~ c3@7 bb2@8 f2@7 eb2@6]/3",
AF: "[~ bb2@7 ~ a2@7 eb2@7 d2@6 ~@2 ab2@5 gb2 ~ bb2 ~@2 g2 ~ d2@2 g1@8 c2@7 e2@8 f2@10 ~@2 b1@2 bb1@10 ~@2 bb1@2]/3",
AG: "[~ a1@11 ~ db2@2 ~ d2@7 gb2@7 g2@8 ~@5 bb2 ~ d3@7 db3@7 ~ c3@7 g2@7 c2@7 ~ gb2@7 f2@5 ~@2]/3",
AH: "[~@5 b2@2 ~ bb2@7 d2@7 a2 ~@4 a2@2 ~ eb2@6 ~ d2@7 gb2@7 ~ g2@19 e3@2 ~ d3@5 c2@14 eb3@2 ~]/3",
AI: "[~@5 db3@2 ~@5 gb2@3 f2@14 c2@12 g1@2 ~ f1@7 g1@8 ab1@5]/2",
AJ: "[~@2 a1@7 bb1@28 ~@2 b2@7 e2@7 bb2@7 ~ eb2@6 ~ a2@12 eb2@2 ~ d2@7 gb2@6]/3",
AK: "[~ g2@8 db2@7 c2@7 gb2@7 ~ a2@12 d2@2 eb2@13 db2@2 d2@12 a1@2 ~ gb1@12 ab1 ~ g1@7]/3",
AL: "[~ a1@7 bb1@7 ~ b1@7 c2@7 d2@8 eb2@6 ~ e2@5 f2@3 ~@4 f3@3 e3@3 ~]/2",
AM: "~@3 eb3@4 ~ d3@2 ~@5 db3@3 c3@2 ~@6 gb1@4 ~@2", AN: "f1@9 ~@23",
})).s("gm_acoustic_bass").gain(0.27).pan(0.3)
// bass · acoustic bass · "ACOU BASS" · soft notes
const bass_soft = note(`<
~@3 A ~@6 B C@2 D ~@4 E F ~ G ~@2 H I J ~@3 K@2 ~ L ~@2 M ~@2 N O P ~@3 Q R ~@8 S ~@11 T U@2 V ~ W ~ X Y ~@12 Z ~@9
>`.pickRestart({
A: "~@17 g1 ~@14", B: "~@15 e2 ~@2 f2@2 ~@12", C: "[~ f2@14 ~@15 a3@7 f3@7 ~ c3@7 ~@12]/2", D: "~@4 db2 ~@11",
E: "~@12 a2 ~@3", F: "~@9 a2@15 ~@8", G: "~ bb1 ~@30", H: "~@23 bb2 ~@8", I: "~@8 c2@5 ~@19", J: "~@17 a1 ~@14",
K: "[~@31 e2@6 ~@27]/2", L: "~ eb2 ~@14 f2 ~@15", M: "~@30 c2 ~", N: "~@15 bb2 ~@16", O: "~@5 eb3 ~@10",
P: "~@10 a2@7 ~@15", Q: "~@14 ab2 ~@17", R: "~@24 eb2 ~@7", S: "~@15 gb1 ~@16", T: "a2 ~@3",
U: "[~@27 c2@9 ~@18 eb2 ~@9]/2", V: "~@5 f2 ~@6 f2 ~@9 f2 ~@9", W: "~@29 eb2 ~@2", X: "~@4 ab2 ~@27",
Y: "~@9 ab2 ~@22", Z: "~@4 gb2 ~@27",
})).s("gm_acoustic_bass").gain(0.13).pan(0.3)
// chords · piano · "A.PIANO 1"
const piano = note(`<
A@2 B@3 C@5 D E@6 F@2 G@2 H@7 I J@2 K L@3 M N O P@4 Q R S T@2 U@3 V W X@2 Y Z AA@2 AB@2 AC AD AE AF@2 AG AH AI AJ AK
AL AM AN AO AP@3 AQ@5 AR AS AT@2 AU@2 AV AW AX@4 AY AZ@3
>`.pickRestart({
A: "[~ a3@12 [db4,eb4,ab4,bb4,eb5]@15 [d4,e4,a4,d5]@14 [db4,eb4,ab4,bb4,db5]@14 ~ [a3,d4,g4,c5] ~@6, [c4,d4,g4,c5]@7 ~@25]/2", // Dbsus2 Dsus2 Dbsus2 Am7 Csus2
B: "[[g3,db4,f4]@9 ~ e4@2 ~@5 [gb3,eb4,ab4,c5]@2 ~@5 db4@13 eb4@15 [db4,d4]@2 ~@5 a3@10 a4@12 d4@2 ~ c4@3 ~@3 [g3,db4,f4]@3 ~@3, ~@9 a4@2 ~@43 c4@15 ~@27]/3", // Gm7b5 Ab7 Dmaj7 Gm7b5
C: "[~@2 [g3,e4,a4]@3 ~@4 [gb3,eb4,ab4,c5]@7 ~ bb4 b4@11 a4 ~ b4@2 c5@2 b4@2 ~@2 b4@5 ~@7 bb3 ~@4 d4 ~ f4 ~ gb4@3 ~@4 g4@3 ~@2 ab3 ~@2 g4@2 a4@3 d4@8 c4 ~ e4@2 ~@3 f4@2 ~@2 d4@2 ~ e4@2 c4@13 f4@2 [c4,a4]@3 ~@5 [gb3,c4,a4]@3 ~@4 d5@4 ~@3 d5@6 ~ d5@3 eb5 d5@2 ~ c5@2 d5@3, ~@16 a4@2 ~@26 c5@26 ~@5 c5@6 ~@36 c4 ~@8 c5@3 ~@5 a4@14 ~@12, ~@50 f3@2 ~@13 [bb3,db4]@7 ~@3 ab4 ~@14 ab3@11 ~@16 g3@4 ~@27 [f3,b3]@12]/5", // A7 Ab7 F Gbdim Bbm Fdim
D: "~@2 eb5@3 ~@4 bb3 ~@4 c5@2 b4@2 bb4@5 [ab3,bb3,eb4]@9, ~ g5@6 ~@9, ~@5 e5@9 ~@18", // Absus2
E: "[~ db6@2 d6@33 [ab3,bb3,d4,f4] ~ [eb3,bb3,d4,a4]@4 ~@4 eb3@3 ~@4 [eb3,gb3,f4,a4,bb4]@7 [d3,g3,a4,c5,e5]@12 c5@2 ~ f5@2 e5@2 c5@2 ~@3 d5@2 e5@2 ~@6 g3@2 ~@3 e4 ~ g4 ~@2 ab4@4 ~@3 a4@7 [bb3,bb4]@12 bb3 d4 ~ [f3,bb3,d4]@2 ~@3 bb4@2 [bb3,c5]@5 [ab3,bb4]@2 ~@5 [ab3,db4,f4]@7 bb3@2 ~ [f4,g4]@3 ~@4 [db4,eb4]@7 ~@6 [g3,db4,f4,c5,f5,a5]@9 ~, ~ [eb3,g3,bb3,d4,f5,bb5,f6]@35 g3@6 ~@3 [g3,a3,c5]@4 ~@3 [a3,d4,db5,f5]@8 f4@4 ~@10 e5@2 ~@13 d5@29 ~@12 c5@2 ~ a4@4 ~ bb3 ~@53, ~@94 c4 ~@14 eb4@8 ~@21 d4@7 db4 ~@15 db4@3 ~@28]/6", // Bb7 Ebmaj7 Ebm Am7 Bb Bbsus2 Absus2 Db …
F: "[[gb3,eb5,bb5]@3 ~@4 [gb3,c5,c6]@6 ~@2 [db5,db6]@3 ~@4 d6@7 ~ [bb3,d5]@5 [bb3,eb4,g5]@2 ~@5 [a5,c6]@11 ~@3 c4 ~@2 e4@2 ~@3, ~@29 f5@5 ~ db5 ~@6 [g5,ab5]@2 ~@20]/2", // Ebm Gbdim Db Bb Eb Am Abmaj7
G: "[f4@2 ~@3 d4 ~ e4@2 ~ c4@11 c4 g3 ~ [g3,a4]@2 ~@5 [gb3,ab4,c5]@3 ~@5 [a3,b4]@14 ~ c5@2 ~@5 b4@3, ~@21 f4@2 ~@8 db4 ~@21 b4@2 ~@9]/2", // Gsus2 Ab7 Asus2
H: "[~@9 [a3,bb3] ~@8 [bb3,eb4,e4]@20 ~ [a3,d4,g4] ~ [d4,c5]@5 [ab3,d4,c5] ~ [ab3,c5]@3 ~@4 c5@3 ~@5 c5@3 ~@4 [db4,f4,f5]@6 bb3 ~ [gb3,a5]@11 ~@4 [f3,e4,d6]@12 [a3,b3,e4,d5,a5,d6]@2 [b3,e4]@5 [b3,e4]@2 ~ [f3,a3]@5 [f3,a3,bb3,d4,e5,a5,c6]@16 ~ [e3,eb4]@13 ~ [eb3,g3,bb3,d4,bb5,d6,f6]@34 [g3,bb3,d4]@4 ~ [eb3,bb3,a4]@4 ~ gb3@11 ~ [c5,f5]@2 ~ [d3,c4,e5]@14, ~@2 c5@36 a5@2 ~@22 db4@3 ~@24 [gb3,c4,f4,c5,a5]@3 [a3,c4,a5]@14 ~ [f3,a3,d5,d6]@7 e4@12 ~@59 f4@10 [eb3,a3]@14 ~@15, ~@90 c6@4 ~@13 a5@8 [b3,d5,d6]@12 ~@9 [ab3,bb3,ab5,c6]@15 ~@34 eb3@2 ~@2 [g3,d4]@5 [d4,c5]@14 ~@16, ~@56 c5@7 ~@12 f5@17 ~@11 gb3 ~@8, ~@112 c6@8 e6@32 ~@57 g5@14 ~]/7", // Bbmaj7 Eb Dsus4 D7 Dm7b5 Ab Db Gbm …
I: "~@10 g5@2 f5@2 ~ gb4@2 ~@3 e5 ~ d5 ab3@2 ~@2 d5@2 ~ c5 ~, [a3,g4]@12 ~@17 db4@3, ~@5 c5@7 ~@20, ~@8 f5@4 ~@3 e5 ~@16", // A7
J: "[~@3 c5@2 [db4,f4]@3 bb4@2 c5@2 ~ ab4@2 ~@3 g3@2 ~@6 gb3@12 ~ ab4 [bb3,a4]@3 ~@4 [f3,bb3,d4,g4,bb4]@8 ~@3 [f3,bb3]@6, ~@17 [db4,f4]@2 ~@20 [d4,c5]@3 ~@15 [d4,f4]@6 ~]/2", // Db Bbmaj7 Gm7 Bb5 Db D7 Dm
K: "~ [bb3,db4,e4,g4]@5 [a3,c4] ~@6 [bb6,db7]@2 ~@2 [a6,c7] ~@2 [gb6,bb6]@2 ~ [f6,a6]@2 c6 ~ [db6,gb6]@2 ~ c6@2, ~@3 f4 ~@12", // Bbdim Am Bbm Am Gb F Gb5
L: "[a5@2 db6@2 ~ c6@2 f5@2 [gb5,bb5]@2 [f5,a5]@2 ~@3 db5@2 c5@2 ~@3 [bb4,db5]@2 ~ [a4,c5]@2 f4@2 ~ [gb4,bb4]@2 [f4,a4]@2 ~@3 c4 ~@10 g4@4 ~ c4 ~ d4@2 e4@2 ~@3 d4@5 ~@3 d4@6 c4@3 ~@6 a4@2 ~@8, ~@4 a5@2 ~@10 gb5 ~@31 d4@2 ~@35 [gb3,c4]@6 ~@5, ~@49 eb4@2 ~@34 [ab4,c5]@3 ~@8]/3", // Gb F Bbm Am Gb F Gbdim Ab
M: "~@11 [f3,bb3,d4] a4@2 bb4 ~ d5@2 f5@2 a5@3 gb5 g5 ~ a5@2 bb5 ~ c6 d6, ~@13 bb3@3", // Bb
N: "~ f6@2 e6@2 ~ d6@2 db6 ~ c6 ~ bb5@2 a5@2 ~ ab5@2 ~@2 eb5@2 db5@2 c5 ~ bb4@2 g4 ab4@2, ~@5 eb6@2 ~@9 g5@2 ~@14",
O: "a4 ~@2 db5 ~@2 db5 ~ c5@3 f4@7 ~@4 db4@4 ~ f4 ~@4, ~@2 d5@2 ~ d5@2 ~@25",
P: "[c5 ~ d5@2 ~ c5@3 ~ a4@2 ~ f4@3 ~ d4@2 bb3@2 ~ b3@2 g4@2 ~ f4@5 gb3@2 [g3,e4]@6 ~ d4@4 ~@2 eb3 c4@4 ~@3 [eb3,b3]@5 ~@2 d3@5 ~ f4@2 ~@3 eb4@2 f4@2 [eb3,bb3,d4]@3 ~@2 c4@6 ~@9 eb3@2 ~@8 eb3@2 ~@5 a5@2 ~ g5@2 ~ eb5@2 d5@2 c5 ~@4, ~@60 bb3@3 ~@28 c4@9 ~@18 f5@2 ~@8, ~@96 bb3 ~@31]/4", // C Abm Ebmaj7
Q: "db5@2 a4@2 ab4@2 ~ d3@2 eb4@2 c4@2 db4@2 d4 ~ g4@2 gb4@2 ~ f4@2 ~ bb3@3 ~@4, ~@3 gb4 ~@12, ~@7 f4 ~@24",
R: "~@3 [bb3,c4] ~ d4@3 ~@2 eb4@2 d4@2 eb4@2 ~ db4 ~@2 d4@2 g4 ~@2 a4@2 d5@3 a4@2, ~@19 gb3@5 ~@8", // Bbsus2
S: "~@2 bb4@2 ~ d4 ~ gb4@2 a4@3 gb4@2 ~ g4@2 d4@2 bb3@2 ~ g3@2 c4@3 a3@2 db4@2 ~, c5 ~@15, ~ bb3@2 ~@29",
T: "[bb3@2 eb4@2 ~ c4@2 f4@3 db4@2 g4@2 ~@3 a4@2 ~ f4@2 bb4@3 ~@2 c5@2 ~@3 d5@2 ~ b4 ~ e5@3 c5@2 f5@2 ~ d5@2 g5@2 ~ e5 ~ a5@2 ~@2 bb5@2 [f3,d4]@2 ~ f5@2 ~, ~@14 eb4@2 ~@13 db4@10 ~@5 gb3@12 ~@2 bb3 ~@5, ~@15 [ab3,c4,db4]@10 ~@5 f4@9 ~@25]/2", // Dm Dbmaj7
U: "[a5@2 bb5@2 a5 ~@2 bb5@2 a5@2 ~ f5@2 c5 ~ f5@3 f4 ~ [bb4,f5]@3 ab4@2 a4 ~@2 f4 ~ d4@4 ~ bb3 ~ f4@4 ~@4 [g3,db4]@5 ~@3 [gb3,c4,f4]@4 ~@4 d4@4 ~ [f3,b3,f4]@2 ~@2 a4@2 ~ d4@2 f4@3 ~@2 f4@3 ~@5 d4@2 ~@5, ~@16 bb4 ~@53 [ab4,d5]@3 ~@23]/3", // Bb5 Gdim F Fdim Abdim
V: "~@2 [f3,b3,d4]@3 ~@11 bb3@2 ~@6 bb6@2 ~ g6 ~ a6 e6 ~, ~@23 c7@2 ~ gb6@2 ~@4", // Bdim
W: "db6 eb6@2 c6 bb5 ~@2 db6@2 a5 g5 ~@2 gb5 ~ e5 ~ eb5 ~@2 c5@6 ~@4 c5 ~, ~@6 eb6@2 ~@4 a5@2 ~@5 db5@2 ~@11",
X: "[~@2 g5@2 ~ f5@2 a5 ~ c6 ~ e6 ~ f6@2 e6@2 d6 c6@2 ~ a5@2 ~ g5 bb5@2 ~@3 f5 bb5@2 ab5@2 gb5 f5 ~@2 eb5 d5 ~ f5@2 d5 ~ bb4 ~ g4 bb4 ~ d5 ~ f5@2 e5@2 d5@2 bb4@2 ~ c5@2, ~@2 e5 ~@7 bb5 ~@21]/2",
Y: "b4@2 bb4 ~ c5@2 a4@2 bb4@2 a4 ~ g4 gb4@2 ~@2 f4@2 ~ e4@2 ~ c4@3 ~@2 c4@3 ~",
Z: "~@3 eb4@2 ~@3 db5 d5@2 f4@3 ~@2 f4@2 f4@4 ~@3 f4@4 ~@3, ~@8 f5@3 ~@21",
AA: "[~ [eb3,f4]@4 ~@3 d4@3 ~@2 f4@2 [eb3,gb3,a3,d4]@5 f4@3 d4@4 ~@3 [d3,a3,c4,f4]@5 g4@2 ~ d4@3 ~@2 [a3,d4,f4]@2 ~ g4@3 ~ a4@2 bb4@4 ~ c5 ~@2 [a3,d4]@3 ~, ~ [bb3,d4]@2 ~@3 g4@2 ~@7 a4@2 ~@47, ~@7 f4@2 ~@28 f4@2 ~@20 [gb4,db5]@4 ~]/2", // Ebsus2 D Dm7 Dm D5 Bb Gb5
AB: "[~ [d4,d5] [ab3,gb4,e5]@5 ~ f5@5 [db4,f4,g5]@4 ~ ab3@4 ~ [a4,a5]@6 ~@3 c5 ~@2 d5 ~ f5 ~@2 a5@2 ~@2 ab5 a5@2 f5@2 ~@2 c5 ~@2 f5@4 f5@2 ~@4, ~@2 d4@3 ~@2 [ab3,db4,f4]@4 ~@6 [db4,f4,ab4,ab5]@5 ~ [g3,db4,f4]@12 ~@4 [gb3,c4,f4,c6]@3 ~@2 c6@3 ~@17]/2", // D Dbm Gm7b5 A Db Gm7b5 F
AC: "~@4 [f3,d4]@2 ~@6 a6@3 ~@2 g6@3 ~ e6@3 ~@2 e6@2 c6@3 ~, ~@4 bb3 ~@20 f6@2 ~@5", // Dm
AD: "d6@3 ~ c6@3 a5@2 ~ g5@3 ~@2 [f3,gb5]@3 f5@3 ~ d5@2 ~ bb4@4 ~ [bb3,g4] ~, ~@15 bb3 ~@16", // Gbmaj7 Eb
AE: "e5@4 eb5@2 ~ d5@5 db5 ~ [d4,c5]@3 ~@2 d5@3 ~ a4@2 ~@2 bb3 ~ [ab3,c5]@3, ~@13 bb4 ~@2", // D7 Ab
AF: "[~@2 d5@2 ~@3 a4 ~@2 bb4 ~ db4@2 d5@2 ~ a4 ~ bb4 ~@2 c5@3 ~@7 a4 ~@2 c5@2 d5@2 ~@2 bb4@3 ~@9 a4 ~@2 c5@2 d5@2 a4@2 bb4 ~, ~@12 c5 ~@14 gb3@10 ~@27]/2",
AG: "c5@2 d5@2 c5@2 bb4@2 ~ g4@2 ~ f4 ~@7 bb3 c5@2 b4@2 bb4@2 a4 ab4@2 e4 ~, ~@4 a4 ~@11",
AH: "~@2 db4@2 c4@2 ~ e4 ~@2 g4@2 ~ f4 ~ a4 ~ c5 ~ e5@2 ~ e5@2 f5@2 ~ d5@4 c5, ~@13 e5 ~@2",
AI: "~ bb4 d5@2 c5@2 bb4@2 ~@2 bb4@2 a4@2 g4 ab4@2 gb4 ~ f4@2 eb4@2 d4 c4@2 b3@2 ~@4",
AJ: "~@11 a3@2 ~ bb3 ~ d4 ~ f4@2 a4@2 ~@3 g4@2 ~ d4@2 f4@2",
AK: "~@3 f4@2 ~@3 f4@2 ~ e4@3 ~ d4@2 c4@4 ~ b3@2 bb3@3 ~@3 bb3@2, ~@29 c4@2 ~",
AL: "~@5 a3@3 ~@2 bb3@4 ~ c4@4 ~ [eb3,bb3,d4]@3 ~ eb4@2 ~ f4@2 g4@2 ~", // Ebmaj7
AM: "a4@2 ~@3 [bb3,d4,eb4]@2 ~ c5@2 d5@2 ~ eb5@2 f5@2 ~ g5@2 [a3,d4,g4]@2 ~ a5@2 bb5@2 ~ c6@2 d6@2, ~@2 bb4@5 ~@25", // Ebmaj7 Dsus4
AN: "~ e6 ~ f6 ~ g6@2 ~ a6@2 bb6 ~@4 d7@2 f7@3 eb7@2 d7@2 ~ c7 ~ bb6@2 gb6@2 ~, ~@2 a3@2 ~@13 db4 ~@14",
AO: "[gb3,f4,f6]@2 ~ eb6@2 d6@2 c6@2 bb5@2 ~ b5 ~@2 [f3,e4]@2 ~@3 db6@2 ~ e6@2 db6@2 d6@2 ~ c6@2, c4 ~@14 b3 ~@16", // Gbmaj7 Fmaj7
AP: "[bb5@2 a5@2 ~ g5@2 f5@2 ~ e5 ~ [ab3,db4,eb5]@2 ~ db5@2 c5@2 bb4@2 ~ ab4@2 f4@2 [c4,db4] g3 ~ db4@2 c4@2 ~ bb3 ~@4 f3@2 a2@2 a3@2 ~ f3@2 ~ bb3@2 g3@2 c4@2 ~ [gb3,a3]@2 ~ d4@2 b3@2 e4@2 ~ c4@2 f4@2 [f3,b3]@2 g4@2 ~ e4@2 a4@3 f4@2 bb4@2 ~ [bb3,g4] ~ c5@2 g4 ~@2 d5@2 ~ c5, ~@12 f4 ~@13 eb4@2 ~@68]/3", // Absus4 Dbmaj7 Gbm Fdim Eb
AQ: "[~@2 [a3,d4,g4]@2 ~@5 [db4,c5] ~ [g5,ab5,c6]@4 a5 ~@3 c5@3 ~@2 [ab3,d4,g4]@2 ~@5 f5@2 ~ [db4,f4] ~@4 [db4,f4] ~ [g3,db4,f4,f5]@4 ~@3 [e4,a5]@3 ~@4 ab5 [gb3,f4]@3 ~@4 [f3,a3,c4,e4,d5,g5,b5]@12 f3@2 ~ [f3,a3,b3,e4]@4 ~ [a3,b3,e4]@4 [b3,e4]@2 ~@4 f3@14 [e3,ab3,bb3,eb4,c5,e5]@15 [a3,e5,a5]@12 gb3@2 e4@3 ~@2 g4@2 f4 ~@2 e4@2 d4@2 c4@2 ~@4 c4@2 f4@2, ~@34 c5@2 ~@19 [c4,c6]@4 ~@19 e5@2 ~@2 eb5@7 [b3,e4,db5,db6]@3 [a3,bb3,d4,c5]@15 ~@15 a4@2 ~@10 c4 ~ ab3@10 ~@14, ~@55 c5@2 ~@21 e6@17 ~@65, ~@83 eb6@12 ~@65, ~@83 f3@4 [d5,d6]@5 c6@29 ~@39]/5", // Dsus4 Dbmaj7 Abmaj7 G Db Gm7b5 A5 Gbmaj7 …
AR: "~@5 a4@2 ~@5 [gb3,c4,ab4,c5]@4 ~@4 [c4,e4,a4,d5]@12, ~@6 eb4 ~@9", // Ab7 Am
AS: "c5@2 ~ g5@2 ~ d5@2 c5 ~ d5@5 eb5@3 ~@4 [bb3,d4] ~@5 c5@2 b4@2, ~ [f3,e4]@3 ~@7 f3 ~@4, ~@2 d5@3 eb5@2 ~@8 g5@13 ~@4, ~@3 b3@5 ~@10 e5@10 ~@4", // Bb Fmaj7
AT: "[~@6 [e3,bb3]@9 ~ [eb3,g3,bb3,f4]@26 [eb3,g3,bb3,d4]@9 ~ [eb3,g3,bb3,d4]@7 [eb3,gb3,a3,d4]@5, ~ bb4@14 [bb4,f5]@28 ~@8 a4@8 c5@3 ~@2, ~@5 eb4@10 ~@27 f4@17 ~@5]/2", // Edim Eb Ebmaj7 D Bb5
AU: "[~@2 [eb3,gb3,a3,d4,f4,a4,c5,f5]@7 ~ [d3,a3,c4,g4,c5]@14 ~@5 c5@2 f5@2 ~ g5@2 f5@2 e5 ~@4 e5 ~@2 d5 ~@4 d5@2 c5 ~@4 c5 ~@2 bb4 ~@2, ~@9 [e5,g5]@15 [a3,d4,f4]@10 ~@30]/2", // D7 Dsus4 Em Dm
AV: "~ bb4 ~@7 [g3,db4,f4] ~@9 [gb3,c4,eb4]@12 ~, ~@4 a4@27 ~", // Gm7b5 Cdim
AW: "[d4,c5]@2 ~@5 [f3,bb3,d4,g4,bb4]@9 ~ [f3,bb3,d4]@6 ~ [e3,db4]@6 ~@2, [f4,a4] ~@15 g4@7 a4@6 ~@3, ~@12 bb3 ~@3", // D7 Gm7 Bb Dbm F
AX: "[~@5 [g3,db4]@4 [g3,db4]@5 [g3,db4]@7 [g3,db4,eb4,ab4,c5]@8 ~ gb3@6 ~ [gb3,c4]@6 ~ [gb3,c4,eb4,ab5,c6]@7 [gb3,c4,eb4,eb5,ab5,c6,eb6]@8 db6 ~@11 e4@2 [e5,e6]@3 ~@4 [e4,d5,d6]@3 ~@4 [f3,bb3,c5,c6]@3 ~@5 [f3,a3,bb3]@6 ~ eb5 ~ e5@5 ~ [bb3,g4]@4 ~ [a3,d4,f4,f5]@2 ~@4 [bb3,eb4,g4,bb4,d5,f5]@4 [a3,d4,gb4,a4,db5,e5]@2 ~, ~@4 c4@25 [c4,eb4,eb5]@8 ~@22 [f3,g5,g6]@14 ~@29 [bb3,a4,a5]@6 ~@20, ~@9 f4@20 c5@3 ~@4 c5@23 a3@11 [a3,c4,f5,f6]@2 ~@22 [bb4,bb5]@2 ~@7 eb4@6 [eb4,g5]@5 ~@14, ~@14 a4@16 ~@6 [eb4,eb5,ab5]@7 eb5@7 ~@10 d6@13 ~@55]/4", // Gdim Abmaj7 Gbdim Ab7 E E7 Fsus4 Bbmaj7 …
AY: "~@4 [ab3,db4,f4,ab4,c5]@4 d5 [e4,g4]@2 ~@4 [gb3,b3,bb4,db5]@4 [f3,d4,f4]@2 ~@5 [gb2,db3,ab3,bb3,eb4,ab4]@5 ~, ~@3 eb5@4 ~@2 [c4,b4] ~@4 eb4@5 [bb3,a4,c5] ~@12", // Dbmaj7 Em Gb Dm Ebm7 Cmaj7 F
AZ: "[~@13 b6@32 ~@3, [f2,c3,g3,a3,d4,g4]@2 ~, ~@11 a5@32 ~@5, ~@3 d6@8 ~, ~@25 g6@64 ~@7]/3", // Dm7
})).s("gm_piano").gain(0.4).pan(0.6)
// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
A@2 B@2 ~ C@2 D ~ E F ~ G@2 H@2 I J@2 K L@5 ~@2 M N O@2 P Q R S@3 T U V W X Y Z AA AB@2 AC AD AE AF AG ~ AH AI AJ ~@3
AK AL AM AN AO@2 ~ AP ~ AQ AR AS AT AU ~ AV AW AX ~ AY AZ BA@2 BB ~ BC@2 ~ BD ~ BE BF BG@3 BH ~@3
>`.pickRestart({
A: "[~@14 c4@7 b3@7 ~@4]/2",
B: "[~@10 [g3,c4]@3 ~@4 c4@2 ~@5 [f3,b3]@13 ~@2 e3@13 ~@12, ~@37 [ab3,bb3,c4]@15 ~@12]/2", // C5 Fdim Ab
C: "[~@2 c4@3 ~@4 c4@7 ~ [f3,a3,c4,e4]@13 ~@7 a4@2 ~@25, ~@15 [f3,b3,e4]@7 ~@10]/2", D: "~@2 e3@3 ~@11 a3@8 ~@8",
E: "~@3 [f3,c4,e4]@7 e4@6", F: "~@3 d5 ~@5 [f3,d4]@2 ~@21",
G: "[~@14 d4@3 ~@11 c4@14 d4@6 ~@2 d4@5 ~@9, ~@42 [a3,g4]@13 ~@9]/2", // A7
H: "[~@13 [gb3,c4]@8 ~ [f3,d4,g4]@13 f3 ~@8 f3@6 ~@14]/2", I: "~@2 g3@3 ~@4 g3@7 ~@16",
J: "[[c4,f4]@3 ~@4 [c4,f4]@6 ~@2 [f3,b3,e4]@3 ~@4 [f3,b3,e4,d5]@6 ~@2 [f3,d4]@5 ~ e3@2 ~@19 g3 ~ ab3@4 ~]/2", // F5 E Bdim Dm
K: "~@24 c4@3 ~@5",
L: "[c4@3 ~@4 [f3,c4,e4,g4]@12 g4@2 ~@3 b4@2 a4@2 ~@13 f3@2 ~@8 e3@20 ~@2 [a3,g4]@5 g4 ~ [d4,g4]@3 ~@4 [ab3,d4,g4]@4 ~@4 [g3,f4]@3 ~@4 g3@7 ~ [c4,f4]@11 ~@4 d5@12 ~@8 a3@2 ~@13, ~@22 [f3,a3,b3,e4]@13 ~@15 ab3@21 ~@54 e5@2 ~@33]/5", // C A7 G5 G G7 F5 Fmaj7
M: "~@9 c5@7, ~@17 a3@14 ~", N: "d4@12 ~@3 [a3,d4] ~@7 gb4@2 ~@5 [ab3,f4]@2, ~@23 d4 ~@8",
O: "[~@5 g3@2 ~@17 bb3 ~@2 c4@12 ~ f3@3 ~@12 ab3@2 ~@7, ~@15 a4@23 ~@26]/2", P: "~ e3@5 ~@24 f6 ~",
Q: "~@14 c5 ~@4 f5 ~ a4@2 ~@9", R: "~@9 d4@4 ~ g3 ~@4 e4@2 ~ gb3 ~@5 d4 ~ c4@2, ~@9 c4 ~@22",
S: "[~@5 c4@2 ~@24 f3@3 ~@25 d4@13 ~@11 e5@2 ~@11, ~@5 gb3 ~@24 d4@3 ~@63, ~@31 bb3 ~@27 f3@8 ~@29]/3",
T: "db4 ~@6 b4 ~@14 g3@3 ~@5 a4 ~", U: "~@13 a3@2 ~", V: "~@8 f3@5 ~@2 e3@5 ~ d3 ~@10", W: "~@3 d4 ~@2 g3 ~@9",
X: "~ g3@2 ~@7 [g3,bb3,d4]@2 ~@19 db4", Y: "a3 ~@6 c4@2 ~@12 d4@2 ~@9, ~@7 a3 ~@24", Z: "~@5 g3 ~@13 c4@6 ~@7",
AA: "~ f3@2 ~@29", AB: "[~@25 g4 ~@4 g3@8 ~@6 [c4,f4]@10 f5 ~@9, ~@15 a4 ~@16]/2", AC: "~@17 b4@2 ~@13",
AD: "~@13 g4 f4 ~", AE: "~@21 d4@3 ~@8", AF: "~@16 [f3,d4]@3 ~@13", AG: "~@27 g4 d4 ~@2 d5", AH: "~@29 g4 ~@2",
AI: "~@16 d4 ~@15", AJ: "~@23 d4 ~@7 d4", AK: "~@8 ab5 ~@2 f5 ~@5 d5@2 ~@13", AL: "~@17 d4 ~@14", AM: "~@30 e3 ~",
AN: "~@12 db4 ~ a3@2 ~@12 d4@4", AO: "[~@12 g3@2 ~@13 c4@11 ~@2 a4 ~@13 b3 ~@9]/2",
AP: "~@6 d4 ~@4 e4@2 ~@4 bb3 ~@14", AQ: "~@23 f4 ~@8", AR: "~ d4 ~@4 d4 ~@25", AS: "g3@4 ~@16 g3 ~@11",
AT: "~@5 g4@2 ~@25", AU: "~@2 [d4,g4]@2 ~@8 c7@2 ~@4 g3 ~@13, ~@17 f4@2 ~@13", AV: "~@6 c4 ~@9", AW: "~@5 a3 ~@26",
AX: "~@21 f3@2 ~@9, ~@21 d4 ~@10", AY: "~@3 g3 ~@3 g3 ~@9 g3@3 ~@5 a5@2 ~@5, ~@16 c4@3 ~@13",
AZ: "~@23 a3@2 ~ f3@3 ~@3, ~@25 a3@3 ~@4", BA: "[~@25 db4 d4@13 ~@25]/2", BB: "~@5 f3@3", BC: "[~@8 d4@13 ~@11]/2",
BD: "~@7 gb4 ~@24", BE: "bb3 f3 ~@13 ab3@2 ~@15", BF: "~@15 ab4",
BG: "[~@27 e4@12 f3@2 [f3,a3,b3,e4]@3 ~@4 [f3,a3,b3]@4 ~@3 [a3,d4]@4 ~@3 d4@7 ~ e3@6 e3@3 ~@17, ~@13 c4@6 ~@29]/3", // Fmaj7 Bm7b5 D5
BH: "~@9 g3 ~@5 gb4@4 ~@13",
})).s("gm_piano").gain(0.24).pan(0.6)
// drums · kick
const kick = s("bd").struct(`<
A B C D E F G H I J K L M N O P Q R B S T U V W X Y Z AA AB AC AD AE AF AG W AH AI AJ AK AL AM AN AO AP AG AQ AR AS AT
AU AV AW AX AY AP AZ BA M BB BC BD BE G BF BG BH BI BJ BK BL BM P BN G BO S J U BP W BQ BR BS BT AL BU BV BW U R W BX
BY BZ CA ~@3
>`.pickRestart({
A: "x ~@11 x ~@14 x ~ x ~@2", B: "~@5 x ~@10", C: "~@7 x ~@16 x ~@7", D: "~@5 x ~@13 x ~@2 x ~@9",
E: "~@2 x ~@14 x ~ x ~@11 x", F: "~@29 x ~@2", G: "~@7 x ~@5 x ~@2", H: "~@9 x ~@13 x ~@8", I: "~@7 x ~@6 x ~",
J: "~@2 x!2 ~@5 x ~@6", K: "~ x ~ x ~@11 x ~@16", L: "~ x ~@11 x ~@13 x ~@4", M: "~@10 x ~@16 x ~@4", N: "~ x ~@2",
O: "~@5 x ~@16 x ~@9", P: "~@2 x ~@16 x ~@12", Q: "x ~@16 x ~@4 x ~@8 x", R: "~@14 x ~@14 x ~@2",
S: "~@7 x ~ x ~@11 x ~@10", T: "~@4 x ~@14 x ~@12", U: "~@4 x ~@11 x ~@14 x", V: "~@6 x ~@14 x ~@6 x ~@3",
W: "~@11 x ~@16 x ~@3", X: "~@8 x ~@16 x ~@6", Y: "~@5 x ~@17 x ~@8", Z: "~@3 x ~@14 x ~@13", AA: "x ~@16 x ~@12 x ~",
AB: "~@12 x ~@2 x ~@11 x ~@4", AC: "~@3 x ~@2 x ~", AD: "~@7 x ~@14 x ~@9", AE: "~@7 x ~@11 x ~@12",
AF: "~ x ~@2 x ~@3", AG: "~@2 x ~@11 x ~@16 x", AH: "~@9 x ~@13 x ~@2 x ~@5", AI: "~@6 x ~@16 x ~@8",
AJ: "~@3 x ~@14 x ~ x ~@11", AK: "~ x ~@28 x ~", AL: "~@15 x ~@11 x ~@4", AM: "~@13 x ~@11 x ~@6",
AN: "~@4 x ~@6 x ~@4", AO: "~@7 x ~@12 x ~@11", AP: "~@5 x ~@11 x ~@14", AQ: "~@12 x ~@14 x ~@4",
AR: "~@9 x ~@16 x ~@5", AS: "~@3 x ~@8 x ~@3", AT: "~@4 x ~@13 x ~@2 x ~@10", AU: "~ x ~@14 x ~ x ~@12 x",
AV: "~@13 x ~@2 x ~@11 x ~@3", AW: "~@25 x ~@6", AX: "~@10 x ~@12 x ~@8", AY: "~@3 x ~@6 x ~@5",
AZ: "~@3 x ~@11 x ~@14 x ~", BA: "~@3 x ~@4", BB: "~@7 x ~@24", BC: "~@4 x ~@16 x ~@10", BD: "~@2 x ~@16 x ~@11 x",
BE: "~@4 x ~@2 x", BF: "~@9 x ~ x ~@11 x ~@8", BG: "~@21 x ~@10", BH: "~@3 x ~@5 x ~@6", BI: "~ x ~@13 x ~@16",
BJ: "~@3 x ~@6 x ~@3 x!2", BK: "~@10 x ~@14 x ~ x ~@4", BL: "~@7 x ~@17 x ~@6", BM: "~@5 x ~@13 x ~@12",
BN: "x ~@28 x ~@2", BO: "~@11 x ~@12 x ~@7", BP: "~ x ~@11 x ~@14 x ~@3", BQ: "~@8 x ~@14 x ~@6 x ~",
BR: "~@13 x ~@6 x ~@11", BS: "~@3 x ~@16 x ~@11", BT: "x ~@16 x ~@11 x ~@2", BU: "~@5 x ~@6 x ~@3",
BV: "~@9 x ~@12 x ~@9", BW: "~@4 x ~@2 x ~@11 x ~@12", BX: "~@4 x ~@8 x ~@2", BY: "~@6 x ~@14 x ~ x ~@8",
BZ: "~@3 x ~@28", CA: "~ x ~@16 x ~@12 x",
})).gain(0.05)
// drums · rim
const rim = s("rim").struct(`<
A B C D E F G H I J K L M C N E F O P Q J R L M S N T U O V Q W R X Y S Z T U AA V P AB AC X Y B Z D AD AA G P AE AC K
A B C D AD F G H I J K A M C N E F O H AF J R L M S N E U O V Q W R L Y S Z T U ~@3
>`.pickRestart({
A: "~@11 x ~@4", B: "~@19 x ~@12", C: "~@17 x ~@14", D: "~@7 x ~@8", E: "~@3 x ~@4", F: "~@9 x ~@22", G: "~@3 x ~@12",
H: "~ x ~@6", I: "~ x ~@28 x ~", J: "~@7 x", K: "~@25 x ~@6", L: "~@23 x ~@8", M: "~@5 x ~@2", N: "~@15 x ~@16",
O: "~@7 x ~@24", P: "~@3 x ~@28", Q: "~@2 x ~@28 x", R: "~@13 x ~@2", S: "~@9 x ~@6", T: "~@13 x ~@18",
U: "~@5 x ~@10", V: "~@5 x ~@26", W: "~@29 x ~@2", X: "~@3 x", Y: "~@21 x ~@10", Z: "~ x", AA: "~ x ~@2",
AB: "x ~@28 x ~@2", AC: "~@27 x ~@4", AD: "~@11 x ~@20", AE: "x ~@14 x", AF: "~ x ~@29 x",
})).gain(0.21)
// drums · snare
const snare = s("sd").struct(`<
A B ~ C D ~@5 E F ~ G H ~@3 I ~@5 F J ~@3 K L M N L O N ~ P ~@2 Q R M K L ~@2 S ~@2 T ~@4 U ~@2 V H D ~ W X ~@5 V ~ D
~ C ~@3 F ~@4 Y ~ M ~@3 Z AA O AB AC AD AE ~@3
>`.pickRestart({
A: "~@5 x ~@2 x ~@3 x ~@6 x ~@7 x ~@4", B: "~@2 x!2 ~ x ~@4 x ~@6 x ~@2 x ~@3 x ~@7", C: "~@19 x ~@12", D: "~@3 x",
E: "~@15 x", F: "~ x ~@30", G: "x", H: "~@27 x ~@4", I: "~@10 x ~@4 x ~ x ~ x ~@12", J: "~@5 x ~@2", K: "~@5 x ~@10",
L: "~@7 x ~@24", M: "~@3 x ~@4", N: "~@31 x", O: "~ x ~@6", P: "~@13 x ~@2", Q: "~@10 x ~@2 x ~@18", R: "~ x ~@2",
// … 100 more lines
More by Gershwin
A Foggy DayA♭ major · 120 bpmAn American in ParisC major · 122 bpmBess, you is my woman now (Porgy, Bess)G minor · 104 bpmBy StraussG major · 111 bpmFor You, for Me, for EvermoreE♭ major · 102 bpmGershwin MedleyG minor · 170 bpmIt Ain't Necessarily SoG minor · 84 bpmLet's Call the Whole Thing OffG major · 120 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.