0:00/0:00
// March of the Pigs — Nine Inch Nails
// 133 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: pitch bends are ignored
// note: ch 3 "bass 1" named as a bass, played on electric bass finger (its lead 1 square patch is not one); ch 4 "bass 1 doulbled" named as a bass, played on electric bass finger (its lead 1 square patch is not one)
// note: duplicate parts dropped: ch 6 "guitar 2" shakuhachi (copy of ch 5 "guitar 1" shakuhachi)
// note: Full arrangement: all 104 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
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.
// bass · electric bass finger · "bass 1"
const bass = note(`<
~@8 A@3 B@4 C@2 D E@2 F@3 G@2 H I@2 J@3 K L ~@19 M@2 N O M@2 N O M@2 N O M@2 N O M@2 N O M@2 N O ~@28
>`.pickRestart({
A: "[~@13 a1@4 d2@4 d2@4 d2@2 d2@4 d2@2 d#2@4 g1@4 a1@4 a1@4 d2@4 d2@4 d2@2 d2@4 d2@2 d#2@4 g1@4 a1@4 d2@4 d2@4 d2@2 d2@4 d2@2 d#2@3]/3",
B: "[~ g1@4 a1@4 d2@4 d2@4 d2@4 d2@2 d2@2 d2@2 d#2@2 d#2@2 d#2@2 e2@2 e2@2 f2@2 f2@2 g1@4 a1@4 d2@4 d2@4 d2@2 d2@4 d2@2 d#2@4 g1@4 a1@4 a1@4 d2@4 d2@4 d2@2 d2@4 d2@2 d#2@4 g1@4 a1@4 d2@4 d2@4 d2@2 d2@4 d2@2 d#2@3]/4",
C: "[~ g1@4 a1@4 d2@4 d2@4 d2@4 d2@2 d2@2 d2@2 d#2@2 d#2@2 d#2@2 e2@2 e2@2 f2@2 f2@2 g1@4 a1@4 ~ d2@4 d2@4 d2@2 d2@4]/2",
D: "d2 d#2@2 g1@2 a1@2 a1@2 d2@2 d2@2 d2 d2@2",
E: "[~ d2@2 d#2@4 g1@4 a1@4 d2@4 d2@4 d2@2 d2@4 d2@2 d#2@4 g1@4 a1@4 ~ d2@4 d2@4 d2@4 d2@2 d2@2 d2@2 d#2@2]/2",
F: "[d#2@2 d#2@2 e2@2 e2@2 f2@2 f2@2 g1@4 a1@4 d2@4 ~ d2@4 d2@2 d2@4 d2@2 d#2@4 g1@4 a1@4 a1@4 d2@4 d2@4 d2@2 d2@4 ~ d2@2 d#2@4 g1@4 a1@4 d2@4 d2@4 d2@2 d2@4]/3",
G: "[d2@2 d#2@4 g1@4 a1@4 ~ d2@4 d2@4 d2@4 d2@2 d2@2 d2@2 d#2@2 d#2@2 d#2@2 e2@2 e2@2 f2@2 f2@2 g1@4 a1@4 d2@4 ~ d2@4]/2",
H: "d2 d2@2 d2 d#2@2 g1@2 a1@2 a1@2 d2@2 d2@2",
I: "[d2@2 d2@4 d2@2 ~ d#2@4 g1@4 a1@4 d2@4 d2@4 d2@2 d2@4 d2@2 d#2@4 g1@4 a1@4 d2@4 ~ d2@4 d2@4 d2@2]/2",
J: "[d2@2 d2@2 d#2@2 d#2@2 d#2@2 e2@2 e2@2 f2@2 f2@2 g1@4 a1@4 d2@4 d2@4 ~ d2@2 d2@4 d2@2 d#2@4 g1@4 a1@4 a1@4 d2@4 d2@4 d2@2 d2@4 d2@2 d#2@4 ~ g1@4 a1@4 d2@4 d2@4]/3",
K: "d2@2 d2@4 d2@2 d#2@4 g1@4 a1@4 d2@4 ~ d2@4 d2@3",
L: "~ d2@2 d2@2 d2@2 d#2@2 d#2@2 d#2@2 e2@2 e2@2 f2@2 f2@2 g1@4 ~@7", M: "a1@2 d2@2 d2@2 d2 d2@2 d2 d#2@2 g1@2 a1@2",
N: "d2@2 d2@2 d2 d2@2 d2 d#2@2 g1@2 a1@2 d2@2", O: "d2@2 d2@2 d2!3 d#2!3 e2!2 f2!2 g1@2",
})).s("gm_electric_bass_finger").gain(0.6).pan(0)
// bass · electric bass finger · "bass 1 doulbled"
const bass_2 = note(`<
~@8 A@8 B C D@2 E@3 F@2 G H@2 I@3 J K ~@19 L M N O L M N O P M N O L M N O L Q R S T@2 R S ~@28
>`.pickRestart({
A: "[~@14 a1@3 [d1,d2]@4 ~ d2@3 ~@3 d2@3 ~@3 d#2@3 ~ g1@3 ~ a1@3 ~ a1@3 ~ d2@3 ~ d2@3 ~@3 d2@3 ~@3 d#2@3 ~ g1@3 ~ a1@3 ~ d2@3 ~ d2@3 ~@3 d2@3 ~@3 d#2@3 ~ g1@3 ~ a1@3 ~ d2@3 d2 d2@3 ~ d2@3 ~@21 g1@3 ~ a1@3 [d1,d2]@4 ~ d2@3 ~@3 d2@3 ~@3 d#2@3 ~ g1@3 ~ a1@3 ~ a1@3 ~ d2@3 ~ d2@3 ~@3 d2@3 ~@3 d#2@3 ~ g1@3 ~ a1@3 ~ d2@3 ~ d2@3 ~@3 d2@3 ~@3 d#2@3 ~ g1@3 ~ a1@3 ~ d2@3 ~ d2@3 ~ d2@3 ~@10 d#1, ~@13 a0@4 ~@4 d1@4 d1@2 d1@4 d1@2 d#1@4 g0@4 a0@4 a0@4 d1@4 d1@4 d1@2 d1@4 d1@2 d#1@4 g0@4 a0@4 d1@4 d1@4 d1@2 d1@4 d1@2 d#1@4 g0@4 a0@4 d1@4 d1@4 d1@4 d1@2 d1@2 d1@2 d#1@2 d#1@2 d#1@2 e1@2 e1@2 f1@2 f1@2 g0@4 a0@4 ~@4 d1@4 d1@2 d1@4 d1@2 d#1@4 g0@4 a0@4 a0@4 d1@4 d1@4 d1@2 d1@4 d1@2 d#1@4 g0@4 a0@4 d1@4 d1@4 d1@2 d1@4 d1@2 d#1@4 g0@4 a0@4 d1@4 d1@4 d1@4 d1@2 d1@2 d1@2 d#1@2 d#1@2 ~, ~@13 d2 ~@2 d2 ~@12 d2 ~@2 d2 ~@10 d2 ~@2 d2 ~@12 d2!3 d#2!2 d#2 e2!2 f2!2 ~@8 d2 ~@2 d2 ~@12 d2 ~@2 d2 ~@10 d2 ~@2 d2 ~@12 d2!3 d#2!2]/8", // D
B: "~@10 g1@3 ~ a1@4 [d1,d2]@4 [d1,d2]@4 [d1,d2]@2 [d1,d2]@4, d#2 e2!2 f2!2 ~@11, ~ e1@2 e1@2 f1@2 f1@2 g0@4 a0@4 ~@15", // D
C: "[d1,d2]@2 [d#1,d#2]@4 [g0,g1]@4 ~ a1@3 ~ a1@3 ~ d2@3 ~ d2@3 ~@3 d2@3, ~@5 a0@2 a0@2 d1@2 d1@2 d1 d1@2, ~@27 d2@2 ~@3", // D D# G
D: "[~ [d1,d2]@2 [d#1,d#2]@4 [g0,g1]@4 [a0,a1]@4 [d1,d2]@4 ~ d2@3 ~@3 d2@3 ~@3 d#2@4 g1@3 ~ a1@4 [d1,d2]@4 [d1,d2]@4 [d1,d2]@4 [d1,d2]@2 [d1,d2]@2 [d1,d2]@2 [d#1,d#2]@2, ~@19 d1@4 d1@2 d1@4 d1@2 d#1@4 ~@4 a0@4 ~@21, ~@12 d2 ~@2 d2 ~@16]/2", // D D# G A D D#
E: "[~@13 g1@3 ~ a1@3 [d1,d2]@4 ~ [d1,d2]@4 [d1,d2]@2 [d1,d2]@4 [d1,d2]@2 [d#1,d#2]@4 [g0,g1]@4 ~ a1@3 ~ a1@3 ~ d2@3 ~ d2@3 ~@3 d2@4 [d1,d2]@2 [d#1,d#2]@4 [g0,g1]@4 [a0,a1]@4 [d1,d2]@4 [d1,d2]@4 ~@3 d2@3, d#1@2 d#1@2 e1@2 e1@2 f1@2 f1@2 g0@4 a0@4 ~@25 a0@4 a0@4 d1@4 d1@4 d1@2 d1@4 ~@23 d1@2 d1@4, ~ d#2@2 d#2@2 e2@2 e2@2 f2@2 f2@2 ~@49 d2@2 ~@27 d2@2 ~@3]/3", // D D# G D D# G A D
F: "[~@3 d#2@4 g1@3 ~ a1@4 [d1,d2]@4 [d1,d2]@4 [d1,d2]@4 [d1,d2]@2 [d1,d2]@2 [d1,d2]@2 [d#1,d#2]@2 [d#1,d#2]@2 ~@11 g1@3 ~ a1@3 [d1,d2]@4 ~ [d1,d2]@4, d1@2 d#1@4 ~@4 a0@4 ~@23 d#1@2 e1@2 e1@2 f1@2 f1@2 g0@4 a0@4 ~@9, ~ d2@2 ~@35 d#2@2 e2@2 e2@2 f2@2 f2@2 ~@16]/2", // D D# D
G: "[d1,d2]@2 [d1,d2]@4 [d1,d2]@2 [d#1,d#2]@4 [g0,g1]@4 [a0,a1]@4 ~ a1@3 ~ d2@3 ~ d2@3, ~@5 a0 d1!2", // D D# G A
H: "[~@3 d2@3 ~ d2@2 [d#1,d#2]@4 [g0,g1]@4 [a0,a1]@4 [d1,d2]@4 [d1,d2]@4 ~@3 d2@3 ~@3 d#2@4 g1@3 ~ a1@3 ~ d2@4 [d1,d2]@4 [d1,d2]@4 [d1,d2]@2, d1@2 d1@4 d1@2 ~@21 d1@2 d1@4 d1@2 d#1@4 ~@4 a0@4 d1@4 ~@11, ~ d2@2 ~@27 d2@2 ~@4 d2@2 ~@26]/2", // D# G A D
I: "[[d1,d2]@2 [d1,d2]@2 [d#1,d#2]@2 [d#1,d#2]@2 [d#1,d#2]@2 ~@9 g1@3 ~ a1@3 [d1,d2]@4 ~ d2@4 [d1,d2]@2 [d1,d2]@4 [d1,d2]@2 [d#1,d#2]@4 [g0,g1]@4 [a0,a1]@4 ~ a1@3 ~ d2@3 ~ d2@3 ~@3 d2@3 ~@3 d#2@4 [g0,g1]@4 [a0,a1]@4 [d1,d2]@4 [d1,d2]@4, ~@10 e1@2 e1@2 f1@2 f1@2 g0@4 a0@4 ~@4 d1@4 ~@21 a0@4 d1@4 d1@4 d1@2 d1@4 d1@2 d#1@4 ~@17, ~@11 e2@2 e2@2 f2@2 f2@2 ~@49 d2@2 ~@4 d2@2 ~@20]/3", // D D# D D# G A G A …
J: "[d1,d2]@2 ~ d2@3 ~@3 d#2@4 g1@3 ~ a1@3 ~ d2@4 [d1,d2]@4 [d1,d2]@3, ~ d1@2 d1 d#1@2 ~@2 a0@2 d1@2 ~@4, ~@7 d2@2 ~@23", // D
K: "~ [d1,d2]@2 [d1,d2]@2 [d1,d2]@2 [d#1,d#2]@2 [d#1,d#2]@2 [d#1,d#2]@2 [e1,e2]@2 ~@7 g1@4 ~@6, ~@15 e1@2 f1@2 f1@2 g0@4 ~@7, ~@8 e2 f2!2 ~@5", // D D# E
L: "~ a1@3 [d1,d2]@4 ~ d2@3 ~@3 d2@3 ~@3 d#2@3 ~ g1@3 ~ a1@3, a0@2 ~@2 d1@2 d1 d1@2 d1 d#1@2 g0@2 a0@2, ~@13 d2@2 ~@4 d2@2 ~@11", // D
M: "~ a1@3 ~ d2@3 ~ d2@3 ~@3 d2@3 ~@3 d#2@3 ~ g1@3 ~ a1@3, a0@2 d1@2 d1@2 d1 d1@2 d1 d#1@2 g0@2 a0@2, ~@13 d2@2 ~@4 d2@2 ~@11",
N: "~ d2@3 ~ d2@3 ~@3 d2@3 ~@3 d#2@3 ~ g1@3 ~ a1@3 ~ d2@3, d1@2 d1@2 d1 d1@2 d1 d#1@2 g0@2 a0@2 d1@2, ~@9 d2@2 ~@4 d2@2 ~@15",
O: "~ d2@3 ~ d2@3 ~@21 g1@3, d1@2 d1@2 d1!3 d#1!3 e1!2 f1!2 g0@2, ~@9 d2@2 d2@2 d2@2 d#2@2 d#2@2 d#2@2 e2@2 e2@2 f2@2 f2@2 ~@3",
P: "~ a1@3 [d1,d2]@4 ~ d2@3 ~@3 d2@3 ~@3 d#2@3 ~ g1@3 [a0,a1]@4, a0@2 ~@2 d1@2 d1 d1@2 d1 d#1@2 g0@2 ~@2, ~@13 d2@2 ~@4 d2@2 ~@11", // D A
Q: "~ a1@3 ~ d2@3 ~ d2@3 ~@3 d2@3 [d1,d2]@2 [d#1,d#2]@4 [g0,g1]@4 [a0,a1]@4, a0@2 d1@2 d1@2 d1 d1@2 ~@7, ~@13 d2@2 ~@17", // D D# G A
R: "[d1,d2]@2 [d1,d2]@2 [d1,d2] [d1,d2]@2 [d1,d2] [d#1,d#2]@2 [g0,g1]@2 [a0,a1]@2 [d1,d2]@2", // D D# G A D
S: "[d1,d2]@2 [d1,d2]@2 [d1,d2]!3 [d#1,d#2]!3 [e1,e2]!2 [f1,f2]!2 [g0,g1]@2", // D D# E F G
T: "[a0,a1]@2 [d1,d2]@2 [d1,d2]@2 [d1,d2] [d1,d2]@2 [d1,d2] [d#1,d#2]@2 [g0,g1]@2 [a0,a1]@2", // A D D# G A
})).s("gm_electric_bass_finger").gain(0.48).pan(1)
// chords · overdriven guitar · "guitar 1"
const overdriven_guitar = note("<~@16 A B C D E@3 F@2 G H I@4 J K@8 ~@12 L@2 M N@16 O@5 ~@28>".pickRestart({
A: "~@13 [d3,a3,d4]@8 ~ [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4", // D5 C5
B: "[c3,g3,c4]@2 [g#2,d3,g#3]@5 ~@7 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4", // C5 G#dim D5 C5
C: "~ [c3,g3,c4]@2 [g#2,d3,g#3]@5 ~@7 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@3", // C5 G#dim D5 C5
D: "~ [c3,g3,c4]@2 [g#2,d3,g#3]@5 ~@8 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@2", // C5 G#dim D5
E: "[[d3,a3,d4]@2 [d#3,b3,d#4]@2 [d#3,b3,d#4]@2 [e3,b3,e4]@2 [e3,b3,e4]@2 [f3,c4,f4]@2 [f#3,c4,f#4]@2 [f#3,c4,f#4]@2 [d3,a3,d4]@8 ~ [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3,c4]@2 [g#2,d3,g#3]@5 ~@7 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4 ~ [c3,g3,c4]@2 [g#2,d3,g#3]@5 ~@7 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2]/3", // D5 G#m E5 F5 F#dim D5 C5 G#dim …
F: "[[c3,g3,c4]@4 [c3,g3,c4]@2 [g#2,d3,g#3]@5 ~@8 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]@2 [d#3,b3,d#4]@2 [d#3,b3,d#4]@2 [e3,b3,e4]@2 [e3,b3,e4]@2 [f3,c4,f4]@2 [f#3,c4,f#4]@2 [f#3,c4,f#4]@2 [d3,a3,d4]@8 ~ [d3,a3,d4]@4]/2", // C5 G#dim D5 G#m E5 F5 F#dim D5
G: "[d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3,c4]@2 [g#2,d3,g#3]@5 ~@7 [d3,a3,d4]@8 [d3,a3,d4]@4", // D5 C5 G#dim D5
H: "[d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3,c4]@2 ~ [g#2,d3,g#3]@5 ~@7 [d3,a3,d4]@8 [d3,a3,d4]@3", // D5 C5 G#dim D5
I: "[~ [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3,c4]@2 [g#2,d3,g#3]@5 ~@8 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]@2 [d#3,b3,d#4]@2 [d#3,b3,d#4]@2 [e3,b3,e4]@2 [e3,b3,e4]@2 [f3,c4,f4]@2 [f#3,c4,f#4]@2 [f#3,c4,f#4]@2 [d3,a3,d4]@8 [d3,a3,d4]@4 ~ [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3,c4]@2 [g#2,d3,g#3]@5 ~@7 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3,c4]@2 [g#2,d3,g#3]@5 ~@8 [d3,a3,d4]@8]/4", // D5 C5 G#dim D5 G#m E5 F5 F#dim …
J: "[d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3,c4]@2 [g#2,d3,g#3]@5 ~@8 [d3,a3,d4]@7", // D5 C5 G#dim D5
K: "[~ [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]@2 [d#3,b3,d#4]@2 [d#3,b3,d#4]@2 [e3,b3,e4]@2 [e3,b3,e4]@2 [f3,c4,f4]@2 [f#3,c4,f#4]@2 [f#3,c4,f#4]@233]/8", // D5 G#m E5 F5 F#dim
L: "[[d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3]@2 [g#2,d3,g#3]@5 ~@7 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3]@2 [g#2,d3,g#3]@5 ~@7, ~@9 c4@14 ~@2 c4@7]/2", // D5 C5 G#dim D5 C5 G#dim
M: "[d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3]@2 [g#2,d3,g#3]@5 ~@7, ~@9 c4@7", // D5 C5 G#dim
N: "[[d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]@2 [d#3,b3,d#4]@2 [d#3,b3,d#4]@2 [e3,b3,e4]@2 [e3,b3,e4]@2 [f3,c4,f4]@2 [f#3,c4,f#4]@2 ~@2 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3]@2 [g#2,d3,g#3]@5 ~@7 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3]@2 [g#2,d3,g#3]@5 ~@7 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3]@2 [g#2,d3,g#3]@5 ~@7 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]@2 [d#3,b3,d#4]@2 [d#3,b3,d#4]@2 [e3,b3,e4]@2 [e3,b3,e4]@2 [f3,c4,f4]@2 [f#3,c4,f#4]@2 ~@2 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3]@2 [g#2,d3,g#3]@5 ~@7 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3]@2 [g#2,d3,g#3]@5 ~@7 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3]@2 [g#2,d3,g#3]@5 ~@7, ~@15 [f#3,f#4]@63 ~ [f#3,f#4]@49, ~@15 c4@8 ~@2 c4@14 ~@2 c4@14 ~@2 c4@20 ~@2 c4@8 ~@2 c4@14 ~@2 c4@14 ~@2 c4@7]/8", // D5 G#m E5 F5 F#dim D5 C5 G#dim …
O: "[[d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]@2 [d#3,b3,d#4]@2 [d#3,b3,d#4]@2 [e3,b3,e4]@2 [e3,b3,e4]@2 [f3,c4,f4]@2 [f#3,c4,f#4]@2 ~@2 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3]@2 [g#2,d3,g#3]@5 ~@7 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3]@2 [g#2,d3,g#3]@5 ~@7 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [c3,g3,c4]@4 [c3,g3]@2 [g#2,d3,g#3]@5 ~@7 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]@2 [d#3,b3,d#4]@2 [d#3,b3,d#4]@2 [e3,b3,e4]@2 [e3,b3,e4]@2 [f3,f4]@2 ~@4, ~@15 [f#3,f#4]@64 ~, ~@15 c4@8 ~@2 c4@14 ~@2 c4@14 ~@2 c4@20 c4@2 ~]/5", // D5 G#m E5 F5 F#dim D5 C5 G#dim …
})).s("gm_overdriven_guitar").gain(0.64).pan(0.4)
// other · shakuhachi · "guitar 1"
const shakuhachi = note("<~@32 [~@25 f#4 ~@6] ~@43 [f#4 ~@31] ~@27>").s("gm_shakuhachi").gain(0.64).pan(0.4)
// chords · overdriven guitar · "guitar 2"
const overdriven_guitar_2 = note(`<
~@16 A B C D@4 E@2 F G H@4 I J@8 ~@12 K@3 L K@3 L K@3 L K@3 L K@3 L K@3 M ~@28
>`.pickRestart({
A: "~@13 [d3,a3,d4]@8 ~ [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@4", // D5
B: "[d3,a3,d4] [d#3,a#3,d#4]@2 [c3,g3,c4]@2 [d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4] [d3,a3,d4]@2", // D5 D#5 C5 D5
C: "~ [d3,a3,d4]@2 [d#3,a#3,d#4]@4 [c3,g3,c4]@4 [d3,a3,d4]@4 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@3", // D5 D#5 C5 D5
D: "[~ [d3,a3,d4]@2 [d#3,a#3,d#4]@4 [c3,g3,c4]@4 ~ [d3,a3,d4]@4 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@2 [f3,c4,f4]@2 [d3,a3,d4]@2 [g3,d4,g4]@2 [d3,a3,d4]@2 [a3,e4,a4]@2 [d3,a3,d4]@2 [d3,a3,d4]@8 ~ [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@2 [d#3,a#3,d#4]@4 [c3,g3,c4]@4 [d3,a3,d4]@4 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@4 ~ [d3,a3,d4]@2 [d#3,a#3,d#4]@4 [c3,g3,c4]@4 [d3,a3,d4]@4 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2]/4", // D5 D#5 C5 D5 F5 D5 G5 D5 …
E: "[[d3,a3,d4]@4 [d3,a3,d4]@2 [d#3,a#3,d#4]@4 [c3,g3,c4]@4 ~ [d3,a3,d4]@4 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@2 [f3,c4,f4]@2 [d3,a3,d4]@2 [g3,d4,g4]@2 [d3,a3,d4]@2 [a3,e4,a4]@2 [d3,a3,d4]@2 [d3,a3,d4]@8 ~ [d3,a3,d4]@4]/2", // D5 D#5 C5 D5 F5 D5 G5 D5 …
F: "[d3,a3,d4] [d3,a3,d4]@2 [d3,a3,d4] [d#3,a#3,d#4]@2 [c3,g3,c4]@2 [d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@2", // D5 D#5 C5 D5
G: "[d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@2 ~ [d#3,a#3,d#4]@4 [c3,g3,c4]@4 [d3,a3,d4]@4 [d3,a3,d4]@8 [d3,a3,d4]@3", // D5 D#5 C5 D5
H: "[~ [d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@2 [d#3,a#3,d#4]@4 [c3,g3,c4]@4 [d3,a3,d4]@4 ~ [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@2 [f3,c4,f4]@2 [d3,a3,d4]@2 [g3,d4,g4]@2 [d3,a3,d4]@2 [a3,e4,a4]@2 [d3,a3,d4]@2 [d3,a3,d4]@8 [d3,a3,d4]@4 ~ [d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@2 [d#3,a#3,d#4]@4 [c3,g3,c4]@4 [d3,a3,d4]@4 [d3,a3,d4]@8 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@2 [d#3,a#3,d#4]@4 ~ [c3,g3,c4]@4 [d3,a3,d4]@4 [d3,a3,d4]@8]/4", // D5 D#5 C5 D5 F5 D5 G5 D5 …
I: "[d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@2 [d#3,a#3,d#4]@4 [c3,g3,c4]@4 [d3,a3,d4]@4 ~ [d3,a3,d4]@7", // D5 D#5 C5 D5
J: "[~ [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@2 [f3,c4,f4]@2 [d3,a3,d4]@2 [g3,d4,g4]@2 [d3,a3,d4]@2 [a3,e4,a4]@2 [d3,a3,d4]@233]/8", // D5 F5 D5 G5 D5 A5 D5
K: "[d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4] [d3,a3,d4]@2 ~ [d#3,a#3,d#4]@2 [c3,g3,c4]@2 [d3,a3,d4]@2, ~@9 [d3,a3,d4]@5 ~@2", // D5 D#5 C5 D5
L: "[d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4] [d3,a3,d4]@2 ~ [f3,c4,f4] d4 [g3,d4,g4] a3 [a3,e4,a4] [d3,a3,d4], ~@9 [d3,a3,d4]@2 [d3,a3]@2 [d3,d4]@2 ~", // D5 F5 G5 A5 D5 D
M: "[d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4] [d3,a3,d4]@2 ~ [f3,c4,f4] d4 [g3,g4] ~ [e4,a4] ~, ~@9 [d3,a3,d4]@2 [d3,a3]@2 a3@2 ~, ~@6 d4 ~", // D5 F5 G A5 D5
})).s("gm_overdriven_guitar").gain(0.64).pan(0.4)
// bass · synth bass 2 · "Synth bass"
const bass_3 = note("<~@32 A B@4 C D E@4 F G H@3 ~@28 I J@4 K L M@4 N O P Q ~@13>".pickRestart({
A: "~@25 d2@2 d2@2 d2@2 ~",
B: "[d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 ~ d2@2 d2@2 d2@2 d2@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 ~ g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 ~ g#1@2 g#1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 ~ g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 ~ f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 ~ f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2]/4",
C: "d2@2 d2@2 ~ d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 ~ d2@2 d2@2 d2@2 d2@2",
D: "d2@2 g#1@2 g#1@2 g#1@2 g#1@2 ~ g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 ~ g#1@2",
E: "[g#1@2 g#1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 ~ g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 ~ g1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 ~ f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 d2@2 ~ d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 ~ d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 g#1@2 g#1@2 g#1@2 ~ g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2]/4",
F: "g#1@2 ~ g#1@2 g#1@2 g#1@2 g#1@2 g1@2 g1@2 g1@2 g1@2 g1@2 ~ g1@2 g1@2 g1@2 g1@2 g1@2",
G: "g1@2 g1@2 g1@2 g1@2 ~ g1@2 g1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 ~ f1@2 f1@2",
H: "[f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 ~ d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 ~ d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 g#1@2 g#1@2 ~ g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 ~ g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 ~@14]/3",
I: "d2@2 d2@2 d2@2 d2@2 d2@2 ~ d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 ~ d2@2",
J: "[d2@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 ~ g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 ~ g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 ~ g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 f1@2 f1@2 ~ f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 ~ f1@2 f1@2 f1@2 f1@2 f1@2 d2@2 d2@2 d2@2 d2@2 ~ d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2]/4",
K: "d2@2 ~ d2@2 d2@2 d2@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 ~ g#1@2 g#1@2 g#1@2 g#1@2 g#1@2",
L: "g#1@2 g#1@2 g#1@2 g#1@2 ~ g#1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 ~ g1@2 g1@2",
M: "[g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 f1@2 ~ f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 ~ f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 d2@2 d2@2 d2@2 ~ d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 ~ d2@2 d2@2 d2@2 d2@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 ~ g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 ~ g#1@2 g#1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2]/4",
N: "~ g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 ~ f1@2 f1@2 f1@2 f1@2 f1@2 f1@2",
O: "f1@2 f1@2 f1@2 ~ f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 d2@2 d2@2 ~ d2@2 d2@2 d2@2",
P: "d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 ~ d2@2 d2@2 d2@2 d2@2 d2@2 g#1@2 g#1@2 g#1@2 g#1@2 ~",
Q: "g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 ~ g#1@2 g#1@2 g#1@2 ~@7",
})).s("gm_synth_bass_2").gain(0.64)
// chords · piano
const piano = note("<~@47 A@4 ~@39 B C@8 D@2 E@3>".pickRestart({
A: "[~@18 [a#2,f3,d4]@4 ~ d3@4 f3@4 [c3,g3,e4]@9 g3@4 ~ c4@4 e4@4 ~ [d3,a3,f#4]@71 ~@3]/4", // A# C D
B: "~@25 [a#2,f3,d4]@4 d3@3", // A#
C: "[~@2 f3@4 [c3,g3,e4]@9 g3@4 c4@4 ~ e4@4 ~@58 f3@4 [a#2,f3,d4]@9 d3@4 ~ [c3,g3,e4]@9 g3@4 c4@4 e4@4 ~ [d3,a3,f#4]@44 [a#2,f3,d4]@17 [c3,g3,e4]@17 ~ [d3,a3,f#4]@35 [a#2,f3,a4]@16, ~@28 [d3,a3,f#4]@71 ~@157]/8", // C A# C D A# C D A#maj7 …
D: "[~@28 d3@6 ~ f#3@9 c4@9 f4@9 ~@2, ~@2 [c3,g3,g4]@53 ~@9]/2", // C5
E: "[~@44 c7@35 ~@17, c5@35 ~@61, ~@31 c6@35 ~@30]/3",
})).s("gm_piano").gain(0.64)
// drums · kick
const kick = s("bd").struct(`<
A B@3 C B@3 C B@3 C B@3 D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI ~@4 AJ@3 AK AJ@3 AK
AJ@3 AK AJ@3 AK AJ@3 AK AJ@3 AK AL U AM W AC Y AN AA AB AO AD AP AF AQ AR ~@13
>`.pickRestart({
A: "~@13 x ~@7 x ~@5 x ~@3 x", B: "~@9 x ~@3 x ~@7 x ~@5 x ~@3 x", C: "~@5 x ~@7 x ~@7 x ~@5 x ~@3 x",
D: "~@5 x ~@7 x ~@8 x ~@5 x ~@3", E: "x ~@4 x ~ x ~@3 x ~@2 x ~", F: "~ x ~@9 x ~@3 x ~@7 x ~@5 x ~@2",
G: "~ x ~@10 x ~@3 x ~@7 x ~@5 x ~", H: "~@2 x ~@5 x ~@7 x ~@8 x ~@5 x", I: "~@3 x ~@9 x ~@3 x ~@7 x ~@5 x",
J: "~@2 x ~@4 x ~ x ~@3 x ~@2", K: "x ~@3 x ~@10 x ~@3 x ~@7 x ~@4", L: "~ x ~@3 x ~@5 x ~@7 x ~@8 x ~@3",
M: "~ x ~ x ~@4 x ~ x ~@3 x ~", N: "~@2 x ~@3 x ~@10 x ~@3 x ~@7 x ~@2", O: "~@3 x ~@3 x ~@9 x ~@4 x ~@7 x ~",
P: "~@2 x ~ x ~@2 x ~@3 x ~@3 x", Q: "~@5 x ~@3 x ~@9 x ~@3 x ~@7 x", R: "~@5 x ~@3 x ~@10 x ~@3 x ~@7",
S: "x ~@5 x ~@3 x ~@9 x ~@4 x ~@6", T: "~ x ~@5 x ~@3 x ~@5 x ~@7 x ~@6", U: "~@2 x ~@7 x ~@8 x ~@7 x ~@4",
V: "~@3 x ~@8 x ~@7 x ~@8 x ~@2", W: "~@5 x ~@8 x ~@7 x ~@8 x", X: "~@7 x ~@7 x ~@8 x ~@7",
Y: "x ~@8 x ~@7 x ~@8 x ~@5", Z: "~@2 x ~@8 x ~@7 x ~@7 x ~@4", AA: "~@4 x ~@7 x ~@8 x ~@7 x ~@2",
AB: "~@6 x ~@7 x ~@8 x ~@7 x", AC: "~@7 x ~@8 x ~@7 x ~@7", AD: "~ x ~@7 x ~@8 x ~@7 x ~@5",
AE: "~@3 x ~@7 x ~@7 x ~@8 x ~@3", AF: "~@4 x ~@8 x ~@7 x ~@8 x ~", AG: "~@6 x ~@8 x ~@7 x ~@7 x",
AH: "~@8 x ~@7 x ~@8 x ~@6", AI: "~ x ~@8 x ~@21", AJ: "x ~@3 x ~@2 x ~ x ~@4 x ~", AK: "x ~@3 x ~@2 x ~ x ~@2 x ~@3",
AL: "x ~@7 x ~@8 x ~@7 x ~@6", AM: "~@4 x ~@7 x ~@7 x ~@8 x ~@2", AN: "~@2 x ~@8 x ~@7 x ~@8 x ~@3", AO: "~ x!3",
AP: "~@3 x ~@7 x ~@8 x ~@7 x ~@3", AQ: "~@6 x ~@8 x ~@7 x ~@8", AR: "x!3 ~",
})).gain(0.8)
// drums · snare
const snare = s("sd").struct(`<
A B@3 C B@3 C B@3 C B@3 D E F G H I J K L M N O P Q R S T ~@19 U@3 V U@3 V U@3 V U@3 V U@3 V U@3 V ~@28
>`.pickRestart({
A: "~@17 x ~@7 x ~@6", B: "~ x ~@15 x ~@7 x ~@6", C: "~ x ~@7 x ~@7 x ~@7 x ~@6", D: "~ x ~@7 x ~@8 x ~@7 x ~@5",
E: "~ x ~@7 x ~@3 x ~@2", F: "~@3 x ~@15 x ~@7 x ~@4", G: "~@3 x ~@16 x ~@7 x ~@3", H: "~@4 x ~@7 x ~@7 x ~@8 x ~@2",
I: "~@5 x ~@15 x ~@7 x ~@2", J: "~@3 x ~@7 x ~@3 x", K: "~@6 x ~@16 x ~@7 x", L: "~@7 x ~@7 x ~@7 x ~@8",
M: "x!2 ~ x", N: "x ~@8 x ~@15 x ~@6", O: "~ x ~@7 x ~@16 x ~@5", P: "~ x ~@3 x ~@3 x ~@3 x ~@2",
Q: "~@3 x ~@7 x ~@15 x ~@4", R: "~@3 x ~@7 x ~@16 x ~@3", S: "~@4 x ~@7 x ~@16 x ~@2", T: "~@5 x ~@7 x ~@7 x ~@10",
U: "~ x ~ x ~ x ~@2", V: "~ x ~ x ~ x ~ x",
})).gain(0.8)
// drums · low tom
const low_tom = s("lt").struct(`<
~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ B C@2 ~ D E@2 ~ F G@2 ~ H I@2 ~@20 J@3 ~ J@3 ~ J@3 ~ J@3 ~ J@3 ~ J@3 ~@29
>`.pickRestart({
A: "~@5 x ~@26", B: "~@3 x ~@12", C: "~@7 x ~@24", D: "~@9 x ~@22", E: "~@5 x ~@10", F: "~@3 x ~@4", G: "~@13 x ~@18",
H: "~@15 x ~@16", I: "~ x", J: "~@3 x",
})).gain(0.64)
// drums · hihat
const hihat = s("hh").struct(`<
A B@15 C D E F G H I J K L M C N E O G P Q R S T U V W X Y Z AA AB AC AD AE ~@4 AF@24 AG Q AH AI AJ AK AL W AM AN AO T
AP AQ AR ~@13
>`.pickRestart({
A: "~@13 x ~ x ~@5 x ~ x ~@5 x ~ x", B: "~@5 x ~ x ~@5 x ~ x ~@5 x ~ x ~@5 x ~ x",
C: "~@5 x ~ x ~@5 x ~ x ~@6 x ~ x ~@5 x ~", D: "x ~@5 x ~ x ~@5 x ~ x ~@5 x ~ x ~@6 x",
E: "~ x ~@5 x ~ x ~@5 x ~ x ~@5 x ~ x ~@5 x", F: "~ x ~@5 x ~@2 x ~@5 x ~ x ~@5 x ~ x ~@5",
G: "x ~ x ~@5 x ~ x ~@5 x ~ x ~@6 x ~ x ~@4", H: "~ x ~ x ~@5 x ~ x ~@5 x ~ x ~@5 x ~ x ~@4",
I: "~ x ~@2 x ~@5 x ~ x ~@5 x ~ x ~@5 x ~ x ~@3", J: "~@2 x ~ x ~@5 x ~ x ~@6 x ~ x ~@5 x ~ x ~@2",
K: "~@3 x ~ x ~@5 x ~ x ~@5 x ~ x ~@6 x ~ x ~", L: "~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2",
M: "~@4 x ~ x ~@6 x ~ x ~@5 x ~ x ~@5 x ~ x", N: "x ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x",
O: "~ x ~@5 x ~ x ~@6 x ~ x ~@5 x ~ x ~@5", P: "~ x ~ x ~@5 x ~ x ~@5 x ~ x ~@5 x ~@3 x ~@2",
Q: "~@2 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x", R: "~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@2",
S: "~ x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@4 x", T: "~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3",
U: "x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~", V: "~@2 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4",
W: "x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@2", X: "~ x ~@4 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x",
Y: "~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@4 x ~@2", Z: "~ x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~",
AA: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3", AB: "x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~",
AC: "~@2 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x", AD: "~@4 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@2",
AE: "~ x ~@3 x ~@4 x ~@3 x ~@17", AF: "x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2",
AG: "x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@4 x ~", AH: "~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@2",
AI: "~ x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x", AJ: "~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3",
AK: "x ~@4 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~", AL: "~@2 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3",
AM: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x", AN: "~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@2",
AO: "~ x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~", AP: "x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~",
AQ: "~@2 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@4", AR: "x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@10",
})).gain(0.8)
// drums · mid tom
// … 20 more lines
More by Nine Inch Nails
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.