0:00/0:00
// Phantom Blood — Tristen Collinsworth
// 146 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 3/4 at bar 54, 4/4 at bar 57, 3/4 at bar 59, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5658973; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 158 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(146/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.
// other · trombone · "Alto Saxophone"
const trombone = note(`<
A B C D E F G D E 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 AJ AK AL AM AN AO AP AQ AR@2 AS AT
AU@2 AV AW AX@2 AY AZ BA BB BC BD BE BF ~@2 BG BH 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 AJ AK
AL AM AN AO AP AQ AR@2 AS AT AU@2 BI ~@3 BJ BK BL BM BN@2 BO BP BQ BR BS@2 BT AI AJ AK AL AM AN AO AP AQ BU AI AJ AK
AL AM AN AO AP AQ AR@2 AS AT BV@4 AG AF ~@2 BW BX
>`.pickRestart({
A: "[d3,d4]!2 ~ [d3,d4]!2 ~ [d3,d4] ~ [c3,c4]@4 [d#3,d#4]@4", B: "[d3,d4]!2 ~ [d3,d4]!2 ~ [d3,d4] ~@3 [g3,g4]@6",
C: "c3!2 ~@4 c3!2, a#4 ~", D: "d4@3 g4@3 a#4@2 c3@2 c3@2 ~@4, ~@4 a4@3 ~",
E: "f4@2 f4@2 f4 e4 d4@2 f4@2 f4@2 f4 e4 d4 ~", F: "g4 a4 a#4 ~ g4 a4 a#4 ~ g4 a4 a#4 ~@5",
G: "[c3,d4]@2 ~ g4@3 a#4@2 ~@4 c3@2 c3@2, ~ c3 ~@2 a4@4", H: "[a#3,a#4] [g3,g4] ~@6", I: "a#4 g4 ~ d4 f4 g4 a#4 a4",
J: "g4 ~ d4 f4 a#4 a4 g4 f4", K: "f2@3 a#2@5, g4", L: "a#2 c3 d3 f3@2 ~ a4 a#4, ~@5 d#3@3",
M: "a4 g4 ~ d4 f4 g4 a#4 a4", N: "g4 ~ d4 f4 d5 c5 a#4 a4", O: "a#4", P: "c5@6 a#4 c5", Q: "d5@4 f5@4 e5@3 c5@3 d5@2",
R: "c5@3 a4@3 a#4@2 a4@3 f4@3 g4@2", S: "d4@3 ~", T: "d#3@3 d3@5", U: "d#3 f3 ~ d3@5",
V: "f3!2 d#3 ~@3 g4 a4, ~@3 d3@5", W: "a#4 g5 f5 d#5, g2", X: "f5@3 f5 g5 d5 c5 a#4, a#2 a2",
Y: "c5@2 a#4@2 c5@2 a#4@2 c5@2 ~@3 a#4!2 c5, a2@3 ~", Z: "d5@2 g5@4 g4 a4", AA: "a#4 g5 f5 d#5",
AB: "f5@3 f5 g5 d5 c5 a#4", AC: "c5@3 ~", AD: "d#3 f3 ~@2 f4!4", AE: "[c3,g4] c3 ~@4 c3!2", AF: "~@4 c3!2 ~@2",
AG: "c3!2 ~@4 c3!2", AH: "a#2@2 g2@2 ~@10 g3 a3", AI: "~ c4 a3 a#3 c4 d4 g3 a3, a#3@3 ~ a3@3 ~",
AJ: "[g3,a#3] [a3,c4] a3 a#3 c4 f4@2 d#4", AK: "d4@10 ~@4 d4 e4", AL: "~ g4 e4 f4 g4 a4 f4 e4, f4@3 ~ d#4@4",
AM: "[d4,f4]@2 f4@2 ~@10 d4 e4", AN: "f4 g4 e4 f4 g4 a4 f4 e4", AO: "d4 g4",
AP: "[a#3,g4]@2 [a#3,g4]@2 f4@2 d#4@2 g#3@2 g#3@2 ~@2 f4!2, ~@4 f4@3 ~", AQ: "g3!2 c4@2 c4@2 e4!2, e4 ~@3",
AR: "[~@4 f#3 d3 d#3 e3 f3 f#3 g3 a3 a3@4, f#4@3 ~]/2", AS: "[g2,g4]!2 [a#2,a#4] [a2,a4]",
AT: "[f2,f4] [g2,g4] [g2,g4]@2", AU: "[~ [a2,a4]@3]/2", AV: "[g2,d4]@3 f4@3 a#4@2 a4@8", AW: "d4@3 f4@3 a#4@2 a4@8",
AX: "[c5@2 a#4@4 a#4 a4 g4@2 f4@2 a4@2 g4@4 g4 f4 d#4@2 d4@2 c5@2 a#4@4 a#4 a4]/2",
AY: "g4@2 f4@2 d#4@4 f4@4 g4 a4 a#4 c5", AZ: "d5@3 a#4 c5@3 a#4", BA: "d5 f5@2 c5 d5@2 d#5@2",
BB: "g5!3 f5 g5!3 f5 g5!3 f5 g5!3 f5", BC: "d#5 d5 c5 a#4 c5 a#4 a4 g4 a#4 a4 g4 f4 a4 g4 f4 d#4",
BD: "g4 f4 d#4 d4 f4 d#4 d4 c4 a#3 c4 d4 d#4 f4 g4 a4 a#4", BE: "c5 a#4 a4 g4 c5 a#4 a4 g4 c5 a#4 a4 g4 f4 d#4 d4 c4",
BF: "d4 d#4 f4 g4 a4@4 a#4@8", BG: "~@2 a#2 g2 ~@4", BH: "a#2 g2 ~@6", BI: "[g2,g4] ~@3", BJ: "g3!2 f#3 g3",
BK: "a3!2 g3 a3", BL: "a#3!2 a3 a#3", BM: "c4!2 a#3 c4", BN: "[d4@3 ~]/2", BO: "d4!2 c#4 d4", BP: "d#4!2 d4 d#4",
BQ: "f4!2 e4 f4", BR: "g4!2 f4 g4", BS: "[a4@3 ~]/2", BT: "g3@2 g3@2 g3@2 g3@2 g3@2 g3@2 g3@2 g3 a3, ~@7 c4",
BU: "f#4@8 ~@6 g3 a3", BV: "[~ [a2,a4]@7]/4", BW: "~@7 [a#3,a#4]", BX: "[g3,g4]!2 ~@6",
})).s("gm_trombone").gain(0.26)
// other · french horn · "Corno en Fa"
const french_horn = note(`<
A B ~@8 C D E F G H I J K L M ~@2 N O P Q R O P S T U ~@2 V W X Y Z AA Z AB AC AD AE@2 AF AG AH@2 AI ~@13 AJ AK C D E
F G H I J K L M ~@2 N O P Q R O P S T U ~@2 V W X Y Z AA Z AB AC AD AE@2 AF AG AH@2 AI ~@15 V W X Y Z AA Z AB AC AD AL
W X Y Z AA Z AB AC AD AE@2 AF AG AM@4 ~@4 AN AO
>`.pickRestart({
A: "d4!2 ~ d4!2 ~ d4 ~ c4@4 d#4@4", B: "d4!2 ~ d4!2 ~ d4 ~@3 g4@6", C: "a#3 g3 ~ d3 f3 g3 a#3 a3",
D: "g3 ~ d3 f3 a#3 a3 g3 f3", E: "g3", F: "~@6 a3 a#3", G: "a3 g3 ~ d3 f3 g3 a#3 a3", H: "g3 ~ d3 f3 d4 c4 a#3 a3",
I: "a#3", J: "c4@6 a#3 c4", K: "d4@4 f4@4 e4@3 c4@3 d4@2", L: "c4@3 a3@3 a#3@2 a3@3 f3@3 g3@2", M: "d3@3 ~",
N: "~@6 g3 a3", O: "a#3 g4 f4 d#4", P: "f4@3 f4 g4 d4 c4 a#3", Q: "c4@2 a#3@2 c4@2 a#3@2 c4@2 ~@3 a#3!2 c4",
R: "d4@2 g4@4 g3 a3", S: "c4@3 ~", T: "~@4 f3!4", U: "g3 ~@7", V: "~@14 g3 a3", W: "a#3 c4 a3 a#3 c4 d4 g3 a3",
X: "a#3 c4 a3 a#3 c4 f4@2 d#4", Y: "d4@10 ~@4 d4 e4", Z: "f4 g4 e4 f4 g4 a4 f4 e4", AA: "f4@10 ~@4 d4 e4",
AB: "d4 g4", AC: "g4@2 g4@2 f4@2 d#4@2 f4@6 f4!2", AD: "e4@2 c4@2 c4@2 e4!2", AE: "[f#4@3 ~]/2", AF: "g4!2 a#4 a4",
AG: "f4 g4 g4@2", AH: "[~ a4@3]/2", AI: "g4 ~@3", AJ: "~@2 a#3 g3 ~@4", AK: "a#3 g3 ~@6", AL: "f#4@8 ~@6 g3 a3",
AM: "[~ a4@7]/4", AN: "~@7 a#3", AO: "g3!2 ~@6",
})).s("gm_french_horn").gain(0.45)
// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
A B C D E@2 C D E F G H I J K L M N O P Q R S T ~@7 U C D E F V W M X@2 Y M Z AA AB@2 AC AD AE@2 AF ~@13 AG F G H I J
K L M N O P Q R S T ~@7 U C D E F V W M X@2 Y M Z AA AB@2 AC AD AE@2 AH AI AH AI AJ ~@11 AK V W M X@2 Y M Z AA AL V W
M X@2 Y M Z AA AB@2 AC AD AM@4 C D E@2 AN AO
>`.pickRestart({
A: "d3!2 ~ d3!2 ~ d3 ~ c3@4 d#3@4", B: "d3!2 ~ d3!2 ~ d3 ~@3 g3@6", C: "a#2 g2 ~ g2 f2 g2 ~ g2",
D: "a#2 g2 c#3 c3@2 a#2 f2 f#2", E: "g2 a2 a#2 g2 ~ g2 f2 f#2", F: "a#2 g2 ~@6", G: "a#3 g3 ~ d3 f3 g3 a#3 a3",
H: "g3 ~ d3 f3 a#3 a3 g3 f3", I: "g3", J: "~@6 a3 a#3", K: "a3 g3 ~ d3 f3 g3 a#3 a3", L: "g3 ~ d3 f3 d4 c4 a#3 a3",
M: "a#3", N: "c4@6 a#3 c4", O: "d4@4 f4@4 e4@3 c4@3 d4@2", P: "c4@3 a3@3 a#3@2 a3@3 f3@3 g3@2", Q: "d3@3 ~",
R: "d#2@3 d2@5", S: "d#2 f2 ~ d2@5", T: "f2!2 d#2 d2@5", U: "d#2 f2 ~@2 f2!4", V: "g2",
W: "g2@8 [g2,g#2,a2] [a#2,b2,c3,c#3,d3] [d#3,e3] ~@3 d#3@2, ~@5 f3@2 ~", X: "[a#3@4 a#2@8 d3 c#3 f#3 e3]/2",
Y: "f3@3 d3 f3@3 g3", Z: "g3 f3", AA: "e3", AB: "[f#3@3 a2]/2", AC: "g3!2 a#3 a3", AD: "f3 g3 g3@2", AE: "[~ a3@3]/2",
AF: "g3 ~@3", AG: "~@2 a#2 g2 ~@4", AH: "g2@3 a2@3 a#2@2", AI: "d3@3 c#3@3 c3@2", AJ: "g2 ~", AK: "g3!7 c4",
AL: "f#3@8 f#3@3 f#3@2 f#3@3", AM: "[~ a3@7]/4", AN: "g2 a2 a#2 ~ f#2 g#2 a2 ~ f2 g2 g#2 ~@3 a#2@2", AO: "g2!2 ~@6",
})).s("gm_baritone_sax").gain(0.4)
// other · trombone
const trombone_2 = note(`<
A B C D E@2 C D E F G H I J G K L M N O P Q R S T U V W X Y Z AA C D E F U AB AC Y AD ~@2 AE AF AG AH AI AJ AK AL C D
AM AN AO C D AM AN AO AP AQ AR AS AT F G H I J G K L M N O P Q R S T U V W X Y Z AA C D E F U AB AC Y AD ~@2 AE AF AG
AH AI AJ AK AL AU AV AU AV AW AX AY AZ BA@2 BB BC BD BE BF@2 BG U AB AC Y AD ~@2 AE AF ~ U AB AC Y AD ~@2 AE AF AG AH
AI AJ AK@4 C D E@2 BH BI
>`.pickRestart({
A: "d3!2 ~ d3!2 ~ d3 ~ f3@4 d#3@4", B: "d3!2 ~ d3!2 ~ d3 ~@3 g2@6", C: "a#2 g2 ~ g2 f2 g2 ~ g2",
D: "a#2 g2 c#3 c3@2 a#2 f2 f#2", E: "g2 a2 a#2 g2 ~ g2 f2 f#2", F: "a#2 g2 ~@6", G: "d3@3 g4@5",
H: "d3@2 f3@2 a#3 g3 a#3 g3", I: "f3@3 a#4@5", J: "a#3 c4 d4 f4@2 d#4@3", K: "a#3 c4 d4 f4@3 d#4 d4",
L: "c4@3 c4@3 c4@2", M: "f4@2 ~ f4 ~@2 f4@2", N: "a3@4 c4@4 b3@3 g3@3 a3@2", O: "g3@3 e3@3 f3@2 e3@3 c3@3 d3@2",
P: "a2@3 ~", Q: "d#3@3 d3@5", R: "d#3 f3 ~ d3@5", S: "f3!2 d#3 d3@5", T: "g3", U: "a#3 a3", V: "a3@12 ~ a#3!2 c4",
W: "a3 ~@2 f4@3 d#4@2", X: "d4", Y: "f4 d#4", Z: "a#3!8", AA: "d#3 f3 ~@4 a#3@2", AB: "g3 a3 ~@6",
AC: "~@12 a#3 c4 d4 d#4", AD: "d4 f4 ~@6", AE: "g4!2 ~@2 f4!2 ~@2", AF: "e4!2 ~@6", AG: "~@4 f#4 d4 d#4 e4",
AH: "f4 f#4 g4 a4 a4@4", AI: "g2!2 a#2 a2", AJ: "f2 g2 g2@2", AK: "d4@2 d3!2 c4@2 d3!2 d4@2 d#4 f4 d4@2 d#4 f4",
AL: "d4@2 d3!2 c4@2 d3!2 d4@2 d#4 f4 d3@4", AM: "g2 a2 a#2 g2 c3 a#2 g2 a2", AN: "a#2 g2 c3 a#2 g2 a2 a#2 g2",
AO: "c3 a#2 g2 a2 a#2 c3 d3 e3", AP: "f2", AQ: "g#2", AR: "b2", AS: "c3", AT: "~@2 a#2 g2 ~@4",
AU: "e3 f3@2 f#3@2 e3 f3 f#3", AV: "a#3 a3@2 g#3@3 g3@2", AW: "g2", AX: "a2 c3 f3 g4@5", AY: "g4", AZ: "c4!4 d4!4",
BA: "g3@3 f3@3 d#3@2", BB: "d3 f3 a3 f4@5", BC: "d#4 f4", BD: "c4 f4 e4@2", BE: "g3 g4", BF: "d#3@3 d3@3 c3@2",
BG: "g2 ~@3", BH: "g2 a2 a#2 ~ f#2 g#2 a2 ~ f2 g2 g#2 ~@3 a#2@2", BI: "g2!2 ~@6",
})).s("gm_trombone").gain(0.24)
// other · trombone
const trombone_3 = note(`<
A B C D ~@2 C D ~ E ~@2 F G ~@7 H I J K L M ~@4 N C D C E O P ~ Q R ~@2 S T U V W X Y@2 Z ~@13 AA E ~@2 F G ~@7 H I J
K L M ~@4 N C D C E O P ~ Q R ~@2 S T U V W X Y@2 Z ~@3 AB AC AD AE AF@2 AG AH AI AJ AK@2 AL O P ~ Q R ~@2 S T ~ O P ~
Q R ~@2 S T U V W X AM@4 C D ~@2 AN AO
>`.pickRestart({
A: "d3!2 ~ d3!2 ~ d3 ~ c3@4 d#3@4", B: "d3!2 ~ d3!2 ~ d3 ~@3 g3@6", C: "d#3!2 ~@4 d#3!2", D: "~@4 d#3!2 ~@2",
E: "a#3 g3 ~@6", F: "f2@3 a#3@5", G: "a#2 c3 d3 f3@2 d#3@3", H: "a#3@3 a3@5", I: "a#3 c4 ~ a3@5", J: "c4!2 a#3 a3@5",
K: "g2", L: "a#2 a2", M: "a2@3 ~", N: "a#3 c4 ~@6", O: "a#3 a3", P: "g3 a3 ~@6", Q: "f4 d#4", R: "d4 f4 ~@6",
S: "d4!2 ~@2 c4!2 ~@2", T: "b3!2 ~@6", U: "~@4 f#3 d3 d#3 e3", V: "f3 f#3 g3 a3 a3@4", W: "d3!2 f3 e3",
X: "c3 d3 d3@2", Y: "[~ e3@3]/2", Z: "g3 ~@3", AA: "~@2 a#3 g3 ~@4", AB: "g3!2 f#3 g3", AC: "a3!2 g3 a3",
AD: "a#3!2 a3 a#3", AE: "c4!2 a#3 c4", AF: "[d4@3 ~]/2", AG: "d4!2 c#4 d4", AH: "d#4!2 d4 d#4", AI: "f4!2 e4 f4",
AJ: "g4!2 f4 g4", AK: "[a4@3 ~]/2", AL: "g3!7 c4", AM: "[~ e3@7]/4", AN: "~@7 a#3", AO: "g3!2 ~@6",
})).s("gm_trombone").gain(0.2)
// bass · tuba · "Bass Trombone"
const bass = note(`<
A B C D E@2 C D E F G H I J G K L M N O P Q R S T U V W X Y Z AA AB D AC F U AD AE AF AG ~@2 AH AI AJ AK AL AM AN@2 AO
AP AQ AR AS AT AP AQ AR AS AU AV AW AX AY F G H I J G K L M N O P Q R S T U V W X Y Z AA AB D AC F U AD AE AF AG ~@2
AH AI AJ AK AL AM AN@2 AZ BA AZ BA BB BC BD BE BF@2 BG BH BI BJ BK@2 BL U AD AE AF AG ~@2 AH AI ~ U AD AE AF AG ~@2 AH
AI AJ AK AL AM BM@4 C D E@2 BN BO
>`.pickRestart({
A: "d3!2 ~ d3!2 ~ d3 ~ [c3,f3]@4 d#3@4", B: "d3!2 ~ d3!2 ~ d3 ~@3 [g2,g3]@6", C: "[g2,a#2] g2 ~ g2 f2 g2!3",
D: "a#2 g2 c#3 ~ g2 [g2,a#2] f2 f#2, ~@3 c3@2 ~@3", E: "g2 a2 a#2 g2 ~ g2 f2 f#2", F: "a#2 g2 ~@6", G: "d3@3 g4@5",
H: "d3@2 f3@2 a#3 g3 a#3 g3", I: "[f2,f3]@3 [a#3,a#4]@5", J: "[a#2,a#3] [c3,c4] [d3,d4] [f3,f4]@2 [d#3,d#4]@3",
K: "a#3 c4 d4 f4@3 d#4 d4", L: "c4@3 c4@3 c4@2", M: "f4@2 ~ f4 ~@2 f4@2", N: "a3@4 c4@4 b3@3 g3@3 a3@2",
O: "g3@3 e3@3 f3@2 e3@3 c3@3 d3@2", P: "a2@3 ~", Q: "[a#2,d#3]@3 [a2,d3]@5", R: "[a#2,d#3] [c3,f3] ~ [a2,d3]@5",
S: "[c3,f3]!2 [a#2,d#3] [a2,d3]@5", T: "[g2,g3]", U: "[a#2,a#3] [a2,a3]", V: "[a2,a3]@12 ~ a#3!2 c4",
W: "a3 ~@2 f4@3 d#4@2", X: "d4", Y: "f4 d#4", Z: "a#3!8",
AA: "[a#2,d#3]@2 [c3,f3]@2 ~@8 [a3,a#3] [f#3,g3,g#3] [d#3,e3,f3] [c3,c#3,d3]", // D#5 F5 A#maj7
AB: "[g2,a#2] g2 ~ g2 f2 g2!3, b2 ~@15", AC: "g2 [g2,a2] a#2 g2 ~ g2 [f2,g2] [f#2,g2]", AD: "[g2,g3] [a2,a3] ~@6",
AE: "~@12 a#3 c4 d4 d#4", AF: "[f3,f4] [d#3,d#4]", AG: "[d3,d4] [f3,f4] ~@6", AH: "[g3,g4]!2 ~@2 [f3,f4]!2 ~@2",
AI: "[e3,e4]!2 ~@6", AJ: "~@4 [f#2,f#4] [d2,d4] [d#2,d#4] [e2,e4]", AK: "[f2,f4] [f#2,f#4] [g2,g4] [a2,a4] [a2,a4]@4",
AL: "g2!2 a#2 a2", AM: "f2 g2 g2@2",
AN: "[d4@2 d3!2 c4@2 d3!2 d4@2 d#4 f4 d4@2 d#4 f4 d4@2 d3!2 c4@2 d3!2 d4@2 d#4 f4 d3@4, ~ e2@3]/2",
AO: "[g2,a#2] g2 ~ g2 f2 g2 ~ g2", AP: "a#2 g2 c#3 c3@2 a#2 f2 f#2", AQ: "g2 a2 a#2 g2 c3 a#2 g2 a2",
AR: "a#2 g2 c3 a#2 g2 a2 a#2 g2", AS: "c3 a#2 g2 a2 a#2 c3 d3 e3", AT: "a#2 g2 ~ g2 f2 g2 ~ g2", AU: "f2", AV: "g#2",
AW: "b2", AX: "c3", AY: "~@2 a#2 g2 ~@4", AZ: "e3 f3@2 f#3@2 e3 f3 f#3, g2@3 a2@3 a#2@2",
BA: "a#3 a3@2 [c#3,g#3]@3 [c3,g3]@2, d3@3 ~@5", BB: "g2", BC: "a2 c3 f3 g4@5", BD: "g4", BE: "c4!4 d4!4",
BF: "g3@3 f3@3 d#3@2", BG: "d3 f3 a3 f4@5", BH: "d#4 f4", BI: "c4 f4 e4@2", BJ: "g3 g4", BK: "d#3@3 d3@3 c3@2",
BL: "g3!7 c4, g2 ~@3",
BM: "[d4@2 d3!2 c4@2 d3!2 d4@2 d#4 f4 d4@2 d#4 f4 d4@2 d3!2 c4@2 d3!2 d4@2 d#4 f4 d4@2 d#4 f4 d4@2 d3!2 c4@2 d3!2 d4@2 d#4 f4 d4@2 d#4 f4 d4@2 d3!2 c4@2 d3!2 d4@2 d#4 f4 d4@2 d#4 f4, ~ e2@7]/4",
BN: "g2 a2 a#2 ~ f#2 g#2 a2 ~ f2 g2 g#2 ~@3 [a#2,a#3]@2", BO: "[g2,g3]!2 ~@6",
})).s("gm_tuba").gain(0.4)
// bass · tuba
const bass_2 = note(`<
A B C D E@2 C D E F G H I H G H J K L M N O P Q R S T U R V W X C D E F Y Z AA AB@2 AC AA AD AE AF@2 AG AH ~ AI C D AJ
AK AL C D AJ AK AL AM AN AO AP AQ F G H I H G H J K L M N O P Q R S T U R V W X C D E F Y Z AA AB@2 AC AA AD AE AF@2
AG AH ~ AI AR AS AR AS AT AU AV AW AX@2 AY AZ BA BB BC@2 BD Y Z AA AB@2 AC AA AD AE BE Y Z AA AB@2 AC AA AD AE AF@2 AG
AH ~@3 AI C D E@2 BF BG
>`.pickRestart({
A: "d3!2 ~ d3!2 ~ d3 ~ c3@4 d#3@4", B: "d3!2 ~ d3!2 ~ d3 ~@3 g3@6", C: "a#2 g2 ~ g2 f2 g2 ~ g2",
D: "a#2 g2 c#3 c3@2 a#2 f2 f#2", E: "g2 a2 a#2 g2 ~ g2 f2 f#2", F: "a#2 g2 ~@6", G: "g2@2 g2@2 g2@2 g2 d3",
H: "g2@2 g2 d3 f3 g3 d3 g2", I: "g2@2 g2!2 g2@2 g2@2", J: "g2!4", K: "f2@2 c3 f3@5", L: "d3@4 f3@4 e3@3 c3@3 d3@2",
M: "c3@3 a2@3 a#2@2 a2@3 f2@3 g2@2", N: "d3@3 ~", O: "d#3@3 d3@5", P: "d#3 f3 ~ d3@5", Q: "f3!2 d#3 d3@5",
R: "g2@2 ~ g2 ~@2 g2@2", S: "g3@2 f3 d#3@5", T: "d3@2 ~ d3 ~@2 d3@2", U: "g2@2 g2 g2@5", V: "g3@2 f3 d#3@3 d#3@2",
W: "d3@2 d3!2 ~ d3 d3@2", X: "d#3 f3 ~@6", Y: "g2",
Z: "g2@8 [g2,g#2,a2] [a#2,b2,c3,c#3,d3] [d#3,e3] ~@3 d#3@2, ~@5 f3@2 ~", AA: "a#3",
AB: "[a#3@4 a#2@8 d3 c#3 f#3 e3]/2", AC: "f3@3 d3 f3@3 g3", AD: "g3 f3", AE: "e3", AF: "[f#3@3 a2]/2",
AG: "g2!2 a#2 a2", AH: "f2 g2 g2@2", AI: "~@8 [c#4,d4] [a#3,b3,c4] [g3,g#3,a3] [e3,f3,f#3] d3@4, ~@12 d#3 ~@3",
AJ: "g2 a2 a#2 g2 c3 a#2 g2 a2", AK: "a#2 g2 c3 a#2 g2 a2 a#2 g2", AL: "c3 a#2 g2 a2 a#2 c3 d3 e3", AM: "f2",
AN: "g#2", AO: "b2", AP: "c3", AQ: "~@2 a#2 g2 ~@4", AR: "g2@3 a2@3 a#2@2", AS: "d3@3 c#3@3 c3@2", AT: "g2@3 g2 g2@4",
AU: "a2@3 a2 a2@4", AV: "c3@3 a#2 d3@2 a#2@2", AW: "c3@3 a2 d3@2 e3@2", AX: "g3@3 f3@3 d#3@2", AY: "d3@3 d3 d3@4",
AZ: "c3@3 c3 c3@4", BA: "a#2@3 a#2 a#2@4", BB: "a2@3 a2 a2@2 d3@2", BC: "d#3@3 d3@3 c3@2", BD: "g2 ~@3",
BE: "f#3@8 f#3@3 f#3@2 f#3@3", BF: "g2 a2 a#2 ~ f#2 g#2 a2 ~ f2 g2 g#2 ~@3 a#2@2", BG: "g2!2 ~@6",
})).s("gm_tuba").gain(0.4)
// drums · kick
const kick = s("bd").struct(`<
~@2 A B A B A B C D A B A B A B A B A B A E ~@2 A B A B A B A F A B A F G@10 H ~@4 A B I J K A B I J K L@3 M N F A B A
B A B A B A B A E ~@2 A B A B A B A F A B A F G@10 H ~@4 O@4 P@4 Q@2 P@4 Q R S G@9 T G@10 H ~@6 A B A B ~ F
>`.pickRestart({
A: "x ~ x ~@3 x ~@3 x ~@3 x!2", B: "x ~@2 x ~ x ~@2", C: "x!2 ~ x ~ x ~@2", D: "x!2 ~@2 x!2 ~@2", E: "~@3 x ~ x ~@2",
F: "x!2 ~@6", G: "x!4", H: "x!3 ~", I: "x ~@2 x ~@2 x ~", J: "~ x ~@2 x ~@2 x", K: "~@2 x ~@2 x ~@2", L: "x ~@13 x!2",
M: "x!8", N: "~@2 x!2 ~@4", O: "x ~@5 x ~@7 x!2", P: "x ~@2 x!2 ~ x ~", Q: "x ~@5 x ~@3 x ~@3 x!2",
R: "x ~@5 x ~@3 x ~ x!4", S: "x", T: "x ~@3 x ~@3 x ~@2 x ~ x ~@2",
})).gain(0.48)
// drums · snare
const snare = s("sd").struct(`<
A B C@7 ~ C@11 D ~ E C@7 ~ C@3 ~ F@2 G F@3 G F@2 G H ~@4 C@2 I J K C@2 I J K ~@3 L M N C@11 D ~ E C@7 ~ C@3 ~ F@2 G
F@3 G F@2 G H ~@4 O@4 C@4 D@2 C@4 D P Q F@2 G F@3 G F@2 R F@2 G F@3 G F@2 G H ~@4 S T C@4 U N
>`.pickRestart({
A: "x!2 ~ x!2 ~ x ~ x ~@3 x ~@3", B: "x!2 ~ x!2 ~ x ~@3 x ~@5", C: "~@3 x", D: "~ x ~ x", E: "~@12 x!3 ~",
F: "~ x ~ x ~ x ~ x", G: "x ~ x ~ x ~ x ~ x!8", H: "x!9 ~@7", I: "~ x", J: "~ x ~@2", K: "x ~@2 x", L: "~@4 x!4",
M: "~@2 x!2 ~@4", N: "x!2 ~@6", O: "~@2 x ~@2 x ~@2", P: "~@2 x!3 ~@5 x!6", Q: "x",
R: "x ~ x ~ x ~ x ~ x ~@2 x ~ x ~@2", S: "x!3 ~ x!3 ~ x ~ x!3 ~ x!2", T: "x ~ x!3 ~ x!10",
U: "x!3 ~ x!3 ~ x!3 ~@3 x ~",
})).gain(0.48)
// drums · low tom
const low_tom = s("lt").struct("<~@9 [~@4 x!2 ~@2] ~@148>").gain(0.64)
// drums · hihat
const hihat = s("hh").struct(`<
~@2 A@6 B ~ A@11 ~@3 A@6 B ~ A@2 B ~ C@2 D C@3 D C@2 D ~@3 A@4 E F G A@2 E F G ~@6 A@11 ~@3 A@6 B ~ A@2 B ~ C@2 D C@3
D C@2 D ~@3 A@2 ~@17 C@2 D C@3 D C@2 D C@2 D C@3 D C@2 D ~@3 A@2 ~@2 A@4 ~@2
>`.pickRestart({
A: "x!4", B: "x!3 ~", C: "~ x ~ x ~ x ~ x", D: "~ x ~ x ~@4", E: "x!2 ~ x", F: "x ~ x!2", G: "~ x!2 ~",
// … 28 more lines
More by
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.