0:00/0:00
// My Maria — B.W. Stevenson
// 120 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (5/4 at bar 1, 4/4 at bar 3) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 109 bars on a 16-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 · fretless bass · "BASS"
const bass = note(`<
~@2 A B@2 C@8 D@2 E@4 F G H I J K L M N@2 B@2 O P Q R S R T R U V W R S R X Y S Z AA AB AC AD AE AF AG@2 AH AI H I J
AJ AK AL AM AN H AL J AO H AL AP AQ L AR J AS H AT AU AV H AL AW AX H AY AM AZ BA BB BC BD L BE AP BF S BG BH BI BJ BK
BL@3 ~
>`.pickRestart({
A: "~@5 eb2 g2 bb2", B: "eb3/2", C: "[eb2@4 bb2@3 ab2@9]/2", D: "[eb1@4 bb1@2 eb2@2 bb1@6 ab1@7 ~ ab1 ~ ab1@8]/2",
E: "[eb1@6 bb1 ~ bb1@5 ~ ab1@7 ~ ab1 ~ ab1@8]/2", F: "eb1@6 bb1 ~ bb1@5 ~ ab1 ~",
G: "ab1 ~ ab1@3 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1@2", H: "eb1@4 g1@2 bb1 ~ bb1@6 ab1 ~", I: "ab1@2 c2 eb2 eb1@2 f1 g1",
J: "ab1@6 bb1@4 ab1@4 eb1 ~", K: "eb1@5 ~ eb1@2 bb1@8", L: "eb1@4 g1@2 bb1 ~ bb1@6 ab1@2", M: "~ ab1@2 eb1@4 g1",
N: "[ab1@5 ~ ab1@3 ~ ab1@4 eb1@17 ~]/2", O: "eb2@4 bb2@3 ab2", P: "~@2 ab2@3 ~ ab2@3 ~ ab2 ~ ab2@2 ab2 ~",
Q: "eb1@8 bb1@5 ~ ab1 ~", R: "ab1@5 ~ ab1 ~ ab1@8", S: "eb1@4 g1@2 ab1@2 bb1@6 ab1 ~", T: "eb1@4 bb1@3 g1",
U: "eb1@6 g1@2 bb1@6 ab1 ~", V: "ab1@5 ~ ab1 ~ ab1@6 ~@2", W: "eb1@4 eb2@2 c2@2 bb1@5 ~ bb1@2",
X: "eb1@4 eb2@2 c2@2 bb1@6 ab1 ~", Y: "ab1@5 ~ ab1 ~ ab1@3 ~ ab1@4", Z: "ab1@5 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~",
AA: "bb1@4 ~@2 bb1 ~ bb1@8", AB: "ab1@5 eb2 ab1@2", AC: "eb1@2 ~@2 eb1@6 bb1@2 ~@2 ab1 ~",
AD: "ab1@5 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1@2", AE: "bb1 ~@3 bb1@5 ~ bb1 ~ bb1 ~ bb1@2",
AF: "ab1@5 ~ ab1 ~ ab1@4 eb2@3 ~", AG: "[~ eb1 ~@2 eb1@6 bb1@2 ~@2 ab1@7 ~ ab1@2 ab1 ~ ab1@2 ab1 ~ ab1@2]/2",
AH: "eb2@2 bb1@2 eb1@2 ~@4 bb1@2 ~@2 ab1 ~", AI: "ab1@5 ~ ab1 ~ ab1 ~ ab1@2 c1@2 d1 ~",
AJ: "eb1@3 ~ eb1 ~ eb1@2 c2@2 eb2@2 c2@2 bb1@2", AK: "eb1@4 g1@2 bb1 ~ bb1@5 ~ ab1 ~", AL: "ab1@2 c2 eb2 eb1@3 g1",
AM: "ab1@5 ~ ab1@3 ~ ab1@4 eb1@2", AN: "f2@3 eb2 f2@2 eb2 bb1", AO: "eb1@5 ~ eb1@2 c2@2 bb1@2 c2@2 bb1@2",
AP: "ab1@5 ~ ab1@3 ~ ab1@4 eb1 ~", AQ: "eb1 ~ eb1@2 c2@2 bb1@2 c2@2 bb1@2 c2@2 bb1@2", AR: "~ ab1 c2 eb2 eb1@2 f1 g1",
AS: "eb1@5 ~ eb1 ~ eb1 ~ eb1 ~ eb1@3 ~", AT: "ab1 ~ ab1@2 c2@2 eb2@2 eb1@4 f1@2 g1@2",
AU: "ab1@5 ~ ab1@3 ~ ab1@3 ~ ab1@2", AV: "g2 eb2 g2 bb2 bb1 c2 bb1 f1", AW: "ab1@6 bb1@2 ~@2 ab1@4 eb1 ~",
AX: "eb1@2 f1@2 g1@2 bb1@2 c2@2 f1@2 bb1 ~ bb1@2", AY: "ab1 ~ ab1@2 c2@2 eb2@2 eb1@5 ~ g1@2, ~@4 b1 ~@11",
AZ: "eb1 ~ eb1@2 [b1,c2] ~ c2@2 bb1 ~ bb1@2 g1@2 f1@2", BA: "eb1@4 ab1!2 bb1 ~ bb1@6 ab1@2, ~@2 g1 ~@5",
BB: "ab1 ~ ab1@2 c2@2 eb2@2 eb1@6 f1@2", BC: "ab1@5 ~ bb1@4 ab1@4 eb1 ~", BD: "eb1@5 ~ eb1@2 g1@2 eb1@2 g1@2 eb1 ~",
BE: "ab1 ~ ab1@2 c2@2 eb2@2 eb1@3 ~ eb1@2 g1@2", BF: "eb2 g2 eb2 c2 eb2 c2 bb1 f1",
BG: "ab1@4 bb1@2 c2@2 eb1@5 ~ eb1@2", BH: "ab1@6 bb1@4 ab1@3 ~ eb1 ~",
BI: "eb1 ~ eb1@2 c2@2 bb1@2 c2@2 bb1@2 g1@2 f1@2", BJ: "eb1@5 ~ bb1 ~ bb1@5 ~ ab1 ~",
BK: "ab1@4 c2@2 eb2@2 eb1@5 ~ eb1@2", BL: "[ab1 ~ ab1@3 ~ ab1@3 ~ ab1@3 ~ eb1@34]/3",
})).s("gm_fretless_bass").gain(0.8)
// other · fiddle
const fiddle = note("<~@40 A B@2 ~@66>".pickRestart({
A: "~@4 ab4@2 bb4 ~ bb4@2 ab4@4 g4 f4", B: "[eb4@9 ~@7]/2",
})).s("gm_fiddle").gain(0.22)
// chords · acoustic guitar steel · "GUITAR AC."
const acoustic_guitar_steel = note(`<
A B C D C E F E F E F G F H I E F G J K@2 L@2 M@2 N@2 O@3 P@2 Q R S@2 T@2 U V@2 W@4 X@4 Y Z AA@2 AB AC AD@2 AE@2 AF@2
AG AH AI@2 AJ AK AL AM AN AO AP@2 AQ@2 AR@2 AS AT AU@2 AV AW AP@2 AX@2 AY@2 AZ BA BB@2 BC@2 BD@2 BE BF BG@2 BH@2 AP@2
BI@3 ~
>`.pickRestart({
A: "~@10 eb2@2 gb2 g2 bb2@2", B: "eb2@7 ~ [bb2,f3]@6 [ab2,eb3] ~",
C: "~@2 [ab2,eb3]@3 ~ [ab2,eb3]@2 c3@2 eb3@2 gb2 g2 eb3@2", D: "eb2@4 [bb2,f3]@3 [ab2,eb3]",
E: "eb2@4 [bb2,eb3,g3] ~@3 [bb2,f3,bb3]@6 [ab2,eb3,ab3] ~", F: "~ ab2@2 ab2 c3 eb3 g2 eb3, ~ [eb3,ab3]@3 ~@4",
G: "eb2@4 [bb2,eb3,g3] ~@3 [bb2,f3,bb3]@5 ~ [ab2,eb3,ab3] ~", // Eb Bb5 Ab5
H: "eb2@4 [bb2,eb3,g3]@2 ~@2 [bb2,f3,bb3]@5 ~ [ab2,eb3,ab3] ~", // Eb Bb5 Ab5
I: "~@2 ab2@4 ab2@2 c3@2 [ab2,eb3]@5 ~, ~ [eb3,ab3]@3 ~@4", J: "~ ab2@2 ab2 c3 [ab2,eb3]@3, ~ [eb3,ab3]@3 ~@4",
K: "[eb2@4 [bb2,eb3,g3] ~@3 [bb2,f3,bb3]@6 [ab2,eb3,ab3]@4 ab2@4 ab2@2 c3@2 eb3@2 c3@2 eb3@2, ~@18 [eb3,ab3]@7 ~@7]/2", // Eb Bb5 Ab5
L: "[[eb2,bb2,eb3]@4 g2@2 bb2 ~ [bb2,f3,bb3]@6 [ab2,eb3,ab3]@4 [ab2,eb3,ab3]@3 ~ [eb2,bb2,eb3]@6 [eb2,bb2,eb3]@3 ~]/2", // Eb5 Bb5 Ab5 Eb5
M: "[[ab2,eb3,ab3]@6 [bb2,f3,bb3]@3 ~ [ab2,eb3,ab3]@4 eb2@8 eb2@2 bb2@3 ~ bb2@3 ~, ~@7 [bb2,eb3]@5 ~@4]/2", // Ab5 Bb5 Ab5 Eb5
N: "[[eb2,bb2,eb3]@4 g2@2 eb3 ~ [bb2,f3,bb3]@6 ab2@4 ab2@2 c3@2 ~@2 eb2@4 ~@2 eb3@2, ~@14 [eb3,ab3]@7 ~ eb3@8 ~@2, ~@24 bb2@7 ~, ~@7 eb2]/2", // Eb5 Bb5 Ab5
O: "[[ab2,eb3,ab3]@6 ab2@4 ab2@2 c3@2 eb2@12 eb2@2 g2@2 ~@2 eb2@8 [bb2,f3]@5 ~ [ab2,eb3] ~, ~@6 [eb3,ab3]@7 ~ [bb2,eb3]@14 ~@2 bb2@10 ~@8]/3", // Ab5 Bb5 Ab5 Eb5
P: "[~@2 [ab2,eb3]@4 [ab2,eb3]@2 c3@2 eb3@2 gb2 g2 ~@2 eb2@8 [bb2,f3]@6 [ab2,eb3] ~, ~@7 eb3@5 ~@4]/2", // Ab5 Bb5 Ab5
Q: "~@2 [ab2,eb3]@4 [ab2,eb3]@2 c3@2 eb3@2 gb2 g2 eb3@2", // Ab5
R: "[eb2,bb2,eb3]@4 [bb2,eb3,g3] ~@3 [bb2,f3,bb3]@5 ~ [ab2,eb3,ab3] ~", // Eb5 Eb Bb5 Ab5
S: "[~@2 ab2@4 ab2@4 ab2@2 c3@2 ~@2 [eb2,bb2]@4 [bb2,eb3,g3] ~@3 [bb2,f3,bb3]@5 ~ [ab2,eb3,ab3]@2, ~@2 [eb3,ab3]@11 ~ eb3@6 ~@12]/2", // Eb5 Eb Bb5 Ab5
T: "[~@2 ab2@4 ab2@2 c3@2 eb3@2 c3@2 ~@2 [eb2,bb2]@4 [bb2,eb3,g3] ~@3 [bb2,f3,bb3]@5 ~ [ab2,eb3,ab3] ~, ~ [eb3,ab3]@3 ~@3 eb3@3 ~@6]/2", // Eb5 Eb Bb5 Ab5
U: "~ ab2@4 ab2 c3 eb3, ~ [eb3,ab3]@5 ~@2", // Ab5
V: "[[eb2,bb2,eb3]@4 [bb2,eb3,g3] ~@3 [bb2,f3,bb3]@5 ~ [ab2,eb3,ab3]@4 [ab2,eb3]@4 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2, ~@9 ab3@7]/2", // Eb5 Eb Bb5 Ab5
W: "[[eb2,bb2,eb3]@4 [bb2,eb3,g3] ~@3 [bb2,f3,bb3]@6 [ab2,eb3]@4 [ab2,eb3]@4 ab2@4 ab2@2 c3@2 ~@2 [eb2,bb2]@4 [bb2,eb3,g3] ~@3 [bb2,f3,bb3]@6 [ab2,eb3,ab3]@4 [ab2,eb3]@4 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@4, ~@14 ab3@15 ~@21 ab3@14, ~@22 eb3@7 ~ eb3@6 ~@28]/4", // Eb5 Eb Bb5 Ab5 Eb5 Eb Bb5 Ab5
X: "[[eb2,bb2,eb3]@4 [bb2,eb3,g3]@2 ~@2 [bb2,f3,bb3]@6 [ab2,eb3,ab3]@4 [ab2,eb3,ab3]@4 ab2@4 ab2@2 c3@2 ~@2 [eb2,bb2]@4 [bb2,eb3,g3] ~@3 [bb2,f3,bb3]@6 [ab2,eb3,ab3]@4 [ab2,eb3,ab3]@4 [ab2,eb3]@4 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3] ~, ~@22 [eb3,ab3]@7 ~ eb3@6 ~@18 ab3@9 ~]/4", // Eb5 Eb Bb5 Ab5 Eb5 Eb Bb5 Ab5
Y: "[bb2,f3,bb3]@3 [bb2,f3,bb3] [bb2,f3,bb3]@4", Z: "[ab2,eb3]@3 [ab2,eb3] [ab2,eb3]@2 [ab2,eb3]!2, ab3",
AA: "[~@4 [eb2,bb2,eb3]@6 [bb2,f3,bb3] ~@3 [ab2,eb3,ab3]@8 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2]/2", // Eb5 Bb5 Ab5
AB: "[bb2,f3,bb3] ~@3 [bb2,f3,bb3]@6 [bb2,f3,bb3]@2 [bb2,f3,bb3]@2 [bb2,f3,bb3]@2", // Bb5
AC: "[ab2,eb3]@3 [ab2,eb3] [ab2,eb3,ab3]@2 [ab2,eb3,ab3]!2, ab3 ~", // Ab5
AD: "[~@4 [eb2,bb2,eb3]@5 ~ [bb2,f3,bb3]@2 ~@2 [ab2,eb3,ab3]@8 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2]/2", // Eb5 Bb5 Ab5
AE: "[~@4 [eb2,bb2,eb3]@6 [bb2,f3,bb3] ~@3 [ab2,eb3,ab3]@8 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3] ~]/2", // Eb5 Bb5 Ab5
AF: "[eb2@4 g2@2 bb2 ~ [bb2,f3]@6 [ab2,eb3]@4 [ab2,eb3]@2 c3@2 eb3@2 [eb2,bb2]@7 ~]/2", // Bb5 Ab5 Eb5
AG: "[ab2,eb3]@6 [bb2,f3]@3 ~ [ab2,eb3]@4 [eb2,bb2] ~", AH: "[eb2,bb2]@3 [eb2,bb2] c3 eb3 c3 bb2",
AI: "[~@6 bb2@2 [bb2,f3]@5 ~ [ab2,eb3]@4 [ab2,eb3]@2 c3@2 ~@2 [eb2,bb2]@8, eb2 ~@3, ~@2 g2@2 ~@7 eb3@5]/2", // Bb5 Ab5 Eb5
AJ: "[ab2,eb3]@5 ~ [ab2,eb3]@2 ~@2 [ab2,eb3]@4 [ab2,eb3]@2", AK: "f3@6 eb3@2 f3@4 eb3@2 bb2 ~",
AL: "eb2@4 g2@2 bb2 ~ [bb2,f3]@6 [ab2,eb3]@2", AM: "~@2 [ab2,eb3]@2 c3@2 eb3@2 [eb2,bb2]@7 ~",
AN: "[ab2,eb3]@5 ~ [bb2,f3]@2 ~@2 [ab2,eb3]@2 ~@2 [eb2,bb2] ~", AO: "eb2@3 eb2 bb2@4, bb2 ~",
AP: "[eb2@4 g2@2 bb2 ~ [bb2,f3]@6 [ab2,eb3]@4 [ab2,eb3]@2 c3@2 ~@2 [eb2,bb2]@7 ~, ~@22 eb3@9 ~]/2", // Bb5 Ab5 Eb5
AQ: "[[ab2,eb3]@2 [ab2,eb3]@4 [ab2,eb3]@4 [ab2,eb3]@3 ~ [eb2,bb2]@6 [eb2,bb2]@2 [eb2,bb2]@2 [eb2,bb2]@2 [eb2,bb2]@2 [eb2,bb2]@2 [eb2,bb2]@2]/2", // Ab5 Eb5
AR: "[eb2@4 g2@2 bb2 ~ [bb2,f3]@6 [ab2,eb3]@4 [ab2,eb3]@2 c3@2 ~@2 eb2@4 f2@2 g2 ~, ~@22 eb3@7 ~@3]/2", // Bb5 Ab5
AS: "ab2@6 [bb2,f3]@2 ~@2 [ab2,eb3]@4 [eb2,bb2] ~", AT: "[eb2,bb2]@3 [eb2,bb2] bb2@4",
AU: "[eb2@3 ~ g2@2 bb2 ~ [bb2,f3]@6 [ab2,eb3]@4 [ab2,eb3]@2 c3@2 ~@2 eb2@7 ~, ~@22 eb3@9 ~]/2", // Bb5 Ab5
AV: "[ab2,eb3] [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]", AW: "[eb2,bb2]@10 [eb2,bb2]@2 [eb2,bb2]@2 [eb2,bb2] ~",
AX: "[[ab2,eb3]@3 [bb2,f3]@2 [ab2,eb3]@2 ~ [eb2,bb2]@4 bb2@4, ~@7 eb3@5 ~@4]/2", // Ab5 Bb5 Ab5 Eb5
AY: "[eb2@4 ~@2 bb2@2 [bb2,f3]@6 [ab2,eb3]@4 [ab2,eb3]@2 c3@2 ~@2 eb2@7 ~, ~@4 g2@4 ~@14 eb3@9 ~]/2", // Bb5 Ab5
AZ: "[ab2,eb3]@6 [ab2,eb3]@4 [ab2,eb3]@4 [eb2,bb2] ~", BA: "[eb2,bb2]!8",
BB: "[[eb2,bb2]@4 g2@2 bb2 ~ [bb2,f3]@6 [ab2,eb3]@4 [ab2,eb3]@2 c3@2 ~@2 eb2@7 ~, ~@22 eb3@9 ~]/2", // Eb5 Bb5 Ab5
BC: "[[ab2,eb3]@6 [bb2,f3]@4 [ab2,eb3]@3 ~ [eb2,bb2]@8 [eb2,bb2]@2 g2@2 eb2 ~ g2@2 eb2 ~]/2", // Ab5 Bb5 Ab5 Eb5
BD: "[~@6 bb2@2 [bb2,f3]@6 [ab2,eb3]@4 [ab2,eb3]@2 c3@2 ~@2 [eb2,bb2]@6 eb2 ~, eb2 ~@3, ~@4 g2@4 ~@14 eb3@9 ~]/2", // Bb5 Ab5 Eb5
BE: "[ab2,eb3]@2 [ab2,eb3]@4 [ab2,eb3]@4 [ab2,eb3]@4 [ab2,eb3] ~", // Ab5
BF: "[eb2,bb2]@2 [eb2,bb2]@2 [eb2,bb2]@2 [eb2,bb2]@2 [eb2,bb2]@2 [eb2,bb2]@2 [eb2,bb2]@2 [eb2,bb2] ~", // Eb5
BG: "[[eb2,bb2]@4 g2@2 bb2 ~ [bb2,f3]@6 [ab2,eb3]@4 [ab2,eb3]@2 c3@2 ~@2 [eb2,bb2]@7 ~, ~@22 eb3@9 ~]/2", // Eb5 Bb5 Ab5 Eb5
BH: "[[ab2,eb3]@6 [bb2,f3]@4 [ab2,eb3]@3 ~ [eb2,bb2]@6 [eb2,bb2]@2 [eb2,bb2]@2 bb2@8, ~@7 eb3@5 ~@4]/2", // Ab5 Bb5 Ab5 Eb5
BI: "[[ab2,eb3]!2 ~ [ab2,eb3] ~ [ab2,eb3] ~ [eb2,bb2,eb3]@16 ~]/3", // Ab5 Eb5
})).s("gm_acoustic_guitar_steel").gain(0.48).pan(0.6)
// chords · acoustic guitar steel · "GUITAR AC."
const acoustic_guitar_steel_2 = note(`<
~@13 A@2 B@2 C@2 D@2 E@2 F G H@2 I@2 ~@7 J K@2 ~ L M@2 N O P O Q R S T U@2 V W X@2 Y@2 Z@2 AA@2 AB AC AD@2 AE@2 AF@2
AG@2 AH@2 AI@2 AJ@2 AK@2 AL@2 AM@2 AN@2 AO@2 AP@2 AQ@2 AR@2 AS@2 AT@2 AU@2 AV@2 AW@2 AX@3 ~
>`.pickRestart({
A: "[~@4 [eb4,g4]@4 [f3,bb3,c4,d4,f4]@5 ~ [bb3,c4,eb4]@4 ~@6 [bb3,c4,eb4]@8, eb3@4 ~@3 [eb3,ab3]@4 [eb3,ab3]@5, ~ bb3@3 ~@5 [bb3,c4,eb4]@3 ~@4]/2", // Eb Bb Cm7 Ab5 Cm7
B: "[~@2 [eb4,g4]@2 [f3,bb3,c4,d4,f4]@3 [bb3,c4,eb4]@2 ~@6 eb4, eb3@4 ~@3 [eb3,ab3]@4 ab3@5, ~@2 bb3@6 ~@10 [bb3,c4,eb4]@6 [c4,eb4]@5 c4@3, ~@11 eb3@2 eb3@3, ~@6 bb3!2]/2", // Eb Bb Cm7 Ab5 Cm7 Cm
C: "[~@2 [eb4,g4]@2 [f3,bb3,c4,d4,f4]@3 [bb3,c4,eb4]@2 ~@3 [bb3,c4,eb4]@4, eb3@4 ~@3 [eb3,ab3]@4 [eb3,ab3]@5, ~ bb3@3 ~@5 [bb3,c4,eb4]@3 ~@4]/2", // Eb Bb Cm7 Ab5 Cm7
D: "[~@4 [eb4,g4]@4 [f3,bb3,c4,d4,f4]@6 [bb3,c4,eb4]@4 ~@8 eb3@5 ~, eb3@4 ~@3 eb3@4 eb3@2 ~@3, ~@2 bb3@6 ~@6 ab3@10 [ab3,bb3,c4,eb4]@7 ~, ~@9 [bb3,c4,eb4]@3 ~@4]/2", // Eb Bb Cm7 Ab Cm7
E: "[[bb3,eb4,g4]@4 ~@2 eb3@2 [bb3,d4,f4]@4 [bb3,d4,f4]@2 [ab3,c4,eb4]@4 [ab3,c4,eb4]@4 [eb3,g3,bb3,eb4] ~ [g3,bb3,eb4]@4 ~@2 eb3@2, eb3@3 ~ bb2@3 ab2@4 ~ eb3@3 ~, ~ [bb3,eb4,g4] ~@5 [g3,bb3,eb4]]/2", // Eb Bb Ab Eb
F: "[ab3,c4,eb4]@4 [ab3,c4,eb4]@2 [bb2,bb3,d4,f4]@3 ~ [ab2,ab3,c4,eb4]@4 [eb3,g3,bb3,eb4] ~, ab2@3 ~@5", // Ab Bb Ab Eb
G: "[g3,bb3,eb4] ~ [bb3,eb4] [eb3,bb3,eb4], eb3@3 eb3@3 ~@2, ~ g3@3, ~ [bb3,eb4] f3@2", // Eb Eb5
H: "[[bb3,eb4,g4]@2 [bb3,eb4,g4] eb3 [bb3,d4,f4]@2 [bb3,d4,f4] [ab3,c4,eb4]@2 eb4@2 [eb3,g3,bb3,eb4] [g3,bb3,eb4]@2 ~ eb3, eb3@3 ~ bb2@3 ab2@5 ~@2 [g3,bb3,eb4]@2, ~@9 [ab3,c4]@3 eb3@3 ~]/2", // Eb Bb Ab Eb Ab
I: "[[ab2,ab3,c4,eb4]@3 [ab2,ab3,c4,eb4]@2 [ab2,ab3,c4,eb4]@2 [eb3,g3,bb3,eb4]@9]/2", // Ab Eb
J: "~@10 f3@2 [gb3,g3] bb3 c4@2", K: "bb3/2", L: "~@10 g3@2 bb3@2 c4 ~",
M: "[[bb3,eb4]@4 [bb3,eb4]@3 ~ [f3,bb3,d4]@6 [eb3,ab3,c4]@4 [eb3,ab3,c4]@14]/2", // Eb5 Bb Ab
N: "~@4 [g3,bb3,eb4]@3 ~ [f3,bb3,d4]@6 [eb3,ab3,c4]@2", O: "~ [eb3,ab3,c4]@7",
P: "~@4 [g3,bb3,eb4]@4 [f3,bb3,d4]@6 [eb3,ab3,c4] ~", Q: "~@4 [g3,bb3,eb4]@3 ~ [f3,bb3,d4]@6 [eb3,ab3,c4] ~",
R: "~@2 [eb3,ab3,c4]@8 [f3,gb3] ~ bb3@2 g3 ~, ~@11 g3@2 ~@3", S: "[f3,bb3,f4]@15 ~", T: "[eb3,ab3,eb4]",
U: "[~@4 [g3,bb3,eb4]@6 [f3,bb3,d4] ~@3 [eb3,ab3,c4]@17 ~]/2", V: "[f3,bb3,f4] ~@3 [f3,bb3,f4]@11 ~",
W: "[eb3,ab3,eb4]@3 [eb3,ab3,eb4] [eb3,ab3,eb4]@4", X: "[~@4 [g3,bb3,eb4]@6 [f3,bb3,d4] ~@3 [eb3,ab3,c4]@18]/2",
Y: "[~@4 [g3,bb3,eb4]@6 [f3,bb3,d4] ~@3 [eb3,ab3]@6 [eb3,ab3]@2 [eb3,ab3]@2 [eb3,ab3]@2 [eb3,ab3]@2 [eb3,ab3]@2 [eb3,ab3]@2, ~@7 c4@9]/2", // Eb Bb Ab5
Z: "[[eb3,bb3,eb4,g4]@7 ~ [bb2,bb3,d4,f4]@5 ~ [ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~ [eb3,g3,bb3,eb4]@10, ~@14 ab2@7 ~@11]/2", // Eb Bb Ab Eb
AA: "[[ab2,ab3,c4,eb4]@6 [bb2,bb3,d4,f4] ~@3 [ab2,ab3,c4,eb4]@3 ~@7 f3@4 eb3@8, ~@7 [bb3,eb4]@9, ~@7 [eb3,g3]@5 ~@4]/2", // Ab Bb Ab Eb5 Eb
AB: "[eb3,bb3,eb4,g4]@4 [bb2,bb3,d4,f4]@3 [ab2,ab3,c4,eb4]", AC: "~@2 [ab2,ab3,c4,eb4]@3 ~ [eb3,g3,bb3,eb4]@9 ~",
AD: "[[ab2,ab3,c4,eb4]@6 [ab2,ab3,c4,eb4]@4 [ab2,ab3,c4,eb4]@3 ~ [eb3,bb3]@4 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2, ~@14 [g3,eb4]@17 ~]/2", // Ab Eb5 Cm
AE: "[[bb3,eb4,g4]@4 [bb3,eb4,g4]@3 ~ [bb2,bb3,d4,f4]@6 [ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~ [eb3,g3,bb3,eb4]@9 ~, [eb3,g3]@7 ~@7 ab2@7 ~@11]/2", // Eb Bb Ab Eb
AF: "[[ab2,ab3,c4,eb4]@6 [bb2,bb3,d4,f4]@2 ~@2 [ab2,ab3,c4,eb4]@3 ~@17 bb3@2, ~@7 [eb3,eb4]@9, ~@7 bb3@6 bb3 c4@2, ~@7 g3@5 g3@4, ~@11 f3@5]/2", // Ab Bb Ab Eb
AG: "[[bb3,eb4,g4]@4 [bb3,eb4,g4]@3 ~ [bb2,bb3,d4,f4]@6 [ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~ [eb3,g3,bb3,eb4]@10, eb3@8 ~@6 ab2@7 ~@11]/2", // Eb Bb Ab Eb
AH: "[[ab3,c4,eb4]@2 [ab3,c4,eb4]@4 [ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~ [eb3,bb3]@4 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@4, ab2@7 [g3,eb4]@9]/2", // Ab Eb5 Cm
AI: "[~@4 [bb3,eb4,g4]@2 [eb3,g3] ~ [d4,f4,bb4]@4 [d4,f4,bb4]@2 [c4,eb4,ab4]@4 [c4,eb4,ab4]@2 ab3 ~ bb3@4 ~@4 g4@2, [bb3,eb4,g4]@2 ~@5 ab3@3 ~ g3@5, ~ [eb3,g3]@2 ~@8 g4@4 ~, ~@11 eb4@3 eb4@2, ~@13 bb3@3]/2", // Eb Bb Ab Eb
AJ: "[[ab3,c4,eb4,ab4]@5 ~ [bb3,d4,f4,bb4]@2 ~@2 [ab3,c4,eb4,ab4]@3 ~ [bb3,eb4,g4]@4 ~@12 eb4@2, ~@14 g3@15 c4@3, ~@9 g4@7, ~@9 bb3@3 eb4@2 bb3@2, ~@9 eb4 f4@6]/2", // Ab Bb Ab Eb
AK: "[[eb4,g4]@4 [bb3,eb4,g4]@4 [d4,f4,bb4]@4 [d4,f4,bb4]@2 [c4,eb4,ab4]@4 [c4,eb4,ab4]@4 [g3,bb3,eb4,g4]@9 ~, g3@4 ~@3 ab3@4 ~@5, bb3 ~@7 bb3@6 ~@18]/2", // Eb Bb Ab Eb
AL: "[[c4,eb4,ab4]@2 [c4,eb4,ab4]@4 [c4,eb4,ab4]@4 [c4,eb4,ab4]@3 ~ bb3@4 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2, ab3@6 ab3@7 ~ [g3,eb4,g4]@17 ~]/2", // Ab Eb5 Cm
AM: "[[g3,bb3,eb4]@4 [g3,bb3,eb4]@4 [bb2,bb3,d4,f4]@6 [ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~ [eb3,g3,bb3,eb4]@10, eb3@7 ~@7 ab2@7 ~@11]/2", // Eb Bb Ab Eb
AN: "[[ab2,ab3,c4,eb4]@5 ~ [bb2,bb3,d4,f4]@2 ~@2 [ab2,ab3,c4,eb4]@3 ~ [eb3,g3,bb3,eb4]@6 f3 g3 bb3 ~ g3 bb3 c4 ~ g3 bb3 c4 ~]/2", // Ab Bb Ab Eb
AO: "[[g3,bb3,eb4]@4 [g3,bb3,eb4]@3 ~ [bb2,bb3,d4,f4]@6 [ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~ [eb3,g3,bb3,eb4]@9 ~, eb3@8 ~@6 ab2@7 ~@11]/2", // Eb Bb Ab Eb
AP: "[[ab3,c4,eb4]@4 [ab3,c4,eb4]@2 [ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~@9 c4 ~ c4 eb4 f4 ~ g4@2 f4@2, ab2@13 ~ eb3@15 ~@3, ~@7 [g3,bb3,eb4]@5 ~@4]/2", // Ab Eb
AQ: "[[bb3,eb4,g4]@2 [bb3,eb4,g4]@2 [bb3,d4,f4]@2 [bb3,d4,f4] [ab3,c4,eb4]@2 [ab3,c4,eb4]@2 [eb3,g3,bb3,eb4]@5, eb3@4 [bb2,f3]@3 [ab2,eb3]@4 ~@5]/2", // Eb Bb Ab Eb Bb5 Ab5
AR: "[[ab2,eb3,ab3,c4,eb4]@6 [bb2,f3,bb3,d4,f4]@3 ~ [ab2,eb3,ab3,c4,eb4]@3 ~ [eb3,bb3]@4 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2, ~@7 [g3,eb4]@9]/2", // Ab Bb Ab Eb5 Cm
AS: "[[g3,bb3,eb4]@4 [g3,bb3,eb4]@3 ~ [bb2,f3,bb3,d4]@6 [eb3,ab3,c4]@4 [eb3,ab3,c4]@4 [eb3,g3,bb3,eb4]@9 ~, eb3@7 ~@7 ab2@8 ~@10]/2", // Eb Bb Ab Eb
AT: "[[ab3,c4,eb4]@2 [ab3,c4,eb4]@4 [ab2,ab3,c4,eb4]@4 [ab2,ab3,c4,eb4]@3 ~ [eb3,g3,bb3,eb4]@6 c4 eb4 f4@2 c4 eb4 f4@2 c4 eb4 f4 g4, ab2@3 ~@13]/2", // Ab Eb
AU: "[[bb3,eb4,g4]@4 ~@2 eb3@2 [bb3,d4,f4]@4 [bb3,d4,f4]@2 [ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~ [eb3,g3,bb3,eb4]@10, eb3@6 ~@2 bb2@6 ab2@7 ~@11, ~ [bb3,eb4,g4] ~@6]/2", // Eb Bb Ab Eb
AV: "[[ab2,ab3,c4,eb4]@5 ~ [bb2,bb3,d4,f4]@3 ~ [ab2,ab3,c4,eb4]@3 ~ [g3,bb3,eb4]@4 [ab3,f4] ~ [bb3,g4]@3 ~ [bb3,g4]@8, ~@7 eb3@9]/2", // Ab Bb Ab Eb Db Eb
AW: "[[bb3,eb4,g4]@4 [bb3,eb4,g4]@3 ~ [bb3,d4,f4]@4 [bb3,d4,f4]@2 [ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~ [eb3,g3,bb3,eb4]@9 ~, eb3@7 ~ bb2@6 ab2@7 ~@11]/2", // Eb Bb Ab Eb
AX: "[[ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4]@2 ~@2 [ab3,c4,eb4,ab4]@3 ~ [ab3,c4,eb4,bb4]@3 ~ [eb3,bb3,eb4,g4]@32 ~@2]/3", // Ab Eb
})).s("gm_acoustic_guitar_steel").gain(0.29)
// other · overdriven guitar · "GUITAR DIST"
const overdriven_guitar = note("<~@74 A B@4 C@2 D E ~@26>".pickRestart({
A: "~@12 c4@2 bb3 ~",
B: "[bb3@2 bb4@11 ~ bb4@4 eb5@2 ab4@2 eb5@2 g4@2 eb4@2 f4@2 eb4@6 g4@3 ~ f4@2 eb4@2 c4@2 eb4@4 f3@2 eb3@2 c3@2 eb3@2 c3@2 eb3@2 c3@2]/4",
C: "[g3@4 bb3@4 f3@6 g3@4 bb3@2 c4@2 eb4@2 ~ eb4 c4@2 eb4@2 f4 gb4, ~@12 f4 ~@3]/2",
D: "~ bb4!2 eb5 f4 eb4 c4 f4, g4@3 ~@5", E: "eb4@7 ~",
})).s("gm_overdriven_guitar").gain(0.59)
// other · distortion guitar · "GUITAR DIST"
const distortion_guitar = note("<~@82 A@2 B C D E@3 F G@2 H I J@4 K L@2 M N@2 O@4>".pickRestart({
A: "[~@5 g4@2 bb4@5 bb5!2 bb5@2]/2", B: "g5 ~ g5@6 eb5@6 g5@2",
C: "eb5 bb4 eb4 f4 g4 ab4 bb4 c5 bb4@3 f4 [gb4,g4]@2 bb4@2", D: "f4@2 eb4@2 f4@2 eb4@8 bb4 c5",
E: "[bb4@2 bb4@2 f4@2 eb4@2 f4@10 eb4@12 [ab4,eb5]@4 g4@2 f4@2 eb4@2 g4@2 bb4@3 ~ bb4 c5, eb5@5 ~@43]/3", // Ab5
F: "f4@2 eb4@2 f4 eb4 c4 eb4@7 f4 [gb4,g4]", // Gmaj7
G: "[bb4@6 c5@2 f4@2 eb4@8 f4 eb4 f4 eb4 c4 bb3 g3 c4 bb3 g3 ~ eb3 ~@2, ~@14 f3 ~]/2",
H: "~@6 f4 g4 f4 g4 bb4 c5 bb4 c5 eb5 c5", I: "eb5 f5@3 c5@3 g5@2 bb5 g5@2 ~ bb5 ~ bb5, ~@4 eb5 ~@9 g5@2",
J: "[g5@2 bb5 g5@2 bb5 g5@2 bb5 g5@2 bb5 f5@2 eb5@4 c5 eb5 f5 g5 bb5 c6 eb6 eb6@9 f6 eb6 c6 bb5 g5 c6 bb5 g5 f5 eb5 c5 f5@5 eb5 f5 eb5 c5 bb4 g4 c5 bb4 g4 f4 eb4@2 ~@2]/4",
K: "~@4 bb5@2 eb6 ab5@2 eb6 g5@2 eb6 f5@2 eb6", L: "[f5@2 eb5@4 f5 c5 eb5@10 [gb5,g5] eb6 ab5 eb6 a5 eb6 bb5@7 ~]/2",
M: "bb5",
N: "[g5@2 bb5 g5@2 bb5 g5@3 c6 bb5 g5 f5 eb5 [c5,f5] eb5@2 f5 eb5 c5 bb4 g4 c5 bb4 g4 f4 eb4 c4 f4 eb4 c4 bb3]/2", // F5
O: "[g4@3 eb4@2 f3@2 eb3@18 ~@7, eb4 ~@63]/4",
})).s("gm_distortion_guitar").gain(0.29)
// chords · electric guitar clean · "GUITAR ELEC."
const electric_guitar_clean = note(`<
~@21 A@2 B@2 C@2 D@3 ~@2 E@3 ~@6 F@2 G H@2 I@2 J K L M@2 N O P@2 Q@2 R@2 S@3 T U@2 V@2 W@2 X@2 Y@2 X@2 Z@2 AA@2 AB@2
AC@2 AD@2 AA@2 AE@2 AF@2 AG@2 AH@2 AI@2 AJ@2 AK@2 AL@2 AM@4
>`.pickRestart({
A: "[[eb2,bb2]@4 [bb2,f3]@3 [ab2,eb3]@4 [eb2,bb2]@5]/2", B: "[[ab2,eb3]@5 ~ [bb2,f3]@4 [ab2,eb3]@4 [eb2,bb2]@17 ~]/2",
C: "[[eb2,bb2]@8 [bb2,f3]@5 ~ [ab2,eb3]@4 [ab2,eb3]@4 [eb2,bb2]@9 ~]/2", // Eb5 Bb5 Ab5 Eb5
D: "[[ab2,eb3] eb3@2 [ab2,eb3]@2 [ab2,eb3]@2 [eb2,bb2]@16 ~]/3", E: "[~@7 bb5@11 ~@6, ~ f6@5 ~@2, ~@5 eb6@13 ~@6]/3",
F: "[~@3 eb4 ~@2 bb3 eb4@7 g3@2, eb3 ~@3, ~ bb3@3 ~ d4@2 ~@9, ~@2 g4@2 f4@3 ~@9]/2", G: "eb4@7 ~",
H: "[~@4 ab4@2 ~@2 f4@2 ~@2 f4@2 eb4@11 ~@7]/2", I: "[~@12 g4@17 ~ [g4,bb4]@2]/2",
J: "~@2 [eb4,g4]@2 ~@2 [c4,eb4] ~@3 [bb3,eb4] ~@3 [bb3,c4]@2", K: "[f3,bb3]@15 ~",
L: "[ab3,eb4]@6 [ab3,eb4] ~ [ab3,eb4]@8", // Ab5
M: "[~@4 [eb2,bb2,eb3]@6 [bb2,f3,bb3] ~@3 [ab2,eb3]@6 ~@2 [ab2,eb3]@2 eb3@2 ~@2 eb3@2 [ab2,eb3]@2, ~@14 ab3@17 ~]/2", // Eb5 Bb5 Ab5
N: "[bb2,f3,bb3]@15 ~", O: "[ab2,eb3,ab3]",
P: "[~@4 [eb2,bb2,eb3]@6 [bb2,f3,bb3] ~@3 [ab2,eb3]@4 eb3@2 [ab2,eb3]@2 ~@6 ab2@2 [ab2,eb3]@2, ~@7 ab3@9]/2", // Eb5 Bb5 Ab5
Q: "[~@4 [eb2,bb2,eb3]@6 [bb2,f3,bb3] ~@3 [ab2,eb3]@4 [ab2,eb3]@2 eb3@2 eb3@2 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2, ~@7 ab3@9]/2", // Eb5 Bb5 Ab5
R: "[[eb2,bb2,eb3]@8 [bb2,f3,bb3]@6 [ab2,eb3,ab3]@4 [ab2,eb3,ab3]@4 [eb2,bb2,eb3]@9 ~]/2", // Eb5 Bb5 Ab5 Eb5
S: "[[ab2,eb3,ab3]@6 [bb2,f3,bb3]@2 ~@2 [ab2,eb3,ab3]@3 ~ [eb2,bb2,eb3]@10 c3@2 eb3 ~ f3@2 ~@2 [eb2,bb2]@8 [bb2,f3,bb3]@6 [ab2,eb3,ab3]@2, ~@15 eb3@5 ~@4]/3", // Ab5 Bb5 Ab5 Eb5 Bb5 Ab5
T: "~@2 [ab2,eb3,ab3]@4 [eb2,bb2,eb3]@9 ~", // Ab5 Eb5
U: "[[ab2,eb3,ab3]@6 [ab2,eb3,ab3] ~@3 [ab2,eb3,ab3]@4 [eb2,bb2]@6 bb2@2 bb2@2 [eb2,bb2]@2 bb2@2 bb2@2 [eb2,bb2]@2, ~@14 eb3@17 ~]/2", // Ab5 Eb5
V: "[[eb2,bb2,eb3]@8 [bb2,f3,bb3]@6 [ab2,eb3,ab3]@4 [ab2,eb3,ab3]@4 ~@2 eb2@7 ~, ~@22 [bb2,eb3]@9 ~]/2", // Eb5 Bb5 Ab5 Eb5
W: "[[ab2,eb3,ab3]@3 [bb2,f3,bb3]@2 [ab2,eb3,ab3]@2 ~ eb2@3 [eb2,eb3] [eb2,bb2]!3 [eb2,bb2,eb3], ~@7 [bb2,eb3]@4 ~@5]/2", // Ab5 Bb5 Ab5 Eb Eb5
X: "[[eb2,bb2,eb3]@8 [bb2,f3,bb3]@6 [ab2,eb3]@4 [ab2,eb3]@4 ~@2 eb2@7 ~, ~@14 ab3@8 [bb2,eb3]@9 ~]/2", // Eb5 Bb5 Ab5 Eb5
// … 313 more lines
More by
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.