0:00/0:00
// Credo — Pooh
// 56 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 23, 4/4 at bar 23, 2/4 at bar 26, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 63 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(56/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 · harpsichord
const harpsichord = note("<~@20 A B C D E F G H ~@14 I J K L M N O P ~@13>".pickRestart({
A: "~@19 [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5]", // Em
B: "~ [b4,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5]", // Em G C
C: "~ [c5,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5]", // C G Am
D: "~ [a4,c5,e5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~ [d5,f#5,a5]", // Am Em D
E: "~ [d5,f#5,a5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,d5,g5] ~@2 [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // D Em G
F: "[b4,d5,g5] ~ [b4,d5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // G C G
G: "[b4,d5,g5] ~ [b4,d5,g5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~@2 [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5]", // G Am Em
H: "~ [b4,e5,g5] ~ [b4,e5,g5] ~@28", I: "~@24 [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~",
J: "[b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~", // Em G C
K: "[c5,e5,g5] ~ [c5,e5,g5]!2 ~ [c5,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5]", // C G Am
L: "~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~ [d5,f#5,a5]!2 ~ [d5,f#5,a5] ~", // Am Em D
M: "[d5,f#5,a5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // D Em G
N: "[b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // G C G
O: "[b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~", // G Am Em
P: "[b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~@27", // Em
})).s("gm_harpsichord").gain(0.3).pan(0.4)
// bass · electric bass finger
const bass = note(`<
A@6 B C D E@2 F G H I J@2 K@2 L M ~@6 N@3 O P Q@2 R S T U V W X Y Z ~@6 AA@3 AB AC AD AE@3 AF AG@4
>`.pickRestart({
A: "[~@25 d3@16 ~ d3@16 d3@13 a2@4 d2@12 a2@4 ~ d3@16 ~ d3@16 d3@13 a2@4 d2@12 ~ a2@3 ~ d2@6 d2@2 d2@4 d3@4 d2@5 ~@2 d2 ~ d2@4 d3@4]/6",
B: "d2@5 ~ d2 ~ d2@4 d3@4 d2@5 ~ d2 ~ d2@2 ~@2 d3@4", C: "d2@4 d3@2 a2@2 d2@4 a2@2 d3@2 d2@5 ~ d2 ~ d2@3 ~ a2@2 d3@2",
D: "d2@4 ~@2 d2 ~ d2@3 ~ a2@2 d3@2 d2@5 ~ d2 ~ d2@2 a1 b1 d2 e2 d2 b1",
E: "[d2@4 ~@2 d2 ~ d2@5 ~ a1 ~ d2@5 ~ d2 ~ d2@2 d3@2 ~ a2 b2 d3@2 d2@6 d3 ~ d3@5 ~ d3@2 d2@4 d3@2 d3@2 d3@2 f#2@2 g2 g#2 a2]/2",
F: "~ d2@5 ~ d2 ~ d2@3 ~ a2@4 d2@5 ~ d2 ~ d2@4 b2@3", G: "~ d2@5 ~ d2 ~ d2@3 ~ a2@4 d2@5 ~ d2 ~ d2@2 a2@2 f#2 g2 a2",
H: "~ d2@4 ~@2 d2 ~ d2@5 ~ a1 ~ d2@5 ~@2 d2 ~ d2@2 d3@2 a2 b2",
I: "d3@2 d2@6 d3 ~ d3@5 ~ d3@2 d2@4 d3@2 d3@2 d3@2 f#2@2 g2 g#2",
J: "[a2 ~ d2@5 ~ d2 ~ d2@3 ~ a2@4 d2@5 ~ d2 ~ d2@4 b2@4 d2@5 ~ d2 ~ d2@3 ~@2 a2@4 d2@5 ~ d2 ~ d2@2 a2@2 f#2]/2",
K: "[g2 a2 ~ d2@6 d3 ~ d3@4 a2@3 ~ d2@5 ~ d2 ~ d2@3 ~ b2@3 ~ d2@5 ~ d2 ~ d2@3 ~ a2@4 d2@5 ~ d2 ~ d2@3 ~ f#2]/2",
L: "g2 a2 ~ d2@2 d3 ~ d3 ~ d3@2 ~@2 d3 ~ d3 ~ d3@2 d2@2 d3 ~ d3 ~ d3@2 d3 ~ d3 ~ d3",
M: "~ d3@2 d2@4 d3 ~ d3@5 ~ d3@4 e2@2 ~@11",
N: "[~@5 d2@8 d3@8 ~ d2@7 d3@7 ~@2 d2@8 d3@8 ~ d2@8 a2@4 d3@4 d2@4 d3@2 a2@2 d2@4 a2@2 ~ d3 ~ d2@5 ~ d2 ~]/3",
O: "d2@3 ~ a2@2 d3 ~ d2@4 ~@2 d2 ~ d2@3 ~ a2@2 d3@2 d2@5 ~ d2 ~",
P: "d2@2 a1 b1 d2 e2 d2 b1 d2@4 ~@2 d2 ~ d2@4 ~@2 a1 ~ d2@5 ~ d2 ~",
Q: "[d2@2 d3@2 a2 b2 d3@2 d2@5 ~ d3 ~ d3@5 ~ d3@2 d2@4 d3@2 d3 d3@2 f#2@2 g2 g#2 a2 ~ d2@5 ~ d2 ~ d2@3 ~ a2@4 ~ d2@5 ~ d2 ~]/2",
R: "d2@4 b2@4 d2@5 ~ d2 ~ d2@3 ~ a2@4 d2@5 ~ d2 ~",
S: "d2@2 a2@2 f#2 g2 a2 ~ d2@4 ~@2 d2 ~ d2@4 ~@2 a1 ~ d2@5 ~ d2 ~",
T: "d2@2 d3@2 a2 b2 d3@2 d2@6 d3 ~ d3@5 ~ d3@2 d2@4 d3@2 d3@2",
U: "d3@2 f#2@2 g2 g#2 a2 ~ d2@5 ~ d2 ~ d2@3 ~ a2@4 ~ d2@5 ~ d2", V: "~ d2@4 b2@4 d2@5 ~ d2 ~ d2@3 ~ a2@4 d2@5 ~ d2",
W: "~ d2@2 a2@2 f#2 g2 a2 ~ d2@6 d3 ~ d3@4 a2@3 ~ d2@5 ~ d2", X: "~ d2@3 ~ b2@3 ~ d2@5 ~ d2 ~ d2@3 ~ a2@4 d2@5 ~ d2",
Y: "~ d2@3 ~ f#2 g2 a2 ~ d2@2 d3!2 ~ d3@2 ~@2 d3 ~ d3 ~ d3@2 d2@2 d3 ~ d3 ~ d3@2",
Z: "d3 ~ d3 ~ d3 ~ d3@2 d2@4 d3 ~ d3@4 ~@2 d3@4 e2@2 ~@6",
AA: "[~@6 d2@6 d3 ~ d3@8 d2@8 ~ d3@7 ~ d2@6 d3 ~ d3@7 ~ d2@4 d3 ~ d3@2 a2@4 d3@4 ~ d2@6 d3 ~ d3@8 d2@4 d3 ~ d3 ~]/3",
AB: "d3@7 ~ d2@4 d3 ~ d3 ~ d3@7 ~ d2@4 d3 ~ d3 ~", AC: "d2@2 a1 b1 d2 e2 d2 b1 d2@5 ~ d2 ~ d2@5 ~ a1 ~ d2@6 d2 ~",
AD: "d2@2 f#2@2 g2 g#2 a2 ~ d2@4 ~@2 d2 ~ d2@4 a2@3 ~ d2@5 ~ d2 ~",
AE: "[d2@2 a1 b1 d2 e2 d2 b1 d2@5 ~ d2 ~ d2@3 a2@4 ~ d2@5 d2 ~ d2@3 ~ b2@3 ~ d2@5 ~ d2 ~ d2@3 ~ a2@4 d2@5 ~ d2 ~ d2@2 a1 [b1,d2] e2 d2 b1 d2@3 ~ d3 ~ d3 ~ a2@3 g#2@3 g#2 a2 d2@4 ~@2 d2@2 d3 ~]/3", // Bm
AF: "[a2,b2] ~ b2@2 ~ d2@4 ~@2 d2@2 b2 ~@2 a2 ~ a2@2 ~ d2@5 ~ d2 d2@2 a1 b1", // Asus2
AG: "[d2 e2 d2 b1 d2@5 ~ d2@2 d3@2 ~ a2@3 ~@2 d2@5 d2@2 f#3@2 e3 ~ e3@2 d3 ~ d2@4 ~@2 d2@2 d3!4 ~ a2@2 ~ d2@4 ~ d2 ~ d3 d3@2 e3@2 f#3@2 ~ d2@4 ~@2 d2@2 d3!4 ~ a2@2 d2@4 ~@2 d2 ~ b2@2 d3@2 ~@2 b2@2 d2@4 ~@2 d2@2 b2@2 ~ a2@2 f#2@2 d2@5 ~ d2@2 f#3@2 e3 ~ e3@2 d3 ~, ~@47 d3@2 ~@29 d3@2 ~@48]/4",
})).s("gm_electric_bass_finger").gain(0.4)
// chords · string ensemble 2
const string_ensemble_2 = note("<A@6 B C B C D@2 E D F@2 G@5 ~@6 H I J@8 K@6 ~@6 L@8 M@4 N O>".pickRestart({
A: "[~@25 [f#3,a3]@17 [g3,b3]@17 [a3,c#4]@16 [f#3,a3]@16 ~ [f#3,a3]@17 [g3,b3]@17 [a3,c#4]@16 [f#3,a3]@16 ~ [f#3,a3]@16 [g3,b3]@16 ~]/6", // F#m G A F#m G A F#m G
B: "[a3,c#4] [f#3,a3]", C: "[f#3,a3] [g3,b3]", D: "~ [f#3,a3]@16 [g3,b3]@15", E: "~ [a3,c#4]@16 [f#3,d4]@15",
F: "~ [f#3,a3]@8 [g3,b3]@7", // F#m G
G: "[~@2 [a3,c#4]@16 ~ [f#3,d4]@16 [f#3,a3]@16 [g3,b3]@16 [a3,c#4]@16 [f#3,d4]@16 [b2,g3]@16 [c#3,e3,a3]@16 [d3,f#3,a3]@16 ~@13]/5", // A D F#m G A D Em A …
H: "~@5 [f#3,a3]@16 ~ [g3,b3]@10", I: "~@6 [a3,c#4]@16 ~ [f#3,a3]@9",
J: "[~@7 [f#3,a3]@16 ~ [g3,b3]@16 [a3,c#4]@16 [f#3,a3]@16 [f#3,a3]@16 [g3,b3]@16 [f#3,a3]@16 [g3,b3]@15 [f#3,a3]@16 ~ [g3,b3]@16 [a3,c#4]@16 [f#3,d4]@16 [f#3,a3]@16 [g3,b3]@16 [f#3,a3]@16 [g3,b3]@8]/8", // F#m G A F#m G F#m G F#m …
K: "[~@8 [f#3,a3]@16 ~ [g3,b3]@16 [a3,c#4]@16 [f#3,d4]@16 [f#3,a3]@16 [g3,b3]@16 [a3,c#4]@16 [f#3,d4]@16 [b2,g3]@15 [c#3,e3,a3]@16 [d3,f#3,a3]@16 ~@8]/6", // F#m G A D F#m G A D …
L: "[~@6 [f#3,a3]@16 [g3,b3]@16 ~ [a3,c#4]@16 [f#3,a3]@16 ~ [f#3,a3]@16 [g3,b3]@16 [a3,c#4]@16 [f#3,a3]@16 [f#3,a3]@16 [g3,b3]@16 [a3,c#4]@16 [f#3,a3]@16 [f#3,a3]@15 ~ [g3,b3]@15 [a3,c#4]@16 [f#3,a3]@9]/8", // F#m G A F#m G A F#m G …
M: "[~@6 [f#3,a3]@15 ~ [g3,b3]@15 [a3,c#4]@15 ~ [f#3,a3]@15 [f#3,a3]@15 ~ [g3,b3]@15 [a3,c#4]@15 ~ [f#3,a3]@13]/4", // F#m G A F#m G A F#m
N: "~@2 [f#3,a3]@15 [g3,b3]@15", O: "~ [a3,c#4]@15 [f#3,a3]@15 ~",
})).s("gm_string_ensemble_2").gain(0.36)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
~ A B C D E F G F H I J K L M N O P Q R S ~@6 T U V@2 W X@4 Y@7 ~@6 Z AA AB@2 AC@2 AD AE AF AG@3 AH AI
>`.pickRestart({
A: "~@8 b4@3 g4@2 ~@3", B: "~ c#5@4 a4@4 e4@2 d4 ~@5 e4@6 ~ d4@4 ~@4", C: "~@2 f#4@6 d4@4 ~@7 b4@4 g4@6 ~@3",
D: "~@4 c#5@4 a4@4 e4@2 d4 ~@5 e4@6 ~ d4@4 ~",
E: "~@3 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@3 d4@2 ~ g4@2 b4@4 g4@6", // D
F: "~@2 e4@2 a4@2 c#5@4 a4@5 ~@3 d3@2 a3@2 d3@3 ~ d3@5 ~",
G: "~@4 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@3 d4@2 g4@2 b4@4 g4@6", // D
H: "d3@8 [a3,d4,f#4]@5 ~@3 d3@8 [d4,g4]@8", I: "~ d3@8 [d4,f#4]@8 d3@8 [d4,g4]@7",
J: "~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@6 ~@6 d4 ~ [g4,b4] ~ [g4,b4]@9", // F#m G
K: "~@3 e4 ~ [a4,c#5] ~ [a4,c#5]@9 ~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@9", // A F#m
L: "~ d3@8 [a3,d4,f#4]@5 ~@3 d3@8 ~ g4@6, ~@25 [b3,d4]@7", // D Bm
M: "~@2 d3@7 ~ [d4,f#4]@8 d3@7 ~ [d4,g4]@6, ~@9 a3@8 ~@8 b3@7", // D G5
N: "~@4 d4 ~ [f#4,a4] ~ [f#4,a4]@6 ~@6 d4 ~ [g4,b4] ~ [g4,b4]@8", // F#m G
O: "~@4 e4 ~ [a4,c#5] ~ [a4,c#5]@9 ~@4 d4 ~ [f#4,a4] ~ [f#4,a4]@7", // A F#m
P: "~@5 d4 ~ [f#4,a4] ~ [f#4,a4]@6 ~@6 d4 ~ [g4,b4] ~ [g4,b4]@7", // F#m G
Q: "~@5 e4 ~ [a4,c#5] ~ [a4,c#5]@9 ~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@7", // A F#m
R: "~@5 d4 ~ [g4,b4] ~ [g4,b4]@10 ~@2 e4 ~ [a4,c#5] ~ [a4,c#5]@7", S: "~@5 d4 ~ [f#4,a4] ~ [f#4,a4]@8 ~@15",
T: "~@9 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@4 d4@2 g4@2 b4@4", // D
U: "g4@6 ~@2 e4@2 a4@2 c#5@4 ~ a4@5 ~@3 d3@2 a3@2 d3@3",
V: "[~ d3@5 ~@5 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~@2 [d4,f#4]@3 ~@3 d4@2 g4@2 b4@4 g4@6 ~@2 e4@2 a4@2 c#5@4 a4@5 ~@3 d3@2 a3@2 d3@2]/2", // D
W: "~@2 d3@5 ~ d3@8 [a3,d4,f#4]@5 ~@3 d3@8", // D
X: "[[d4,g4]@8 d3@8 [d4,f#4]@8 d3@7 [d4,g4]@7 ~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@6 ~@7 d4 ~ [g4,b4] ~ [g4,b4]@9 ~@3 e4 ~ [a4,c#5] ~ [a4,c#5]@9 ~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@9 ~ d3@8 [a3,d4,f#4]@5 ~@3 d3@8]/4", // G5 D G5 F#m G A F#m D
Y: "[[b3,d4,g4]@8 d3@7 ~ [d4,f#4]@8 d3@7 ~ [d4,g4]@7 ~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@7 ~@6 d4 ~ [g4,b4] ~ [g4,b4]@10 ~@2 e4 ~ [a4,c#5] ~ [a4,c#5]@9 ~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@9 ~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@6 ~@6 d4 ~ [g4,b4] ~ [g4,b4]@9 ~@3 e4 ~ [a4,c#5] ~ [a4,c#5]@9 ~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@9 ~@3 d4 [g4,b4] ~ [g4,b4]@10 ~@2 e4 ~ [a4,c#5] ~ [a4,c#5]@8 ~@4 d4 ~ [f#4,a4] ~ [f#4,a4]@8 ~@10, ~@15 a3@8 ~@8 b3@7 ~@186]/7", // G D G5 F#m G A F#m G …
Z: "~@10 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@3 d4@2 g4@2 ~ b4@3", // D
AA: "~ g4@6 ~@2 e4@2 a4@2 c#5@4 a4@5 ~@3 d3@2 a3@2 d3@3",
AB: "[~ d3@5 ~@6 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@3 d4@2 g4@2 b4@4 g4@6 ~@2 e4@2 a4@2 c#5@4 a4@5 ~@3 d3@2 a3@2 d3@2]/2", // D
AC: "[~@2 d3@5 ~@5 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@3 d4@2 g4@2 b4@4 g4@6 ~@2 e4@2 a4@2 c#5@4 a4@5 ~@3 d3@2 a3@2 d3@2]/2", // D
AD: "~@2 d3@5 ~@5 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@2 d4@2 g4@2 b4@3", // D
AE: "~ g4@5 ~@3 e4@2 a4@2 c#5@4 a4@5 ~@3 d3@2 a3@2 d3@3",
AF: "~ d3@5 ~@4 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@3 d4@2 g4@2 b4@3 ~", // D
AG: "[g4@5 ~@2 e4@2 a4@2 c#5@4 a4@5 ~@3 d3@2 a3@2 d3@3 d3@5 ~@5 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@3 d4@2 ~ b4@3 ~ g4@5 ~@3 e4@2 a4@2 c#5@4 a4@5 ~@2 d3@2 a3@2 d3@3 ~ d3@4, ~@28 g4 ~@19]/3", // D
AH: "~@6 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@2 d4@2 g4@2 b4@3 ~ g4@5", // D
AI: "~@3 e4@2 a4@2 c#5@4 a4@5 ~@2 d3@2 a3@2 d3@3 ~ d3@5 ~",
})).s("gm_electric_guitar_clean").gain(0.23).pan(0.6)
// other · electric guitar jazz
const electric_guitar_jazz = note("<A@4 B C D E F ~@40 G H I J K L M N O P Q R S T>".pickRestart({
A: "[~@27 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@4 d4@2 ~ e4@2 d4@2 ~@2 d4@2 g4@2 d4@4 d4@4 ~ d4@2 ~@2 e4@2 a4@2 e4@2 ~@2 e4@2 ~@6 a3@2 d4@2 ~@15 d4@3 ~@14 g4@10 ~ d4@4, ~@94 a3@14 ~@3 d4@11 ~@6]/4", // D
B: "g4@2 d4@3 ~ d4@6 d4@4 a3@2 d4@3 ~@2 a3@4 a3@3 ~ d3",
C: "~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3@2 d3@2 d3@2 d3@2 ~ d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3@2",
D: "d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~",
E: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3 ~",
F: "d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3 ~",
G: "~@6 d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3@2 d3@2 d3@2 d3@2 d3 ~@2 d3@2 d3",
H: "~ d3 ~ d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3 ~ d3",
I: "~ d3 ~ d3 ~ d3 ~@2 d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3@2",
J: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3@2",
K: "d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3@2 d3@2 d3 ~ d3@2 d3 ~ d3@2",
L: "d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3 ~",
M: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 d3@2 d3 ~ d3@2 d3",
N: "~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3@2 d3",
O: "~ d3!2 ~ d3 ~ d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3@2 d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~",
P: "d3!2 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3!2 ~ d3 ~",
Q: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 d3@2 d3 ~ d3 ~ d3",
R: "~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3@2 d3!2 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~",
S: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3!2 ~ d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3",
T: "~ d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3!2 ~ d3@2 d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3 ~",
})).s("gm_electric_guitar_jazz").gain(0.23).pan(0.4)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@4 A@2 B C D ~@20 E F G ~@21 H I J K L M N@2 O P>".pickRestart({
A: "[~@31 [d4,f#4]@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,g4] ~ [d4,g4] ~@2 [d4,g4] ~ [d4,g4]@3 ~ [d4,g4] ~ [d4,g4]@3 ~]/2", // D G5
B: "[c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4]@2 ~@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@2 ~@2", // C#m D
C: "[d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]@3 ~ [d4,g4] ~ [d4,g4]@3 ~", // D G5
D: "[c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4]@3 ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~", // C#m D
E: "~@7 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~@2 [d4,f#4]@3 ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]@2", // D G5
F: "~@2 [d4,g4] ~ [d4,g4]@3 ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4]@3 ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@2", // G5 C#m D
G: "~@2 [d4,f#4] ~ [d4,f#4]@3 ~@25", // D
H: "~@8 [d4,f#4]@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@2 ~@2 [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]@2", // D G5
I: "~@2 [d4,g4] ~ [d4,g4]@2 ~@2 [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4]@2 ~@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@2", // G5 C#m D
J: "~@2 [d4,f#4] ~ [d4,f#4]@2 ~@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@2 ~@2 [d4,g4]!2 ~ [d4,g4] ~ [d4,g4]@3", // D G5
K: "~ [d4,g4] ~ [d4,g4]@2 ~@2 [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4]@2 ~@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3", // G5 C#m D
L: "~ [d4,f#4] [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@2 ~@2 [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]@3 ~", // D G5
M: "[d4,g4] [d4,g4]@2 ~@2 [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4]@2 ~@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 [d4,f#4] ~", // G5 C#m D
N: "[[d4,f#4]@2 ~@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@2 ~@2 [d4,g4] ~ [d4,g4] ~ [d4,g4] [d4,g4]@3 ~ [d4,g4] ~ [d4,g4]@2 ~@2 [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4]@2 ~@2 [d4,f#4]!2 ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@2]/2", // D G5 C#m D
O: "~@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@2 ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]@3 ~ [d4,g4] ~ [d4,g4]@2 ~", // D G5
P: "~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4] [c#4,e4]@2 ~@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@2 ~@2", // C#m D
})).s("gm_acoustic_guitar_steel").gain(0.25)
// chords · pad choir
const pad_choir = note(`<
~@2 A@4 B C B D ~ E F G ~ H I J@2 K@2 ~@6 L@2 M@2 N ~ O@2 P ~ Q@2 R@2 S@2 ~@6 T@2 U@4 V@2 W@2 X@2 Y Z
>`.pickRestart({
A: "[~@28 [d4,f#4]@17 [d4,g4]@17 [e4,a4]@16 [d4,f#4]@8 ~@9 [f#4,a4]@16 [g4,b4]@16 ~]/4", B: "[a4,c#5]@2 [a4,d5] ~",
C: "[f#4,a4] [g4,b4]", D: "[d5,f#5]@7 ~@25", E: "~ [a4,d5]@16 [b4,d5]@15", F: "~ [a4,c#5]@16 [a4,d5]@8 ~@7",
G: "~ [d5,f#5]@8 ~@23", H: "~ [a4,d5]@8 [b4,d5]@7", I: "~@2 [a4,c#5]@16 ~ [a4,d5]@8 ~@5",
J: "[~@3 [a4,d5]@16 [b4,d5]@16 [a4,c#5]@16 [a4,d5]@8 ~@5]/2", K: "[~@3 [b4,d5]@16 [a4,c#5]@16 [a4,d5]@12 ~@17]/2",
L: "[~@5 [f#4,a4]@16 ~ [g4,b4]@16 [a4,c#5]@16 ~ [a4,d5]@8 ~]/2", // F#m G A D5
M: "[~@7 [f#4,a4]@16 ~ [g4,b4]@16 [a4,c#5]@16 [a4,d5]@8]/2", N: "~@8 [d5,f#5]@7 ~@17",
O: "[~@7 [a4,d5]@16 ~ [b4,d5]@16 [a4,c#5]@16 [a4,d5]@8]/2", P: "~ [d5,f#5] ~@2",
Q: "[~@8 [a4,d5]@16 ~ [b4,d5]@16 [a4,c#5]@16 [a4,d5]@7]/2", R: "[~@9 [a4,d5]@16 [b4,d5]@16 [a4,c#5]@16 [a4,d5]@7]/2",
S: "[~@9 [b4,d5]@15 [a4,c#5]@16 [a4,d5]@12 ~@12]/2", T: "[~@6 [f#4,a4]@16 [g4,b4]@16 ~ [a4,c#5]@16 [a4,d5]@8 ~]/2",
U: "[~ [f#4,a4]@2 [g4,b4]@2 [a4,c#5]@2 [a4,d5]]/2", V: "[~@8 [f#4,a4]@15 ~ [g4,b4]@15 [a4,c#5]@16 [a4,d5]@8 ~]/2",
W: "[~@6 [f#4,a4]@15 ~ [g4,b4]@15 [a4,c#5]@15 ~ [a4,d5]@8 ~@3]/2", // F#m G A D5
X: "[~@4 [f#4,a4]@15 ~ [g4,b4]@15 [a4,c#5]@15 ~ [a4,d5]@8 ~@5]/2", Y: "~@2 [f#4,a4]@15 [g4,b4]@15",
Z: "~ [a4,c#5]@15 [a4,d5]@8 ~@8", // A D5
})).s("gm_pad_choir").gain(0.38)
// other · string ensemble 1
const string_ensemble_1 = note("<~@20 A@6 B C@3 ~@12 D@2 E@2 F@6 ~@11>".pickRestart({
A: "[~@19 e3@16 d3@16 c3@3 ~ e4@2 c4@2 g3@2 e3@2 c3@2 g2@2 d3@2 g3 f#3 g3 ~ d3 c#3 d3@4 b2@4 c4@2 [e3,e4]@2 [c3,c4]@2 [c4,a4]@2 e4@2 e3@2 [c3,c4]@2 [a2,a3]@2 [b2,b3]@2 [e3,e4] [d#3,d#4] [e3,e4] ~ [b2,b3] [a#2,a#3] [b2,b3]@4 [g2,g3]@4 d4@2 c#4@2 d4@2 c#4@2 [d3,d4]@2 [c#3,c#4]@2 [d3,d4]@2 [d#3,d#4]@2 e3@16 d3@16 ~ c3@4 e4@2 c4@2 g3@2 e3@2 c3@2 g2@2 d3@2 g3 f#3 g3 ~ d3 c#3 d3@4, ~@83 c3 ~@7 a3 ~ c4 ~@21 a2@8 ~@69]/6", // E C F C A B E D# …
B: "b2@4 [c3,c4]@2 [e3,e4]@2 [c3,c4]@2 [c4,a4]@2 ~ e4@2 e3@2 [c3,c4]@2 [a2,a3]@2 [b2,b3]@2 [e3,e4] [d#3,d#4] [e3,e4] ~ [b2,b3] [a#2,a#3] [b2,b3]@3, ~@13 a3 ~ c4 ~@16", // C E C F C A B E …
C: "[~ [g2,g3]@4 d3@66 ~@25]/3", D: "[~@24 e3@16 d3@16 c3@3 ~ e4@2 c4@2]/2",
E: "[g3@2 ~ c3@2 g2@2 d3@2 g3 f#3 g3 ~ d3 c#3 d3@4 b2@4 c4@2 [e3,e4]@2 [c3,c4]@2 c4@2 e4@2 e3@2 [c3,c4]@2 [a2,a3]@2 [b2,b3]@2 [e3,e4] [d#3,d#4] [e3,e4] ~ [b2,b3] [a#2,a#3] [b2,b3]@4 [g2,g3]@4 d4@2 c#4 ~@2 c#4@2 [d3,d4]@2, ~@2 e3@2 ~@19 c3 ~@5 a4 ~ a3 ~ c4 ~@21 a2@8 ~, ~@59 d4@2 ~@3]/2", // E C A B E D# E B …
F: "[[c#3,c#4]@2 [d3,d4]@2 [d#3,d#4]@2 e3@16 d3@16 c3@3 ~ e4@2 c4@2 g3@2 e3@2 c3@2 g2@2 d3@2 g3 f#3 g3 ~ d3 c#3 d3@4 b2@4 c4@2 [e3,e4]@2 [c3,c4]@2 [c4,a4]@2 e4@2 e3@2 [c3,c4]@2 [a2,a3]@2 [b2,b3]@2 [e3,e4] [d#3,d#4] [e3,e4] ~ [b2,b3] [a#2,a#3] [b2,b3]@4 [g2,g3]@4 d3@65 ~@25, ~@70 c3 ~@7 a3 ~ c4 ~@111]/6", // C# D D# E C F C A …
})).s("gm_string_ensemble_1").gain(0.43)
// drums · kick
const kick = s("bd").struct(`<
~@4 A B C@3 D E F@2 G H I J K@3 L ~@8 M N@3 O N@3 P Q@3 R S ~@10 T N U V W X Y Z AA AB
>`.pickRestart({
A: "~@31 x", B: "~@5 x ~@7 x ~ x ~@6 x ~@7 x ~", C: "x ~@2 x ~@3 x!2 ~@2 x ~@3 x", D: "x ~@5 x ~@7 x ~ x ~@5 x ~@8 x",
E: "~ x ~@5 x ~@7 x ~ x ~@5 x ~@5 x ~@2", F: "~ x ~@5 x ~@7 x ~ x ~@5 x ~@7 x", G: "~ x ~@5 x ~@7 x ~ x ~@6 x ~@7",
H: "x!2 ~@2 x ~@3 x!2 ~@2 x ~@2 x", I: "~ x ~@2 x ~@3 x!2 ~@2 x ~@3", J: "x ~ x ~@5 x ~@8 x ~ x ~@5 x ~@6",
K: "~ x ~ x ~@5 x ~@7 x ~ x ~@5 x ~@6", L: "~ x ~ x ~@5 x ~@7 x ~ x ~@12", M: "~@3 x ~ x ~ x ~@5 x ~@8 x ~ x ~@5 x ~",
N: "~@3 x!2 ~@2 x ~@3 x!2 ~@2 x", O: "~@3 x ~@3 x ~@5 x ~@8 x ~ x ~@5 x ~", P: "~@4 x ~@3 x ~@5 x ~@7 x ~@2 x ~@5 x",
Q: "~@7 x ~ x ~@5 x ~@7 x ~ x ~@5 x", R: "~@7 x ~ x ~@4 x ~@7 x ~ x ~@5 x ~", S: "~@3 x!2 ~@2 x ~@3 x!2 ~@3",
T: "~@2 x!3 ~@2 x ~@3 x!2 ~@2 x", U: "~@6 x ~ x ~@5 x ~@7 x ~ x ~@4 x ~@2", V: "~@5 x ~ x ~@5 x ~@7 x ~ x ~@5 x ~@2",
W: "~@2 x!2 ~@2 x ~@3 x!2 ~@2 x ~", X: "~@3 x ~ x ~@5 x ~@7 x ~ x ~@5 x ~@4",
// … 86 more lines
More by Pooh
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.