0:00/0:00
// Planet of New Orleans — Dire Straits
// 127 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: pitch bends are ignored
// note: Full arrangement: all 247 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(127/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
const bass = note(`<
~@40 A@7 ~@15 B@4 C@8 D@4 E@5 F@4 G@3 H@2 I@7 ~ C@8 J@7 K@8 L@8 M@3 N@7 O@4 ~@5 A@7 ~@9 P Q@8 ~ R S@4 G@3 H@2 T U@8
G@3 H@2 T V@6 W@6 X@7 Y@2 Z@7 AA@3 AB@12 AC@3
>`.pickRestart({
A: "[~@20 e1@41 ~@7 a1@42 ~@6 e1@48 ~@4]/7", B: "[~@19 a1@69 ~@8]/4",
C: "[~@19 a1@23 ~@2 f2@23 a#1@23 ~ e2@24 f2@24 ~ e2@23 ~ a1@28]/8",
D: "[~@11 e2@8 a2@24 f2@24 a#1@15 d2@3 f#2@4 b2@7]/4",
E: "[~@4 a2@15 f2@24 e2@15 c2@9 a1@36 a1 ~@2 e1@2 ~ g1@3 ~ e1@2 a2@4 ~, ~@43 d2 ~@76]/5",
F: "[~ a2 ~@2 a2@2 ~ e2@5 ~ g2@5 ~ a2@9 ~ [a1,a2]@11 ~@4 a2@23 ~ a2@21 ~@3 e1@2 ~@2]/4", // A
G: "[~@2 e1 ~ e1@2 ~ a1@5 ~@2 d2@4 ~ e2@7 ~@3 e2@3 b1@5 e1@5 ~@2 a1@6 ~@2 a1@3 e1@5 ~@2 g1@5 a1@5]/3",
H: "[~@4 a1@3 e1 ~@2 e1@2 ~@2 g1@4 ~@2 a1@6 ~@2 a1@3 e1@5 ~ g1@6 a1@5]/2",
I: "[~@5 a1@3 c2@5 ~ d2@5 e2@8 ~@2 e2@2 ~ d2@6 b1@6 e1@20 e1 ~@2 f2@24 e2@15 c2@9 a1@48 ~@5, ~@91 d2 ~@76]/7",
J: "[~@11 e2@8 ~ a1@17 e2@6 ~ f2@23 b1@17 ~ e2@3 f#2@2 ~@2 b2@9 a2@12 f#2@3 f2@23 e2@12 ~ e1@11 ~ a2@4, ~@20 a#1 ~@147]/7",
K: "[~@4 e2@8 ~ a1@5 ~@2 f2@23 ~ b1@9 f#2@8 b1@5 ~ e1@12 e2@12 ~ f2@23 e2@10 e1@7 ~@2 e1@3 ~@3 a1@8 ~ e1@14 a1@9 e2@14 ~ a1@5]/8",
L: "[~@5 e2@8 a1@6 f2@23 ~ b1@9 ~ f#2@8 b1@5 ~@2 c#2 ~@7 f#2@3 b2@3 a2@3 b2@3 a2@2 ~ f2@24 e2@15 f#1@3 ~ f1 ~ g#1@2 ~@2 a1@9 e2@8 a2@6 f2@23 ~ b1@5, ~@67 b1@9 ~@57 g1@3 ~@51 c2 ~@4]/8",
M: "[~@5 f#2@8 b1@5 ~@2 e1@9 ~ e2@14 f2@6 ~@2 f1@14 ~ e2@5, ~@52 g1 ~@19]/3",
N: "[~@4 e1@13 ~@2 a1@9 ~ e2@11 e2@3 a2@9 ~ e2@13 ~@2 a1@8 ~ e2@8 g1@5 ~ f1@9 ~ f2@13 ~ b1@9 ~ f#2@8 ~ c#2 ~@5 b2@23 b1@5, ~@133 b1@6 ~@29]/7",
O: "[~@4 f2@9 b1@3 ~ e2@12 e1@5 ~ e1@3 g1@4 ~ a1@48 ~@5]/4", P: "~@7 e2@11 ~@2 a2@4",
Q: "[~@7 g2@10 ~@2 f2@23 ~ b1@18 e2@6 ~ b2@17 b1@6 f2@24 ~ e2@11 e1@6 g#1@6 ~ a1@48 ~@4]/8", R: "~@19 a2@4 ~",
S: "[~ a2 ~@2 a2@2 ~ e2@5 ~ g2@5 ~ [a1,a2]@9 ~ [a1,a2]@11 ~@4 a2@23 ~ a2@21 ~@3 e1@2 ~@2]/4", // A
T: "~@5 a1@3 c2@5 ~ d2@5 e2@5",
U: "[~@5 e2@2 ~ d2@6 b1@6 e1@20 e1 ~@2 f2@24 e2@15 c2@9 a2@4 ~@2 a2 ~@2 a2@2 ~ e2@5 ~ g2@5 ~ [a1,a2]@9 ~ [a1,a2]@11 ~@4 a2@23 ~ a2@21 ~@3 e1@2 ~@2, ~@67 d2 ~@23 a1@24 ~@77]/8", // A
V: "[~@5 e2@2 ~ d2@6 b1@6 e1@20 e1 ~@2 f2@24 e2@15 c2@9 ~ a2@8 e2@8 ~ a1@5 ~@2 f2@23 ~ b1@4, ~@67 d2 ~@23 a1@18 ~@35]/6",
W: "[~@5 f#2@8 b1@5 ~ e1@12 e2@12 ~ f2@23 e2@10 e1@7 ~@2 e1@3 ~@3 a2@8 e2@8 ~ a1@5 ~@2 f2@23 a#1@5]/6",
X: "[~@4 f2@9 a#1@5 ~ e1@12 e2@12 ~ f2@23 e2@10 e1@5 e2@3 g#2@3 e2@3 a2@8 ~@2 e2@8 a2@5 ~@2 f2@8 ~ f2@14 a#1@9 f2@9 a#2@5 ~ e1@5]/7",
Y: "[~@4 e1@10 ~@2 a#1@3 ~ f2@8 ~ f2@5 a#1@3 ~ f2@2 ~ a#1@3 e2@4]/2",
Z: "[~@5 e2@5 b1@3 e2@3 b1@2 ~@2 a2@8 e2@8 ~ a1@5 ~@2 f2@23 a#1@9 f2@9 a#1@5 ~ e1@12 e2@12 ~ f2@23 e2@10 e1@5 e2@3 g#2@3 e2@3 a2@5]/7",
AA: "[~@5 e2@8 a2@5 ~@2 f2@8 ~ f2@14 a#1@9 f2@9 a#2@5 ~ e1@5]/3",
AB: "[~@4 e1@10 ~@2 a#1@3 ~ f2@8 ~ f2@5 a#1@3 ~ f2@2 ~ a#1@3 e2@7 ~@2 e2@5 b1@3 e2@3 b1@2 ~ a2@8 ~@2 e2@8 a2@5 ~@2 f2@8 ~ f2@14 a#1@9 f2@9 a#2@5 ~ e1@5]/6",
AC: "[~@4 e1@10 ~@2 a#1@3 ~ f2@8 ~ f2@5 a#1@3 ~ f2@2 ~ a#1@3 e2@7 ~@2 e2@5 b1@3 e2@3 b1@2 ~@6]/3",
})).s("gm_fretless_bass").gain(0.67)
// other · overdriven guitar
const overdriven_guitar = note(`<
~@7 A@2 ~@7 B@4 ~@10 C@6 D E@3 F@2 G@2 ~@2 H@3 ~@6 I@2 ~@2 J@3 K@5 L@4 ~@2 M@2 N@2 ~@2 O@2 ~@5 P@3 ~@6 Q@4 ~@2 R@6 S@3
T@2 U@3 ~@36 V W@7 ~@5 X Y@3 Z@7 ~@2 AA@3 P@3 ~@5 AB@5 ~ AC@6 AD@7 ~@40
>`.pickRestart({
A: "[~ g4@17 ~@6]/2", B: "[~@6 g4@32 ~ e4@48 ~@9]/4",
C: "[~@19 e5@96 e5@3 ~@4 b4@2 ~@20, ~@59 d#5 c#5 ~@11, ~@119 d5@2 c5@2 ~@21]/6", D: "~@13 d4@11",
E: "[~ g4@66 ~@5]/3", F: "[~@16 d3@17 c#3@15]/2", G: "[~@7 e4@31 ~@10]/2", H: "[~@20 a3@19 g3@3 ~ a3@23 ~@6]/3",
I: "[~@20 d4@14 c4@9 ~@5]/2", J: "[~@16 f#3@2 ~ b3@46 ~@7]/3", K: "[~@19 a3@96 ~@5]/5",
L: "[a3@23 c4@23 ~ b3@45 ~@4]/4", M: "[~@7 e4@11 ~ e4@12 ~ d4@3 c4@8 ~@5]/2", N: "[~@19 a3@22 ~@7]/2",
O: "[~@19 [g#3,c4]@20 ~@9]/2", P: "[~@7 d4@6 c4@3 d4@2 ~ d4@34 ~@19]/3", Q: "[~@19 [g#3,c4]@20 ~@4 a3@48 ~@5]/4",
R: "[~@18 c4@25 f#3@22 ~@3 g#3@6 a3@4 ~@14 [a3,d4]@24 c4@22 ~@6]/6", S: "[~@8 e4@23 d4@3 ~ c4@20 ~@17]/3",
T: "[~@20 d4@23 ~@5]/2", U: "[~@20 d4@47 ~@5]/3", V: "~@9 c#3@11 ~@4",
W: "[~@7 e4@31 ~@6 a5@60 ~@12 a3@19 g3@3 ~ a3@23 ~@6]/7", X: "~@19 c4@5",
Y: "[~@6 d4@12 ~ e4@11 ~ g4@12 ~ b4@22 ~ c5@5]/3", Z: "[~@8 d5@11 ~ d#5@22 ~ b4@23 ~ d5@23 ~ c5@24 a4@48 ~@5]/7",
AA: "[~@19 a3@30 ~@23]/3",
AB: "[~ d4@10 c4@2 [a3,e4]@3 [c4,g4]@3 [d4,a4]@23 ~@2 c4@23 [b3,e4]@48 ~@5, ~ g4@12 ~@30 d4@24 ~@53]/5", // A5 C5 D5 E5
AC: "[~@2 e4@11 d4@3 e4@44 ~ [e4,a4]@3 [g4,b4]@3 [a4,c5]@12 ~ [g4,b4]@11 [a4,c5]@15 [g4,b4]@9 [a4,c5]@29]/6", // A5 G Am G Am G Am
AD: "[~@7 g4@13 ~ e4@40 ~@6 [d4,f4]@24 [e4,g4]@23 ~ [b3,g4]@48 ~@5]/7", // Dm Em
})).s("gm_overdriven_guitar").gain(0.27).pan(0.3)
// other · overdriven guitar · soft notes
const overdriven_guitar_soft = note("<~@35 A ~@66 B@2 C D@2 ~@4 E@2 ~@50 F ~@83>".pickRestart({
A: "~@7 g4@2 ~@3 d#4@2 ~@2 c4@2 ~@6, ~@4 a#4@2 g#4@2 ~ f#4@2 e4@2 ~ d4@2 ~@8, ~@5 a4@2 ~@3 f4@2 ~@3 c#4@2 ~@7",
B: "[~@19 b3@24 ~@5]/2", C: "~@3 b3@7 ~@2", D: "[~@5 g#3@6 ~]/2", E: "[~@19 b3@23 ~@6]/2", F: "~@22 c4 ~",
})).s("gm_overdriven_guitar").gain(0.13).pan(0.3)
// chords · string ensemble 2
const string_ensemble_2 = note(`<
~@30 A@6 B C D@6 E@5 ~@65 F@8 G@8 H@7 I@5 J@8 K@2 L@8 M@8 N@8 ~@28 O@6 P@8 Q@24 R@5
>`.pickRestart({
A: "[~@19 b3@49 g3@46 f3@30]/6", B: "~@3 e3", C: "~@7 g3@12 g3@5, ~@7 [b3,e4]@17",
D: "[~@20 c4@47 [e3,g3,b3,e4]@48 [f3,a#3,f4]@29, ~@19 [a#3,f4]@48 ~@48 c4@24 ~@5]/6", // Em A#5
E: "[~@43 b3@72 ~@5, ~@19 [e3,g3,e4]@96 ~@5]/5", // Em
F: "[~@19 [c4,e4]@48 d#4@24 ~@24 a3@24 g#3@24 [a3,c4]@29, ~@67 b3@47 ~@78, ~@91 d4@72 ~@29]/8", // C Am
G: "[~@11 g#3@5 ~@4 b3@23 ~ f3@22 ~ f#3@48 ~@25 e3@23 [c4,e4]@29, ~@10 g4@6 ~@4 e3@25 ~@71 f3@25 ~@51, ~@43 a3@96 g#3@25 ~@28]/8", // C
H: "[~@19 d#4@24 ~@24 a3@24 g#3@24 [a3,c4]@39 ~ g#3@5 ~@3 e4@5, ~@19 b3@47 ~@102, ~@43 d4@72 ~@39 g4@6 ~@8]/7", // Am
I: "[~@20 f4@23 f#4@48 ~ f4@23 e4@5]/5", J: "[~@20 a3@47 b3@48 ~ g3@46 ~ a#4@29, ~@19 a4@48 a#4@47 ~ a4@47 f3@30]/8",
K: "[~@18 e3 [g3,b3,e4]@29, ~@19 e3 ~@28]/2", // Em
L: "[~@19 [f3,a#3,f4]@48 ~@24 b3@72 b3@23 ~ c4@5, ~@19 c4@24 ~@24 [e3,g3,e4]@96 ~@29]/8", // A#5 Em
M: "[~@19 b3@49 a3@24 b3@23 a3@13 b3@11 c4@12 d4@12 e4@24 f4@5]/8", N: "[~@7 e4@12 d#4@48 d4@24 c4@24 a3@77]/8",
O: "[~@19 [c4,e4]@48 d#4@24 ~@24 a3@24 g#3@5, ~@67 b3@47 ~@30, ~@91 d4@53]/6", // C
P: "[~@19 [c4,e4]@48 [a#3,d4,a#5]@24 [g#3,e4,g#5]@24 ~@24 [g#3,e4]@24 c4@29, ~@19 a3@40 ~@56 [a3,f4]@24 ~@24 e4 ~@28, ~@29 d6@12 ~@7]/8", // C A# C#m Dm
Q: "[~@19 [a#3,d4,a#5]@24 [g#3,e4,g#5]@24 ~@24 [g#3,e4]@24 c4@29, ~@67 [a3,f4]@24 ~@24 e4 ~@28, ~@17 d6@12 ~@7]/6", // A# C#m Dm
R: "[~@19 [a#3,d4,a#5]@24 [g#3,e4,g#5]@24 ~@24 [g#3,e4]@24 ~@5, ~@67 [a3,f4]@24 ~@29, ~@17 d6@12 ~]/5", // A# C#m Dm
})).s("gm_string_ensemble_2").gain(0.17)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
~@65 A B@2 C ~ D E F ~@2 G@3 ~ H ~ I J K@4 L M@2 ~@3 N O H ~@4 P@8 Q@7 ~@60 A R@3 S T L M@2 ~@3 N O H ~ K@4 L M@2 ~@3
N O H ~@4 U@3 ~@19 V@2 ~@15
>`.pickRestart({
A: "~ g3@17 ~ d3@3 c3@2", B: "[~ d3@3 c3@3 d3@3 a2@21 ~@17]/2", C: "~@10 [c4,e4] ~@13", D: "~@11 [b3,e4] ~@12",
E: "~@11 [a3,d4] ~@12", F: "~@10 [b3,d4] ~@13", G: "[~@8 b3@6 a3@13 ~@9]/3", H: "~@5 [a3,d4] ~@10 g#3 c4 ~@6",
I: "~@13 a3 g3 a3 g3 a3 g3 a3 g3 a3 g3 a3", J: "g3 d3@6 c3@3 ~ a2@8 ~@5",
K: "[~@19 b3@9 ~ a3@8 [a3,c4,e4] ~@11 e4 ~@11 e4 ~@12 e4@6 ~@6 e4 ~@9, ~@41 [g#3,b3,d4]@41 ~@14]/4", // Am G#dim
L: "~@2 e4 ~@11 e4@8 ~@2", M: "~@2 e4 ~@10 e4 ~@10", N: "~@13 e4 ~@10", O: "~ e4@3 ~@8",
P: "[~@19 [a3,c4,e4]@22 ~@2 [g3,a3,c4]@23 ~ [f#3,a3,b3]@24 [e3,g#3,b3]@24 [f3,a3,d4]@24 [e3,g#3,b3]@22 ~@2 [a3,b3,c4]@29, ~@42 f3@23 ~@97 e3@24 ~@6]/8", // Am Am7 B7 E Dm E Am
Q: "[~@18 a3 [a3,c4] ~@23 [g3,a3,c4]@23 ~ [f#3,a3,b3]@23 ~ [f#3,a3,b3]@24 [f3,a3,d4]@24 [e3,g#3,b3]@22 ~@7, ~@19 b3@23 f3@23 ~@103, ~@19 e4@21 ~@128]/7", // Am Am7 B7 Dm E
R: "[~ d3@3 c3@3 d3@3 a2@21 ~@12 b3@9 ~ a3@8 ~@11]/3", S: "~ e4 ~@11 e4 ~@10", T: "~@2 e4@6 ~@6 e4 ~@9",
U: "[~@32 d4@10 ~@13 c4@3 ~@14, ~@23 f3@19 ~@5 e3@11 ~@14, ~@28 a3@15 ~@8 g#3@7 ~@14]/3",
V: "[~@25 f3@4 ~@19, ~@11 a#2@3 ~@10]/2",
})).s("gm_electric_guitar_clean").gain(0.17)
// chords · epiano2
const epiano2 = note(`<
A@2 B@3 C@3 D@3 E@3 F@3 G@3 H@6 I@3 ~@16 J@2 K L M@5 N@7 O@2 ~@3 P M@5 N@7 O@2 ~ Q@5 ~@3 R@7 ~@3 S@8 T U@6 V@7 W@6 X@8
Y@8 ~@11 J@2 K L M@5 N@7 O@2 ~@3 Q@5 ~@3 Z@4 AA@7 ~@3 Z@4 AB AC@8 AD@30 AE@6
>`.pickRestart({
A: "[~ [a3,b3,c4,e4]@3, ~@4 a2@11 ~]/2", B: "[~ [f2,c3,f3,g3,a3]@36 [a#2,f3,a#3,d4]@35]/3",
C: "[~@2 [e2,e3,g#3,d4]@37 [f2,a#2,d3,f3,a3,d4]@33]/3", // E7 A#maj7
D: "[~@4 [e2,b2,e3,g#3,c4]@36 [a2,a3,c4,e4]@18 ~ [g2,g3,b3,d4,e4]@13]/3", // E Am Em7
E: "[~@5 [f2,f3,a3,c4,e4]@37 [a#2,f3,a#3,d4]@30]/3", F: "[~@6 [e2,e3,g#3,b3,d4]@37 [d#3,f3,a3,d4]@29]/3",
G: "[~@8 [d3,e3,g#3,c4]@37 [a3,e4]@16 ~@2 [g2,g3,b3,d4,e4]@9, ~@45 g4@22 ~@5, ~@5 a2@2 ~, ~@45 c4@14 ~@13]/3", // Caug A5 Em7
H: "[~@9 [f2,f3]@18 ~ [e2,e3]@18 [d2,f3,a#3,d4]@37 [e2,e3,g#3,b3,d4]@36 [d#3,f3,a3,d4]@25, ~@9 [a3,c4,e4]@35 ~@100]/6", // F E A# E7 Dm Am
I: "[~@12 [e3,g#3,b3,d4]@55 ~@5, ~ e2@3 ~@2]/3", J: "[~@2 g3@17 ~ a3@28]/2", K: "~@2 g3@7 ~ a3@2",
L: "~@5 [a3,c4,e4]", M: "[~@19 [f3,g3,a3,c4]@23 ~ [f#3,a3,b3]@24 [e3,g#3,b3]@24 [f3,a3,d4]@24 [e3,g#3,b3]@5]/5",
N: "[~@19 e3@24 ~ e3@23 [a3,b3,c4,e4]@24 [f3,a3,c4,e4]@23 ~ [f#3,a3,b3,d#4]@48 [f3,a3,d4]@5, ~@19 [a3,b3,c4]@48 ~@101]/7", // Am Fmaj7 B7 Dm Am
O: "[~@19 [e3,g#3,b3,c4]@23 ~@6]/2", P: "~@19 [a3,c4,e4]@5",
Q: "[~@19 [e3,a3,b3,c4]@42 ~ [e3,b3,c4]@2 ~ [e3,g#3,b3]@46 ~@9, ~@62 a3 ~@57]/5", // Am Cmaj7 E
R: "[~@19 [e3,a3,b3,c4]@42 ~ [e3,b3,c4]@2 ~ [e3,g#3,b3]@46 ~@4 [f3,a3,d4]@22 ~@2 [e3,g#3,b3,c4]@23 ~@6, ~@62 a3 ~@105]/7", // Am Cmaj7 E Dm E
S: "[~@19 [a3,c4,e4]@22 ~@2 [f3,g3,a3,c4]@23 ~ [f#3,a3,b3]@24 [e3,g#3,b3]@24 [f3,a3,d4]@24 [e3,g#3,b3]@24 [a3,c4,e4]@29]/8", // Am F B7 E Dm E Am
T: "~@10 [e3,g#3,b3,e4,g4]@9 [a3,c4,e4]@5", // E Am
U: "[~@19 [f3,g3,a3,c4]@23 ~ [f#3,a3,b3]@47 ~ [f3,a3,d4]@24 [e3,g#3,b3]@24 [a3,c4,e4]@5]/6", // F B7 Dm E Am
V: "[~@19 [f3,a3,c4,e4]@23 ~ [f#3,a3,b3,d#4]@24 ~ b3@22 ~ [f3,a3,d4]@23 ~ [g#3,b3,e4]@24 ~ [c4,e4]@28, ~@67 [e3,g#3,d4]@22 ~@50 a3@29]/7", // Fmaj7 B7 Dm E C E7
W: "[~@11 g#3@8 [a3,c4,e4]@23 ~ [f3,a3,c4,e4]@22 ~@3 [d#3,f#3,a3,b3]@38 ~@10 e4@19 ~@5 [e3,g#3,c4]@4, ~@10 [b3,e4,g4]@8 ~@97 [f3,a3,c4]@20 ~@9]/6", // Am Fmaj7 B7 Eaug Em F
X: "[~@19 [a3,c4,e4]@23 ~ [f3,a3,c4,e4]@23 ~ [f#3,a3,b3,d#4]@24 ~ b3@22 ~ [f3,a3,d4]@23 ~ [g#3,b3,e4]@24 ~ [c4,e4]@28, ~@91 [e3,g#3,d4]@22 ~@50 a3@29]/8", // Am Fmaj7 B7 Dm E C E7
Y: "[~@11 g#3@8 ~ [b3,c4,e4]@22 ~ [a3,c4,e4]@18 ~@6 [a3,b3,d#4]@33 ~@15 [f3,a3,d4]@22 ~@2 [g#3,c4,e4]@24 [a2,a3,e4]@24 ~@5, ~@5 [b3,e4,g4]@4 ~@87]/8", // Cmaj7 Am B7 Dm G#aug A5 Em
Z: "[~@19 [e3,a3,b3,c4]@42 ~ [e3,b3,c4]@2 ~ [e3,g#3,b3]@31, ~@62 a3 ~@33]/4", // Am Cmaj7 E
AA: "[~@19 [f3,a3,d4]@22 ~@2 [e3,g#3,b3,c4]@23 ~ [e3,a3,b3,c4]@42 ~ [e3,b3,c4]@2 ~ [e3,g#3,b3]@46 ~@9, ~@110 a3 ~@57]/7", // Dm E Am Cmaj7 E
AB: "~@19 [f3,a3,d4]@5", // Dm
AC: "[~@19 [e3,g#3,b3,c4]@23 ~ [a3,c4,e4]@23 ~ [f3,a3,c4,e4]@23 ~ [f#3,a3,b3,d#4]@24 ~ b3@22 ~ [f3,a3,d4]@23 ~ [g#3,b3,e4]@24 [a3,c4,e4]@5, ~@115 [e3,g#3,d4]@22 ~@55]/8", // E Am Fmaj7 B7 Dm E Am E7
AD: "[~@19 [f3,a3,c4,e4]@23 ~ [f3,a#3,d4]@24 ~ b3@22 ~ [f3,a3,d4]@23 ~ [g#3,b3,e4]@24 [a3,c4,e4]@5, ~@67 [e3,g#3,d4]@22 ~@55]/6", // Fmaj7 A# Dm E Am E7
AE: "[~@19 [f3,a3,c4,e4]@23 ~ [f3,a#3,d4]@24 ~ b3@22 ~ [f3,a3,d4]@23 ~ [g#3,b3,e4]@24 ~@5, ~@67 [e3,g#3,d4]@22 ~@55]/6", // Fmaj7 A# Dm E E7
})).s("gm_epiano2").gain(0.39)
// bass · xylophone
const bass_2 = note(`<
~@28 A B C B C B C B C B C B D E F G H I J K H L M L M L M L M L M L M L M L N L M L M L M L N L M L M L M L N L M L M
L M L M L M L M L M L N L M L M L M L M L N L M L M L M L M L M L M L M L M L M L M L M L O ~@11 A B C B C B C B D E F
G H I J K H L M L M L M L M L M L M L M L N L M L M L M L M L M L M L M L M L M L M L M L M L M L M L M L M L M L M L
M L M L M L M L M L M L M L M L M L M L M L M L M L M L M L M L M L P
>`.pickRestart({
A: "~@19 d#1 ~@2 d#1@2", B: "~ a#1 ~@5 d#2 ~@5 a#1 ~@5 d#1 ~@4", C: "~@7 d#2 ~@11 d#1 ~@2 d#1@2",
D: "~@7 d#2 ~@11 d#1@2 ~@3", E: "~@7 d#1@2 ~@4 a#1 ~@6 d#2@2 ~@2", F: "~@2 a#1 ~@4 c#2 ~@11 c#1 ~@4",
G: "~@13 g#1 ~@2 [e2,e3] ~@3 [a2,b2,a3,b3] ~@3", H: "~ g#1@2 ~@4 d#2 ~@11 d#1@2 ~@3",
I: "~@7 d#1@2 ~@4 a#1 ~@5 a#2 ~ a#2!3, ~@10 d#2 ~",
J: "a#2 ~ [a#1,a#2] a#2 ~@2 a#2 [c#2,a#2] ~@2 a#2 ~ a#2 ~ a#2 ~@2 a#2 ~ c#1 ~@4", K: "~@13 g#1 ~@10",
L: "~ a#1@2 ~@21", M: "~@4 d#2 ~@11 d#1 ~@2 d#1@2 ~@3", N: "~@4 d#2 ~@11 d#1 ~@2 [d2,e2,d#3] d#2 ~@3, ~@19 d#1@2 ~@3",
O: "~@4 d#2 ~@11 d#1 ~@7", P: "~@4 d#2 ~@19",
})).s("gm_electric_bass_finger").gain(0.12).pan(0.3)
// bass · xylophone · soft notes
const bass_soft = note(`<
~@30 A ~ A ~ A ~ A ~ A ~ A ~@2 B ~@2 C B ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~
D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~@14 A ~ A ~ A ~ A ~@2 B ~@2 C B
~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~
D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~
>`.pickRestart({
A: "~ a#1 ~@22", B: "~@19 c2@2 ~@3", C: "~@5 a#2 ~@3 a#2 ~@14", D: "~@7 d#2 ~@16",
})).s("gm_electric_bass_finger").gain(0.08).pan(0.3)
// other · distortion guitar
const distortion_guitar = note(`<
~ A@3 B C@2 ~ D@3 E@5 ~@3 F@3 G@6 H@4 ~@33 I J@2 K ~ L M N ~@2 O@3 P Q ~ R S ~@4 T ~ U@2 ~@4 Q ~@2 V@4 K ~ L M N ~@2 W
X@2 L M Y ~@13 Z@3 AA@2 AB@2 AC@2 AD@4 AE AF@3 ~@30 I AG@2 ~ AH ~ T ~ U@2 AI AJ AK AH Q AL AM@2 ~ AN@3 AO AP AQ AR AS
AT Q ~ AU@4 AV AW ~@12 AX@2 AY AZ BA@6 BB BC@3 BD@4 BE BF@3 BG@2
>`.pickRestart({
A: "[~ g3@5 e4@4 d4@43 ~@16 d4@2 ~]/3", B: "e4 ~@3 f4@2 ~@2 g4@3 f4@13", C: "[~ d4@32 ~@15]/2",
D: "[~@27 d4@7 ~@18 d4@3 ~ b3@3 d4@10 b3@3, ~@10 e4@23 ~ c4@20 ~@18]/3",
E: "[c4@28 ~@2 g3@5 c4@3 e4@4 d4@22 ~ e4@4 f4@8 e4@38 ~@5]/5", F: "[~@6 d4@5 a4@3 c5@28 a4@24 ~@6]/3",
G: "[~@5 f4@2 c5@30 b4@25 ~@3 b4@2 c5@4 a4@24 b4@2 ~@4 c5@5 d5@38]/6", H: "[~ c5@2 d5@89 ~@4]/4",
I: "~ g3@17 ~ d3@3 c3@2", J: "[~ d3@3 c3@3 d3@3 a2@21 ~@17]/2", K: "~@10 [c4,e4] ~@13", L: "~@11 [b3,e4] ~@12",
M: "~@11 [a3,d4] ~@12", N: "~@10 [b3,d4] ~@13", O: "[~@16 b3@12 a3@26 ~@7 b3 ~@5 e3@5]/3", P: "~ b3@3 a3@9 b3@3 ~@8",
Q: "~@5 [a3,d4] ~@10 g#3 c4 ~@6", R: "~@13 a3 g3 a3 g3 a3 g3 a3 g3 a3 g3 a3", S: "g3 d3@6 c3@3 ~ a2@8 ~@5",
T: "~@16 [b3,e4]@5 ~@2 [b3,d4]", U: "[~@5 g3@5 a#3@2 ~ g3@2 ~ f3@2 ~ g3@10 ~@2 d3@4 c3@2 d3@3 c3@3 a2 ~@4]/2",
V: "[~@7 b3@4 a3@2 ~ b3@3 a3@2 ~ a3@11 g3@13 ~@2 d3@6 c3@3 d3@3 c3@3 a2@24 ~@11]/4", W: "~@11 d4@9 ~ c4@3",
X: "[~@3 b3@3 ~@3 a3@25 ~@14]/2", Y: "~@10 [b3,g4] ~@13", Z: "[~@10 a4@2 ~ b4@3 b4@15 b4@11 ~ a4@15 ~@14]/3",
AA: "[~@4 b4@15 g#4@9 f#4@6 ~ e4@6 ~@7]/2", AB: "[~@11 c5@7 ~ e4@9 ~@3 d4@5 ~ d4@3 c4@3 d4@5, ~@9 a4 ~@8 c4 ~@5]/2",
AC: "[~ g4@3 ~ d4@27 ~@3 f4@4 ~@9]/2", AD: "[~@7 e4@3 ~@2 a4@4 b4@3 ~ b4@22 ~ b4@12 a4@5 b4@23 ~@13]/4", AE: "g4",
AF: "[e4@7 ~ d4@4 ~ d4@3 c4@3 g4@10 a4@2 ~ a4@33 ~@7, ~@12 c4@2 ~@17 c5@2 ~@39]/3",
AG: "[~ d3@3 c3@3 d3@3 a2@21 ~@3 [b3,e4]@4 ~@10]/2", AH: "~@10 [b3,e4] ~@13",
AI: "~@5 [a3,e4] ~@10 [a3,e4] ~@6 [a3,e4]", AJ: "~@11 [a3,e4] ~@12", AK: "~@4 e4 b3 ~@11 [b3,e4]@5 ~@2",
AL: "~@20 a3 ~@3", AM: "[~ a3@2 ~@4 e3@3 g3@8 ~ a3@21 ~@8]/2", AN: "[~@5 a3@9 ~@4]/3",
AO: "~@7 d4@6 e4 ~@2 e4@3 d#4@2 ~ c4@2, ~@7 d4", AP: "~ d4@3 c4@3 a3@3 g3@9 ~@5", AQ: "~@2 [a3,e4] ~@10 a3 e4 ~@9",
AR: "~ [a3,e4] ~@8 a3 e4 ~@12", AS: "~ [b3,e4] ~@11 [b3,e4] ~@8 [b3,e4] ~", AT: "~@13 [b3,e4] ~@10",
AU: "[~@2 d4@16 ~ c4@3 ~ a3@15 ~@9 e3@9 a3@3 ~@3 a3@8 g#3@19 ~@7]/4", AV: "~@12 [a3,d4]@5 ~@7",
AW: "~@11 [g#3,c4]@7 ~@6", AX: "[~ a4@12 a4@2 ~ c5@2 ~ a4@18 c5@10 ~]/2", AY: "~ a#4@3 c5@2 ~@2 d5@16",
AZ: "~ b4@18 ~@5", BA: "[~@5 f3 ~ f5@9 d5@19 c5@19 ~@4 a4@2 ~ c5@19 ~@17 f3@4 d5@14 b4@20 ~@8 a4, ~@47 a#2@3 ~@22]/6",
BB: "~ a4 d5@9 a4",
BC: "[~ g4@3 e4@3 d4@3 ~ e4@2 [d4,g4]@3 ~ [e4,a4]@11 a4@8 a4 ~ g4 e4 a4 ~ g4 ~ e4 a4 ~@2 e4@2 a4@11 c5@10 ~, ~@28 e4 ~@18 g4@2 ~@23]/3", // G5 A5
BD: "[~ d5@14 ~ b4@20 ~@11 d5@11 c5@2 ~@11 d5@17 ~ c5@2 ~@5]/4",
BE: "~ c5 ~ d5 e5@2 c5 d5 ~ e5 c5 ~@2 e5 ~ g5 d5 ~@2 e5 ~ d#5 d5 ~, ~@6 d5 ~@2 c6 ~@2",
BF: "[c5 a4@2 c5 ~ a4@5 c5@8 ~@5 d5@4 ~@2 e5@3 ~ f5@3 ~ g5@10 e5@20 ~@5]/3", BG: "[~ a5@21 ~ e5@20 ~@5]/2",
})).s("gm_distortion_guitar").gain(0.35)
// … 256 more lines
More by Dire Straits
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.