0:00/0:00
// Majora's Mask — Jordan Bender
// 100 bpm, 4/4, key D minor. 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 12, 5/4 at bar 13, 4/4 at bar 14, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/699221; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 174 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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 · timpani
const timpani = note(`<
~@21 A@3 ~@27 B@2 C@12 D@8 ~ E@2 F G H I J H K L ~@3 M N O@2 P Q R S T@23 ~@40 U V@2 W@6 X@2 ~@2 Y Z@2
>`.pickRestart({
A: "[~@15 d2@29 ~@4]/3", B: "[~@7 d2@3 d2@3 d2@3]/2", C: "[d2@6 d2@6 d2@6 d2@6 d2@6 d2@6 d2@6 d2@3 a2@2 a2]/3",
D: "[d2@12 d2!11 d2@233]/8", E: "[~@6 d2@3 a2@3 d2@3 a2@3 d2@3 a2@3 d2@3 a2@3 d2@2]/2",
F: "~ a2@3 d2@3 a2@3 d2@3 a2@3", G: "d2@3 a2@3 d2@2 d2!4 a2@2 a2!2", H: "a2!2 d2@2 d2!4 a2@2 a2!4 d2@2",
I: "d2!4 a2@2 a2!4 d2@2 d2!4", J: "a2@2 a2!4 d2@2 d2!4 a2@2 a2!2", K: "a2 d2 a2 d2 a2 d2 a2 d2",
L: "a2@4 d2@4 a2@4 d2@5 ~@15", M: "~@19 d2@5 g2@5 ~@3", N: "~@27 d2@5", O: "[~@25 d2@5 a2@5 ~@25 d2@4]/2",
P: "~ a2@5 ~@22 a2 ~ a2!2", Q: "a2!2 ~ a2 d2@5 ~@5 d2@5 ~@5 d2!8", R: "d2!11 d2@21", S: "c3!2 ~@2",
T: "c3@2 c3 g3 ~@4", U: "~@31 g2", V: "[g2!3 ~ g2!12 a2@25 d3@17 d3@6]/2",
W: "[~@2 g2@17 g2@8 c3@25 f2@25 bb2@17 bb2@8 g2@17 c3@8 g2@25 a2@25 d3@15]/6", X: "[~@2 d3@8 g2@17 g2@8 c3@25 ~@4]/2",
Y: "~@7 e3!9 ~ e3!15", Z: "[e3!7 e3@34 ~@23]/2",
})).s("gm_timpani").gain(0.4)
// other · timpani · soft notes
const timpani_soft = note("<~@132 A@6 B@3 C@4 ~@13 D ~@15>".pickRestart({
A: "[~@4 a2@13 a2@22 a2@13 a2@22 ~ a2@13 a2@22 a2@13 ~ g2@22 a2@13 a2@22 a2@11]/6",
B: "[~@3 a2@22 a2@13 a2@22 f2@36]/3", C: "[g2@13 g2@22 ~ f2@13 f2@22 f2@13 f2@22 ~ e2@13 e2@4 ~@4]/4",
D: "~@23 g2!8 ~",
})).s("gm_timpani").gain(0.2)
// other · glockenspiel
const glockenspiel = note(`<
A@5 B@5 ~@2 C@8 ~@33 D@2 E F@2 G H@2 I J@2 K L ~@2 D@2 E F@2 G H@2 I J@2 M N@2 M O ~@18 P Q P R S T S U ~@4 V W X Y Z
W AA AB ~@9 AC@2 AD AE AF AG@3 AH AI AJ AK AL AM@3 ~@12 AN AO AP@5 AQ AR@7
>`.pickRestart({
A: "[~@29 b7@131]/5", B: "[~@19 b7@125 ~@16]/5", C: "[~@7 b7@81 b7@150 ~@18]/8",
D: "[~@6 d6@2 d7 db7 b6 a6 b6@3 g6@3 a6@2 e6 a6 g6 e6 g6@2 a6 gb6@3 d6@2]/2",
E: "d7 db7 b6 a6 b6@3 g6@3 a6 g6 e6 g6@2 gb6",
F: "[d6@6 d6@2 d7 db7 b6 a6 b6@3 g6@3 a6@2 e6 a6 g6 e6 g6@2 a6 gb6@3 d6@2]/2",
G: "d7 db7 b6 a6 b6@3 g6@3 a6 g6 e6 gb6 g6 e6",
H: "[d6@6 d7@2 d7!2 db7 d7 e7@3 a6@3 g7 gb7 g7 gb7@2 d7 e7@3 a6@3 d7@2]/2",
I: "d7!2 db7 d7 e7@2 db7 a6@3 g7 gb7 g7 gb7@2 db7",
J: "[d7@6 d7@2 d7!2 db7 d7 e7@3 a6@3 g7 gb7 g7 gb7@2 d7 e7@2 db7 a6@3 d7@2]/2",
K: "d7!2 db7 d7 e7@3 a6@3 g7 gb7 g7 gb7@2 db7", L: "d7@3 ~@5", M: "d7!2 db7 d7 e7@3 a6@3 g7 gb7 g7 gb7@2 d7",
N: "[e7@2 db7 a6@3 d7@2 d7!2 db7 d7 e7@3 a6@3 g7 gb7 g7 gb7@2 d7 e7@2 db7 a6@3 d7@2]/2",
O: "e7@2 db7 a6@3 [d6,d7]@5 ~@5", P: "a7@2 c8@2 b7@3 g7", Q: "a7 c8 b7 a7 g7@2 e7@2", R: "a7 c8 b7 g7 a7@4",
S: "a6@2 c7@2 b6@3 g6", T: "a6 c7 b6 a6 g6@2 e6@2", U: "a6 c7 b6 g6 a6@4", V: "e7@2 e7@2 d7@3 b6",
W: "e7@2 d7 c7 b6@4", X: "e7@2 e7@2 d7@3 c7", Y: "b6!2 a6@2", Z: "e7!2 d7@2", AA: "e7 f7 e7 d7 c7@2 b6@2", AB: "a6",
AC: "[~@20 bb6@2 c7@2 d7@2 ~ e7@2 f7@2 g7@2 ab7@2 ~ a7@4 c7@4 f7@4 ~ a7@4 ~@11]/2",
AD: "~@7 a7@4 ~ bb6@4 d7@4 a7@4 ~@8", AE: "~@11 a7@4 c7@4 ~ f7@4 a7@4 ~@4", AF: "~@14 a7@4 ~ bb6@4 d7@4 ~ g7@4",
AG: "[~@18 a7@4 bb6@4 ~ d7@4 a7@4 ~@18 a7@4 ~ bb6@4 d7@4 ~ a7@4 ~@18 a7@4 db7@3]/3", AH: "~ d7@2 a7@2 ~@9 f7@2",
AI: "~ a6@4 d7@4 ~ f7@4 ~@18", AJ: "g7@4 b6@4 ~ d7@4 g7@4 ~@15", AK: "~@4 f7@4 b6@4 d7@4 ~ f7@4 ~@11",
AL: "~@7 f7@4 ~ g6@4 bb6@4 f7@4 ~@8",
AM: "[~@11 e7@4 g6@4 ~ bb6@4 e7@7 bb6@2 c7@2 d7@2 e7@2 ~ f7@2 g7@2 ab7@2 c8@50]/3", AN: "~@16 [f6,a6]@8 ~ [f6,a6]@7",
AO: "~ [f6,a6]@8 [a6,d7]@8 ~ [a6,d7]@8 [a6,d7]@6", // F D5
AP: "[~@2 [e6,g6]@8 ~ [e6,g6]@8 [e6,g6]@8 [e6,c7]@8 ~ [e6,g6]@16 [d6,f6]@8 ~ [d6,f6]@8 [d6,f6]@8 [f6,bb6]@8 ~ [f6,bb6]@8 [f6,bb6]@8 [c6,e6]@8 ~ [c6,d6]@8 [c6,a6]@8 [c6,e6]@25 [f6,a6]@8]/5", // Em C Em Dm Bb5 C Csus2 F …
AQ: "~ [f6,a6]@8 [f6,a6]@8 [a6,d7]@8 ~ [a6,d7]@6", // F D5
AR: "[~@2 [a6,d7]@8 [e6,g6]@8 ~ [e6,g6]@8 [e6,g6]@8 [e6,c7]@8 ~ [e6,g6]@16 [d6,f6]@8 ~ [d6,g6]@8 [d6,a6]@8 [f6,bb6]@8 ~ [f6,c7]@8 [f6,d7]@8 [f6,a6]@8 ~ [f6,b6]@8 [f6,d7]@8 e7@67 ~@22]/7", // D5 Em C Em Dm G5 D5 Bb5 …
})).s("gm_glockenspiel").gain(0.3)
// chords · vibraphone
const vibraphone = note(`<
~@3 A B@7 C@2 D@2 E@6 F ~ G@2 H@5 I@5 J@5 K@5 L@8 M@2 N O@2 P Q@2 R S@2 T U ~@8 V@2 R W@2 X Y@2 X Z AA AB AC@2 AD AE
AF AG AH@2 ~@2 AI AJ AI AK AI AJ AI AJ AI AK AI AJ AI AK AI AJ AI AK AI AJ AI AK AI AJ AI AK AI AK ~@2 AI AK AL AM
AN@2 AO@6 AP@3 AQ@6 ~@12 AR AS AT@5 AU AV@7
>`.pickRestart({
A: "~@10 b4@3 [ab4,e5]@3", // Dbm
B: "[~ [f4,bb4,d5]@50 ~@12 b4@6 [ab4,e5]@6 ~ [f4,bb4,d5]@12 [db4,gb4,bb4]@12 ~ [e4,a4,db5]@12 [c4,f4,a4]@12 ~ [a3,d4,gb4]@25 [a3,c4,e4]@25 [a3,d4,gb4]@25 [a3,c4,e4]@23]/7", // Bb Dbm Bb Gb A F D Am …
C: "[~@2 [a3,d4,gb4]@37 ~@19 b4@6]/2", D: "[[ab4,e5]@3 [f4,bb4,d5]@25 ~@4]/2",
E: "[~@5 b4@6 [ab4,e5]@6 [f4,bb4,d5]@12 ~ [db4,gb4,bb4]@12 [e4,a4,db5]@12 ~ [c4,f4,a4]@12 [eb4,ab4,c5]@12 ~ [bb4,eb5,g5]@12 [g4,b4,d5]@25 [f4,a4,d5]@25 [e4,ab4,d5]@25 [d4,gb4]@25]/6", // Dbm Bb Gb A F Ab Eb G …
F: "[c4,e4]@31 ~", G: "[~@3 [f4,db5]@5]/2", H: "[[e4,c5]@2 [c4,ab4] [f4,b4] [e4,bb4]@8 [f4,db5]@4]/5",
I: "[[e4,c5]@2 [c4,ab4] [b4,f5] [bb4,e5]@8 [f4,db5]@4]/5", // C Fm Bdim Bbdim Db
J: "[[e4,c5]@2 [c4,ab4] [f4,b4] [e4,bb4]@8 [c4,gb4]@2 [b3,f4] [d4,ab4]]/5", // C Fm Fdim Edim Cdim Bdim Ddim
K: "[[eb4,a4]@2 [d4,ab4] [f4,b4] [e4,bb4]@8 [eb4,a4]@2 [d4,ab4]@2]/5", // Ebdim Ddim Fdim Edim Ebdim Ddim
L: "[[b3,f4]@20 a4@5 ab4@5 [f4,b4]@20 [d4,a4,d5]@5 [d4,d5]@3 [db4,db5]@3 [b3,b4]@3]/8", // Bdim Fdim D5 D Db B
M: "[[db4,db5]@6 d4 ~ d5 db5 b4 a4 b4@3 g4@3 a4 ~ e4 a4 g4 e4 g4@2 a4 gb4@3 d4 ~]/2", // Db
N: "d5 db5 b4 a4 b4@3 g4@3 a4 g4 e4 g4 ~ gb4",
O: "[d4@6 d4 ~ d5 db5 b4 a4 b4@3 g4@3 a4 ~ e4 a4 g4 e4 g4@2 a4 gb4@3 d4@2]/2",
P: "d5 db5 b4 a4 b4@3 g4@3 a4 g4 e4 gb4 g4 e4",
Q: "[d4@6 d5 ~ d5!2 db5 d5 e5@3 a4@3 g5 gb5 g5 gb5 ~ d5 e5@3 a4@3 d5 ~]/2",
R: "d5!2 db5 d5 e5@2 db5 a4@3 g5 gb5 g5 gb5 ~ db5",
S: "[d5@6 d5 ~ d5!2 db5 d5 e5@3 a4@3 g5 gb5 g5 gb5 ~ d5 e5@2 db5 a4@3 d5 ~]/2",
T: "d5!2 db5 d5 e5@3 a4@3 g5 gb5 g5 gb5 ~ db5", U: "d5@3 ~@5",
V: "[~@6 d5 ~ d5!2 db5 d5 e5@3 a4@3 g5 gb5 g5 gb5 ~ d5 e5@3 a4@3 d5 ~]/2",
W: "[d5@6 d5@2 d5!2 db5 d5 e5@3 a4@3 g5 gb5 g5 gb5@2 d5 e5@2 db5 a4@3 d5@2]/2",
X: "d5!2 db5 d5 e5@3 a4@3 g5 gb5 g5 gb5@2 d5",
Y: "[e5@2 db5 a4@3 d5@2 d5!2 db5 d5 e5@3 a4@3 g5 gb5 g5 gb5@2 d5 e5@2 db5 a4@3 d5@2]/2",
Z: "e5@4 db5@2 a4@6 d4@5 ~@5 d4@2 ~@5 d4@2 ~", AA: "~@2 eb4@2 ~ c4@2 ~@8 d4@2 ~@8 d4@2 ~@5",
AB: "d4@2 ~@3 eb4@2 ~ f4@2 ~@8 d4@2 ~@8 d4@2 ~@2",
AC: "[~@3 d4@2 ~@3 eb4@2 ~ c4@2 ~@8 d4@2 ~@8 d4@2 ~@5 d4@2 ~@3 eb4@2 ~ f4@2 ~@8 g4@2 ~@6]/2",
AD: "~@2 g4@2 ~@5 g4@2 ~@3 ab4@2 ~ f4@2 ~@8 g4@2 ~@3", AE: "~@5 g4@2 ~@5 g4@2 ~@3 ab4@2 ~ bb4@2 ~@8 a4@2",
AF: "~@8 a4@2 ~@5 a4@2 ~@3 bb4@2 ~ g4@2 ~@7", AG: "~ a4@2 ~@8 a4@2 ~@5 a4@2 ~@3 bb4@2 ~ c5@2 ~@4",
AH: "[~@9 d5@5 ~@5 d5@5 d4@40]/2", AI: "[a4,e5]", AJ: "[bb4,f5] [g4,d5]", AK: "[bb4,f5] [a4,e5]", AL: "[f4,c5]",
AM: "[gb4,db5] [f4,c5]", AN: "[[f4,f5]@50 ~@2 bb3@2 c4@2 d4@2 ~ e4@2 f4@2 g4]/2",
AO: "[~ ab4@2 ~ [c4,f4,a4]@13 [c4,f4,a4]@22 [bb3,d4,a4]@13 [bb3,d4,a4]@22 ~ [c4,f4,a4]@13 [c4,f4,a4]@22 [bb3,d4,a4]@13 ~ [bb3,d4,g4]@22 [bb3,d4,a4]@13 [bb3,d4,a4]@22 [bb3,d4,a4]@11]/6", // F Bbmaj7 F Bbmaj7 Gm Bbmaj7
AP: "[~@3 [bb3,d4,a4]@22 [db4,e4,a4]@13 [db4,e4,a4]@22 [a3,d4,f4]@36]/3", // Bbmaj7 A Dm
AQ: "[[b3,d4,g4]@13 [b3,d4,g4]@22 ~ [b3,d4,f4]@13 [g3,b3,f4]@22 [g3,bb3,f4]@13 [g3,bb3,f4]@22 ~ [g3,bb3,e4]@13 [g3,bb3,e4]@7 bb3@2 c4@2 d4@2 e4@2 ~ f4@2 g4@2 ab4@2 [c4,f4,a4]@50]/6", // G Bdim G7 Gm7 Edim F
AR: "~@16 [f4,a4]@8 ~ [f4,a4]@7", AS: "~ [f4,a4]@8 [a4,d5]@8 ~ [a4,d5]@8 [a4,d5]@6",
AT: "[~@2 [e4,g4]@8 ~ [e4,g4]@8 [e4,g4]@8 [e4,c5]@8 ~ [e4,g4]@16 [d4,f4]@8 ~ [d4,f4]@8 [d4,f4]@8 [f4,bb4]@8 ~ [f4,bb4]@8 [f4,bb4]@8 [c4,e4]@8 ~ [c4,d4]@8 [c4,a4]@8 [c4,e4]@25 [f4,a4]@8]/5", // Em C Em Dm Bb5 C Csus2 F …
AU: "~ [f4,a4]@8 [f4,a4]@8 [a4,d5]@8 ~ [a4,d5]@6", // F D5
AV: "[~@2 [a4,d5]@8 [e4,g4]@8 ~ [e4,g4]@8 [e4,g4]@8 [e4,c5]@8 ~ [e4,g4]@16 [d4,f4]@8 ~ [d4,g4]@8 [d4,a4]@8 [f4,bb4]@8 ~ [f4,c5]@8 [f4,d5]@8 [f4,a4]@8 ~ [f4,b4]@8 [f4,d5]@8 [e4,e5]@67 ~@22]/7", // D5 Em C Em Dm G5 D5 Bb5 …
})).s("gm_vibraphone").gain(0.3)
// chords · tubular bells
const tubular_bells = note(`<
~@59 A@3 B@3 C ~@8 D E F G E F G E F H ~@3 I@4 J K@2 ~@8 L M L N L M L N ~@4 O P Q R S P T U ~@8 V@2 W@6 X@3 Y@4 Z@2
~@12 AA AB AC@5 AD AE@7
>`.pickRestart({
A: "[~@2 d5@2 db5@2 b4@2 db5@2 d5@2 db5@2 b4 db5]/3", B: "[d5@2 d5@2 db5@2 b4@2 db5@2 d5@2 db5@2 b4 db5]/3",
C: "d5@3 ~@5", D: "~@3 [d4,f4] [a4,c5] [d5,f5] [d4,f4] [a4,c5]",
E: "[d5,f5] [d4,f4] [a4,c5] [d5,f5] [d4,f4] [a4,c5] [d5,f5] [d4,f4]", // Dm Am Dm Am Dm
F: "[a4,c5] [d5,f5] [d4,f4] [a4,c5] [d5,f5] [d4,f4] [a4,c5] [d5,f5]", // Am Dm Am Dm Am Dm
G: "[d4,f4] [a4,c5] [d5,f5] [d4,f4] [a4,c5] [d5,f5] [d4,f4] [a4,c5]", H: "[d4,f4] [a4,c5] [d5,f5] d4@5",
I: "[~@19 d4@5 g4@20 ~@15 d4@20 ~@10 d4@5 a4@20 ~@10 d4@4]/4", J: "~ a4@20 ~@11", K: "[~@9 d5@5 ~@5 d5@5 d4@40]/2",
L: "a4@2 c5@2 b4@3 g4", M: "a4 c5 b4 a4 g4@2 e4@2", N: "a4 c5 b4 g4 a4@4", O: "e5@2 e5@2 d5@3 b4",
P: "e5@2 d5 c5 b4@4", Q: "e5@2 e5@2 d5@3 c5", R: "b4!2 a4@2", S: "e5!2 d5@2", T: "e5 f5 e5 d5 c5@2 b4@2", U: "a4",
V: "[[f4,f5]@25 ~@7]/2", W: "[~@4 a4@13 a4@22 a4@13 a4@22 ~ a4@13 a4@22 a4@13 ~ g4@22 a4@13 a4@22 a4@11]/6",
X: "[~@3 a4@22 a4@13 a4@22 f4@36]/3", Y: "[g4@13 g4@22 ~ f4@13 f4@22 f4@13 f4@22 ~ e4@13 e4@4 ~@4]/4",
Z: "[~@7 c5@25]/2", AA: "~@16 [f4,a4]@8 ~ [f4,a4]@7", AB: "~ [f4,a4]@8 [a4,d5]@8 ~ [a4,d5]@8 [a4,d5]@6",
AC: "[~@2 [e4,g4]@8 ~ [e4,g4]@8 [e4,g4]@8 [e4,c5]@8 ~ [e4,g4]@16 [d4,f4]@8 ~ [d4,f4]@8 [d4,f4]@8 [f4,bb4]@8 ~ [f4,bb4]@8 [f4,bb4]@8 [c4,e4]@8 ~ [c4,d4]@8 [c4,a4]@8 [c4,e4]@25 [f4,a4]@8]/5", // Em C Em Dm Bb5 C Csus2 F …
AD: "~ [f4,a4]@8 [f4,a4]@8 [a4,d5]@8 ~ [a4,d5]@6", // F D5
AE: "[~@2 [a4,d5]@8 [e4,g4]@8 ~ [e4,g4]@8 [e4,g4]@8 [e4,c5]@8 ~ [e4,g4]@16 [d4,f4]@8 ~ [d4,g4]@8 [d4,a4]@8 [f4,bb4]@8 ~ [f4,c5]@8 [f4,d5]@8 [f4,a4]@8 ~ [f4,b4]@8 [f4,d5]@8 e5@67 ~@22]/7", // D5 Em C Em Dm G5 D5 Bb5 …
})).s("gm_tubular_bells").gain(0.3)
// chords · tubular bells · soft notes
const tubular_bells_soft = note("<A@5 B@5 ~@2 C@8 ~@31 D@2 E@3 F@3 G ~@114>".pickRestart({
A: "[~@29 b4@131]/5", B: "[~@19 b4@125 ~@16]/5", C: "[~@7 b4@81 b4@150 ~@18]/8", D: "[~@7 d5@3 db5@3 b4@3]/2",
E: "[db5@2 d5@2 db5@2 b4@2 db5@2 d5@2 db5@2 b4 db5]/3", F: "[d5@2 d5@2 db5@2 b4@2 db5@2 d5@2 db5@2 b4 db5]/3",
G: "d5@3 ~@5",
})).s("gm_tubular_bells").gain(0.2)
// chords · marimba
const marimba = note(`<
~@21 A@2 B@2 C@2 D@3 E@2 F@3 C@2 G@3 H@2 I@3 J K@6 L M N O P N Q P N O R S T U@2 V@9 W@8 X Y Z@3 AA AB AC@2 AD ~@8 AE
AF AE AG AH AI AH AJ ~@4 AK AL AM AN AO AP AQ AR ~@9 AS@3 AT@5 AU@2 AV@3 AW@3 ~@12 AX AY@3 AZ@3 BA@3 BB@3 BC@2
>`.pickRestart({
A: "[~@2 e5@2 ~ e5@2 ~ e5@2 ~ e5@2 d5@2 ~ bb4@2 ~ c5@2 ~ ab4@2 ~ bb4@2 ab4@2 ~ e4@8 ~@26, ~@4 c5@2 ~ c5@2 ~ c5@2 ~@3 c5@2 ~ ab4@2 ~ bb4@2 ~ gb4@2 ~@3 gb4@2 ~@33]/2",
B: "[~@3 db4@5]/2", C: "[c4@20 ab3@10 b3@10 bb3!3 ~ bb3!4 ~ bb3!4 ~ bb3!4 ~ bb3!4 ~]/2",
D: "[bb3!5 ~ bb3!4 ~ bb3!3 bb3@41 ~ db4@40]/3", E: "[c4@20 ab3@10 f4@10 e4!3 ~ e4!4 ~ e4!4 ~ e4!4 ~ e4!4 ~]/2",
F: "[e4!5 ~ e4!4 ~ e4!3 e4@41 ~ db4@40]/3", G: "[bb3!5 ~ bb3!4 ~ bb3!3 bb3@41 ~ gb3@20 f3@10 ab3@10]/3",
H: "[a3@20 ab3@10 b3@10 bb3!3 ~ bb3!4 ~ bb3!4 ~ bb3!4 ~ bb3!4 ~]/2",
I: "[bb3!5 ~ bb3!4 ~ bb3!3 bb3@41 ~ a3@20 ab3@20]/3", J: "f3!3 ~ f3!4 ~ f3!4 ~ f3!4 ~ f3!4 ~ f3!5 ~ f3!2",
K: "[f3!2 ~ f3!3 f3@41 ~ a3@20 ab3@20 b3@80 ~@20 d3@2 gb3@2]/6",
L: "a3 d4 a3 gb3 g3 a3 g3 db4 a3 g3 b2 g3 b3 d4 b3 g3", M: "db4 a3 db4 g3 a3 db4 d3 gb3 a3 d4 a3 gb3 g3 a3 g3 db4",
N: "a3 g3 b2 g3 b3 d4 b3 g3 db4 a3 db4 g3 a3 db4 d3 gb3", O: "a3 d4 a3 gb3 g3 a3 b3 db4 a3 g3 b2 g3 b3 a3 b3 db4",
P: "d4@2 db4 d4@2 a3 d3 gb3 a3 d4 a3 gb3 g3 a3 g3 db4", Q: "a3 d4 a3 gb3 g3 a3 db4!2 a3 g3 db4 b3 db4 a3 b3 db4",
R: "d4@2 db4 d4@2 a3 d3 gb3 a3 d4 a3 gb3 g3 a3 b3 db4", S: "a3 g3 b2 a3 db4 b3 db4 a3 db3 g3 a3 d4@3 d3 gb3",
T: "a3 d4 a3 gb3 g3 a3 db4!2 a3 g3 b2 g3 b3 a3 b3 db4",
U: "[d4@4 a3@2 d4@6 [a2,d3]!11 [a2,d3]@12 ~ [db3,gb3]!11 [db3,gb3]@12 ~ [b2,e3]!4]/2", // D5 Gb5 E5
V: "[[b2,e3]!7 [b2,e3]@12 ~ [d3,g3]!11 [d3,g3]@12 ~ [a2,d3]!11 [a2,d3]@12 ~ [db3,gb3]!11 [db3,gb3]@12 ~ [b2,e3]!4]/3", // E5 G5 D5 Gb5 E5
W: "[[b2,e3]!7 [b2,e3]@12 ~ [d3,g3]!11 [d3,g3]@12 ~ [a2,d3]@24 [db3,gb3]@24 [b2,e3]@24 [d3,g3]@24 [a2,d3]@24 [db3,gb3]@24 [b2,e3]@24 [d3,g3]@24 d3@2 eb3@2 ~ d3@2 eb3@2 ~ d3@2 eb3@2 ~ d3@2 eb3@2 ~]/8", // E5 G5 D5 Gb5 E5 G5 D5 Gb5 …
X: "d3@2 eb3@2 ~ d3@2 db3@2 ~ c3@2 db3@2 ~ d3@2 eb3@2 ~ d3@2 eb3@2 ~ d3@2 eb3@2 ~ d3@2",
Y: "eb3@2 ~ d3@2 eb3@2 ~ d3@2 eb3@2 ~ f3@2 gb3@2 ~ d3@2 eb3@2 ~ d3@2 eb3@2 ~ d3@2 eb3@2",
Z: "[~ d3@2 eb3@2 ~ d3@2 eb3@2 ~ d3@2 db3@2 ~ c3@2 db3@2 ~ d3@2 eb3@2 ~ d3@2 eb3@2 ~ d3@2 eb3@2 ~ d3@2 eb3@2 ~ d3@2 eb3@2 ~ d3@2 eb3@2 ~ f3@2 gb3@2 ~ g3@2 ab3@2 ~ g3@2 ab3@2 ~ g3@2 ab3@2 ~ g3@2 ab3@2 ~ g3@2 ab3@2 ~ g3@2 gb3@2 ~ f3@2 gb3@2 ~ g3@2 ab3@2 ~]/3",
AA: "g3@2 ab3@2 ~ g3@2 ab3@2 ~ g3@2 ab3@2 ~ g3@2 ab3@2 ~ g3@2 ab3@2 ~ bb3@2 bb3@2 ~ a3@2",
AB: "bb3@2 ~ a3@2 bb3@2 ~ a3@2 bb3@2 ~ a3@2 bb3@2 ~ a3@2 bb3@2 ~ a3@2 ab3@2 ~ g3@2 ab3@2",
AC: "[~ a3@2 bb3@2 ~ a3@2 bb3@2 ~ a3@2 bb3@2 ~ a3@2 bb3@2 ~ a3@2 bb3@2 ~ a3@2 bb3@2 ~ c4@2 db4@2 ~ d3@5 ~@5 d3@5 ~@5 d3!8]/2",
AD: "d3!11 d3@21", AE: "a4@2 c5@2 b4@3 g4", AF: "a4@4 c5@4 b4 c5 b4@2 a4@4 g4@8 e4@8",
AG: "a4@4 c5@4 b4 c5 b4@2 g4@4 a4@16", AH: "a3@2 c4@2 b3@3 g3", AI: "a3@4 c4@4 b3 c4 b3@2 a3@4 g3@8 e3@8",
AJ: "a3@4 c4@4 b3 c4 b3@2 g3@4 a3@16", AK: "[a4,e5]@2 [a4,e5]@2 [g4,d5]@3 [e4,b4]",
AL: "[a4,e5]@2 [g4,d5] [f4,c5] [e4,b4]@4", AM: "[g4,e5]@2 [g4,e5]@2 [f4,d5]@3 [e4,c5]", AN: "[d4,b4]!2 [c4,a4]@2",
AO: "[g4,e5]!2 [f4,d5]@2", AP: "[g4,e5]@2 [f4,d5] [e4,c5] [d4,b4]@4",
AQ: "[g4,e5] [a4,f5] [g4,e5] [f4,d5] [e4,c5]@2 [d4,b4]@2", AR: "[c4,a4]",
AS: "[~@20 bb2@2 c3@2 d3@2 ~ e3@2 f3@2 g3@2 ab3@2 ~ f3@13 c3@4 f3@18 bb2@9 f3@16]/3",
AT: "[~@2 f3@9 f3@26 f3@9 bb2@9 f3@18 f3@9 eb3@9 eb3@4 eb3@13 eb3@9 e3@9 e3@18 e3@9 a2@7]/5",
AU: "[~@2 g3@18 g3@8 d3@9 d3@4 ~ d3@13 c3@9]/2", AV: "[b2@9 d3@18 b2@9 g3@8 d3@18 d3@9 c3@25]/3",
AW: "[~@2 g3@9 c3@9 g3@4 c3@22 [c3,f3]@50]/3", AX: "~@16 bb2@4 f3@4 ~ bb3@4 f3@3",
AY: "[~ d4@4 bb3@4 bb2@4 f3@4 ~ bb3@4 f3@4 d4@4 bb3@4 a2@4 e3@4 ~ g3@4 e3@4 c4@4 g3@4 a2@4 e3@4 ~ g3@4 e3@4 c4@8 g3@4 d3@4 ~ f3@3]/3",
AZ: "[~ d3@4 bb3@4 f3@4 g3@4 d3@4 ~ f3@4 d3@4 bb3@4 f3@4 f3@4 c3@4 ~ e3@4 c3@4 a3@4 e3@4 f3@4 c3@4 ~ e3@4 c3@4 a3@8 bb2@4 f3@4]/3",
BA: "[~ bb3@4 f3@4 d4@4 bb3@4 bb2@4 f3@4 ~ bb3@4 f3@4 d4@4 bb3@4 a2@4 e3@4 ~ g3@4 e3@4 c4@4 g3@4 a2@4 e3@4 ~ g3@4 e3@4 c4@8 bb2@4]/3",
BB: "[f3@4 ~ bb3@4 f3@4 d4@4 bb3@4 bb2@4 f3@4 ~ bb3@4 f3@4 d4@4 bb3@4 b2@4 f3@4 ~ a3@4 f3@4 d4@4 a3@4 e4!9 ~ e4!15]/3",
BC: "[e4!7 e4@34 ~@23]/2",
})).s("gm_marimba").gain(0.3)
// chords · marimba · soft notes
const marimba_soft = note("<~@9 A@4 ~@6 B C@2 ~@152>".pickRestart({
A: "[~@17 gb5@2 ~ gb5@2 d5@2 ~ d5@2 ~ d5@2 ~ d5@2 ~ d5@2 gb5@2 ~ gb5@2 ~ e5@2 ~ e5@2 c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 e5@2 ~ e5@2 ~ gb5@2 ~ gb5@2 d5@2 ~ d5@2 ~ d5@2 ~ d5@2 ~ d5@2 gb5@2 ~ gb5@2 ~ gb5@2 ~ gb5@2 d5@2 ~ d5@2 gb5@2 ~@24, ~@16 d5@2 ~ d5@2 ~@3 gb5@2 ~ gb5@2 ~ gb5@2 ~ gb5@2 ~@3 d5@2 ~ c5@2 ~ c5@2 ~@3 e5@2 ~ e5@2 ~ e5@2 ~ e5@2 ~@3 c5@2 ~ d5@2 ~ d5@2 ~@3 gb5@2 ~ gb5@2 ~ gb5@2 ~ gb5@2 ~@3 d5@2 ~ d5@2 ~ d5@2 ~@3 gb5@2 ~@27]/4",
B: "~@14 e5@2 ab5@2 ~ ab5@2 ~ ab5@2 ~ ab5@2 e5@2 ~ e5@2, ~@18 e5@2 ~ e5@2 ~ e5@2 ~@3 ab5@2 ~",
C: "[~ e5@2 ~ e5@2 ~ d5@2 gb5@2 ~ gb5@2 ~ gb5@2 ~ gb5@2 d5@2 ~ d5@2 ~ d5@2 ~ d5@2 ~ c5@2 ~@30, ab5@2 ~ ab5@2 ~ ab5@2 ~@3 d5@2 ~ d5@2 ~ d5@2 ~@3 gb5@2 ~ gb5@2 ~ gb5@2 ~ gb5@2 ~@31]/2",
})).s("gm_marimba").gain(0.2)
// chords · piano
const piano = note(`<
A@5 B@5 ~@2 C@8 ~ D@4 E@5 F@5 G@5 H@5 I@8 J@2 K L@2 M N@2 O P@2 Q R@7 S@6 T@6 U V W@3 X Y Z@3 ~@2 AA AB AA AC AD AE AF
AG AF AH AI AJ AI AK AA AB AA AC AL AM AN AO AP AQ AR AS AA AC ~@2 AD AE AT AU AV@2 AW@2 AX@7 AY@6 AZ@7 BA@6 BB@6 BC@8
>`.pickRestart({
A: "[~@29 b5@131]/5", B: "[~@19 b5@125 ~@16]/5", C: "[~@7 b5@81 b5@150 ~@18]/8", D: "[~@15 d2@29 [f3,db4]@20]/4",
E: "[[e3,c4]@2 [c3,ab3] [f3,b3] [e3,bb3]@8 [f3,db4]@4]/5", // C Fm Fdim Edim Db
F: "[[e3,c4]@2 [c3,ab3] [b3,f4] [bb3,e4]@8 [f3,db4,f4,db5]@4]/5", // C Fm Bdim Bbdim Db
G: "[[e3,c4,e4,c5]@2 [c3,ab3,c4,ab4] [f3,b3,f4,b4] [e3,bb3,e4,bb4]@8 [c3,gb3,c4,gb4]@2 [b2,f3,b3,f4] [d3,ab3,d4,ab4]]/5", // C Fm Fdim Edim Cdim Bdim Ddim
H: "[[eb3,a3,eb4,a4]@2 [d3,ab3,d4,ab4] [f3,b3,f4,b4] [e3,bb3,e4,bb4]@8 [a2,eb4,a4]@2 [ab2,d4,ab4]@2]/5", // Ebdim Ddim Fdim Edim Adim Abdim
I: "[[f2,b3,f4]@40 [a2,a4]@10 [ab2,ab4]@10 [b2,f4,b4]@40 ~ [d3,d5]@9 d3 gb3 a3 d4 a3 gb3 g3 a3 g3 db4 a3 g3 b2 g3 b3 d4 b3 g3, ~@50 [d2,d4]@5 [d1,a1,d2]@3 [db1,g1,db2]@3 [b0,gb1,b1]@3, ~@201 [a2,a4]@19 ~@36]/8", // Fdim A Ab Bdim D D5 Dbdim B5 …
J: "[db4 a3 db4 g3 a3 db4 [d3,d5] gb3 [a3,d6] [d4,db6] [a3,b5] [gb3,a5] g3 a3 g3 db4 a3 g3 [b2,a5] g3 [b3,e5] [d4,a5] [b3,g5] [g3,e5] db4 a3 [db4,a5] g3 a3 db4 [d3,d5] gb3, [db1,g1,db2]@6 ~@6 b5@3 g5@3 ~@6 g5@2 ~ gb5@3 ~@2]/2", // D D5 Dmaj7 Asus2 Gbm B7 E5 D5 …
K: "[a3,d6] [d4,db6] [a3,b5] [gb3,a5] g3 a3 b3 db4 a3 g3 [b2,a5] [g3,g5] [b3,e5] [a3,g5] b3 [db4,gb5], ~@4 b5@3 g5@3 ~@6", // D5 Dmaj7 Asus2 Gbm B7 G E5 A7 …
L: "[d4 ~ db4 d4@2 a3 [d3,d5] gb3 [a3,d6] [d4,db6] [a3,b5] [gb3,a5] g3 a3 g3 db4 a3 g3 [b2,a5] g3 [b3,e5] [d4,a5] [b3,g5] [g3,e5] db4 a3 [db4,a5] g3 a3 db4 [d3,d5] gb3, d5@6 ~@6 b5@3 g5@3 ~@6 g5@2 ~ gb5@3 ~@2]/2", // D D5 Dmaj7 Asus2 Gbm B7 E5 D5 …
// … 124 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.