0:00/0:00
// Hello, Dolly! — ARMSTRONG LOUIS
// 194 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 107 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(194/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.
// chords · trumpet
const trumpet = note(`<
A B C D E ~ F ~@3 G H I ~ J ~ K L M N O ~ P ~@3 Q R S ~ T U V W X ~@5 Y Z@2 ~ AA AB AC AD AE AF AG AH ~@6 AI AJ AK AL
AM ~ AN AO AP ~ AQ ~ AR ~@3 AS H AT ~ AU ~ AV L AW AX AY ~ AZ ~@3 BA BB BC ~ BD BE BF BG BH BI BJ BK X ~@2 BL ~
>`.pickRestart({
A: "[b4,d5,f5,g5] ~@7", B: "[a#4,c#5,e5,g5] ~@7",
C: "[b4,f5,g5] ~ [b4,f5,g5] ~ [c5,f5,a5] ~@3 [f5,b5]@2 ~@2 [d#5,f#5,a5,c6] ~@3, ~@8 d5 ~@7", D: "[f5,g5,b5,d6] ~@7",
E: "~@8 [e5,g5]@3 [d#5,f#5] [e5,g5]@2 ~@2", F: "~@8 [e5,a5]@2 ~ [d#5,g#5] [e5,a5]@2 ~@2, ~@12 g#5 ~@3",
G: "~@4 [d5,a5]@2 [d5,f5,a5,c6] ~@3 [d5,f5,a5,c6] ~ [d5,f5]@2 ~@2, ~@4 [f5,c6] ~@7 [a5,c6] ~@3", // D5 Dm7 Dm F5 Am
H: "[d5,f5,g5,b5] ~@7", I: "~@8 [f5,a5]@3 [e5,g#5] [f5,a5] ~@3", J: "~@8 [f5,a#5]@3 [e5,a5] [f5,a#5]@2 ~@2",
K: "a4@8 a#4@7 ~", L: "b4@4 g4@2 f4 ~", M: "~ g4@2 f#4", N: "f4 ~@7",
O: "~@8 [g5,c6]@3 f#5 [g5,c6] ~@3, ~@11 b5@2 ~@3", P: "~@8 [a5,c6]@3 [g#5,b5] [a5,c6]@2 ~@2, ~@12 b5 ~@3",
Q: "~@2 f5 a5 ~ a5 c6 ~", R: "~@4 e5@2 g#5 ~@3 g#5 ~ b5 ~@3", S: "[c5,e5,a5] ~@7",
T: "a5 ~@2 a5 a5@2 ~@2 a5@2 ~@2 e5@2 ~@2", U: "e5@2 b4 e5", V: "f#5 ~@2 f#5!2 ~@3 f#5@2 ~@2 f#5@2 ~@2",
W: "f5 ~ f5 ~ f5@4", X: "e5 ~@3", Y: "e5@2 f5@2 e5@2 ~ f5", Z: "[e5 ~ e5 ~ f5@4 g5@2 ~@2 f5@2 c5@11 ~@7]/2",
AA: "~@4 a#5@2 ~@2 g5@2 a#5 ~ g5 ~@3", AB: "a#5@3 ~@5", AC: "~@4 a#5@2 ~@2 g5@2 a#5@2 g5 ~@3", AD: "a#5@5 ~@11",
AE: "a4@2 g4@2 a4@2 ~ g4", AF: "a4@2 g4 ~ g4@2 e4 ~", AG: "~@4 f4@6 ~@2 f4@3 ~", AH: "e4 ~@7",
AI: "~@11 [d4,f4,a#4] [f4,a#4,d5] ~@3", AJ: "[g4,c#5,e5]@8 ~@2 a4 ~ [c#5,e5] ~@3", AK: "[a4,d5,f5] ~@3",
AL: "~@6 [e4,a4,c5] ~", AM: "[a4,d5,f5]@5 ~@11", AN: "e5@7 ~ d#5@2 ~@2 d#5@3 ~", AO: "d5@7 ~ e5@6 ~@2",
AP: "c5@9 ~@7", AQ: "~@8 [e5,g5]@2 d#5 f#5 [e5,g5]@2 ~@2", AR: "~@8 [e5,a5]@2 g#5 d#5 [e5,a5]@2 ~@2",
AS: "~@4 [d5,f5,a5,c6] ~ [d5,f5,a5,c6] ~@3 [d5,f5,a5,c6] ~ [f5,a5,c6] ~@3, ~@6 d5 ~", // Dm7 F
AT: "~@8 [f5,a5]@2 ~ [e5,g#5] [f5,a5]@2 ~@2", AU: "~@8 [f5,a#5]@3 e5 [f5,a#5]@2 ~@2, ~@11 a5@2 ~@3", AV: "a4 a#4",
AW: "~@4 g4@6 ~@2 f#4@3 ~", AX: "f4@3 ~@13", AY: "~@8 [g5,c6]@3 [f#5,b5] [g5,c6]@2 ~@2",
AZ: "~@8 [a5,c6]@3 [g#5,b5] [a5,c6]@2 ~@2", BA: "~@4 f5@2 a5 ~@3 a5@2 c6@2 ~@2",
BB: "~@4 e5@2 g#5 ~@3 g#5@2 b5@2 ~@2", BC: "a5 ~@7", BD: "a5@2 ~ a5 a5@2 ~@2 a5@2 ~@2 e5 ~@3", BE: "e5@8 b4@4 e5@3 ~",
BF: "f#5 ~ f#5 ~ f#5@2 ~@2 f#5@2 ~@2 f#5@2 ~@2", BG: "f5@2 d5 f5@4 ~",
BH: "f#5@2 f#5 ~ f#5@2 ~@2 f#5@2 ~@2 f#5@2 ~@2", BI: "f5@4 d5@2 f5@7 ~@3",
BJ: "f#5@2 ~ f#5 f#5@2 ~@2 f#5@2 ~@2 f#5@2 ~@2", BK: "f5@2 ~@2 f5 ~@3 f5@6 ~@2",
BL: "b4 ~ b4 ~@3 b4 ~ g4@2 ~@2 c5@2 ~@2",
})).s("gm_trumpet").gain(0.4).pan(0.2)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
A B C D E@2 F@2 G H I J@3 K L M N O P Q@2 R@2 S T U@2 V@2 W X Y@2 Z@2 ~@31 AA AB@2 AC@2 G AD AE AF AG@2 AH@4 AI AJ
AK@2 AL@2 AM@2 AN@2 AO AP AQ AR AS@2 AT@2 AU@2 AV AW AX AY ~
>`.pickRestart({
A: "[b4,d5,f5,g5]@3 ~@13", B: "[a#4,c#5,e5,g5] ~@3",
C: "[b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~ [c5,f5,a5]@2 ~@2 [d5,f5]@2 ~@2 [d#5,f#5,a5] ~@3, ~@8 b5 ~@3 c6@2 ~@2", // G7 F Dm D#dim
D: "[f5,g5,b5,d6]@3 ~@5 e5@8", E: "[g5@8 e5 ~ c5@2 e5@2 [b3,g5]@2, [e4,g4]@31 ~, c4@13 ~@3]/2",
F: "[a5@15 ~ e5@4 c5@4 e5@4 g5@2 ~@2, [c4,e4,a4]@31 ~]/2", G: "b5 c6 b5 c6, [c4,e4,g4]@7 ~",
H: "b5@4 c6@4 d6 ~@5 c6 ~, [c4,d#4,f#4,a4]@13 ~@3", I: "[c4,d4,f4,a4]@7 ~, g5",
J: "[~@4 f#5@4 g5@3 ~ [b3,d4,f4,g#4]@2 ~@18 f5 ~@3 d5@4 f5@4 a5@4, [b3,d4,f4,g4]@10 ~ g#5@4 a5@16 ~@17, ~@16 [d4,f4,a4]@31 ~]/3", // Bdim G7 Dm
K: "~ f4@13 ~@2, [a#4,a#5], d4@7 ~", L: "f5 ~@3 d5@4 f5@4 a5@3 ~, [d4,f4,a4]@15 ~",
M: "e6 d6 e6 d6, [d4,f4]@15 ~, a4@7 ~ a#4@7 ~", N: "e6@4 d6@4 b5@4 g5@3 ~, [b3,d4,f4,g4]@7 ~",
O: "~@3 b5, [c4,e4,g4]@7 ~ [c4,d#4,f#4,a4]@6 ~@2, ~ a5@2 ~", P: "[b3,d4,f4,g4]@4 e5@4 f5@4 f#5@3 ~, g5 ~@7",
Q: "[g5@15 ~ e5@2 ~@2 c5@2 ~@2 e5@2 ~@2 [b3,g5]@2 ~@2, [e4,g4]@31 ~, c4@27 ~@5]/2", // Em
R: "[a5@8 e5@2 c5@2 e5@2 g5 ~, [c4,a4]@31 ~, e4@29 ~@3]/2", // F
S: "[f4,d6] c6 d6 c6, [a#3,d4,g4]@7 ~ [a#3,e4,g4]@8, ~@4 c4@3 ~", // Dm Gm Edim
T: "d6 c6 [a#3,c4,e4,d6] c6, g4@13 ~@3, [a#3,d4,f4] ~", // C7 A#
U: "[e4@3 ~@9 [b3,d4,e4,g#4]@3 ~, [c4,f4,a4]@23 ~@9, a5@16 b5@13 ~@3, ~@8 d4@15 ~@9]/2", // E7 F
V: "[~@4 c6@8 a5@3 ~ g5@8 e5@4 g5@4, [c4,e4,a4]@14 ~ b3@15 ~@2, ~@16 [e4,g4]@15 ~]/2", // Am Em
W: "c6 ~@2 c6 c6@2 ~@2 c6@4 a5@4, [c4,e4,a4]@7 ~", X: "g5@8 e5@4 g5@3 ~, [b3,e4,g4]@3 ~",
Y: "[b4@7 ~ a#4@5 ~@7 d6@4 f6@4 e6@4, e6@5 ~@3, d4@16 ~@8 [d4,f4,g4,b4,d5]@7 ~, [f#4,e5]@14 ~@2 [f4,a4,c5,d5]@7 ~@9]/2", // G7 F#7 Dm7
Z: "[c6@10 d6 e6 f6 g6 ~ a6 [b6,c7] ~@15, [c4,e4,g4,c5]@19 ~@13]/2", AA: "~ e5",
AB: "[g5@16 e5@3 ~ c5@2 ~@2 e5@4 g5@4, [e4,g4]@31 ~, c4@27 ~ b3@2 ~@2]/2", // Em
AC: "[a5@16 e5@3 ~ c5@4 e5@4 g5@2 ~@2, [c4,e4,a4]@15 ~]/2", AD: "b5@4 c6@4 d6@2 ~@4 c6 ~, [c4,d#4,f#4,a4]@13 ~@3",
AE: "[d4,f4,g5], [c4,a4]@7 ~", AF: "~@4 f#5@4 g5@3 ~ [b3,d4,f4,g#4]@2 ~@2, [b3,d4,f4,g4]@9 ~@2 g#5@4 ~",
AG: "[a5@8 f5 ~ d5 ~ f5 ~ a5@2, [d4,f4,a4]@31 ~]/2", // Dm
AH: "[[a#4,a#5]@16 f5@4 d5@4 f5@3 ~ a5@3 ~ e6@3 ~ d6@4 e6@4 d6@4 e6@4 d6@4 b5@4 g5@3 ~, f4@61 ~@3, d4@23 ~ [d4,g4,b4]@7 ~, ~@8 a4@12 a#4@3 ~@9]/4", // A# G
AI: "~@2 a4 b5, c5@13 ~@3, [e4,g4]@3 ~ [d#4,f#4]@3 ~, ~ a5@2 ~", AJ: "[d4,f4,g4,b4]@4 e5@4 f5@4 f#5@3 ~, g5 ~@15",
AK: "[g5@4 e5 c5 e5 g5, [e4,g4], c4@27 ~ b3@2 ~@2]/2", AL: "[a5@16 e5@4 c5@4 e5@4 g5 ~@3, [c4,a4]@31 ~, e4@29 ~@3]/2",
AM: "[[f4,d6]@4 c6@4 ~ d6@3 c6@4 d6@4 c6@4 d6@4 c6@4, [a#3,d4,g4]@7 ~ g4@21 ~@3, ~@4 a#3@7 ~ [a#3,c4,e4]@3 ~, ~ e4 f4 ~, ~@4 c4@3 ~ d4@3 ~@5]/2", // Dm Gm C7
AN: "[e4@3 ~@9 [b3,e4,g#4]@3 ~, [f4,a4]@11 ~@5, [c4,a5]@4 b5@3 ~, ~@8 d4@13 ~@11]/2", AO: "~ c6@2 a5, [c4,e4,a4]@7 ~",
AP: "g5@2 e5 g5, [b3,e4,g4]@7 ~", AQ: "c6 c6@5 a5@2, [c4,e4,a4]@15 ~", AR: "g5@8 e5@4 g5 ~@3, [b3,e4,g4]@3 ~",
AS: "[b4@6 ~@2 a#4@5 ~@3 [f4,a4,c5,d5]@4 d6@2 [d4,f4,g4,b4,d5]@6 ~@4, [d4,e6]@5 ~@3, [f#4,e5]@15 ~@7 f6@2 ~@8]/2", // Dm7 G7 Dsus2 F#7
AT: "[b4@6 ~@2 a#4@5 ~@3 [d4,f4,a4,c5,d5]@4 d6@2 ~ [d4,b4,d5]@7 ~@2, e6@5 ~@3, [d4,f#4,e5]@15 ~@7 [g4,f6]@7 ~@3]/2", // Dm7 G D G7
AU: "[b4@3 ~ a#4@2 ~@2 [d4,a4,c5,d5]@2 d6 ~@3 e6@2, e6@20 ~@2 f6@5 ~@5, [d4,f#4,e5]@7 ~ f4@7 ~, ~@23 [d4,g4,b4,d5]@7 ~@2]/2", // D7 D G
AV: "[c5,c6] [a#4,a#5], g4, [c4,e4]@7 ~", AW: "[f4,a4,a5] [d#4,f#4,g#5], c4@15 ~, ~@4 g#3@3 ~",
AX: "[c4,e4,g4,g5] ~@3", AY: "~@12 [c4,e4,g4,c5,c6]@3 ~",
})).s("gm_string_ensemble_1").gain(0.24)
// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
A B C D E F G H I J K L M N O P K Q R S T U V W X Y Z I W AA AB AA K AC AD AE AF AG P AH W AI Q AJ AK AL Q AM AN AO AP
AQ AR AS P AT AU AV AW H AX AY AZ AY BA X BB BC T BD BE W I J K BF M N AX P O BF BG BH T BD BE BI BJ X BK I AB BL BI
AA AX BM AX BM BN BO BP BQ BR BS ~
>`.pickRestart({
A: "~ g1", B: "~@8 g1@5 ~@3", C: "d2@4 c2@3 ~ b1@3 ~ a1@2 ~@2", D: "g1 ~@3", E: "c2@5 ~@3 g1@4 ~@4", F: "c2 ~ c2 b1",
G: "a1 ~ e1 ~", H: "a1@5 ~@3 a1@4 ~@4", I: "e2@5 ~@3 e2@5 ~@3", J: "d#2@5 ~@3 d#2@5 ~@3", K: "d2@5 ~@3 d2@5 ~@3",
L: "g1@6 ~@2 g1@5 ~@3", M: "d2@5 ~@3 a1@4 ~@4", N: "d2 ~ a1 ~", O: "d2@5 ~@3 d2@4 ~@4", P: "d2@5 ~@3 a1@5 ~@3",
Q: "g1@5 ~@3 g1@5 ~@3", R: "e2@3 ~ d#2@3 ~", S: "d2@3 ~@5", T: "c2@5 ~@3 g1@5 ~@3", U: "c2@4 ~@4 c2@3 ~ b1@3 ~",
V: "a1@5 ~@3 e2@5 ~@3", W: "a1@5 ~@3 a1@5 ~@3", X: "g1@5 ~@3 c2@5 ~@3", Y: "g1@6 ~@2 c2@5 ~@3",
Z: "f1@5 ~@3 f1@5 ~@3", AA: "e2@5 ~@3 e2@4 g2@4", AB: "a1 ~ a1 ~", AC: "d2@6 ~@2 g1@7 ~",
AD: "c2@4 a1@4 g1@2 ~@2 e1@3 ~", AE: "c2@3 ~@5 c2@8", AF: "f2@5 ~@3 c2@5 ~@3", AG: "f2 ~ f2 e2",
AH: "d2@5 ~@3 a2@4 c2@4", AI: "g#1@5 ~@3 g#1@4 ~@4", AJ: "c2@5 ~@3 c2@5 ~@3", AK: "g1@5 ~@3 d2@6 ~@2",
AL: "g1@4 ~@4 d2@5 ~@3", AM: "g1@5 ~@3 d2@5 ~@3", AN: "g1@5 ~@3 g1@4 ~@4", AO: "c2@4 ~@4 c2@5 ~@3",
AP: "a1@6 ~@2 g#1@5 ~@3", AQ: "g1@4 ~@4 c2@5 ~@3", AR: "f2@6 ~@2 c2@5 ~@3", AS: "f2@6 ~@2 f2@3 ~ e2@3 ~",
AT: "d2@4 ~@4 a1@4 d2@3 ~", AU: "c2@3 ~@5 f1@5 ~@3", AV: "c2@5 ~@3 f1@5 ~@3", AW: "a#1@4 ~@4 a#1@5 ~@3",
AX: "d2 ~ d2 ~", AY: "a1@5 ~@3 a1@4 c2@4", AZ: "d2@4 ~@4 d2@5 ~@3", BA: "g1@4 ~@4 g1@5 ~@3", BB: "f1 d2 c2 a1",
BC: "f1 ~@3", BD: "c2@5 ~@3 c2@4 b1@4", BE: "a1@4 ~@4 e1@5 ~@3", BF: "g1 ~ g1 ~", BG: "e2@5 ~@3 d#2@5 ~@3",
BH: "d2 ~@3", BI: "a1@4 ~@4 a1@5 ~@3", BJ: "g1@5 ~@3 c2@6 ~@2", BK: "f1 ~ f1 ~", BL: "e2 ~ e2 g2",
BM: "d2@2 ~@2 g2 ~ g2@2", BN: "d2@5 ~@3 d2@3 ~@5", BO: "d2@5 ~@3 g2@6 ~@2", BP: "c2@5 ~@3 c2@8", BQ: "f2@3 ~ f#2@4",
BR: "g2 ~@3", BS: "g1 ~ g1@2 ~@2 g1 ~ c2@2 ~@2 c2@2 ~@2",
})).s("gm_electric_bass_finger").gain(0.54)
// other · flute
const flute = note(`<
~@2 A B ~@4 C D E ~@5 F G H ~@5 I@2 J K ~@4 L M E ~@7 N O ~@14 P Q R S T ~ U V W ~@5 E X E ~@5 F G Y ~@5 Z@4 ~@4 L AA
AB AC AD AE AF ~@2 AG ~
>`.pickRestart({
A: "d6 c6 b5 a5", B: "g5@3 ~@13", C: "g5@7 ~", D: "f#5@7 ~ f#5@4 ~@4", E: "g5", F: "a5 a#5", G: "b5@4 g5@2 f5 ~",
H: "~@2 g5@4 f5 ~", I: "[f5@4 e5@4 f5@4 e5@3 ~, a#5@15 ~]/2", J: "[e5,g5]@8 [d5,f5]@7 ~", K: "[f5,a5]@8 [e5,g#5]@7 ~",
L: "b5 ~@2 b5 b5@2 ~@2 a#5@2 ~@2 a#5@2 ~@2", M: "a5 ~ a5 ~ b5@4", N: "~@10 d#6 ~ e6 g6 e6 ~",
O: "d6 c6 ~ a5 g#5 ~@2 g5 e5@2 ~ d5 c5 ~@3", P: "~@2 [d5,a#5]@2 ~@2 d5 ~, ~@12 a#5 ~@3",
Q: "~@4 [e5,c#6]@4 ~@4 [e5,c#6] ~@3", R: "[f5,d6] ~@7", S: "~@6 [a5,c6] ~", T: "[a5,d6] ~@7",
U: "e5@7 ~ d#5@2 ~@2 d#5@2 ~@2", V: "d5 e5", W: "c5", X: "f#5@7 ~ f#5@8", Y: "~@4 g5@5 ~@3 f5 ~@3",
Z: "[f5@4 e5@4 f5@4 ~@4 g5@4 d5@4 a5@4 [e5,g5]@3 ~, a#5 ~, ~@12 e5@7 ~ f5@8 ~@4]/4", AA: "a5@3 ~ a5@2 b5@7 ~@3",
AB: "b5 ~ b5 b5@3 ~@2 a#5@2 ~@2 a#5@2 ~@2", AC: "a5 ~ a5 b5@4 ~", AD: "b5@2 b5 ~ b5@2 ~@2 a#5@2 ~@2 a#5@2 ~@2",
AE: "a5 ~ a5 b5@5", AF: "g5@9 ~@7", AG: "e5 ~ e5@2 ~@2 d5@2 c5 ~@3 c6@2 ~@2",
})).s("gm_flute").gain(0.32).pan(0.2)
// chords · clavinet
const clavinet = note(`<
A B C D E F G H I J K L M N O P Q R S D T U V W X Y Z AA AB AC V AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU
AV AW AX AI AY AZ@4 BA BB BC BD BE V BF BG BH BI BJ BK BL G BM BN@3 BO BP BQ BP BR BS BT BU BV BW BX BY BG BZ Z CA CB
CC CD CE CF CG CH CI AE CJ CK CL CM CN ~
>`.pickRestart({
A: "[b3,d4,f4,g4]@3 ~@5", B: "[a#3,c#4,e4,g4]@9 ~@7",
C: "[b3,d4,f4] ~ [c4,f4,a4] ~ [b3,d4] ~ [c4,d#4,f#4] ~, g4 ~@7 [f4,g4] ~@3 a3 ~@3", D: "[b3,d4,f4,g4] ~@3",
E: "~@2 [c4,e4,g4] ~@3 [g3,c4,e4] ~", F: "~@2 [c4,e4] ~@3 [g3,b3,e4] ~, ~@4 g3 ~@11",
G: "~@4 [a3,e4]@2 ~@6 [a3,c4,e4] ~@3, ~@4 c4 ~@11", H: "~@4 [a3,c4,e4] ~@7 [a3,e4]@2 ~@2, ~@12 c4 ~@3",
I: "~@4 [g3,e4]@2 ~@6 [g3,c4] ~@3, ~@4 c4 ~@7 e4@2 ~@2", J: "~@2 [c4,d#4,f#4] ~@3 [a3,c4,f#4] ~, ~@4 a3 ~@7 d#4 ~@3",
K: "~@4 [c4,d4,f4]@2 ~@6 [a3,c4,d4] ~@3, ~@4 a3 ~@7 f4@2 ~@2", L: "~@2 [b3,d4,g4] ~@3 [b3,d4,f4,g#4] ~, ~@4 f4 ~@11",
M: "~@2 [d4,f4,a4] ~@3 [d4,f4,a4] ~", N: "~@4 [d4,f4,a4] ~@7 [d4,f4,a4] ~@3",
O: "~@4 [d4,f4,a#4] ~@7 [f4,a#4] ~@3, ~@6 d4 ~", P: "~@2 [d4,a4] ~@3 [d4,a4] ~, ~@4 f4 ~@7 f4 ~@3",
Q: "~@4 [d4,f4,a4] ~@7 [d4,f4,a#4] ~@3", R: "~@4 [d4,f4,g4] ~@7 [b3,f4,g4]@2 ~@2, ~@4 b3@2 ~@6 d4 ~@3",
S: "~@4 [c4,e4] ~@7 [c4,d#4,f#4,a4] ~@3, ~@2 g4 ~@5", T: "~@4 [c4,g4] ~@7 [g3,e4]@2 ~@2, ~@4 e4@2 ~@6 c4 ~@3",
U: "~@4 [g3,c4,e4] ~@7 [g3,b3,e4] ~@3", V: "~@4 [a3,c4,e4] ~@7 [a3,c4,e4] ~@3",
W: "~@4 [a3,c4,e4] ~@7 [a3,e4] ~@3, ~@6 c4 ~", X: "~@2 [g3,a#3,d4,f4] ~@3 [g3,a#3,c4,e4] ~",
Y: "~@2 [g3,a#3,d4,f4] ~@3 [a#3,e4] ~, ~@12 [g3,c4] ~@3", Z: "~@2 [a3,c4,e4,f4] ~@3 [a3,c4,d4,f4] ~",
AA: "~@2 [d4,f4] ~@3 [g#3,b3,d4,e4] ~, ~@4 [a3,c4] ~@11", AB: "~@2 [a3,c4,e4] ~@3 [a3,c4] ~, ~@12 e4 ~@3",
AC: "~@2 [g3,b3,e4] ~@3 [g3,e4] ~, ~@12 b3 ~@3", AD: "~@4 [g3,b3,e4] ~@7 [g3,e4] ~@3, ~@6 b3 ~",
AE: "~@2 [f#3,b3,e4] ~@3 [f#3,a#3,e4] ~", AF: "~@2 [a3,c4,d4,f4] ~@3 [g3,d4,f4] ~, ~@12 b3 ~@3",
AG: "~@4 [g3,c4,e4] ~@7 [g3,c4,e4] ~@3", AH: "[g3,c4,e4] ~@15", AI: "~@4 [a3,c4,f4] ~@7 [a3,c4,f4] ~@3",
AJ: "~@4 [c4,f4] ~@7 [a3,c4,e4]@2 ~@2, ~@2 a3 ~@5", AK: "~@4 [d4,f4]@2 ~@6 [a3,d4,f4] ~@3, ~@4 a3 ~@11",
AL: "~@4 [a3,f4] ~@7 [a3,d4,f4] ~@3, ~@2 d4 ~@5", AM: "~@4 [a3,c4,f4] ~@7 [a3,c4] ~@3, ~@6 f4 ~",
AN: "~@2 [g#3,b3,d4,f4] ~@3 [g#3,b3,d4,f4] ~", AO: "~@2 [g3,d4,f4] ~@3 [g3,a#3,f4] ~, ~@4 a#3 ~@7 d4 ~@3",
AP: "[g3,a#3,c4,e4] ~@3 [g3,a#3,c4,e4] ~@7 [a#3,e4]@2 ~@2, ~@12 [g3,c4] ~@3", // C7 A#dim C5
AQ: "~@4 [g3,f4]@2 ~@6 [g3,a#3,d4,f4] ~@3, ~@4 [a#3,d4] ~@11", // G7 Gm7 A#
AR: "~@4 [g3,a#3,d4,d#4] ~@7 [g3,a#3,d4,f4]@2 ~@2, ~@2 f4 ~@5", AS: "~@2 [g3,a#3,d#4] ~@3 [g3,a#3,d#4] ~",
AT: "~@2 [g3,a#3,d4] ~@3 [g3,d4] ~, ~@12 a#3 ~@3", AU: "~@2 [g3,a#3,d4] ~@3 [g3,a#3,d#4] ~",
AV: "~@2 [g3,a#3,c4,e4] ~@3 [a#3,c4,e4] ~, ~@12 g3 ~@3", AW: "~@4 [a3,c4,f4]@2 ~@6 [g#3,b3,d4,f4] ~@3",
AX: "[g3,a#3,c4,e4]@5 ~@3", AY: "~@4 [a3,c4,f4] ~@7 [c4,e4]@2 ~@2, ~@12 a3 ~@3",
AZ: "[~@4 [a3,d4,f4]@2 ~@6 [d4,f4]@2 ~@6 [a3,d4,f4] ~@7 [a3,d4,f4]@2 ~@6 [g3,a#3,d#4]@2 ~@6 [a3,d#4,f4]@2 ~@6 [g3,a#3,d#4]@2 ~@6 [a3,c4,d#4,f4]@2 ~@2, ~@3 c4@6 c4@2 c4@2 c4@2 ~, ~@12 a3 ~@51]/4", // Dm D# F7 D# F7
BA: "~@4 [f3,a3,a#3,d4]@2 ~@6 [f3,g3,a#3] ~@3, ~@6 d4 ~", BB: "~@2 [g3,a3,c#4,e4] ~@3 [g3,a3,c#4,e4] ~",
BC: "~@2 [a3,d4,f4] ~@3 [a3,d4] ~, ~@12 f4 ~@3", BD: "~@4 [a3,c4] ~@7 [a3,c4,e4] ~@3, ~@2 e4 ~@5",
BE: "~@4 [a3,d4,f4] ~@7 [a3,d4,f4]@2 ~@2", BF: "~@2 [b3,d4,a4] ~@3 [b3,d#4,a4] ~",
BG: "~@2 [a#3,d4,f4,g4] ~@3 [a#3,c4,e4,g4] ~", BH: "~@4 [a3,c4,f4]@2 ~@6 [a3,c4,f4] ~@3", BI: "[a3,c4,f4] ~@7",
BJ: "~@4 [g3,c4,e4]@2 ~@6 [g3,c4,e4] ~@3", BK: "~@4 [g3,c4,e4] ~@7 [g3,b3,e4]@2 ~@2",
BL: "~@4 [a3,c4] ~@7 [a3,e4]@2 ~@2, ~@4 e4@2 ~@6 c4 ~@3", BM: "~@4 [g3,c4,e4] ~@7 [g3,c4,e4]@2 ~@2",
BN: "[~@4 [a3,c4,f#4]@2 ~@6 [a3,c4,d#4,f#4]@2 ~@6 [a3,c4,d4]@2 ~@6 [a3,d4] ~@7 [g3,b3,d4]@2 ~@6 [g#3,b3,d4,f4]@2 ~@2, f4@5 f4@2 f4@2 f4 ~@2, ~@4 d#4 ~@23 c4@2 ~@18]/3", // F#dim Adim D7 D5 G G#dim
BO: "~@2 [d4,f4] ~@3 [a3,d4,f4] ~, ~@4 a3 ~@11", BP: "~@2 [d4,f4] ~@3 [d4,f4] ~, ~@4 a3 ~@7 a3 ~@3",
BQ: "~@4 [a#3,d4,f4] ~@7 [d4,f4]@2 ~@2, ~@12 a#3 ~@3", BR: "~@4 [a3,d4,f4] ~@7 [a#3,f4]@2 ~@2, ~@12 d4 ~@3",
BS: "~@4 [g3,b3,d4] ~@7 [d4,f4]@2 ~@2, ~@4 f4@2 ~@6 [g3,b3] ~@3", // G Dm G
BT: "~@4 [g3,e4]@2 ~@6 [a3,c4,d#4,f#4] ~@3, ~@4 c4 ~@11", BU: "[g3,b3,d4,f4]@5 ~@11",
BV: "~@2 [c4,e4,g4] ~@3 [e4,g4] ~, ~@12 c4 ~@3", BW: "~@4 [c4,e4] ~@7 [b3,e4,g4]@2 ~@2, ~@2 g4 ~@5",
BX: "~@4 [c4,e4,a4] ~@7 [c4,e4,a4]@2 ~@2", BY: "~@4 [c4,e4,a4] ~@7 [c4,e4,a4] ~@3",
BZ: "~@2 [d4,f4,g4] ~@3 [a#3,c4,e4,g4] ~, ~@4 a#3 ~@11", CA: "~@2 [a3,c4,d4,f4] ~@3 [g#3,b3,d4,e4] ~",
CB: "~@2 [a3,c4,e4] ~@3 [a3,c4,e4] ~", CC: "~@4 [g3,b3,e4] ~@7 [g3,b3,e4] ~@3",
CD: "~@2 [a3,e4] ~@3 [a3,c4,e4] ~, ~@4 c4 ~@11", CE: "~@4 [g3,b3,e4] ~@7 [g3,e4]@2 ~@2, ~@12 b3 ~@3",
CF: "~@2 [f#3,e4] ~@3 [f#3,e4] ~, ~@4 a3 ~@7 a#3 ~@3", CG: "~@2 [a3,c4,d4,f4] ~@3 [g3,a#3,d4,f4] ~",
CH: "~@2 [f#3,a3,e4] ~@3 [f#3,e4] ~, ~@12 a#3 ~@3", CI: "~@2 [a3,c4,d4,f4] ~@3 [g3,b3,d4,f4] ~",
CJ: "~@2 [a3,c4,d4,f4] ~@3 [b3,d4,f4] ~, ~@12 g3 ~@3", CK: "~@2 [g3,c4,e4] ~@3 [g3,a#3,c4,e4] ~",
CL: "~@2 [a3,c4,f4] ~@3 [g#3,c4,d#4,f#4] ~", CM: "[g3,c4,e4] ~@7, f#4 ~@15",
CN: "[g3,b3,f4] ~ [g3,b3,f4] ~@3 [g3,b3,f4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~@3", // G7 C
})).s("gm_clavinet").gain(0.4).pan(1)
// chords · trombone
const trombone = note(`<
~@8 A B ~@6 C D E F ~@4 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 AI T AJ AK AL AM AN ~@4 AO
AP AQ ~@5 AR AS ~@6 C AT AU AV ~@6 AW AX AY AZ L BA BB BC BD BC BD BE BF BG BH BI ~
>`.pickRestart({
A: "[e3,c4]@7 ~", B: "[d#3,c4]@6 ~@2 [d#3,c4]@5 ~@3", C: "[d4,f4]@15 ~",
D: "[g3,f4]@6 ~@2 [b3,f4]@3 ~ [g3,b3]@4, a3 ~@15", E: "~@4 [a3,c4]@6 ~@2 [a3,c4]@3 ~", F: "[g3,b3]@3 ~@5",
G: "[~ a#3@3]/2", H: "a3@2 f3 a3 ~ a3 c4 ~", I: "~@4 e3@2 g#3@2 ~@2 g#3@2 b3@3 ~", J: "~ c4@2 a3",
K: "g3@6 ~@2 g3@4 b3@3 ~", L: "[c4,e4]@10 ~@2 [a3,c4]@3 ~", M: "[g3,b3]@5 ~@3 g3@4 b3@2 ~@2",
N: "[d3,c4]@7 ~ d3@2 ~@2 [d3,c4] ~@3, ~@8 c4 ~@7", O: "[d3,c4]@7 ~ [g3,b3]@7 ~",
P: "~@4 [e3,g3,c4] ~ [e3,g3,c4] ~@3 [e3,g3,c4] ~ [e3,g3,c4] ~@3", Q: "[e3,g3,c4] ~@7 c4@8", R: "f3@4 a3@3 c4",
S: "f4 ~ f4 ~ e4@3 ~ d4@2 ~@2 c4@2 ~@2", T: "d4 f3@2 a3", U: "d4@11 ~ c4@2 ~@2", V: "a3@11 ~ c4@3 ~",
W: "[b3,d4]@9 ~@3 [b3,d4]@2 ~@2", X: "~@4 [a#3,d4]@6 ~@2 [d4,f4]@3 ~", Y: "[c4,e4] ~@3", Z: "g3@2 a#3 d4",
AA: "g3@5 ~@3", AB: "~ g3 a#3 d#4", AC: "g3@3 ~", AD: "[g3,a#3,d4]@7 ~ [g3,a#3,d#4]@6 ~@2",
AE: "[g3,a#3,e4]@6 ~@2 [g3,a#3,e4] ~@3 [e3,a#3,c4]@4", AF: "~@2 [c4,f4]@3 ~ b3 ~, ~@12 f4 ~@3",
AG: "[a#3,e4]@5 ~@3 c4@7 ~", AH: "f3@8 a3@5 ~ c4 ~", AI: "f4 ~ f4 ~ e4@2 ~@2 d4@2 ~@2 c4@3 ~", AJ: "d4@5 ~ c4@2",
AK: "~@2 c4@3 ~ d#4@2", AL: "a#3 a3", AM: "a#3@3 d4", AN: "c#4@4 a3@3 ~", AO: "[f3,b3]@7 ~ [f3,b3] ~@3 [f3,b3] ~@3",
AP: "[f3,a#3]@6 ~@2 [e3,a#3]@7 ~", AQ: "[f3,a3]", AR: "c4@7 ~", AS: "[d#3,c4]@8 [d#3,c4]@7 ~",
AT: "[g3,f4]@6 ~@2 [b3,f4]@3 ~ [g3,b3]@3 ~", AU: "~@4 [a3,c4]@5 ~@3 [a3,c4]@2 ~@2", AV: "[g3,b3]@5 ~@11",
AW: "~@2 f3 a3 ~ a3 c4 ~", AX: "~@2 e3 g#3 ~ g#3 b3 ~", AY: "a3 ~@3 c4@8 a3@4", AZ: "g3@6 ~@2 g3@4 b3 ~@3",
BA: "[g3,b3]@3 ~ g3@2 b3 ~", BB: "c4@6 ~@2 [d3,c4] ~@3 [d3,c4] ~@3", BC: "[d3,c4]@5 ~ [g3,b3]@7 ~@3",
BD: "[d3,c4]@7 ~ [d3,c4] ~@3 [d3,c4] ~@3", BE: "[d3,c4]@6 ~@2 [g3,b3]@5 ~@3", BF: "c4@7 ~ c4@8, c3@15 ~",
BG: "f3 f#3", BH: "[g3,c4]@3 ~@13", BI: "[g3,b3] ~ [g3,b3]@2 ~@2 [f3,b3] ~ e3@2 ~@2 [e3,c4]@3 ~, ~@8 c4 ~@7",
// … 72 more lines
More by Louis Armstrong
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.