0:00/0:00
// Prison Sex — Tool
// 113 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, 3/4 at bar 33, 4/4 at bar 33, 3/4 at bar 56, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 128 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(113/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.
// other · distortion guitar · "Guitar1"
const distortion_guitar = note(`<
A B C D E F@3 G ~@8 H I@3 J ~@7 K@6 L M L N O P Q@2 R S ~@8 T U@5 V@2 W@2 X Y Z@5 AA@2 AB@4 AC@8 AD@8 AE AF@3 AG@4
AH@2 AI AJ AK@2 AL@2 AM AN@2 AO AP AQ AR AS AT AU AV AW AX@8
>`.pickRestart({
A: "~@7 b1", B: "~@2 b1@2 ~ b1@2 b1@6 b1@2 [b1,a2] ~ [b1,a2] ~ d3@2 e3@6 b1@5",
C: "~ b1@2 ~@2 b1@2 b1@4 [b1,a2] ~ [b1,a2] ~ [b1,a2] ~ [b1,a2] ~ d3@2 e3@6 b1@4 ~", // B7
D: "~ b1@2 ~@2 b1@2 b1@6 b1@2 [b1,a2] ~ [b1,a2] ~ d3@2 e3@6 ~ e3@4", E: "~ e3 d3@3 d3 b2@3 b2 a2 b2 d3@2 d3@2",
F: "d2@4 a2 ~@3 [a2,e3]@8 d2@4 a2@2 b2@6 d3@4", G: "~ d2@4 a2 ~@3 [a2,e3]@8 d2@4 a2@2 b2@6 ~@3",
H: "~ d2@4 d3@4 a2 ~@3 g3@12 ~ a2@2 b2@4", I: "b2@2 d2@4 d3@4 a2 ~@3 g3@12 a2@2 b2@4", J: "b2 ~@15",
K: "[~@7 d2@4 d3@4 a2 ~@3 g3@12 a2@2 b2@4 b2@2 d2@4 d3@4 a2 ~@3 g3@12 a2@2 b2@4 b2@2 d2@4 d3@4 a2 ~@3 g3@12 a2@2 b2@4 b2@2 d2@4 d3@4 a2 ~@3 g3@12 b1@8 b1@4 a2@8 b1@4 d2@8 b1@4 e2@8 ~ b1@4 e2@4 b1@4 d2@4 b1@4]/6",
L: "b1@2 b1 a2@2 b1 d2@2", M: "b1 e2@2 b1 e2 b1 d2 b1", N: "~ b1@4 e2@8 b1@4 e2@4 b1@4 d2@4 b1@3",
O: "~ [b2,f#3]@4 [b2,f#3]@4 [b2,f#3]@4 [e3,b3]@4 [e3,b3]@4 [e3,b3]@4 [d3,a3]@4 [d3,a3]@3", // B5 E5 D5
P: "~ [d3,a3]@4 [a3,e4]@4 [a3,e4]@4 [a3,e4]@4 [e3,b3]@4 [e3,b3]@4 [d3,a3]@4 [d3,a3]@3", // D5 A5 E5 D5
Q: "~ d3@4 d2@4 a2 ~@3 [a2,e3]@8 d2@4 a2@2 b2@5", R: "~ d3@4 d2@3 a2 ~@3 [a2,e3]@8 d2@4 a2@2 b2@6",
S: "d3@4 d2@4 a2 ~@3 [e3,b3]@8 d3@2 e3@2 d3@2 b2@2 a2@4", T: "d2@4 d3@4 a2 ~@3 g3@12 a2@2 b2@4 b2@2",
U: "[d2@4 d3@4 a2 ~@3 g3@12 ~ b2@4 b2@2 d2@4 d3@4 a2 ~@3 g3@12 a2@2 b2@4 b2@2 d2@4 d3@4 a2 ~@3 g3@12 b1@8 b1@4 a2@8 b1@4 d2@8 b1@4 e2@8 b1@4 e2@4 b1@4 d2@4 b1@4 ~ b1@8, ~@12 a2 ~@67]/5",
V: "[b1 a2@2 b1 d2@2 b1 e2@2 b1 e2 b1 d2 b1 b1@2]/2", W: "[b1 a2@2 b1 d2@2 b1 e2@2 b1 e2 b1 d2 b1 [b2,f#3]!2]/2",
X: "[b2,f#3] [e3,b3]!3 [d3,a3]!3 [a3,e4]", Y: "[a3,e4]!2 [e3,b3]!2 [d3,a3]!2 [b2,f#3]!2",
Z: "[[b2,f#3]@4 [e3,b3]@4 [e3,b3]@3 [e3,b3]@4 [d3,a3]@4 [d3,a3]@4 [d3,a3]@4 [a3,e4]@4 [a3,e4]@4 [a3,e4]@4 [e3,b3]@4 [e3,b3]@4 [d3,a3]@4 [d3,a3]@4 [b2,f#3]@4 [b2,f#3]@3 [b2,f#3]@4 [e3,b3]@4 [e3,b3]@4 [e3,b3]@4 [d3,a3]@4 [d3,a3]@4 [d3,a3]@4 [a3,e4]@4 [a3,e4]@4 [a3,e4]@3 [e3,b3]@4 [e3,b3]@4 [d3,a3]@4 [d3,a3]@4 b1@4 ~@2 b1@2 ~@2 b1@2 b1@6 b1@2 [b1,a2]!2 ~ d3@2 e3@2 g3@2 a3@2 b1@4 ~@2 b1@2 ~@2 b1@2]/5", // B5 E5 D5 A5 E5 D5 B5 E5 …
AA: "[b1@6 b1@2 [b1,a2] ~ [b1,a2] ~ d3@2 ~ g3@2 a3@2 b1@4 ~@2 b1@2 ~@2 b1@2 b1@6 b1@2 [b1,a2] ~ [b1,a2] ~ d3@2 e3@2 g3@2 a3@2 a3@5 a3@2 g3@6, ~@7 e3 ~@24]/2", // B7
AB: "[g3@2 e3@6 e3@2 d3@2 e3@2 g3@4 d2@4 d3@4 a2 ~@3 g3@11 a2@2 b2@4 b2@2 d2@4 d3@4 a2 ~@3 g3@12 a2@2 b2@4 b2@2 d2@4 d3@4 a2 ~@3 g3@12 a2@2 b2@4 b2@2 d2@4 d3@4 a2 ~@3 g3@3]/4",
AC: "[~@9 [b1,b2,f#3]@166 ~@71 e4@10, ~@175 b3@64 ~@17, ~@95 e4@28 ~@5, ~@205 f#4@25 ~ f#4@25, ~@215 b4@40 ~]/8", // B5
AD: "[~@40 b3@35 e3@2 ~@38 e3@3 ~@37 e3@3 ~@2 a3@35 f#3@3 ~@3 c#3@30 [f#4,b4]@5 e4@2 f#4@3 [f#4,b4]@7 [f#4,b4]@3 [f#4,b4]@5, d4@35 d4@45 b3@40 a#3@40 ~@38 g#3@33 ~@25, ~@15 a3@25 ~@37 f#3@38 ~@3 f#3@38 ~@2 f#3@37 ~@61]/8", // B5
AE: "[f#4,b4]@2 [f#4,b4]@5 [f#4,b4]@3 [f#4,b4]@5 [f#4,b4]@5 e4@2 f#4@3 [f#4,a#4]@7", // B5 F#
AF: "[[f#4,a#4]@3 [f#4,a#4]@5 [f#4,a#4]@2 [f#4,a#4]@5 [f#4,a#4]@3 [f#4,a#4]@5 [f#4,a#4]@3 [f#4,a#4]@2 e4@3 f#4@2 [f#4,a4]@10 [f#4,a4]@5 [f#4,a4]@3 [f#4,a4]@5 [f#4,a4]@2 [f#4,a4]@5 [f#4,a4]@5 e4@3 f#4@2 b3@3 b3@5 b3@2 b3@3 b3@5 b3@2 b3@3]/3", // F# F#m
AG: "[b3@5 b3@2 a3@10 ~@15 f#3@15 ~ e3@5 d3@5 ~@15 f#3@15 e3@5 f#3@5 g3@15 f#3@15, ~@17 b2@40 ~ b2@40 ~@30]/4",
AH: "[e3@5 d3@5 ~@15 f#3@15 g3@10 ~@14, ~@5 b2@20 ~@7]/2", AI: "~@8 g3@5 ~@3", AJ: "~@23 g3@9",
AK: "[~@15 g3@5 ~@12]/2",
AL: "[~@4 g3@10 ~@2 b3@2 ~ b3@2 e4@2 ~ b3@2 b3@2 d4@2 ~ b3@2 b3@2 a4@2 ~ b3@2 b3@2 ~ b4@2 b3@2 a4@2 ~ b3@2 d4@2 b3@2 ~ b3@2 e4@2 ~ b3@2]/2",
AM: "b3@2 d4@2 ~ b3@2 b3@2 a4@2 ~ b3@2 b3@2 b4@2 ~ b3@2 a4@2 b3@2 ~ d4@2 b3@2 b3@2",
AN: "[~ e4@2 b3@2 b3@2 ~ d4@2 b3@2 b3@2 ~ a4@2 b3@2 b3@2 ~ b4@2 b3@2 a4@2 ~ b3@2 d4@2 b3@2 ~ b3@2 e4@2 b3@2 ~ b3@2 d4@2 b3@2 ~ b3@2 a4@2 b3@2 ~ b3@2 b4@2 b3@2 ~]/2",
AO: "a4@2 b3@2 e5 ~ e5!6 ~ e5!6 ~ e5!7 ~ e5!4", AP: "e5!2 ~ e5!6 ~ e5!6 ~ e5!6 ~ e5!6 ~ e5",
AQ: "e5!5 ~ e5!6 ~ e5!6 ~ e5!6 ~ e5!5", AR: "e5 ~ e5!6 ~ e5!6 ~ e5!4 [d5,e5]@2 ~ e5@2 e5@2 [c#5,e5]@2 ~ e5@2",
AS: "e5@2 [b4,e5]@2 ~ e5@2 [d5,d#5]@2 d5@2 ~ d5@2 d5@2 d5@2 ~ e5@2 d5@2 e5@2 ~ d5@2 e5@2 d5@2, ~@13 [b2,g3]@3", // E5 D#maj7 Em
AT: "~ e5@2 d5@2 ~ e5@2 d5@2 e5@2 ~ d5@2 e5@2 ~ d5@2 e5@2 d5@2 ~@8", AU: "[b2,g3] ~@3", AV: "~@9 [b2,g3]@8 ~@15",
AW: "~@19 [b2,g3]@8 ~@5", AX: "[~@31 [b2,g3]@46 [c2,b2,g3]@49 [c2,b2,b3]@53 [b1,b2,f#3]@63 ~@14]/8",
})).s("gm_distortion_guitar").gain(0.64)
// bass · electric guitar muted · "Guitar2(Mute)"
const bass = note(`<
~@8 A B C@4 D E@3 ~@3 F@2 G H@3 I J@2 ~@15 D@8 ~@48 K L M N O P@2 Q R@2 S T@3 U V W@2 X Y ~@7
>`.pickRestart({
A: "~@29 d2@3", B: "~ b1@4 b1@4 e2@8 b1@4 a1@2 [b1,b2]@2 [b1,b2]@2 [b1,b2]@2 d2@3",
C: "[~ b1@4 b1@4 ~ e2@8 b1@4 a1@2 [b1,b2]@2 [b1,b2]@2 [b1,b2]@2 d2@4 b1@4 b1@4 e2@8 b1@4 a1@2 [b1,b2]@2 [b1,b2]@2 [b1,b2]@2 d2@4 ~ b1@4 b1@4 e2@8 b1@4 a1@2 [b1,b2]@2 [b1,b2]@2 [b1,b2]@2 d2@4 b1@4 b1@4 e2@8 b1@4 a1@2 ~ [b1,b2]@2 [b1,b2]@2 [b1,b2]@2]/4", // B
D: "d2@2 b1@2 b1@2 e2@4 b1@2 a1 [b1,b2]!3", // B
E: "[d2@4 b1@4 b1@4 e2@8 ~ b1@4 a1@2 [b1,b2]@2 [b1,b2]@2 [b1,b2]@2 d2@4 b1@4 b1@4 e2@8 b1@4 a1@2 [b1,b2]@2 [b1,b2]@2 [b1,b2]@2 ~@31]/3", // B
F: "[~@3 d2@4 b1@4 b1@4 e2@8 b1@4 a1@2 [b1,b2]@2 [b1,b2]@2 [b1,b2]@2 d2@4 b1@4 b1@4 e2@8 b1@4 ~ a1@2 [b1,b2]@2]/2", // B
G: "[b1,b2]!2 d2@2 b1@2 b1@2 e2@4 b1@2 a1 [b1,b2]", // B
H: "[[b1,b2]@2 [b1,b2]@2 d2@4 b1@4 b1@4 e2@8 ~ b1@4 a1@2 [b1,b2]@2 [b1,b2]@2 [b1,b2]@2 d2@4 b1@4 b1@4 e2@8 b1@4 a1@2 [b1,b2]@2 [b1,b2]@2 [b1,b2]@2 d2@4 b1@4 ~ b1@4 e2@8 b1@4 a1@2]/3", // B
I: "[b1,b2]!3 d2@2 b1@2 b1@2 e2@4 b1@2 a1", // B
J: "[[b1,b2]@2 [b1,b2]@2 ~ [b1,b2]@2 d2@4 b1@4 b1@4 e2@8 b1@4 a1@2 [b1,b2]@2 [b1,b2]@2 [b1,b2]@2 ~@25]/2", // B
K: "~@18 b1@7 b1@5 b1@2", L: "~ b1@7 b1@2 ~ b1@2 b1@2 ~@10 b1@7", M: "~ b1@5 b1@2 b1@7 ~ b1@2 b1@2 b1@2 ~@10",
N: "~ b1@7 b1@5 b1@2 b1@7 ~ b1@2 b1@2 b1@2 ~@3", O: "~@8 b1@7 b1@5 b1@2 b1@7 b1@2 ~",
P: "[b1@2 b1@2 ~@10 d2@2 b1@2 ~ b1@2 e2@2 ~ b1@2 b1@2 d2@2 ~ b1@2 b1@2 a2@2 ~ b1@2 b1@2 ~ b2@2 b1@2 a2@2 ~ b1@2 d2@2 b1@2 ~ b1@2 e2@2 ~ b1@2]/2",
Q: "b1@2 d2@2 ~ b1@2 b1@2 a2@2 ~ b1@2 b1@2 b2@2 ~ b1@2 a2@2 b1@2 ~ d2@2 b1@2 b1@2",
R: "[~ e2@2 b1@2 b1@2 ~ d2@2 b1@2 b1@2 ~ a2@2 b1@2 b1@2 ~ b2@2 b1@2 a2@2 ~ b1@2 d2@2 b1@2 ~ b1@2 e2@2 b1@2 ~ b1@2 d2@2 b1@2 ~ b1@2 a2@2 b1@2 ~ b1@2 b2@2 b1@2 ~]/2",
S: "a2@2 b1@2 d2@5 d2@2 e2@5 e2@2 d2@5 d2@2 a2@5 a2@2",
T: "[b2@2 ~ b1@2 a2@2 b1@2 ~ d2@4 d2@2 ~ e2@4 e2@2 ~ d2@4 d2@2 ~ a2@4 a2@2 ~ b2@2 b1@2 a2@2 ~ b1@2 d2@5 d2@2 e2@5 e2@2 d2@5 d2@2 a2@5 a2@2 b2@2 b1@2 ~ a2@2 b1@2 d2@5 d2@2 e2@5]/3",
U: "e2@2 d2@5 d2@2 a2@5 a2@2 b2@2 ~ b1@2 a2@2 b1@2 ~ b1@6",
V: "~ b1@5 b1@2 b1@5 ~@2 b1@5 b1@2 b1@2 ~ b1@2 b1@2 ~ b1@2",
W: "[~@8 b1@5 b1@2 b1@5 ~@3 b1@5 b1@3 b1@2 b1@3 b1@2 b1@3 ~@8 b1@5 b1@3 b1@5 ~@2]/2",
X: "~ b1@5 b1@3 b1@2 b1@3 b1@3 b1@3 ~@7 b1@5", Y: "~ b1@3 b1@6 ~@2 b1@5 b1@3 b1@3 b1@3 b1@3 b1@3",
})).s("gm_electric_guitar_muted").gain(0.64)
// bass · electric bass finger · "Bass"
const bass_2 = note(`<
~@4 A B@3 C D E@4 F G@3 H@3 I@2 J K@3 L M@7 N O N P Q R S@2 T U F@8 V W@5 X@2 Y@2 Z AA AB@5 AC@2 AD@5 AE@3 AF@2 AG@2
AH AI AJ@2 AK AL AM@2 AN AO@3 AP AQ@3 AR@2 AS AT AU@2 AV@2 AW AX@2 AY AZ@3 BA@2 BB@3 BC@8
>`.pickRestart({
A: "~@7 d2", B: "d1@4 a1 ~@3 a1@8 d1@4 a1@2 b1@6 d2@4", C: "~ d1@4 a1 ~@3 a1@8 d1@4 a1@2 b1@6 d2@3",
D: "~ b1@4 b1@4 e2@8 b1@4 a1@2 b1@2 b1@2 b1@2 d2@3",
E: "[~ b1@4 b1@4 ~ e2@8 b1@4 a1@2 b1@2 b1@2 b1@2 d2@4 b1@4 b1@4 e2@8 b1@4 a1@2 b1@2 b1@2 b1@2 d2@4 ~ b1@4 b1@4 e2@8 b1@4 a1@2 b1@2 b1@2 b1@2 d2@4 b1@4 b1@4 e2@8 b1@4 a1@2 ~ b1@2 b1@2 b1@2]/4",
F: "d2@2 b1@2 b1@2 e2@4 b1@2 a1 b1!3",
G: "[d2@4 b1@4 b1@4 e2@8 ~ b1@4 a1@2 b1@2 b1@2 b1@2 d2@4 b1@4 b1@4 e2@8 b1@4 a1@2 b1@2 b1@2 b1@2 d1@4 d2@4 b1 ~@3 g2@12 ~ a1@2 b1@4]/3",
H: "b1@2 d1@4 d2@4 b1 ~@3 g2@12 a1@2 b1@4",
I: "[b1@2 ~ d2@4 b1@4 b1@4 e2@8 b1@4 a1@2 b1@2 b1@2 b1@2 d2@4 b1@4 b1@4 e2@8 b1@4 ~ a1@2 b1@2]/2",
J: "b1!2 d2@2 b1@2 b1@2 e2@4 b1@2 a1 b1",
K: "[b1@2 b1@2 d2@4 b1@4 b1@4 e2@8 ~ b1@4 a1@2 b1@2 b1@2 b1@2 d2@4 b1@4 b1@4 e2@8 b1@4 a1@2 b1@2 b1@2 b1@2 d2@4 b1@4 ~ b1@4 e2@8 b1@4 a1@2]/3",
L: "b1!3 d2@2 b1@2 b1@2 e2@4 b1@2 a1",
M: "[b1@2 b1@2 ~ b1@2 d2@4 b1@4 b1@4 e2@8 b1@4 a1@2 b1@2 b1@2 b1@2 d1@4 d2@4 b1 ~@3 g2@12 a1@2 b1@4 b1@2 d1@4 d2@4 b1 ~@3 g2@12 a1@2 b1@4 b1@2 d1@4 d2@4 b1 ~@3 g2@12 a1@2 b1@4 b1@2 d1@4 d2@4 b1 ~@3 g2@12 b1@8 b1@4 a2@8 b1@4 d2@8 b1@4 e2@8 ~ b1@4 e2@4 b1@4 d2@4 b1@4]/7",
N: "b1@2 b1 a2@2 b1 d2@2", O: "b1 e2@2 b1 e2 b1 d2 b1", P: "~ b1@4 e2@8 b1@4 e2@4 b1@4 d2@4 b1@3",
Q: "~ b1@4 b1@4 b1@4 e2@4 e2@4 e2@4 d2@4 d2@3", R: "~ d2@4 a2@4 a2@4 a2@4 e2@4 e2@4 d2@4 d2@3",
S: "~ d2@4 d1@4 a1 ~@3 a1@8 d1@4 a1@2 b1@5", T: "~ d2@4 d1@3 a1 ~@3 a1@8 d1@4 a1@2 b1@6",
U: "d2@4 d1@4 a1 ~@3 [a1,a2,e3]@8 d2@2 e2@2 d2@2 b1@2 a1@4", V: "d1@4 d2@4 b1 ~@3 g2@12 a1@2 b1@4 b1@2",
W: "[d1@4 d2@4 b1 ~@3 g2@12 ~ b1@4 b1@2 d1@4 d2@4 b1 ~@3 g2@12 a1@2 b1@4 b1@2 d1@4 d2@4 b1 ~@3 g2@12 b1@8 b1@4 a2@8 b1@4 d2@8 b1@4 e2@8 b1@4 e2@4 b1@4 d2@4 b1@4 ~ b1@8, ~@12 a1 ~@67]/5",
X: "[b1 a2@2 b1 d2@2 b1 e2@2 b1 e2 b1 d2 b1 b1@2]/2", Y: "[b1 a2@2 b1 d2@2 b1 e2@2 b1 e2 b1 d2 b1!3]/2",
Z: "b1 e2!3 d2!3 a2", AA: "a2!2 e2!2 d2!2 b1!2",
AB: "[b1@4 e2@4 e2@3 e2@4 d2@4 d2@4 d2@4 a2@4 a2@4 a2@4 e2@4 e2@4 d2@4 d2@4 b1@4 b1@3 b1@4 e2@4 e2@4 e2@4 d2@4 d2@4 d2@4 a2@4 a2@4 a2@3 e2@4 e2@4 d2@4 d2@4 b1@4 ~@2 b1@2 ~@2 b1@2 b1@6 b1@2 b1!2 ~ d2@2 e2@2 g2@2 a2@2 b1@4 ~@2 b1@2 ~@2 b1@2]/5",
AC: "[b1@6 b1@2 b1 ~ b1 ~ d2@2 ~ g2@2 a2@2 b1@4 ~@2 b1@2 ~@2 b1@2 b1@6 b1@2 b1 ~ b1 ~ d2@2 e2@2 g2@2 a2@2 e2@5 e2@2 d2@6, ~@7 e2 ~@24]/2",
AD: "[d2@2 b1@6 b1@2 a1@2 b1@2 d2@4 d1@4 d2@4 b1 ~@3 g2@11 a1@2 b1@4 b1@2 d1@4 d2@4 b1 ~@3 g2@12 a1@2 b1@4 b1@2 d1@4 d2@4 b1 ~@3 g2@12 a1@2 b1@4 b1@2 d1@4 d2@4 b1 ~@3 g2@12 a1@2 b1@5 a1@3 b1@5 a1@3 b1@5]/5",
AE: "[a1@3 b1@5 a1@2 b1@3 b1@3 b1@2 a1@3 b1@5 a1@3 b1@5 a1@2 b1@5 ~ a1@2 b1@5 a1@3 b1@3 b1@2 b1@3 a1@2 b1@5 ~ a1@2 b1@5 a1@3 b1@5 a1@3 b1@5 a1@3 b1@2]/3",
AF: "[b1@3 b1@2 a1@3 b1@5 a1@3 b1@5 a1@3 b1@5 a1@2 b1@5 ~ a1@2 b1@3 b1@2 b1@3 a1@2 b1@5 a1@3 b1@5 a1@2]/2",
AG: "[~ b1@5 a1@2 b1@5 a1@3 b1@2 b1@3 b1@2 a1@3 b1@5 a1@2 b1@5 ~ a1@2 b1@5 a1@3 b1@5 a1@2 b1@3 b1@2 b1@3]/2",
AH: "a1@2 b1@5 a1@3 b1@5 a1@2 b1@5 a1@3 b1@5 a1@2", AI: "b1@3 b1@2 b1@3 a1@2 b1@5 a1@3 b1@5 a1@2 b1@5 a1@2",
AJ: "[~ b1@5 a1@2 b1@3 b1@2 b1@3 a1@2 b1@5 ~ a1@2 b1@5 a1@3 b1@5 a1@2 b1@5 a1@3 b1@2 b1@3 b1@2 a1@3 b1@5]/2",
AK: "a1@2 b1@5 a1@3 b1@5 a1@2 b1@5 a1@3 b1@2 b1@3 b1@2", AL: "a1@3 b1@5 a1@2 b1@5 a1@3 b1@5 a1@2 b1@5 a1@2",
AM: "[~ b1@2 b1@3 b1@3 a1@2 b1@5 a1@3 b1@5 a1@2 b1@5 a1@3 b1@5 a1@2 b1@3 b1@2 b1@3 a1@2 b1@5 a1@3 b1@5]/2",
AN: "a1@2 b1@5 a1@3 b1@5 a1@2 b1@3 b1@2 b1@3 a1@2 b1@5",
AO: "[a1@3 b1@5 a1@2 b1@5 a1@3 b1@5 a1@3 b1@2 b1@3 b1@2 a1@3 b1@5 a1@2 b1@5 a1@3 b1@5 a1@2 b1@5 a1@3 b1@2 b1@3 b1@2 a1@3 b1@5 a1@2 b1@5 a1@3 b1@5]/3",
AP: "a1@2 b1@5 a1@3 b1@2 b1@3 b1@2 b1@15",
AQ: "[f#2@15 ~ b1@5 a1@5 a1@5 a1@5 a1@5 a1@5 a1@5 a1@5 b1@5 a1@5 g1@2 g1@5 g1@3 g1@5 g1@2 g1@5 g1@3 g1@5]/3",
AR: "[g1@2 g1@5 ~@3 a1@5 a1@5 a1@5 a1@5 a1@5 a1@5 a1@5 a1@5 b1@7 b1@5 b1@2]/2",
AS: "~ b1@7 b1@2 ~ b1@2 b1@2 ~ g2@9 b1@7", AT: "~ b1@5 b1@2 b1@7 ~ b1@2 b1@2 b1@2 ~ g2@9",
AU: "[~ b1@7 b1@5 b1@2 b1@7 ~ b1@2 b1@2 b1@2 ~ g2@10 b1@7 b1@5 b1@2 b1@7 b1@2 ~]/2",
AV: "[b1@2 b1@2 g2@10 d2@2 b1@2 ~ b1@2 e2@2 ~ b1@2 b1@2 d2@2 ~ b1@2 b1@2 a2@2 ~ b1@2 b1@2 ~ b2@2 b1@2 a2@2 ~ b1@2 d2@2 b1@2 ~ b1@2 e2@2 ~ b1@2]/2",
AW: "b1@2 d2@2 ~ b1@2 b1@2 a2@2 ~ b1@2 b1@2 b2@2 ~ b1@2 a2@2 b1@2 ~ d2@2 b1@2 b1@2",
AX: "[~ e2@2 b1@2 b1@2 ~ d2@2 b1@2 b1@2 ~ a2@2 b1@2 b1@2 ~ b2@2 b1@2 a2@2 ~ b1@2 d2@2 b1@2 ~ b1@2 e2@2 b1@2 ~ b1@2 d2@2 b1@2 ~ b1@2 a2@2 b1@2 ~ b1@2 b2@2 b1@2 ~]/2",
AY: "a2@2 b1@2 d2@5 d2@2 e2@5 e2@2 d2@5 d2@2 a2@5 a2@2",
AZ: "[b2@2 ~ b1@2 a2@2 b1@2 ~ d2@4 d2@2 ~ e2@4 e2@2 ~ d2@4 d2@2 ~ a2@4 a2@2 ~ b2@2 b1@2 a2@2 ~ b1@2 d2@5 d2@2 e2@5 e2@2 d2@5 d2@2 a2@5 a2@2 b2@2 b1@2 ~ a2@2 b1@2 d2@5 d2@2 e2@5]/3",
BA: "[e2@2 d2@5 d2@2 a2@5 a2@2 b2@2 ~ b1@2 a2@2 b1@2 ~ [b1,b2]@14 [b1,b2]@14 [b1,g2]@10]/2", // B Em
BB: "[[b1,b2]@15 [b1,b2]@15 ~ [b1,g2]@10 [b1,b2]@16 [b1,b2]@16 [b1,g2]@10 [b1,b2]@13]/3", // B Em B Em B
BC: "[~@4 [b1,b2]@16 [b1,g2]@11 [b1,g2]@46 [c2,b2]@49 [c2,b2]@53 [b1,b2]@63 ~@14]/8", // B Em Cmaj7 B
})).s("gm_electric_bass_finger").gain(0.64)
// drums · kick
const kick = s("bd").struct(`<
~@4 A B@3 C D E F G H I J K L@3 M N O P@2 Q R S T U V@2 W X Y Z AA AB AC AD AE AF@2 AG AH I@7 AI AJ AK AL AM AN AO AP
AQ AR AS@2 AT AU AV AW AX AY AZ BA BB BC@3 BD BE BF ~ BG BH BI ~ BJ BK BL BM AH BN BO BP BQ AH BR BS BT BU BV BW BX BY
BZ CA CB CC CD CE CF CG CH CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV CW CX ~
>`.pickRestart({
A: "~@5 x ~@2 x ~ x ~ x ~ x ~", B: "~ x ~@2 x ~@2 x ~ x ~@4 x ~", C: "~@29 x ~@2",
D: "~@3 x ~@7 x ~@3 x ~@9 x ~@3 x ~@2", E: "~@3 x ~@8 x ~@3 x ~@9 x ~@3 x ~", F: "~@2 x ~@3 x ~ x ~@4 x ~ x",
G: "~@5 x ~@7 x ~@3 x ~@9 x ~@3 x", H: "~@5 x ~@7 x ~@3 x ~@10 x ~@3", I: "x ~@2 x ~@3 x ~ x ~@4 x ~",
J: "x ~@5 x ~@7 x ~@4 x ~@9 x ~@2", K: "~ x ~@5 x ~@7 x ~@3 x ~@12", L: "~ x ~@2 x ~@2 x ~@2 x ~ x ~@3",
M: "~ x ~@14", N: "~@3 x ~@5 x ~@7 x ~@3 x ~@9 x", O: "~@3 x ~@5 x ~@7 x ~@3 x ~@10", P: "x ~ x ~@2 x ~@3 x ~ x ~@4",
Q: "~ x ~@3 x ~@5 x ~@7 x ~@3 x ~@8", R: "~ x ~@3 x ~@6 x ~@7 x ~@3 x ~@7", S: "~ x ~ x ~@2 x ~@3 x ~ x ~@3",
T: "~@2 x ~@4 x ~@5 x ~@7 x ~@3 x ~@6", U: "~@5 x ~ x ~@5 x ~@5 x ~@5 x ~@3 x ~@2",
V: "~@7 x ~@5 x ~@5 x ~@5 x ~@3 x ~@2", W: "~@7 x ~@5 x ~@5 x ~@11 x", X: "~@7 x ~@11 x ~@3 x ~@7 x",
Y: "~@3 x ~ x ~ x", Z: "x ~@2 x ~ x ~@2", AA: "x ~@2 x ~ x ~ x", AB: "x ~ x!2 ~ x ~@2",
AC: "~ x ~@11 x ~@7 x ~@7 x ~@2", AD: "~@5 x ~@7 x ~@7 x ~@7 x ~@2", AE: "~@5 x ~@7 x ~@5 x ~ x ~ x ~@8",
AF: "~ x ~@11 x ~@3 x ~@9 x ~@4", AG: "~ x ~@10 x ~@3 x ~@9 x ~@5", AH: "x", AI: "x ~@2 x ~@3 x ~ x ~@5 x",
AJ: "x ~@2 x ~@2 x ~@2 x ~ x ~@4", AK: "x ~@5 x ~@5 x ~@5 x ~@3 x ~@8 x", AL: "~@5 x ~@5 x ~@5 x ~@3 x ~@9 x",
AM: "~@5 x ~@5 x ~@11 x ~@7 x", AN: "~@11 x ~@3 x ~@7 x ~@8", AO: "~@3 x ~@7 x ~@7 x ~@4 x ~@7",
AP: "~ x ~ x ~@2 x ~", AQ: "~ x ~ x ~ x!2 ~", AR: "x!2 ~ x ~@2 x ~", AS: "~ x ~ x ~ x ~ x",
AT: "~@2 x ~@2 x!3 ~ x!3 ~@2 x ~", AU: "~@4 x ~@6 x ~@7 x ~@7 x ~@4",
AV: "~@3 x ~@5 x ~ x ~ x ~@3 x ~@3 x ~ x ~ x ~ x ~ x ~@2", AW: "x ~ x!2 ~ x!2 ~ x!5 ~ x!2",
AX: "~@2 x ~ x ~@2 x ~ x ~ x ~@9 x ~@5 x ~@4", AY: "~ x ~@7 x ~@6 x ~@3 x ~@5 x ~@5",
AZ: "x ~@7 x ~@6 x ~@3 x ~@5 x ~@5 x", BA: "~@7 x ~@7 x ~@8 x!2 ~@6", BB: "x!3 ~@15 x ~@11 x ~",
BC: "~ x ~@9 x ~@5 x ~@11 x ~@2", BD: "~ x ~@7 x ~@22", BE: "~@9 x ~@6", BF: "~@7 x", BG: "~@5 x ~@26",
BH: "~@15 x ~ x ~@4 x ~@9", BI: "~@23 x ~@2 x ~@4 x", BJ: "x ~ x ~@4 x ~@24", BK: "~@8 x ~ x ~@4 x ~@16",
BL: "~@8 x!2 ~@2 x ~@3", BM: "~@24 x ~@2 x ~@4", BN: "x ~@2 x ~@4 x ~@23", BO: "~@9 x ~ x ~@4 x ~@15",
BP: "~@17 x ~ x ~@4 x ~@7", BQ: "~@25 x ~ x ~@4", BR: "~ x ~@2 x ~@4 x ~@22", BS: "~@9 x ~@9 x ~@9 x ~@2",
BT: "~@17 x ~@7 x ~@6", BU: "~@4 x ~@8 x ~@2", BV: "~ x ~@14 x ~@9 x!2 ~@4", BW: "~@2 x ~@6 x ~@14 x ~@7",
BX: "~@10 x ~@6 x ~@7 x ~@6", BY: "~@13 x ~@4 x ~@6 x ~@2 x ~@3", BZ: "~@6 x ~@4 x ~@9 x ~@3 x ~@6",
CA: "~ x ~ x ~@9 x ~@4 x ~@9 x ~@3", CB: "~ x ~@6 x ~ x ~@9 x ~@4 x ~@6", CC: "~@3 x ~@4 x ~@6 x ~ x ~@9 x ~@4",
CD: "x ~@8 x ~@4 x ~@13 x ~@3", CE: "~@11 x ~@8 x ~@11", CF: "~ x ~@6 x ~@4 x ~@2", CG: "~@8 x ~@13 x ~@8 x",
CH: "~@13 x ~@13 x ~@4", CI: "~@9 x ~@6 x ~@6 x ~@6 x ~", CJ: "~@3 x ~@10 x ~@6 x ~@6 x ~@3",
CK: "~@3 x ~@4 x ~@11 x ~@6 x ~@4", CL: "~@2 x ~@6 x ~@3 x ~@11 x ~@6", CM: "x ~@6 x ~@6 x ~@4 x ~@6 x ~@5",
CN: "~@3 x ~@2 x ~ x ~@9 x ~@13", CO: "x ~@9 x ~@2 x ~ x ~@10 x ~@5", CP: "~@9 x ~@9 x ~@2 x ~@2 x ~@6",
CQ: "~@3 x ~@15 x ~@10 x ~", CR: "~ x ~@2 x ~@10 x ~@15 x", CS: "~@11 x ~ x ~@2 x ~@11 x ~@3",
CT: "~@13 x ~@11 x ~@2 x ~@2 x", CU: "~@6 x ~@8 x", CV: "~@11 x ~@3 x ~@2 x ~@12 x", CW: "~@19 x ~@12",
CX: "~@2 x ~@2 x ~@3 x ~@14 x ~@7",
})).gain(0.8)
// drums · snare
const snare = s("sd").struct(`<
~@4 A B@2 C D E F G H@2 I@2 J@2 K@2 L M@2 N O P Q@2 R@4 S T U I V W X Y@2 J@2 I Z I@10 H AA AB AA AC AD AE AF AG@2 AH
AI AJ AK AL AM AN AO J@3 AP AQ AR ~ AS AT AU AV AW AX AY AZ BA AW AX BB BC BD BE ~ BF BG BH BI BJ BK BL BM BN BO BP BQ
BR BS BT BU BV BW BX BY BZ CA CB CC CD CE CF CG CH CI CJ CK
>`.pickRestart({
A: "~@6 x ~@4 x ~@4", B: "~ x ~@3 x ~@2", C: "~@2 x ~@7 x ~@3 x!2", D: "~@5 x ~@3 x ~@7 x ~@3 x ~@10",
E: "~@5 x ~@15 x ~@10", F: "~@5 x ~@16 x ~@9", G: "~@3 x ~@7 x ~@4", H: "~@7 x ~@15 x ~@8", I: "~ x ~ x",
J: "~@9 x ~@15 x ~@6", K: "~@5 x ~@7 x ~@2", L: "~ x!2 ~@2 x ~ x ~@3 x ~ x ~@2", M: "~@11 x ~@15 x ~@4",
N: "~@3 x ~@3 x", O: "~@12 x ~@16 x ~@2", P: "~@13 x ~@15 x ~@2", Q: "~@7 x ~@7 x", R: "~@15 x ~@15 x",
S: "~@15 x ~@7 x ~@8", T: "~@11 x ~@20", U: "~@3 x ~@12 x ~@7 x ~@7", V: "~ x ~@2 x ~ x ~", W: "~ x ~@4 x ~",
X: "~@5 x ~@11 x ~@7 x ~@6", Y: "~ x ~@7 x ~@7 x ~@7 x ~@6", Z: "x!2 ~@2 x ~ x ~@3 x ~ x ~@3", AA: "~@7 x ~@7 x ~@16",
AB: "~@3 x ~@23 x ~@4", AC: "x ~@3 x ~@2 x", AD: "~@2 x ~ x ~@2 x", AE: "~@4 x ~@2 x", AF: "~ x!3", AG: "x!4",
AH: "x ~@7 x ~@6 x ~@7 x ~@7 x", AI: "~@7 x ~@7 x ~@3 x ~@10 x ~", AJ: "~ x ~@2 x ~@2 x ~@5 x ~@2",
AK: "x ~@4 x ~@7 x ~ x ~ x ~ x ~@9 x ~@2", AL: "~@7 x ~@4 x ~@15 x ~@3", AM: "~@6 x ~@5 x ~@14 x ~@4",
AN: "~@5 x ~@5 x ~@7 x ~@6 x ~@5", AO: "~@6 x ~@3 x!2 ~@14 x ~@5", AP: "~ x ~@9 x ~@20", AQ: "~@21 x ~@10",
AR: "~@15 x", AS: "~ x ~@2", AT: "~@25 x ~@6", AU: "~@13 x ~@18", AV: "~ x ~@20 x ~@9", AW: "~@5 x ~@9 x",
AX: "~@9 x ~@6", AY: "~@3 x ~@9 x ~@2", AZ: "~@7 x ~@8", BA: "~ x ~@9 x ~@4", BB: "~@6 x!2 ~@19 x ~@4",
BC: "~@15 x ~@16", BD: "~@3 x ~@19 x ~@8", BE: "~@11 x ~@19 x", BF: "~@7 x ~ x!3 ~@20", BG: "x ~@15 x!2 ~ x ~@12",
BH: "~@9 x ~@14 x ~@4 x ~ x", BI: "~@17 x ~@14", BJ: "x ~ x!2 ~@11 x ~@6 x ~@7 x ~", BK: "~@4 x ~@10 x",
BL: "~@16 x ~ x ~@4 x ~@8", BM: "~@6 x ~@16 x ~ x ~@4 x ~", BN: "~@13 x ~@16 x ~", BO: "x ~@4 x ~@14 x ~@11",
BP: "~@4 x ~@2 x ~@4 x ~@8 x ~@10", BQ: "~@3 x ~@11 x ~@11 x ~@4", BR: "~@9 x ~@11 x ~@10",
BS: "~ x ~@13 x ~@10 x ~@5", BT: "~@3 x ~@6 x ~@5", BU: "x ~@3 x ~@6 x ~@6 x ~@6 x ~@6",
BV: "x ~@4 x ~ x ~@2 x ~@6 x ~@6 x ~@6 x", BW: "~@6 x ~@3 x ~@2 x ~ x ~@6 x ~@6 x ~@2",
BX: "~@4 x ~@6 x ~@4 x ~ x ~ x ~@6 x ~@4", BY: "~@2 x ~@6 x ~@6 x ~@4 x ~ x ~@8", BZ: "~ x ~@6 x ~@4 x ~@8 x ~@9",
CA: "~@8 x ~@6 x ~@4 x ~@9 x!2", CB: "~@17 x ~@7 x ~@4 x ~", CC: "~@8 x!2 ~@17 x ~@4", CD: "~@4 x ~@4 x ~@10 x ~@11",
CE: "~@4 x ~@3 x ~@2 x ~@4", CF: "~ x!2 ~@19 x ~@8 x", CG: "~@5 x ~@12 x ~@13", CH: "~@4 x ~@4 x ~@2 x ~@3",
CI: "~@5 x!2 ~@23 x ~", CJ: "~@9 x ~@6 x ~@15", CK: "x",
})).gain(0.8)
// drums · low tom
const low_tom = s("lt").struct(`<
// … 99 more lines
More by Tool
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.