0:00/0:00
// Begin the Beguine — Xavier Cugat
// 113 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 97 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(113/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.
// other · piano
const piano = note(`<
~@3 A B ~@2 C D ~@2 E F ~@2 G H ~@2 I J ~@2 K ~@3 L M ~@2 N O ~@2 P ~@3 Q R ~@2 S T ~@35 U V W@2 X Y ~@2 Z@2 AA AB ~@5
>`.pickRestart({
A: "~@7 [a4,a#4] b4@2 d5@2 ~@4", B: "~@2 g4!2 b4@2 e5@4 ~@6, ~@4 a#4 ~@11",
C: "~@4 d5 c5 a4 ~ e5@2 c5 ~@5, ~@8 d#5 ~@7", D: "~@2 a4 ~ d5 c5 a4 [a4,a#4] b4@2 d5@2 ~@4",
E: "~@4 [f5,c6]@2 a5 ~ d5@2 c5@6, ~@8 a5@7 ~", F: "~@2 f4 ~ g4@2 a4@7 ~@3, ~@4 c5@9 ~@3",
G: "~@2 g4 ~@3 g4 ~ g5 [a4,a#4] b4@5 ~, ~ e5 ~@2", H: "~@2 e5 ~ [g#4,a4] ~ e4 g#4 a4 e4 g4@5 ~",
I: "~@10 e5 ~ a#5 b5 e5@2", J: "a5@2 e5 ~@13", K: "~@4 g#5 a5 d5 ~ f5 ~@2 d5 ~@2 a4 ~",
L: "~@4 [g5,c6] a5 g5 ~ [a5,c6] ~ f5 ~@3 d5 ~", M: "~@2 d5 ~ f5 g5 f5 ~ f5@2 d5@2 ~@4, ~@4 c5@2 ~@2 c5 ~@7",
N: "~@4 d5 ~ g4 ~ a4 ~ g4 ~@3 e4 ~", O: "~@2 e4 ~ [g4,c5] a4 g4 ~ a4@2 g4 ~@5",
P: "~@2 b5 d6 [d#6,e6] ~ g6 ~ [e6,a#6] ~ e6 ~ a6@2 g6 ~, ~@4 b6 ~@3", Q: "~@14 c6 ~",
R: "d6 g6 g5@2 [a5,d6]@2 g5 ~@9", S: "~@10 e5 ~ g5 a5 ~ a5",
T: "a#5 e6 ~ [a5,a#5] ~ e6 a5 a#5 e6 a5 [a5,a#5] ~ g5 a5 ~@2", U: "e6 e5 e6 e5 e6 e5 e6 e5 e6 ~ g5@2 g6 a5 a6@2",
V: "[a#5,a#6] a#5 a#6 a#5 a#6 [a#5,a#6] a#5 a#6 ~@8", W: "[~@8 c6@4 a5@3 ~, ~@7 d5@5 ~@4, ~@15 f5@16 ~]/2",
X: "~@10 g5 ~ a5@2 e6@2", Y: "~@8 c6@4 a5@3 ~", Z: "[~@3 e5 g5@6 ~@2 c5 ~@2 f5@7 ~@10]/2",
AA: "~@2 e5 ~ [e5,g5]@2 e5 ~ e5 ~ e5 ~ g5@2 c6@2", AB: "g#5 ~",
})).s("gm_piano").gain(0.35).pan(0.4)
// bass · acoustic bass
const bass = note(`<
~ A B@4 A C D E@2 F E G H A B@2 I@2 J I@2 C D C E F E G H A K L M N O P Q D@2 F R S T U V B W X Y Z B@2 AA AB B AC AD
AE B@2 AF AG B AH AI AJ AK AL AM AN AO AH AI AP AK AQ AR AE AS AT AU AV AW AX AY AZ BA BB BA D B@3 BC BD
>`.pickRestart({
A: "c2@3 c2 g2@2 g1@2", B: "c2@6 c2 ~ g2@4 g1@4", C: "d2@3 d2 a2@2 a1@2", D: "d2@6 d2 ~ g2@4 g1@4",
E: "d2@6 d2 ~ a2@4 a1@4", F: "f2@6 f2 ~ f2@4 e2@4", G: "d2@6 d2 ~ g2@4 d2@4", H: "g1@6 g1 ~ d2@4 g2@4",
I: "c2@5 ~ c2@2 g2@4 g1@4", J: "c2@5 ~ c2 ~ g2@4 g1@4", K: "c2@6 c2 ~ g2@4 g2@4", L: "c2@3 c2 c2@2 c3@2",
M: "c2@6 c2 ~ c2@4 g2@4", N: "c2@3 c2 c2@2 g2@2", O: "c2@6 c2 ~ c2@4 c3@4", P: "c2@6 c2@2 c2@3 ~ c3@3 ~",
Q: "c2@6 c2 ~ e2@4 d#2@4", R: "d2@6 d2 ~ d#2@4 d#2@4", S: "e2@6 e2 ~ e2@4 e2@4", T: "a1@6 a1 ~ e2@4 a2@4",
U: "d2@6 d2 ~ d2@4 g2@4", V: "g1@6 g1 ~ g2@4 g2@4", W: "c2@3 ~@13", X: "~@3 a1", Y: "d2@5 ~ d2 ~ d2@6 a2@2",
Z: "g2@6 g2 ~ d2@4 g2@4", AA: "d2@6 d2 ~ a2@4 d2@4", AB: "g1@6 d2 ~ g2@4 g1@4", AC: "a1@6 e2 ~ a2@4 e2@4",
AD: "d2@6 a1 ~ d2@4 d2@4", AE: "g2@6 d2 ~ g2@6 d2 ~", AF: "d2@6 d2 ~ a2@4 d2@2 a1@2", AG: "g1@6 d2 ~ g2@4 g1@2 a1@2",
AH: "c2@3 g2 c3@2 c2@2", AI: "f2@5 ~ f2@2 c3@4 f2@2 c3@2", AJ: "a#2@6 a#2 ~ f2@4 a#1@2 f2@2",
AK: "d#2@5 ~ d#2@2 a#2@4 d#2@4", AL: "g#1@6 g#1 ~ d#2@4 g#1@4", AM: "d2@5 ~ d2@2 g#2@4 d2@4",
AN: "g2@6 d2 ~ d2@2 g1@2 a1@2 b1@2", AO: "c2@6 c2 ~ g2@2 g1@2 a1@2 b1@2", AP: "a#2@6 a#2 ~ a#1@4 c2@2 d2@2",
AQ: "g#2@6 d#2 ~ g#1@4 g#1@4", AR: "d2@5 ~ d2@2 a2@4 d2@2 a2@2", AS: "c2@6 c2 ~ c2@4 c2 ~ g1@2",
AT: "a1@3 e2 a2@2 e2 a1", AU: "d2@5 ~ d2 ~ d3@4 c3@4", AV: "b2@6 b2 ~ g2@4 g2@2 d2 ~", AW: "c2@6 g2 ~ c3@4 b2@4",
AX: "a2@6 e2 ~ a1@4 e2@4", AY: "d2@6 a1 ~ d2@6 a1 ~", AZ: "g1@6 g1 ~ g2@2 g1@2 a1@2 b1@2",
BA: "c2@6 c2 ~ g2@4 g1@2 c2@2", BB: "d2@6 d2 ~ g2@2 g1@2 a1@2 b1@2", BC: "c2@2 e3 d3 c3 a2 g2 e2",
BD: "c2@2 ~@2 d#2 ~ c#2 ~ c2@2 ~@6",
})).s("gm_acoustic_bass").gain(0.42)
// chords · brass section
const brass_section = note(`<
~@17 A B C B A B D E ~@7 F G H I F G J K@2 ~@3 L M@2 N@2 ~@7 O P ~@7 Q R S T U V W X Y Z@2 AA@2 AB@2 AC AD ~@4 AE AF
AG AH AG AI AJ@3 I AK
>`.pickRestart({
A: "~@2 [d3,d4,g4]@3 ~@3", B: "~@2 [e3,e4,a4]@3 ~@3", C: "~@2 [e3,e4,b4]@3 ~@3", D: "~@2 [f3,f4,c5]@3 ~@3",
E: "~@2 [f3,f4,b4]@3 ~@3", F: "~@2 [a4,c5] [b4,d5]", G: "[c5,e5]@3 [c5,e5]@3 [c5,e5]@2 [c5,e5]@3 [c5,e5]@3 [c5,e5]@2",
H: "[c5,e5]@7 ~ [c5,e5]@6 [c5,d5]@2", I: "[c5,e5]", J: "[c5,f5]@3 e5 [b4,d5]@2 [a4,c5]@2, ~@6 c5 ~@9",
K: "[[g4,b4]@2 [d4,g4]@3 ~@3]/2", L: "~@10 e4@3 e4@3", M: "[d4@3 e4@3 f4@2 g4@16 a4@4 c5@4]/2", N: "[c5@9 ~@7]/2",
O: "~@5 [g3,e4] [c4,g4] [b3,a4]", P: "[a#3,a#4]@11 ~@5", Q: "~@2 [c4,e4]@2 [g#4,c5]@3 [g4,a#4], ~ e3",
R: "[f4,g#4]@7 ~, d#3", S: "~@2 [a#3,f4]@2 [f4,a#4]@3 [f4,g#4], d3@15 ~", T: "[d3,f4,g4]@15 ~",
U: "d#3@2 [g3,c4,d#4]@2 f3@2 ~ [d#4,g4], ~@4 [d#4,g#4]@3 ~, ~@3 d#3", V: "d3 f3@3, [d4,f4]@15 ~",
W: "~@2 [g3,b3,d4]@2 f3@2 ~ [d4,f4], ~@4 [d4,g4]@3 ~, ~@3 d#3", X: "[g3,c4,d#4]",
Y: "~@2 [g3,c4,d#4]@2 [c4,g#4,c5]@3 [c4,g4,a#4], ~ e3", // Cm Fm C7
Z: "[[d#4,f4,g#4]@2 d#4@2 ~ [f4,g#4,c5] [d4,g4,a#4] [c4,f4,g#4], d#3@16 d3@15 ~, ~@2 [f4,g#4]@3 ~@3]/2", // Fm7 Fm Gm Fm
AA: "[[a#3,d4,g4]@2 ~@2 d#3 [g3,g4,a#4] [f3,d#4,g#4] [d#3,d#4,g4], d3@15 ~@17, ~@2 [a#3,d4,g4]@3 ~@3]/2", // Gm Fm7 D# Gm
AB: "[d3 f3@3 ~ [g3,b3,f4,a4] [g3,e4,g4] [g3,d4,f4], [d4,f4]@19 ~@13]/2", AC: "[c4,e4]@5 [c4,e4] [e4,g4] [f4,a4], g3",
AD: "[g4,a#4]@15 ~", AE: "~ [a4,c5] [a4,b4] [f4,a4]", AF: "[f4,g#4]@7 ~", AG: "~ [e3,g3]", AH: "[f3,g#3]@15 ~",
AI: "[f3,g#3]@13 ~@3", // Fm
AJ: "[~@3 [c4,e4]@2 [d4,f4]@3 [e4,g4]@3 [d4,f4]@2 [c4,e4]@5 ~ [d4,f4]@2 [e4,g4]@3 [f4,a4]@3 [e4,g4]@2 [d4,f4]@5 g#4@3 a#4@3 c5@4 d5@4]/3", // C Dm Em Dm C Dm Em F …
AK: "~@4 c4 ~ c4 ~ c4 ~@7",
})).s("gm_brass_section").gain(0.38).pan(0.6)
// other · trombone
const trombone = note(`<
A B@2 C@2 D@2 E@2 F@2 G@2 H@2 I ~ J@2 C@2 K@2 E@2 L@2 M@2 N@2 I ~@3 O P ~ Q R S T ~@2 U V@2 W@2 ~@7 X Y Z AA@2 AB@2 AC
AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU ~@4 AV AW AX AY AX AZ ~@4 BA
>`.pickRestart({
A: "~@3 c3", B: "[c3@3 d3@2 e3@3 g3@15 ~ e3@4 d3@4]/2", C: "[e3@20 ~@8 c3@3 ~]/2",
D: "[c3@3 d3@2 e3@3 a3@11 ~ g3@3 ~ g3@3 f3@2 e3@3]/2", E: "[f3@8 d3@17 ~@3 d3@3 ~]/2",
F: "[d3@3 e3@2 f3@3 d4@12 c4@3 ~ c4@3 b3@2 a3@3]/2", G: "[c4@8 a3@16 ~@4 d3@3 ~]/2",
H: "[d3@3 e3@2 f3@3 g3@11 ~ g3@4 f3@6 e3@2]/2", I: "e3", J: "[c3@3 d3@2 e3@3 g3@15 ~ e3@3 d3@2 c3@3]/2",
K: "[c3@3 d3@2 e3@3 b3@11 ~ a3@3 ~ g3@3 f3@2 e3@3]/2", L: "[d3@3 e3@2 f3@3 e4@16 d4@3 c4@2 b3@3]/2",
M: "[c4 a3@2 ~]/2", N: "[d3@3 e3@2 f3@3 g3@16 f3@4 e3@4]/2", O: "~@4 g3@4 e4@5 d4@3", P: "e4@13 ~@3",
Q: "~@2 [e2,a2] [d#2,g#2]", R: "~@4 d3@4 d3@3 e3@2 f3@3, [d2,g2]", S: "e4 d4 c4 b3", T: "a3@13 ~@3",
U: "~@10 e3@3 e3@3", V: "[d3@3 e3@3 f3@2 g3@16 f3@4 f3@4, ~@3 [f2,a3]]/2", W: "[[c2,e3,a3]@9 ~@7]/2",
X: "~@5 g2 c3 b2", Y: "a#2@11 ~@5", Z: "~@5 a3 d4 c4", AA: "[b3@14 e4 b3]/2", AB: "[a3@14 c4 a3]/2", AC: "g#3",
AD: "g3@4 c4@4 d4@3 e4@2 c4@3", AE: "g3@7 ~ e3@8", AF: "f2@11 ~ f2@3 ~, d#3", AG: "d3, a#1 ~",
AH: "d#2@10 ~@2 d#2@3 ~", AI: "g#1@3 ~", AJ: "d2@9 ~@3 d2@3 ~", AK: "g2@9 ~@7", AL: "~ g2 f2 d#2", AM: "g2 ~@3",
AN: "f2@3 ~ f2@3 ~", AO: "a#1 ~", AP: "d#2@3 ~ d#2@4", AQ: "g#2@5 ~@3", AR: "d2@3 ~ d2@4", AS: "g2@5 ~@3",
AT: "c2@6 c2 a#1", AU: "a1@3 ~", AV: "~ a2 b2 c3", AW: "d3@13 ~@3", AX: "~ [e3,g3]", AY: "[f3,g#3]@15 ~",
AZ: "[f3,g#3]@13 ~@3", BA: "~@4 [d#2,a#2] ~ [c#2,g#2] ~ [c2,g2] ~@7",
})).s("gm_trombone").gain(0.36).pan(0.8)
// chords · trumpet
const trumpet = note(`<
~@17 A B C B A B D E ~@7 F G H I F G J K@2 L M@2 N O@2 P@2 ~@7 Q R ~@7 S T U V W X Y Z ~@19 AA@3 I AB
>`.pickRestart({
A: "~@2 g4@5 ~", B: "~@2 a4@5 ~", C: "~@2 b4@5 ~", D: "~ c5@2 ~", E: "~ b4@2 ~", F: "~@2 [a4,c5] [b4,d5]",
G: "[c5,e5]@3 [c5,e5]@3 [c5,e5]@2 [c5,e5]@3 [c5,e5]@3 [c5,e5]@2", H: "[c5,e5]@7 ~ [c5,e5]@6 [c5,d5]@2", I: "[c5,e5]",
J: "[c5,f5]@3 e5 [b4,d5]@2 [a4,c5]@2, ~@6 c5 ~@9", K: "[[g4,b4]@2 [d4,g4]@3 ~ a4 b4]/2",
L: "c5@3 c5@3 c5@2 c5@3 c5@3 c5@2", M: "[d5@5 ~ c5@2 d5@3 ~ c5@2 b4 a4@2 g4@5 f#4 f4 e4@8]/2", N: "~@10 e4@3 e4@3",
O: "[d4@3 e4@3 f4@2 g4@16 a4@4 c5@4]/2", P: "[c5@9 ~@7]/2", Q: "~@5 e4 g4 a4", R: "a#4@11 ~@5",
S: "~@2 c4@2 c5@3 a#4", T: "g#4@7 ~", U: "~@2 d4@2 a#4@3 g#4", V: "g4@13 ~@3", W: "~@2 d#4@2 g#4@3 g4",
X: "f4@13 ~@3", Y: "~@2 d4@2 g4@3 f4", Z: "d#4@13 ~@3",
AA: "[~@3 [c4,e4]@2 [d4,f4]@3 [e4,g4]@3 [d4,f4]@2 [c4,e4]@5 [d4,f4]@3 [e4,g4]@2 ~ [f4,a4]@3 [e4,g4]@3 [d4,f4]@4 g#4@3 a#4@3 c5@4 d5@4]/3", // C Dm Em Dm C Dm Em F …
AB: "~@4 c4 ~ c4 ~ c4 ~@7",
})).s("gm_trumpet").gain(0.51).pan(0.4)
// chords · alto sax
const alto_sax = note(`<
~@25 A B@2 C D E@2 F ~@7 G@2 H I J D K L M N O@2 P Q R@2 S T U@2 P Q V@2 W ~ X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL
AM AN@2 AO AP AQ@2 AR AS F AT AU AV AW AX AY
>`.pickRestart({
A: "~ a3 b3 c4", B: "a4@3 g4", C: "f4@3 ~", D: "~ c4", E: "[b3@15 d4@17]/2", F: "c4@13 ~@3", G: "[~@15 a3@17]/2",
H: "c4 c#4", I: "d4", J: "c#4", K: "b3 a3", L: "a3", M: "~ [a4,c#5,g5]", N: "[a4,c#5,f5] [a4,c#5,e5]",
O: "[[f4,a4,d5]@3 [f4,a4,d5] [d5,f5,a5]@6 [c5,e5,g5] [d5,f5,a5] [a4,d5,f5]@2 [g4,c5,e5] [f4,b4,d5]]/2", // Dm C Dm C Bdim
P: "[g4,c5,e5] [a4,d5,f5] [b4,e5,g5]@6", Q: "~@4 [c5,e5,a5]@4 [g4,c5,e5]@3 [f4,b4,d5]@2 [e4,a4,c5]@3",
R: "[[c4,f4,a4]@2 [c4,f4,a4]@2 a4@4 g#4@2 [f4,g#4,e5]@2 [f4,g#4,d5]@2 [e4,g#4,c5] [d4,g#4,b4], ~@2 [f4,d5]@3 ~@3]/2", // F Fm Ddim Eaug G#dim Dm
S: "[e4,g4,c5] [d4,g4,b4] [c4,g4,a4]@5 ~", T: "~@2 [a4,c#5,e5] [a4,d5,f5] [c#5,e5,g5]@2 [a4,d5,f5] [a4,c#5,e5]",
U: "[[f4,a4,d5]@2 [f4,a4,d5]@2 [d5,f5,a5]@6 [c5,e5,g5] [d5,f5,a5] [a4,d5,f5]@2 [g4,c5,e5] [f4,b4,d5]]/2", // Dm C Dm C Bdim
V: "[[c4,f4,a4]@4 [c4,f4,a4]@4 a4@8 g#4@4 [f4,g#4,e5]@4 [f4,g#4,d5]@3 [e4,g#4,c5]@2 [d4,g#4,b4]@3, ~@2 [f4,d5]@3 ~@3]/2", // F Fm Ddim Eaug G#dim Dm
W: "[e4,g4,c5]@11 ~@5", X: "~ [f4,g#4,c5] [f4,g#4,f5] [f4,g#4,d#5]", Y: "[f4,g#4,d5]@15 ~",
Z: "~@4 [f4,a#4,d5] [g4,c5,d#5] [f4,a#4,d5] [g4,c5,d#5] [f4,d5,f5]@6 [g4,g5,a#5]@2", AA: "[d#4,g#4,c5]@15 ~",
AB: "~ [d3,f3] [g#3,d4] [g#3,c4]", AC: "[g3,b3] [d3,f3,b3] [d#3,g3,d#4] [d3,f3,d4]",
AD: "[c4,d#4,g4]@12 [d#4,g4,c5]@3 [b3,c#4,d4,d#4,f4,f#4,g4,a4,b4]", AE: "[g3,c4,d#4]@7 ~@9, g#3 ~@15",
AF: "~@2 [g#3,c4]@2 [c4,d#4]@2 [c4,d#4] [g#3,c4]", AG: "[a#3,d4]@13 ~@3", AH: "~ [g3,a#3] [a#3,d4] [g3,a#3]",
AI: "[g#3,c4]@7 ~", AJ: "~ [f3,a3] [a3,c4] [f3,a3]", AK: "[g3,b3]", AL: "~ [e3,g3]@2 [b3,d4]",
AM: "~@4 e4@2 f4@3 g4@2 f4 g4 f4 e4@2, [a#3,c#4]@3 ~", AN: "[d4@3 ~ d4@2 d4@3 a4@11 g4@2 a4@2 f4@4 e4@2 d4@2]/2",
AO: "e4 f4 g4@13 ~", AP: "~@3 a4@2 ~ g4 [f4,f#4] e4@3 d4@2 c4@2 ~", AQ: "[a3@4 a3@3 c#4 d4@11 d4@5 d4@3 c4@2 b3@3]/2",
AR: "c4@3 ~", AS: "~@3 e4@4 ~ d4@3 c4@3 b3@2", AT: "~@4 e5@3 ~ d5@3 c5@2 b4@3", AU: "c5", AV: "d5",
AW: "f5@8 ~@2 [g#3,c4] [c4,d4] [d4,f4] [c#4,e4] [d4,f4] [f4,g#4]", AX: "[e4,g4]", AY: "~@4 c4 ~ c4 ~ c4 ~@7",
})).s("gm_alto_sax").gain(0.26)
// chords · tenor sax
const tenor_sax = note("<~@25 A B@2 C D E@2 F ~@7 G@3 H I J K L M N O@2 P ~@43 Q>".pickRestart({
A: "~ a2 b2 c3", B: "[f3,a3]@3 [e3,g3]", C: "[d3,f3]@3 ~", D: "~ c3, ~@7 a2@8 ~", E: "[[g2,b2]@15 [g2,d3]@17]/2",
F: "[e2,c3]@13 ~@3", G: "[~@15 a2@17 c3@8 [c#3,f#3]@8, ~@15 f3@25 ~@8]/3", H: "[d3,g3]", I: "[c#3,e3]", J: "~ c3",
K: "b2 a2", L: "a2", M: "~ [g3,e4]", N: "[f3,d4] [e3,c#4]",
O: "[a3@2 ~ d3 [a3,d4]@6 [g3,d4] [a3,d4] [f3,a3]@2 [e3,a3] [d3,a3], d3@3 ~@13, ~ a3 ~@6]/2", // D5 G5 D5 F A5 D5
P: "[e3,b3]@2 [f3,c4]@2 [g3,e4]@11 ~", Q: "~@4 a#3 ~ g#3 ~ g3 ~@7",
})).s("gm_tenor_sax").gain(0.27).pan(0.4)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
A B C D C B C E F E@2 G E@2 F D C B C D C B C E F E@2 G E@2 F D H I J K L I C F@2 G M N O P F Q R ~ P F Q C P F Q O P
F Q C P F Q S ~@16 P F Q C P F Q T Q T Q P U Q V
>`.pickRestart({
A: "[g3,b3,d#4,g4]@13 ~@3", // Gaug
B: "[c4,e4]@3 [c4,e4,g4]@2 ~ [c4,e4,g4]@4 [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2, g3@5 ~@11", // C
C: "[c4,e4,a4]@3 [c4,e4,a4]@2 ~ [c4,e4,a4]@4 [c4,e4,a4]@2 [c4,e4,a4]@2 [c4,e4,a4]@2", // Am
D: "[c4,e4,b4]@3 [c4,e4,b4]@2 ~ [c4,e4,b4]@4 [c4,e4,b4]@2 [c4,e4,b4]@2 [c4,e4,b4]@2", // Cmaj7
E: "[d4,f4,c5]@3 [d4,f4,c5]@2 ~ [d4,f4,c5]@4 [d4,f4,c5]@2 [d4,f4,c5]@2 [d4,f4,c5]@2", // Dm7
F: "[d4,g4,b4]@3 [d4,g4,b4]@2 ~ [d4,g4,b4]@4 [d4,g4,b4]@2 [d4,g4,b4]@2 [d4,g4,b4]@2", // G
G: "[f4,a4,c5]@3 [f4,a4,c5]@2 ~ [f4,a4,c5]@4 [f4,a4,c5]@2 [f4,a4,c5]@2 [f4,a4,c5]@2", // F
H: "[c4,e4,a4]@3 [c4,e4,a4]@2 ~ [c4,e4,a4]@4 [c4,e4,a4]@2 [c4,e4,g#4]@2 [c4,e4,g#4]@2", // Am Caug
I: "[c4,e4]@3 [c4,e4,g4]@2 ~ [c4,e4,g4]@4 [c4,e4,g#4]@2 [c4,e4,g#4]@2 [c4,e4,g#4]@2, g3@5 ~@11", // C Caug
J: "[c4,e4,a4]@3 [c4,e4,a4]@2 ~ [c4,e4,a4]@4 [c4,e4,a#4]@2 [c4,e4,a#4]@2 [c4,e4,a#4]@2", // Am C7
K: "[c4,e4,b4]@3 [c4,e4,b4]@2 ~ [c4,e4,b4]@4 [c4,e4,a#4]@2 [c4,e4,a#4]@2 [c4,e4,a#4]@2", // Cmaj7 C7
L: "[c4,e4,a4]@3 [c4,e4,a4]@2 ~ [c4,e4,a4]@4 [c4,e4,g#4]@2 [c4,e4,g#4]@2 [c4,e4,g#4]@2", // Am Caug
M: "[d4,f4,a4]@3 [d4,f4,a4]@2 ~ [d4,f4,a4]@4 [d#4,f#4,a4]@2 [d#4,f#4,a4]@2 [d#4,f#4,a4]@2", // Dm D#dim
N: "[e4,g4,b4]@3 [e4,g4,b4]@2 ~ [e4,g4,b4]@4 [e4,g4,b4]@2 [e4,g4,b4]@2 [e4,g4,b4]@2", // Em
O: "[c#4,e4,a4]@3 [c#4,e4,a4]@2 ~ [c#4,e4,a4]@4 [c#4,e4,a4]@2 [c#4,e4,a4]@2 [c#4,e4,a4]@2", // A
P: "[d4,f4,a4]@3 [d4,f4,a4]@2 ~ [d4,f4,a4]@4 [d4,f4,a4]@2 [d4,f4,a4]@2 [d4,f4,a4]@2", // Dm
Q: "[e4,g4,c5]@3 [e4,g4,c5]@2 ~ [e4,g4,c5]@4 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2", R: "[e4,g4,c5]@5 ~@11",
S: "[c4,e4,g4]@3 [c4,e4,g4]@2 ~ [c4,e4,g4]@4 [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2", // C
T: "[d4,f4,g#4]@3 [d4,f4,g#4]@2 ~ [d4,f4,g#4]@4 [d4,f4,g#4]@2 [d4,f4,g#4]@2 [d4,f4,g#4]@2", // Ddim
U: "[f4,g#4,c5]@3 [f4,g#4,c5]@2 ~ [f4,g#4,c5]@4 [f4,g#4,c5]@2 [f4,g#4,c5]@2 [f4,g#4,c5]@2", V: "[e4,g4,c5]@3 ~@13",
})).s("gm_acoustic_guitar_steel").gain(0.11).pan(0.3)
// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
~ A B C D A B E F E@5 F C D A B C D A B E F E@5 F C G H I J K H L M@2 E N M O E M P Q ~ E M P D E M P R E M P D E M P
S T U V W T M P X T U V W E M@2 Y E M P D E M P Z P Z P AA T P AB
>`.pickRestart({
A: "~@3 [e3,g3]@3 [e3,g3] ~@3 [e3,g3] ~@3 [e3,g3] ~", B: "~@3 [e3,a3]@3 [e3,a3] ~@3 [e3,a3] ~ e3 ~ [e3,a3] ~",
C: "~@3 [e3,b3]@3 [e3,b3] ~@3 [e3,b3] ~@3 [e3,b3] ~", D: "~@3 [e3,a3]@3 [e3,a3] ~@3 e3 ~ e3 ~ [e3,a3] ~",
E: "~@3 [f3,a3]@3 [f3,a3] ~@3 [f3,a3] ~@3 [f3,a3] ~", F: "~@3 [g3,b3]@3 [g3,b3] ~@3 g3 ~ g3 ~ [g3,b3] ~",
G: "~@3 [e3,a3]@3 [e3,a3] ~@3 e3 ~ [e3,g#3]@3 ~", H: "~@3 [e3,g3]@3 [e3,g3] ~@3 [e3,g#3] ~@3 [e3,g#3] ~",
I: "~@3 [e3,a3]@3 [e3,a3] ~@3 [e3,a#3] ~ e3 ~ [e3,a#3] ~", J: "~@3 [e3,b3]@3 [e3,b3] ~@3 [e3,a#3] ~@3 [e3,a#3] ~",
K: "~@3 [e3,a3]@3 [e3,a3] ~@3 e3 ~ e3 ~ [e3,g#3] ~", L: "~@3 [e3,g3]@3 [e3,g3] ~@3 [e3,b3] ~ e3 ~ [e3,a3] ~",
M: "~@3 [g3,b3]@3 [g3,b3] ~@3 [g3,b3] ~@3 [g3,b3] ~", N: "~@3 [f3,a3]@3 [f3,a3] ~@3 [f#3,a3] ~@3 [f#3,a3] ~",
O: "~@3 [e3,a3]@3 [e3,a3] ~@3 [e3,a3] ~@3 [e3,a3] ~", P: "~@3 [g3,c4]@3 [g3,c4] ~@3 [g3,c4] ~@3 [g3,c4] ~",
Q: "[g3,c4]@3 ~@13", R: "~@3 [a3,c#4]@3 [e3,c#4] ~@3 e3 ~ e3 ~ [e3,a3] ~",
S: "~@3 [g3,c4]@3 [e3,c4] ~@3 e3 ~ e3 ~ [e3,a3] ~", T: "~@3 [f3,g#3]@3 [f3,g#3] ~@3 [f3,g#3] ~@3 [f3,g#3] ~",
U: "~@3 [f3,a#3]@3 [f3,a#3] ~@3 [f3,a#3] ~@3 [f3,a#3] ~", V: "~@3 [g3,a#3]@3 [g3,a#3] ~@3 [g3,a#3] ~@3 [g3,a#3] ~",
W: "~@3 [d#3,g#3]@3 [d#3,g#3] ~@3 d#3 ~ d#3 ~ [d#3,g#3] ~", X: "~@3 [g3,c4]@3 [g3,c4] ~@3 g3 ~ g3 ~ [g3,c4] ~",
Y: "~@3 [g3,a#3]@3 [g3,a#3] ~@3 g3 ~ g3 ~ [g3,a#3] ~", Z: "~@3 [g#3,c4]@3 [g#3,c4] ~@3 g#3 ~ g#3 ~ [g#3,c4] ~",
AA: "~@3 [a3,c4]@3 [a3,c4] ~@3 a3 ~ a3 ~ [a3,c4] ~", AB: "[g3,c4]@3 ~ [g3,c4] ~ [g3,c4] ~ [g3,c4] ~@7",
})).s("gm_acoustic_guitar_steel").gain(0.1).pan(0.9)
// bass · baritone sax
const bass_2 = note("<~@26 A B C D E@2 F ~@7 G@2 H I J ~@51 K>".pickRestart({
A: "~@3 e2", B: "f2@3 e2", C: "d2@3 ~", D: "~@7 d2@9", E: "[d2@15 e2@17]/2", F: "c2@13 ~@3", G: "[~@15 f2@17]/2",
H: "d2 d#2", I: "e2", J: "a1", K: "~@4 d#2 ~ c#2 ~ c2 ~@7",
})).s("gm_baritone_sax").gain(0.31).pan(0.4)
// chords · clarinet
// … 64 more lines
More by Xavier Cugat
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.