0:00/0:00
// The Dance — Brooks Garth
// 75 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 3, 4/4 at bar 4, 2/4 at bar 12, ...) 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: duplicate parts dropped: ch 7 "Guitar - Elec" electric guitar jazz (copy of ch 4 "Accoustic Guitar" acoustic guitar steel); ch 6 "Strings Right" string ensemble 2 (copy of ch 5 "Strings Left" string ensemble 1, 0.208 beats late)
// note: Full arrangement: all 63 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(75/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 · electric bass pick · "Elec Picked Bass"
const bass = note(`<
~@3 A B@2 C D E F G H I J K L M N O P Q R S K T U V W X Y Z AA I J K L M N O P Q AB AC AD AE AF AG AH AI AJ AK AL AM
AN AO AN AO AN AO AP AQ AR@2
>`.pickRestart({
A: "~ d2", B: "[f#2@4 g2@7 ~ d2@2 c#2@2]/2", C: "b1 a1 ~@2", D: "a1@7 ~ g2@8", E: "~@2 b1 ~", F: "g1 ~ e1@2",
G: "f#1@7 ~ g1@7 ~", H: "a1@6 e2@2 a2@7 ~", I: "d2 f#2", J: "g2@7 ~", K: "d2 c#2 b1 a1", L: "~@8 a1@7 ~", M: "g2 ~",
N: "b1 ~ g1 ~", O: "e1@8 f#1@7 ~", P: "a1 ~ a1 ~ a1@2 a1@2 a1@2 a2@2 e2@2 a2@2", Q: "a1@15 ~",
R: "d2@5 ~ d2 ~ f#2@6 f#2@2", S: "g1@5 ~ g1 ~ a1@3 ~ a1@4", T: "e1@4 e2@4 a1@4 a1@3 ~",
U: "d2@4 ~@2 d2 ~ d2 ~ d2@3 ~ d2@2", V: "g1@6 g2@2 e1@4 e1@3 ~", W: "e1@7 ~ d2@8", X: "b1@5 ~ b1@2 e1@6 e2@2",
Y: "a1@7 ~ d2@2 a2@2 d3@2 c#3@2", Z: "f#2@4 f#2@3 ~ g1@5 ~ g1 ~", AA: "a1@5 ~ a1 ~ a1@7 ~", AB: "g2",
AC: "f#1@5 ~ b1@6 b1@3 ~", AD: "e1@5 ~ e1@2 f#1@5 ~ f#1@2", AE: "g1@4 g2@2 g1@2 a1@5 ~ a1 ~",
AF: "a1 ~ a1@2 ~ a1 e2 a2 a1@6 ~@2", AG: "a1@2 ~ a1@2 ~ a1 ~ d2@4 ~@2 d2 e2", AH: "f#2@4 f#1@3 ~ g1@5 ~ g1 ~",
AI: "a1@3 ~ a1@4 d2@4 c#2@4", AJ: "b1 a1 e1 e2", AK: "a1@4 a1@3 ~ d2@4 ~@2 d2 ~", AL: "d2 ~ d2@3 ~ d2@2 g1@6 g2@2",
AM: "e1@4 e1@3 ~ e1@7 ~", AN: "d2@8 b1@5 ~ b1@2", AO: "e1@6 e2@2 a1@7 ~", AP: "d2@2 a2@2 d3@2 c#3@2 f#2@4 f#2@3 ~",
AQ: "g2@3 g2 a1@2 a1@2", AR: "[d2@7 ~]/2",
})).s("gm_electric_bass_pick").gain(0.31)
// bass · electric bass pick · "Elec Picked Bass" · soft notes
const bass_soft = note("<~@6 A ~ B C ~@5 D E F ~@3 G ~@13 D E F ~@25>".pickRestart({
A: "~ e1", B: "f#2@7 ~@5 a1@4", C: "~@4 f#1@3 ~@9", D: "e1 ~", E: "~@8 f#2@7 ~", F: "~@4 a1@4 ~@4 f#1@3 ~",
G: "~@7 e2 ~@8",
})).s("gm_electric_bass_pick").gain(0.2)
// chords · piano · "Piano Right"
const piano = note(`<
~ A@2 B C@2 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 J K L M N O P Q AD AE AF AG AH AI AJ AK AL AM AN AO
AP AQ@6 AR AS AT@2
>`.pickRestart({
A: "[~@11 g4 ~@3 e4, d3@9 g4 a4@2 ~ e4@2 ~, d4 f#2@2 ~, ~ f#4@2 f#4 d4@3 f#4@5 [a3,d4]@4, ~@2 a4@3 f#4 a4@2 [g2,d4]@4 ~@2 a4@2]/2", // D5 G5
B: "[a3,c#4,e4,a4]@7 ~ [d2,a3,d4,f#4]@8", C: "[[f#2,a3,d4,f#4]@8 [g2,g3,b3,d4]@14 ~@2 [d3,a3]@3 ~ [c#3,a3]@3 ~]/2",
D: "[b2,g3]@4 [a2,f#3]@3 ~@5 g3@4, ~ e2, ~@5 e3@3", E: "a3@4 d4@2 c#4 ~ [g2,g3,b3,d4]@8, [a2,e3]@7 ~@9",
F: "[f#3,a3,c#4,e4]@7 ~ [b2,b3,d4,f#4]@4 [a2,a3]@4", // F#m7 Bm A
G: "[g2,g3]@2 [f#2,f#3]@2 g3 ~@2 g4, ~ [e2,e3,b3], ~@5 g3@3, ~@3 e4", H: "~@2 f#4@2 d4@4 ~@4 d4 ~ g4@2, ~@5 g3@3",
I: "~@4 d4@4 [a2,e3,c#4]@7 ~, a2 ~, ~ e3@3 ~@4", J: "[d2,a3,d4,f#4] [f#2,a3,d4,f#4]", K: "[g2,g3,b3,d4]@7 ~",
L: "[d3,a3]@3 ~ [c#3,a3]@3 ~ [b2,g3]@4 [a2,f#3]@3 ~", M: "~@4 g3@4 a3@4 d4@2 c#4 ~, e2@8 [a2,e3]@7 ~, ~ e3@3 ~@4",
N: "[g2,g3,b3,d4]@8 [f#3,a3,c#4,e4]@7 ~", O: "[b2,b3,d4,f#4] [a2,a3] [g2,g3] [f#2,f#3]",
P: "g3 ~@2 g4 ~ f#4 d4@2, [e2,e3,b3] ~, ~ g3@3 ~@4, ~ e4 ~@2", // E5
Q: "[e3,a3,d4,e4] ~ [a2,e3,a3,d4,e4] ~ [a2,e3,a3,d4,e4] ~ [a2,e3,a3,d4,e4] ~ [a2,e3,a3,d4,e4] ~ [a2,e3,a3,d4,e4] ~ [a2,e3,a3,d4,e4] ~ [a2,e3,d4] ~, ~@7 [a3,e4]", // Dsus2 Asus4 A5
R: "[a2,e3,a3,c#4,e4]@7 ~", S: "d4@2 ~ [e4,a4] [d4,f#4,a4]@2 [d4,f#4,a4]@2, [d3,a3,f#4] [d3,a3], a4@3 ~@5, ~ d4 ~@2",
T: "[g3,b3,d4,a4]@2 [a2,e3,b3,d4] [a2,a3,c#4]", U: "[d4,f#4] [c#4,e4] [b3,d4] [a3,c#4]",
V: "e3 ~@2 e3 a3!2 [a3,d4,e4]@2, [g3,b3,d4] ~, ~ e3@2 ~ [a2,e3,c#4]@4, ~ g4 e4 ~", // Asus4 G A
W: "d4 ~@2 f#4 [c4,f#4,a4]@2 [c4,f#4,a4]@2, [d3,a3,a4] [d3,a3], f#4@3 ~@5, ~ d4@3 ~@4, ~ e4 ~@2", // F#dim D5
X: "~@4 g4@4 [e3,b3,d4,g#4,b4]@7 ~, [g2,g3,b3,d4] ~, ~@2 d3@6 e4 ~@7", Y: "[e3,b3,d4] [d4,f#4,a4], g#4@3 ~@5",
Z: "[b3,d4,f#4]@7 ~ [b3,e4]@8, ~@7 e3@9, ~@7 g3@5 ~@4", // Bm E5
AA: "[a2,e3,d4]@4 [a2,e3,a3,c#4]@3 ~ d4@6 d4@2, ~ [d3,f#4,a4]", AB: "~ f#4 [g3,b3,d4,g4]@2, [d3,e4] ~",
AC: "[a2,e3,b3,d4]@4 [a2,e3,a3,c#4]@3 ~", AD: "e4@4 [b3,d4,e4]@2 [a3,c#4,e4] ~, [a2,e3]@7 ~, [a3,c#4]@3 ~",
AE: "[g3,b3,d4,g4,b4]", AF: "[f#3,a3,c#4,e4]@3 [b3,d4,f#4]@5", AG: "[e3,g3,b3,d4] [c#3,f#3,a3,c#4,f#4]",
AH: "[g2,g3,b3,d4]@8 [a2,e3,b3,d4] ~ [a2,e3,b3,d4] ~ [a2,e3,d4] ~ [a2,e3,d4] ~, ~@6 b3 ~", // G Asus4
AI: "[b3,d4,a4]@2 [a2,e3,b3,d4,a4] ~ [a2,e3,b3,d4,a4]@2 [a2,e3,b3,d4,a4] ~ [a2,e3,c#4,e4,a4]@7 ~, [a2,e3] ~@15", // Bm7 Asus4 A A5
AJ: "[a2,e3,c#4,e4,a4] ~@2 [a2,e3,c#4,e4,a4] ~@2 [a2,e3,c#4,e4,a4] ~ [d3,d4,f#4,a4]@4 ~@4", // A D
AK: "[f#4,a4,d5]@5 ~@3 [g3,b3,d4,a4]@8", AL: "[a2,e3,b3,d4] [a2,a3,c#4] [d4,f#4] [c#4,e4]",
AM: "[b3,d4]@2 [a3,c#4]@2 e3 ~@2 e3, ~ [g3,b3,d4], ~@5 e3@2 ~, ~@3 g4", // Bm A G
AN: "a3!2 [a3,d4,e4]@2 d4 ~@2 f#4, [a2,e3,c#4] [d3,a3,a4], e4@2 ~@2 f#4@3 ~, ~@5 d4@3, ~@3 e4", // Asus4 A D5
AO: "[c4,f#4,a4]!2 ~ g4, [d3,a3] [g2,g3,b3,d4], ~@5 d3@3", AP: "[e3,b3,d4,g#4,b4]@7 ~ [e3,b3,d4]@8, e4 ~@7 g#4@6 ~@2",
AQ: "[[d4,f#4,a4]@8 [b3,d4,f#4]@7 ~ [b3,e4]@8 [a2,e3,d4]@4 [a2,e3,a3,c#4]@3 ~, ~@15 e3@9 ~@8, ~@15 g3@5 ~@12]/2", // D Bm E5 Asus4 A
AR: "d4@3 d4 ~@2 f#4@2, [d3,f#4,a4] [d3,e4]", AS: "[g3,b3,d4,g4]@7 ~ [b3,d4]@4 [a2,e3,a3,c#4]@4",
AT: "[[d3,f#3,a3,d4]@7 ~]/2", // D
})).s("gm_piano").gain(0.31).pan(0.8)
// chords · rock organ · "Organ"
const rock_organ = note("<~@21 A B C D E F@2 ~@3 G H ~@8 I J ~ K L M N O P Q R S ~@4 T U V W X@2>".pickRestart({
A: "[f#5,d6]", B: "[g5,d6]@2 [a5,d6] [a5,c#6]", C: "f#5 e5 d5 c#5", D: "d5@4 d5 c#5 b4 a4",
E: "~ a5 ~ a5, [d5,f#5] [c5,f#5]", // D Cdim
F: "[~@6 g5@2 ~@8 g#6@7 ~@9, g5@6 ~@4 g#5@13 ~@9, ~@2 d5@6 e5@15 ~@9, ~@4 a5@4 ~@4 b5@11 ~@9, ~@14 e6@9 ~@9]/2",
G: "~@6 a5@6 c#6 d6 e6@2", H: "[a5,d6,f#6]@15 ~", I: "[g4,b4,g5,b5]", J: "[c#5,e5,a5]@6 [b4,d5,f#5]@9 ~",
K: "~@10 [d5,a5] ~ [d5,a5] ~ [d5,a5] ~", L: "[d5,a5] ~ [d5,a5] ~ [d5,a5] ~ [d5,a5] ~ [c#5,e5,a5]@8",
M: "[a5,c#6,e6] ~@2 [a5,c#6,e6]@2 ~ [a5,c#6,e6] ~@9", N: "~ [g5,d6]", O: "[a5,d6] [a5,c#6] f#5 e5", P: "d5 c#5 d5@2",
Q: "d5 c#5 b4 a4 ~@2 a5@2, ~ [d5,f#5]", R: "~@2 a5@2 ~@3 g5, [c5,f#5]@4 g5@3 ~, ~@5 d5@3, ~@3 a5",
S: "~@8 g#6@7 ~, e5@15 ~, ~@2 g#5@13 ~, ~@4 b5@11 ~, ~@6 e6@9 ~", T: "~ [d6,f#6] [c#6,e6] [d6,f#6]",
U: "d6 ~ b5 a5 g5 ~@3", V: "d4@2 a4@2 d5@2 c#5@2 f#4@4 f#4@3 ~", W: "[g5,b5] ~ g6@2, ~ [g5,b5]@3, ~@3 d6@5",
X: "[a5@29 ~@3]/2",
})).s("gm_rock_organ").gain(0.31).pan(0.1)
// chords · rock organ · "Organ" · soft notes
const rock_organ_soft = note("<~@58 A ~@2 B@2>".pickRestart({
A: "~@2 c#6@2 ~@6 f#5@2 e5@2 c#5 ~", B: "[~@6 a6@19 ~@7, [f#5,d6]@29 ~@3, ~@2 f#7@23 ~@7, ~@4 d7@21 ~@7]/2",
})).s("gm_rock_organ").gain(0.15).pan(0.1)
// chords · acoustic guitar steel · "Accoustic Guitar"
const acoustic_guitar_steel = note(`<
~ A@2 B@3 C D E F G H I@2 J K L M N O P Q R S T U V W X Y Z AA I@2 J K L M N O AB AC AD AE AF AG AH AI AJ AK AL@2 AM
AN AO AN AO AN AO AP ~@3
>`.pickRestart({
A: "[~@11 g4 ~@3 e4, d3@9 g4 a4@2 ~ e4@2 ~, d4 f#2@2 ~, ~ f#4@2 f#4 d4@3 f#4@5 [a3,d4]@4, ~ a4@2 a4 [g2,d4]@2 ~ a4]/2", // D5 G5
B: "[[a3,c#4,e4,a4]@7 ~@13 f#3@4 ~@6 [b3,g4]@2 ~@6 e4@2 [a3,d4]@2 f#3 ~ [g3,e4]@4, ~@4 d3@8 ~ d3@3 ~ a4@3 ~@4, ~ d4 [f#2,d4] g2@2 ~, ~@6 a4@5 ~@3 [g3,a4]@2 d4@4 ~@4, ~@9 [b3,f#4] ~@2]/3", // A Em D5 C D Gsus2 B5
C: "[g3,b3]@4 [d3,d4,f#4,a4]@3 ~@5 [b3,a4]@4, ~ [e3,e4], ~@5 g3@3", // G D B7 E
D: "~@4 [a3,d4,a4]@2 [a2,a3,c#4] ~ g3@2 ~@4 d4@2, [a2,e3]@7 ~ g2@8, ~@4 d4@3 ~, ~@2 b3 a4, ~@5 g3@3", // D5 A A5
E: "~@3 [a3,f#4] [b3,d4,f#4,b4]@2 [a3,d4,a4]@2, a3@3 ~@5, ~ f#3@3 ~@4, ~ [e4,a4] ~@2", // D Bm D5 A5
F: "[b3,d4,g4]@4 [a3,f#4]@3 ~ b3@2 ~@4 d4@2, ~@4 d4 ~@3 [e3,g3]@8, ~@4 d4@3 ~, ~@5 b3@3, ~@3 [e4,a4]", // G D Em A5
G: "~@2 [f#4,a4] [d4,f#4] ~@3 d4, [f#3,d4]@7 ~ g2@8, ~@2 a3@5 ~ d4@6 ~@2, ~@2 b3 [b3,a4], ~@5 g3@3", // F#m D B7
H: "~@6 [a2,a4]@2 ~@4 a3@3 ~, a2@6 ~@2 [a2,c#4,e4,a4]@7 ~, ~ e3@3 a3@2 ~@2, ~@4 d4@4 ~@2 e3@5 ~", // A
I: "[~@4 a4@4 ~@20 [b3,f#4]@2 e4 ~, [d3,d4]@8 f#2@14 b3@2 d4@2 a4@5 ~, ~@8 d4@8 g2@15 ~, ~@12 f#3@19 ~, ~@18 d3@2 [g3,a4]@2 g4@9 ~]/2", // B5 D Gsus2
J: "a3@2 ~@2 [g3,e4]@3 ~ [g3,b3]@3 ~ [d3,d4,f#4,a4]@3 ~, d4@7 ~@9, ~@2 f#3@5 ~@9", // C G D
K: "~@4 [b3,a4]@3 ~ [a2,e3]@4 [a3,d4,a4]@2 [a2,a3,c#4] ~, [e3,e4]@7 ~@9, ~@2 g3@5 ~@9", // B7 A5 D5 A E
L: "g3@2 ~@2 a4@2 d4 ~@5 [e4,a4]@2 [a3,f#4] ~, [g2,d4]@7 ~@9, b3@2 ~@2 a3@3 ~, ~@2 g3@5 ~@3 f#3@5 ~", // A5 D G5
M: "[b3,d4,f#4]@3 ~ [a3,d4,a4]@3 ~ [b3,d4]@3 ~ [a3,d4,f#4]@3 ~, b4@7 ~ g4@7 ~", // Bm D5 Bm D
N: "b3@2 ~@2 [e4,a4]@2 d4 ~@5 [f#4,a4]@2 [d4,f#4]@2, [e3,g3,d4]@7 ~ [f#3,d4]@7 ~, ~@2 b3@5 ~@3 a3@5 ~", // A5 F#m D Em7 D
O: "a2@2 [a2,a4]@2 [a2,d4,e4,a4] ~ [a2,d4,e4,a4]@2 [a2,d4,e4,a4]@2 [a2,d4,e4,a4]@2 [a2,d4,e4,a4]@2 [a2,d4,e4,a4]@2", // A Asus4
P: "[a2,c#4,e4,a4]@7 ~", // A
Q: "[d3,a3,d4,f#4]@3 ~ [d4,f#4]@2 [d3,d4,f#4]@2 [d3,a3]@4 [d4,f#4]@2 d4@2, ~@3 [d3,a3]@3 ~@2 [d4,f#4]@2 ~@2 [d3,a3]@4", // D D5 D D5 D D5
R: "[g3,b3,d4]@3 ~@3 [g3,b3,d4]@2 ~@2 a3@2 [a3,c#4]@2 [a3,c#4]@2, ~@3 [g3,b3,d4]@3 ~@2 [a2,e3,c#4]@4 [a2,e3]@4, ~ g4 ~@2", // G A G A A5
S: "[d3,a3,f#4] [c#4,f#4] [b3,d4,f#4] [a3,c#4], d4 ~@7", // D F#5 Bm A
T: "[g2,b3,d4]@2 [g3,b3,d4]!2 ~@2 [a2,e3,a3,c#4]@2, g3 ~@3 [a2,e3]@2 ~@2, ~@5 [b3,d4]@3", // G A A5 Bm
U: "[d3,a3,f#4]@2 d4 [d3,a3] c4 ~ c4!2, a4, d4@2 ~@2 f#4@4 [d3,a3,f#4]@3 [d3,a3]@5, ~@5 c4 f#4@2", // D D5 D D5
V: "g3 ~@2 b3 ~ e4 ~ g#4, g2 ~, [b3,d4]@4 b3 d4@3 ~@2 g#4@4 ~@2, ~ d3@3 [e3,b3]@2 [e3,b3,e4]@2, ~@3 g3@5 ~@8", // Bm E5
W: "[e3,b3,d4,g#4]@4 d4@2 ~ e4, ~ [d3,a3,f#4,a4], ~@3 d4", // E7 D
X: "~@2 d4@2 g3 ~@2 g3, f#4@2 [b3,d4]!2, ~ e4@3 e3@4, ~@5 g3@2 ~", // Bm
Y: "~@3 e3 [d2,d3] [a2,a3] [d3,d4] [c#3,c#4], a2 ~, ~ c#4@3 ~@4, ~ a3 ~@2", // D A D C#
Z: "[f#2,f#3]@4 [f#2,f#3]@3 ~ [g1,g2]@5 ~ [g1,g2] ~", AA: "[a1,a2]@5 ~ [a1,a2] ~ [a1,a2]@7 ~",
AB: "[c#4,e4]@6 e4 c#4 [a3,c#4,e4]@2 ~@4 [a3,c#4,e4] ~, a4@15 ~, a2@5 [a3,c#4,e4]!2 ~, ~@11 [a2,e3]@2 [a2,e3]@2 ~", // C#m A A5
AC: "[g3,d4]@10 ~@3 b4@3, [g2,b3], a2 ~@9 g3@6, ~@11 d4@5, ~@3 g4", AD: "[c#3,f#3,a3,c#4,f#4]@6 [b2,b3,d4,f#4]@9 ~",
AE: "g3 ~@5 g3@2 c#3 ~@5 a3@2, e3 ~, [b3,d4]!2 f#4!2, ~ g3@2 ~@2 c#4@3", // Bm
AF: "g3 ~@2 g3 [a2,e3] [a2,e3,b3,d4]!3, b3 ~, d4 [a3,d4] ~@2, ~ g3@2 ~@5", // A5 Asus4 D5
AG: "[a2,e3,b3,d4]!4 [a2,e3,a3,c#4,e4]@3 ~", // Asus4 A
AH: "[a2,e3,a3,c#4,e4] ~@2 [a2,e3,a3,c#4,e4]@2 ~ [a2,e3,a3,c#4,e4] ~ [d3,d4,f#4,a4]@5 ~@3", // A D
AI: "[a3,d4,f#4]@5 ~@3 [g3,b3,d4]@3 ~@3 [g3,b3,d4]@2, ~@11 [g3,b3,d4]@3 ~@2, ~@3 g4", // D G
AJ: "~ a3 [a3,c#4]!2 [d3,a3,f#4]@2 [c#4,f#4]@2, [a2,e3,c#4]@2 [a2,e3]@2 d4 ~@3", // A D F#5 A A5
AK: "[b3,d4,f#4]@2 [a3,c#4]@2 [g2,b3,d4]@2 [g3,b3,d4]!2, ~@4 g3 ~@3", // Bm A G
AL: "[~@2 [a2,e3,a3,c#4]@2 [d3,a3,f#4]@2 d4 [d3,a3] c4 ~ c4!2 g3 ~@2 b3, [a2,e3]@4 ~@4 d4@2 ~@2 f#4@4 [d3,a3,f#4]@3 [d3,a3]@5 g2@8, ~ [b3,d4]@3 a4@8 ~ d3@3, ~@18 c4@2 f#4@4 [b3,d4]@4 b3 d4@3, ~@27 g3@5]/2", // A D D5 A5 D D5 Bm
AM: "~ e4 ~ g#4 [e3,b3,d4,g#4]@4, [e3,b3] [e3,b3,e4] ~@2, ~ g#4@2 ~@5", // E7 E5
AN: "d4@2 ~ e4 ~@2 d4@2, [d3,a3,f#4,a4]@4 ~ e4@3, ~ d4 f#4@2", // D
AO: "g3 ~@2 g3 ~@3 e3, e3 a2, [b3,d4]@2 [b3,d4]@2 ~ c#4@3, ~ g3@2 ~@3 a3@2", // Bm
AP: "[d2,d3]@2 [a2,a3]@2 [d3,d4]@2 [c#3,c#4]@2 [f#2,f#3]@4 [f#2,f#3]@3 ~", // D A D C# F#
})).s("gm_acoustic_guitar_steel").gain(0.31).pan(0.2)
// chords · acoustic guitar steel · "Accoustic Guitar" · soft notes
const acoustic_guitar_steel_2 = note(`<
~ A ~ B@2 C D E F G H I J@2 K L M N O P ~ Q R S T U ~@6 J@2 K L M N O P V ~@2 W ~@3 X Y Z AA@2 ~@11
>`.pickRestart({
A: "~@5 f#4@2 ~", B: "[~@5 f#4@2 f#4@2 ~@2 a4 d4@4, ~@9 f#4@3 b3@3 ~, ~@6 g3 ~]/2",
C: "~@6 g3@2 d3@3 a3 ~@4, ~@2 d3@6 f#4 ~@7", D: "d4@4 a3@2 f#3 ~@7 d4@2", E: "~@2 c#3@5 ~@7 g4@2, a3 ~@2 b3",
F: "[c#3,c#4] ~, f#4@3 ~@5, f#3 ~@7", G: "g3@4 f#3@3 ~@9", H: "f#4@2 ~@2 g3 ~@3, a3 ~@7, b3 ~@15", I: "a3 ~",
J: "[~@2 f#4@4 f#4@2 ~@8 d4@8 ~@2 d3@4 g3 ~, ~@5 f#4@9 ~@2, ~@7 a4@3 ~@6, ~@8 b3@3 ~@5, ~@4 g3 ~@3]/2",
K: "~@3 a3@4 ~ d4@3 ~ a3@2 f#3 ~, [d3,f#4]@7 ~@9", L: "~@6 d4 ~@3 c#3@2 ~@4, ~@2 a3 ~",
M: "~@4 b3@2 g4 ~ [c#3,c#4,f#4]@7 ~, ~@4 f#3 ~@3", N: "~@8 g3@3 ~ f#3@3 ~", O: "~@8 b3@7 ~, ~@2 f#4 ~, ~@4 a3 ~@3",
P: "[d4,e4,a4] [d4,e4] ~@6", Q: "~ [d4,f#4] ~ a3 ~ [d4,f#4] ~ f#4", R: "~ g4 ~@6", S: "~ d4 ~@6",
T: "~@3 g2@5 ~@8, ~ g3 ~@6", U: "~@3 [d3,a3]@3 d4@10, ~ d4 ~@6", V: "~@6 [a3,c#4] [a3,e4] ~@8", W: "~ f#3",
X: "~@5 g4 ~@2", Y: "~@5 d4 ~@2", Z: "~@11 g2@5, ~@5 g3 ~@2", AA: "[~@11 [d3,a3]@3 d4@10 ~@8, ~@5 d4 ~@10]/2",
})).s("gm_acoustic_guitar_steel").gain(0.15).pan(0.2)
// chords · string ensemble 1 · "Strings Left"
const string_ensemble_1 = note(`<
~ A ~@17 B C D E F G H I J K L M N ~@2 O P Q R S B C ~@2 T@3 U V W X Y@2 Z AA AB AA AB AA AB ~ AC AD@2
>`.pickRestart({
A: "~ a6 ~ a6", B: "~@8 [d5,e5,a5] ~ [d5,e5,a5] ~ [d5,e5,a5] ~ [d5,e5] ~, ~@7 a5", C: "[c#5,e5,a5] ~@15",
D: "a6@6 g6 f#6, [a3,d4,f#4]@15 ~", E: "g6@2 f#6@2 e6@2 d6@2 [b3,d4]@3 ~ [a3,c#4]@4, [b3,d4,g4] e6",
F: "[d4,f#4,f#6] [c#4,e4,e6] [b3,d4,d6] [a3,c#4,c#6]", G: "[g3,b3,d6]@8 d4@4 c#4@3 ~, ~@8 [a3,e6]@7 ~",
H: "a4 c5, [d4,f#5]", I: "~ [g4,b4] ~@2, [g3,b3,d4] ~", J: "~ f#5 d5 b4 a4@4", K: "~ f#4 g4 e4", L: "d4@4 c#4@3 ~@9",
M: "~ g4", N: "a3@7 ~", O: "f#4 e4 ~@2", P: "d4@5 c#4 ~ a3", Q: "~ [f#4,a4]", R: "b4 a4 g4 ~", S: "e4 ~",
T: "[~@2 c#4@2 d4@6 e4@2 d4@6 e4@2 f#4@2 a4@2 a4@17 ~@7]/3", U: "~@8 a6@7 ~",
V: "~@4 g6 f#6 e6 d6, ~ [b3,d4,g4], ~@8 f#6 ~@7", W: "[b3,d4]@3 ~ [a3,c#4]@4 [d4,f#4,f#6]@4 [c#4,e4,e6]@4, e6 ~",
X: "[b3,d4,d6] [a3,c#4,c#6] [g3,b3,d6]@2", // Bm A G
Y: "[d4@4 c#4@3 ~ a4@8 c5@8 ~@4 [g4,b4]@4, [a3,e6]@7 ~ [d4,f#5]@16 [g3,b3,d4]@8]/2", Z: "~@5 f#5 d5 b4",
AA: "a4@2 ~ f#4", AB: "g4@4 e4@4 d4@4 c#4@3 ~", AC: "[b3,d4,g4]", AD: "[[d4,a4,f#5]@7 ~]/2",
})).s("gm_string_ensemble_1").gain(0.31).pan(0.6)
// chords · string ensemble 1 · "Strings Left" · soft notes
const string_ensemble_1_soft = note("<~@2 A ~@23 B@2 C D@3 E@2 F G H I J ~@13 K L ~ L ~ L ~ M ~@3>".pickRestart({
A: "~ a6 ~@2", B: "[~@8 [b3,e4,g#4]@15 ~@9]/2", C: "b4 ~@3", D: "[~@8 [a3,f#4]@15 ~ b3@7 ~@9 c#4@7 ~, ~ d4@4 ~]/3",
E: "[[a3,f#4]@15 ~ [b3,g4]@15 ~, d4]/2", F: "~@2 d4 c#4", G: "~@6 b3 ~", H: "[g4,b4] ~", I: "~@3 f#4",
J: "g4@8 a4@7 ~", K: "[b3,e4,g#4]@15 ~", L: "~@2 b4 ~", M: "[a3,d4,f#4]",
})).s("gm_string_ensemble_1").gain(0.15).pan(0.6)
// chords · piano · "Piano Left"
const piano_2 = note(`<
~ A@2 B C@2 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 J K L M N O P Q AD AE AF AG AH AI AJ AK AL AM AN AO
AP AQ@6 AR AS AT@2
>`.pickRestart({
A: "[~@11 g5 ~@3 e5, d4@9 g5 a5@2 ~ e5@2 ~, d5 f#3@2 ~, ~ f#5@2 f#5 d5@3 f#5@5 [a4,d5]@4, ~@2 a5@3 f#5 a5@2 [g3,d5]@4 ~@2 a5@2]/2", // D5 G5
B: "[a4,c#5,e5,a5]@7 ~ [d3,a4,d5,f#5]@8", C: "[[f#3,a4,d5,f#5]@8 [g3,g4,b4,d5]@14 ~@2 [d4,a4]@3 ~ [c#4,a4]@3 ~]/2",
D: "[b3,g4]@4 [a3,f#4]@3 ~@5 g4@4, ~ e3, ~@5 e4@3", E: "a4@4 d5@2 c#5 ~ [g3,g4,b4,d5]@8, [a3,e4]@7 ~@9",
F: "[f#4,a4,c#5,e5]@7 ~ [b3,b4,d5,f#5]@4 [a3,a4]@4", // F#m7 Bm A
G: "[g3,g4]@2 [f#3,f#4]@2 g4 ~@2 g5, ~ [e3,e4,b4], ~@5 g4@3, ~@3 e5", H: "~@2 f#5@2 d5@4 ~@4 d5 ~ g5@2, ~@5 g4@3",
I: "~@4 d5@4 [a3,e4,c#5]@7 ~, a3 ~, ~ e4@3 ~@4", J: "[d3,a4,d5,f#5] [f#3,a4,d5,f#5]", K: "[g3,g4,b4,d5]@7 ~",
L: "[d4,a4]@3 ~ [c#4,a4]@3 ~ [b3,g4]@4 [a3,f#4]@3 ~", M: "~@4 g4@4 a4@4 d5@2 c#5 ~, e3@8 [a3,e4]@7 ~, ~ e4@3 ~@4",
N: "[g3,g4,b4,d5]@8 [f#4,a4,c#5,e5]@7 ~", O: "[b3,b4,d5,f#5] [a3,a4] [g3,g4] [f#3,f#4]",
P: "g4 ~@2 g5 ~ f#5 d5@2, [e3,e4,b4] ~, ~ g4@3 ~@4, ~ e5 ~@2", // E5
Q: "[e4,a4,d5,e5] ~ [a3,e4,a4,d5,e5] ~ [a3,e4,a4,d5,e5] ~ [a3,e4,a4,d5,e5] ~ [a3,e4,a4,d5,e5] ~ [a3,e4,a4,d5,e5] ~ [a3,e4,a4,d5,e5] ~ [a3,e4,d5] ~, ~@7 [a4,e5]", // Dsus2 Asus4 A5
R: "[a3,e4,a4,c#5,e5]@7 ~", S: "d5@2 ~ [e5,a5] [d5,f#5,a5]@2 [d5,f#5,a5]@2, [d4,a4,f#5] [d4,a4], a5@3 ~@5, ~ d5 ~@2",
T: "[g4,b4,d5,a5]@2 [a3,e4,b4,d5] [a3,a4,c#5]", U: "[d5,f#5] [c#5,e5] [b4,d5] [a4,c#5]",
V: "e4 ~@2 e4 a4!2 [a4,d5,e5]@2, [g4,b4,d5] ~, ~ e4@2 ~ [a3,e4,c#5]@4, ~ g5 e5 ~", // Asus4 G A
W: "d5 ~@2 f#5 [c5,f#5,a5]@2 [c5,f#5,a5]@2, [d4,a4,a5] [d4,a4], f#5@3 ~@5, ~ d5@3 ~@4, ~ e5 ~@2", // F#dim D5
X: "~@4 g5@4 [e4,b4,d5,g#5,b5]@7 ~, [g3,g4,b4,d5] ~, ~@2 d4@6 e5 ~@7", Y: "[e4,b4,d5] [d5,f#5,a5], g#5@3 ~@5",
Z: "[b4,d5,f#5]@7 ~ [b4,e5]@8, ~@7 e4@9, ~@7 g4@5 ~@4", // Bm E5
AA: "[a3,e4,d5]@4 [a3,e4,a4,c#5]@3 ~ d5@6 d5@2, ~ [d4,f#5,a5]", AB: "~ f#5 [g4,b4,d5,g5]@2, [d4,e5] ~",
AC: "[a3,e4,b4,d5]@4 [a3,e4,a4,c#5]@3 ~", AD: "e5@4 [b4,d5,e5]@2 [a4,c#5,e5] ~, [a3,e4]@7 ~, [a4,c#5]@3 ~",
// … 87 more lines
More by Brooks Garth
Friends in Low PlacesA major · 100 bpmIf Tomorrow Never ComesG major · 70 bpmThe Thunder RollsD minor · 80 bpmAin't Goin' Down ('til the Sun Comes Up)G major · 168 bpmCallin' Baton RougeD major · 102 bpmAmerican Honky-Tonk Bar AssociationG major · 123 bpmPapa Loved MamaE major · 150 bpmThe RiverD major · 76 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.