0:00/0:00
// Proud Mary — Creedence Clearwater Revival
// 133 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: ch 7 "ORGAN" named as an organ, played on drawbar organ (its guitar harmonics patch is not one)
// note: duplicate parts dropped: ch 9 "LEAD2" lead 1 square (copy of ch 8 "LEAD1" synth strings 1)
// note: Full arrangement: all 173 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): BASS/RHYTHM1.
setcpm(133/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 · pan flute · "CHORAL/BASS"
const pan_flute = note("<A@8 ~ B@4 C@4 D@4 E@4 F@4 G@4 H@4 I J@3 K@4 L M@6 ~@121>".pickRestart({
A: "[~@5 [d5,g5]@59, ~@5 b5@11 ~@48]/8", B: "[~@3 [d5,g5,b5]@35 ~@7 [d5,g5,b5]@39 ~@4 [d5,g5,b5]@35 ~@5]/4",
C: "[b5@2 [d5,g5,b5]@34 ~@9 [d5,g5,b5]@35 ~@7 [d5,g5,b5]@34 ~@7]/4", // G
D: "[~@2 [d5,g5,b5]@66 ~@8 d6@8 ~@3 [d5,f#5,a5]@35 ~@6, ~@34 g5@7 ~@23, ~@37 b5@5 ~@22]/4", // G D
E: "[~@2 [d5,f#5,a5]@39 ~@3 [e5,g5,b5]@35 ~@8 [e5,g5,b5]@34 ~@7]/4", // D Em
F: "[~ [d5,g5,b5]@35 ~@8 [d5,g5,b5]@39 ~@3 [d5,g5,b5]@35 ~@7]/4", // G
G: "[~ [d5,g5,b5]@39 ~@4 [d5,g5,b5]@35 ~@7 [d5,g5,b5]@39 ~@3]/4", // G
H: "[~ [d5,g5,b5]@35 ~@7 [d5,g5,b5]@34 ~@9 [d5,g5,b5]@35 ~@7]/4", I: "[d5,g5,b5]",
J: "[~@11 [g5,b5]@66 ~@8 d6@8 ~@3, ~@11 d5@43 ~@23 g5@14 ~@5, ~@83 b5@10 ~@3]/3", // G
K: "[[d5,f#5,a5]@35 ~@8 [d5,f#5,a5]@39 ~@3 [e5,g5,b5]@35 ~@8]/4", L: "[e5,g5,b5]",
M: "[~@10 [d5,g5,b5]@35 ~@8 [d5,g5,b5]@39 ~@3 [d5,g5,b5]@35 ~@8 [d5,g5,b5]@42 ~@12]/6", // G
})).s("gm_pan_flute").gain(0.25).pan(0.3)
// bass · string ensemble 1 · "CHORAL/BASS"
const bass = note(`<
~@52 A@5 B C D E@2 F@8 G B@7 H I J K L M@2 B G B@7 H I J K L M@2 B N@4 B@6 H I O@8 P@8 B Q R S T@3 U@4 V W X Y Z AA AB
S@6 AC AD AE AF@4 AA AG@3 AA AH AI AJ@5
>`.pickRestart({
A: "[~@21 d2@8 d2@8 d2@8 d2@8 g2@8 ~ g2@8 g2@4 e3@4 d3@8 g2@8 g2@8 ~ g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 ~ g2@8]/5",
B: "g2!4", C: "~ g2@8 g2@8 g2@8 g2@7", D: "~ g2@8 ~ g2@8 g2@8 g2@6",
E: "[~@2 g2@8 g2@8 g2@8 ~ g2@8 g2@8 g2@8 g2@8 g2@5]/2",
F: "[~@4 g2@8 g2@8 e2@4 d#2@4 d3@8 d3@8 d3@8 d3@8 ~ d3@8 d3@8 d3@8 d3@4 d#3@4 e3@8 e3@8 e3@8 e3@8 ~ e3@8 e3@8 e3@4 d#3@4 e3@4 ~@4 g2@8 g2@8 g2@4 e3@4 d3@8 ~ g2@8 g2@8 g2@4 e3@4 d3@8 g2@8 g2@8 g2@8 g2@8 ~]/8",
G: "b2!2 a2 g2 a2@2 g2 d2", H: "g2@2 g2@2 g2@2 e2 d#2", I: "d3!4", J: "d3@2 d3@2 d3@2 d3 d#3", K: "e3!4",
L: "e3@2 e3@2 e3 d#3 e3 ~", M: "g2@2 g2@2 g2 e3 d3@2",
N: "[b2 ~@6 d2@25, ~ b2@4 ~@27, ~ a2 a2@2 ~@12, ~@3 g2@3 g2@4 ~@22]/4",
O: "[d3@7 d3@8 d3@8 d3@4 d#3@4 e3@8 e3@8 e3@8 e3@8 e3@7 e3@8 e3@4 d#3@4 e3@4 ~@4 g2@8 g2@8 g2@4 e3@4 d3@8 g2@8 g2@8 g2@4 e3@4 d3@8 d2@8 d2@8 d2@8 d2@8 d2@8 d2@8 d2@8 d2@4 d#2@4 e2@8 e2@8 e2@8 e2@8 e2@2]/8",
P: "[~@6 e2@8 e2@4 d#2@4 e2@4 ~@4 g2@8 g2@8 g2@4 e3@4 d3@8 g2@8 g2@8 g2@4 e3@4 d3@8 g2@8 g2@8 g2@8 g2@8 b2@4 b2@4 a2@4 g2@4 a2@8 g2@4 d2@4 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 ~ g2@8 g2@8 g2@8 g2@8 g2@8 ~]/8",
Q: "g2@8 ~ g2@8 g2@8 g2@7", R: "~ g2@8 g2@8 g2@8 ~ g2@6", S: "~ g2@4 g2@4 g2@4 g2@3",
T: "[~@3 g2@8 g2@8 g2@8 e2@4 d#2@4 d3@8 d3@8 ~ d3@8 d3@8 d3@8 d3@8 d3@8 ~ d3@3]/3",
U: "[~ d#3@4 e3@8 e3@8 e3@8 e3@8 e3@8 ~ e3@8 e3@4 d#3@4 e3@4 ~@4 g2@8 g2@8 ~ g2@4 e3@4 d3@8 g2@8 g2@8 g2@4 e3@4 ~]/4",
V: "d3 g2!3", W: "g2@8 b2@4 ~ b2@4 a2@4 g2@4 a2@7", X: "~ g2@4 d2@4 g2@8 g2@8 g2@4 e3@3",
Y: "~ d3@8 g2@8 g2@8 g2@4 e3@3", Z: "~ d3@8 g2@8 g2@8 ~ g2@6", AA: "~ g2@4 b2@2 b2@2 a2@2 g2@2 a2@3",
AB: "~ g2@2 d2@2 g2@4 g2@4 g2@3", AC: "~ e2@2 d#2@2 d3@4 d3@4 d3@3", AD: "~ d3@4 d3@4 d3@4 d3@3",
AE: "~ d3@2 d#3@2 e3@4 e3@4 e3@3",
AF: "[~ e3@4 e3@4 e3@4 e3@2 d#3@2 e3@2 ~@2 g2@4 g2@4 g2@2 e3@2 d3@4 g2@4 g2@4 g2@2 e3@2 d3@4 g2@4 g2@4 g2@3]/4",
AG: "[~ g2@2 d2@2 g2@4 g2@4 g2@2 e3@2 d3@4 g2@4 g2@4 g2@2 e3@2 d3@4 g2@4 g2@4 g2@3]/3",
AH: "~@2 g2@4 d2@4 g2@9 g2@9 g2@4", AI: "e3@4 ~ d3@8 g2@10 g2@9",
AJ: "[~ g2@5 e3@4 d3@10 g2@10 g2@10 g2@11 g2@12 b2@6 ~ b2@6 a2@7 g2@9 a2@24 g2@35 ~@9]/5",
})).s("gm_string_ensemble_1").gain(0.46).pan(0.3)
// bass · synth bass 2 · "BASS/RHYTHM1"
const bass_2 = note("<A@8 ~ B@3 C@4 D@3 E F@2 G H I J K L M N O P Q@5 R@3 S@7 T@5 ~@121>".pickRestart({
A: "[~@19 g2@237]/8", B: "~@2 g2@11 g2@10 g2@9", C: "~@2 g2@10 g2@11 g2@9", D: "~ g2@11 g2@11 g2@9",
E: "~ g2@11 e2@5 d#2@5 ~ d2@9", F: "~ d2@11 d2@10 d2@10", G: "~ d2@5 d#2@5 ~ e2@10 e2@10", H: "~ e2@11 e2@10 e2@10",
I: "~ e2@10 e2@5 ~ d#2@5 e2@5 ~@5", J: "~ g2@10 g2@11 g2@5 e3@5", K: "~ d3@10 g2@11 g2@10",
L: "~ g2@5 e3@5 d3@11 g2@10", M: "~ g2@10 g2@11 g2@10", N: "b2@5 ~ b2@5 a2@5 g2@5 ~@11", O: "~@11 g2@11 g2@10",
P: "g2@11 g2@11 g2@10", Q: "g2@11 g2@10 g2@11", R: "g2@10 g2@11 g2@11",
S: "[g2@10 g2@11 e2@5 d#2@5 d2@11 d2@11 d2@10 d2@11 d2@11 d2@10 d2@11 d2@5 d#2@5 ~ e2@10 e2@11 e2@11 e2@10 e2@11 e2@10 e2@5 ~ d#2@5 e2@5 ~@6 g2@10 g2@11 g2]/7",
T: "[~@4 e3@5 ~ d3@10 g2@11 g2@11 g2@5 e3@5 d3@11 g2@10 g2@11 g2@11 g2@10 b2@5 ~ b2@5 a2@5 g2@27 ~@12]/5",
})).s("gm_synth_bass_2").gain(0.46).pan(0.7)
// other · pad new age · "BASS/RHYTHM1"
const pad_new_age = note("<~@126 A@5 B C D E@7 F G H I J K L M N O@3 P Q R@2 S@4 K T@3 K U V W@5>".pickRestart({
A: "[~@30 g3@8 ~@8 g3@8 [g3,b4]@8 [g3,d5]@8 [g3,d5]@8 g3@8 ~ g3@8 g3@8 g3@8 [g3,b4]@8 ~@9 g3@8 ~@8 g3@8 g3@8, ~@38 g3@8 ~@73 g3@8 ~@9 g3@8 ~@16, ~@42 b4@12 ~@69 b4@16 ~ d5@12 ~@8]/5", // G G5 G
B: "g3@8 ~ g3@8 g3@8 g3@7, ~@17 b4@15", C: "~ g3@8 g3@8 g3@8 ~ g3@6, ~@17 b4@15",
D: "~ g3@4 g3@4 [g3,b4]@4 [g3,b4]@3", // G
E: "[~@3 g3@8 ~@8 g3@8 e3@4 d#3@4 d3@8 d3@8 ~ d3@8 d3@8 d3@8 d3@8 e5@4 ~@5 d3@4 d#3@4 e3@8 e3@8 e3@8 e3@8 e3@8 ~ e3@8 e3@4 d#3@4 e3@4 ~@4 g3@8 g3@8 ~ g3@4 e4@4 d4@8 g3@8 g3@8 g3@4 e4@4 ~, ~@3 b4@12 d5@12 ~@61 e5@12 ~@124, ~@11 g3@8 ~@65 d3@8 ~@132]/7",
F: "d4 g3!3", G: "g3@8 b3@4 ~ b3@4 a3@4 g3@4 a3@7, b4@25 ~@7", H: "~ g3@4 d3@4 g3@8 g3@8 g3@4 e4@3",
I: "~ d4@8 g3@8 g3@8 g3@4 e4@3", J: "~ d4@8 g3@8 g3@8 ~ g3@6", K: "~ g3@4 b3@2 b3@2 a3@2 g3@2 a3@3, ~ b4@12 ~@3",
L: "~ g3@2 d3@2 g3@4 ~@4 g3@3, ~@9 g3@4 ~@3, ~@11 b4@5", M: "~ [g3,b4]@4 g3@4 g3@4 [g3,b4]@3",
N: "~@5 g3@4 ~@4 g3@3, ~ g3@4 ~@4 g3@4 ~@3, ~@3 b4@8 d5@5",
O: "[~ g3@4 g3@4 g3@4 g3@4 g3@4 g3@4 g3@4 g3@4 g3@4 g3@4 g3@4 [g3,b4]@3, ~@13 b4@8 ~@8 b4@8 ~@11]/3", // G
P: "~ [g3,b4]@4 g3@4 ~@4 g3@3, ~@5 b4@6 d5@5, ~@9 g3@4 ~@3", Q: "~ e3@2 d#3@2 d3@4 d3@4 d3@3",
R: "[~ d3@4 d3@4 d3@4 e5@2 ~@2 d3@2 d#3@2 e3@4 e3@4 e3@3, ~@13 d3@4 ~@15, ~@15 e5@6 ~@11]/2",
S: "[~ e3@4 e3@4 e3@4 e3@2 d#3@2 e3@2 ~@2 g3@4 g3@4 g3@2 e4@2 d4@4 g3@4 g3@4 g3@2 e4@2 d4@4 g3@4 g3@4 g3@3]/4",
T: "[~ g3@2 d3@2 g3@4 g3@4 g3@2 e4@2 d4@4 g3@4 g3@4 g3@2 e4@2 d4@4 g3@4 g3@4 g3@3]/3",
U: "~@2 g3@4 d3@4 g3@9 g3@9 g3@4", V: "e4@4 ~ d4@8 g3@10 g3@9",
W: "[~ g3@5 e4@4 d4@10 g3@10 g3@10 g3@11 g3@12 b3@6 ~ b3@6 a3@7 g3@9 a3@24 g3@35 ~@9, ~@51 b4@40 ~@69]/5",
})).s("gm_pad_new_age").gain(0.39).pan(0.7)
// chords · trombone · "RHYTHM 2/GUITAR"
const trombone = note(`<
~@54 A@4 B@3 C@4 D@6 E@2 F G H I J@2 K L M N O@2 P Q E@2 F G H I J@2 K L M N O@2 P R@3 ~@21 S@3 T G U V W@4 X Y Z AA
AB@2 AC ~@3 AD@3 AE@4 AF@2 AG@2 AH@4 AI@4 AJ ~@6
>`.pickRestart({
A: "[~@26 b4@4 d5@4 [d4,g4,b4]@6 ~@3 [d4,g4,b4]@6 ~@2 [d4,g4,b4]@16 g3@4 [d4,g4,b4]@4 g3@4 [d4,g4,b4]@3 ~@6 [d4,g4,b4]@15 ~@9 d5@4 g5@4 [d4,g4,b4] ~@3 [d4,g4,b4]@4, ~@22 g4@9 ~@73 g4@12 ~@12, ~@27 b4@2 ~@3]/4", // G
B: "[~@5 [d4,g4,b4]@10 g3@2 [d4,g4,b4]@2 g3 ~ [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4]@8 g3@4 ~ [d4,g4,b4]@2 ~@2 [d4,g4,b4]@8 g3@3 ~ [d4,g4,b4]@2 ~@2 [d4,g4,b4]@6 ~@2 [d4,g4,b4]@8 g3@2 ~@2 [d4,g4,b4]@2 ~@11 [d4,g4,b4]]/3", // G
C: "[~@3 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4] ~@3 [d4,g4,b4]@10 g3@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@6 ~@3 [d4,g4,b4]@15 ~@5 [d4,f#4,a4]@52 ~ [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~@2 e4@3]/4", // G D
D: "[~ g4@4 b4@4 [e4,g4,b4]@6 ~@2 [e4,g4,b4]@6 ~@2 [e4,g4,b4]@16 ~ e3@4 [e4,g4,b4]@4 e3@4 [e4,g4,b4]@3 ~@5 [d4,g4,b4]@45 ~@4 g4@4 b4@4 d5@4 g5@2 ~@2 [d4,g4,b4]@52 ~ [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2]/6", // Em G
E: "[~@4 b4@4 d5@3 ~ [d4,g4,b4]@6 ~@2 [d4,g4,b4]@6 ~@2 [d4,g4,b4]@16 g3@4 [d4,g4,b4]@4 g3@4 [d4,g4,b4]@3 ~@5, g4 ~@7]/2", // G
F: "[d4,g4,b4] ~@3 [d4,g4,b4]@8 g3@4 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@8 g3@3 ~", // G
G: "[d4,g4,b4] ~ [d4,g4,b4]@3 ~ [d4,g4,b4]@4 g3 ~ [d4,g4,b4] ~@3", // G
H: "~@2 [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4]@4 g3@2", // G
I: "[d4,g4,b4]@2 ~@2 [d4,g4,b4]@7 ~ [d4,g4,b4]@8 g3@4 [d4,g4,b4]@2 ~@6", // G
J: "[[d4,g4,b4]@51 ~ [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2]/2", // G
K: "~@4 [d4,f#4,a4]@11 ~ [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@12", // D
L: "~@4 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 d3 ~ [d4,f#4,a4] ~@3", // D
M: "[e4,g4,b4] ~@3 [e4,g4,b4]@8 e3@4 [e4,g4,b4]@2 ~@2 [e4,g4,b4]@8 e3@3 ~", // Em
N: "[e4,g4,b4] ~ [e4,g4,b4]@3 ~ [e4,g4,b4]@4 e3 ~ [e4,g4,b4] ~@3", // Em
O: "[~@4 [d4,g4,b4]@11 ~ [d4,g4,b4]@2 ~@2 [d4,g4,b4]@6 ~@2 [d4,g4,b4]@16 g3@4 [d4,g4,b4]@4 g3@4 [d4,g4,b4]@2 ~@6]/2", // G
P: "~@4 [d4,g4,b4]@11 ~ [d4,g4,b4]@2 ~@2 [d4,g4,b4]@12", // G
Q: "~@4 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 g3 ~ [d4,g4,b4] ~@3", // G
R: "[~ [d4,g4,b4]!5 ~ [d4,g4]@17, ~@6 [d4,g4,b4] b4@4 ~@13, ~@13 g3@8 ~@27]/3", // G G5 G
S: "[~@34 b4@4 d5@4 [d4,g4,b4]@6 ~@2 [d4,g4,b4]@6 ~@2 [d4,g4,b4]@16 g3@4 [d4,g4,b4]@5 g3@4 [d4,g4,b4]@3 ~@5 [d4,g4,b4], ~@10 g4@3 ~@19]/3", // G
T: "~@3 [d4,g4,b4]@8 g3@4 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@8 g3@3 ~@2", // G
U: "~@4 [d4,g4,b4]@2 ~@3 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@8 g3@3", // G
V: "~ [d4,g4,b4]@2 ~@2 [d4,g4,b4]@7 ~ [d4,g4,b4]@9 g3@4 [d4,g4,b4]@2 ~@4", // G
W: "[~@2 [d4,g4,b4]@52 ~ [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@6 [d4,f#4,a4]@11 ~@2 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@12 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~@3 [d4,f#4,a4]@2 d3]/4", // G D
X: "~ [d4,f#4,a4] ~@3 [e4,g4,b4] ~@3 [e4,g4,b4]@8 e3@4 [e4,g4,b4]@2 ~@2 [e4,g4,b4]@7", // D Em
Y: "~ e3@3 ~ [e4,g4,b4]@2 ~@3 [e4,g4,b4]@6 ~@2 [e4,g4,b4]@8 e3@2 ~@2 [e4,g4,b4]@2", // Em
Z: "~@10 [d4,g4,b4]@11 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@5", AA: "~@3 [d4,g4,b4]@16 g3@4 [d4,g4,b4]@4 g3@4 ~",
AB: "[[d4,g4,b4]@2 ~@10 [d4,g4,b4]@11 ~ [d4,g4,b4]@2 ~@2 [d4,g4,b4]@15 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~]/2", // G
AC: "~ [d4,g4,b4]@2 g3 ~ [d4,g4,b4] ~@26", // G
AD: "[~@14 b4@4 d5@3 ~ [d4,g4,b4]@6 ~@2 [d4,g4,b4]@6 ~@2 [d4,g4,b4]@4 [d4,g4,b4] ~@3 [d4,g4,b4]@8 g3@4 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@8 g3@3 ~ [d4,g4,b4]@2 ~@2 [d4,g4,b4]@6 ~@2 [d4,g4,b4]@8 g3@2, ~@5 g4@4 ~@39]/3", // G
AE: "[~@2 [d4,g4,b4]@2 ~@10 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@8 g3@4 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@7 ~ [d4,g4,b4]@8 g3@4 [d4,g4,b4]@2 ~@6 [d4,g4,b4]@51 ~ [d4,g4,b4]@2]/4", // G
AF: "[~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@6 [d4,f#4,a4]@11 ~ [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@14 ~@2 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2]/2", // G D
AG: "[~@2 [d4,f#4,a4]@2 d3 ~ [d4,f#4,a4] ~@3 [e4,g4,b4] ~@3 [e4,g4,b4]@8 e3@4 [e4,g4,b4]@2 ~@2 [e4,g4,b4]@8 e3@3 ~ [e4,g4,b4]@2 ~@2 [e4,g4,b4]@6 ~@2 [e4,g4,b4]@8 e3@2]/2", // D Em
AH: "[~@2 [e4,g4,b4]@2 ~@10 [d4,g4,b4]@11 ~ [d4,g4,b4]@2 ~@2 [d4,g4,b4]@6 ~@2 [d4,g4,b4]@16 g3@4 [d4,g4,b4]@4 g3@4 [d4,g4,b4]@2 ~@10 [d4,g4,b4]@11 ~ [d4,g4,b4]@2 ~@2 [d4,g4,b4]@14 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2]/4", // Em G
AI: "[~@2 [d4,g4,b4]@2 g3 ~ [d4,g4,b4] ~@7 [d4,g4,b4]@11 ~ [d4,g4,b4]@2 ~@2 [d4,g4,b4]@6 ~@2 [d4,g4,b4]@16 g3@4 [d4,g4,b4]@4 g3@4 [d4,g4,b4]@2 ~@10 [d4,g4,b4]@11 ~ [d4,g4,b4]@2 ~@2 [d4,g4,b4]@14 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2]/4", // G
AJ: "~@2 [d4,g4,b4]@2 g3 ~ [d4,g4,b4] ~@25", // G
})).s("gm_trombone").gain(0.33).pan(0.7)
// chords · reed organ · "RHYTHM2/GUITAR"
const reed_organ = note("<A@4 B@6 C D E F G H I J K@3 L@2 M@3 N O P@2 Q@3 R S@2 T@2 U V@7 W X@5 ~@121>".pickRestart({
A: "[~@19 b3@100 ~ b3@8]/4", B: "[~@8 d4@101 e4@53 b3@16 d4@14, ~@162 e4@5 ~@25]/6",
C: "~@2 e4@11 b4@5 b4@14, ~@13 g4@19", D: "~@2 d4@11 d4@10 a#4@5 b4@4, ~@23 d4@9",
E: "~@2 a#4@5 b4@5 [e4,a4]@11 g4@5 g4@4, ~@2 d4@11 ~@10 d4@9", F: "~@2 a4@5 b4@11 [g4,b4]@14, ~ e4@8 ~@7",
G: "~@12 a#4@5 ~ b4@5 a#4@5 b4@4, ~@12 d4@11 d4@9", H: "~@2 [e4,a4]@10 [d4,g4]@5 ~ b4@10 b4@4",
I: "~ [g4,b4]@11 [e4,a4]@11 [d4,g4]@9", J: "~ b4@3 b4@3 b4@5 b4@5 b4@5 ~ [e4,a4]@9, ~ g4@11 g4@11 ~@9",
K: "[~ [d4,g4]@11 a4@5 b4@11 [g4,b4]@16 ~@11 [f#4,a4]@5 [f#4,a4]@16 [f#4,a4]@5 [f#4,a4]@15, ~@3 e4@4 ~@17]/3", // G5 G F#m
L: "[~ a4@5 b4@16 f#4@5 ~ f#4@16 [g4,a#4]@10 [f#4,a4]@5 ~ [e4,g4]@4, ~ f#4@21 ~@42]/2", // Gm F#m Em
M: "[~ [f#4,a4]@5 [e4,g4]@11 [d4,g4]@11 [g3,e4]@16 ~@15 [g4,b4]@11 [g4,b4]@16 ~@10]/3", // F#m Em G5 C G
N: "~@6 [g4,b4]@11 [g4,b4]@15", O: "~@17 [g4,b4]@10 [g4,b4]@5", P: "[~ a4@5 g4@5 [e4,a4]@11 [d4,g4]@32 ~@10]/2",
Q: "[~@11 e4@5 g4@5 ~ g4@5 [d4,g4]@16 a4@5 g4@5 ~ b4@5 b4@16 d4@10 d4@11, ~@11 b3@16 ~@16 e4@11 g4@21 ~@21]/3", // G5
R: "a#4@5 b4@5 ~ a#4@5 b4@5 [e4,a4]@11, d4@11 d4@11 ~@10", // A5
S: "[g4@5 g4@5 ~ a4@5 b4@11 [g4,b4]@16 ~@10 a#4@5 ~ b4@5, d4@11 e4@16 ~@26 d4@11]/2", // G
T: "[a#4@5 b4@5 ~ [e4,a4]@10 [d4,g4]@5 b4@11 b4@5 [g4,b4]@11 [e4,a4]@11, d4@11 ~@53]/2", // A5 G5 G A5
U: "[d4,g4]@10 b4@3 b4@3 b4@5 b4@5 b4@5 ~, ~@10 g4@11 g4@11", // G5
V: "[[e4,a4]@10 [d4,g4]@11 a4@5 b4@11 [g4,b4]@16 ~@10 [f#4,a4]@5 ~ [f#4,a4]@16 [f#4,a4]@5 [f#4,a4]@16 a4@5 b4@16 f#4@5 ~ f#4@16 [g4,a#4]@10 [f#4,a4]@5 ~ [e4,g4]@5 [f#4,a4]@5 [e4,g4]@11 [d4,g4]@10 [g3,e4]@16 ~@12, ~@21 e4@16 ~@69 f#4@21 ~@97]/7", // A5 G5 G F#m Gm F#m Em F#m …
W: "~@4 [g4,b4]@11 [g4,b4]@16 ~", // G
X: "[~@15 [g4,b4]@11 [g4,b4]@16 ~@16 [g4,b4]@10 [g4,b4]@5 a4@5 ~ g4@5 [e4,a4]@11 g4@53 ~@12, ~@95 d4@32 ~@33]/5", // G A5
})).s("gm_reed_organ").gain(0.35).pan(0.2)
// chords · acoustic bass · "RHYTHM2/GUITAR"
const acoustic_bass = note(`<
~@54 A@7 B@2 C@7 D E F@2 G@4 F@2 H@2 I J G@2 K F@6 G@2 L M N O P Q R S@3 ~@2 F@4 G@2 L T@3 U@6 V@3 W X@4 Y@2 Z@3 AA@2
AB AC AD AE@4 ~ AF@7 AG@8 AH@5 AI@7
>`.pickRestart({
A: "[~@22 [d4,g4,b4]@27 g3 ~ [d4,g4,b4]@2 ~@2 [d4,g4,b4]@30 ~@3 [d4,g4,b4]@51 ~@8 g5@2 b5@2 g5 ~ [d4,g4,b4]@27 ~@2 g4@2 b4@2 [d4,g4,b4]@26 g3@2 ~ [d4,g4,b4] ~@3 [d4,g4,b4]@5, ~@139 g4@11 ~@74, ~@143 b4@8 ~@73, ~@145 d5@6 ~@73]/7", // G
B: "[~ [d4,g4,b4]@3 ~@3 [d4,g4,b4]@14 g3@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@27 ~@6 d4@3 ~]/2", // G
C: "[~@2 d5@4 ~@16 d4 ~@30 d4@3 ~ f#4@2 a4 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@2 ~@4 [e4,g4,b4]@14 e3@2 [e4,g4,b4]@2 ~@3 [e4,g4,b4]@27 ~@5 [d4,g4,b4]@26 g3 ~ [d4,g4,b4]@2 ~@3 [d4,g4,b4]@30 ~@2 [d4,g4,b4]@5 ~ [d4,g4,b4]@2 ~@4 [d4,g4,b4]@14 g3@2 [d4,g4,b4]@2 ~@3, f#4@25 d4@25 ~@174, ~@2 a4 ~@3 a4@20 ~ f#4@29 ~@168, ~@10 d5@17 ~@2 [a4,d5]@28 ~@167]/7", // Em G D5
D: "[d4,g4,b4]@27 ~@5", E: "[d4,g4,b4]@26 g3@2 [d4,g4,b4] ~@3",
F: "[g4@3 ~@3 g5@4 ~@16 g4 ~@29 g4@3 ~ b4@2 d5 ~, ~@4 b4@24 g4@25 ~@11, ~@6 d5 ~@3 d5@20 b4@28 ~@6, ~@7 g5@8 ~ [d5,g5]@14 ~@2]/2", // G5
G: "[[d4,g4,b4]@50 ~@8 g5@2 b5@2 g5 ~, ~@50 g4@11 ~@3, ~@27 b4@4 ~, ~@28 d5@3 ~]/2", // G
H: "[d4@3 ~@3 d5@4 ~@16 d4 ~@29 d4@3 ~ f#4@2 a4 ~, ~@4 f#4@24 d4@25 ~@11, ~@6 a4 ~@3 a4@20 f#4@28 ~@6, ~@7 d5@8 ~ [a4,d5]@14 ~@2]/2", // D5
I: "[e4,g4,b4]@26 e3 ~ [e4,g4,b4]@2 ~@2", J: "[e4,g4,b4]@15 ~",
K: "g4@3 ~@3 g5@4 ~@16 g4 ~@3 b4@2, ~ b4@6 g4, ~@6 d5 ~@3 d5@20 ~@2, ~@7 g5@8 ~", L: "[d4,f#4,a4]@13 ~ d4 f#4",
M: "[d4,f#4,a4]@26 d3@2 [d4,f#4,a4] ~@3", N: "[e4,g4,b4]@13 ~ e4 g4", O: "[e4,g4,b4]@26 e3@2 [e4,g4,b4] ~@3",
P: "[d4,g4,b4]@5 ~ [d4,g4,b4]@2 ~@4 [d4,g4,b4]@14 g3@2 [d4,g4,b4]@2 ~@2", Q: "[d4,g4,b4]@13 ~@3",
R: "[d4,g4,b4]@13 ~ g4 b4", // G
S: "[~@3 d5@2 ~@8 g4 ~ b4@33, g4@4 ~@3 g4@4 ~@13, ~ b4@4 ~@19, ~@3 g5@4 g5@8 ~@33, ~@5 d5@8 ~@35]/3",
T: "[[d4,f#4,a4]@25 d3@2 [d4,f#4,a4] ~@3 [e4,g4,b4]@26 ~@2 e4@2 g4@2 [e4,g4,b4]@25 e3@2 [e4,g4,b4] ~@3 [d4,g4,b4]@2]/3", // D Em G
U: "[~@4 [d4,g4,b4]@2 ~@4 [d4,g4,b4]@14 g3@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@26 ~@6 [d4,f#4,a4]@26 ~@2 d4@2 f#4@2 [d4,f#4,a4]@26 d3@2 [d4,f#4,a4] ~@3 [e4,g4,b4]@26 ~@2 e4@2 g4@2 [e4,g4,b4]@26 e3@2 [e4,g4,b4] ~@3 [d4,g4,b4]@2]/6", // G D Em G
V: "[~@2 [d4,g4,b4] ~@2 [d4,g4,b4]@7 g3 [d4,g4,b4] ~ [d4,g4,b4]@13 ~@3 [d4,g4,b4]@13 ~ g4 b4 g4]/3", // G
W: "~@4 g5@4 ~@16 g4 ~@3 b4@2 g4@2, ~ b4@12 g4@2 ~, ~@4 d5 ~@3 d5@20 ~@4, ~@3 g5@4 ~",
X: "[~@4 g5@4 ~@16 g4 ~@30 g4@3 ~ b4@2 d5 ~ g4@3 ~@3 g5@4 ~@16 g4 ~@30 g4@3 ~ b4@2 d5 ~, ~@2 b4@24 g4@25 ~@26 g5@17 ~@2 [d5,g5]@28 ~@4, ~@4 d5 ~@3 d5@20 b4@29 ~@10 b4@24 g4@25 ~@12, ~@12 g5@17 ~ [d5,g5]@28 ~@11 d5 ~@3 d5@20 ~ b4@29 ~@5]/4", // G5
Y: "[g4@3 ~@3 g5@5 ~@16 g4 ~@30 g4@3 ~ b4@2, ~@4 b4@25 g4@25 ~@10, ~@6 d5 ~@4 d5@20 b4@29 ~@4, ~@15 g5@17 ~ [d5,g5]@28 ~@3]/2", // G5
Z: "[d5 ~ [d4,g4,b4]@51 ~@8 g5@2 b5@2 g5 ~ [d4,f#4,a4]@27 ~@2, ~@53 g4@11 ~@32, ~@57 b4@8 ~@31, ~@59 d5@6 ~@31]/3", // G D
AA: "[d4@2 f#4@2 [d4,f#4,a4]@26 ~ d3@2 [d4,f#4,a4] ~@3 [e4,g4,b4]@27]/2", AB: "~ e4@2 g4@2 ~ [e4,g4,b4]@26",
AC: "e3@2 [e4,g4,b4] ~@3 [d4,g4,b4]@5 ~ [d4,g4,b4]@3 ~@4 [d4,g4,b4]@13", AD: "~ g3@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@25",
AE: "[~@8 [d4,g4,b4]@27 ~ g4@2 b4@2 g4@3 ~@4 g5@4 ~@16 g4 ~@29 g4@3 ~ b4@2 d5 ~@24, ~@45 b4@24 g4@25 ~@34, ~@47 d5 ~@3 d5@20 b4@29 ~@28, ~@55 g5@17 ~ [d5,g5]@28 ~@27]/4", // G G5
AF: "[~@10 g4@3 ~@3 g5@4 ~@16 g4 ~@29 g4@3 ~ b4@2 d5 ~ g4@21 ~@3 g4@3 ~ b4@2 d5 ~ g4@3 ~@3 g5@4 ~@16 g4 ~@29 g4@3 ~ b4@2 d5 ~ [d4,g4,b4]@50 g4@4, ~@14 b4@24 g4@25 ~@57 g5@14 g4@25 ~@65, ~@16 d5 ~@3 d5@20 b4@28 ~@6 [b4,d5,g5]@28 ~@8 b4@25 ~ b4@28 ~@60, ~@24 g5@17 ~ [d5,g5]@28 ~@42 d5 ~@3 d5@20 ~@2 [d5,g5]@28 ~@58]/7", // G G5
AG: "[~@4 g5@2 b5@2 g5 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@2 ~@4 [d4,g4,b4]@14 g3@2 [d4,g4,b4]@2 ~@2 [d4,f#4,a4]@26 ~@2 d4@2 f#4@2 [d4,f#4,a4]@26 d3@2 [d4,f#4,a4] ~@3 [e4,g4,b4]@26 ~@2 e4@2 g4@2 [e4,g4,b4]@26 e3@2 [e4,g4,b4] ~@3 [d4,g4,b4]@5 ~ [d4,g4,b4]@2 ~@4 [d4,g4,b4]@14 g3@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@26 ~@6 [d4,g4,b4]@22, b4 ~@31, ~ d5@3 ~@124]/8", // G D Em G
AH: "[~@6 g4@2 b4@2 [d4,g4,b4]@26 g3@2 [d4,g4,b4] ~@3 [d4,g4,b4]@26 ~@2 g4@2 b4@2 [d4,g4,b4]@26 ~@6 [d4,g4,b4]@26 ~@2 g4@2 b4@2 [d4,g4,b4]@22]/5", // G
AI: "[~@4 g3@2 [d4,g4,b4] ~@3 [d4,g4,b4]@29 ~@2 g4@2 b4@2 [d4,g4,b4]@32 ~@7 [d4,g4,b4]@35 ~@2 g4@3 b4@3 [d4,g4,b4]@79 ~@18]/7", // G
})).s("gm_acoustic_bass").gain(0.38).pan(0.2)
// other · drawbar organ · "ORGAN"
const drawbar_organ = note(`<
A ~@106 B C D E F G H I@8 J@5 K@4 L M N O@7 P Q R S T U V W X Y@3 Z AA AB@2 AC@4 U AD@3 U AE AF AG@5
>`.pickRestart({
A: "~@19 c4@2 ~@11", B: "g4!2 [g4,b5]!2", C: "g4 ~ g4!2, b5@3 d6@3 ~@2, ~ g4 ~@2", D: "g4!2 [g4,b5] g4, ~@6 b5 ~",
E: "g4 [g4,d6] [g4,b5]!2", F: "[g4,d6]!2 [g4,b5]!2", G: "g4@2 ~@2 g4@2 e4 d#4, b5@3 d6@3 ~@2, ~ g4 ~@2", H: "d4!4",
I: "[d4@7 d4@8 e6@4 ~@4 d4@4 d#4@4 e4@8 e4@8 e4@8 e4@8 e4@7 e4@8 e4@4 d#4@4 e4@4 ~@4 g4@8 g4@8 g4@4 e5@4 d5@8 g4@8 g4@8 g4@4 e5@4 d5@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 e6@4 ~@4 d4@4 d#4@4 e4@8 e4@8 e4@8 e4@8 e4@2, ~@15 d4@8 ~@183 d4@8 ~@42, ~@19 e6@12 ~@179 e6@12 ~@34]/8",
J: "[~@3 e4@4 e4@2 d#4@2 e4@2 ~@2 g4@4 g4@4 g4@2 e5@2 d5@4 g4@4 g4@4 g4@2 e5@2 d5@4 g4@4 g4@4 g4@4 g4@4 b4@2 b4@2 a4@2 g4@2 a4@4 g4@2 d4@2 g4, ~@59 b5@12 ~@9]/5",
K: "[~@14 g4@8 [g4,b5]@8 [g4,d6]@8 [g4,d6]@8 g4@8 ~ g4@8 g4@8 g4@8 [g4,b5]@8 ~@9 g4@8 ~@8 g4@8 g4@8, ~@6 g4@8 ~@73 g4@8 ~@9 g4@8 ~@16, ~@10 b5@12 ~@69 b5@16 ~ d6@12 ~@8]/4", // G G5 G
L: "g4@8 ~ g4@8 g4@8 g4@7, ~@17 b5@15", M: "~ g4@8 g4@8 g4@8 ~ g4@6, ~@17 b5@15",
N: "~ g4@4 g4@4 [g4,b5]@4 [g4,b5]@3", // G
O: "[~@3 g4@8 ~@8 g4@8 e4@4 d#4@4 d4@8 d4@8 ~ d4@8 d4@8 d4@8 d4@8 e6@4 ~@5 d4@4 d#4@4 e4@8 e4@8 e4@8 e4@8 e4@8 ~ e4@8 e4@4 d#4@4 e4@4 ~@4 g4@8 g4@8 ~ g4@4 e5@4 d5@8 g4@8 g4@8 g4@4 e5@4 ~, ~@3 b5@12 d6@12 ~@61 e6@12 ~@124, ~@11 g4@8 ~@65 d4@8 ~@132]/7",
P: "d5 g4!3", Q: "g4@8 b4@4 ~ b4@4 a4@4 g4@4 a4@7, b5@25 ~@7", R: "~ g4@4 d4@4 g4@8 g4@8 g4@4 e5@3",
S: "~ d5@8 g4@8 g4@8 g4@4 e5@3", T: "~ d5@8 g4@8 g4@8 ~ g4@6", U: "~ g4@4 b4@2 b4@2 a4@2 g4@2 a4@3, ~ b5@12 ~@3",
V: "~ g4@2 d4@2 g4@4 ~@4 g4@3, ~@9 g4@4 ~@3, ~@11 b5@5", W: "~ [g4,b5]@4 g4@4 g4@4 [g4,b5]@3",
X: "~@5 g4@4 ~@4 g4@3, ~ g4@4 ~@4 g4@4 ~@3, ~@3 b5@8 d6@5",
Y: "[~ g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 [g4,b5]@3, ~@13 b5@8 ~@8 b5@8 ~@11]/3", // G
Z: "~ [g4,b5]@4 g4@4 ~@4 g4@3, ~@5 b5@6 d6@5, ~@9 g4@4 ~@3", AA: "~ e4@2 d#4@2 d4@4 d4@4 d4@3",
// … 372 more lines
More by Creedence Clearwater Revival
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.