0:00/0:00
// Yellow River — CHRISTIE,TONY
// 123 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 87 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(123/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, A@4 for four bars: edit a riff to change every repeat.
// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
A B C D E F G F G H I J K F L F L H M J E K F N E K F O P O Q R P S K T G F G H M J K T L T L H M J U V W N E X T O P
O H Y P Z E K T N E AA T N A AB C D E AC AD AE E AF Y AG AH AI ~
>`.pickRestart({
A: "d2@13 ~@3", B: "d2@11 ~ a1@2 b1@2", C: "d2@3 ~ d2@3 ~ d2@3 ~ a1@2 b1@2", D: "d2 ~ d2@3 ~ d2@3 ~ a1@2 b1@2 c#2@2",
E: "d2@3 ~ a1@3 ~ d2@3 ~ a1@3 ~", F: "f#2@3 ~ c#2@3 ~ f#2@3 ~ c#2@3 ~", G: "b1@3 ~ f#1@3 ~ b1@3 ~ f#1@2 b1@2",
H: "e2@3 ~ b1@3 ~ e2@4 b1@4", I: "a2@3 ~ a2@4 g2 ~@3 g2@4", J: "f#2@2 ~@2 f#2@4 e2@2 ~@2 e2@3 ~",
K: "d2@3 ~ a1@3 ~ d2@4 a1@2 d2@2", L: "b1@3 ~ f#1@4 b1@3 ~ f#1@2 b1@2", M: "a2 ~ a2@2 g2 ~ g2@2",
N: "a2@2 f#3 e3@2 c#3 b2 a2", O: "a1@2 ~@2 e1@3 ~ a1@4 e1@2 a1@2", P: "b1@3 ~ f#1@3 ~ b1@3 ~ f#1@3 ~",
Q: "e2@4 b1@3 ~ e2@4 b1@3 ~", R: "a1@3 ~ e1@3 ~ a1@4 e1@2 a1@2", S: "b1@3 ~ f#2@4 g1@4 a1@4",
T: "f#2@3 ~ c#2@3 ~ f#2@3 ~ c#2@2 f#2@2", U: "d2@3 ~ a1@2 ~@2 d2@3 ~ a1@2 a1@2",
V: "d2@3 ~ a1@3 ~ d2 ~ d2 ~ d2@2 e2@2", W: "f#2@3 ~ c#2@2 ~@2 f#2@3 ~ c#2@2 f#2 ~",
X: "d2@3 ~ a1@3 ~ d2@3 ~ a1@2 d2@2", Y: "a1@2 ~@2 e1@2 ~@2 a1@3 ~ e1@4", Z: "b1@4 f#2@3 ~ g2@3 ~ a2@3 ~",
AA: "d2@3 ~ a1@2 ~@2 d2@3 ~ a1 ~ d2 ~", AB: "d2@9 ~@3 a1@2 b1@2", AC: "d2@4 a1@4 d2 ~ d2@2 e2@2 f#2@2",
AD: "g2@3 ~ d2@3 ~ g2@4 d2@3 ~", AE: "g2@3 ~ d2@4 g2 ~ g2@2 f#2@2 e2@2", AF: "d2@2 a1@2 d2@2 c#2 b1",
AG: "g1 b1 d2 e2", AH: "d2 f#2 ~ g1, ~@4 g2@3 ~", AI: "d2@3 ~",
})).s("gm_electric_bass_finger").gain(0.4)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
~@4 A@4 B@8 C D@3 E@8 F G@3 H@2 I@5 J@8 K@3 L@2 M@2 L@2 M@2 F G@3 H@2 N@8 ~@4 L@2 O@2 P@3 Q R@2 ~
>`.pickRestart({
A: "[d5 c#5 [b4,d5] [a4,c#5], f#5, a4@31 ~@33]/4", // Bm A
B: "[d5@15 ~ g4@15 ~ c#5@32 d5@16 c#5@15 ~ [b4,d5]@16 [a4,c#5]@16, b4@30 ~@2 a4@63 ~@33, ~@15 e5@48 ~ f#5@64]/8", // Bm A
C: "[b4,d5]", D: "[[g4,b4]@14 ~ [a4,c#5]@31 ~@2, e5@23 ~]/3",
E: "[d5@32 ~@15 e5@17 d5@32 ~@16 e5@16, a4@127 ~, f#5@3 ~ f#5@3 ~, ~ c#5 ~ c#5]/8", F: "[b4,d5,f#5]",
G: "[[a4,c#5] [b4,d5] [a4,c#5], e5]/3", H: "[[b4,d5,f#5]@22 ~@2 [g4,b4,d5]@4 [a4,c#5,e5]@3 ~]/2",
I: "[d5 c#5 [b4,d5] [a4,c#5] [b4,d5], f#5@79 ~, a4@31 ~@49]/5", // Bm A Bm
J: "[g4@15 ~ c#5@32 d5@16 c#5@16 [b4,d5]@16 [a4,c#5]@16 [b4,d5]@16, e5@3 f#5@5, ~@16 a4@63 ~@49]/8", // Bm A Bm
K: "[g4@7 ~ [a4,c#5]@15 ~, e5@47 ~]/3", L: "[[a4,d5,f#5]@31 ~]/2", M: "[f#5 e5, [a4,c#5]@31 ~]/2",
N: "[d5@2 ~ e5, a4@63 ~, f#5@3 ~, ~ c#5]/4", O: "[[b4,d5,g5]@31 ~]/2", P: "[[d5,f#5]@2 [c#5,e5], a4@47 ~]/3",
Q: "[b4,d5,g5]@15 ~", R: "[[a4,d5,f#5]@7 ~ [b4,d5,f5]@7 ~ [a4,d5]@9 ~@7, ~@15 f#5@9 ~@8]/2",
})).s("gm_string_ensemble_1").gain(0.3).pan(0.4)
// chords · piano · "A.PIANO 1"
const piano = note(`<
A B C D E F G F G H I J K F L F L H I M N O P Q N K F R S R T U S V W X Y F Z AA AB M K X AC X L T AB M N AD AE Q N AF
X R S R T AG S AH N K X AI N AJ X AK A AL AM D N AN AO AP N AQ AR AS AT AU@2
>`.pickRestart({
A: "d4@3 ~ d4@3 ~ d4@4 a3@2 b3@2, d3@13 ~@3", B: "d4 ~ d4@3 ~ d4@3 ~ d4@2 [a2,a3]@2 [b2,b3]@2, d3@11 ~@5",
C: "[d3,d4,f#4]@3 ~ [d3,d4,f#4]@3 ~ [d3,d4,f#4]@4 [a2,a3]@2 [b2,b3]@2, ~@8 c#4 ~@7", // D A B
D: "[d3,d4,f#4] ~ [d3,d4,f#4]@3 ~ [d3,d4,f#4]@3 ~ [a2,d4,f#4]@2 [b2,a3]@2 [c#3,b3]@2", // D B7 C#7
E: "d3@2 [a3,c#4,d4,f#4] ~ a2@2 [a3,d4,f#4] ~ d3@2 [a3,d4,f#4] ~ a2@2 [a3,d4,f#4] ~", // Dmaj7 D
F: "f#3@2 [a3,c#4,f#4] ~ c#3@2 [a3,c#4,f#4] ~ f#3@2 [a3,c#4,f#4] ~ c#3@2 [a3,c#4,f#4] ~", // F#m
G: "~@2 [b3,d4,f#4] ~ f#2@2 [b3,d4,f#4] ~ b2@2 [b3,d4,f#4] ~ f#2@2 [b3,d4,f#4] ~, b2@2 ~@5 b2", // Bm
H: "e3@2 [b3,e4,g4] ~ b2@2 [b3,e4,g4] ~@3 [b3,e4,g4] ~@3 [b3,e4,g4] ~, ~@2 e3 b2", // Em
I: "a3@2 [c#4,e4,a4] ~@3 [c#4,e4,a4] ~ g3 ~ [a3,c#4,e4,g4] ~@3 [a3,c#4,e4,g4] ~, ~ a3 ~ g3", // A A7
J: "f#3@2 [a3,c#4,f#4] ~@3 [a3,c#4,f#4] ~ e3@2 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~, ~ f#3 ~ e3", // F#m A
K: "d3@2 [a3,d4,f#4] ~ a2@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~ a2@2 [a3,d4,f#4] ~, ~@4 d3@2 ~ d3", // D
L: "b2@2 [b3,d4,f#4] ~@3 [b3,d4,f#4] ~ b2@2 [b3,d4,f#4] ~ f#2@2 [b3,d4,f#4] ~, ~@2 f#2@2 ~@3 b2", // Bm
M: "f#3@2 [a3,c#4,e4,f#4] ~@3 [a3,c#4,e4,f#4] ~ e3@2 [a3,c#4,e4] ~ e3@2 [a3,c#4,e4] ~, ~ f#3 ~@2", // F#m7 A
N: "d3@2 [a3,d4,f#4] ~ a2@2 [a3,d4,f#4] ~ d3@2 [a3,d4,f#4] ~ a2@2 [a3,d4,f#4] ~", // D
O: "d3@2 [a3,c#4,d4,f#4] ~ a2@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~ a2@2 [a3,d4,f#4] ~, ~@4 d3@2 ~ d3", // Dmaj7 D
P: "f#3@2 [a3,c#4] ~@3 [a3,c#4,f#4] ~ f#3@2 [a3,c#4,f#4] ~@3 [a3,c#4,f#4] ~, ~ f#4 c#3@2 ~@2 c#3@2", // A F#m
Q: "a2@2 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~ a2 ~ [a3,c#4,e4] ~ b2@2 [c#3,e4]@2, ~@4 e2@4 ~@2 a2@2 ~@2 [a3,c#4] ~", // A C#m A
R: "a2@2 [a3,c#4,e4] ~ e2@2 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~ e2@2 [a3,c#4,e4] ~, ~@4 a2@2 ~ a2", // A
S: "b2@2 [b3,d4,f#4] ~ f#2@2 [b3,d4,f#4] ~ b2@2 [b3,d4,f#4] ~ f#2@2 [b3,d4,f#4] ~", // Bm
T: "~@2 [b3,d4,e4,g4] ~ b2@2 [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~ b2@2 [b3,d4,e4,g4] ~, e3 ~ e3 ~", // Em7
U: "a2@2 [c#4,e4,a4] ~ e2@2 [c#4,e4,a4] ~ a2@2 [c#4,e4,a4] ~ e2@2 [c#4,e4,a4] ~, ~@7 a2", // A
V: "b2@2 [b3,d4,f#4] ~@3 [b3,d4,f#4] ~ [b3,d4,g4] ~@3 [c#4,e4,a4]@2 ~@2, ~ f#3 g2 a2", // Bm G A
W: "d3@2 [a3,d4,f#4] ~ a2@2 [a3,d4,f#4]@2 d3@2 [a3,d4,f#4] ~ a2@2 [a3,d4,f#4] ~, ~@7 d3", // D
X: "f#3@2 [a3,c#4,f#4] ~ c#3@2 [a3,c#4,f#4] ~ f#3@2 [a3,c#4,f#4] ~ c#3@2 [a3,c#4,f#4] ~, ~@7 f#3", // F#m
Y: "b2@2 [b3,d4,f#4] ~ f#2@2 [b3,d4,f#4] ~ b2@2 [b3,d4,f#4] ~ f#2@2 [b3,d4,f#4] ~, ~@7 b2", // Bm
Z: "b2 ~ [b3,d4,f#4] ~ f#2@2 [b3,d4,f#4] ~ b2@2 [b3,d4,f#4] ~ f#2@2 [b3,d4,f#4] ~, ~@7 b2", // Bm
AA: "e3@2 [b3,d4,e4,g4] ~ b2@2 [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~, ~@2 e3 b2", // Em7
AB: "a3@2 [a3,c#4,e4,a4] ~ a3@2 [a3,c#4,e4,a4] ~ g3@2 [a3,c#4,e4,g4] ~@3 [a3,c#4,e4,g4] ~, ~@3 g3", // A A7
AC: "b2@2 [b3,d4,f#4] ~@3 [b3,d4,f#4] ~ b2@2 [b3,c#4,d4,f#4] ~ f#2@2 [b3,d4,f#4] ~, ~@2 f#2@2 ~@3 b2", // Bm
AD: "d3@2 [a3,d4,f#4] ~ a2@2 [a3,d4,f#4] ~ d3 ~ [d3,a3,d4,f#4] ~ d3@2 [a3,d4,f#4] ~, ~@7 e3", // D
AE: "f#3@2 [a3,c#4,f#4] ~ c#3@2 [a3,c#4,f#4] ~ f#3@2 [a3,c#4,f#4] ~ c#3@2 [f#3,a3,c#4,f#4] ~", // F#m
AF: "d3@2 [a3,d4,f#4] ~ a2@2 [a3,d4,f#4] ~ d3@2 [a3,d4,f#4] ~ a2@2 [a3,d4,f#4] ~, ~@7 d3", // D
AG: "a2@2 [c#4,e4,a4] ~ e2@2 [c#4,e4,a4] ~ a2@2 [c#4,e4,a4] ~@3 [c#4,e4,a4] ~, ~@3 e2", // A
AH: "~@2 [b3,d4,f#4] ~ f#3@2 [b3,d4,f#4] ~ [g3,b3,d4,g4]@3 ~ [c#4,e4]@3 ~, b2@4 ~@8 a3 ~@3", // Bm G C#m
AI: "a2@2 [a3,c#4,e4] ~ e2@2 [a3,c#4,e4] ~ a2 ~ [a3,c#4,e4] ~ b2@2 [a3,c#4,e4] ~, ~@5 a2 ~ c#3", // A
AJ: "d3@2 [a3,d4,f#4] ~ a2@2 [a3,d4,f#4] ~ d3@2 [a3,d4,f#4] ~ a2 ~ [d3,a3,d4,f#4] ~", // D
AK: "a2@2 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~ a2@2 [a3,c#4,e4] ~ e2@2 [a2,a3,c#4,e4] ~, ~ e2 ~@2", // A
AL: "d4 ~ d4@3 ~ d4@3 ~ d4@2 [a2,a3]@2 [b2,b3]@2, d3@9 ~@7", // A B
AM: "[d3,d4,f#4]@3 ~ [d3,d4,f#4]@3 ~ [d3,d4,f#4]@3 ~ [a2,a3]@2 [b2,b3]@2, ~@8 c#4 ~@7", // D A B
AN: "~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~ d3 ~ [a3,d4,f#4] ~ e3@2 [a3,d4,f#4] ~, d3@2 a2@2 ~ d3 ~ f#3", // D
AO: "g3@2 [b3,d4,g4] ~ d3@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~ d3@2 [b3,d4,g4] ~, ~@2 g3 ~", // G
AP: "g3@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~ g3 ~ [b3,d4,g4] ~ f#3@2 [b3,d4,g4] ~, ~@2 d3@2 ~ g3 ~ e3", // G
AQ: "~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~ c#3@2 [a3,d4,f#4] ~, d3@2 a2@2 d3@2 ~ b2", // D
AR: "a2@2 [a3,c#4,e4] ~ e2@2 [a3,c#4,e4] ~ a2@2 [a3,c#4,e4] ~ e2@2 [a3,c#4,e4] ~", // A
AS: "~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [b3,d4] ~, g2 b2 d3 e3", // G Bm
AT: "~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [b3,d4,f4] ~@3 [b3,d4,f4] ~, d3@2 f#3@2 g3@3 ~, ~@3 g2", // D Bdim
AU: "[[d4,f#4]@27 ~@5, [d3,a3]@3 ~@5]/2", // D D5
})).s("gm_piano").gain(0.35)
// other · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
A B C D E ~@5 F G ~@6 H I J@2 K L J@2 M N O P Q R S T ~@6 U V J W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO O
AP J AQ AR AS AT AU AV AW A B C AX AY AZ BA BB BC BD BE BF BG BH ~
>`.pickRestart({
A: "d4@2 ~@2 d4@2 ~@2 d4@4 a3 ~ b3 ~", B: "d4 ~ d4@3 ~ d4@3 ~ d4@2 a3@2 b3@2",
C: "[d4,f#4]@2 ~@2 [d4,f#4]@2 ~@2 [d4,f#4]@3 ~ a3@2 b3@2", // D
D: "[d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4]@3 ~ [d4,f#4]@2 a3@2 b3@2", E: "[d4,f#4] ~@7",
F: "~@2 a4 ~@3 a4@2 ~@2 g4 ~@3 g4@2, a3@5 ~@3 g3@5 ~@3", G: "~@2 f#4@2 ~@2 f#4@2 ~@2 e4@3 ~ e4 ~, f#3@4 ~@4 e3@7 ~",
H: "~@2 a4 ~@3 a3 ~@3 g4 ~@3 g4 ~, a3@3 ~ g3@2 ~@2", I: "~@2 f#4 ~@3 f#4 ~ e3@2 e4 ~@3 e4 ~, f#3 ~@3",
J: "a3@2 f#4@2 d4@2 f#4 ~ a3@2 f#4 d4 ~ f#4 d4 ~", K: "a3@2 f#4 ~ c#4 ~ f#4 ~ a3@2 f#4 c#4 ~ f#4 c#4 ~",
L: "a3 ~ e4@2 c#4@2 e4@2 a3@2 e4 c#4@2 e4 a3 ~", M: "a3@2 f#4@2 c#4 ~ f#4 ~ a3@2 f#4 c#4 ~ f#4 c#4 ~",
N: "a3 ~ e4@2 c#4@2 e4 ~ a3@2 e4 c#4 ~ e4 c#4 ~", O: "b3@2 f#4@2 d4 ~ f#4 ~ b3@2 f#4 d4 ~ f#4 d4 ~",
P: "a3@2 e4@2 c#4 ~ e4 ~ a3@2 e4 c#4@2 e4 c#4 ~", Q: "b3 ~ g4 ~ e4@2 g4 ~ g3@2 e4 b3@2 e4 g3 ~",
R: "a3@2 e4@2 c#4@2 e4 ~ a3@2 e4 c#4 ~ e4 c#4 ~", S: "b3@2 f#4 ~ d4 ~ f#4 ~ b3@2 f#4 d4 ~ f#4 d4 ~",
T: "b3@2 f#4 ~ d4 ~ f#4 ~ [b3,d4,g4] ~@3 [c#4,e4,a4] ~@3", U: "c#4@2 ~@4 c#4 ~@7 b3 ~, ~ a4@3 b3@2 ~@2, ~@5 g4@3",
V: "~@2 f#4@3 ~ f#4 ~@3 e4@3 ~ [g3,e4] ~, a3@4 ~@4 g3@5 ~@3", W: "a3 ~ f#4 ~ c#4 ~ f#4 ~ a3@2 f#4 c#4@2 f#4 c#4@2",
X: "b3@2 f#4@2 d4 ~ f#4@2 b3@2 f#4 d4@2 f#4 d4@2", Y: "~@2 f#4@2 c#4 ~ f#4 ~ a3@2 f#4 c#4 ~ f#4 c#4 ~, a3 ~@3",
Z: "b3@2 f#4@2 d4 ~ f#4 ~ b3@2 f#4 d4 ~ f#4 d4 b3", AA: "~@2 g4 ~ e4@2 g4 ~ b3@2 g4 e4@2 g4 e4@2",
AB: "~ a4 c#4@2 ~ g4 c#4@2, a3@7 ~ g3@7 ~", AC: "~@2 f#4@2 ~@2 a3@2 ~@2 f#4@2 e4@2 a3 ~, f#3@7 ~ e3@7 ~, ~ c#4 ~@2",
AD: "~@2 f#4!2 d4 ~ f#4 ~ a3@2 f#4 d4 ~ f#4 d4@2", AE: "a3@2 f#4@2 d4 ~ f#4 ~ a3@2 f#4 d4 ~ f#4 d4 a3",
AF: "a3 ~ f#4 ~ c#4 ~ f#4 ~ a3@2 f#4 c#4 ~ f#4 c#4@2",
AG: "a3@2 ~@2 c#4@2 e4@2 a3@2 a4 e4@2 ~ e4 c#4, ~@2 a4@4 ~@7 a4@2 ~",
AH: "a3@2 ~@2 a3 ~ d4@2 a3@2 f#4 ~ a3 f#4 d4@2, ~@2 f#4@4 ~@5 d4@2 ~@3",
AI: "a3@2 f#4@2 d4 ~ d4 ~ a3@2 f#4 d4 ~ f#4 d4@2", AJ: "a3@2 f#4@2 c#4@2 a3@2 f#4@2 ~ a3@2 f#4 c#4 ~, ~@5 c#4 ~@2",
AK: "~@2 a4 ~ e4@2 ~@4 a4 e4@2 a4 e4 c#4, a3@2 ~ c#4@2 ~@3, ~@8 a3@7 ~",
AL: "~@2 f#4@2 d4@2 ~@2 b4 ~@2 f#4@2 ~ b3@2, b3@4 ~@2 b3@4 ~@3 d4@2 ~",
AM: "~@2 c#4@2 e4@2 a4@2 a3@2 c#4 e4@2 c#4 a4@2, a3 ~@3", AN: "g3 ~ b3@2 e4@2 b3 ~ d4@2 b3 e4@2 g3 d4 e4",
AO: "~@2 a4 ~ e4@2 a4@2 ~@3 e4@2 a4 c#4 e4, a3@4 ~@4 a3@7 ~, ~@5 c#4 ~@2",
AP: "~@2 b4@2 f#4@2 d4 ~ [b3,g4]@2 ~@2 [c#4,a4]@2 ~@2, b3@5 ~@11", // Em F#m
AQ: "~@2 f#4@2 d4 ~ f#4@2 d4 ~ f#4 d4@2 a3 d4 f#4, a3 ~@3", AR: "~@2 f#4@2 c#4@2 a3@2 f#4@2 a3 c#4@2 a3 f#4@2",
AS: "a3@2 e4@2 c#4 ~@3 a4 ~ a3 c#4@2 e4 a4@2, ~@3 a3@2 ~@3", AT: "~@2 f#4@2 a3@2 f#4@2 d4@2 f#4 a3@2 f#4 d4@2",
AU: "a3@2 f#4@2 d4@2 f#4 ~ a3@2 f#4 d4@2 a3 d4 f#4", AV: "a3@2 f#4 ~ c#4 ~ f#4 ~ a3@2 f#4 c#4@2 a3 c#4 f#4",
AW: "~@2 a3 ~ e4 ~ a3 ~ c#4 ~ a3 a4 ~ a3 c#4 e4", AX: "[d4,f#4] ~ [d4,f#4]@2 ~@2 [d4,f#4]@3 ~@3 a3@2 b3 ~",
AY: "~@2 [f#4,a4]@2 ~@2 [e4,g4] ~ [d4,f#4]@5 ~@3", AZ: "~@2 [f#4,a4] ~@3 [e4,g4] ~ [d4,f#4]@5 ~@3",
BA: "~ b4 g4 d4 a4 g4 d4 b4 g4 d4 a4 g4 d4 b4 g4 d4", BB: "~@2 b4 g4 d4 a4 g4 d4 b4 g4 d4 a4 g4 d4 ~@2",
BC: "~@2 a4 d4 ~ f#4 d4 ~ e4@2 d4 f#4@2 a3 b3 ~", BD: "~@2 f#4 e4 ~ d4 e4 ~ d4 e4 d4 f#4@2 a4@2 ~",
BE: "~@2 c#4 e4 a4 c#4 e4 a4 ~ c#4 e4@2 a4 ~@3", BF: "~@2 d4 e4 b4 d4 e4 b4 ~ d4 e4@2 a4@2 e4 ~",
BG: "d4 ~ d5 b4@2 a4 f#4 ~ f4 ~ e4 ~ d4@2 b3 ~", BH: "[d4,f#4]@5 ~@3",
})).s("gm_electric_guitar_clean").gain(0.3).pan(0.4)
// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
A B C D E@2 F G F H I J K G F G F H I L K E@2 M K@2 G M F M N O F P Q G F G F N R L K G S G F N R L K@2 G M K@2 G M F
M N O F T K@2 G M K@2 G M A B U D K@2 V@2 K@2 M W X Y@2
>`.pickRestart({
A: "d4@3 ~ d4@3 ~ d4@3 ~ a3@2 b3@2", B: "d4 ~ d4@3 ~ d4@3 ~ d4@2 a3@2 b3@2",
C: "[d4,f#4]@3 ~ [d4,f#4]@3 ~ [d4,f#4]@4 a3@2 b3@2, ~@8 c#4 ~@7", // D
D: "[d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4]@2 ~@2 [d4,f#4]@2 a3@2 b3@2", // D
E: "[~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [a3,c#4,f#4] ~@3 [a3,c#4,f#4] ~@3 [a3,c#4,f#4] ~@3 [a3,c#4,f#4] ~, ~ c#4@8 ~@7]/2", // D F#m
F: "~@2 [b3,d4,f#4] ~@3 [b3,d4,f#4] ~@3 [b3,d4,f#4] ~@3 [b3,d4,f#4] ~", // Bm
G: "~@2 [a3,c#4,f#4] ~@3 [a3,c#4,f#4] ~@3 [a3,c#4,f#4] ~@3 [a3,c#4,f#4] ~", // F#m
H: "~@2 [b3,e4,g4] ~@3 [b3,e4,g4] ~@3 [b3,e4,g4] ~@3 [b3,e4,g4] ~", // Em
I: "~@2 [c#4,e4,a4] ~@3 [c#4,e4,a4] ~@3 [a3,c#4,e4,g4] ~@3 [a3,c#4,e4,g4] ~", // A A7
J: "~@2 [a3,c#4,f#4] ~@3 [a3,c#4,f#4] ~@3 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~", // F#m A
K: "~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~", // D
L: "~@2 [a3,c#4,e4,f#4] ~@3 [a3,c#4,e4,f#4] ~@3 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~", // F#m7 A
M: "~@2 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~", // A
N: "~@2 [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~", // Em7
O: "~@2 [c#4,e4,a4] ~@3 [c#4,e4,a4] ~@3 [c#4,e4,a4] ~@3 [c#4,e4,a4] ~", // A
P: "~@2 [b3,d4,f#4] ~@3 [b3,d4,f#4] ~ [b3,d4,g4] ~@3 [c#4,e4,a4]@2 ~@2", // Bm G A
Q: "~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~", // D
R: "~@2 [a3,c#4,e4,a4] ~@3 [a3,c#4,e4,a4] ~@3 [a3,c#4,e4,g4] ~@3 [a3,c#4,e4,g4] ~", // A A7
S: "~@2 [b3,d4,f#4] ~@3 [b3,d4,f#4] ~@3 [b3,c#4,d4,f#4] ~@3 [b3,d4,f#4] ~", // Bm
T: "~@2 [b3,d4,f#4] ~@3 [b3,d4,f#4] ~ [b3,d4,g4]@3 ~ [a3,c#4,e4]@3 ~", // Bm G A
U: "[d4,f#4]@3 ~ [d4,f#4]@2 ~@2 [d4,f#4]@3 ~ a3@2 b3@2, ~@8 c#4 ~@7", // D
V: "~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~", // G
W: "~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [b3,d4] ~", // G Bm
X: "~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [b3,d4,f4] ~@3 [b3,d4,f4] ~", Y: "[[a3,d4]@13 ~@19, f#4@27 ~@5]/2",
})).s("gm_acoustic_guitar_steel").gain(0.2).pan(0.7)
// drums · kick
const kick = s("bd").struct("<x!4 [x!2]!29 [x ~ x!2] [x!2]!38 x!4 [x!2]!9 x ~>").gain(0.4)
// drums · snare
const snare = s("sd").struct(`<
~ A B C D@7 E D@7 F D@7 G D@5 H D@7 G D@7 G D@7 G D@5 I D@7 G ~ A B J D@8 G ~@2
>`.pickRestart({
A: "~@8 x ~ x ~ x!3 ~", B: "x!4", C: "x ~@3 x ~ x!3 ~ x ~ x!3 ~", D: "~ x ~ x", E: "~@4 x ~@7 x!3 ~",
F: "~@4 x ~@7 x!4", G: "~@4 x ~@7 x ~ x!2", H: "~@4 x ~@3 x ~ x!3 ~ x ~", I: "~@4 x ~@5 x!3 ~ x ~",
J: "x ~@3 x ~@3 x ~ x!3 ~ x ~",
})).gain(0.4)
// drums · hihat
const hihat = s("hh").struct("<A@2 B@2 C@68 A@2 B D C@9 A ~>".pickRestart({
A: "x", B: "x!4", C: "x!8", D: "x ~ x ~ x ~ x!2",
})).gain(0.25)
// drums · crash
const crash = s("cr").struct(`<
A@5 ~@7 A ~@7 A ~@3 A ~@8 B A ~@7 A ~@7 A ~@3 A ~@3 A ~@4 B A ~@7 A@5 ~@8 A ~
>`.pickRestart({
A: "x", B: "~@3 x",
})).gain(0.3)
stack(bass, string_ensemble_1, piano, electric_guitar_clean, acoustic_guitar_steel, kick, snare, hihat, crash)
More by CHRISTIE,TONY
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.