0:00/0:00
// How Beautiful — Twila Paris
// 106 bpm, 3/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 165 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(106/3)
// 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 · piano · "Piano 1"
const piano = note("<~@119 A B C D@8 E@7 F@6 G@7 H@2 I@7 J@6>".pickRestart({
A: "~@5 f#4, b2@2 e4, ~ e3@5, ~ f#3@2, ~ b3",
B: "~@6 b3@2 d#3 c#3 ~ a#2, [d#2,d#3]@17 ~@3 b2@4, [d#4,f#4]@8 [d#4,f#4,b4]@9 ~@7, ~ b3@2 ~ [d#4,f#4] ~", // D# D#m B D#m
C: "[e4,f#4] ~@4 b3, a2@2 [a2,e4,f#4,b4], ~ b3@2 b3@2 ~, ~ [e4,f#4,b4] ~", // Esus2 Asus2 Esus2
D: "[[d#4,f#4,b4]@2 b3@2 f#4@2 f#4@2 ~ e2 ~@2 g#2@2 ~@20 e5@2 a2@2 ~@32 [f#4,f#5]@2 ~@2 [g#4,g#5]@2 b3@8 [a3,b3,c#4,e4]@8 [a3,b3,c#4,e4]@4, a2@8 [g#2,d#4]@11 ~@3 b1@26 [g#5,b5]@4 g#2@12 g#3@16 e3@4 a3@16 e6@4 f#6@8 g#5@8 [a2,a5,c#6,e6,a6]@24 [f#4,b4]@4 e3@44, ~@2 [b4,d#5]@2 [f#2,f#4,b4,d#5,f#5] [d#2,b4]@7 [f#5,f#6]@4 [b5,d#6] e6 [c#5,a5,c#6]@5 d#6@3 e3 g#3@6 b4 e4@4 [g#4,b4,e5,g#5]@10, ~@12 b3@7 ~ b5@4 [e5,e6]@12 g#3@8 e4@12 [e5,e6]@4 e3@4 [d#5,g#5]@24 c#4@12 e5@4 f#5@8 g#6@24 e5@8 [g#2,f#5]@48, ~@12 [g#5,b5]@2 g#2@2 e3@4 b3@8 b2@8 e5@2 a2@9 e6 [g#2,b5]@8 b3@6 e3@2 c#4@20 [b2,f#4]@12]/8", // B F# G# A G#5 G#m A B5 …
E: "[[b3,f#4]@2 [b3,f#4]@2 b3@2 e2@2 ~@4 b5@2 ~@2 d#5 ~@21 b4@4, [b1,f#3]@6 b3@2 [b5,e6] b2@3 [d#5,f#5]@2 [g#3,b5]@4 [e4,c#5] a4@6 e3@5 [c#5,a5] e4 g#5@5 e4@5, b2@6 [e3,e4]@5 e5@3 b4 b3@4 e3 c#4@6 b3@6 b4@2 [c#5,a5]@8, d#4@2 [g#3,e4]@2 [d#2,d#3,d#4,f#4]@6 g#3 e6@5 [d#4,f#5]@4 [f#4,d#5]@2 e5@2 [g#2,f#4]@4 e5 b5 a3@12, ~@2 [c#2,c#3]@4 g#3@2 [e2,g#5,g#6]@4 [g#2,d#6]@4 [f#4,b4] d#5 a2@6 b4@2 [e4,c#5] d#5@9 [g#3,e5,b5]@6]/7", // B5 E5 D#m G#m C#m F#m E F#m …
F: "[[b3,e4]@2 ~@10 e4@3 ~@11 b3@4 ~@5 d#4, [a4,e5,f#5]@6 b3@3 b4@3 b3@4 a4@8 [a2,c#4,e4,g#4]@6 [b2,b3,d#4] f#3 d#4 b2 b3@2, b4@6 [b2,f#3,d#4,f#4]@9 e4@2 c#5@7 b3 e3@11, ~@2 b3@3 e4@5 b5@8 [g#2,f#4,b4]@8 a3@10, ~@2 e4@2 c#4@8 [c#3,a3]@7 e3 [b3,e4] g#4 e5@8 f#4@6]/6", // E5 F#m7 Amaj7 B G#m7 F#m E5
G: "[~@8 [b3,b4] b3@2 ~ [e3,c#4]@2 ~@4 [c#2,c#3,e3,a3,c#4,e4]@3, c#3@4 a4 e5 [f#4,f#5]@5 d#3 [a4,c#5,e5,a5]@4 [d#3,d#4,f#4]@2 [g#4,b4,g#5]@11 [a3,e4]@7 ~@6, a4@3 e4@7 b3@2 e3@2 c#4@4 [e3,e4]@4 [d#2,d#3,f#3,b3,d#4,f#4]@8 [d#2,d#3,f#3,b3,d#4,f#4]@12, e4@2 b3@3 c#3@8 a3@11 [c#2,c#3]@12 ~@6, ~ a3@5 d#3 b3 c#4@2 [g#4,g#5]@5 e4 f#5@8 [a3,e4]@4 [e3,c#4]@8 ~@6]/7", // B C#m A F# A D#m G#m A5 …
H: "[~@11 a4, [b1,b2,f#3,a3,b3,d#4], ~ a5, ~@7 a4@2 a4@2 ~, ~@4 f#4!2]/2", // B7
I: "[~@7 [d#3,d#5], e4@12 f#5@2 b4@2 b5@8 e5@2 e4@2 a4@10 b3@2 e4@6 e5@4 a3@2 e4@17 a3@15, g#5@11 g#5@11 f#5@12 e5@2 [g#3,b4]@18 c#4@24 ~@6, ~@4 g#4@8 g#4@8 [g#4,a5]@12 f#4@4 b4@4 f#4@20 e4@4 [b3,d#5]@4 a3@20 d#5@8 [f#3,a4]@20 [a3,e5]@5 b4@47, ~@8 b4@8 b4@8 d#4@20 b4@4 c#4@36 b3@28 d#5@9 b3@5 a3@6 [b3,e5]@36]/7", // D# G#m Amaj7 B F#m A5 E5
J: "[~@28 b2@21 [e2,b2,e3,g#3]@85 ~@10, ~@7 [g#4,e5]@126 ~@11, ~@7 e2@41 ~@96]/6", // E C#m
})).s("gm_piano").gain(0.64)
// chords · piano · "Piano 2"
const piano_2 = note(`<
~ A B@2 C 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 ~@2 AH AI AJ AK H I J K L M N O P Q R S T
U V W X Y Z AA AL AC AD AE AM AN AO AP@2 AQ AR AS AT@2 AU@3 AV AW AX AY AZ BA@6 BB@3 ~@7 BC BD BE BF BG BH BI BJ BK BL
BM BN BO BP BQ BR BS BT@2 BU ~@4 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 CY CZ DA DB DC DD@8
>`.pickRestart({
A: "~ d5@7 a4@8 a4@8, a4 ~@2, ~ [d4,g5]@23", // G5
B: "[a4@8 a4@8 ~@4 g5@2 ~@2 e5@7 ~ [a4,a5]@8 ~@4 e5@4, d4@22 f#5@3 ~@15 a4@8, f#5@16 a4@7 c#4@25]/2", // A
C: "d5@7 ~ a4@8 [a3,c#5]@4 [g3,d5]@4, b3@2 ~", D: "~@2 d4@2 c#5 d5, f#3@19 ~@5, a4@2 d4",
E: "~@2 d4@2 c#5 d5, e3, g4@2 d4", F: "~ d4 [d4,d5], a3, a4@17 ~@7", G: "[e4,c#5]@16 d4@5 ~@3",
H: "~ f#4 a4 d5 e5 f#5, d4@5 ~", I: "e5 a4 ~@2 a4@2, c#4@11 ~, ~@4 c#5@7 ~", J: "~@2 g4 a4 b4@2, b3@5 ~, ~ d4@5",
K: "a4@2 ~@2 f#4@4 a4@3 ~, a3@11 ~, ~ d4@5", L: "~@4 g4@2 a4@2 b4@2 d5 ~, b3@5 ~, ~ d4@4 ~",
M: "d5@2 d4 ~ a4@2 f#4@2 f#5@2 f#4 ~, a3", N: "e5@5 ~ g4 ~ e4 ~ b4@2, b3", O: "e5@3 ~ a4@2 e5 ~ a5@2 g5 ~, c#4@5 ~",
P: "f#5@2 f#4 ~ a4@2 d5 ~ f#4@2 a4 ~, d4@5 ~", Q: "a4@2 c#5 ~ f#5@2 c#5@2 a5@2 ~@2, c#4@11 ~",
R: "b5 ~ b4@2 d5@4 d4@4, b3@2 ~", S: "~@4 a4@2 f#5@2 [f#4,e5]@2 d5 ~, a3@11 ~, ~ d4@2 ~@3",
T: "d5 d4 g4 d4 ~ d4, b3@3 ~ b3@2", U: "f#4 d4 g4 d4 c#4@2, a3@2 b3@2 a4 ~", V: "b4@2 g4@2 d4 ~ d5@2 b4@2 g4 ~, b3",
W: "c#5@2 a4@2 e4@3 ~ [a3,c#4]@3 ~, c#4@2 ~", X: "d4 d3 a3 b3 d4 a4, g2", Y: "~ f#3 a3 f#3 d4 f#4, f#2, a4@5 ~",
Z: "~@2 b3@2 ~ g2, g2@5 ~, f#4@7 ~ f#4@4, ~ d3@4 ~", AA: "e4@2 e3 a3@2 c#4, a2",
AB: "~ d3 ~ b3 d4 a4, b2, d4@2 ~, ~@2 g3@3 ~", AC: "~ e3 a3 c#4 e4 [a3,f#4], c#3, a4@7 ~@5",
AD: "~ g3 b3@2 [d3,b3,e4,g4]@2, [d3,e4,g4]@2 ~", AE: "~ a3 e4, [d3,d4,f#4]@4 c#3 ~",
AF: "~@2 b3 ~ g3 e4, b2, d4@2 ~ d4@2 ~, ~ d3@3 ~@2", AG: "~@2 c#4 ~ a3 e4, c#3, e4@3 a4@2 ~, ~ e3@2 ~@3",
AH: "~ e4 g4 e4 g4 e4", AI: "~ f#4 a4 f#4 a4 f#4", AJ: "~ e4 a4 e4 c#4 ~, c#4 ~", AK: "b3@2 b4@2 g4@2 d4@2 b3@2 g3 ~",
AL: "b2 d3 ~ b3 d4 a4, d4@2 ~, ~@2 g3@3 ~", AM: "~@2 b3 ~@2 e4, b2, d4@2 ~ d4@3, ~ d3@5, ~@2 g3",
AN: "~@5 e4, c#3@2 a3, e4 a4, ~ e3@5, ~ c#4@2", AO: "d4 ~@4 f#4, b2@2 d4, ~ d3@5, ~ g3@2, ~ b3",
AP: "[~ a3 ~@9 f#3, [c#3,e4]@8 f#3 d3 a3@2, ~ e3@5, ~ [d2,d4], ~@7 a2@5]/2", // C#m D
AQ: "[d4,d5]@2 ~@18 d3@3 ~, f#2@16 [f#2,a4,a5]@7 ~, ~ d3@2 d3@2 ~, ~@8 [a3,f#4,f#5]@15 ~", // D F#m D
AR: "~@2 e4, [g#2,b4,e5,b5], ~ e3@5, ~ g#3@2, ~ b3", AS: "~@2 b3 c#4 [d4,e4,b4]@2, [e4,g#4,b4,e5]@2 ~",
AT: "[a2@2 ~@9 b3, d5@5 b3 [e4,e5] [b3,a4] [f#4,f#5] [b3,b4] [g4,g5]@2, g4 g3@2, b4 e3@3, ~ a2@5]/2", // E B7 F# B G
AU: "[d2 ~@9 [a3,d5]@2 g2 ~@4 d4, d5@6 a4@9 a3 b3@2, [a4,a5]@3 d4 e4 f#4 e4@2 d4@4 d5@6, ~ d3@11 ~ d3@5, ~@2 a3@4 a5@7 ~ g3@4]/3", // D5 A
AV: "f#4 ~@4 d4, a3, ~ d4@2 d4@2 ~, ~ g4@2, ~@2 a4", AW: "~@5 c#4, [a2,a4]@2 c#5, ~ e3@5, ~ c#4@2 b3@3, ~ [a3,b4]@2",
AX: "~@5 e4, [g2,a4], c#5@3 e4 [c#5,e5]@2, ~ [e3,e4]@2 e3@3, ~ [c#4,b4,d5]@2", // Gsus2 C#m E G
AY: "~@2 [f#4,d5,f#5], [f#2,a5], f#5 [b3,a4], ~ d3@5, ~ a4 [a3,e5,g5]@4", AZ: "[f#3,d4,f#4,a4,d5]",
BA: "[~ d3 ~@9 d5 ~@9 d5@2 d5 ~@5 d5 ~@5 g5, a4@9 d4@3 [f#2,d5] f#3 a3 f#3@9 g2@6 [g4,a4,d5] d4 g4 a4@3, g4@4 b3@2 g4@2 b3@8 a3 d4@7 d5 d3@11, d4@3 a3@2 d4@2 a3@3 g4@8 f#2@8 g3@10, g2@2 g3@10 [f#4,a4]@6 d5 d3 a3@4 a4@3 a3@9]/6", // D Gsus2 F#m
BB: "[~ d7@2, [g4,a4]@2 d6@6 ~, d6 a5@4 ~, ~ d5@4 g6@12 ~, ~ g5@6 ~@2]/3", // Gsus2
BC: "~@3 d4 ~ a4, [d3,f#4,d5]@23 ~, ~@4 f#3@19 ~, ~@8 a3@15 ~, ~@16 d4@7 ~", BD: "[f#3,e5] [c#4,e4,a4]@2, a4 ~@5",
BE: "~@2 b4, [g3,g4,d5], ~ d4@5, ~@8 a4@15 ~", BF: "d5 c#5 ~@3 d5, f#3@2 d5@3 ~, ~ a3@5, ~@2 d4",
BG: "~@2 [e3,b3,g4], [g3,d5], ~ b3@3 ~@2, ~ d4@2", BH: "d5 c#5 ~@3 a4, f#3 d5@2, ~ a3@5, ~@2 d4",
BI: "~@2 g4@2 ~ b2, d4@23 ~, b2@2 [g4,a4], a4@8 b3@15 ~, [b3,g4]@4 g3@19 ~", // Gsus2 Em
BJ: "[c#4,e4]@4 ~ a3, [c#3,a4], a3@5 ~, ~@2 [a2,e3,b3,c#4,e4]", // C#m F#m A
BK: "~@5 d4, [g2,b3]@16 c#4@7 ~, d4@12 a3@11 ~, a3 g3@2, ~@4 d3@19 ~", // G
BL: "~@5 g4, a3, f#2@2 f#2, ~@4 d3@19 ~, ~@8 [f#3,d4,e4,a4]@15 ~", BM: "g2@4 ~ d3, [a3,b3,d4,f#4], d3@5 ~, ~@2 g2",
BN: "~ e3 ~@2 [c#3,a3,b3,e4]@2, [a2,c#4]@11 ~, [a3,e4]@2 ~, ~@4 e3@7 ~", // A A5
BO: "~ d3 ~@2 b4 d5, d4@11 ~, b2 g3@2, ~@6 g4@5 ~", BP: "~ e3 ~@2 [d4,f#4] [c#4,e4], a4@11 ~, e4@3 e4@2 ~, c#3 b3@2",
BQ: "~ d3 a3@2 [e3,g3,a3,c#4,e4]@2, [b3,d4]@2 ~, b2 ~@2", // A7 Bm
BR: "~ a3 ~ a3 [c#2,c#3,a3,c#4,e4]@2, [d3,d4,f#4]@8 c#4@7 ~@9", // A D
BS: "~@5 [d3,b4], [b2,b3], g4 d4, d4 g3@2, ~ d3@3 g4@2", // G B
BT: "[c#3 e3 ~@9 d3, a4@5 c#5@2 d3 [g3,a4]@4, e4@16 e4@31 ~, e5@8 a3@39 ~, ~@4 d5@7 ~ [b1,b2,d4,g4,d5]@12]/2", // Gsus2 G
BU: "[c#2,c#3,a3,c#4,e4,a4]", BV: "g#2 ~ e3 g#3 b3 e4, [e5,g#5,b5,e6]@2 ~, ~ g#2@3 ~@2",
BW: "~ g#2 b2 e3 [d#5,g#5,b5,d#6] [e5,e6], [f#5,g#5,b5,f#6] [e5,e6] g#3", // G#m E G#m7 E
BX: "a2@2 ~@2 e3@2 a3@2 ~@2 d#6 e6, [c#5,e5,a5,c#6]@5 ~, ~ a2@5, ~@2 c#4", // A
BY: "b5 [e5,e6] e3 g#3 [b3,g#5,g#6]@2, g#2@2 ~, ~ [f#5,f#6] ~", // E F#
BZ: "~ e3 ~ b4 [e4,e5] [f#4,f#5], a2@2 ~, [a5,c#6,e6,a6] c#4@2", // E F# A
CA: "[f#4,b4,f#5] [e3,g#4,g#5] [b3,g#4,b4,e5,g#5]@4, g#2@2 ~", CB: "[b2,a3,b3,c#4,e4,f#4]@2 [a3,b3,c#4,e4]",
CC: "[b1,b2,f#3,b3,d#4,f#4] [c#2,c#3,g#3,b3,e4,f#4] [d#2,d#3,b3,d#4,f#4]", // B C#m7 B
CD: "[e2,g#3,b3,e4]@2 ~ b2 ~ [e5,e6], e3@2 g#3, ~@2 [g#5,b5,e6,g#6]@3 ~, ~ e2 ~", // E
CE: "[d#5,f#5,b5,d#6]@2 g#3 b3 [f#4,b4,d#5,f#5] d#5, g#2@2 ~, ~ [b4,b5] d#4", // B
CF: "e4 [e3,a4] d#5@2 e5@2, a2@2 ~, c#5 [c#4,f#4]@2", CG: "~ e3 c#5 d#5 e5 b5, g#2@2 ~, [f#4,b4] [b3,e4]@2",
CH: "~ [b4,g#5] [c#5,a5], a3@2 ~, [c#5,a5] ~@2, ~ e4@5", CI: "~ e4 b4@4, g#3@2 ~, [e5,b5] ~@2",
CJ: "[b3,e4,a4,b4,e5,f#5]@2 [b3,e4]@2 ~ e4, ~@2 c#4", CK: "~@3 b4 b5@2, [b2,f#3,b3,d#4,f#4]",
CL: "[b3,e4]@3 e4 a4 c#5, [c#3,a3]", CM: "~ e3 e4 g#4 e5@2, g#2@2 ~, [f#4,b4] b3@2",
CN: "~ e3 [a3,b3]@4, a2@2 ~, [b3,c#4,e4,g#4] ~@2", CO: "b2 ~@3 b3 d#4, [b3,d#4,f#4] d#4 ~, ~ f#3@2 b2@3",
CP: "~ a3 ~ e4 a4 [c#3,e5], c#3@2 ~, [e4,a4] ~, ~ b3 ~", CQ: "~ b3 c#4@2 b3 d#3, [d#3,f#4,f#5]@2 [g#4,g#5]",
CR: "~ a3 c#4 e4 [d#3,b3,d#4,f#4,b4,f#5]@2, [e3,a4,c#5,e5,a5]@2 ~", // B A
CS: "[e3,b3,e4,g#4,b4,g#5]@2 [d#2,d#3,f#3,b3,d#4,f#4]", CT: "[e3,a3,c#4,e4]@4 [e3,c#4] [a3,e4], [c#2,c#3]",
CU: "[d#2,d#3,f#3,b3,d#4,f#4]", CV: "[c#2,c#3,e3,a3,c#4,e4]", CW: "[b1,b2,f#3,a3,b3,d#4]",
CX: "~ a4 f#4 a4 f#4 a4, a5", CY: "~@2 g#4@2 b4@2 g#4@2 b4@2 a5 g#5, e4, g#5@5 g#4",
CZ: "~ b4 f#4 b4 f#4 [b4,f#5], d#4@2 ~, f#5@2 b5@3 ~", DA: "~ e4 a4 e4 [b3,d#5] [a3,e5], [c#4,e5]@2 ~",
DB: "~ b3 e4 b3 d#5 e5, g#3, b4@2 ~", DC: "~ a3 e4 ~ d#5 [a3,e5], f#3, a4@2 ~, ~@3 c#4@2 ~",
DD: "[~ b3@5 a3@6 b3@6 a3@9 [d#3,d#5]@28 e2@20 ~ b2@21 [e2,b2,e3,g#3]@85 ~@10, ~ b4@11 e5@16 ~@27 [g#4,e5]@126 ~@11]/8", // D# E C#m
})).s("gm_piano").gain(0.64)
// chords · orchestral harp · "Harp"
const orchestral_harp = note("<A B@8 ~@26 C@2 ~@128>".pickRestart({
A: "~@23 a4, ~@5 d4, ~@11 f#4",
B: "[d5@11 ~ d5@11 ~ c#5@11 ~ b4@11 ~ a4@11 ~@25 c#5@12, ~@22 d4@24 c#4@24 b3@24 [a3,d4]@24 [a3,c#4]@23 b3@23 c#4@24 ~@4, ~@23 [f#4,a4]@24 [e4,a4]@24 [d4,f#4]@24 f#4@24 e4@23 d4@24 [e4,g4]@24 ~@2, ~@120 a4@23 g4@23 ~ a4@24 ~, ~@6 b4 ~]/8", // D5 A F#m A5 D Em
C: "[~@8 d5@4 g5@4 d5@4 b4@2 ~@2 [e5,a5]@17 ~@7, g4@19 ~@4 [a4,c#5]@18 ~@7, ~ b4@2 ~@9]/2", // A5 A
})).s("gm_orchestral_harp").gain(0.48)
// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
~@70 A B@2 C D E F@3 G@2 H@2 I@2 ~@38 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 ~@14
>`.pickRestart({
A: "d5 f#5 a5", B: "[b5@2 c#6@3 b5]/2", C: "a5", D: "e5 f#5 g5", E: "a5@2 b5", F: "[f#5 e5 d5@5 e5 f#5]/3",
G: "[a4 b4 c#5 ~ f#5 g5, e5@2 ~]/2", H: "[a5@4 g5 f#5]/2", I: "d5/2", J: "[e5,e6]",
K: "[f#5,f#6]@2 [e5,e6]@2 [d#5,d#6] [e5,e6]", L: "[c#5,c#6]@10 d#6 e6", M: "b5 [e5,e6] [f#5,f#6]@2 [g#5,g#6]@2",
N: "[a5,a6]@3 b4 [e4,e5] [f#4,f#5]", O: "[f#4,b4,f#5] [g#4,g#5] [b3,g#4,b4,e5,g#5]@4",
P: "[b3,c#4,e4,f#4]@2 [b3,c#4,e4]", Q: "f#3 ~@2", R: "~@2 [g#5,e6,g#6]@3 e6",
S: "[d#5,f#5,b5,d#6]@2 [b4,b5]@2 [b4,f#5] d#5, ~@2 d#4", T: "e4 a4 d#5@2 e5@2, c#5 c#4@2",
U: "[f#4,b4]@2 c#5 d#5 e5 b5, ~ [b3,e4]@2", V: "~ [b4,g#5] [c#5,a5], [c#5,a5] ~@2, ~ e4@5",
W: "~ e4 b4@4, [e5,b5] ~@2", X: "[e4,b4,e5]@2 e4@2 ~ e4, ~@2 c#4", Y: "~@3 b4 b5@2, f#4", Z: "~@3 e4 a4 c#5",
AA: "[f#4,b4]@2 e4 g#4 e5@2", AB: "[e4,g#4] c#4@2", AC: "[d#4,f#4]@2 d#4@2 b3 d#4",
AD: "~ a3 ~ e4 a4 e5, [e4,a4] ~, ~ b3 ~", AE: "~ b3 c#4@2 [g#4,g#5]@2, [f#4,f#5]@4 b3 ~",
AF: "~ a3 c#4 e4 [b3,f#4,b4,f#5]@2, [c#5,e5,a5]@2 ~", AG: "[b3,g#4,b4,g#5]@2 ~", AH: "~@4 c#4 [a3,e4]",
AI: "[b3,d#4,f#4]", AJ: "[a3,c#4,e4]", AK: "[b1,a3,b3,d#4,b4]",
})).s("gm_string_ensemble_1").gain(0.32)
// other · pad new age · "New Age"
const pad_new_age = note("<~@37 g5 [f#5@10 g5 f#5] [e5@2 a5@3 e5] [d5@2 b4@2 g4@2 d4@2 b3@2 g3 ~] ~@124>")
.s("gm_pad_new_age").gain(0.64)
// chords · vibraphone
const vibraphone = note("<~@37 A B C D ~@42 E@2 F G H I J@4 K L M N O P@3 ~@64>".pickRestart({
A: "g5", B: "f#5@10 g5 f#5", C: "e5@2 a5@3 e5", D: "d5@2 b4@2 g4@2 d4@2 b3@2 g3 ~",
E: "[~ d3 ~@9 d5, a4@9 d4 g4@2, g4@2 b3 g4 b3@2, d4@3 a3@2 d4@2 a3@5, g2 g3@5]/2",
F: "f#2 ~@4 d4, [f#4,a4,d5], ~ f#3@2 f#3@3, ~ a3!2", G: "f#2 ~@2 d5@2 d5, d5 ~, ~ d3@5, ~ a3@2",
H: "g2 ~@4 d5, a4, d5 a3, ~ d3@5, ~ g3@2", I: "[g4,a4] ~@4 g5, d5, ~ d4@5, ~ g4@2, ~ a4",
J: "[~@12 a5@2 ~@9 d6, [g4,a4]@4 d6 g6@12 ~ c#5@4 c#6@2, d6 a5@3 d6@3 a5, ~ d5@11 d5@12, ~ g5@6 a5@3 e5@2]/4", // Gsus2
K: "~ d5!2, [b4,d6]", L: "~ f#5 ~@3 d6, a4, ~ a5@2, ~@3 d6@2 ~, ~@2 [d5,c#6]", M: "~ d5@2, [g4,b5]",
N: "~@5 a5, f#4, ~ d5@5, ~ a5 f#5, ~ g5", O: "~@2 d4, [d5,g5], ~ g4@2",
P: "[~@5 e5@12 ~, [c#4,g5]@2 [a3,c#5]@6 ~, ~ f#5@12 ~@5, ~ b3@6 ~@2, ~@2 e5 d5@12 ~@3]/3", // C#dim A
})).s("gm_vibraphone").gain(0.64)
// bass · fretless bass · "Bass"
const bass = note(`<
~@17 A B C D C E C B F G F D C B A H C B ~@6 A B C D C D C B A B C D C E C B F G F D C B A H C B C B A I J K D F G L F
D@2 F G L M@2 G M@2 ~@9 N O A P Q P Q P R S F T U V C B D W X Y C B C Z AA AB AC AD D AE D AE AF AG AH J AI J AJ AK AL
C AM AE D C B AN AO AP AQ AR AS C ~@14
>`.pickRestart({
A: "d2", B: "c#2", C: "b1", D: "a1", E: "a1 b1 c#2", F: "g1", G: "f#1", H: "d2@2 c#2", I: "d2 e2 f#2", J: "g#2",
K: "e2@2 g#1", L: "d1", M: "g1/2", N: "d3 g2 d2", O: "c#2 b1 g1", P: "f#2", Q: "g2", R: "b1@5 b1", S: "~@2 a1, c#2",
T: "f#1@2 f#1", U: "g1@4 g1 d2", V: "a1@2 c#2", W: "~@2 c#2, d2", X: "b1@4 ~ d2", Y: "c#2@2 ~",
Z: "d#2@8 d#3 c#3 b2 a#2", AA: "a2@2 a2", AB: "a2@4 g#2@4 f#2 e2 d#2 b1", AC: "e1@5 b1", AD: "e2@4 c#2 b1", AE: "g#1",
AF: "b1@2 ~", AG: "b1 c#2 d#2", AH: "e2@5 f#2", AI: "a2", AJ: "a3", AK: "g#3", AL: "b2!2 e2", AM: "e2", AN: "d#2",
AO: "a2 g#2 f#2", AP: "e2@2 d#2", AQ: "c#2@5 c#2", AR: "d#2@4 b2 d#2", AS: "c#2@4 c#2 c2",
})).s("gm_fretless_bass").gain(0.57)
// drums · kick
const kick = s("bd").struct(`<
~@25 A B A C A C A D E C A ~@5 A C A B A C F G H C A B A C A D A B A I A B F J A B A C A ~ A C A K A C A ~ A H A C A C
A ~@13 A C A ~ A C A L A C A H A H A M A C A ~ A@2 H A@2 H A@4 H N A@4 H A@2 H A@3 C A C H@2 A B A C A ~@13
>`.pickRestart({
A: "x", B: "~@5 x", C: "~@2 x", D: "~ x", E: "x ~@4 x", F: "x!2 ~", G: "~ x ~ x ~@2", H: "x ~ x", I: "~ x!2 ~ x ~",
J: "~@3 x!2 ~", K: "~ x!2", L: "~ x ~ x!2 ~", M: "x ~@2 x!2 ~", N: "x!3",
})).gain(0.48)
// drums · snare
const snare = s("sd").struct(`<
~@26 A ~ A ~ A ~ B ~ A ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ B ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~@17 A ~ A
~ A ~ B ~ A ~ A ~ A ~ B ~ A ~ A ~ B ~ A ~ A ~ A ~ A ~ B ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ B ~ A ~ A ~@14
>`.pickRestart({
A: "x", B: "x ~ x",
})).gain(0.48)
// drums · low tom
const low_tom = s("lt").struct("<~@24 A ~@15 A ~@7 A ~@7 A ~@13 B ~@3 C ~@47 D ~@42>".pickRestart({
A: "~@5 x", B: "~@9 x!2 ~", C: "~@4 x!2", D: "~@16 x ~ x ~ x!2 ~@2",
})).gain(0.48)
// drums · hihat
const hihat = s("hh").struct(`<
~@99 A B C B A D E F A@3 G C@2 H A@2 C A@3 I A I A B A J A C K A@3 C I C D I L I@2 A I A I@2 C A I@3 M ~@13
>`.pickRestart({
A: "x ~ x!3 ~", B: "x ~ x ~ x!2", C: "x ~ x!4", D: "~@2 x ~ x!2", E: "x ~@2 x!3", F: "~ x!2",
G: "x ~@3 x ~@2 x!2 ~ x ~", H: "x!5 ~", I: "x!3", J: "x ~@3 x ~@3 x!3 ~", K: "x ~ x!3 ~ x ~ x!3 ~", L: "x!3 ~ x ~",
M: "x",
})).gain(0.48)
// drums · mid tom
const mid_tom = s("mt").struct(`<
~@24 A ~@7 B ~@7 B ~@7 C ~@7 B ~@3 C ~@3 B ~@5 B ~@3 D ~@5 B ~@37 E ~ F G H ~@42
>`.pickRestart({
A: "~ x!2", B: "~@3 x!2 ~", C: "~@2 x", D: "~@3 x!2 ~@7", E: "~@5 x", F: "~@4 x!2 ~@6", G: "~@7 x ~ x!2 ~",
H: "~@8 x ~ x ~ x!2 ~@4 x ~@5",
})).gain(0.48)
// drums · open hat
const open_hat = s("oh").struct(`<
~@40 A ~@65 B ~ B ~@5 B ~@3 B ~ B ~ B ~@7 B ~@7 B ~ C ~ D ~ B@2 E ~ B ~ B ~@14
>`.pickRestart({
A: "~@2 x", B: "~@5 x", C: "~ x", D: "~ x ~@3 x", E: "~ x ~@4",
})).gain(0.48)
// drums · high tom
const high_tom = s("ht").struct(`<
~@24 A ~@7 A ~@7 A ~@7 B ~@7 C ~@3 D ~@3 A ~@5 E ~@3 F ~@5 G ~@17 H ~@20 I J K L ~@42
// … 40 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.