0:00/0:00
// Cosi ti vorrei — Pooh
// 98 bpm, 4/4, key A# 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: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 12 lead 1 square (copy of ch 3 acoustic guitar steel); ch 7 overdriven guitar (copy of ch 9 guitar harmonics)
// note: Full arrangement: all 96 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 26.
setcpm(98/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 · epiano1
const epiano1 = note(`<
~ A@2 B C D@2 E F A@2 B C D@2 E G H I J K L M N O@3 P Q@2 R@2 S T A@2 B C D@2 E F A@2 B C D@2 E G H I J K L M N O@3 P
Q@2 R@2 S T A@2 B C D@2 E F A@2 B C D@2 E F A@2 B C D@2 E U E U V@3
>`.pickRestart({
A: "[~@10 c3@5 ~@11 c5@2 [f5,a5]@3 ~, [c4,eb4,g4,bb4]@5 ~ [eb4,g4,bb4,c5]@9 [c4,f4]@7 [c5,f5]@2 f3@6 ~@2, ~@2 c3@7 ~@7 f2@16, ~@16 a4@4 f3@2 a4@9 ~, ~@9 c3@7]/2", // F Cm7 F5
B: "~@4 [bb3,f4]@2 f4@3 ~@3 [f4,a4,d5]@2 f3@2, bb2@15 ~, [bb3,d4,f4]@4 ~@2 [bb3,d4]@9 ~, ~@2 f3@6 ~ f3@5 ~@2, ~@3 a4@3 ~@2", // Bb5 Dm Bb
C: "~@6 [eb4,bb4] bb3, [eb4,g4,bb4,d5]@5 ~ [bb5,d6]@9 ~, ~ bb3@4 bb3@2 ~, ~@7 [eb5,g5]@8 ~", // Eb5 Ebmaj7 Bb Eb
D: "[~@4 c4@2 [c4,eb4,g4,bb4]@2 g3@2 ~@2 g3@2 ~@10 f3@2 f4 ~@3 f3@2, c3@7 ~ f2@8, [eb4,g4,bb4]@3 ~@2 [g4,bb4,c5,eb5]@2 ~ a4@6 [f4,c5,f5]@2, c4@4 ~@11 [c4,f4]@5 f3@2 [c4,f4,c5]@5 ~@5, ~ g3@3 ~@5 c3@7]/2", // Cm7 Eb Cm7 F5
E: "~@12 f3@3 ~, [bb2,bb3,d4,f4,a4]@15 ~, ~ f3@5 ~@2, ~@3 [bb4,d5,f5,a5]@5", // Bbmaj7
F: "[gb4,a4]@3 [gb4,a4,d5]@5, [d2,d3,d4]", G: "[d4,gb4,a4]@5 ~ [c4,f4]@6 [c4,eb4]@4, [d2,d3], ~@3 [gb3,a3]@5",
H: "~@6 g5@9 ~, [g2,g3,d4,g4,bb4]@15 ~", I: "~@3 [c5,eb5]@2 ~@3, [c3,g4]@15 ~, ~ g3@5 ~@2, ~@6 g5@9 ~",
J: "[f4,a4]@3 [a4,eb5]@5, [f3,c5]", K: "f4@2 f4 ~@3 bb3@2, [a4,d5]@15 ~, ~@6 bb4@9 ~, ~@10 f4@5 ~",
L: "~@6 [eb5,g5,bb5]@9 ~, [eb3,g4]@15 ~", M: "~@6 [c5,eb5,g5,a5]@9 ~, [c3,g4,a4]@15 ~",
N: "~@6 a3 ~, [d3,d4,gb4,a4,c5]@7 ~, ~ a3@2 ~, ~@5 d5@2 ~", // D7
O: "[~@6 a4@8 ~ g5@16 ~ [eb4,g4]@6 ~@6 g3@3 ~, [g3,d5]@14 ~@17 c4@7 [c4,g4,bb4]@9 ~, ~@2 g4@5 ~@17]/3", // Eb G5 C7
P: "f4@2 ~@3 [f5,g5,c6]@3, [f3,g4], c5@3 c5@5, ~ f4@3", // Fsus2
Q: "[bb2@4 ~@6 bb4@4 ~@8 g4@9 ~, d5@10 ~@5 g4@7 ~@10, ~@6 bb5@8 ~@2 d5@15 ~]/2",
R: "[~@3 [c5,eb5,g5,a5]@4 ~@3 d4 [d4,a4,c5]@5, [c3,c4,eb4,g4]@14 ~ [d4,gb4]@6 ~@11, ~@16 d3@15 ~, ~@8 a4@3 ~@5, ~@18 a3@13 ~]/2", // Am7b5 D7 Cm D
S: "g4@4 a4@2 ~@4 [bb4,d5]@5 ~, g2@15 ~, bb4@5 ~@3, ~@6 [a4,c5]@9 ~", // Bb Am
T: "g5@4 ~@2 [g2,g6]@9 ~, g2@3 ~@5, ~@4 g5@11 ~", U: "[g4,bb4]@3 [g4,bb4,d5]@5, [eb2,eb3,d4]",
V: "[~ [bb2,bb3,d4,f4,a4]@32 ~@15]/3", // Bbmaj7
})).s("gm_epiano1").gain(0.27)
// chords · epiano1 · soft notes
const epiano1_soft = note(`<
~@2 A B C ~ D E ~@2 A B C ~ D E ~ F G H I J K L@2 M N O P@2 Q R S T ~ A B C ~ D E ~@2 A B C ~ D E ~ F G H I J K L@2 M
N O P@2 Q R S T ~ A B C ~ D E ~@2 A B C ~ D E ~@2 A B C ~ D E ~ E ~@4
>`.pickRestart({
A: "~@6 c5 f3", B: "~@2 d4 ~@2 f4 ~@2", C: "eb3@15 ~", D: "~@3 a4", E: "~@14 d4 ~", F: "~@6 [d5,bb5]@9 ~",
G: "~@12 g3@3 ~, [c4,eb4,bb4]@15 ~, ~@5 [c5,eb5,bb5]@3", H: "~@6 f4@9 ~, ~@2 c4@13 ~",
I: "~@2 bb3 ~, bb2@15 ~, ~ bb3@3 ~@4, ~@3 f4@2 ~@3", J: "~@2 bb3@13 ~, [eb4,bb4]@15 ~",
K: "~@2 g3@13 ~, [c4,eb4]@15 ~", // Cm
L: "[~@6 d6@2 ~ d6@5 ~@4 d4@6 ~@4 d4@3 ~, ~@15 bb4@11 bb4@4 ~@2, ~@15 g4@5 ~@4 d4@4 ~@4]/2", M: "[g3,bb5,d6,g6]@15 ~",
N: "~@6 eb4@9 ~, c3@15 ~, ~ g3@2 ~", O: "~ c4@3 c4@4",
P: "[~@28 bb3@3 ~, bb4@10 d5@4 eb4@5 ~ eb4@11 ~, ~@4 bb2@10 ~@2 eb3@15 ~, ~@4 bb3@2 bb3@2 ~ bb3@5 ~@2, ~@26 bb4@5 ~]/2",
Q: "~@2 g3@5 ~, a4@7 ~", R: "~@6 gb4@9 ~", S: "~@4 g4@11 ~", T: "bb5",
})).s("gm_epiano1").gain(0.16)
// bass · fretless bass
const bass = note(`<
~ A B C D A B C E A B C D A B C F G@2 H@2 I J K L M N H@2 I J K L O A B C D A B C E A B C D A B C F G@2 H@2 I J K L M
N H@2 I J K L O A B C D A B C E A B C D A B C E A B C D A B C P C Q R@3
>`.pickRestart({
A: "~ c3!3 ~ c2 c2@4 c2 ~ c3@4, c2 ~@3", B: "~ f2!3 ~ f1 f1@4 f1 ~ f2@4, f1 ~@3",
C: "~ bb2!3 ~ bb1 bb1@4 f2@2 bb2 g2 f2 ~, bb1 ~@3", D: "eb2 ~@2 bb2!2 ~ eb3@3 ~ [bb2,eb3]@6, ~ eb2@9 ~@6",
E: "d2@6 c3@4 d3!3 a2 d2@2", F: "d2@6 c3@4 d3!2 d3@4",
G: "[g1!2 ~@4 g2@8 c2@8 eb3@2 f3 ~ eb3 ~ c3@2 c3@2, ~@2 g1@11 ~@19]/2",
H: "[f2!2 f2@4 f1@8 bb1@6 ~@2 f2@2 bb2 ~ g2 ~ f2 g2 f2@2]/2", I: "eb2@3 bb2@3 db3@8 bb2 b2",
J: "c3@2 g2@2 c2 ~ c2@8 c3 db3", K: "d3@6 d2@4 a2@2 d2 ~ d2@2", L: "g2@9 ~ c2 ~ c2 db2 d2@2", M: "g1",
N: "c2@6 eb3@2 f3 ~ eb3 ~ c3@2 c3@2", O: "g1@3 g1@5", P: "eb2@6 c3@4 eb3!3 bb2 f2@2",
Q: "eb2@6 c3@4 eb3!3 ~ f2@2, ~@14 bb2 ~", R: "[~ bb1@35 ~@12]/3",
})).s("gm_fretless_bass").gain(0.45)
// other · acoustic guitar steel
const acoustic_guitar_steel = note("<~@73 A B C@2 D E F G H I J K L M N O P Q R S T@3>".pickRestart({
A: "~@10 a4@2 bb4 a4 g4 eb4", B: "d4 d5!2 ~@2 a4 ~ g4 gb4@8, ~@3 d5@2 ~@11, ~@2 eb5 ~@5",
C: "[~ g4 ~ g4!2 a4 ~ bb4 ~ d5 ~ f5 ~@2 f5@8 a4 bb4 c5 bb4 a4 g4 f4 eb4 d4 c4, ~@4 c5 ~@11]/2",
D: "d4@2 a3 bb3 c4 d4 eb4 f4 g4 a4 d4 eb4 f4 g4 a4 ~", E: "bb4@6 bb4 c5 bb4 ~ bb4 c5 bb4 a4 bb4@2",
F: "eb5 d5 c5 bb4 c5 d5 eb5 f5 g5 a4 bb4 c5 d5 eb5 f5 ~", G: "f5@6 eb5 d5 c5 bb4 a4 g4 f4 eb4 d4 c4",
H: "~@2 a3 bb3 c4 d4 eb4 f4!2 ~ f4 f4@2 f4 f4@2", I: "gb4!2 ~ gb4!2 ~ gb4 gb4@9", J: "g4@2 ~ g4 ~ g4!6 ~ g4@4",
K: "~ f4 g4 a4 bb4 c5 d5 ~ eb5 f5 ~ f5@5", L: "~@2 d5 eb5 c5 d5 bb4 c5 a4 [a4,bb4] g4 a4 bb4 c5 d5 f5",
M: "eb5 [c5,d5] bb4 [a4,c5] bb4 [g4,a4] f4 [eb4,g4] f4 [d4,eb4] c4 [eb3,g3,bb3] [d3,f3]@2 [eb3,g3]@2", // Csus2 Am Gsus2 Eb Ebmaj7 Eb Dm Eb
N: "g3 [bb3,c4] d4 [f4,g4] bb4@2 a4 ~ bb4 a4 g4 a4 bb4 c5 c5@2", O: "~@2 a4 bb4 g4@2 f4 ~@3 f4 [g4,a4] bb4 c5 d5 f5",
P: "d5 f5!2 ~@3 d5 eb5 d5@2 c5 bb4 a4 bb4 c5 d5",
Q: "~ eb5 d5 c5 bb4 a4 c5 bb4 a4 g4 f4 d4 ~ [g4,bb4] f5 eb5, ~@6 eb4 ~", // Gm
R: "d5 bb4 g4 f4 g4 f4 d4 c4 bb3 a3 g3@4 f3 g3", S: "bb3 c4 ~ bb3 a3 ~ bb3 a3 f3 g3 a3 bb3 c4 ~ d4 f4",
T: "[~ d4 f4 ~ [f4,g4] ~ f4@30 ~@12]/3", // Fsus2
})).s("gm_acoustic_guitar_steel").gain(0.64).pan(0.4)
// chords · vibraphone
const vibraphone = note(`<
A B@2 C@2 D@3 E B@2 C@2 D@3 F G@4 H@4 I@3 J K@4 A B@2 C@2 D@3 E B@2 C@2 D@3 F G@4 H@4 I@3 J K@4 A B@2 C@2 D@3 E B@2
C@2 D@3 F ~@13
>`.pickRestart({
A: "~@10 [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~", // Gm
B: "[[g4,bb4]@3 ~ [eb4,g4] ~ [eb4,g4]@3 ~ [d4,f4] ~ [eb4,g4] ~ [c4,eb4]@7 ~@5 [f4,a4] ~ [f4,a4] ~ [f4,a4] ~]/2", // Gm Eb Dm Eb Cm F
C: "[[f4,a4]@4 [d4,f4] ~ [d4,f4]@4 [a3,c4] ~ [bb3,d4] ~ [g3,bb3]@6 ~@6 [eb4,g4] ~ [eb4,g4] ~ [eb4,g4] ~]/2", // F Dm Am Bb Gm Eb
D: "[[eb4,g4]@4 [c4,eb4] ~ [c4,eb4]@3 ~ [bb3,d4] ~ [c4,eb4] ~ [bb3,d4]@4 [a3,c4]@3 ~@5 [bb3,d4]@2 [c4,eb4] ~ [eb4,g4]@4 [d4,f4]@8 ~@6]/3", // Eb Cm Bb Cm Bb Am Bb Cm …
E: "[d4,gb4]@5 ~@5 [gb4,a4] ~ [gb4,a4] ~ [gb4,a4] ~", F: "[d4,gb4] ~@3",
G: "[~@4 d4 ~ d4 ~ d4 ~ g4@4 f4@4 eb4@2 ~@6 d4@2 eb4@2 d4@4 c4 ~@3 c4 ~ c4@4 f3@2 d4@5 ~@13]/4",
H: "[~@4 bb3 ~ bb3 ~ bb3 ~ eb4@3 ~ d4@4 c4@2 ~@6 b3@2 c4 ~ d4@4 c4 ~@3 c4@6 d3@2 bb3@4 ~@14]/4",
I: "[~@4 d4 ~ d4 ~ d4@2 g4@4 f4@4 eb4 ~@7 d4@2 eb4@2 f4@4 g4 ~@7 f4 ~ f4 ~ f4 g4]/3", J: "~ c4 d4 ~@13",
K: "[~@4 bb3 ~ bb3 ~ bb3@2 eb4@4 d4@4 c4 ~@7 b3@2 c4 ~ d4@4 c4 ~@7 gb4 ~ gb4 ~ g4@15 ~@3]/4",
})).s("gm_vibraphone").gain(0.64)
// other · accordion
const accordion = note("<~@9 A B C D E F G H ~@25 A B C D E F G H ~@46>".pickRestart({
A: "g4@6 bb4@6 g4@3 f4, gb4 ~@11 gb4 ~@3", B: "f4@15 ~, g4 ~@15", C: "f4@6 a4@6 f4@3 [eb4,f4], ~@6 ab4 ~@9",
D: "eb4@15 ~", E: "eb4@3 g4@3 eb4@2, ~@6 gb4 ~@9", F: "f4, e4 ~@15", G: "a4@3 f4@5, ab4 ~@15", H: "a4, ab4 ~@15",
})).s("gm_accordion").gain(0.23)
// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
~@2 A ~ B ~ C ~ D E F ~@3 G ~ H ~@18 A ~ B ~ C ~ D E F ~@3 G ~ H ~@18 A ~ B ~ C ~ D ~@21
>`.pickRestart({
A: "~@4 a4 ~@11", B: "~@2 eb4 ~@13", C: "~@2 c4 ~ a4 ~@11", D: "a4@5 ~ a4 ~@9", E: "~@6 c4 ~@9",
F: "~@2 [c4,f4] ~@13", G: "~@2 c4 ~@13", H: "a4@5 ~ [a3,d4]@5 ~ a3@4",
})).s("gm_electric_guitar_jazz").gain(0.07).pan(0.1)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
~ A B C D E F G H I J K L M N O P Q R S T U V W X Y R S T U V W X Y A B C D E F G H I J K L M N O P Q R S T U V W X Y
R S T U V W X Y A B C D E F G H A B C D E F G H A B C D E F G Z G Z AA@3
>`.pickRestart({
A: "[c4,g4,bb4,eb5] ~@2 [c4,g4] [c4,g4,bb4,eb5]@2 [c4,g4,bb4,eb5]@2 bb4 [c4,g4,bb4,eb5] [c4,g4]@2 [c4,g4]@2 [c4,g4,bb4] [c4,g4,bb4,eb5], ~ [c4,g4,bb4,eb5]@2 ~@13, ~ [bb4,eb5] ~@3 [bb4,eb5]@2 ~", // Cm7 C5 Cm7 C5 C7 Cm7 Eb5
B: "[c4,f4,a4,eb5]!2 [c4,f4]@2 [c4,f4]@2 [c4,f4,a4,eb5]@3 [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4,eb5]@2 eb5 [c4,f4,a4,eb5], ~@2 [a4,eb5]@4 ~@3 eb5@3 ~@4", // F7 F5 F7 F F7 Adim
C: "[d4,f4,a4,d5] [a4,d5] [d4,f4,a4,d5] [d4,f4,a4] [d4,f4,a4,d5]@2 [d4,f4,a4,d5]@2 d4!2 d4@2 [d4,f4,d5]@2 [d4,f4,a4] [d4,f4,a4,d5], ~@9 [f4,a4,d5]@3 ~@4", // Dm D5 Dm
D: "[eb4,g4,bb4,d5] [eb4,g4,bb4] [g4,bb4] [eb4,g4,bb4] [eb4,g4,bb4]@2 [eb4,g4,bb4,d5]@2 [g4,bb4,d5] eb4 eb4@2 [eb4,g4,bb4,d5]@2 [g4,bb4,d5] [eb4,g4,bb4,d5], ~@2 d5@4 ~@3 [g4,bb4,d5]@3 ~@4", // Ebmaj7 Eb Gm Eb Ebmaj7 Gm Ebmaj7 Gm …
E: "~ eb5 [c4,g4,bb4,eb5] [c4,g4,bb4] [c4,g4,bb4,eb5]@2 [c4,g4,bb4,eb5]@2 [bb4,eb5] [c4,g4] [c4,g4]@2 eb5@2 ~ c4, [c4,g4,bb4,eb5]@2 ~@7 [bb4,eb5]@3 [c4,g4,bb4]@4, ~@7 eb5", // Cm7 C7 Cm7 Eb5 C5 Cm7 Eb5 C7
F: "[c4,f4,a4,eb5] [c4,f4,a4] [f4,a4] [c4,f4] [c4,f4]@2 [c4,f4,a4,eb5]@2 eb5 [c4,f4,a4,eb5]@3 [c4,f4,a4,eb5]@2 ~ [c4,f4], ~ eb5@2 ~@5, ~@3 a4@3 ~@8 [f4,a4,eb5]@2", // F7 F F5 F7 F5 F7
G: "[d4,f4,a4,d5]@2 [f4,a4,d5] [d4,f4,a4] ~ d4 d5@2 d5 ~ d4@2 [d4,f4,a4,d5]@2 [a4,d5] [d4,f4,a4,d5], ~@4 [f4,a4,d5]@2 [d4,f4,a4]@3 [f4,a4,d5]@3 ~@4", // Dm D5 Dm
H: "[d4,gb4,c5,d5]@2 [d4,gb4,c5,d5] [gb4,c5] ~ d4 [d4,gb4,c5,d5]@2 [gb4,c5,d5] [d4,gb4,c5,d5]@3 ~ c5 [d4,gb4,c5]@2, ~@3 [d4,d5]@3 ~@6 [d4,gb4,c5,d5]@2 ~@2, ~@4 [gb4,c5]@2 ~@7 d5@3", // D7 Gbdim D7 D D7 Gbdim
I: "[c4,g4,bb4,eb5]@2 ~ c4 [g4,bb4,eb5]@2 [g4,bb4,eb5]@3 [g4,bb4] [c4,g4,bb4]@2 [c4,g4,bb4,eb5]@2 ~ [c4,g4], ~@2 [c4,g4,bb4,eb5]@2 c4@5 eb5@3 ~@2 [g4,bb4,eb5]@2", // Cm7 Eb Gm C7 Cm7 C5 Cm7 Eb
J: "eb5@2 ~ [c4,f4] [c4,f4,a4,eb5]@2 [c4,f4,a4,eb5]@2 [f4,a4,eb5] [c4,f4] [c4,f4]@2 [f4,a4,eb5]@2 [f4,a4,eb5]@2, [c4,f4,a4] ~@2 c4, ~@2 eb5@2 ~@5 [a4,eb5]@3 ~@4", // F5 F7 F5 F7 F Adim
K: "[d4,f4,a4,d5]!2 [d4,f4,a4]!2 [d4,f4,a4]@2 [d4,f4,a4,d5]@2 [f4,a4,d5] [d4,f4,a4,d5]@3 [d4,f4,a4,d5]@2 [d4,f4,a4,d5] [d4,f4,a4], ~ d5@2 ~@5", // Dm
L: "~ eb4 [eb4,g4,bb4,d5] [eb4,g4] [eb4,g4]@2 [g4,bb4,d5]@2 [g4,bb4,d5] [g4,bb4] [eb4,g4,bb4]@2 [eb4,g4,bb4,d5] bb4 [eb4,g4,bb4]@2, [eb4,g4,bb4,d5]@2 ~ [bb4,d5]@3 eb4@3 d5@3 ~ d5@3", // Ebmaj7 Eb Gm Eb Ebmaj7 Eb Ebmaj7 Bb
M: "[c4,g4,bb4,eb5] [g4,bb4,eb5] ~ c4 [c4,g4,bb4,eb5]@2 [c4,g4,bb4,eb5]@2 [c4,g4]!2 [c4,g4,bb4]@2 [c4,g4,bb4,eb5]@2 [g4,bb4,eb5] [c4,g4,bb4], ~ [c4,g4,bb4,eb5] ~@2 eb5@2 ~@2, ~@4 bb4 ~@3", // Cm7 Eb Cm7 C5 C7 Cm7 Eb C7 …
N: "~@2 [f4,a4,eb5] [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4,eb5]@2 [f4,a4,eb5] [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4,eb5]@2 [f4,a4,eb5] [c4,f4,a4], [c4,f4,a4,eb5]@2 ~ eb5@3 ~@3 eb5@3 ~@4, ~ [c4,f4]@2 ~@13", // F7 F F7 F F7 F F7 F5
O: "[d4,f4,a4,d5]@2 [d4,f4,a4,d5] [d4,f4,a4] [d4,f4,a4,d5]!2 [d4,f4,a4,d5]@2 ~ [d4,f4] [d4,f4,a4,d5]@2 ~ d4 [d4,f4,a4,d5] [d4,f4,a4], ~@4 [d4,f4,a4,d5] ~ [d4,f4,a4,d5] ~", // Dm
P: "[d4,gb4,c5,d5]!2 ~ [c4,f4,c5]@3 [eb4,gb4,c5,eb5]@2", // D7 F5 Cdim
Q: "[d4,g4,bb4,d5]@3 [d4,g4] [d4,g4,bb4,d5]@2 [g4,bb4,d5] [d4,g4,bb4,d5] ~ [d4,g4] [d4,g4,bb4,d5]@2 ~ [d4,g4,bb4,d5]!2 ~", // Gm G5 Gm G5 Gm
R: "[c4,g4,bb4,eb5]@2 ~ [c4,g4,bb4,eb5] [c4,g4,bb4,eb5]@2 [bb4,eb5] [c4,g4,bb4,eb5]!3 [c4,g4,bb4,eb5]@2 [g4,bb4,eb5] ~ [c4,g4] ~, ~@13 [c4,g4,bb4,eb5]@2 ~", // Cm7 Eb5 Cm7 Eb C5 Cm7
S: "[c4,f4,a4,eb5] ~@2 [c4,f4] [c4,f4,eb5]@3 [c4,f4,a4,eb5] [f4,a4,eb5] [c4,f4,a4,eb5] [c4,f4,a4]@2 [a4,eb5] [c4,f4,a4,eb5]!2 ~, ~ [c4,f4,a4]@2 ~@13, ~ eb5 ~@6", // F7 F5 F7 F Adim F7 F
T: "[d4,f4,a4,d5]@3 [d4,f4,a4,d5] [d4,f4,a4,d5]@3 [d4,f4,a4,d5] [f4,a4,d5] [d4,f4,a4,d5] [d4,f4,a4,d5]@2 [a4,d5] [d4,f4,a4,d5] [f4,a4,d5]@2", // Dm D5 Dm
U: "[eb4,g4,bb4,d5] ~ [g4,bb4,d5] ~ [eb4,g4,bb4,d5]@2 [bb4,d5] [eb4,g4,bb4,d5] ~ eb4 [eb4,g4,bb4,d5]@2 [g4,bb4,d5] [eb4,g4,bb4,d5]@3", // Ebmaj7 Gm Ebmaj7 Bb Ebmaj7 Gm Ebmaj7
V: "[c4,g4,a4,eb5]@2 [c4,g4,a4,eb5] c4 [c4,g4]@2 [g4,a4,eb5] [c4,g4,a4,eb5] ~ [c4,g4,a4] [c4,g4,a4,eb5]@2 ~ [c4,g4,a4] ~@2, ~@4 [a4,eb5] ~@8 eb5@3", // Am7b5 C5 Am7b5 Am7 Am7b5 Am7 Adim
W: "[d4,gb4,c5,d5]@2 ~ [d4,gb4,c5,d5] [d4,gb4,c5,d5]@2 [gb4,c5,d5] [d4,gb4,c5,d5]@2 [d4,gb4,c5,d5] [d4,gb4,c5,d5]@2 [gb4,c5,d5] [d4,gb4,c5,d5] [d4,gb4,c5,d5]@2", // D7
X: "[d4,g4,bb4,d5] ~@2 [d4,g4,bb4,d5] [g4,bb4,d5] ~@2 [d4,g4,bb4,d5] ~ [d4,g4] [d4,g4,bb4,d5]@2 [g4,bb4,d5] [d4,g4,bb4,d5] [g4,bb4,d5]@2, ~@4 d4@3 ~@9", // Gm G5 Gm
Y: "[d4,g4,bb4,d5]", // Gm
Z: "[eb4,g4,bb4,d5]@2 [eb4,g4,bb4,d5] [g4,bb4] ~ eb4 [eb4,g4,bb4,d5]@2 [g4,bb4,d5] [eb4,g4,bb4,d5]@3 ~ bb4 [eb4,g4,bb4]@2, ~@3 [eb4,d5]@3 ~@6 [eb4,g4,bb4,d5]@2 ~@2, ~@4 [g4,bb4]@2 ~@7 d5@3", // Ebmaj7 Gm Ebmaj7 Gm Ebmaj7 Eb Ebmaj7 Gm
AA: "[~@2 bb4@35 ~@11, [bb2,f3]@35 ~@13, ~ [bb3,d4,f4,d5]@35 ~@12]/3", // Bb5 Bb
})).s("gm_electric_guitar_clean").gain(0.05).pan(0.9)
// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note(`<
~@3 A ~@5 B ~ C D E ~@2 F G H I J K L M N ~ H I J K L M N ~@3 A ~@5 B ~ C D E ~@2 F G H I J K L M N ~ H I J K L M N
~@3 A ~@7 A ~@7 A ~@10
>`.pickRestart({
A: "~ d4 ~@6 f4 ~@3 a4@2 ~@2", B: "~ c4 ~@14", C: "~@8 d4 ~@7", D: "~@13 g4 ~@2", E: "~ c4 ~@12 c4 ~",
F: "~@2 [d4,gb4,c5] ~@5, ~ d5@2 ~", G: "~@4 [d4,g4,bb4,d5] ~@3", H: "~@2 [g4,bb4,eb5] ~@13",
I: "~@4 a4@3 ~@3 eb5@3 ~@3", J: "~@2 [a4,d5] ~@11 d4@2", K: "~@3 [eb4,g4] ~@4 [eb4,g4,bb4,d5]@2 ~@6",
L: "~@8 [c4,g4,a4,eb5] ~@3 [g4,a4,eb5] ~ [c4,g4,a4] ~", M: "~@2 [gb4,c5,d5] ~@5 [c5,d5] ~@7",
N: "~@2 [g4,bb4,d5] ~@3 [g4,bb4,d5] ~ [g4,bb4,d5] ~@7", // Gm
})).s("gm_electric_guitar_clean").gain(0.03).pan(0.9)
// drums · kick
const kick = s("bd").struct("<~ A@15 B C@8 D C@6 E D A@9 F A F A@3 B C@8 D C@6 E D A@25 C G ~@2>".pickRestart({
A: "x ~@3 x!2 ~@2", B: "x ~@2 x ~@4", C: "x!2", D: "x", E: "x ~@3 x ~@2 x", F: "x ~@3 x!2 ~ x", G: "~ x ~@14",
})).gain(0.72)
// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
~ A@9 B A B A@3 ~ C@2 D@5 E C D@2 E C@3 ~ D A@15 ~ C@2 D@5 E C D@2 E C@3 ~ D A@26 ~@3
>`.pickRestart({
A: "~@7 x ~@8", B: "~@7 x ~@6 x ~", C: "~@7 x", D: "~@3 x ~@4", E: "~@3 x ~@3 x",
})).gain(0.32)
// drums · rim
const rim = s("rim").struct("<~@17 A@8 ~ A@7 ~@17 A@8 ~ A@7 ~@26 B ~@3>".pickRestart({
A: "~ x ~ x", B: "~@3 x",
})).gain(0.56)
// drums · snare
const snare = s("sd").struct("<~ A@15 B ~@16 C A@15 B ~@16 C A@25 B ~@3>".pickRestart({
A: "~ x ~ x", B: "~ x ~@2", C: "~@3 x ~@4",
})).gain(0.72)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@33 [~@2 x!3 ~@11] ~@32 [~@2 x!3 ~@11] ~@25 [~ x] ~@3>").gain(0.32)
// drums · hihat
const hihat = s("hh").struct("<A ~@16 B C@7 D B C@6 ~@17 B C@7 D B C@6 ~@26 E ~@3>".pickRestart({
A: "x!2", B: "~@4 x ~ x ~ x!2 ~@2 x ~ x ~", C: "x ~@3 x ~ x ~ x!2 ~@2 x ~ x ~", D: "~@7 x", E: "~@10 x!2 ~@4",
})).gain(0.4)
// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<A ~@16 B@8 ~ B@7 ~@17 B@8 ~ B@7 ~@30>".pickRestart({
A: "~ x ~ x", B: "~ x ~@13 x",
})).gain(0.24)
// drums · low tom
const low_tom = s("lt").struct("<~@33 [~@3 x ~@4] ~@32 [~@3 x ~@4] ~@29>").gain(0.48)
// drums · mid tom
const mid_tom = s("mt").struct("<~@32 A B ~@31 A B ~@25 C ~@3>".pickRestart({
// … 33 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.