0:00/0:00
// dna — Kendrick Lamar
// 170 bpm, 4/4, key G# 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 (1/4 at bar 1, 4/4 at bar 1, 2/4 at bar 48, 4/4 at bar 49, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/4095061; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 225 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(170/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.
// chords · piano
const piano = note(`<
A B C@2 D@6 E@5 ~@33 F G H I J@2 K L@2 M@2 N@2 O P Q@3 R@2 S@7 T@2 U@6 V@4 W@2 X@8 Y@4 Z@2 AA@2 AB@2 AC@4 AD AE AF AG
AH@4 AI@2 AJ AK AL AM AN@2 AO AP AQ AR AS AT AU AV AW@2 AX AY AZ BA AZ BB BC BA BD BA BE@6 BF@6 BG@5 BH@6 BI@3 BJ@8 BK
BL ~ BM BN ~ BO BP BQ BR BS@2 BT BU BV BW BX BY BZ@2 CA BU CB CC CD BY ~@15 CE CF@2
>`.pickRestart({
A: "~@3 [b3,d#4,g#4] [c#4,e4,a#4] [d#4,f#4,b4]@2 [c#4,e4,a#4]", B: "~ [b3,d#4,g#4]@9 ~@14",
C: "[~@12 [a#3,f4]@3 [b3,f#4]@3 [c#4,g#4]@12 ~ [a#3,f4]@12 ~@5]/2", // A#5 B5 C#5 A#5
D: "[~@22 [a#3,f4,g#4]@9 a#3@2 g#3@2 g3@6 g3@6 [g#3,b3]@3 ~ [g3,a#3]@3 ~@6 b5@12 ~ g#5@12 ~ b5@12 ~ g#5@12 b5@12 ~ [c#3,e3,e4]@6 ~ [d#3,f#3,f#4]@6 [e3,g#3,g#4,b5]@7, ~@47 g#5@12 ~@65 g#5@12 ~@8, ~@54 [g#3,b3]@67 ~@23]/6", // A#7 G#m Gm C#m D#m E G#m
E: "[[f#3,a#3,a#4]@6 [g#3,b3,b4]@3 [g3,a#3,a#4]@3 ~@7 b5@12 ~ g#5@12 ~@7 [g#3,b3,b4]@6 [c#4,g#4,c#5]@3 ~ [b3,g4,b4]@3 ~@6 d#6@12 ~ [g4,g5]@12 ~ d#6@12 ~@12, ~@6 g#5@12 ~@26 c#6@12 ~ d#5@12 ~@51, ~@12 [g#3,b3,b4]@37 ~@15 [c#4,c#5]@43 ~@13, ~@32 g#4@9 ~@19]/5", // F# G#m Gm G#m C#5 Em G G#m …
F: "~@5 [d#4,a#4,d#5]@3 ~@16", G: "[b3,d#4,g#4]@3 [c#4,e4,a#4]@3 ~ [d#4,f#4,b4]@6 [c#4,e4,a#4]@3 [b3,d#4,g#4]@8",
H: "~@8 d#2@6 ~ d#2@6 ~ [f#4,d#5]@2", I: "[f4,d#5]@2 [d#4,d#5]@2 ~ [f#4,d#5]@2 [f4,d#5]@2 [d#4,d#5]@2 d#2@6 ~ d#2@6",
J: "[~ [f#4,d#5]@2 [f4,d#5]@2 [d#4,d#5]@2 ~ [f#4,d#5]@2 [f4,d#5]@2 [d#4,d#5]@2 d#2@6 ~ d#2@6 ~ [d#6,d#7] [d#6,e6,d#7,e7] [e6,e7] [d#6,d#7] [e6,e7] [d#6,d#7] [e6,e7] [d#6,e6,d#7,e7] [d#6,d#7] [e6,e7] [d#6,d#7] [e6,e7] [d#6,e6,d#7,e7] [d#6,d#7] [e6,e7] [d#6,d#7] [e6,e7] [d#6,d#7] [d#6,e6,d#7,e7] [e6,e7], ~@41 d#2@6 ~]/2", // D#m F7 D# D#m F7 D# Emaj7 E …
K: "[d#6,d#7] [e6,e7] [d#6,d#7] [d#6,e6,d#7,e7] [e6,e7] [d#6,d#7] [e6,e7] [f#4,f#5]@2 ~@5 [f#4,f#5]@2 ~@4 d#2@3 ~, d#2 ~@3", // D# E D# Emaj7 E D# E F#
L: "[~@3 d#2@3 ~@11 e2@3 ~@3 d#2@3 ~@4 g#1@3 g#1@3 ~@4 g#1@3 ~ e2@3 ~]/2",
M: "[~@2 [d#2,d#4]@3 ~@4 [d#2,d#4]@3 ~@4 [c6,d#6]@3 ~@4 [e6,g#6]@3 [g5,d#6]@3 ~@4 [g#5,d#6]@3 [g#1,d#6,g#6]@3 ~@4 [g#5,d#6]@3 g#1@2, ~@23 e2@6 d#2@6 ~@5 g#1@6 ~@2]/2", // D# Cm E Cm G#5
N: "[~@2 [d#6,g#6]@3 [d#6,g#6] [g#5,d#6] [d#5,g#5] [c4,d#4]@6 ~ [d#2,d#4]@3 ~ [c4,d#4]@3 [c4,d#4]@6 ~ [e2,e4]@3 ~@3 [d#4,c5]@6 ~ [g#1,g#3]@3 ~ [g#1,g#3,d#4,c5]@2, ~@2 e2@6 d#2@3 ~@24 d#2@3 ~@10]/2", // G#5 Cm D# Cm E Cm G#
O: "~@4 [g#1,g#3]@3 ~ [e2,e4]@3 ~@3 [c5,d#5]@6 ~ [d#2,d#4]@3, ~ [d#4,c5]@6 ~@7 [d#2,d#4]@3 ~@7", // G# E Cm D# Cm D#
P: "~ [c5,d#5]@3 [c5,d#5]@6 ~ [e2,e4]@6 [d#2,d#4,d#5,c6]@6 ~", // Cm E Cm
Q: "[[g#1,g#3]@3 ~ [d#5,c6]@3 ~@3 [g#1,g#3]@3 ~ [e2,e4]@6 ~@11 f2@3 f2@13 ~ f2@10 f2@3 f2@6 ~ f2@3 g2, ~@2 [g#1,g#3]@3 ~@5 f2@5 ~@21, ~@7 [d#5,c6]@6 ~@7 c4@52, ~@7 e4@17, ~@11 a4@25]/3", // G# Cm G# E G# Cm
R: "[~@13 a2@3 a2@13 ~ a2@10 a2@3 ~@3 c5@2, ~@3 [c4,d4]@40 ~@2 g4@3, ~@3 a2@10 ~@30 [a2,c4]@5, ~@2 g4@19 ~ e4@2]/2", // Csus2 Am
S: "[~@2 d2@3 a2@3 ~@11 [f2,c3]@3 [f2,c3]@13 ~ [f2,c3]@10 [f2,c3]@3 [f2,c3]@6 ~ [f2,c3]@3 [g2,d3]@3 ~@11 [a2,e3]@3 [a2,e3]@13 ~ [a2,e3]@10 [a2,e3]@3 [a2,e3]@6 ~ [d2,g3]@3 [a2,e3]@3 ~@11 c2@3 f2@3 ~@7 c2@3 ~ f1@3 ~@7 c2@3 f2@3 ~@4 g1@3 e1, ~@9 [c4,e4]@53 ~ [c4,d4]@53 ~ [c4,e4]@51, ~@9 [f2,c3]@10 ~@44 [a2,e3]@10 ~@44 f1@3 ~@48, ~@5 a4@26 ~ g4@26 ~ a4@25]/7", // F5 G5 A5 G5 A5 C Csus2 C …
T: "[~@13 e2@3 a2@3 ~@7 e2@3 ~ a1@3 ~@7 e2@3 ~@2 g4@2 [b1,c5], ~@3 [c4,d4]@40 c4@5, ~@3 a1@3 ~@37 a1@3 ~@2, ~@2 g4@19 ~ e4@2]/2", // Cmaj7 Csus2
U: "[~@2 c2@3 d2@3 ~@11 c2@3 f2@3 ~@7 c2@3 ~ f1@3 ~@7 c2@3 f2@3 ~@4 g1@3 e1@3 ~@11 e2@3 a2@3 ~@7 e2@3 ~ a1@3 ~@7 e2@3 a1@3 ~ b1@3 c2@3 d2@3 ~@16 c#6@9 d#1@3, ~@9 [c4,e4]@53 ~ [c4,d4]@53 ~ c#5@22 ~@5, ~@3 f1 ~@17 a1 ~@17 d#2@9, ~@10 a4@52 ~@2 g4@52 ~ a#4@24 ~@3, ~@131 f#5@10 ~@3]/6", // C Csus2
V: "[~ c#5@2 a#4@2 f#4@2 ~@4 f4@2 c5@2 g#4@2 f4@2 c5@2 g#4@2 ~@5 c#6@3 d#1, ~@21 [f2,c4,d#4]@46 ~@2 d#2@27, ~@23 a#4@8 ~, ~@69 c#5@22 ~@5, ~@83 f#5@10 ~@3]/4", // F7
W: "[~ c#5@2 a#4@2 f#4@2 ~@4 [f4,d#5]@2 c5@2 g#4, ~@7 [f2,c4,d#4]@9]/2", // F7
X: "[~@3 [f4,d#5]@6 c5@6 [e4,g#4]@6 g#4 e4@5 e4@36 e4@6 g#4 e4@5 e4@36 e4@6 g#4 ~@5 f#4@34 ~@2 e4@6 g#4 e4@5 e4@21, ~@7 [c#3,a3]@16 [c#3,g#3]@16 [c#3,f#3]@16 [c#3,g#3]@9, ~@22 g#4@45 ~@3 g#4@45 ~@3 [b3,g#4]@46 ~@2 g#4@26]/8", // F7 E F#m C#5 F#5 C#5 E
Y: "[~@15 e4@6 [g#3,b4]@17 ~ [f#3,a4]@6 [f#3,a4]@11 ~ [g#3,b4]@6 [f#3,a4]@6 [e3,g#4]@23 ~ g#1@3]/4", // G#m F#m G#m F#m E
Z: "[c#2@3 g#2@3 c#3@3 ~@18 c#3@17 ~ g#1@3, ~@9 g#3@34 ~@5, ~@3 c#3@6 ~@7, ~@5 [e4,g#4]@17 ~@2]/2", // E
AA: "[c#2@3 g#2@3 b2@3 ~@18 b2@14 ~ g#2@3 b1@3, ~@9 [c#3,b3]@35 ~@4, ~@5 [e4,g#4]@17 ~@2]/2", // C#7 E
AB: "[g#2@3 b2@3 ~@21 b2@14 ~ g#2@3 g#1@3, ~@9 [c#3,b3]@35 ~@4, ~@5 [d#4,g#4]@17 ~@2]/2", // C#7 G#5
AC: "[c#2@3 g#2@3 c#3@3 ~@15 g#1@3 c#2@3 g#2@3 e3@3 d#3@3 c#3@6 f3@6 ~ d#3@6 c#3@4 d#3@3 c#3@4 f3@6 ~ d#3@6 ~ c#3@3 d#3@4 g#2@3 ~@3, ~@9 g#3@34 ~@53, ~@3 c#3@10 ~@19, ~@5 [e4,g#4]@17 ~@26]/4", // E
AD: "~@3 [f3,f4]@6 ~ [d#3,d#4]@4 [c#3,c#4]@3 [d#3,d#4]@4 ~@3", // F D# C# D#
AE: "[c#3,c#4]@4 [f3,f4]@6 [d#3,d#4]@3 [d#3,d#4]@4 [c#3,c#4]@3 [d#3,d#4]@4", // C# F D# C# D#
AF: "[g#2,g#3]@3 ~@4 [c#3,c#4]@3 [g#3,g#4]@6 [f3,f4]@4 [c#3,c#4]@3 [c#3,c#4]", // G# C# G# F C#
AG: "[d#3,d#4]@6 [c#3,c#4]@4 [f3,f4]@3 [f3,f4]@4 [d#3,d#4]@3 [d#3,d#4]@4", // D# C# F D#
AH: "[[c#3,c#4]@2 [d#3,d#4]@4 [g#2,g#3]@3 ~@7 [f3,f4]@4 [f3,f4]@3 [d#3,d#4]@4 [d#3,d#4]@3 [d#3,d#4]@4 ~@6 [f3,f4]@6 ~ [d#3,d#4]@3 [d#3,d#4]@4 [c#3,c#4]@3 [d#3,d#4]@4 [g#2,g#3]@3 [f3,f4]@13 [d#3,d#4]@19]/4", // C# D# G# F D# F D# C# …
AI: "[~@2 [c#3,c#4]@6 [c#3,c#4]@6 ~ [a#2,a#3]@6 ~ [f3,f4]@13 ~ [d#3,d#4]@12]/2", AJ: "~ [f#3,f#4]@6 ~ [f3,f4]@6 ~@10",
AK: "~@8 [c#3,c#4]@3 [d#3,d#4]@6 ~@7", AL: "~@11 [f#3,f#4]@3 [f3,f4]@6 ~@4", AM: "~@14 [c#3,c#4]@3 ~ [d#3,d#4]@6",
AN: "[~@17 [c#3,c#4]@3 ~ [d#3,d#4]@6 ~@14 [f3,c4]@6 ~]/2", AO: "[g3,d4]@2 [f3,c4] [f3,c4]@3 f2 ~, f2@17 ~@7",
AP: "f2@17 ~ c3@3 ~@3", AQ: "~@6 f2 ~, f2@17 ~@7, ~@12 [d#4,g4]@11 ~",
AR: "[d4,f4] [c4,d#4] [a#3,d4] c4, f2@17 ~ c3@3 ~@3", AS: "[b3,d4]@2 [c4,d#4]!2 ~@2 c2 ~, c2@17 ~@7",
AT: "c2@17 ~ [f3,a#3]@6, ~@6 c2 ~", AU: "[g#3,c4]@2 [a#3,d4] [a#3,d4]@3 [a#3,g4]@2, a#2@17 ~ a#2@3 ~@3",
AV: "[g#3,d4]!2 [g#3,c4]!2, a#2@17 ~ a#2@3 ~@3", AW: "[g#2@17 ~ d#2@3 ~@3 g#2@17 ~ g2@3 ~@3, [d#3,a#3]@23 ~]/2",
AX: "f2@17 ~ [f2,f3,c4]@3 [g3,d4]@3", AY: "[g#3,d#4] [g3,d4] [f3,c4] [g3,d4], f2@17 ~ g2@3 ~@3",
AZ: "f5 g5 ~ a#5 b5 ~ g2@3 f2@3 f5 g5 ~ a#5 b5 ~ d2@3 c#2@3, g2 ~ d6@2 e2 d#2 d6@2", BA: "c2 ~ c2 b1 c#2 d2 d#2 e2",
BB: "b5@2 c2 b1 c#2 d2 d#2 e2, c2 ~@7",
BC: "f5 g5 ~ a#5 b5 ~ d6 c6 ~ f2@3 f5 g5 ~ a#5 b5 ~ d6 c6 ~ c#2@3, g2 ~ g2 ~ e2 d#2 d2 ~, ~@7 d6@4 ~@8 d6@4 ~",
BD: "g2@2 g5 a#5 ~ b5 e6 d6 c6 f2@3 e2@2 g5 d#2@2 b5 e6 d6 c6 c#2@3, f5 ~@5 g2@2 d6@4 f5 ~@2 a#5 ~@2 d2@2 d6@4",
BE: "[e2@10 ~ b2@14 ~ d2@3 e2@7 b2@3 ~ f#3@7 e3@7 ~ c3@3 a2@10 ~ e3@10 ~ e3@2 ~ b2@2 c#2@2 d2@7 ~ a2@3 d3@14 ~@5 e2@10 ~ b2@14 d2@2, [b3,d4]@28 ~ [c4,e4]@28 ~ [b3,d4]@28 ~ [c4,e4]@28 ~@2 [b3,d4]@27]/6", // Bm C Bm C Bm
BF: "[~@2 e2@7 b2@3 ~ f#3@7 e3@7 c3@3 ~ a2@10 ~ e3@10 ~ e3@2 b2@2 ~ c#2@2 d2@7 a2@3 ~ d3@14 ~@4 e2@10 ~ b2@14 ~ d2@3 e2@7 ~ b2@3 f#3@7 ~ e3@7, ~@2 [c4,e4]@28 ~ [b3,d4]@28 ~ [c4,e4]@28 ~ [b3,d4]@28 ~ [c4,e4]@26]/6", // C Bm C Bm C
BG: "[c3@3 a2@10 ~ e3@10 ~ e3@2 ~ b2@2 c#2@2 ~ d2@7 a2@3 ~ d3@14 ~@4 [c4,e4,c5]@14 ~@8 b1@3 ~@4 [c4,e4,a4,c5]@14 ~@8 a1@7, ~@3 [b3,d4]@28 ~@2 [e4,b4]@28 ~ c2@21 ~@8 a1@21 ~@8, ~@76 [c4,e4,c5]@14 ~@15 [c4,e4,a4,c5]@14 ~]/5", // C Am Bm E5 C Am
BH: "[[a3,d4,f#4]@14 ~@8 a1@3 ~ a#1@3 [b3,e4,f#4]@14 ~ [b3,e4,f#4]@14 [c4,e4,c5]@14 ~@8 b1@3 ~@4 [c4,e4,a4,c5]@14 ~@8 d2@3 ~ e2@3 ~ [a3,d4,f#4]@14 ~@7 a1@3 ~ a#1@2, d2@21 ~@8 b1@28 ~ c2@21 ~@8 a1@21 ~@9 d2@21 ~@6, ~@15 [a3,d4,f#4]@14 ~@44 [c4,e4,c5]@14 ~@15 [c4,e4,a4,c5]@14 ~@15 [a3,d4,f#4]@13]/6", // D Bsus4 C Am D C Am D
BI: "[~@2 [b3,e4,f#4]@14 [b3,e4,f#4]@14 ~ c2@7 g2@7 d3@7 ~ c3@3 ~@4 a2@7 e2@3 ~@2, ~@2 b1@28 ~ [c4,e4,c5]@14 [c4,e4,c5]@14 ~ [c4,e4,a4,c5]@12]/3", // Bsus4 C Am
BJ: "[~@3 a1@7 e2@3 ~@4 [d2,a3,d4,f#4]@14 ~ d2@7 d2@3 ~@4 [d#2,b3,d#4,f#4]@14 ~ d#2@7 b1@7 [e2,c4,e4,g4]@14 ~ e2@7 d2@3 ~@5 [c#2,c#4,a4]@14 [c#2,c#4,a4]@14 ~ [f#1,a3,d4,f#4]@14 [f#1,a3,d4,f#4]@14 ~ [b1,b3,e4,f#4]@14 [b3,e4,f#4]@14 ~, ~@3 [c4,e4,a4,c5]@14 ~@15 [a3,d4,f#4]@14 ~@15 [b3,d#4,f#4]@14 ~@15 [c4,e4,g4]@14 ~@73 b1@7 ~@8]/8", // D B C F#m D Bsus4 Am D …
BK: "[c4,f4]@3 [c4,f4]@3 [c4,f4]@3 [c4,f4]@3 [a#3,d#4]@6 [g#3,c#4]@4 ~@2", // F5 D#5 C#5
BL: "[a#3,d#4] [a#3,d#4]@2 [g#3,c#4]@2 ~@3", BM: "~ [g#3,c#4]!2 [a#3,d4] [b3,d#4]@2 [c#4,f4]@2",
BN: "[d#4,f#4] [f#4,a#4,c#5]!2 [f4,g#4]", BO: "[f#4,c#5] [f4,c5]!2 [d#4,a#4]",
BP: "[d#4,a#4]@6 [c#4,g#4]@6 [c#4,g#4]@11 ~", BQ: "[d#4,a#4] [c#4,g#4]!2 [b3,f#4]",
BR: "[b3,f#4]@6 [a#3,f4]@6 [a#3,f4]@11 ~", // B5 A#5
BS: "[~@3 d#2 ~@3 d#2 d#4@2 d#2!2 ~@2 g2 ~, d#3@8 a#2 ~@3 f#2 c#5@3, d#2@3 a#4@27 ~@8 f#4@10, ~ a#3@29 a#3@6 a3@12, ~@2 g4@28 ~@7 c#4@11]/2",
BT: "g#2@3 g#2 ~@3 g#2, [g#3,c4,d#4,g#4,d#5]@23 ~", BU: "g#2@11 ~ [g#3,d#4]@11 ~",
BV: "~@2 f#4@10 [f3,f4,g#4]@11 ~, c#2@23 ~, f#3 ~, ~ c#4@11 ~@12", // Fm
BW: "~@12 f#2@11 ~, c#4, [g#1,c#3]@11 ~@13, ~ g#4@23, ~ c#5@11", BX: "~ c5@11, d#4, g#2@5 ~, ~ g#4@23",
BY: "~@2 b4@10 [g#3,g#4]@11 ~, [g2,d4] ~, ~ g4@11 ~@12", // G# G5
BZ: "[~@4 d#2@3 d#2 d#4@2 a#3@2 ~@2 g2 ~, d#3@24 a#2@11 ~ f#2@3 c#5@9, d#2@3 a#4@27 ~@8 f#4@10, ~ a#3@29 ~@6 a3@12, ~@2 g4@28 ~@7 c#4@11]/2",
CA: "g#2@11 ~ d#2@11 ~, [g#3,c4,d#4,g#4,d#5]@23 ~", CB: "~@2 f#4@10 [f3,f4,g#4]@11 ~, [f#2,f#3] ~, ~ c#4@11 ~@12",
CC: "~@12 f#2@11 ~, c#4, [c#2,c#3]@11 ~@13, ~ g#4@23, ~ c#5@11", CD: "~ c5@11, d#4, c2@5 ~, ~ g#4@23",
CE: "~@4 [d#4,a#4,d#5] ~@3", CF: "[~@2 [b3,d#4,g#4] [c#4,e4,a#4] [d#4,f#4,b4]@2 [c#4,e4,a#4] [b3,d#4,g#4]@3 ~@6]/2",
})).s("gm_piano").gain(0.45)
// chords · piano · soft notes
const piano_soft = note("<~@14 A@8 B C D E F G H@2 I@8 J K L@8 ~@159 M N@3 O P Q@2 R S T S U V W X ~@2>".pickRestart({
A: "[~@13 g#5@12 b5@12 ~ g#5@12 ~ b5@12 ~ g#5@12 ~ b5@12 ~ g#5@12 b5@12 ~@14 a#5@12 ~ g#5@12 ~ a#5@12 ~ g#5@12 a#5@12 ~, ~@13 [g#3,g#4,b4,d#5]@25 [g#4,b4,d#5]@24 ~@2 [g#4,b4,d#5]@24 ~@2 [g#4,b4,d#5]@24 ~ f#4@25 ~ [f#4,a#4,c#5]@24 ~@2 [f#4,a#4,c#5]@24 ~, ~@115 g#5@12 ~@65, ~@29 [a#4,c#5]@6 ~@13]/8", // G#m F# A#m
B: "g#5@12 ~ a#5@11, [f#4,a#4,c#5]", C: "~@5 b5@3, ~ [e4,g#4]@11, ~ g#5@6 ~@5, ~ b4@7",
D: "~ g#5@3 b5@2, ~ [b3,g#4,b4]@5", E: "~@5 g#5@12 ~ b5@6, ~@5 [e4,g#4,b4]@19",
F: "~@7 g#5@12 ~ b5@4, ~@7 [b3,g#4,b4]@17", G: "~@3 g#5@4 b5, ~@3 [e4,b4,e5]@5",
H: "[~@10 g#5@12 ~ b5@12 ~@2 d#5@11, ~@5 [e4,b4,e5]@12 ~ [d#4,a#4,g#5]@6]/2", // E5 D#sus4
I: "[~ a#5@12 ~ g#5@12 a#5@12 ~@14 b5@12 ~ g#5@12 ~ b5@12 ~ g#5@12 b5@12 ~ g#5@12 ~ b5@12 ~@14 a#5@12 g#5@12 ~ b5@12, ~@14 [d#4,a#4,d#5]@24 ~ [g#3,g#4]@25 ~@79 c#5@24 ~@25, ~@39 g#5@12 ~@91 g#5@12 ~@38, ~@40 [b4,d#5]@24 ~ [g#4,b4,d#5]@24 ~@2 [g#4,b4,d#5]@24 ~ [g#4,b4,d#5]@24 ~@2 [f#4,a#4]@25 [f#4,a#4,c#5]@24 ~]/8", // D#5 G# B G#m F#
J: "~ g#5@12 ~ a#5@10, ~ [f#4,a#4,c#5]@23", K: "~@3 g#5@12 ~ a#5@8, ~ [f#4,a#4,c#5]@7",
L: "[~@17 b5@12 ~ g#5@12 ~ b5@12 ~ g#5@12 ~ b5@12 g#5@12 ~ b5@12 ~@14 a#5@12 ~ g#5@12 ~ g#5@12 ~@13 a#5@12 ~ [d#4,a#4,d#5,g#5]@8, ~@4 e4@25 ~ [b3,g#4,b4]@24 ~@27 [b3,g#4,b4]@24 ~@3 e5@24 ~@27 [a#4,d#5]@24 ~@9, ~@4 g#5@12 ~@91 g#5@12 ~@39 g#5@12 ~@22, ~@5 [g#4,b4]@24 ~@27 [e4,g#4,b4]@24 ~@27 [e4,b4]@25 ~ [e4,b4,e5]@24 ~ d#4@25 ~@9]/8", // D#sus4 E D#5 G#m E E5
M: "~@12 b5@11 ~, g#3, g#5 d#5@7, ~ g#4@23, ~ b4@11", N: "g#5@11 ~ b5@11 ~, [g#4,b4,d#5]@23 ~",
O: "~@12 a#5@11 ~, f#4, g#5@11 ~@13, ~ a#4@23, ~ c#5@11", P: "g#5@11 ~ b5@11 ~, [f#4,a#4,c#5]@23 ~",
Q: "g#5@11 ~ a#5@11 ~, [f#4,a#4,c#5]@23 ~", R: "~@12 b5@11 ~, e4, g#5@11 ~@13, ~ g#4@23, ~ b4@11",
S: "g#5@11 ~ b5@11 ~, [b3,g#4,b4]@23 ~", T: "g#5@11 ~ b5@11 ~, [e4,g#4,b4]@23 ~",
U: "~@12 a#5@11 ~, e4, g#5@11 ~@13, ~ b4@23, ~ e5@11", V: "g#5@11 ~ g#5@11 ~, [e4,b4,e5]@23 ~",
W: "~@12 a#5@11 ~, d#4, g#5@11 ~@13, ~ a#4@23, ~ d#5@11", X: "[d#4,a#4,d#5,g#5]@11 ~@13",
})).s("gm_piano").gain(0.25)
// chords · piano
const piano_2 = note(`<
~@5 A@3 B@7 C@7 D E@3 F@2 G H I@8 J K@3 L@3 M N@3 ~@5 O P@2 Q@2 R S T U V ~@44 W@3 X@4 Y@4 Z@4 AA@3 AB AC AD AE AF
~@13 AG AH AG ~@5 AI AJ@2 AK@7 ~@45 AL@2 AM AN AO@2 AP AQ AR@2 AS AT AU AV AW AX ~@2
>`.pickRestart({
A: "[~@23 b4@3 ~ a#4@3 ~@13 g#2@6 g#2@12 ~ g#4@3 a#4@3 [g#1,b4]@3 c#5, ~@23 c#2@12 ~@37, ~@5 g#4@5 ~@2]/3", // G#m
B: "[~@3 c#2@18 ~ g#2@6 [g#2,e5]@12 ~ c#2@3 c2@3 ~ b1@6 e2@12 ~@7 e2@6 ~ [e2,b5]@12 ~@7 b1@3 e2@3 d#2@12 ~@8 d#2@3 ~@3 d#2@3 c#2@3 ~@4 b1@3 ~@3 g1@3 g#1@6 ~ g#2@11, ~@3 d#5@24 ~@14 f#5@12 ~ g#5@24 ~@14 c#6@12 ~ d#6@49 ~@14]/7", // C#m E5
C: "[~@8 d#3@3 ~@3 d#3@12 ~@8 g#2@3 g2@3 g#2@12 ~@7 d#3@3 ~@4 d#3@12 ~@7 g#2@3 ~@3 f#2@18 ~@2 c#3@3 ~@3 c#3@18 ~ f#2@3 ~@4 f#2@18 ~ c#3@3 ~@3]/7",
D: "c#3@18 ~ b2@3 ~@2", E: "[~@2 c#3@12 ~@7 g#3@6 ~ g#3@12 ~@7 g#2@6 c#3@12 ~@7]/3",
F: "[g#3@6 ~ g#3@12 ~ c#3@3 b2@3 a#2@3 ~@4 e3@12 ~@3]/2", G: "~@4 e3@3 ~@3 e3@12 ~@2", H: "~@5 a#2@3 ~ e3@3 d#3@12",
I: "[~@7 d#3@3 ~@4 d#3@3 c#3@3 ~@3 b2@3 ~@4 g2@3 g#2@6 g#2@12 ~@7 d#3@3 ~@4 d#3@12 ~@7 [g#2,c#5]@3 [g2,b4]@3 ~ g#2@12 ~@7 d#3@3 ~@3 b4@18 ~ [g#2,c#5]@3 ~ b4@3 f#2@18 ~ c#3@3 ~@16 b4@3 ~ a#4@3 g#4@5, ~@39 d#5@43 ~@9 a#4@24 ~ d#3@12 ~@14 a#4@37 ~@13, ~@167 c#3@18 ~@2 f#2@3 ~@2]/8", // C#5 G C#5
J: "~ f#2@18 ~ c#3@3 ~, ~ f#4@23",
K: "[~@3 c#3@18 ~ b2@3 ~@3 b4@3 ~ a#4@3 g#4@3 f#4@3 ~@7 g#3@6 g#3@12 ~ g#4@3 a#4@2, ~@3 a#4@24 ~ c#3@12 ~ g#4@24 ~@7]/3",
L: "[~ b4@3 ~ c#5@3 c#3@12 ~@7 g#3@6 [g#3,e5]@12 ~ c#3@3 b2@3 ~ a#2@3 ~@3 [e3,g#5]@12 ~, ~ g#2@6 ~ d#5@24 ~@14 f#5@12 ~@14]/3", // C#m E
M: "~@6 e3@3 ~@4 [e3,b5]@11, a#5 ~", // E5
N: "[~@8 a#2@3 e3@3 d#3@12 ~@8 d#3@3 ~@3 d#3@3 c#3@3 ~@4 b2@3 ~@19, ~ c#6@6 d#6@12 ~ d#6@6 ~@10]/3",
O: "~@20 [d#2,d#4]@3 ~", // D#
P: "[~@3 [d#2,d#4]@3 ~@4 [c5,d#5]@3 ~@4 [e2,e5,g#5]@3 [g4,d#5]@3 d#2@3 ~ [g#4,d#5]@3 [g#1,d#5,g#5]@3 g#1@3 ~ [g#4,d#5]@3 g#1@3 ~ [e2,d#5,g#5]@3 [d#5,g#5]]/2", // D# Cm E Cm G#5 Emaj7 G#5
Q: "[[g#4,d#5] [d#4,g#4] d#2@3 ~@4 d#2@3 ~@11 e2@6 d#2@6 ~ g#1@3 ~ g#1@6 g#1@2]/2", // G#5
R: "~@2 e2@6 [d#2,d#3,d#4]@3 ~@4 [d#2,d#3,d#4]@3 ~@4 [c4,d#4]@2", // D# Cm
S: "~@5 [e2,e4,g#4]@3 [g3,d#4]@3 [d#2,d#4]@3 ~ [g#3,d#4]@3 [g#1,g#3,d#4,g#4]@3 ~ [g#1,g#3]@2", // E Cm D# G#5 G#
T: "~ [g#3,d#4]@3 [g#1,g#3]@3 ~ [e2,d#4,e4,g#4]@3 [d#4,g#4] [g#3,d#4] [d#3,g#3] [d#2,d#3,d#4]@3 ~@4 [d#2,d#3,d#4]@3", // G#5 G# Emaj7 G#5 D#
U: "~@4 [c4,d#4]@3 ~@4 g#4@3 [g3,d#4]@3 d#4@3 ~ [g#3,d#4]@3, ~@11 [e2,e4]@6 d#2@6 ~", // Cm G#5 E
V: "[g#1,g#3,d#4,g#4]@3 ~ g#3@3 [g#3,d#4]@3 [g#1,g#3]@3 ~ [d#4,g#4]@3 [d#4,g#4] [g#3,d#4] [d#3,g#3] ~@4, ~@2 g#1@3 ~@2 [e2,e4]@3 ~@2", // G#5 G# G#5 E
W: "[~@21 g#1@13 c#2@10 ~ g#1@6 ~ g#1@6 ~ g#1@3 c#2@10]/3",
X: "[c#2@3 g#1@6 ~ g#1@6 ~ c#2@10 ~ g#1@6 g#1@3 g#1@4 g#1@3 c#2@6 ~ g#1@2 c2@2 c#2@2 ~ [g#1,f2]@13 [c#2,g#2]@10 ~ [g#1,f2]@6 ~ [g#1,f2]@6 ~]/4", // C# C#5 C#
Y: "[[g#1,f2]@2 [c#2,g#2]@10 ~ [c#2,g#2]@3 [g#1,f2]@6 ~ [g#1,f2]@6 ~ [c#2,g#2]@10 [g#1,f2]@6 ~ [g#1,f2]@3 [g#1,f2]@4 [g#1,f2]@3 [c#2,g#2]@6 ~@7 c#5@6 ~ g#4@6 ~ [c#5,g#5]@6 ~ [g#4,c#5]@5, ~@70 [g#1,f2]@13 ~ [c#2,g#2]@12]/4", // C# C#5 C# C#5 C# C#5 C# C#5
Z: "[~@2 [c#5,g#5]@6 [g#4,c#5]@6 ~ [c#5,g#5]@6 ~ [g#4,c#5]@6 ~ [c#5,g#5]@6 ~ [g#4,c#5]@6 [c#5,g#5]@6 ~ [g#4,c#5]@6 ~ [c#4,g#4]@6 ~ [g#3,c#4]@6 ~ [c#4,g#4]@6 [g#3,c#4]@6 ~ [c#4,g#4]@6 ~ [g#3,c#4]@6, ~@2 [g#1,f2]@13 [c#2,g#2]@13 ~ [g#1,f2]@13 [c#2,g#2]@13 ~ [g#1,f2]@13 ~ [c#2,g#2]@13 [g#1,f2]@13]/4", // C#5 C# C#5 C# C#5 C# C#5 C#
AA: "[~ [c#4,g#4]@6 ~ [g#3,c#4]@6 [c#5,g#5]@3 ~ [c#4,g#4]@3 [g#4,c#5]@3 ~ [g#3,c#4]@3 [c#5,g#5]@3 [c#4,g#4]@3 ~ [g#4,c#5]@3 [g#3,c#4]@3 ~ [c#5,g#5]@3 [c#4,g#4]@3 [g#4,c#5]@3 ~ [g#3,c#4]@3 [c#5,g#5]@3 ~ [c#4,g#4]@3 [g#4,c#5]@3 [g#3,c#4]@3 ~ [c#5,g#5]@3, ~ [c#2,g#2]@13 [g#1,f2]@13 ~ [c#2,g#2]@13 ~ [g#1,f2]@13 [c#2,g#2]@13 ~@4]/3", // C#5 C# C#5 C# C#5
AB: "[c#4,g#4]@3 ~ [g#4,c#5]@3 [g#3,c#4]@3 [c#3,g#3]@3 ~@4 c4@6 ~", AC: "~@2 f3!2 a3@2 c4@2", AD: "e4 ~@2 c4",
AE: "~@2 f3!2 g3@2 a3@2", AF: "c4 ~@3", AG: "[d#4,g4] [a#3,d4] [d#4,g4] [a#3,d4] [d#4,g4] [a#3,d4] [d#4,g4] [a#3,d4]",
AH: "~@7 [a#3,d4]", AI: "~@4 [e3,e4]@7 [g3,g4]@3 ~ [a3,a4]@7 [a#3,a#4]@2",
AJ: "[~@2 [a3,a4]@28 ~@8 [e3,e4]@7 [g3,g4]@3]/2", // A E G
AK: "[~ [a3,a4]@7 [a#3,a#4]@14 ~ [a3,a4]@3 ~ [g3,g4]@4 [a3,a4]@5 [g3,g4]@5 ~@4 [e3,e4]@7 [g3,g4]@7 [a3,a4]@7 ~ [g3,g4]@3 [e3,e4]@28 ~@9 [e3,e4]@7 [g3,g4]@3 ~ [a3,a4]@7 [a#3,a#4]@3 ~ [b3,b4]@10 ~ [a3,a4]@3 [g3,g4]@3 ~ [a3,a4]@7 [g3,g4]@2 [e3,e4]@2 ~@10]/7", // A A# A G A G E G …
AL: "[g#2@11 ~@7 d#3@3 ~@3 d#3@11 ~@7 [g#2,c#5]@3 [g2,b4]@3, d#5@5 ~]/2", AM: "g#2@11 ~@7 d#3@3 ~@3, a#4@23 ~",
AN: "b4@17 ~ [g#2,c#5]@3 b4@3, d#3@11 ~@13", // C#5
AO: "[f#2@17 ~ c#3@3 ~@15 b4@3 a#4@3 g#4@6, a#4@17 ~@7, ~@24 c#3@17 ~ f#2@3 ~@3]/2",
AP: "f#2@17 ~ c#3@3 ~@3, f#4@23 ~", AQ: "c#3@17 ~ b2@3 ~@3, a#4@23 ~",
AR: "[b4@3 a#4@3 g#4@3 f#4@3 ~@6 g#3@6 g#3@11 ~ g#4@3 a#4@3 b4@3 c#5@3, c#3@11 ~ g#4@23 ~@7 g#2@6]/2",
AS: "c#3@11 ~@7 g#3@6, d#5@23 ~", AT: "[g#3,e5]@11 ~ c#3@3 b2@3 a#2@3 ~@3, ~@12 f#5@11 ~",
AU: "[e3,g#5]@11 ~@7 e3@3 ~@3, ~@12 a#5@11 ~", AV: "[e3,b5]@11 ~@7 a#2@3 e3@3, ~@12 c#6@11 ~",
AW: "d#3@11 ~@7 d#3@3 ~@3, d#6@23 ~", AX: "d#3 c#3 ~ b2 ~@4, d#6@11 ~@13",
})).s("gm_piano").gain(0.3)
stack(piano, piano_soft, piano_2)
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.