0:00/0:00
// Heart of Gold — Crosby, Stills, Nash & Young
// 86 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 66 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(86/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 · acoustic guitar steel · "NYLON GTR"
const acoustic_guitar_steel = note(`<
A B C D E F G H I J K L M N O P@6 Q@5 R@2 S@8 T@5 U V@2 W X Y@7 Z@2 AA AB AC AD AE AF AG AH@4
>`.pickRestart({
A: "e3@4 ~@2 [e3,e4,g4,b4]@2 ~ [e3,e4,g4,b4] ~@2 [e3,e4,g4,b4]@2 ~ [e3,e4,g4,b4] ~@2 [e3,e4,g4,b4] ~@2 [e3,e4,g4,b4] ~@2", // Em
B: "[d3,d4,f#4,a4]@5 ~ [d3,d4,f#4,a4]@2 ~ e3@6 ~ e3 ~ g3@2 ~ g3@3, ~@9 [e4,g4,b4]@13 ~@2, ~@15 d3@2 ~@7", // D Em
C: "e3@5 ~ [e3,e4,g4,b4]@2 ~ [e3,e4,g4,b4]@2 ~ [e3,e4,g4,b4] ~@2 [e3,e4,g4,b4] ~@2 [e3,e4,g4,b4] ~@2 [e3,g4]@3, ~@21 [e4,b4] ~@2", // Em E5
D: "[d3,d4,f#4,a4]@4 ~@2 [d3,f#4,a4]@3 e3@6 ~ e3 ~ g3@2 ~ g3@3, ~@6 d4 ~@2 [e4,g4,b4]@12 ~@3, ~@15 d3@2 ~@7", // D Em
E: "~@3 [b3,b4] ~@3 c4, e3@3 ~@3 c5@2, ~@3 e4@9 c4@7 ~@5, ~@2 g4@2 ~ e4@3", // B
F: "d4@3 d4@3 ~@3 d4 ~@8 [g3,b4]@3 f#3@3, ~@6 f#4@5 ~ g3@5 ~@7, ~@15 [d4,g4]@7 ~@2", // G G5
G: "~@2 g3 b3 ~@3 c4, e3@5 ~ [g4,b4]@6 ~@3 e4@9, ~ e4@3 c4@2 [g4,c5]@2", // G C5
H: "~@3 d4 ~@3 [g3,b4], d4@6 [a4,d5]@5 ~@4 d4@8 ~, ~@3 f#4@8 ~ g3@6 g4@5 ~", // G D5
I: "~@3 b3 ~@3 [c4,e4], e3@6 [g4,b4]@6 ~@3 e4@5 ~@4, ~ e4@3 c4@2 [g4,c5]@2", // C G C5
J: "d4@3 d4@3 [f#4,a4]@3 d4 ~@11 [g3,b4]@2 ~, ~@12 g3@6 g4@5 ~, ~@15 d4@8 ~", // F#m G
K: "~@3 e4@3 [e4,g4,b4]@3 [e4,g4]@3 [e3,e4,g4,b4]@2 ~ [e3,e4,g4,b4] ~@2 [e3,e4,g4,b4] ~@2 [e3,e4,g4,b4] ~@2, e3@5 ~ e3 ~@2 [e3,b4] ~@14", // Em E5
L: "[d3,d4,f#4,a4]@3 d4@3 [d3,a4]@3 [e3,e4,g4,b4]@5 ~ [d3,d4] [e3,e4]@2 [g3,g4]@2 ~ [g3,g4]@3, ~@6 [d4,f#4] ~@17", // D D5 Em D E G D
M: "e4!2 g3 b3 ~@3 c4, e3 ~@5 [e4,g4,b4]@6 c4@6 [g4,c5]@6, ~@5 e4@3", // Em C5
N: "~@3 d4 ~ d4 g3 f#3, d4@6 [a4,d5]@6 ~@6 [g4,b4]@5 ~, ~@3 f#4@9 g3@5 ~@7", // D5 G
O: "~ e4 g3 b3 ~@3 c4, e3 [g4,b4] c4 [g4,c5], ~@5 e4@3", // G C5
P: "[d4@3 d4@3 ~@3 d4@2 d4 ~@2 g3@3 ~@3 g3@3 f#3@3 e3@3 ~ e3 ~ g3@3 b3@3 ~@9 c4@3 ~@3 f#4@3 ~@3 d4@3 ~@9 d3@2 ~ e3@2 ~ e3@2 ~@4 e3@2 ~@4 e3@2 ~@4 f#3@3 g3@2 ~ g3@2 ~@4 g3@2 ~@4 g3@3 ~@3 [d4,g4,a4] [d4,g4,a4] ~ c4@2 ~ c4@2 ~@4 [c4,e4,g4,c5]@12 g3, ~@6 [f#4,a4]@5 ~@6 d4@8 ~@4 e4@9 c4@6 [g4,c5]@7 ~@5 [a4,d5]@7 ~@2 d4@9 ~@45 b3@3 ~@22, ~@20 [g4,b4]@6 ~@6 [g4,b4]@6 ~@3 e4@9 d4@6 ~@6 g3@6 g4@5 ~@71]/6", // Dsus4 C F#m C5 D5 G
Q: "[a3 ~ [c4,e4,g4,c5] ~@2 [e4,g4,c5] ~@5 [d4,g4,b4]@9 g3@3 [d4,g4,b4] ~@2 e3@2 ~ e3@2 ~@7 e3@2 ~ e3@2 ~@4 [d4,g4,b4] [d4,g4,b4] ~ g3@2 ~ g3@2 ~@7 g3@2 ~ g3@2 ~@4 b3@3 [c4,e4,g4,c5]@2 ~ [c4,e4,g4,c5] ~@5 [c4,e4,g4,c5]@12 ~ a3 ~ [c4,e4,g4,c5] ~@2 [c4,e4,g4,c5]@2 ~@4 [d4,g4,b4]@12 f#3, ~@5 c4@3 ~@3 g3@7 ~@5 f#3@3 ~@21 f#3@3 ~@18 [d4,g4,a4]@5 ~@22 g3@2 ~@10 g3@5 ~@8]/5", // C G C G Dsus4
R: "[~@11 [b3,b4]@3 ~@9 c4@3 d4@3 d4@3 ~@3 d4 ~@8 [g3,b4]@3 f#3, ~@2 e3@9 ~@9 c5@6 ~@22, ~@5 e4@9 c4@7 ~@17 g3@5 ~@5, ~@8 g4@6 ~@3 e4@9 ~@6 f#4@5 ~@4 [d4,g4]@7]/2", // B G G5
S: "[~@8 g3@3 b3@3 ~@9 c4@3 ~@9 d4@3 ~@9 [g3,b4]@3 ~@9 b3@3 ~@9 [c4,e4]@3 d4@3 d4@3 [f#4,a4]@3 d4 ~@11 [g3,b4]@2 ~@4 [e4,g4,b4] ~@2 [e3,e4,g4,b4]@2 ~ [e3,e4,g4,b4]@2 ~ [e3,e4,g4,b4]@2 ~ [e3,e4,g4,b4]@2 ~ [e3,e4,g4,b4]@2 ~ e4@2 e4 ~@2 d4@3 d4@3 [d3,a4]@3 e3@6 d3 e3@2 g3@2 ~ g3@3 e3@2 e3 ~@2 e4 ~@2 g3@3 b3@3 ~@9 c4@3 ~@9 d4@3 ~@3 d4@3, ~@2 e3@5 ~ [g4,b4]@6 ~@3 e4@9 d4@6 [a4,d5]@5 ~@4 d4@8 ~ e3@6 [g4,b4]@6 ~@3 e4@5 ~@16 g3@6 g4@5 ~@33 [d4,f#4] ~@2 [e4,g4,b4]@14 ~@9 [e4,g4,b4]@7 ~@2 e4@9 d4@6 [a4,d5]@6 ~@6, ~@5 e4@9 c4@6 [g4,c5]@6 ~@3 f#4@8 ~ g3@6 g4@5 ~@4 e4@9 c4@6 [g4,c5]@6 ~@15 d4@8 ~ e3@5 ~@16 [e3,g4,b4]@4 ~ [d3,f#4,a4]@5 ~@33 c4@6 [g4,c5]@7 ~@2 f#4@9 g3@5 ~]/8", // G C F#m G Em D5 G D5 …
T: "[g3@3 f#3@3 ~@3 e4@3 g3@3 b3@3 ~@9 c4@3 d4@3 d4@3 [f#4,a4]@3 d4 ~@2 g3@3 ~@3 g3@3 f#3@3 e3@3 ~ e3 ~ g3@3 b3@3 ~@9 c4@3 ~@3 f#4@3 ~@3 d4@3 ~@9 d3@2 ~ e3@2 ~ e3@2 ~@4 e3@2 ~@4 e3@2 ~, [g4,b4]@5 ~ e3@6 [g4,b4]@6 c4@6 [g4,c5]@6 ~@18 [g4,b4]@6 ~@6 [g4,b4]@7 ~@2 e4@9 d4@6 ~@6 g3@6 g4@5 ~@19, ~@21 e4@9 ~@15 d4@8 ~@4 e4@9 c4@6 [g4,c5]@7 ~@5 [a4,d5]@7 ~@2 d4@9 ~@18]/5", // F#m G C5 G C5 D5
U: "~@3 f#3@3 g3@2 ~ g3@2 ~@4 g3@2 ~@4 g3@3",
V: "[~@3 [d4,g4,a4]!2 ~ c4@2 ~ c4@2 ~@4 [c4,e4,g4,c5]@12 g3 a3 ~ [c4,e4,g4,c5] ~@2 [c4,e4,g4,c5] ~@5 [d4,g4,b4]@9, ~@3 b3@3 ~@33 g3@7 ~@2]/2", // Dsus4 C G
W: "g3@3 [d4,g4,b4] ~@2 e3@2 ~ e3@2 ~@7 e3@2 ~ e3@2 ~, ~ f#3 ~@6", // G
X: "~@3 [d4,g4,b4]!2 ~ g3@2 ~ g3@2 ~@7 g3@2 ~ g3@2 ~, ~ f#3 ~@6", // G
Y: "[~@3 b3@3 [c4,e4,g4,c5]@2 ~ [c4,e4,g4,c5] ~@5 [c4,e4,g4,c5]@12 ~ a3 ~ [c4,e4,g4,c5] ~@2 [c4,e4,g4,c5]@2 ~@4 [d4,g4,b4]@12 f#3@2 ~@10 [b3,b4]@3 ~@9 c4@3 d4@3 d4@3 ~@3 d4 ~@8 [g3,b4]@3 f#3@3 ~@6 g3@3 b3@3 ~@9 c4@3 ~@9 d4@3 ~@9 [g3,b4]@3 ~@9 b3@3 ~@3 e4@3, [d4,g4,a4]@5 ~@22 g3@2 ~@10 g3@5 ~@10 e3@9 ~@9 c5@6 ~@30 [g4,b4]@6 ~@3 e4@9 d4@7 ~@5 g3@7 ~@5 e3@7 ~@11, ~@57 e4@9 c4@7 ~@17 g3@5 ~@7 e3@5 ~@13 [g4,c5]@6 ~@3 f#4@8 ~@4 d4@8 ~@4 e4@9 c4@6, ~@60 g4@6 ~@3 e4@9 ~@6 f#4@5 ~@4 [d4,g4]@7 ~@5 e4@9 c4@7 ~@11 [a4,d5]@5 ~@7 g4@5 ~@7 [g4,b4]@6 ~@6]/7", // C G B G Dsus4 G C5 G5 …
Z: "[~@3 [c4,e4]@3 d4@3 d4@3 [f#4,a4]@3 d4 ~@11 [g3,b4]@2 ~ e3@4 ~@2 e3 ~@2 e3@2 ~ e3@2 ~ e3 ~@2, [g4,c5]@6 ~@12 g3@6 g4@5 ~@19, ~@21 d4@8 ~@7 [e4,g4,b4]@7 ~@5]/2", // C F#m G C5 Em
AA: "[e4,g4,b4]@3 e3@2 ~ [d4,f#4,a4]@6 d3@3 e3@5 ~@2 e3 ~, e3@2 ~@4 d3@4 ~@5 [e4,g4,b4]@9, ~@21 d3@2 ~", // Em D Em
AB: "g3@2 ~ [g3,e4,g4,b4] [e4,g4,b4] ~ e3@2 ~ [e3,e4]@2 ~@4 e3@2 ~@4 e3@3, ~@12 [e4,g4,b4]@7 ~@5", // Em E Em
AC: "~@3 e3 ~@2 d3@4 ~@2 [d3,d4,f#4,a4]@3 e3@6 ~ e3 ~, [e4,g4,b4]@6 ~@15 d3@2 ~", // D Em
AD: "[g3,e4,g4,b4] ~@2 [g3,e4,g4,b4] [e4,g4,b4] ~ e3@2 ~ [e3,e4]@2 ~@4 e3@2 ~ e3@2 ~ e3@2 ~, ~@12 [e4,g4,b4]@7 ~@5", // Em E Em
AE: "~@3 e3@2 ~ d3@4 ~@2 [d4,f#4,a4] ~@2 [e3,e4,g4,b4]@6 ~ e3 ~, [e4,g4,b4]@5 ~@7 d3@3 ~@6 d3@2 ~", // D Em
AF: "[g3,e4,g4,b4]@2 ~ [e4,g4,b4]!2 ~ e3@2 ~ [e3,e4]@2 ~@4 e3 ~@2 e3 ~@2 e3@2 ~, ~@3 g3@4 ~@5 [e4,g4,b4]@7 ~@5", // Em E Em
AG: "~@3 e3 f#3 ~ g3@2 ~ [g3,d4]@2 ~ [d4,g4,b4] ~@2 [d4,g4,b4]@6 g3@3, [e4,g4,b4]@5 ~@10 g3@4 ~@2 d4 ~@2", // G5 G Em
AH: "[[d4,g4,a4]@3 [d3,b4] e3 ~ [c4,e4,g4,c5]@2 ~ [c4,e4,g4,c5]@2 ~@4 [e4,g4,c5]@5 ~ [e4,g4,c5]@2 ~ [e4,g4,c5]@2 ~ [e4,g4,c5]@2 ~ [c4,e4,g4,c5]@2 ~ [c4,e4,g4,c5]@2 ~@4 [g3,d4,g4,b4]@39 ~@18, ~@5 c4@4 ~@23]/4", // Dsus4 G C G
})).s("gm_acoustic_guitar_steel").gain(0.31)
// chords · pad warm · "WARM PAD"
const pad_warm = note("<A B C B D E F G H I J K L ~@13 D M F G H I J K ~@14 D E F G H I ~@12>".pickRestart({
A: "~@2 [g4,b4,e5]@5 ~, e4@11 ~", B: "[f#4,a4,d5]@4 ~@2 [f#4,a4,d5] ~@2 [g4,b4,e5]@4 ~@2 d4 e4@2 g4@2 ~ g4@3",
C: "e4@3 [g4,b4,e5]@8 ~", D: "e4@10 ~@8 c5@5 ~, ~@15 g4@8 ~", E: "~@6 a4@3 ~@12 [g4,b4,d5] d5 [g4,b4], ~ f#4@2 ~@5",
F: "~@3 g4 ~@2 [g4,b4,e5]@6 ~@6 [g4,c5,e5]@6", // Em C
G: "~@9 d5@3 ~@3 [g4,b4,d5] ~@5 [g4,b4,d5] ~ [g4,b4,d5], ~ f#4@3 ~@4, ~ a4 ~@2", // G
H: "~@3 g4 ~@2 [g4,b4,e5]@6 ~@3 g4 ~@2 [g4,c5,e5]@5 ~", // Em C
I: "~@6 a4@4 ~@5 [g4,b4,d5] g4 [b4,d5] ~@3 [g4,b4,d5] ~@2, ~@3 f#4@7 ~@14", J: "~@2 [g4,b4,e5]@5 ~",
K: "[f#4,a4,d5]@4 ~@2 [f#4,a4,d5]@2 ~ [g4,b4,e5]@4 ~@2 d4 e4@2 g4@2 ~ g4@3", L: "e4@5 ~@19",
M: "~@6 a4@3 ~@12 [g4,b4,d5] ~ [g4,b4,d5], ~ f#4@2 ~@5", // G
})).s("gm_pad_warm").gain(0.31)
// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel_2 = note(`<
~@12 A B C@2 D E F G H ~ I J H ~@9 K@2 L@2 M@2 N O@2 ~ P Q@2 ~@7 R S@4 T@2 U@5
>`.pickRestart({
A: "~@3 g4@2 ~ g4@2 ~ g4@2 d5@12 ~", B: "~@3 d5 ~@2 d5@3 a4@15",
C: "[~@3 g4 ~@2 g4 ~@2 g4@3 d5@2 ~ d5 ~@2 d5 ~@2 d5@9 a4@17 ~]/2", D: "~@3 g4 ~@2 g4@2 ~ g4@3 d5@12",
E: "~@3 d5 ~@2 d5@3 a4@3 b4@12", F: "~@3 b4 ~@2 b4 ~@2 b4 ~@2 b4@3 a4@3 g4@3 e4@3", G: "b4@5 d5@10 b4@4 a4@2 g4@3",
H: "~@6 e4 ~@2 e4 ~@2 g4@2 ~ e4 g4@7 ~", I: "~@3 b4@2 ~ b4@2 ~ b4@2 ~ b4@3 a4@3 g4@3 e4@3",
J: "b4@5 d5@9 ~ b4@4 a4 ~ g4@3", K: "[~@3 g4@2 ~ g4@2 ~ g4@2 ~ d5@2 ~ d5 ~@2 d5@11 ~ d5@2 ~ a4 ~ a4@5 ~@2 a4@6]/2",
L: "[~@3 g4 ~@2 g4@2 ~ g4@2 d5@2 ~@2 d5 ~@2 d5 ~@2 d5@9 a4@18]/2",
M: "[~@3 g4 ~@2 g4@2 ~ g4@3 d5@17 ~ d5@3 a4@3 b4@12]/2", N: "~@3 b4@2 ~ b4@2 ~ b4@2 ~ b4@2 ~ a4@2 ~ g4@3 e4@3",
O: "[b4@5 d5@9 ~ a4@6 g4@7 ~@2 e4 ~@2 e4@2 ~ g4@2 ~ e4 g4@4 ~@4]/2",
P: "~@3 b4@2 ~ b4 ~@2 b4@2 ~ b4@2 ~ a4@2 ~ g4@3 e4@3",
Q: "[b4@5 ~ e5@3 d5@6 a4@6 g4@7 ~@2 e4@2 ~ e4@2 ~ g4@2 ~ e4 g4@5 ~@3]/2",
R: "~@3 [b4,d5,g5]@2 ~ [b4,d5,g5]@2 ~ [b4,d5,g5]@2 ~ [b4,d5,g5]@2 ~ [b4,d5,g5] ~@2 [b4,d5,g5] ~@2 [b4,g5]@3, ~@21 d5 ~@2", // G Em
S: "[[a4,f#5]@6 f#4@5 [g4,e5]@15 ~@3 [b4,d5,g5] ~@2 [b4,d5,g5] ~@2 [b4,d5,g5]@2 ~ [b4,d5,g5]@2 ~ [b4,d5,g5] ~@2 [b4,d5,g5] ~@2 [b4,g5]@3 [d5,f#5]@6 f#4@5 [g4,b4,e5]@15 ~@3 [b4,d5,g5] ~@2 [b4,d5,g5]@2 ~ [b4,d5,g5] ~@2 [b4,d5,g5] ~@2 [b4,d5,g5] ~@2 [b4,d5,g5] ~, d5@4 ~@2 d5@2 ~@3 b4@13 ~@23 d5 ~@2 a4@8 ~@38, ~@28 d5 ~@19]/4", // D C G Em D Em G
T: "[~ [b4,g5]@3 [a4,d5,f#5]@6 f#4@5 [g4,b4,e5]@15 ~@3 [b4,g5]@2 ~ [b4,d5,g5]@2 ~ [b4,d5,g5]@2 ~ [b4,d5,g5]@2 ~ [b4,d5,g5] ~@2, ~ d5 ~@8 d5@2 ~@36]/2", // Em D Em G
U: "[[b4,d5,g5] ~@2 [b4,d5,g5] ~@2 [b4,g5]@6 ~@2 [d5,b5]@2 ~ [d5,g5,b5]@5 [c5,e5,a5] [b4,d5,g5]@8 ~@7 g4@3 a4@6 g4@15 ~@3 g4@33 ~@22, ~@6 d5@4 ~@2 g5@5 ~@103]/5", // G Em G Am G
})).s("gm_acoustic_guitar_steel").gain(0.36)
// chords · harmonica
const harmonica = note("<~@4 A B C D E F ~@15 G H I J K L M ~@15 N O P Q R S T ~@12>".pickRestart({
A: "~@6 [g4,b4]@5 ~ d5@6 c5 b4@4 ~", B: "a4@6 g4@3 [d4,g4]@14 ~", C: "~@6 d5@5 ~ g5@6 ~ d5@5, ~@9 e5 ~@2",
D: "e5@2 d5 b4@4 ~", E: "~@6 b4 ~ b4 ~ b4 ~ d5 ~ d5 ~@2 d5 [b4,d5] ~ b4@2 ~ d5, ~@20 d5 ~@3",
F: "[a4,c5]@5 ~ [g4,b4]@3 [d4,g4]@13 ~@2", G: "~@18 g4@3 d5@2 ~", H: "d5@18 [g4,c5] b4@4 ~",
I: "[a4,c5]@5 g4@2 ~@2 g4@15", J: "~@6 d5@5 ~ g5@5 ~ e5 d5@4 ~", K: "e5@3 d5@3 e5@3 d5 b4@10 ~@4",
L: "[d5,g5]!2 ~@2 [g4,d5] ~ [g4,d5] ~@2 e5!2 ~@2 [g4,d5] ~ [g4,d5] ~@2 e5@3 d5@2 ~, ~@21 g4 ~@2", // G5
M: "a4@2 ~ b4@2 c5@3 ~ [g4,d5] d5@7 ~ a4 [d4,g4]@4 ~, ~@10 g4@5 ~@9", N: "~@18 g5 g5@4 ~",
O: "g5@6 e5 ~ d5@4 g5@6 e5 ~ d5@4", P: "e5@9 d5@9 b4!2 ~@4",
Q: "~@3 d5@2 ~ d5@2 ~ d5 d5@2 ~ d5 ~ d5@2 ~ d5 ~ d5@2 ~ d5", R: "c5@3 d5@2 ~ c5@3 d5 b4@7 ~ a4 g4@4 ~",
S: "~@3 g5@4 ~ [e5,g5] d5@2 ~ g5@3 d5@2 ~ e5 d5@4 ~", T: "e5@6 d5@3 b4@14 ~",
})).s("gm_harmonica").gain(0.37)
// chords · harmonica · soft notes
const harmonica_soft = note("<~@7 A B ~@16 C D E F G ~@17 H I J K L M A ~@12>".pickRestart({
A: "~@9 g4@13 ~@2", B: "~@12 b4 ~ b4 ~ b4 ~@5 b4 ~", C: "~@18 d4@2 ~ g4@3", D: "~@19 g4@3 ~@2",
E: "~@6 b4@2 ~ d4@14 ~", F: "~@6 g4@4 ~ b5@5 ~ g5@2 g5@4 ~", G: "g4@2 ~ g4@2 ~ g4@2 ~ g4 d4@10 ~@4",
H: "~@18 d5 d5@3 ~@2", I: "d5@5 ~@7 d5@6 ~@6", J: "~@9 g4@8 ~ d4!2 ~@4",
K: "~@3 g4@2 ~ g4@2 ~ g4 g4@2 ~ g4 ~ g4@2 ~ g4 ~ g4@2 ~ g4", L: "~@11 g4@7 g4 d4@3 ~@2", M: "~@3 d5@4 ~@5 d5@2 ~@10",
})).s("gm_harmonica").gain(0.19)
// other · cello
const cello = note("<~@12 A@2 B@2 C@2 ~ D@3 ~@2 E@2 ~@8 F@4 G@2 ~ D@3 ~@2 E@2 ~@6 H I@4 J@4 K@2 ~>".pickRestart({
A: "[b4 d5@3]/2", B: "[b4@12 d5@23 ~ d5@12]/2", C: "[b4@11 d5@23 ~ d5@10 ~@3]/2",
D: "[~@23 d5@22 ~@2 d5@6 ~ c5@14 ~@4]/3", E: "[d5@15 c5@5 ~@4]/2", F: "[g4@9 d5@27 c#5@9 ~@2 g4@9 d5@28 c#5@9 ~@3]/4",
G: "[g4@9 d5@27 c#5@7 ~@5]/2", H: "e5@19 ~@5", I: "[~@7 e5@16 ~]/2", J: "[~@7 e5@40 ~]/4", K: "[e5@3 d5@11 ~@2]/2",
})).s("gm_cello").gain(0.35)
// other · cello
const cello_2 = note(`<
~@12 A B A C A B ~@2 D E ~@2 F G ~@8 H I H I H J@2 ~ D E ~@2 F G ~@6 K L K M K N O@3 P@2 ~
>`.pickRestart({
A: "g4 c5", B: "a4@11 ~", C: "a4", D: "g5", E: "g5@3 g5@4 ~", F: "g5@11 ~", G: "g5@7 ~@2 g5@8 ~@7", H: "b4 g5",
I: "f#5@6 e5@5 ~", J: "[f#5@3 e5@8 ~]/2", K: "~@7 g5", L: "f#5@5 ~@3", M: "f#5@7 ~@5", N: "f#5@13 ~@11",
O: "[~@21 g5@50 ~]/3", P: "[g5@8 ~ g5@33 ~@6]/2",
})).s("gm_cello").gain(0.29)
// other · violin
const violin = note("<~@17 A@2 ~@2 B@2 ~@2 C ~@17 D@2 ~@2 C ~@14 E@3 ~>".pickRestart({
A: "[~@20 e4@25 ~@3]/2", B: "[~@6 b4@14 e5@25 ~@3]/2", C: "~@3 b4@5 ~@4", D: "[~@6 b4@13 ~ e5@25 ~@3]/2",
E: "[c5@5 a4@6 ~]/3",
})).s("gm_violin").gain(0.31)
// drums · kick
const kick = s("bd").struct("<A@3 B A@8 C@6 A@3 D A@3 E A@4 F A@3 C@6 A@3 D A@3 E A@15 E ~@2>".pickRestart({
A: "x!2 ~@2 x!2 ~@2", B: "x!2 ~@2 x ~@3", C: "x ~@3 x!2 ~@2", D: "x!2 ~ x ~ x ~@2", E: "x!2 ~ x ~@4",
F: "x ~@2 x ~@8 x ~@2 x ~ x ~@6",
})).gain(0.36)
// drums · snare
const snare = s("sd").struct("<A@3 B A@7 C D E@4 F A@7 B A@7 C E@2 F D E@2 A@7 G A@15 H ~@2>".pickRestart({
A: "~ x ~ x", B: "~@2 x ~@2 x!3", C: "~@6 x ~@11 x ~@4 x", D: "~@6 x ~@3 x ~@7 x ~@4 x", E: "~@6 x ~@4 x ~@6 x ~@4 x",
F: "~@6 x ~@4 x ~@6 x ~@3 x ~", G: "~@6 x ~@5 x ~@2 x ~@2 x ~@2 x ~ x", H: "~ x ~@2",
})).gain(0.4)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@19 A ~@3 A ~@17 A ~@3 A ~@15 A ~@4>".pickRestart({
A: "~@22 x!2",
})).gain(0.16)
// drums · hihat
const hihat = s("hh").struct("<A@3 B A@8 C@6 A@7 D A@8 C E C@4 A@7 D A@15 F ~@2>".pickRestart({
A: "x!4", B: "x ~ x ~ x!4", C: "x ~@2 x ~@2 x!2 ~ x ~@2", D: "x ~ x ~@2 x!3", E: "x ~@5 x ~@5 x!2 ~@4 x ~@5",
F: "x!2 ~@2",
})).gain(0.24)
// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<A@3 B A@21 B A@21 B A@14 C D ~@2>".pickRestart({
A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~@4", C: "~ x ~@6", D: "~@3 x ~@4",
})).gain(0.16)
// drums · open hat
const open_hat = s("oh").struct("<~@62 [~ x ~ x] [~@3 x ~@4] ~@2>").gain(0.24)
// drums · crash
const crash = s("cr").struct("<~@63 [~@3 x ~@4] ~@2>").gain(0.32)
stack(
acoustic_guitar_steel, pad_warm, acoustic_guitar_steel_2, harmonica, harmonica_soft, cello, cello_2, violin, kick,
snare, snare_soft, hihat, hihat_soft, open_hat, crash
)
More by Crosby, Stills, Nash & Young
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.