0:00/0:00
// Chattahoochee — Alan Jackson
// 150 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 113 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 27.
setcpm(150/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
const bass = note(`<
A B C D E@2 F ~@3 G H I J A B A K L M B N O@2 P Q R G S E J T E A U A@2 E U B E A V E A W X E U B Y A J Z O E AA AB M
AC Q@2 W X B N A B A K O AD A K L O AE R V G H A N E A E J E AF AG AH@2 AI@2 AJ AK@2 AL AM@2 AN E AO AP AQ AR@5 AS@2
AT
>`.pickRestart({
A: "a1@4 e2@3 ~ a1@4 e2@2 ~@2", B: "a1@2 e2@2 a1@2 a1!2", C: "a1@2 e2@2 a1@2 g#2 f#2", D: "e2@2 g#1 e1 a1@2 e2 ~",
E: "a1@3 ~ e1@3 ~ a1@3 ~ a1@3 ~", F: "a1 ~@3", G: "a1@3 ~ e1@4 a1@3 ~ e1@4", H: "a1@4 e1@4 a1@3 a1 a1@2 a1@2",
I: "a1@2 e2@2 a1@2 c#2 d2", J: "e2@4 e2@3 ~ a1@4 a1@2 a1@2", K: "e2@4 b1@2 ~@2 a1@4 a1@3 ~", L: "d2@2 a2@2 d2@2 d2!2",
M: "d2@4 a1@3 ~ d2@4 a1@2 ~@2", N: "e2@4 e2@3 ~ a1@4 a1@3 ~", O: "d2@3 ~ a1@3 ~ d2@3 ~ d2@3 ~",
P: "b1@3 ~ f#1@3 ~ b1@3 ~ b1@3 ~", Q: "e2@3 ~ b1@3 ~ e2@3 ~ e2@3 ~", R: "e2@2 b1@2 e2@2 e2!2",
S: "a1@4 e1@4 a1@3 a1 f#1@2 b1@2", T: "a1@2 e2@2 a1@2 f#1 b1", U: "e2@4 e2@3 ~ a1@4 e2@2 ~@2",
V: "e2@4 b1@3 ~ e2@4 b1@2 ~@2", W: "a1@4 e2@3 ~ a1@3 ~ e2@3 ~", X: "a1@3 ~ e2@3 ~ a1@4 e2@2 ~@2",
Y: "a1@2 e2@2 a1@2 f#1 g#1", Z: "d2@4 a2@3 ~ d2@4 a2@2 ~@2", AA: "e2@2 b1 ~ a1@2 a1!2", AB: "d2@2 a2@2 d2@2 b1 c#2",
AC: "b1@2 f#2@2 b1@2 b1!2", AD: "d2@2 a1@2 d2@2 d2!2", AE: "b1@4 f#2@3 ~ b1@4 f#2@2 ~@2", AF: "e2@4 e2@4 ~ a1@7",
AG: "~ a1@5 ~@2", AH: "[~@3 a1@4 e2@4 a1@3 ~ a1@2 a1 a1@4 ~ e2@2 ~@2 a1@3 e2@2]/2",
AI: "[~@2 a1@3 ~ a2@4 f#2@4 e2@4 a1@3 ~ e1@4 a1@3 ~ e1@2]/2", AJ: "~@2 a1@4 e2@4 a1@3 ~ a1@2",
AK: "[a1@2 e2@4 e2@3 a1@4 a1@2 a1@2 a1@4 e2@2 ~@3 a1@3 e2@2 ~]/2", AL: "~ a1@3 ~ e1@3 ~ a1@3 ~ a1@3",
AM: "[~ a1@4 e2@4 a1@3 ~ a1@2 a1@2 e2@3 ~ b1@3 ~ e2@3 ~ e2@3]/2", AN: "~ a1@3 e1@3 ~ a1@3 ~ a1@3 ~",
AO: "a1@4 e2@2 ~@2 a1@3 ~ e2@2 ~@2", AP: "a1@3 ~ e1@3 ~ a1@3 ~ e1@3 ~",
AQ: "a1@4 e1@4 a1@3 a1@2 ~ e2@2, ~@11 c#2 ~@4",
AR: "[a1@4 e2@3 a1@3 ~ a1@2 a1@2 e2@4 e2@3 ~ a1@4 e2@2 ~@2 a1@3 ~ e1@3 ~ a1@3 ~ a1@3 ~ a1@4 e2@4 a1@3 ~ a1@2 a1@2 a1@4 e2@4 a1@3 ~ g#2@2 ~ e2@2, ~@77 f#2@2 ~]/5",
AS: "[~@2 b1@3 ~ e2@3 ~ e2@3 ~ a1@4 e2@2 ~@2 a1@3 ~ e2@2 ~@2 a1@2]/2", AT: "~@2 e1@3 ~ a1@3 ~ a1@3 ~@3",
})).s("gm_acoustic_bass").gain(0.8)
// other · banjo
const banjo = note(`<
A@2 B ~ A C A D B A E F G H I G J K L M J H N L O P Q E F I H J I G K G@2 J R I@2 S P I@2 T@2 S H S@2 G K U N I K N L
V W X T@2 S K J I J H U M G K U L V Q X Y Z S H S@3 K I AA@2 ~@2 AB AC AD AE AF AG AH AI AJ ~@2 AK@2 AL AM@4 AN AO ~
>`.pickRestart({
A: "~@14 [a3,c#4,e4] ~", B: "~@6 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~", C: "~@6 [a3,c#4,e4] ~@7 e4 ~",
D: "~@6 [g#3,b3,e4] ~@7 b4 ~", // E
E: "e4@2 c#4 ~ e4@2 ~@2 c#4 ~ e4 ~@3 c#4 e4, ~@3 e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~@2, ~@7 e4@2 ~@4 e4@2 ~",
F: "~ e4 ~ e4 c#4 e4@2 e3 c#4 e4@2 ~ e4 c#4 e3 e4, e3@2 e3@2 ~@7 e3@2 ~@3",
G: "~ e4@2 e3@2 e4@2 e3@2 d4 ~@2 d4 ~ e4 ~, e3@2 ~@8 e3@2 ~ e3@2 ~, ~@11 e4@2 ~@3",
H: "~ g#4 e4 g#3 g#4 e4 g#4 g#3 c#4 e4 ~ e3 e4 ~ e3 c#4, ~@5 e4 ~@2",
I: "e4 ~ e3 ~@2 e3@2 e4 ~ e4!2 e3 c#4 e4 e3 e4, ~@3 c#4@2 ~@11, ~@2 e4 ~@5",
J: "~@2 e3 c#4 e4@2 e3 c#4 e4@2 ~ e4!2 e3 c#4 ~, ~@5 e3 ~@2",
K: "e4 g#4 ~ g#3 g#4 ~ g#3 e4 ~ e4 c#4 e3 e4 c#4 e4 e3, ~ g#4 ~@6",
L: "~@2 a3 f#4 a4@2 a3 f#4 a4@2 ~ a4!2 a3 f#4 ~, ~@5 a3 ~@2",
M: "a4@2 ~@2 a3 ~ a4@2 a4 ~@3 a3 g4 f#4 a4, ~@3 a4@2 f#4@2 ~@2 a3@2 a4@3 ~@2, ~@5 g4 ~@2",
N: "a4 ~ a3 ~@2 a3@2 a4 ~ a4!2 a3 f#4 a4 a3 a4, ~@3 f#4@2 ~@11, ~@2 a4 ~@5",
O: "~@2 f#3 b3 ~@2 f#3 b3 ~@5 f#3 b3 ~, ~@2 d#4 ~ d#4 f#3 f#4 ~, ~@5 f#4@3 ~ f#4@2 d#4@2 ~@3",
P: "~@2 g#3 e4 g#4@2 g#3 e4 g#4@2 ~ g#4!2 g#3 e4 ~, ~@5 g#3 ~@2",
Q: "g#4 ~ g#3 ~@2 g#3@2 g#4 ~ g#4!2 g#3 e4 g#4 g#3 g#4, ~@3 e4@2 ~@11, ~@2 g#4 ~@5",
R: "e4 g#4 ~ g#3 g#4 ~ g#3 e4 c#4 e4 ~ e3 e4 ~ e3 c#4, ~ g#4 ~@3 e4 ~@2",
S: "e4@2 ~@2 e3 ~ e4@2 e4 ~@3 e3 d4 c#4 e4, ~@3 e4@2 c#4@2 ~@2 e3@2 e4@3 ~@2, ~@5 d4 ~@2",
T: "[~ c#4 ~@2 c#4 ~@2 c#4 ~@2 a3 ~@2 c#4 ~@2 c#4!2 ~@2 e3 ~@4 e4 ~@2 e4 c#4 e3 ~, e4@2 e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@3 ~@2 c#3@2 ~ e4@2 c#4@2 c#4@2 ~@4, ~@3 e4@2 ~ e4@2 ~ e4@2 ~ e4@2 ~ e4@2 ~ e4@2 ~ c#4@2 e3@2 ~@2 e3@2 ~@3]/2",
U: "~ a4@2 a3@2 a4@2 a3@2 g4 ~@2 g4 ~ a4 ~, a3@2 ~@8 a3@2 ~ a3@2 ~, ~@11 a4@2 ~@3",
V: "~ d#4@2 ~ f#3 ~@7 f#3 c#4 b3 f#4, f#4@2 ~ f#4@2 b3@2 d#4@2 f#3@2 f#4@3 ~@2, ~@3 f#4!2 c#4 ~@2",
W: "g#4@2 ~@2 g#3 ~ g#4@2 g#4 ~@3 g#3 f#4 e4 g#4, ~@3 g#4@2 e4@2 ~@2 g#3@2 g#4@3 ~@2, ~@5 f#4 ~@2",
X: "~ g#4@2 g#3@2 g#4@2 g#3@2 f#4 ~@2 f#4 ~ g#4 ~, g#3@2 ~@8 g#3@2 ~ g#3@2 ~, ~@11 g#4@2 ~@3",
Y: "~ e4 c#4 e3 e4 c#4 e3 c#4 a3 e3 c#4 a3 e3 c#4 a3 e3",
Z: "e4 c#4 ~ e4 c#4 ~ e4 e3 ~ e4 ~ c#4 e4 e3 c#4 e4, ~@5 e3 ~@2",
AA: "[e4 g#4 ~ g#3 g#4 ~ g#3 ~ e4 ~@2 e4@2 c#4@2 e3@2 e4@3 c#4@4 e4@4 e3@4, ~ g#4 ~@14]/2",
AB: "~@3 c#4 ~@2 c#4 ~@2 c#4 ~@2 a3 ~@2 c#4, ~@2 e4@2 e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~, ~@5 e4@2 ~ e4@2 ~ e4@2 ~ e4@2",
AC: "~@2 c#4!2 ~@2 e3 ~@4 e4 ~@2 e4 c#4, e3@3 ~@2 c#3@2 ~ e4@2 c#4@2 c#4@2 ~@2, ~ e4@2 ~ e4@2 ~ c#4@2 e3@2 ~@2 e3@2 ~",
AD: "e3 ~@3 e3 c#4 e4@2 e3 c#4 e4@2 ~ e4!2 e3, ~@6 e3 ~",
AE: "c#4 ~ e4 ~ g#3 g#4 ~ g#3 e4 ~ e4 c#4 e3 e4 c#4 e4, ~@3 g#4@2 ~@11",
AF: "e3 e4 ~ e3 c#4 ~ e3@2 e4 ~ e4!2 e3 c#4 e4 e3, ~@5 e4@2 ~@9",
AG: "e4!2 ~ e3 c#4 ~ e3@2 e4 ~ e4!2 e3 c#4 e4 e3, ~@5 e4@2 ~@9",
AH: "e4 ~@2 e3 c#4 e4@2 e3 c#4 e4@2 ~ e4!2 e3 c#4, ~@11 e3@2 ~@3",
AI: "~@3 g#3 e4 g#4@2 g#3 e4 g#4@2 ~ g#4!2 [g#3,e4] ~, ~@11 g#3@2 ~@3", // C#m
AJ: "e4 ~ e3 c#4 ~ e3@2 e4 ~ e4!2 e3 c#4 e4 e3 e4, ~@2 e4 ~@5",
AK: "[~ c#4 ~@2 c#4 ~@2 c#4 ~@2 a3 ~@2 c#4 ~@2 c#4!2 ~@2 e3 ~@3 c#4 e4 ~ e4 c#4 e3 ~ e4, e4@2 e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@3 ~@2 c#3@2 ~ e4@2 ~ c#4@2 ~@5, ~@3 e4@2 ~ e4@2 ~ e4@2 ~ e4@2 ~ e4@2 ~ e4@2 ~ c#4@2 e3@2 ~ e3@2 ~@4]/2",
AL: "~ e3 c#4 ~ e3@2 e4 ~ e4!2 e3 c#4 e4 e3 e4!2, ~@3 e4@2 ~@11",
AM: "[g#4 ~ g#3 g#4 ~ g#3 e4 ~ e4 c#4 e3 e4 c#4 e4 e3 e4@2 ~@2 e3 ~ e4@2 e4 ~@3 e3 d4 c#4 e4 ~ e4@2 e3@2 e4@2 e3@2 d4 ~@2 d4 ~ e4 ~@2 e4@2 e3@2 ~ e3@2 d4 ~@2 d4 ~ e4 ~ g#4@2, ~ g#4@2 ~@15 e4@2 c#4@2 ~@2 e3@2 e4@3 ~@13 e4@2 ~@8 e4@2 ~@3 e4@2 ~@5, ~@25 d4@2 ~@4 e3@2 ~@8 e3@2 ~ e3@2 ~ e3@2 ~@7 e3@2 ~ e3@2 ~@3]/4",
AN: "~@2 g#3 ~ g#4@2 g#4 ~@3 g#3 f#4 e4 g#4 e4@2, ~ g#4@2 e4@2 ~@2 g#3@2 g#4@3 ~@4, ~@4 f#4 ~@3",
AO: "~@2 e3 ~ e4@2 e4 ~@3 e3 d4 c#4 e4 ~@2, ~ e4@2 c#4@2 ~@2 e3@2 e4@3 ~@4, ~@4 d4 ~@3",
})).s("gm_banjo").gain(0.32)
// other · banjo · soft notes
const banjo_soft = note(`<
A@2 B C A D A E B A ~@2 F ~ G F H ~ I ~ H ~ J I K L M ~@2 G ~ H G F ~ F@2 H ~ G@2 ~ L G@2 ~ H ~@4 F ~ N J G ~ J I ~@2
O ~ H ~@2 H G H ~ N ~ F ~ N I ~ M O ~ P ~@6 G ~@6 Q@2 R@2 ~ S G ~@3 T U ~@2 V W ~@3
>`.pickRestart({
A: "a2@2 [a3,c#4,e4] ~ e2@2 [a3,c#4,e4] ~ a2@2 [a3,c#4,e4] ~ e2@2 ~@2", // A
B: "a2@2 [a3,c#4,e4] ~ e2@3 ~ a2 ~@3 e2@2 ~@2", C: "[e2,e3,g#3,b3,e4]@6 ~@2 a2@2 [a3,c#4,e4] ~ e2@2 [a3,c#4,e4] ~",
D: "a2@2 [a3,c#4,e4] ~ e2@4 ~@2 a3 c#4 [e4,a4] ~@3, ~@4 a2@2 e2 ~", // A A5
E: "[e2,e3]@2 [g#3,b3,e4] ~ b2@4 ~@2 e4 g#4 [b4,e5] ~@3, ~@4 [e2,e3]@2 b2 ~", F: "~@2 c#4 ~ e4 ~@3", G: "~@8 e3 ~@7",
H: "~@15 e4", I: "~@15 a4", J: "~@8 a3 ~@7", K: "~@15 f#4", L: "~@15 g#4", M: "~@8 g#3 ~@7", N: "~@2 f#4 ~ a4 ~@3",
O: "~@2 e4 ~ g#4 ~@3", P: "~@2 e3 ~@2 e3 ~@2 c#4 ~@7", Q: "~ e4 ~@14", R: "~@9 e3 ~@6", S: "e4 ~@14 g#4",
T: "~@14 e4 ~", U: "~@7 e3 ~@8", V: "~@3 c#4@2 ~@2 e4@2 ~@7", W: "~@3 c#4@2 ~ e4@2 ~@8",
})).s("gm_banjo").gain(0.16)
// chords · string ensemble 1
const string_ensemble_1 = note(`<
~@10 A B C D E F C G H I C J H I K L M A B E N C O F N C O C P E F C Q C O A B C R C E@2 S H T F R U@2 K L M A B F R C
E C V U T E W U H K L X Y Z E AA E@2 C AB E AC AD ~@2 AE@2 AF AG AH@2 AI@2 AJ ~@2 AK AL@2 AM@5 AN ~
>`.pickRestart({
A: "c4 c#4@2 [c#4,e4]!2 ~ [c#4,e4]@2 [b3,e4]@3 ~ b3 [b3,c#4] a3@2, e4@2 ~@10 e4@3 ~", // C#m E5 Bsus2
B: "c4 c#4@2 c#4!2 ~ b3 [b3,c#4] a3 ~ [e3,e4]@2 e4@2 [b3,e4] ~, e4@3 e4@2 ~ e4@4 ~@2 a3 ~@3", // Bsus2 E E5
C: "[c#4,a4]@3 [c#4,a4]!2 ~ [c#4,a4] ~ [c#4,a4]@3 ~ b3@2 a3@2, ~@3 e4", // F#m
D: "~@2 [g#4,b4]!2 g#4 ~ [g#4,b4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@2 ~@2", // G#m A
E: "[b3,e4] c#4 [c#4,e4]!3 ~ [c#4,e4] ~ [c#4,e4]@2 ~ [c#4,e4] [b3,e4] ~ [a3,e4] ~", // E5 C#m E5 A5
F: "[c#4,e4]@4 [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@4 [a3,e4] ~ [b3,e4] ~", // C#m A5 E5
G: "~@2 [g#4,b4]!2 g#4 ~ [g#4,b4] ~ b3 c#4@3 b3 [b3,c#4] a3 ~, ~@8 e4@4 e4@3 ~", // G#m Bsus2
H: "[e4,a4] f#4 [f#4,a4]!3 ~ [f#4,a4] ~ [f#4,a4]@2 ~ [f#4,a4] [e4,a4] ~ [d4,a4] ~", // A5 F#m A5 D5
I: "e4 f#4@5 [e4,a4] ~ d4@4 e4@2 d4 ~, a4@6 ~@2 a4@7 ~", J: "f#4 g#4@3 f#4@2 e4 ~ b3 c#4@3 b3@2 a3 ~, b4@7 ~ e4@7 ~",
K: "[d#4,b4]@3 [d#4,b4]!2 ~ [d#4,b4] ~ [d#4,b4]@3 ~ c#4@2 b3@2, ~@3 f#4", // G#m
L: "[g#4,b4]@11 ~ f#4 [f#4,g#4] e4 ~, f#4 ~@11 b4@3 ~", // G#m F#sus2
M: "[f#4,b4] g#4 [g#4,b4]!3 ~ [g#4,b4] ~ [g#4,b4]@2 ~ [g#4,b4] [f#4,b4] ~ [e4,b4] ~", // B5 G#m B5 E5
N: "f#4 g#4@3 f#4 [f#4,g#4] e4 ~ b3 c#4@3 b3 [b3,c#4] a3 ~, b4@4 b4@3 ~ e4@4 e4@3 ~", // F#sus2 Bsus2
O: "b3 c#4@5 [b3,e4] ~ b3 c#4@2 ~ e4@2 a3 ~, e4@5 ~@3 e4@4 b3 ~@3", // E5
P: "f#4 g#4@3 f#4 [f#4,g#4] e4 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@2 ~@2, b4@4 b4@3 ~@9", Q: "[g#4,b4]@12 b3@2 e4 ~",
R: "f#4 g#4@3 f#4@2 e4 ~ [c#4,e4]@3 ~ [c#4,e4]@3 ~, b4@7 ~@9", // C#m
S: "~@2 [g#4,b4]!2 g#4 ~ [g#4,b4] ~ [c#4,e4]@3 ~ [c#4,e4]@3 ~", // G#m C#m
T: "e4 f#4@5 [e4,a4] ~ e4 f#4@2 ~ a4@2 d4 ~, a4@5 ~@3 a4@4 e4 ~@3", // A5
U: "[f#4,d5]@3 [f#4,d5]!2 ~ [f#4,d5] ~ [f#4,d5]@3 ~ e4@2 d4@2, ~@3 a4", // D
V: "[e4,g#4,b4]@3 ~ [e4,g#4,b4]@2 ~@4 [c#4,e4]!2 c#4 ~ [c#4,e4] ~", // E C#m
W: "~@2 [g#4,b4]!2 g#4 ~ [g#4,b4] ~@3 [c#4,e4]!2 c#4 ~ [c#4,e4] ~", // G#m C#m
X: "[g#4,e5]@3 [g#4,e5]!2 ~ [g#4,e5] ~ [g#4,e5]@3 ~ f#4@2 e4@2, ~@3 b4", // C#m
Y: "[c4,e4] [c#4,e4]!4 ~ [c#4,e4] ~ [c4,e4] [c#4,e4]!4 ~ e4@2, ~@14 c#4 ~", // C C#m C C#m
Z: "[c4,e4] [c#4,e4]!4 ~ b3@2 a3@4 b3@2 a3 ~, ~@6 e4@9 ~", // C C#m
AA: "f#4 g#4@3 f#4@2 e4 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@2 ~@2, b4@7 ~@9", // A
AB: "f#4 g#4@3 f#4@2 e4 ~ b3 c#4@3 b3 [b3,c#4] a3 ~, b4@7 ~ e4@4 e4@3 ~", // Bsus2
AC: "~@2 [g#4,b4]!2 g#4 ~ [g#4,b4]@2 ~ [c#4,e4]@6 ~", AD: "~ [c#4,e4]@10 ~@5",
AE: "[~@2 [a3,e4]@3 [a3,e4]!2 ~ [b3,e4] ~ b3 c#4@3 [b3,e4]@4 [a3,e4]@3 e4!2 ~ [b3,e4] ~ b3 c#4@3 b3@2, ~@10 e4@3 ~@8 a3@2 ~@3 e4@6]/2", // A5 E5 A5 E5
AF: "a3 ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@4 [a3,e4] ~", // C#m A5
AG: "[b3,e4] ~ [e4,g#4,b4]@3 [e4,g#4,b4]@2 ~@2 b3 c#4@3 ~ [b3,c#4] [a3,b3], ~@9 e4@4 ~ e4@2", // E5 E Bsus2 Asus2
AH: "[~ [c#4,a4]@3 [c#4,a4]!2 ~ [c#4,a4] ~ [c#4,a4]@3 ~ b3 ~ a3@2 b3 c#4@11 [b3,e4]@2 a3, ~@13 e4@4 e4@11 ~@4]/2", // F#m E5
AI: "[~ [c#4,a4]@3 [c#4,a4]!2 ~ [c#4,a4] ~ [c#4,a4]@3 ~ b3 ~ a3@2 [g#4,e5]@3 [g#4,e5]!2 ~ [g#4,e5] ~ [g#4,e5]@3 ~ f#4 e4@2, ~@13 e4@4 ~@12 b4@3]/2", // F#m C#m
AJ: "[c#4,a4]@3 [c#4,a4]!2 ~ [c#4,a4] ~ [c#4,a4]@3 ~ b3 ~ a3@2, ~@3 e4", // F#m
AK: "[a3,e4]@3 [a3,e4]!2 ~ [b3,e4] ~ b3 c#4@3 [b3,e4]@4, ~@8 e4@3 ~@5", // A5 E5
AL: "[[a3,e4]@3 e4!2 ~ [b3,e4] ~ b3 c#4@3 b3@2 a3 [c#4,a4]@3 [c#4,a4]!2 ~ [c#4,a4] ~ [c#4,a4]@3 ~ b3 ~ a3@2 ~, ~@3 a3@2 ~@3 e4@7 ~@12 e4@4 ~]/2", // A5 E5 F#m
AM: "[~ [g#4,b4]!2 g#4 ~ [g#4,b4] ~ b3 c#4@3 b3 [b3,c#4] a3 ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@4 [a3,e4] ~ [b3,e4] ~ b3 c#4@11 [b3,e4]@2 a3 ~ [c#4,a4]@3 [c#4,a4]!3 ~ [c#4,a4]@3 ~ b3 ~ a3@2 f#4 g#4@5 [f#4,b4] ~ e4@4 f#4@2 e4 ~ [b3,e4] c#4, ~@7 e4@4 e4@3 ~@17 e4@11 ~@16 e4@4 b4@6 ~@2 b4@7 ~@3]/5", // G#m Bsus2 C#m A5 E5 F#m B5 E5
AN: "[c#4,e4]!3 ~ [c#4,e4] ~ [c#4,e4]@2 ~ [c#4,e4] [b3,e4] ~ [a3,e4] ~@3", // C#m E5 A5
})).s("gm_string_ensemble_1").gain(0.56)
// other · acoustic guitar steel
const acoustic_guitar_steel = note(`<
~@5 A B@2 C 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 ~@9 D E AD AE AF I J K L M N O P Q R S T U AG W X Y
Z AA AB AC M N O P Q R S T U V W X Y Z AA AB AC AB AH@2 ~@23
>`.pickRestart({
A: "~@7 e3", B: "[c#4 e3 b3 e3 a3 b3 d#3 e3@4 ~ g#3 a3 e3!2]/2", C: "c#3@3 ~ c#3@6 ~@2 c#3@2 c#3@2",
D: "e3@2 a3@2 b3@2 e3@2 a3@3 ~ c#4@2 c#4@2", E: "c#4@4 c#4@4 ~@2 b3 ~ a3 ~ e3 ~, ~@2 c#4 ~",
F: "a3@3 ~ a3@2 a3@3 ~ e3@2 ~@4", G: "e3@2 ~@2 a3 ~ a3 ~ a3 ~ e3 ~ c#3 ~ d3@2", H: "e3@3 ~ e3@3 ~ d3 ~ c#3@4 ~@2",
I: "~@2 c#4 ~ c#4@3 ~ c#4 ~ b3 ~ a3 ~ e3@2", J: "a3@3 ~ a3@3 ~ b3 ~ a3@5 ~", K: "e3@3 ~ a3@3 ~ a3 ~ e3 ~ c#3 ~ d3 ~",
L: "e3@3 ~ e3@3 ~ c#3@3 ~@5", M: "f#3@3 ~ a3 ~ a3 ~ d4 ~ d4 ~ a3 ~ a3 ~", N: "d4@3 ~ d4@3 ~ e4 ~ d4@3 ~@3",
O: "c#4 ~ c#4 ~ a3 ~ b3 ~ a3@2 ~@2 e3 ~ e3 ~", P: "g#3@3 ~@3 f#3 ~ d3 ~ c#3@2 c#3@3 ~",
Q: "f#3 ~ f#3 ~ a3@3 ~ d4@3 ~ a3 ~ d4@2", R: "~@2 d4 ~ d4@3 ~ e4 ~ d4@2 ~@4",
S: "d#4 ~ d#4 ~ d#4@3 ~ d#4@4 a3 ~ g#3 ~", T: "b3 ~ b3 ~ a3 ~ b3 ~ a3 ~ g#3@2 ~@4", U: "~@12 b3@3 ~",
V: "c#4@3 ~ c#4@2 ~@2 c#4 ~ a3 ~ a3 ~ e3 ~", W: "a3@3 ~ a3@2 a3@3 ~ a3 ~ c#3@2 c#3@2",
X: "e3 ~ a3@2 a3@2 a3@2 a3@2 e3 ~ c#3 ~ d3 ~", Y: "e3@3 ~ e3@3 ~ c#3@2 ~@2 c#4@2 c#4@2",
Z: "c#4@2 ~@2 c#4 ~ c#4@2 a3@2 ~@2 a3 ~ e3@2", AA: "a3@3 ~ a3@2 e3@2 a3@2 ~@4 c#3 ~",
AB: "e3@2 a3@2 a3@3 ~ a3 ~ e3 ~ c#3 ~ c#3 ~", AC: "e3@2 f#3@2 e3@3 ~ c#3@3 ~@5", AD: "a3@3 ~ a3@3 ~ b3 ~ a3@4 ~@2",
AE: "e3@4 a3@3 ~ a3 ~ e3 ~ c#3 ~@2 d3", AF: "e3@3 ~ e3@3 ~ d3 ~ c#3@2 c#4@2 c#4@2",
AG: "c#4@3 ~ c#4@2 ~@2 c#4 ~ a3 ~ b3 ~ e3 ~", AH: "[e3@2 e3@2 f#3 e3 b2@2 ~ c#3@16 ~@7]/2",
})).s("gm_acoustic_guitar_steel").gain(0.8)
// other · electric guitar clean
const electric_guitar_clean = note(`<
A B C D E F G@2 H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH ~@9 I J AI AJ AK N O P Q R S T U V W X Y
Z AL AB AC AD AE AF AG AH R S T U V W X Y Z AA AB AC AD AE AF AG AH AG AM@2 ~@23
>`.pickRestart({
A: "g#2 a2!2 g#2 a2!2 g#2 a2", B: "a2 g#2 a2!2 c#3 e3 f#3 e3", C: "g#2 a2!2 g#2 a2!4", D: "f#2 e2 b2 c3 a2 ~@3",
E: "g#2@2 a2@2 a2@2 g#2 ~ a2@2 a2@2 g#2@2 a2@2", F: "a2 g#2 a2!2 c#3 e3 f#3 c#3",
G: "[a3 c#3 f#3 c#3 e3 f#3 c3 c#3@4 ~ e3 f#3 c3 b2]/2", H: "a2@3 ~ a2@6 ~@2 a2@2 a2@2",
I: "c#3@2 e3@2 f#3@2 c#3@2 e3@3 ~ a3@2 a3@2", J: "a3@4 a3@4 ~@2 f#3 ~ e3 ~ c#3 ~, ~@2 a3 ~",
K: "e3@3 ~ e3@2 f#3@3 ~ c#3@2 ~@4", L: "c#3@2 ~@2 e3 ~ e3 ~ e3 ~ c#3 ~ a2 ~ b2@2", M: "c#3@3 ~ c#3@3 ~ b2 ~ a2@4 ~@2",
N: "~@2 a3 ~ a3@3 ~ a3 ~ f#3 ~ e3 ~ c#3@2", O: "e3@3 ~ e3@3 ~ f#3 ~ e3@5 ~", P: "c#3@3 ~ e3@3 ~ e3 ~ c#3 ~ a2 ~ b2 ~",
Q: "c#3@3 ~ b2@3 ~ a2@3 ~@5", R: "d3@3 ~ f#3 ~ f#3 ~ a3 ~ a3 ~ f#3 ~ f#3 ~", S: "a3@3 ~ a3@3 ~ b3 ~ a3@3 ~@3",
T: "a3 ~ a3 ~ f#3 ~ f#3 ~ e3@2 ~@2 c#3 ~ c#3 ~", U: "e3@3 ~@3 c#3 ~ b2 ~ a2@2 a2@3 ~",
V: "d3 ~ d3 ~ f#3@3 ~ a3@3 ~ f#3 ~ a3@2", W: "~@2 a3 ~ a3@3 ~ b3 ~ a3@2 ~@4", X: "a3 ~ a3 ~ b3@3 ~ b3@4 f#3 ~ e3 ~",
Y: "g#3 ~ g#3 ~ f#3 ~ g#3 ~ f#3 ~ e3@2 ~@4", Z: "~@12 a3@3 ~", AA: "a3@3 ~ a3@2 ~@2 a3 ~ f#3 ~ [e3,f#3] ~ c#3 ~",
AB: "e3@3 ~ e3@2 f#3@3 ~ e3 ~ a2@2 a2@2", AC: "c#3 ~ e3@2 e3@2 e3@2 e3@2 c#3 ~ a2 ~ b2 ~",
AD: "c#3@3 ~ b2@3 ~ a2@2 ~@2 a3@2 a3@2", AE: "a3@2 ~@2 a3 ~ a3@2 f#3@2 ~@2 e3 ~ c#3@2",
AF: "e3@3 ~ e3@2 c#3@2 f#3@2 ~@4 a2 ~", AG: "c#3@2 e3@2 e3@3 ~ e3 ~ c#3 ~ a2 ~ a2 ~",
AH: "b2@2 c#3@2 b2@3 ~ a2@3 ~@5", AI: "e3@3 ~ e3@3 ~ f#3 ~ e3@4 ~@2", AJ: "c#3@4 e3@3 ~ e3 ~ c#3 ~ a2 ~@2 b2",
AK: "c#3@3 ~ c#3@3 ~ b2 ~ a2@2 a3@2 a3@2", AL: "a3@3 ~ a3@2 ~@2 a3 ~ f#3 ~ f#3 ~ c#3 ~",
AM: "[c#3@2 c#3@2 c#3 b2 a2@2 ~ a2@16 ~@7]/2",
})).s("gm_electric_guitar_clean").gain(0.8)
// other · distortion guitar
const distortion_guitar = note(`<
A B C D E F G@2 H I@2 ~@24 E B C D E F J K H ~@46 L M N O P Q R@4 S A T E U@8 ~
>`.pickRestart({
A: "g#3 a3!2 g#3 a3!2 g#3 a3", B: "a3 g#3 a3!2 c#4 e4 f#4 e4", C: "g#3 a3!2 g#3 a3!4", D: "f#3 e3 b3 c4 a3 ~@3",
E: "g#3@2 a3@2 a3@2 g#3 ~ a3@2 a3@2 g#3@2 a3@2", F: "a3 g#3 a3!2 c#4 e4 f#4 c#4",
G: "[a4 c#4 f#4 c#4 e4 f#4 c4 c#4@4 ~ e4 f#4 c4 b3]/2", H: "a3@3 ~ a3@6 ~@2 a3@2 a3@2",
I: "[c#4@2 e4@2 f#4@2 c#4@2 e4@3 ~ a4@2 a4@14 ~@4]/2", J: "a4 c#4 f#4 c#4 e4 f#4 c4 b3", K: "~@4 e4 f#4 c4 b3",
L: "~@2 g#3@2 ~ a3@2 ~ g#3@2 a3@2 a3@2 g#3@2, ~@7 a3@2 ~@7", M: "a3@2 a3@2 g#3@2 a3@2 a3@2 g3 f#3 e3@2 f#3@2",
N: "e3@2 g#3@2 a3@2 a3@2 g#3 ~ a3@2 a3@2 g#3@2", O: "a3!2 g#3 a3!2 c#4 e4 f#4", P: "e4 g#3 a3!2 g#3 a3!3",
Q: "a3@2 ~ e3@2 b3@2 c4@2 a3@2 ~@5, ~ f#3 ~@6",
R: "[~ g#3@2 a3@2 a3@2 g#3 ~ a3@2 a3@2 g#3@2 a3@2 a3@2 g#3@2 a3@2 a3@2 c#4@2 e4@2 f#4@2 c#4@2 a4@2 c#4@2 f#4@2 c#4@2 e4@2 f#4 ~ c4@2 c#4@8 ~@4 f#4@2 ~ b3@2, ~@61 c4@2 ~]/4",
S: "a3@13 ~@3", T: "a3@2 g#3@2 a3@2 a3@2 g3 f#3 e3@2 f#3@2 e3@2",
U: "[a3@2 g#3@2 a3@2 a3@2 ~ e4@2 f#4@2 e4@2 g#3@2 a3@2 a3@2 g#3@2 a3@2 a3@2 a3@2 a3@2 f#3@2 e3@2 b3@2 c4@2 a3@2 ~@6 g#3@2 a3@2 a3@2 g#3 ~ a3@2 a3@2 g#3@2 a3@2 a3@2 g#3@2 a3@2 a3@2 c#4@2 e4@2 f#4@2 c#4@2 a4@2 c#4@2 ~ c#4@2 e4@2 f#4 ~ c4@2 c#4@8 ~@4 f#4@2 c4@2 b3@2 a3@13 ~@5, ~@8 c#4@2 ~@73 f#4@2 ~@43]/8",
})).s("gm_distortion_guitar").gain(0.8)
// other · distortion guitar
// … 92 more lines
More by Alan Jackson
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.