0:00/0:00
// Travelin' Band — Creedence Clearwater Revival
// 160 bpm, 4/4, key F# 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: duplicate parts dropped: ch 3 "tk3" piano (copy of ch 1 "tk1" piano)
// note: Full arrangement: all 87 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(160/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 · "tk1" · C#5
const piano = note("<[[c#3,g#3]!2 ~@6] ~@86>").s("gm_piano").gain(0.4)
// chords · electric guitar muted · "tk1"
const electric_guitar_muted = note(`<
A B C@2 D@2 E@2 F@2 G@2 H@3 I J@2 K@2 L@2 M@2 N@3 O P@2 Q K R@2 S@2 T@2 U@2 V W X Y Z AA AB AC AD J AE AF AG@3 AH AI@3
AJ AK AL AM AN AO AP AQ AR AS AT AU@2 Z B AV AW AX AY AZ@2 BA BB@2 BC@3 ~
>`.pickRestart({
A: "~@3 [c#3,g#3]!2 [c#3,a#3] ~ [a#2,f3]", B: "[b2,f#3]!2 [b2,g#3] [b2,f#3]!3 [b2,g#3] ~",
C: "[c#3@2 c#3@2 d#3@2 c#3@2 [f#2,c#3]@2 [f#2,d#3]@2 ~@2 [f#2,c#3]@4 [f#2,c#3]@2 d#3 ~ c#3@2 f#2@2 [f#2,c#3]@2 [f#2,d#3]@2 [f#2,c#3]@2, f#2!2 ~@3 f#2 ~@2]/2", // F#5 D#m F#5 D#m F#5
D: "[f#2,c#3,f#3]@3 ~@13", E: "[f#2,c#3,f#3] ~@7",
F: "[[b2,f#3]!2 [b2,g#3] [b2,f#3]!2 [b2,g#3] ~ f#3@2 f#3 [b2,g#3] [b2,f#3]!2 [b2,g#3] ~ [f#2,c#3], ~@7 b2@3 ~@6]/2", // B5 E B5 E B5 E F#5
G: "[f#2@2 [f#2,c#3]@2 f#2@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,d#3]@2 c#3@2 [f#2,c#3]@4 c#3@2 d#3 ~ [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,d#3]@2 f#2 ~, ~@9 f#2@2 ~@5]/2", // F#5 D#m F#5 D#m
H: "[[c#3,g#3]!2 [c#3,a#3] [c#3,g#3]!2 [c#3,a#3] ~ [b2,f#3]@2 [b2,f#3] [b2,g#3] [b2,f#3]!2 [b2,g#3] ~ [c#3,g#3]@2 c#3 [c#3,a#3] c#3 [c#3,g#3]!2 [c#3,a#3] ~]/3", // C#5 F# C#5 F# B5 E B5 E …
I: "c#3@2 c#3@2 [f#2,d#3]@2 [f#2,c#3]@4 f#2@2 [f#2,c#3]@2 f#2 ~, f#2 ~@3", J: "[f#2,c#3,f#3]@15 ~",
K: "[f#2,c#3,f#3]@7 ~", // F#5
L: "[[b2,f#3]!2 [b2,g#3] ~ [b2,f#3] g#3 b2 [b2,f#3]@2 [b2,f#3] [b2,g#3] [b2,f#3]!2 [b2,g#3] ~ [f#2,c#3]]/2", // B5 E B5 E B5 E F#5
M: "[f#2 ~ [f#2,c#3]@2 [f#2,d#3,g#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,d#3]@2 c#3 ~ [f#2,c#3]@4 [f#2,c#3]@2 [f#2,d#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,d#3]@2 ~@2]/2", // F#5 G#7 F#5 D#m F#5 D#m F#5 D#m
N: "[[c#3,g#3]!2 [c#3,a#3] [c#3,g#3]!2 [c#3,a#3] ~ b2@2 [b2,f#3] [b2,g#3] [b2,f#3]!2 [b2,g#3] ~ [c#3,g#3]@2 [c#3,g#3] [c#3,a#3] c#3!2 [c#3,a#3] [c#3,g#3] e2, ~@7 f#3 ~@16]/3", // C#5 F# C#5 F# B5 E B5 E …
O: "[f#2,c#3] ~ [c#3,f3] [f3,b3,c#4]@2 [f3,b3,c#4] [c#3,f3,b3,c#4] ~, ~@3 c#3@3 ~@2", P: "[f#2,c#3,f#3]",
Q: "[f#2,c#3], f#3@7 ~", // F#5
R: "[[b2,f#3]!2 [b2,g#3] [b2,f#3]!2 [b2,g#3] ~ [b2,f#3]@2 [b2,f#3] [b2,g#3] [b2,f#3] f#3 [b2,f#3] [b2,g#3] ~]/2", // B5 E B5 E B5 E B5 E
S: "[[f#2,c#3]@2 [f#2,c#3]@2 [f#2,d#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,d#3]@2 f#2 ~ [f#2,c#3]@4 [f#2,c#3]@2 [f#2,d#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 f#2@2 [f#2,d#3]@2 ~@2]/2", // F#5 D#m F#5 D#m F#5 D#m F#5 D#m
T: "[[c#3,g#3]!2 [c#3,a#3] [c#3,g#3]!2 [c#3,a#3] ~ b2@2 b2 [b2,g#3] f#3 b2!2 [b2,g#3] ~, ~@7 f#3@3 ~@6]/2", // C#5 F# C#5 F# E
U: "[[c#3,g#3]@2 c#3@2 [c#3,a#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,a#3]@2 c#3 ~ f#2@4 f#2@2 [f#2,d#3]@2 f#2@2 [f#2,c#3]@2 f#2@2 ~@4, ~@7 c#3@3 ~@6]/2", // C#5 F# C#5 F# D#m F#5
V: "[b2,f#3] b2 [b2,g#3] b2!2 f#3 [b2,g#3] [b2,f#3], ~@3 f#3@2 ~@3", // B5 E B5
W: "[b2,f#3]@2 [b2,f#3]@2 [b2,g#3]@2 b2@2 b2@2 b2@2 [b2,g#3]@2 [b2,f#3] ~, ~@3 f#3@3 ~@2", // B5 E B5
X: "[f#2,c#3]!2 [f#2,d#3] [f#2,c#3] f#2 [f#2,c#3] [f#2,d#3] [f#2,c#3]", // F#5 D#m F#5 D#m F#5
Y: "[f#2,c#3]@2 [f#2,c#3]@2 [f#2,d#3]@2 c#3@2 c#3@2 f#2@2 [f#2,d#3]@2 [f#2,c#3] ~, ~@3 f#2@2 ~@3", // F#5 D#m F#5
Z: "[b2,f#3]!2 [b2,g#3] [b2,f#3]!3 [b2,g#3] [b2,f#3]", // B5 E B5 E B5
AA: "[b2,f#3]@2 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@2 b2@2 b2@2 [b2,g#3]@2 [b2,f#3] ~, ~@2 f#3 ~", // B5 E B5 E B5
AB: "[c#3,g#3]!2 [c#3,a#3] c#3!2 [c#3,g#3] [c#3,a#3] [c#3,g#3], ~@3 g#3@2 ~@3", // C#5 F# C#5 F# C#5
AC: "[c#3,g#3]@2 [c#3,g#3]@2 [c#3,a#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,a#3]@2 c#3 ~", // C#5 F# C#5 F#
AD: "[f#2,c#3]@15 ~, f#3@13 ~@3", AE: "[f#2,c#3]@15 ~, f#3@11 ~@5", AF: "[f#2,c#3]@15 ~, f#3@5 ~@3",
AG: "[[b2,f#3]@2 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@2 b2@2 [b2,g#3]@2 ~@2 [b2,f#3]@4 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,g#3]@2 ~@2 [f#2,c#3]@4 [f#2,c#3]@2 [f#2,d#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,d#3]@2 c#3 ~ [f#2,c#3]@2]/3", // B5 E B5 E B5 E B5 E …
AH: "c#3@2 c#3@2 [f#2,d#3]@2 [f#2,c#3]@2 f#2@2 f#2@2 [f#2,d#3]@2 [f#2,c#3] ~, f#2 ~@3", // D#m F#5 D#m F#5
AI: "[[c#3,g#3]@2 [c#3,g#3]@2 [c#3,a#3]@2 c#3@2 c#3@2 [c#3,a#3]@2 ~@2 [b2,f#3]@4 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,g#3]@2 f#3 ~ [c#3,g#3]@4 [c#3,g#3]@2 [c#3,a#3]@2 [c#3,g#3]@2 c#3@2 c#3@2 [c#3,a#3]@2 ~@2, ~@3 g#3@2 ~@15 g#3@2 ~@2]/3", // C#5 F# B5 E B5 E C#5 F# …
AJ: "[f#2,c#3]!2 [f#2,d#3] [f#2,c#3]!2 [f#2,c#3]@2 [f#2,c#3]", // F#5 D#m F#5
AK: "[f#3,b3]@2 [f#3,b3]@2 ~@2 [b2,b3]@4 b2@2 [f#3,b3] ~@3, b2@2 ~ f#3@3 ~@2", // B5 B B5
AL: "[b2,f#3,b3] ~@2 b2@2 b2 [b2,f#3,b3] e2, ~@3 [f#3,b3]@3 ~@2", // B5
AM: "[f#2,c#3,f#3]!2 ~ c#3@2 ~ c#3 [f#2,c#3], ~@3 f#3@5, ~@3 f#2@4 ~", // F#5
AN: "[f#2,c#3,f#3]@3 ~ [f#2,c#3,f#3]@2 c#3@4 c#3@2 [f#2,c#3,f#3] ~@3, ~@3 [f#2,f#3]@3 ~@2", // F#5 F#
AO: "[b2,f#3,b3]@3 ~ [b2,f#3]@2 [b2,f#3,b3]@10", // B5
AP: "[b2,f#3,b3]@3 ~ [b2,f#3]@2 [b2,b3]@4 b3@2 [f#3,b3]@2 ~@2, ~@3 f#3@3 ~@2, ~@5 b2@2 ~", // B5 B B5
AQ: "[g#3,c#4]@2 g#3 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4], c#3@3 ~@5", // C#5
AR: "[g#3,c#4]@4 [g#3,c#4]@2 [c#3,g#3,c#4]@4 [c#3,g#3,c#4]@4 [g3,c4] [b2,c3,f#3,b3], c#3@3 ~@5", // C#5 C5 B
AS: "[f#2,c#3]!2 [f#2,d#3] [f#2,c#3]!3 [f#2,d#3] [f#2,c#3]", // F#5 D#m F#5 D#m F#5
AT: "f#2!2 d#3 ~ c#3 [f#2,c#3] [f#2,d#3] [f#2,c#3], ~@2 f#2@3 ~@3", // F#5 D#m F#5
AU: "[[f#2,c#3]@2 [f#2,c#3]@2 d#3@2 c#3@2 [f#2,c#3]@2 [f#2,c#3]@2 d#3@2 c#3@2 c#3@2 c#3@2 d#3@2 [f#2,c#3]@4 [f#2,c#3]@2 [f#2,d#3]@2 [f#2,c#3] ~, ~@2 f#2@2 ~@2 f#2@3 f#2@2 ~@5]/2", // F#5 D#m F#5
AV: "f#2!2 [f#2,d#3] c#3!2 [f#2,c#3] [f#2,d#3] [f#2,c#3], c#3@2 ~ f#2@2 ~@3", // D#m F#5 D#m F#5
AW: "[f#2,c#3]!2 [f#2,d#3] [f#2,c#3]!3 [f#2,d#3] ~", // F#5 D#m F#5 D#m
AX: "[c#3,g#3]@2 [c#3,g#3]@2 [c#3,a#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 a#3 ~ [b2,f#3]@2", // C#5 F# C#5 B5
AY: "f#3@2 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,g#3]@2 f#3 ~", // B5 E B5 E
AZ: "[[c#3,g#3]@2 [c#3,g#3]@2 [c#3,a#3]@2 [c#3,g#3]@2 g#3@2 [c#3,g#3]@2 ~@2 [f#2,c#3]@4 [f#2,c#3]@2 [f#2,d#3]@2 [f#2,c#3]@2 f#2@2 [f#2,c#3]@2 [f#2,d#3] ~ [a#2,f3,a#3]@2]/2", // C#5 F# C#5 F#5 D#m F#5 D#m A#5
BA: "[b2,f#3,b3]!3 ~ [b2,f#3,b3]!2 ~ [a#2,f3,a#3]", // B5 A#5
BB: "[[b2,f#3,b3] [f#3,b3]!2 ~ [b2,f#3,b3]!2 ~ [c#3,g#3,c#4]@2 [c#3,g#3,c#4]!2 ~ [c#3,g#3,c#4] [c#3,g#3] [c#3,g#3,c#4] ~, ~ b2@2 ~@13]/2", // B5 C#5
BC: "[[f#2,c#3,f#3]@3 ~@5 [f#2,c#3,f#3]@39 ~]/3", // F#5
})).s("gm_electric_guitar_muted").gain(0.36)
// bass · piano · "tk2"
const bass = note("<[c#2@2 c#2 ~@13] ~@86>").s("gm_piano").gain(0.45)
// bass · fretless bass · "tk2"
const bass_2 = note(`<
A B C D E@4 F B G H I J K G L@4 F B G H I M K N E@3 O F B G H I M K P Q R S T U V W X L@4 Y Z AA AB AC AD K AE Q AF S
T AG V W X AH@3 AI AJ AK AA AB AL AD K AM AN AO AP AQ@4
>`.pickRestart({
A: "~@3 f2 g#2 a#2 ~ a#1", B: "b1 ~ b1@2 d#2@2 d#2@2 f#2@2 g#2@2 ~@2 f1@2", C: "f#1!2 a#1 f#1 c#2 d#2 ~ f1",
D: "f#1!2 a#1!2 c#2 d#2 ~@2", E: "f#1 ~@3", F: "b1 ~ b1@2 d#2@2 d#2@2 f#2@2 g#2@2 ~@2 a#1@2",
G: "f#1 ~ f#1@2 a#1@2 a#1@2 c#2@2 d#2@2 ~@2 f1@2", H: "f#1 ~ f#1@2 a#1@2 a#1@2 c#2@2 d#2@2 ~@2 c2@2",
I: "c#2 ~ c#2@2 f2@2 f2@2 g#2@2 a#2@2 ~@2 b1@2", J: "~ b1 d#2!2 f#2 g#2 ~ c2",
K: "c#2 ~ c#2@2 f2@2 f2@2 g#2@2 a#2@2 ~@2 f1@2", L: "f#1@15 ~", M: "~ b1 d#2 b1 f#2 g#2 ~ c2",
N: "f#1@3 ~ c#2@3 ~ c#2@3 ~ c#2@3 ~", O: "f#1@3 ~ g1@3 ~ g#1@3 ~ a#1@3 ~",
P: "f#1 ~ f#1@2 a#1@2 a#1@2 c#2@2 d#2@2 ~@2 c#2@2", Q: "b1 ~ b1 ~ d#2@2 d#2 ~ e2 ~ e2 ~ f2@2 f2 ~",
R: "f#2 ~ f#2 ~ g#2 ~ g#2 ~ a2@2 a2@2 a#2@2 b2 ~", S: "f#2 ~ f#2@2 a#2 ~ a#2 ~ b2@2 b2 ~ c3@2 c#3@2",
T: "f#3 ~ f#3 ~ e3@2 e3@2 d#3@2 d#3 ~ c#3@2 c#3 ~", U: "b2@2 b2 ~ a2@2 a2@2 g#2@2 g#2 ~ f#2@2 f#2 ~",
V: "b1@2 b1 ~ a1@2 a1 ~ g#1 ~ g#1 ~ f#1@2 f#1 ~", W: "c#2 ~ c#2@2 c#2@2 c#2 ~ c#2@2 c#2 ~ c#2@2 c#2 ~",
X: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2@2 c#2 ~", Y: "b1 ~ b1@2 d#2@2 d#2@2 f#2@2 g#2@3 ~ a#1@2",
Z: "b1 ~ b1@2 d#2@2 d#2@2 f#2@2 g#2@3 ~ f1@2", AA: "f#1 ~ f#1@2 a#1@2 a#1@2 c#2@2 d#2@3 ~ f1@2",
AB: "f#1 ~ f#1@2 a#1@2 a#1@2 c#2@2 d#2@3 ~ c2@2", AC: "c#2 ~ c#2@2 f2@2 f2@2 g#2@2 a#2@3 ~ b1@2",
AD: "~@2 b1@2 d#2@2 b1@2 f#2@2 g#2@3 ~ c2@2", AE: "f#1 ~ f#1@2 a#1@2 a#1@2 c#2@2 d#2@3 ~ a#1@2",
AF: "f#2 ~ f#2 ~ g#2 ~ g#2 ~ a2@2 a2@2 a#2@2 b2@2", AG: "b2 ~ b2 ~ a2@2 a2@2 g#2@2 g#2 ~ f#2@2 f#2 ~",
AH: "f#1 ~ f#1@2 a#1@2 a#1@2 c#2@2 d#2@3 ~ c#2@2", AI: "f#1 ~ f#1@2 a#1@2 a#1@2 b1@2 b1@2 c2@2 c#2@2",
AJ: "b1 ~ b1@2 d#2@2 b1@2 f#2@2 g#2@3 ~ a#1@2", AK: "b1 ~ b1@2 d#2@2 b1@2 f#2@2 g#2@3 ~ f1@2",
AL: "c#2 ~ c#2@2 f2@2 c#2@2 g#2@2 a#2@3 ~ b1@2", AM: "f#1 ~ f#1@2 a#1@2 a#1@2 c#2@2 c#2@2 d#2@2 c#2@2",
AN: "b1 ~ b1 ~ b1@2 b1 ~ b1 ~ b1 ~ b1 ~ b1 ~", AO: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1@2 b1 ~ b1 ~",
AP: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~", AQ: "[f#1@2 ~@6 f#1@43 ~@13]/4",
})).s("gm_fretless_bass").gain(0.44)
// chords · distortion guitar · "tk3"
const distortion_guitar = note(`<
A@2 B C D E F@2 G H I J K@2 L M N@3 O P Q R S T U V W X N@2 O Y Z AA AB AC AD AE AF ~@8 N@2 AG@2 AH@2 AI AJ AK@2 AL AM
~@8 AN@2 AO AP AQ AR AS AT AU@2 AV AW AX AY@2 AZ@4
>`.pickRestart({
A: "[~@6 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 c#3 ~ f#3@4 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,g#3] ~ e2@2, ~@7 b2 ~@8]/2", // C#5 B5 E B5 E
B: "[f#2,c#3]!2 [f#2,d#3] [f#2,c#3]!2 c#3 d#3 [f#2,c#3], ~@5 f#2@2 ~", // F#5 D#m F#5
C: "[f#2,c#3]@2 c#3 ~ d#3 ~ f#2@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,d#3]@2 f#2@2, ~ f#2@2 ~@5", D: "[f#2,c#3] ~@3",
E: "[f#2,c#3,f#3]@3 ~@13", F: "[f#2,c#3]@3 ~@13",
G: "f#3@2 f#3@2 [b2,g#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 g#3 ~ f#3@2, b2 ~@2 b2", // E B5
H: "[b2,f#3]@2 [b2,f#3]@2 g#3 ~ f#3@2 [b2,f#3]@2 [b2,f#3]@2 [b2,g#3] ~ e2 ~, ~ b2 ~@2", // B5 E
I: "[f#2,c#3]!2 [f#2,d#3] f#2 [f#2,c#3]!2 [f#2,d#3] [f#2,c#3]", // F#5 D#m F#5 D#m F#5
J: "c#3@2 c#3 ~ [f#2,d#3]@2 [f#2,c#3]@2 f#2@2 [f#2,c#3]@2 [f#2,d#3]@2 ~@2, f#2 ~@3", // D#m F#5 D#m
K: "[[c#3,g#3]@2 c#3@2 [c#3,a#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,a#3] ~ [b2,f#3]@4 f#3 ~ g#3 ~ f#3@2 [b2,f#3]@2 [b2,f#3]@2 [b2,g#3]@2 f#3 ~, ~@9 b2@3 ~@4]/2", // C#5 F# C#5 F# B5 E
L: "[c#3,g#3]@2 [c#3,g#3]@2 [c#3,a#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,a#3]@2 g#3 ~", // C#5 F# C#5 F#
M: "[f#2,c#3]@2 c#3@2 d#3@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 f#2 ~, ~ f#2@2 ~@5", N: "[f#2,c#3]",
O: "[f#2,c#3]@13 ~@3", P: "f#3@2 f#3@2 [b2,g#3]@2 [b2,f#3]@2 [b2,f#3]@2 f#3@2 g#3 ~ [b2,f#3]@2, b2@2 ~@3 b2@2 ~",
Q: "[b2,f#3]@2 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,g#3] ~ e2 ~", // B5 E B5 E
R: "c#3@2 c#3@2 d#3 ~ c#3@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,d#3]@2 [f#2,c#3]@2, f#2!2 ~@2", // F#5 D#m F#5
S: "[f#2,c#3]@2 c#3 ~ d#3@2 c#3@2 c#3@2 c#3 ~ d#3@2 ~@2, ~ f#2@2 f#2@2 f#2@2 ~", // F#5
T: "c#3@2 [c#3,g#3]@2 [c#3,a#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,a#3] ~ [b2,f#3]@2", // C#5 F# C#5 F# B5
U: "b2@2 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3] ~", // B5 E B5 E B5
V: "g#3!2 [c#3,a#3] [c#3,g#3]!3 [c#3,a#3] ~, c#3 ~@3", W: "[f#2,c#3]!3 f#2@2 [g#2,c#3]!3, ~@3 c#3 ~@4",
X: "c#3, f#2@7 ~", Y: "[b2,f#3] f#3 g#3 [b2,f#3]!3 [b2,g#3] [b2,f#3], ~ b2@2 ~@5",
Z: "[b2,f#3]@2 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3] ~", // B5 E B5 E B5
AA: "[f#2,c#3]@2 c#3@2 d#3 ~ [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 d#3 ~ c#3@2, ~ f#2@2 ~@3 f#2@2", // F#5
AB: "c#3@2 c#3@2 d#3 ~ c#3@2 c#3@2 c#3@2 [f#2,d#3]@2 ~@2, f#2 f#2@2 ~", // D#m
AC: "g#3@2 g#3@2 [c#3,a#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 g#3 a#3 b4 ~ [b2,f#3]@2, c#3@4 ~@6 c#3@3 ~@3", // F# C#5 B5
AD: "[b2,f#3]@2 f#3@2 g#3 ~ [b2,f#3]@2 [b2,f#3]@2 f#3@2 [b2,g#3]@2 [b2,f#3]@2, ~ b2@2 ~@5", // B5 E B5
AE: "g#3!2 [c#3,a#3] [c#3,g#3]!3 [c#3,a#3] [e2,a2], c#3 ~@3", AF: "[f#2,c#3]!2 [f#2,d#3] [f#2,c#3]!3 [f#2,c#3]@2",
AG: "[c#3@16 c#3@13 ~@3, f#2@7 ~]/2",
AH: "[[b2,f#3] f#3 g#3 f#3 [b2,f#3]@2 [b2,g#3] f#3 f#3 [b2,f#3] [b2,g#3] [b2,f#3]!3 [b2,g#3] [e2,a2], ~ b2@3 ~@3 b2@2 ~@7]/2", // B5 E B5 E B5 E A5
AI: "[f#2,c#3]@2 c#3 ~ d#3 ~ [f#2,c#3]@2 [f#2,c#3]@2 f#2@2 d#3 ~ c#3@2, ~ f#2@2 ~@3 f#2@2", // F#5
AJ: "[f#2,c#3]!2 [f#2,d#3] [f#2,c#3]!3 [f#2,d#3] ~", // F#5 D#m F#5 D#m
AK: "[[c#3,g#3]@2 [c#3,g#3]@2 [c#3,a#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,a#3]@2 g#3 ~ [b2,f#3]@4 [b2,f#3]@2 [b2,g#3]@2 f#3@2 f#3@2 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3] ~, ~@11 b2@2 ~@3]/2", // C#5 F# C#5 F# B5 E B5 E …
AL: "g#3@2 g#3@2 a#3@2 g#3@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,a#3]@2 [a2,d3] ~, c#3!2 ~@2", // C#5 F# D5
AM: "[f#2,c#3]!2 [f#2,c#3]@2 c#3!2 [f#2,c#3]!2, ~@2 f#2 ~", // F#5
AN: "[[f#2,c#3]@2 [f#2,c#3]@2 d#3 ~@3 c#3@2 c#3 ~ d#3 ~ c#3@2 ~@4 [f#2,d#3]@2 [f#2,c#3]@2 c#3@2 c#3 ~ [f#2,d#3]@2 [f#2,c#3]@2, ~ f#2@2 f#2@2 ~ f#2 ~]/2", // F#5 D#m F#5 D#m F#5
AO: "[f#2,c#3]!2 [f#2,d#3] f#2 f#2@2 [f#2,d#3] f#2, ~@4 c#3 ~@3", // F#5 D#m
AP: "[f#2,c#3]@2 [f#2,c#3]@2 [f#2,d#3]@2 [f#2,c#3]@2 c#3@2 c#3 ~ d#3 ~ [f#2,c#3] ~, ~@5 f#2@2 ~", // F#5 D#m F#5
AQ: "[b2,f#3]!2 [b2,g#3] b2 [b2,f#3] b2 [b2,g#3] [b2,f#3]", AR: "f#3 [b2,f#3] [b2,g#3] b2 [b2,f#3]!2 [b2,g#3] ~",
AS: "[f2,c#3]@2 [f#2,c#3]@2 d#3 ~ [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,d#3]@2 [f#2,c#3]@2", // C# F#5 D#m F#5
AT: "c#3@2 c#3@2 [f#2,d#3]@2 c#3@2 c#3@2 c#3@2 d#3@2 e2 ~, f#2@2 ~ f#2@2 f#2@2 ~", // D#m
AU: "[[c#3,g#3]@2 [c#3,g#3]@2 [c#3,a#3]@2 c#3@2 c#3@2 c#3@2 c#3 ~ [b2,f#3]@4 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@2 f#3@2 f#3@2 [b2,g#3]@2 [b2,f#3] ~, ~@2 g#3 ~@3 b2 ~]/2", // C#5 F# B5 E B5 E B5
AV: "[c#3,g#3]@2 g#3@2 [c#3,a#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 c#3@2 [c#3,a#3] ~ [e2,a2] ~", // C#5 F# C#5 F# A5
AW: "[f#2,c#3]@2 [f#2,c#3]@2 [f#2,d#3]@2 f#2 ~ [f#2,c#3]@2 [f#2,c#3]@2 [e2,a2]@2 [f3,a#3]@2", // F#5 D#m F#5 A5 A#5
AX: "b3@2 [b2,f#3]@2 [b2,f#3]@2 f#3@2 [b2,f#3]@2 [b2,f#3,b3]@2 [f#3,b3] ~ [a#2,f3,a#3]@2, ~ b3 ~@2", // B5 A#5
AY: "[[f#3,b3]@2 [f#3,b3]@2 f#3@2 ~@2 b2@2 [b2,f#3,b3]@2 f#3 ~ [c#3,g#3,c#4]@4 [c#3,g#3,c#4]@2 g#3@4 g#3@2 [c#3,g#3,c#4]@3 [g3,c4] ~@2, b2@2 b2@2 ~@6 c#3@3 ~@3, ~@3 f#3@2 ~@5 c#4 ~@5]/2", // B5 C#5 C5
AZ: "[[f#2,c#3,f#3]@3 ~@6 f#3@42 ~@13, ~@8 [f#2,c#3]@43 ~@13]/4", // F#5
})).s("gm_distortion_guitar").gain(0.32)
// other · distortion guitar · "tk6"
const distortion_guitar_2 = note("<~@39 A B@2 C D@2 E F G ~@11 H@2 I J K@2 L M N ~@19>".pickRestart({
A: "~@5 b4@3", B: "[~ e5@2 f#5 e5@2 f#5 e5@2 f#5 e5@2 f#5 e5@2 f#5]/2", C: "e5@4 f#5@2 e5@4 f#5 ~ e5@4",
D: "[f#5@2 e5@4 f#5@2 e5@4 f#5 ~ e5@4 f#5 ~ e5@4 f#5@2 e5@4 f#5@2]/2", E: "e5@2 f#5 e5@2 f#5 f5@2",
F: "c#5 b4@2 c#5 b4 c#5 b4 c#5", G: "b4 c#5 b4 c#5!2 b4@2 b4", H: "[~@7 d4@2 f#4 b4 a4 b4 a4 b4 a4]/2",
I: "b4 a4 b4 a4 b4!3 f#4", J: "~@2 [a#4,c#5] ~@3 [a#4,c#5]@6 ~@2 [c4,c#4] [d4,e4], ~ g#4@2 ~@13",
K: "[g4 a4 [a#4,c#5,f#5]@2 ~@2 [a#4,c#5,f#5]@6 [a#4,c#5,f#5]@2 c#4@4 ~@2 b4@2 a4@2 b4@2 a4 f4 b4@2 a4 f#4, ~@9 f#4@2 ~@5]/2", // F#
L: "b4@2 a4 ~ b4@2 a4@2 b4@2 a4@2 [f#4,b4]@2 [f#4,b4]@2, ~@3 f#4@3 ~@10", // B5
M: "[g#4,c#5]@2 [g#4,c#5]@2 b4@3 ~ c#5@2 b4@4 c#5@2", N: "b4@2 c#5 b4@2 c#5 c#5@2, ~@3 c#5 ~@4",
})).s("gm_distortion_guitar").gain(0.4)
// chords · tenor sax · "tk7"
const tenor_sax = note(`<
~ A B@2 ~@4 C D E F G C H I J K J K C D E F G C H ~ J K J K L@2 I@2 M L M N A O J P A Q R S J K J K C D E F G C H I A
O J P A Q R S T@2 E T U@2 E T M L M I U@2 G V@4
>`.pickRestart({
A: "[f#3,b3]@15 ~", B: "[[f#3,a#3]@31 ~]/2", C: "~@4 [f#3,b3]@2 ~@2 [f#3,b3]@2 [f#3,b3]@3 ~@3",
D: "[f#3,b3]@3 ~ [f#3,b3]@2 [f#3,b3]@4 ~@6", E: "~@4 [f#3,a#3]@3 ~ [f#3,a#3]@2 [f#3,a#3]@4 ~@2",
F: "[f#3,a#3]@3 ~ [f#3,a#3]@2 [f#3,a#3]@3 ~ [f#3,a#3]@4 ~@2", G: "~@4 [g#3,c#4]@3 ~ [g#3,c#4]@2 [g#3,c#4]@3 ~@3",
H: "~@4 [g#3,c#4]@2 ~@2 [g#3,c#4]@2 [g#3,c#4]@3 ~@3", I: "~@4 [f#3,a#3]@2 [f#3,a#3]@9 ~", J: "[f#3,a#3]@15 ~",
K: "[f#3,a#3]", L: "~@4 [f#3,b3]@2 [f#3,b3]@9 ~", M: "~@4 [g#3,c#4]@2 [g#3,c#4]@9 ~", N: "~@4 [f#3,a#3]@11 ~",
O: "[f#3,b3]@3 ~@3 [f#3,b3]@3 ~@7", P: "[f#3,a#3]@3 ~@3 [f#3,a#3]@2 ~@8", Q: "[f#3,b3]@4 ~@2 [f#3,b3]@3 ~@7",
R: "[g#3,c#4]@15 ~", S: "[g#3,c#4]@4 ~@2 [g#3,c#4]@3 ~@7", T: "~@4 [f#3,a#3]@3 ~ [f#3,a#3]@2 [f#3,a#3]@3 ~@3",
U: "~@4 [f#3,b3]@3 ~ [f#3,b3]@2 [f#3,b3]@3 ~@3", V: "[[f#3,a#3]@3 ~@5 [f#3,a#3]@42 ~@14]/4",
})).s("gm_tenor_sax").gain(0.25)
// other · piano · "tk8" · F# C#sus2 G#sus2 D#m A#m G#7 F# C#sus2 …
const piano_2 = note(`<
~@31
[~@4 f#7 f7 d#7 [f#6,g#6,a#6,c#7] [c#6,d#6] [g#5,a#5] [d#5,f#5] [a#4,c#5] [d#4,f#4,g#4] c#4 [f#3,g#3,a#3] d#3]
[c#3 ~@15]
~@18
[~@4 f#7 f7 d#7 [f#6,g#6,a#6,c#7] [c#6,d#6] [g#5,a#5] [d#5,f#5] [a#4,c#5] [d#4,f#4,g#4] c#4 [f#3,g#3,a#3] d#3]
[c#3 ~@15]
~@34
>`).s("gm_piano").gain(0.35)
// drums · kick
const kick = s("bd").struct(`<
A@3 B@5 A@5 C A D E F G H A@5 C A D E I G J A C A@3 C A D A@7 D E F G K A@5 C A D A@7 D A H A@7 C A L A H A M ~@2 N
>`.pickRestart({
A: "x ~@2 x!2 ~@2 x", B: "x", C: "~@3 x!2 ~@2 x", D: "x!4", E: "x ~@4 x ~ x", F: "~ x ~ x ~ x ~@2",
G: "x!2 ~@2 x!2 ~@2", H: "x!2", I: "~ x ~@2 x!2 ~ x", J: "x!2 ~@6", K: "x ~@2 x ~ x ~ x", L: "x ~ x ~ x ~@2 x",
M: "~@3 x ~ x ~@2 x ~@7", N: "~ x ~@2",
})).gain(0.44)
// drums · snare
const snare = s("sd").struct(`<
// … 46 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.