0:00/0:00
// El cuarto de Tula — Buena Vista Social Club
// 101 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 185 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(101/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 · piano · "ELCUARTO"
const piano = note(`<
~@7 A B@2 C@4 D@2 E@2 F@2 ~@7 A C@6 D@2 E@2 F G@2 H@2 I ~@3 J@2 H@2 I ~@3 J@2 H@2 I ~@3 J@2 H@2 I ~@3 J@2 H@2 I ~@3
J@2 H@2 I ~@3 J@2 H@2 I ~@3 J@2 H@2 I ~@3 J@2 H@2 I ~@43 J@2 H@2 I ~@3 J@2 H@2 I ~@3 J@2 H@2 I ~@3 J@2 K@2 ~ L@4 ~
>`.pickRestart({
A: "~@15 c4", B: "[c5@5 ~ b4 d5@2 b4@4 a4@2 c5@2 a4@5 g#4 b4@2 g#4@6 c4]/2",
C: "[c5@6 b4 d5@2 b4@4 a4@2 c5@2 a4@5 g#4 b4@2 g#4@6 c4]/2", D: "[c5@6 b4 d5@2 b4@4 a4@2 c5@2 a4@5 g#4 b4@2 g#4@7]/2",
E: "b4@5 d5@2 c5@9", F: "g#4@5 b4@2 a4@9",
G: "[g#3@5 b3@2 a3@2 [c4,a4]@2 [e4,c5]@7 [d4,b4]@7 [b3,g#4]@3 [d4,b4]@2 [c4,a4]@2]/2", // F C G E G F
H: "[[e4,c5]@2 a4@7 a4@3 [e4,c5]@6 [d4,b4]@2 [e4,c5]@5 [b3,g#4]@3 [d4,b4]@2 [c4,a4]@2, ~ c4@5 ~@10]/2", // C G C E G F
I: "[e4,c5] [c4,a4]@4 ~@3", J: "[~@9 [c4,a4]@2 [e4,c5]@7 [d4,b4]@7 [b3,g#4]@3 [d4,b4]@2 [c4,a4]@2]/2",
K: "[[e4,c5]@2 a4@7 a4@3 [e4,c5]@6 [d4,b4]@2 [e4,c5]@5 ~@7, ~ c4@5 ~@10]/2", // C G C
L: "[~@4 g#4@2 [c4,a4]@3 [d4,b4]@12 [c4,a4]@5 ~ c5@12 ~ a4@24, ~@3 b3@3 ~@20 e4@13 c4@25]/4", // F G F
})).s("gm_piano").gain(0.05)
// other · acoustic guitar steel
const acoustic_guitar_steel = note(`<
A B C@2 D E@2 F G H I J@2 K L M N O P Q R S@2 T U V@3 W X@2 Y@2 Z@2 ~ AA AB@2 AC AD AE AF AG AD AH AI AJ AK AL AD AG
AF AM AD AG AD AN AO AP@2 AQ@2 AR AS AT AS AU AV AW AX AY AZ@2 BA BB BC BD@2 BE BF BG@2 BH BI BJ BK BL BM BN BO BP BQ
BR BS@2 BT BU BV BW BX BY BZ CA CB CC CD CE CF@6 CG CH CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV CW@2 CX CY CZ DA DB
DC@2 DD DE DF DG DH@3 DI DJ DK DL DM DN DO DP DQ DR DS DT DU DV DW DX DY DZ EA EB EC ED EE EF EG EH EI EJ EK EL EM EN
EO EP@2 ~@2 EQ ER
>`.pickRestart({
A: "~ e4 ~ a4 ~@3 d4 ~ f4 ~ d4 ~ d#4 ~ e4", B: "~@4 b4 ~@4 e4 ~@3 e4 ~@2",
C: "[~ e4 ~ c4 e4@2 ~ d4 ~ f4 ~ d4@2 d#4 ~ e4@2 ~@2 g#4 b4 ~@4 e4 ~ c4 ~ e4 [e4,a4] ~]/2", D: "~@7 f4 ~@5 f4 ~ d#4",
E: "[e4@2 ~ g#4 b4 ~@4 a4 ~ c4@2 e4 ~ a4@2 ~@2 c4 e4 ~@4 f4 ~ d4 ~ f4 d4 d#4]/2", F: "e4@2 ~ g#4 b4 ~@9 [e4,a4]!2",
G: "~@7 g4 ~@3 g4 ~ f#4 ~ f4", H: "~@9 f4 g#4 ~ d5 b4 g#4 f4, ~@11 f5@2 ~@3", I: "e4@2 ~@3 a4 ~@5 b4 ~@4",
J: "[~ f4 ~ a4@2 ~@4 [e4,g#4] g#4 b4 ~ g#4 ~ a4@3 ~@9 g4 ~ b4 ~@2]/2", K: "~ f4 ~@7 f4 g#4 b4 d5 ~ b4 d5",
L: "c5@2 a4 ~@13", M: "~@11 e4 ~ e4 f4 f#4", N: "[g4,g#4]@2 ~@7 c5 ~ c5@2 g4 e4 ~", O: "~@13 c5 b4 a4",
P: "g#4 b4 g#4 e4@2 d4 ~ c4 ~ e4 ~ [a4,b4] ~@4", Q: "~@3 d4 g#4 ~ b4 a4 ~@5 e4 ~@2",
R: "~ a4 ~@2 e4 ~@6 g#4 ~ b4 ~ g#4", S: "[f4@2 ~ e4 ~@7 e4 f4 f#4 ~ f#4@3 ~@7 g#4 ~ b4 ~ g#4 e4 d#4]/2",
T: "d4@2 ~@9 c5 ~ e4 a4 ~", U: "~@9 f4 ~ d4 ~ f4 d4 d#4",
V: "[e4@2 ~ g#4 b4 ~@4 e4 ~ c4 ~@3 a4@3 ~@7 f4 ~ d4 ~ d#4@2 e4@2 ~@2 g#4 ~@7 e4 ~@2 [e4,a4]!2]/3", // A5
W: "~@11 b4 ~ f#4 ~ f4", X: "[~@9 f4 g#4 b4 f5 ~ d5 b4@3 ~ c5@2 ~@11]/2",
Y: "[~@9 e4 [f#4,g#4] b4 ~ g#4 b4 a4@2 e4 ~@13 f4]/2", Z: "[~@11 e4 g#4 ~ b4 a4@4 ~@13]/2",
AA: "b4 g5 b4 [b4,g5] b4 ~ f5 e5@4 c5@3 ~@2", // Em
AB: "[~@5 b4@2 c5@2 g4@2 e4 ~ g4 ~ g#4@2 b4@2 g#4@2 e4@2 ~@4 a4@2 ~@3]/2", AC: "~@3 d4 e4 g#4 b4 g#4 a4@2 ~ e4 ~@4",
AD: "~ d4 ~ e4 f4 ~@2 e4 ~ b3 ~ g#3 ~ b3 ~ a3", AE: "~ c4 ~ e4 f4 ~@2 e4 ~@5 c4 ~ b3",
AF: "~ d4 ~ e4 f4 ~@2 e4 ~@3 g#3 ~ b3 ~ a3", AG: "~ c4 ~ e4 f4 ~@2 e4 ~@3 a3 ~ c4 ~ b3",
AH: "~ c4 ~ e4 [e4,f4]@2 ~ e4 ~ c4 ~ a3 ~ c4 ~ b3", AI: "~ d4 ~ e4 f4@2 ~ e4 ~ b3 ~ g#3 ~ b3 ~ a3",
AJ: "~ c4 ~ e4 f4 ~@2 e4@2 ~@4 c4 ~ b3", AK: "~ d4 ~ e4 f4 ~ d4 e4 ~ c4 ~@6",
AL: "~ c4 ~ e4 f4 ~@2 e4 ~ c4 ~ a3 ~@3 b3", AM: "~ c4 ~ e4 f4 ~@2 e4 ~ c4 ~ a3 ~ c4 ~ b3",
AN: "~@4 [e4,f4] ~@2 e4@2 ~@4 c4 ~ b3", AO: "~ d4 ~@2 f4!2 d4 e4 ~@3 g#3 ~ b3 ~ a3",
AP: "[~ c4 ~ e4 f4 ~@2 e4 ~@8 g#4 b4 g#4 d4@2 d#4 ~ e4@2 g#4 b4 g#4 ~ d4 ~ e4, ~@15 b4@2 ~@15]/2",
AQ: "[~ a4 ~ c5 ~ a4 e4 a4 ~ c5@2 a4 ~ e4@2 g#4@2 b4 g#4 d4@2 d#4 ~ e4@2 g#4 ~ b4@2 g#4 ~ a4]/2",
AR: "~ c5 ~ a4@2 e4 a4 c5@2 a4 ~ e4 ~ a4@2 e4", AS: "[g#4,b4]@2 ~ e4 [g#4,b4]!2 e4 ~ [g#4,b4]@2 ~ e4 [g#4,b4]@2 ~ e4",
AT: "[a4,c5]@2 ~ e4 [a4,c5]!2 e4 ~ [a4,c5]@2 ~ e4 [a4,c5]@2 ~ e4", // Am
AU: "[a4,c5]@2 ~ e4 [a4,c5] ~ e4 ~ [a4,c5]@2 ~ e4 [a4,c5]@2 e4 ~, ~@5 [a4,c5]@2 ~@9", // Am
AV: "g#4 b4 g#4 d4 ~ d#4 ~ e4@2 g#4 b4 g#4@2 e4 ~ a4", AW: "~ c5 ~ e4 ~ a4 ~ c5@2 e4 f#4@3 a4 ~@2",
AX: "~ g#4 b4 g#4 d4@2 ~ d#4 e4 g#4@2 b4 ~ g#4 ~ e4", AY: "~ a4 ~ c5@2 e4 a4 c5@2 e4 ~ a4 ~ c5 ~ e4",
AZ: "[g#4 b4 g#4 d4 ~ d#4 ~ e4 ~ g#4 b4 d5 ~ b4 ~ c5@2 a4 ~ e4 ~ a4 ~ c5@2 a4 e4@2 ~ a4 ~ g#4]/2",
BA: "~ b4 g#4 d4 ~ d#4 ~ e4 ~ g#4 ~ b4 ~ g#4 ~ e4", BB: "~ a4 ~ c5@3 ~ a4@2 e4 ~ a4 ~ c5 ~ g#4",
BC: "~ b4 ~ g#4@2 d4 d#4 e4@2 g#4 ~ b4 ~ g#4 ~ a4",
BD: "[~ c5@2 a4 ~ e4 a4 ~@2 c5 ~ a4 ~ e4 ~ g#4@2 b4 g#4 d4 ~ d#4 ~ e4 ~ g#4 ~ b4 ~ g#4 ~ e4]/2",
BE: "~ a4 ~ c5 ~ a4 e4 a4 ~ a4 ~ c5 ~@2 e4 ~", BF: "~ g#4 b4 g#4 ~ d4 d#4 e4@2 g#4 ~ b4 ~ g#4 ~ e4",
BG: "[~@3 c5 ~ a4 e4@2 ~ a4 ~ c5@2 ~ e4 g#4@2 b4 g#4 d4 ~ d#4 ~ e4 ~ g#4 b4 d5 b4 d5 b4 c5]/2",
BH: "c5@2 a4 e4 ~ e4 ~ [a4,c5] ~ e4 ~ [a4,c5]@2 e4 ~@2", // Am
BI: "g#4 [g#4,b4] e4 ~ [g#4,b4]@2 ~ e4 [g#4,b4]!2 e4 ~ [g#4,b4]@2 ~ e4", // G#m
BJ: "[a4,c5]@2 ~ e4 [a4,c5]@2 ~ e4 [a4,c5] ~ e4 ~ [g#4,a4,c5] ~@2 e4, ~@9 [a4,c5]@2 ~@5", // Am G# Am
BK: "[g#4,b4]@2 ~ e4 [g#4,b4]@2 ~ e4 g#4 [g#4,b4] e4 ~ [g#4,b4]@2 ~ e4", // G#m
BL: "[a4,c5]@2 ~ e4 [a4,c5]@2 ~@2 [a4,c5]@2 ~ e4 [a4,c5] ~@3", BM: "g#4 b4 g#4 d4 ~ d#4 ~ e4 ~ g#4 b4 g#4@2 d4 ~ e4",
BN: "~ a4 ~ c5@2 a4 e4 ~@2 a4 ~ c5@2 a4 e4 g#4", BO: "b4@2 g#4 e4 ~ g#4 b4 g#4 d4 d#4 e4@2 ~ g#4 ~ a4",
BP: "~ c5 ~ e4 ~ a4 ~ c5@2 e4 ~ [g#4,a4] ~ c5 ~ g#4", BQ: "~ b4 g#4 d4 ~ d#4@2 e4 ~ f4@4 e4 ~ e4",
BR: "~@3 c5@2 a4 e4@2 f#4@3 e4 f#4@2 ~ e4",
BS: "[g#4@2 ~ b4 g#4 d4 d#4@2 e4@2 ~ g#4 ~ b4@2 a4@2 c5@2 a4@2 e4 ~@3 c5 ~ a4 ~ e4 ~ g#4]/2",
BT: "~ b4 g#4 d4 ~ d#4 ~ e4 ~ g#4 ~ b4 ~ g#4 ~ a4", BU: "~ c5 ~ a4 ~ e4 ~ a4 ~ c5 ~ a4 ~ e4 ~@2",
BV: "~ g#4 b4 g#4 d4 ~ d#4 e4 ~ g#4 ~ b4 ~ g#4 ~@2", BW: "~ a4 ~ e4 c4 ~ d4 e4 ~@3 d4 ~ e4@2 d4",
BX: "~ e4 ~ f4 ~@2 d#4 e4 ~ [g#4,b4] ~ e4 ~ [g#4,b4] ~@2", BY: "~ e4@2 c4 ~ d4 ~ e4 ~@2 e4 [e4,a4]@2 c4 ~ f4",
BZ: "~ f4@2 d4 ~ f4 ~@3 e4 ~ [g#4,b4]@2 e4 ~@2", CA: "~ e4 ~ c4 ~ d4 ~ e4 ~ c4 e4 [c4,e4,a4] ~ c4 ~ d4",
CB: "~ f4 ~ d4 ~ d#4 ~ e4 ~ [g#4,b4] ~ e4 ~ [g#4,b4] ~ a4", CC: "~ e4 c4 ~@2 d4 ~ e4 ~ c4 ~ d4 ~ e4 ~ d4",
CD: "~ f4 ~ d4 ~ d#4 ~ e4 ~ [g#4,b4] ~ e4 ~ g#4 ~ a4", CE: "~ e4 ~ c4 ~ d4 ~ e4 ~ a4 b4 c5 ~ e5 [e4,a4] [e4,a4,e5]",
CF: "[~ d5 b4 g#4 ~@3 e4 g#4 b4 ~ d5!2 ~ d5 d5@2 c5 a4 f#4 ~@5 e4 a4 b4 ~ b4 a4 d5@2 b4@2 ~@4 d5 ~ c5 b4 d5@2 c5 b4 e5@2 c5 ~@7 e4 ~ b4 ~ b4 a4 d5@2 b4@2 ~@4 d5 ~ c5 b4 d5 ~ c5 b4 a4@2 c5 d5 d#5 ~ d5 c5 a4 ~ b4 c5 [c5,d5] ~@2 c5 b4, ~@14 c5 ~@14 [a4,b4] c5 ~@15 e5 ~, ~@93 d5@2 ~]/6", // Csus2 Asus2
CG: "a4 g#4 a4 b4 g#4@2 ~ e4 ~ g#4 d5 b4 g#4 ~ e4 [c5,d5]", CH: "c5 ~ a4 e4 d5@2 c5 a4 e4 d5@2 c5 a4 ~@2 f#4, ~@7 e4",
CI: "~ g#4 b4 g#4 a4 ~ c5 d5 e5 [f#5,g#5] b5 g#5 b5 g#5 a5 b5, ~@5 b4@2 ~@9", // F#sus2
CJ: "g#5 e5 f#5 [g5,g#5] ~ d5 d#5 e5 ~@5 c5 d5 d#5", // G#maj7
CK: "d5 c5 b4 a4 g4 g#4 b4 g#4 a4 ~ c5 d5 e5 ~ b4 d5, ~@9 b4@2 ~@5",
CL: "c5 b4 ~ b4 a4 g4 g#4 b4 a4 ~ e4 f4 ~@2 d#4 ~, ~@2 c5@2 ~@9 e4@2 ~",
CM: "e4 [g4,a4] f4 ~ e4 ~@2 e4 f4 ~ e4 d#4 e4 ~ c5 g#4", CN: "b4 ~@2 e4 ~@11 d5",
CO: "f5 ~ f5 b4 d5 ~ d5 b4 c5 ~ c5 f#4 ~ a4!2 ~", CP: "~@3 g#4 a4 b4 a4 e4 f4 g#4 a4 ~ c5 d5 e5 g#5, ~@11 b4@2 ~@3",
CQ: "~ b5 g#5 a5 ~@7 g#4 [b4,e5] g#4 ~ [b4,e5]", // E5
CR: "a4 [c5,e5] ~ a4 [c5,e5] ~ a4 [c5,e5] a4 ~ [c5,e5] a4 e5 c5 a4 [b4,e5]", // C E5
CS: "g#4 ~ [b4,e5] g#4 [b4,e5] ~ g#4 [a#4,b4,e5] ~ g#4 b4 d5 g5 ~@3", // E5 E
CT: "~@3 e5 ~ d5 c5 b4 ~ c5 b4 a4 [c5,d5] b4 a4 g4, ~@4 d5 ~@3", // Csus2
CU: "g#4 ~ b4 g#4 e4@2 ~ e4 [g#4,b4] ~@2 e4 [g#4,b4]@2 ~ a4", // G#m
CV: "~ e4 d4 c4 ~ e4@2 f#3@2 [a3,e4]@6 ~, ~@9 [f#3,d#4] ~@6", // A5 D#m
CW: "[~@3 d4 e4 ~@2 d4 c4 b3 c4 e4 g#4 ~ b4 a4@2 e4 ~@5 e4 ~ e4 d#4 ~ [d5,e5] ~ e4 ~, ~@5 f4@2 ~@17 f4@2 ~@6, ~@6 e4@2 ~@19 e4@2 ~@3]/2", // Dsus2
CX: "e5 [d#4,e4] [e4,d5] [d#4,e4] e4 [d#4,e4,b4] g#4 [d#4,e4] [e4,e5] [d#4,e4] d5 [d#4,e4] b4 [d#4,e4] [d4,e4,g#4] [d#4,e4]", // Emaj7 E7 Emaj7 E Emaj7 E7 Emaj7
CY: "[e4,e5] [d#4,e4] c5 [d#4,e4] [e4,a4] [d#4,e4] c5 [d#4,e4] [e4,e5] [d#4,e4] [e4,c5] [d#4,e4] a4 [d#4,e4] [e4,c5] [d#4,e4]", // E Emaj7 A5 Emaj7 E Emaj7 C Emaj7 …
CZ: "[e4,e5] [d#4,e4] [e4,d5] [d#4,e4] [e4,b4] [d#4,e4] [e4,g#4] [d#4,e4] [e4,e5] [d#4,e4] d5 [d#4,e4] [e4,b4] [d#4,e4] [e4,g#4] ~", // E Emaj7 E7 Emaj7 E5 Emaj7 E Emaj7 …
DA: "~ g3 c4 f4 g#3 c#4 f#4 [a3,d#4] d4 g4 ~ d#4 g#4@2 ~ c4, ~@5 a#3 ~@2", // Adim
DB: "[c4,d4,e4] e4 f4 g#4 b4 g#4 ~@2 c5 d5 ~ g#5 b5 ~ g#5 [f#5,g5,a#5], ~@3 a4 ~@4, ~@7 b4@2 ~ e5@2 ~@4", // C F#
DC: "[d#5 ~ [f5,a5] d5 [e5,g#5] ~ c#5 [d#5,g5] c5 [d5,f#5] ~ b4 [e5,f5]@2 ~@2 e5 d5 c5 b4 a4 g4 g#4 b4 g#4 b4 ~@2 c5 b4 a4 g#4, ~@15 f5@2 ~@9 e5@2 ~@4, ~@27 d5@2 ~@3]/2", // F E D# D Fmaj7
DD: "b4 g#4 a4 e4@2 [a4,b4,c5] ~@5 d#5 ~ d#5!3", DE: "~ d#5!4 ~ d#5!2 ~ d#5!3 ~ d#5!3",
DF: "~ d5 c5 a5@2 [d#5,e5]@2 ~@6 d5 d#5 e5", DG: "d5 d#5 [d#5,e5] d5 d#5 e5 d5 d#5 e5 d5 d#5 e5 d5 c5 b4 a4",
DH: "[g4 g#4 b4 g#4 b4 a4 ~ e4 c4 b4@2 a4 e4 c4 ~@2 a4 ~ f4 d4 ~@2 a4 f4 d4 ~@2 a4 g#4 ~ e4 ~ a4 e4 ~ c4 ~ a4 ~ e4 c4 ~ [b4,c5] a4 e4 c4 ~ g4, ~@15 b4@2 ~@4 b4@2 ~@3 b4@2 ~@3 b4@2 ~@3 b4@2 ~@10]/3", // Cmaj7
DI: "f4 ~ g4@3 ~@2 g4@2 f4@2 g4@2 f4 c4 d4", DJ: "e4 ~ e4@2 [a4,c5]@2 ~@3 a4 ~ [c5,e5] ~ [c5,e5]!2 ~",
DK: "[c5,e5]@2 [b4,d5] ~@6 [g#4,b4] ~ [a4,c5] [b4,d5]@2 [a4,c5] ~", // C Bm G#m Am Bm Am
DL: "[c5,e5]@2 [a4,c5] ~@6 [a4,c5] ~ [b4,d5] [c5,d5,e5] ~ [c5,e5] ~", // C Am Bm C
DM: "[c5,e5]@2 [b4,d5]@2 [c5,e5] ~@4 [g#4,a#4,b4] ~ [g#4,b4] [b4,d5] ~ [a4,c5] ~", DN: "[c5,e5]@2 [a4,c5] ~@13",
DO: "~ d4 f4 b3 ~ c4 ~ d4@2 d4 ~ e4 ~ g#4 ~ a4", DP: "~ c4 ~ d4 ~ c4 ~ e4 ~@3 c4 ~ e4 ~ f4",
DQ: "~ f4 ~ d4 f4 ~ d4 e4 ~ g#4 ~ e4 ~ g#4 ~@2", DR: "~ a4 ~@14", DS: "~ f4@2 ~ f4 d4 d#4 e4 ~@3 g#4 ~ e4 ~@2",
DT: "~ e4 ~ c4 ~ d4 ~ e4 ~@2 d4 e4 ~@2 d4 f4", DU: "~ f4 ~@2 e4 ~@2 e4 ~ d4 ~ g#4 ~ e4 ~ a4",
DV: "~ e4 ~ c4 ~ d4 ~ e4 ~@3 d4 ~ e4 ~ f4", DW: "~ f4 ~ d4 f4!2 d4 d#4 e4 ~@2 g#4 ~ e4 ~ a4",
DX: "~ a4 ~ c4 d4!2 c4 d4 e4 ~@2 c4 ~ e4 ~@2", DY: "~ f4 ~ d4 ~ f4 ~ d#4 e4 ~@2 g#4 ~ e4 ~ a4",
DZ: "~ e4 ~ c4 ~ d4 ~ e4 ~@3 e4 ~ c4 ~@2", EA: "~@3 f4 d4 d#4 ~ e4 ~ g#4 ~ e4 ~ g#4 ~ a4",
EB: "~ e4 ~ c4 ~ d4 ~ c4 d4 c4 d4 ~ e4 ~@2 f4", EC: "~ f4 ~ d4 f4@2 ~ d#4 ~ e4 ~ g#4@2 e4 ~ a4",
ED: "~ e4 ~ c4 ~ d4 ~ e4 ~@3 d4 ~@4", EE: "~ f4 ~ d4 [e4,f4]@2 ~ d4 e4 ~@2 e4 g#4@2 ~@2",
EF: "a4 ~@2 a4 e4@2 ~ e4 c4 ~@2 c4 d4 ~@3", EG: "~ d4 f4 d4 ~ d#4 ~ e4 ~ g#4 ~ b4 ~ g#4 ~ b4",
EH: "~ e4 ~ c4 ~ d4 ~ e4 ~ c4 ~ d4 e4 ~@2 d4", EI: "~ f4 ~ d4 f4 ~ d#4 e4 ~ g#4 ~ [g#4,b4] ~ g#4 ~ a4",
EJ: "~ e4 ~ c4 ~ d4 ~ e4 ~@3 d4 ~ f4 ~@2", EK: "~ f4 ~ d4 d#4@2 ~ e4 ~ g#4 ~ e4 ~ g#4 ~ a4",
EL: "~ e4 ~ c4 d4!2 c4 ~ e4 ~@2 c4 ~@4", EM: "f4@2 ~ d4 f4@2 ~ d4 e4 ~@2 e4 g#4@2 ~ g#4",
EN: "a4 ~@2 e4 ~ c4 d4 e4 ~ c4 ~ d4 ~ e4 ~@2", EO: "d4 ~@7 d5@2 ~ f5 ~@2 e5 d5, ~@5 e5 g5 ~, ~@13 f5@2 ~",
EP: "[c5 b4 a4@2 g#4@4 f5@12 ~@12]/2",
EQ: "~@3 [c4,e4]@3 ~ e4 [e4,a4] [c4,a4] [c4,e4] c4 e4!2 [c4,a4] [e4,a4], ~@2 a4@3 ~@11", ER: "a4 [c4,e4] e4 ~@13",
})).s("gm_acoustic_guitar_steel").gain(0.24).pan(0.9)
// other · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
~ A ~ B C ~ D E F G H I F ~ J K ~@3 L M N ~ O P Q R S T U ~@2 V W X Y Z ~ AA AB ~ AC AD AE AF@3 AG AH AI AJ AK AF@2 AJ
AE AF AL AM AF ~ AN ~ AO ~@10 AP ~@4 AQ ~ AR ~ AS AT ~ AU AV AW AX ~@3 AY ~ AZ ~@3 BA BB BA BC@2 ~@2 BD BE ~ BF ~@3 BG
~@2 BH ~ BI BJ ~ BK ~@4 BL ~@3 BM ~@4 BN ~@19 BO BP BQ BR BA ~ BS AF BT ~@2 AF BQ AW BU BV BW BX BY ~ BS ~@3 BZ@2 ~@2
CA CB
>`.pickRestart({
A: "~@3 g#4 ~@3 a4 ~@3 c4 ~@4", B: "~@7 a4@2 ~@7", C: "~ c4 ~ e4 c4 ~@4 d4 ~ d4 ~@2 d4 ~", D: "~@7 d4 ~@8",
E: "~@4 g#4 ~@4 a4 ~ c4 ~@4", F: "~@9 d4 ~@6", G: "~@3 f4 ~ d4 ~@10", H: "~@9 g4 ~@2 d4 ~@3", I: "~@5 c4 ~@10",
J: "~@9 e4 ~@6", K: "~@5 a4 ~@10", L: "~@9 e4 ~ c4 ~@4", M: "~@3 c4 ~@2 a4 ~@2 f4 ~@6", N: "~@13 g4 ~@2",
O: "~@9 a4 ~@4 e4 ~", P: "~@3 a4 ~ e4 ~ d4 ~@8", Q: "~@7 a4 ~@5 e4 ~@2", R: "~@3 e4 c4 ~@2 d4 ~@8",
S: "~@4 b4 ~@2 a4 ~ c4 ~@6", T: "~@9 g4 ~@3 g4 ~@2", U: "~@3 a4 ~@12", V: "~@9 e4 d4 c4 ~ d4 ~@2",
W: "~@3 d4 ~ e4 ~@10", X: "~@3 e4 ~@12", Y: "~ d4 ~ f4 ~ d4 d#4 e4 ~@8", Z: "~@4 g5 ~@11",
AA: "~@7 c4 ~ e4 ~@3 e4 c4 ~", AB: "~@6 g#4 ~@9", AC: "~@6 d4 ~@4 a3 ~@4", AD: "~@6 d4 ~@2 b3 ~@6",
AE: "~@6 d4 ~@2 c4 ~@6", AF: "~@6 d4 ~@9", AG: "~@6 d4 ~@2 c4 ~ a3 ~@4", AH: "~@13 b3 ~ a3", AI: "~@6 d4 ~@6 c4 ~@2",
AJ: "~@4 e4 ~ d4 ~@9", AK: "~@4 d#4 ~ d4 ~@2 c4 ~@6", AL: "~ c4 ~ e4 ~@2 d4 ~@2 c4 ~ a3 ~@4", AM: "~@3 e4 ~@5 b3 ~@6",
AN: "~@7 e4 ~@8", AO: "~@11 a#4 ~@4", AP: "~@11 g#4 ~@4", AQ: "~@13 a4 ~@2", AR: "~ a4 ~@11 a4 ~@2", AS: "~@15 e4",
AT: "b4 ~@15", AU: "~@8 b4 ~@7", AV: "~@7 e4 ~@4 g#4 ~ e4 ~", AW: "~@15 g#4", AX: "g#4 ~@15", AY: "~ a4 ~@14",
AZ: "~@7 a4 ~@5 a#4 ~@2", BA: "~@9 c4 ~@6", BB: "~@5 d4 ~@9 a4", BC: "[~@7 d4 ~@7 a4@2 ~@15]/2", BD: "~@13 b4 ~@2",
BE: "~@9 c4 ~ b4 ~@4", BF: "~@9 a4 ~@6", BG: "~@2 c5 ~@13", BH: "~@3 a#4 ~@12", BI: "~@11 c5 ~ [a#4,b4] ~@2",
BJ: "~@6 f#4 ~@9", BK: "~@2 a4 ~@13", BL: "~@4 d#5 ~@11", BM: "~@4 d4 ~@11", BN: "~@2 g3 ~@13",
BO: "~@3 e4 c4 ~ d4 e4 ~ c4 ~ d4 ~ e4 ~@2", BP: "~@3 d4 ~@11 a4", BQ: "~@9 c4 ~@3 c4 ~@2", BR: "~@3 d4 ~@12",
BS: "~@15 c4", BT: "~@9 c4 d4 ~@5", BU: "~@15 d4", BV: "~@15 a4", BW: "~@15 f#4", BX: "~@5 d4 ~@10",
BY: "~@9 c4 ~@5 d4", BZ: "[~@2 b4@3 ~@3]/2", CA: "~@6 [c4,e4] a4 c4 e4 a4!3 [c4,a4] e4 ~",
CB: "~ a4!2 [e4,a4] ~ [e4,a4] ~@10, ~@2 [c4,a4] ~@5", // A5 F
})).s("gm_acoustic_guitar_steel").gain(0.14).pan(0.9)
// chords · trumpet
const trumpet = note(`<
A B A C D E F E ~@12 G B A H F E D E ~@15 I@5 ~@3 J@2 K@2 L ~@99 M N O P@2 ~@3 Q R S T U ~@3 V W X Y Z ~@7 AA@2
>`.pickRestart({
A: "a4 ~ a4 ~ g#4@2 ~ b4@5 ~@4", B: "b4 ~ b4 ~ a4@2 ~ c5@4 ~@5", C: "b4 ~ b4 ~ a4@2 ~ c5@6 ~@3",
D: "~ [b4,c5] ~ b4 a4 ~ g4 f4 ~ e4 ~ d4@2 ~@3", E: "~ [a4,b4] ~ a4 g#4 ~ f4 e4 ~ d4 ~ c4@2 ~@3",
F: "~ [b4,c5] ~ b4 a4 ~ g4 f4 ~ e4 ~ d4 ~@4", G: "a4 ~ a4 ~ g#4@2 ~ b4@4 ~@5", H: "b4 ~ b4 ~ a4 ~@2 c5@6 ~@3",
I: "[~ a5@9 ~ e5@2 c5 ~ b4@3 ~ d5 g5 ~ f#5 g5 f5 ~ d5 b4 a4!2 ~ c5@2 a4 ~@7 e4 a4 b4 c5 b4 a4 d5@2 b4 ~ e5 ~ f5 ~ [e5,f5] e5@3 b4 ~ d5 c5 a4@4 ~@13]/5", // Fmaj7
J: "[~@9 e5 ~ d5 ~ e5 d5 f5@2 b4 ~@7 b4 ~ c5 d5 b4 ~ e5]/2",
K: "[~ a4 ~ b4 c5 ~ d5 e5 ~ b5 ~ a5 ~ a5 ~ g#5@2 c6@2 b5 ~ a5 ~ g#5 ~ f5 e5 d5 c5 ~ b4 a4, ~@6 b5 ~@9]/2",
L: "~ b4 c5 d5 d#5 e5 d5 e5@2 ~@7", M: "~@9 c5 ~ e5 a5 ~ g#5 b5", N: "~ a5 e5 c5 ~ f5 e5 d5 ~ f5 e5 d5 f5 ~ e5 d5",
O: "e5@2 d5 c5 e5@2 d5 c5 e5 d5 c5 e5 ~@4",
P: "[~ d5 c5 b4 d5@2 c5 b4 d5@2 c5 b4 d5 c5 b4 e5@2 c5@2 a4 e5 c5 a4 f#4@3 ~@6]/2",
Q: "~@3 e5 f5 ~ e5 a5@3 ~ e5 f5 ~ e5 g#5", R: "e5 ~ f5 e5 ~ g#5 e5 f5 e5 ~ g#5 e5 [e5,f5] ~ e5 c6",
S: "g#5 ~ b5 a5 ~ e5 c5 g5 ~ f5 g5 f5 c5 ~ a4 b4", T: "~ c5 ~ f5@2 ~@2 f5 ~ f5!3 ~ f5!2 e5",
U: "~ e5!3 ~ e5 a5 e5@2 ~@7", V: "~@5 a4 b4 c5 e5@2 ~@6",
W: "f5 [d5,e5] f5 [d5,e5] f5 ~@3 [e5,f5] d5 f5 ~@3 [d5,e5] c5", X: "e5 ~@6 e5 a5 ~ b5 c6 ~ b5 d6 c6",
Y: "~ b5 a5 g#5 ~ a5 b5 g#5 e5@2 ~ e5 f5 e5 d#5 e5", Z: "c6@2 b5 a5 f#5@2 ~ f#5@3 ~ f#5@2 ~ f#5@2",
AA: "[~@3 a5@18 ~@11]/2",
})).s("gm_trumpet").gain(0.58)
// chords · trumpet · soft notes
const trumpet_soft = note("<A B A C D E F E ~@12 G B A H F E D E ~@143 I ~ J K ~@10>".pickRestart({
A: "c5 ~ c5 ~ b4@2 ~ d5@5 ~@4", B: "d5 ~ d5 ~ c5@2 ~ e5@4 ~@5", C: "d5 ~ d5 ~ c5@2 ~ e5@6 ~@3",
D: "~ [d#5,e5] ~ d5 c5 ~ b4 a4 ~ g4 ~ f4@2 ~@3", E: "~ [c5,d5] ~ c5 b4 ~ a4 g4 ~ f4 ~ e4@2 ~@3",
F: "~ [d#5,e5] ~ d5 c5 ~ b4 a4 ~ g4 ~ f4 ~@4", G: "c5 ~ c5 ~ b4@2 ~ d5@4 ~@5", H: "d5 ~ d5 ~ c5 ~@2 e5@6 ~@3",
I: "~@6 [a4,c5] ~@9", J: "~@14 c#6 d6", K: "~@6 a#5 ~@9",
})).s("gm_trumpet").gain(0.35)
// other · flute
const flute = note(`<
~@7 A B C B C B C B D E F G H ~@7 A B C B C B C B D E F G I ~@19 J K@2 L M ~@3 N@2 O@2 P ~@3 Q@2 R S T ~@3 U V W X Y
~@3 Z@2 AA AB AC ~@3 AD AE AF AG AH ~@81
>`.pickRestart({
A: "~@15 e4", B: "e5 ~ e5!3 ~ d5 f5 ~ d5 ~ d5 ~ c5 ~ e5", C: "~ c5 ~ c5!2 ~ b4 d5 ~ b4 ~@5 e4",
D: "~ c5 ~ c5!2 ~ b4 d5 ~ b4 ~@6", E: "d5@4 ~ f5 ~ e5@5 ~@4", F: "d5@4 ~ f5 ~ e5@4 ~@5", G: "b4@4 ~ d5 ~ c5@5 ~@4",
H: "b4@4 ~ d5 ~ c5@4 ~@5", I: "b4@4 ~ d5 ~ c5 ~@8", J: "~@3 f5 g5 ~ g5 f5 g5 ~ g5 f5 g5 ~ g5 f5",
K: "[g5 ~ g5 f5 g5@2 ~ f5 g5@2 ~ f5 g5 ~ f5 f5@2 e5 ~@5 g5 ~ f5 e5 g5 ~ f5 e5 f5]/2",
L: "~ f5 ~ e5 f5 ~ e5 f5@2 e5 ~ d5 e5 f5 ~ g5", M: "f5@2 e5 d5 e5 f5 g5 [f5,g5] ~ e5@2 ~@5",
N: "[~@7 e5@7 ~ a5@2 g5 ~ f5@2 e5@2 ~@4 d5 e5 ~ d5 e5]/2",
O: "[~ d5 e5 f5 a5@3 e5@3 ~@5 a5@2 g5 f5 g5@2 f5 e5 f5 ~ e5 d5 e5@2 d5 c5 d5]/2",
P: "~ d5 ~ d5 [d5,e5] ~ f5 g5 f5 ~ e5 ~@5", Q: "[~@7 e5@7 ~ d5@2 f5@2 e5@2 d5@2 ~@7 d5 ~]/2",
R: "f5 ~ e5 d5 ~ e5@2 c5 ~@8", S: "~ d5 ~ c5 ~ d5 ~ e5@2 ~@7", T: "~ d5 ~ f5 ~ e5 d5 e5@2 c5@2 ~@5",
U: "~@9 c5 ~ d5 ~ e5 ~ a5", V: "~ g5 f5 e5 ~@7 d5 e5 ~ d5 e5", W: "~ f5 g5 f5@2 e5 ~@7 g5@2 c5",
X: "~ d5 ~ e5 ~ f5 ~ e5 ~@3 b4 d5 ~ c5 a4", Y: "~ a4 ~ a4 ~ b4 c5 d5 e5@3 ~@5",
Z: "[~@9 e5 ~ c5 ~ d5 e5 f5@3 ~@5 b4@2 ~@4 d5@2 c5]/2", AA: "~ b4 ~ c5 d5 e5@2 ~@2 a4 ~@5 a4",
AB: "b4 ~ c5 d5 ~@5 d#5 ~ e5@2 ~@2 g#5", AC: "b5 ~ g#5 a5 ~ e5 ~ d5 ~ c5 d5 e5@2 ~@3",
// … 393 more lines
More by Buena Vista Social Club
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.