0:00/0:00
// Our Day Will Come — Ruby & The Romantics
// 107 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 106 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(107/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 · acoustic bass
const bass = note(`<
~@2 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z G AA AB AC AD AE A AF C D U AG AH AI AJ AK AL AM AN AO AP AQ
AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH T BI BJ BK BL BM BN E J BO BP BQ BR BS BT BU BV BW AF BX BY BO BZ
CA CB AL CC CD CE CF CG CH CI CJ CK CH CI CJ CL
>`.pickRestart({
A: "g2@8 ~ g2 ~@2 e2@8 ~ e2@2 ~", B: "a1@7 ~@2 a1@2 ~ d2@8 ~ d2 ~@2", C: "g2@7 ~@2 g2 ~@2 a1@6 ~@3 a1@2 ~",
D: "d2@8 ~ g#2@2 ~ a2@6 ~@3 d2 ~@2", E: "g2@7 ~@2 d3@2 ~ d3@8 ~ g2 ~@2", F: "a#1@8 ~ f2 ~@2 f2@7 ~@2 a#1 ~@2",
G: "a1@8 ~ e2@2 ~ e2@8 ~ a1@2 ~", H: "d2@7 ~@2 a2 ~@2 a2@8 ~ d2@2 ~", I: "g2@8 ~ d3 ~@2 d3@8 ~ g2 ~@2",
J: "a#1@7 ~@2 f2 ~@2 f2@8 ~ a#1 ~@2", K: "a1@8 ~ e2@2 ~ e2@7 ~@2 a1 ~@2", L: "d2@7 ~@2 g#2 ~@2 a2@8 ~ d2@2 ~",
M: "d2@9 d2@2 ~ g2@8 ~ g2 ~@2", N: "d2@7 ~@2 d2@2 ~ g2@7 ~@2 g2@2 ~", O: "c2@7 ~@2 f#2 ~@2 g2@8 ~ c2@2 ~",
P: "c2@8 ~ c2 ~@2 g2@4 ~@2 c2@4 ~@2", Q: "c3@6 ~@3 f#2 ~@2 g2@6 ~@3 b1@2 ~", R: "c2@7 ~@2 g2@2 ~ g2@4 ~@2 g1@4 ~@2",
S: "b1@8 ~ b1 ~@2 a#1@7 ~@2 a#1@2 ~", T: "a1@8 ~ a1@2 ~ d2@8 ~ d2 ~@2", U: "g2@7 ~@2 d3@2 ~ d3@8 ~ g2@2 ~",
V: "a#1@8 ~ f2@2 ~ f2@7 ~@2 a#1 ~@2", W: "a1@6 ~@3 e2 ~@2 e2@6 ~@3 a1 ~@2", X: "d2@7 ~@2 g#2@2 ~ a2@6 ~@3 d2 ~@2",
Y: "g2@8 ~ d3@2 ~ d3@7 ~@2 g2 ~@2", Z: "a#1@7 ~@2 f2@2 ~ f2@8 ~ a#1@2 ~", AA: "d2@7 ~@2 a2 ~@2 a2@6 ~@3 d2 ~@2",
AB: "d2@7 ~@2 a2 ~@2 a2@4 ~@2 g2@5 ~", AC: "d2@8 ~ d2 ~@2 g2@7 ~@2 g2@2 ~", AD: "c2@7 ~@2 g2 ~@2 g2@7 ~@2 c2@2 ~",
AE: "c2@7 ~@2 f#2 ~@2 g2@7 ~@2 c2@2 ~", AF: "a1@7 ~@2 a1@2 ~ d2@8 ~ d2@2 ~", AG: "a#1@9 f2 ~@2 f2@8 ~ a#1 ~@2",
AH: "a1@8 ~ e2 ~@2 e2@6 ~@3 a1 ~@2", AI: "d2@6 ~@3 g#2 ~@2 a2@8 ~ d2 ~@2", AJ: "g2@8 ~ d3@2 ~ d3@9 g2@2 ~",
AK: "a#1@6 ~@3 e2@2 ~ f2@7 ~@2 a#1@2 ~", AL: "a1@7 ~@2 e2 ~@2 e2@8 ~ a1 ~@2", AM: "d2@6 ~@3 a2@2 ~ a2@8 ~ d2@2 ~",
AN: "d2@7 ~@2 d2 ~@2 g2@6 ~@3 g2@2 ~", AO: "d2@8 ~ d2 ~@2 g2@7 ~@2 g2 ~@2", AP: "c2@6 ~@3 g2 ~@2 g2@8 ~ c2 ~@2",
AQ: "c2@6 ~@3 c2 ~@2 g2@4 ~@2 c2@4 ~@2", AR: "c2@7 ~@2 g2 ~@2 g2@7 ~@2 c2 ~@2", AS: "c2@7 ~@2 g2@2 ~ g2@8 ~ a#1@2 ~",
AT: "b1@8 ~ b1@2 ~ a#1@9 a#1 ~@2", AU: "a1@6 ~@3 a1@2 ~ d2@6 ~@3 d2 ~@2", AV: "g2@6 ~@3 d3 ~@2 d3@8 ~ g2@2 ~",
AW: "a#1@6 ~@3 f2 ~@2 f2@7 ~@2 a#1 ~@2", AX: "a1@6 ~@3 e2 ~@2 e2@7 ~@2 a1 ~@2", AY: "d2@8 ~ g#2@2 ~ a2@8 ~ d2@2 ~",
AZ: "g2@6 ~@3 d3 ~@2 d3@7 ~@2 g2@2 ~", BA: "a#1@7 ~@2 f2 ~@2 f2@6 ~@3 a#1@2 ~", BB: "a1@8 ~ d#2 ~@2 e2@7 ~@2 a1@2 ~",
BC: "d2@9 g#2 ~@2 a2@7 ~@2 d2 ~@2", BD: "d2@6 ~@3 d2 ~@2 a2@4 ~@2 g2@4 ~@2", BE: "d2@7 ~@2 d2@2 ~ g2@8 ~ g2@2 ~",
BF: "c2@8 ~ f#2 ~@2 g2@7 ~@2 c2 ~@2", BG: "c2@7 ~@2 f#2@2 ~ g2@7 ~@2 c2@2 ~", BH: "g2@7 ~@2 g2 ~@2 e2@8 ~ e2@2 ~",
BI: "g2@9 c#3@2 ~ d3@7 ~@2 f#3 ~@2", BJ: "g3@8 ~ c#3 ~@2 d3@4 ~@2 d2@4 ~@2", BK: "g2@7 ~@2 c#3 ~@2 d3@7 ~@2 g2 ~@2",
BL: "a#1@9 f2 ~@2 f2@7 ~@2 a#1@2 ~", BM: "a1@8 ~ d#2@2 ~ e2@8 ~ a1@2 ~", BN: "d2@8 ~ a2@2 ~ a2@7 ~@2 d2 ~@2",
BO: "a1@7 ~@2 e2 ~@2 e2@8 ~ a1@2 ~", BP: "d2@7 ~@2 a2@2 ~ a2@6 ~@3 d2 ~@2", BQ: "d2@8 ~ d2 ~@2 g2@8 ~ g2 ~@2",
BR: "d2@6 ~@3 d2@2 ~ g2@8 ~ g2 ~@2", BS: "c2@6 ~@3 g2 ~@2 g2@7 ~@2 c2 ~@2", BT: "c2@6 ~@3 c2@2 ~ g2@4 ~@2 c2@4 ~@2",
BU: "c3@7 ~@2 f#2@2 ~ g2@9 b1 ~@2", BV: "c2@7 ~@2 g2 ~@2 g2@4 ~@2 g1@4 ~@2", BW: "b1@8 ~ b1 ~@2 a#1@7 ~@2 a#1 ~@2",
BX: "g2@7 ~@2 c#3 ~@2 d3@8 ~ g2 ~@2", BY: "a#1@8 ~ f2@2 ~ f2@7 ~@2 a#1@2 ~", BZ: "d2@8 ~ g#2 ~@2 a2@6 ~@3 d2 ~@2",
CA: "g2@7 ~@2 d3@2 ~ d3@7 ~@2 g2@2 ~", CB: "a#1@7 ~@2 f2 ~@2 f2@7 ~@2 a#1@2 ~", CC: "d2@8 ~ a2@2 ~ a2@6 ~@3 d2 ~@2",
CD: "d2@7 ~@2 d2 ~@2 a2@4 ~@2 g2@4 ~@2", CE: "d2@6 ~@3 d2 ~@2 g2@8 ~ g2 ~@2", CF: "c2@8 ~ g2@2 ~ g2@7 ~@2 c2 ~@2",
CG: "c2@7 ~@2 g2 ~@2 g2@8 ~ c2@2 ~", CH: "g2@6 ~@3 g2@2 ~ e2@7 ~@2 e2@2 ~", CI: "a1@6 ~@3 a1 ~@2 d2@6 ~@3 d2@2 ~",
CJ: "g2@7 ~@2 g2 ~@2 a1@8 ~ a1@2 ~", CK: "d2@7 ~@2 g#2@2 ~ a2@7 ~@2 d2 ~@2", CL: "d2@3 ~",
})).s("gm_acoustic_bass").gain(0.28)
// chords · tenor sax
const tenor_sax = note(`<
~@14 A B C D E@2 F G H I J K L M N O P B Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI@2 AJ AK AL AM AN AO AP AQ AR
AS AT AU AV AW AX AY AZ BA BB I N K L M N BC A B Q D BD@2 F BE H I N K L M BF BC P B C R S T U BC S T U BG
>`.pickRestart({
A: "~ [a3,c4,f4] ~ [d3,f3,b3]", B: "a3@3 g4 g#4 ~ a4@6 d3@3 c4 c#4 ~ d4@6, [c4,f4] [f3,b3]",
C: "~@4 [g3,b3,e4] ~@7 [g3,b3,d4]@3 ~ [g3,b3,e4] ~@7", D: "~@6 [g3,b3,e4] ~@17",
E: "[~@33 f4 f#4 ~ g4@3 ~ [a#3,d#4,g4] ~@5 [a#3,d#4,g4] ~, d#3@35 ~@13, ~@2 [a#3,d#4]@11 ~@3, ~@6 g3@29 ~@13]/2", // D# D#5
F: "~@6 [d3,d4] ~@9 [f3,g#3,d4] ~@7", G: "[g3,g4]@5 ~ [e3,e4]@5 ~ a3@3 g4 g#4 ~ a4@6, ~@6 [d#3,d#4] ~@5 [c4,f#4]@12",
H: "~ [d3,g3,b3]@3", I: "f3@3 d#4 e4 ~ f4@9 ~ [g#3,d4,f4] ~@5 [g#3,d4,f4] ~, [g#3,d4]@5 ~@3", J: "~ [e3,g3,c4]@3",
K: "~@6 [a3,c4,f#4] ~@5 c4@4 [a3,c4,f#4] ~ a3@6", L: "~ [d3,g3,b3]@3, b2",
M: "~@9 d#4 e4 ~ f4@3 ~ [g#3,d4,f4] ~@5 [g#3,d4,f4] ~, [g#3,d4]@5 ~@3, [d3,f3]@11 ~@13", // Ddim G#dim Dm
N: "~@4 [e3,g3,c4] ~@7 [e3,g3,b3]@3 ~ [e3,g3,c4] ~@7", // C Em C
O: "[c4,c5]@5 ~ [a3,a4]@5 ~ [f#3,f#4]@6 [e3,e4]@4 [f#3,f#4] ~, ~@6 [g#3,g#4] ~@5 [f3,f4] ~@5 [d#3,d#4] ~@5", // C A F# E F# G# F D#
P: "~ [a3,c4,f4] ~@2", Q: "~ [g3,b3,e4]@3", R: "~@6 [g3,a#3,d#4] ~@5 a#3@4 [g3,a#3,d#4] ~ g3@6",
S: "~ [d3,g3,b3] ~ [b3,d4,g4], b2 g3", T: "~@9 d4 d#4 ~@10 g4 g#4 ~, [c3,e3,g3,c4] [f#3,a3,c4,f#4]",
U: "~@6 [a#2,b2,a#3,b3] ~@11 [c3,c4] ~@5", V: "~@6 [c5,f#5] ~", W: "[d5,g5,b5]@7 ~@2 [d5,g5,b5] ~@2",
X: "[a#4,d5,f5,g#5]@5 ~ [a#4,d5,f5,g#5] ~", // A#7
Y: "[g4,a4,c5,e5]@10 a3 ~ [c5,e5] [g4,a4,c5] ~@2 a3 ~ [g4,c5,e5] [g4,a4,c5,e5] ~@4, ~@13 e5@2 ~@9", // Am7 C Am7 C Am7
Z: "[c5,d5,f#5,a5]@14 ~ d4@3 [c5,d5,f#5,a5]@3 [c5,d5,f#5,a5] ~@2", // D7
AA: "[d5,g5,b5]@14 ~ d4@3 [d5,g5,b5]@2 ~ [d5,g5,b5] ~@2", // G
AB: "[g#4,a#4,d5,f5]@14 ~ a#3@3 [g#4,a#4,d5,f5]@2 ~ [g#4,a#4,d5,f5] ~@2", AC: "[a4,c5,e5,g5]@5 g4 [a4,c5,e5,g5] ~",
AD: "[a3,c4,f#4] [c4,f#4]@2 ~ [f4,f5] ~ [c4,c5]@4 f#4 [g#3,g#4] ~ [c5,d5,f#5,a5] ~@2 [f#3,d4,f#4] ~ [a3,a4,c5,d5,f#5,a5]@4 [c4,c5] ~, [d5,a5] ~, c5@5 f#4@2 ~@3 f#3@2 [a3,a4]@4 ~@8, f#5@2 f#5 ~@9", // F#dim Cdim F C G# D7 D D7 …
AE: "~ [a3,c4,f4] ~ [d3,f3,b3], [c5,f5]@11 ~ [b4,f5]@11 ~", // F Bdim F5 Bdim
AF: "~@3 g4 [d4,g#4] ~ [c5,f5,a5]@3 ~@3 d3@3 c4 c#4 ~ d4@6, [c4,f4] [f3,b3], [a3,c5,f5,a5]@5 ~ a4@6 ~@3 [b4,f5,g5]@3 ~@6", // Ddim F F5 Fdim F G7
AG: "~@4 [g3,b3,e4] ~@7 [g3,b3,d4]@3 ~ [g3,b3,e4] ~ [d5,e5,g5,b5]@3 ~@3, [d5,e5,g5,b5]@5 b4 ~@2", // Em G Em Em7
AH: "~@3 [b4,e5,g5]@3 [g3,b3,e4] ~@5 [b4,e5]@6 [a4,e5]@6", // Em E5 A5
AI: "[~@21 [c5,g5] ~@5 [a#4,c5,d#5,g5] ~@5 [f4,g4] f#4 ~ [a#4,c5,g5] ~@2 g4 [a#3,d#4,g4] ~ [a#4,c5,d#5,g5]@2 ~@2 [a#3,d#4,g4] ~, d#3@35 ~@13, [a#4,d#5,g5]@22 ~@14 [g4,d#5]@3 ~@9, c5@6 g3@29 ~@13, ~@2 [a#3,d#4]@11 ~@3]/2", // C5 Cm7 Fsus2 C7 D# Cm7 D# Cm …
AJ: "~@4 [f#3,a3,d4] ~@7 [g#4,d5,f5]@4 [f3,g#3,a#3,d4] ~ [g#4,d5,f5]@3 ~@3, [a4,d5]@11 ~@13", // D Ddim A#7 Ddim D5
AK: "~@6 [e3,g3,c4] ~@5 [c4,c5,f#5,a5]@4 d4 ~ [c5,f#5,a5]@3 ~@3, [g4,c5]@11 ~@7 [a3,a4]@5 ~, ~@18 [g#3,g#4] ~@5", // C F#dim C5 A G#
AL: "~@15 d4@2 ~ [d5,g5]@3 ~@3, [d5,g5]@5 ~@3, ~ [d3,g3,b3]@3", // G5 G
AM: "f3@3 d#4 e4 ~ f4@9 d4 [g#3,d4,f4] ~ d4@2 ~ [d4,g#4] [g#3,d4,f4] ~, d5@23 ~, [g#3,d4,g#4]@15 g#4@2 ~ g#4 ~@5", // Ddim G#dim
AN: "~@4 [e3,g3,c4] ~@7 [e3,g3,b3]@3 c4 [e3,g3,c4] ~ c4@2 ~ [c4,g4] ~@2, c5@23 ~, g4@14 ~ g4@2 ~ g4 ~@5", // C Em C C5
AO: "~@6 [a3,c4,f#4] ~@5 c4@3 ~ [a3,c4,f#4] ~ [d5,f#5,a5,c6]@3 ~@3, [d5,f#5,a5,c6]@5 c5 a3@2", // F#dim D7
AP: "~@5 b4 [d5,g5,b5] ~, b2, [d5,g5,b5]@5 ~@3, ~ [d3,g3,b3]@3", // G
AQ: "f3@3 d#4 e4 ~ f4@9 ~ [g#3,d4,f4] ~ [g#4,d5]@3 ~ [g#3,d4,f4] ~, [g#3,d4,g#4,d5]@15 a#3@2 ~@7", // Ddim G#dim Ddim G#dim
AR: "~@6 [c3,c4] ~@5 [b2,b3]@3 ~ [c3,c4] ~ [e3,e4,a4,c5,e5,g5]@4 [c3,c4] ~, [a4,c5,e5,g5]@5 g4 ~@2", // C B C Am7 C Am7
AS: "c4@5 ~ [a3,a4]@5 ~ [f3,f4] ~@2 d4@2 ~ [e3,e4,c5,f#5]@4 [f#3,f#4] ~, [c5,f#5]@5 ~@3, ~@6 [g#3,g#4] ~@5 [f#3,f#4]@6 [d#3,d#4] ~@5", // A F F#m7b5 F# Cdim G# F# D#
AT: "~ [a3,c4,f4] [c5,f5] [b4,f5], [c5,f5]@11 ~@13", // F F5 Bdim F5
AU: "a3@3 g4 g#4 ~ a4@6 d3@3 c4 c#4 ~ d4@6, [c4,f4] [f3,b3], ~ [c5,f5,a5] ~@3 [b4,f5,g5] ~@2", // F5 Fdim F G7
AV: "~@4 [g3,b3,e4] ~@5 c4 ~ [e5,g5] [b4,d5,e5] ~@2 [g3,b3,c4,e4] ~ [b4,e5,g5] [b4,d5,e5,g5] ~@4, [b4,d5,e5,g5]@11 ~ [g3,b3,d4]@3 ~@9, ~@13 g5@2 ~@9", // Em E7 Cmaj7 Em Em7 G
AW: "~@6 [g3,a#3,d#4] ~@5 a#3@3 ~ [g3,a#3,d#4] ~ [a#4,c5,d#5,g5]@2 ~ [a#4,c5,d#5,g5] ~@2, [a#4,c5,d#5,g5]@14 ~ c4@3 g3@6", // D# Cm7
AX: "[d5,g5,b5]@4 d4 ~ [d3,g3,b3]@6 ~@3 [g4,d5,e5]@3 [b3,d4,g4]@6, b2 ~, ~@2 [d5,g5,b5] ~@5", // G Em7 G
AY: "~@9 d4 d#4 ~@4 [c5,f#5,a5]@3 ~@3 g4 g#4 ~, [c3,e3,g3,c4,g4,c5] [f#3,a3,c4,f#4]", // F#dim C F#dim
AZ: "~@21 [g5,b5] ~@2, [d5,b5]@11 ~, g5@5 ~, ~ [d3,g3,b3]@3", // G
BA: "~ [g3,b3]@2 [d5,g5,b5] [a#3,a#4] ~ [g3,g4]@3 b4 b3 [c#3,c#4] [d5,g5,b5] ~@2 b4 [b2,b3] ~ [d5,g5,b5]@2 ~@2 [g3,g4] ~, ~@2 b4 ~@9, ~@5 b3@2 ~@3 b2@2 [d3,d4]@3 ~@3 [d3,d4]@4 ~@2", // G A# G C# G B G D
BB: "~ [d3,g3,b3]@3, g5@23 ~, d5@7 ~@5", // G
BC: "[a3,c4,f#4] [c4,f#4]@2 ~ [f4,f5] ~ [c4,c5]@4 f#4 [g#3,g#4] [a3,a4]@4 [f#3,f#4] ~ [a3,a4]@4 [c4,c5] ~, ~@2 f#5 ~@9, ~@5 f#4@2 ~@3 f#3@2 ~@12", // F#dim Cdim F C G# A F# A …
BD: "[~@6 g3@21 f4 f#4 ~ g4@9 ~ [a#3,d#4,g4] ~@5 [a#3,d#4,g4] ~, ~@2 [a#3,d#4]@11 ~@3]/2", // D# D#5
BE: "~@6 [e3,g3,c4] ~@11 [a3,c4,f#4] ~@5", BF: "~@6 [c3,c4] ~@5 [b2,b3]@3 ~ [c3,c4] ~ [e3,e4]@4 [c3,c4] ~",
BG: "[a3,c4,f#4] [c4,f#4]@2 ~ [f4,f5] ~ [c4,c5]@13 ~@5, ~@2 f#5 ~@9, ~@5 f#4@2 ~@17", // F#dim Cdim F C
})).s("gm_tenor_sax").gain(0.31).pan(0.4)
// chords · trumpet
const trumpet = note(`<
~@14 A B C D E F G H I J K L M N K L O B C P Q R S T U V@2 W@2 X@2 Y@2 Z AA@2 AB@2 AC AD AE AF@2 AG@2 AH AI AJ@2 AK AL
AM AN@2 AO@2 I J K AP I AQ AR AS A B C AT AU AV AW AX I J K L I N AY L O B C P Q R AZ BA Q R AZ BB
>`.pickRestart({
A: "~@6 [f3,a3,c4] ~@11 [b2,d3,f3] ~@5", B: "[f3,a3,c4] ~@9 [f3,a3,c4] ~ [b2,d3,f3] ~@9 [b2,d3,f3] ~",
C: "~@4 [d4,g4,b4,e5] ~@7 [d4,g4,b4,e5] ~@9 [d4,g4,b4,e5] ~", // Em7
D: "~@4 [e3,e4]@2 [d3,d4,g4,b4,e5] ~ [e3,e4] d3 [b2,b3]@2 ~@4 [e3,e4]@2 ~@4 [e3,e4]@2, ~@9 d4@2 ~@13", // E Em7 E B E
E: "~@6 [d#3,g3,a#3] ~@9 [d#3,g3,a#3] ~@7", // D#
F: "[d#3,g3,a#3] ~@9 [d#3,g3,a#3] ~ [d3,g3,a#3]@3 ~ [d#3,g3,a#3] ~@5 [d#3,g3,a#3] ~", // D# Gm D#
G: "~ [b2,f#3,a3,d4] ~ [a#2,f3,g#3,d4]", // Bm7 A#7
H: "~@4 [c3,c4]@2 [b2,b3,e4,g4,c5] ~ [c3,c4] [b2,b3] [g2,g3]@2 ~@4 [f#3,f#4]@2 [e3,e4,a4,c5,f#5] ~ [f#3,f#4] e3 c3@2, ~@21 e4@2 ~, ~@22 c4 ~", // C Cmaj7 C B G F# F#m7b5 F#
I: "~@6 [b2,d3,g3] ~@9 [b2,d3,g3] ~@7", // G
J: "[d3,f3,g#3] ~@9 [d3,f3,g#3] ~ [c3,f3,g#3]@3 ~ [d3,f3,g#3] ~@5 [d3,f3,g#3] ~", // Ddim Fm Ddim
K: "~@4 [b3,e4,g4,c5] ~@7 [b3,e4,g4,c5] ~@9 [b3,e4,g4,c5] ~", // Cmaj7
L: "~@4 [f#3,f#4]@2 [e3,e4,a4,c5,f#5] ~ [f#3,f#4] [e3,e4] [c3,c4]@2 [e3,e4,a4,c5,e5]@3 ~ [f#3,f#4,a4,c5,f#5] ~@7", // F# F#m7b5 F# E C Am F#dim
M: "~@12 [g3,g4]@4 [d3,d4] ~@7", // G D
N: "[d3,d4]@2 [c3,c4]@2 [a#2,a#3]@2 [c3,c4]@3 ~ [a#2,a#3] ~@5 [c4,f4,g#4,d5] ~@5 [c4,f4,g#4,d5] ~", // D C A# C A# Dm7b5
O: "~@6 [f3,a3,c4] ~@17", // F
P: "~@4 [d#3,d#4]@2 [d3,d4,g4,a#4,d#5] ~ [d#3,d#4] [d3,d4] [a#2,a#3]@2 [d3,d4,g4,a#4,d5]@3 ~ [d#3,d#4,g4,a#4,d#5] ~@7", // D# D#maj7 D# D A# Gm D#
Q: "~@6 [b2,d3,g3] ~@11 [g3,b3,d4] ~@5", R: "[b2,b3]@4 [c3,c4] ~@7 [e3,e4]@4 [f#3,f#4] ~@7",
S: "~ [g2,d3,g3,b3] ~ [a2,e3,g3,c4]", T: "~@19 d5@3 e5 f5", U: "g5@11 ~@2 g5@3 d5@3 ~@2 e5@3",
V: "[f5@29 ~ e5@4 ~@2 e5@4 ~@3 g5@2 a5@2 ~]/2", W: "[b5@9 a#5@2 ~ a5@17 ~ g5@5 g5@3 ~ d5@4 ~ e5@3 ~]/2",
X: "[f5 g5@2 f5@24 e5@6 ~@3 e5@7 g5@2 a5@2 ~]/2",
Y: "[~@4 [f#3,f#4]@2 [e3,e4,a4,c5,f#5] ~ [f#3,f#4] e3 [c3,c4]@2 [e3,e4,a4,c5,e5]@3 ~ [f#3,f#4,a4,c5,f#5] ~@13 [f3,a3,c4] ~@11 [b2,d3,f3] ~@2 b5@2 ~, b5@9 [e4,a#5]@2 ~ a5@15 ~ d6@8 a5@9 ~@3]/2", // F# F#m7b5 F# C Am F#dim F Bdim …
Z: "[f3,a3,c4] ~@3 d6@3 ~ c6@2 [f3,a3,c4] ~ [b2,d3,f3] ~@5 a5@4 [b2,d3,f3] ~, c6@3 ~@9 b5@5 ~@7", // F Bdim
AA: "[~@4 [d4,g4,b4,e5] ~@4 g5@2 ~ [d4,g4,b4,e5] ~@9 [d4,g4,b4,e5] ~@5 [e3,e4]@2 [d3,d4,g4,b4,e5] ~ [e3,e4] d3 [b2,b3]@2 ~@3 g5 [e3,e4]@2 g5@3 ~ [e3,e4]@2, b5@8 ~@4 g5@26 ~@7 a5@2 ~, ~@33 d4@2 ~@13]/2", // Em7 E Em7 E B E
AB: "[a#5@6 [d#3,g3,a#3] ~@2 g5@3 ~@4 [d#3,g3,a#3] ~@7 [d3,d4]@4 [d#3,d#4] ~@4 g5@2 ~ a#5@3 ~ [d4,g4,a#4,d#5] ~@3 g5@2 [d4,g4,a#4,d#5] ~, ~@15 g5@17 ~@8 a5@3 ~@5]/2", // D# D D# D#maj7
AC: "d5@4 [c#4,f#4,a4,d5] ~@13 [a#2,f3,g#3,d4]@6", // Dmaj7 A#7
AD: "[a2,e3,g3,c4]@8 ~@2 [a2,e3,g3,c4] ~ [d3,a3,c4,f#4]@8 ~@2 [d3,a3,c4,f#4] ~", // Am7 D7
AE: "~@6 [b2,d3,g3] ~@2 b4 [c5,d5] [e5,f5] g5@3 ~ [b2,d3,g3,e5] ~@3 e5@2 ~@2, ~@5 d5 ~@2", // G Csus2 Fmaj7 Em7
AF: "[[d3,f3,g#3] ~@9 [d3,f3,g#3] ~ [c3,f3,g#3]@3 ~ [d3,f3,g#3] ~@5 [d3,f3,g#3] ~@5 [b3,e4,g4,c5] ~ e5@5 ~ [b3,e4,g4,c5] ~@3 g5@3 ~ a5@2 [b3,e4,g4,c5] ~, f5@29 ~@7 e5@3 ~@9]/2", // Ddim Fm Ddim Cmaj7
AG: "[~@4 [f#3,f#4]@2 [e3,e4,a4,c5,f#5] ~ [f#3,f#4] e3 c3@2 [e3,e4,a4,c5,e5]@3 ~ [f#3,f#4,a4,c5,f#5] ~@13 g5@4 ~@2 [g3,g4,g5]@4 [d3,d4] ~@3 e5@2 ~@2, b5@9 [e4,a#5]@2 ~ a5@16 ~@12 d5@4 ~@4, ~@10 c4 ~@37]/2", // F# F#m7b5 F# Am F#dim G D Edim
AH: "[c3,c4]@4 [d3,d4] ~@11 [c4,f4,g#4,d5] ~@5 [c4,f4,g#4,d5] ~, f5@13 ~@11", // C D Dm7b5
AI: "~@4 [b3,e4,g4,c5] ~ e5@3 ~@3 [b3,e4,g4,c5] ~@3 g5@4 a5@2 [b3,e4,g4,c5] ~, ~@4 e5 ~@3", // Cmaj7
AJ: "[a5@2 ~@2 [f#3,f#4]@2 [e3,e4,a4,c5,f#5] ~ [f#3,f#4] e3 c3@2 [e3,e4,a4,c5,e5]@3 ~ [f#3,f#4,a4,c5,f#5] ~@13 [f3,a3,c4] ~@5 a5@8 ~ b5@2 ~, b5@8 ~ [e4,a#5]@2 ~ a5@15 ~@3 d6@4 ~@14, ~@10 c4 ~@37]/2", // F# F#m7b5 F# Am F#dim F Edim
AK: "[f3,a3,c4] ~@3 d6@3 ~@3 [f3,a3,c4] ~ [b2,d3,f3] c#6 ~@4 a5@4 [b2,d3,f3] ~, c6@3 ~@6 c6@3 b5@5 ~@7", // F Bdim
AL: "~@4 [d4,g4,b4,e5] ~@4 g5@2 ~ [d4,g4,b4,e5] ~@5 g5@2 ~@2 [d4,g4,b4,e5] ~, b5@9 ~@3 g5@5 ~@4 a5@2 ~", // Em7
AM: "~@4 [d#3,d#4]@2 [d3,d4,g4,a#4,d#5] ~ [d#3,d#4] d3 a#2@2 [d3,d4,g4,a#4,d5]@3 ~ [d#3,d#4,g4,a#4,d#5] ~@4 e5@2 ~, a#5@8 ~ [d4,g5]@2 ~ g5@9 ~@3, ~@10 a#3 ~@13", // D# D#maj7 D# Gm D# G5
AN: "[~@6 [b2,d3,g3] ~@11 [g3,b3,d4] ~@5 [b2,b3]@4 [c3,c4] ~@7 [e3,e4]@4 [f#3,f#4] ~@7, d5@12 b5@21 ~@3 f#5@11 ~]/2", // G B C E F#
AO: "[~@6 [g2,d3,g3,b3]@26 ~@2 [g2,d3,g3,b3] ~@5 [g3,a3,b3,d4]@8, g5@5 ~]/2", // G
AP: "~@4 [f#3,f#4]@2 [e3,e4,a4,c5,f#5] ~ [f#3,f#4] e3 c3@2 [e3,e4,a4,c5,e5]@3 ~ [f#3,f#4,a4,c5,f#5] ~@7, ~@9 e4@2 ~@13, ~@10 c4 ~@13", // F# F#m7b5 F# Am F#dim
AQ: "[c3,c4]@4 [d3,d4] ~@11 [c4,f4,g#4,d5] ~@5 [c4,f4,g#4,d5] ~", // C D Dm7b5
AR: "~@6 [g3,c4] ~@5 [e3,b3]@4 [g3,c4] ~ [b3,e4]@4 [g3,c4] ~", // C5 E5 C5 E5 C5
AS: "[a4,c5]@4 [g4,g#4] b4 [f#4,a4]@4 [f4,g#4] ~ [c4,f#4]@5 [b3,f4] [a3,e4]@4 [c4,f#4] ~, ~@11 [e4,g4]@2 ~@11", // Am G#maj7 F#m Fm Cdim Bdim A5 Cdim …
AT: "~@4 [e3,e4]@2 [d3,d4,g4,b4,e5] ~ [e3,e4] [d3,d4] [b2,b3]@2 ~@4 [e3,e4]@2 [e3,g3,a3] ~@5", // E Em7 E D B E A7
AU: "~@12 [a#3,a#4]@4 [g3,g4] ~@7", // A# G
AV: "[d#3,d#4]@2 [d3,d4]@2 [c3,c4]@2 [d3,d4]@3 ~ [c3,c4] ~@5 [d4,g4,a#4,d#5] ~@5 [d4,g4,a#4,d#5] ~", // D# D C D C D#maj7
AW: "~@4 [c#4,f#4,a4,d5] ~@13 [a#2,f3,g#3,d4]@6", // Dmaj7 A#7
AX: "[a2,e3,g3,c4]@8 ~@2 [a2,e3,g3,c4] ~@5 [f#3,f#4]@2 [e3,e4,a4,c5,f#5] ~ [f#3,f#4] e3 c3@2, ~@21 e4@2 ~, ~@22 c4 ~", // Am7 F# F#m7b5 F#
AY: "~ [a2,e3,g3,c4]@3", AZ: "~@4 [a3,d4,g4,b4] ~@11 [b3,e4,g4,c5] ~@7",
BA: "[d3,a3,c4,f#4]@8 ~@2 [d3,a3,c4,f#4] ~@5 [c4,e4,f#4,a4]@8", BB: "[d3,a3,c4,f#4] ~@2",
})).s("gm_trumpet").gain(0.41).pan(0.2)
// chords · trombone
const trombone = note(`<
~@6 A B@2 C@2 D E F@2 G H I J@2 K L M N O P Q R S T U V W X Y Z AA ~ AB AC ~@5 AD AE V W AF AG@2 AH AI M N O P Q R AJ
T U V W X Y AK AL AM M N O P Q R S T AE V W AN AO AP AQ AR M N AS P Q R AJ AD U V W X Y AK AT AD Y AK AT AU
>`.pickRestart({
A: "~@12 g4@3 ~ d4@4 e4@3 ~", B: "[f4@30 e4@5 ~ e4@4 g4@4 a4@3 ~]/2",
C: "[b4@9 a#4@2 a4@18 ~ g4@5 g4@4 ~ d4@4 e4@4]/2", D: "f4", E: "~@12 e4@3 g4@4 ~@2 a4@2 ~",
F: "[b4@9 a#4@3 ~@2 a4@16 [d3,a3,c4,f4,d5]@5 ~@10 b4@2 ~, ~@35 a4@9 ~@4, ~@7 [g2,d3,f3,b3]]/2", // Dm7 G7
G: "c5@3 ~ d5@3 ~ c5@3 ~ b4@6 a4@5 ~, [d3,a3,c4,f4] [g2,d3,f3,b3]", // Dm7 G7
H: "b4@4 [g3,c4,e4,b4] ~@4 g4@2 ~ g4@4 [e3,g3,b3,g4] ~@7", // Cmaj7 Em
I: "[c3,g3,b3,e4] ~@9 [c3,e3,b3,g4] ~ [c3,g3,b3,e4] ~@5 [c3,g3,a3,e4] ~@2 a4@2 ~, ~@15 g4@5 ~@4", // Cmaj7 Am7
J: "[~@9 g4@2 ~ g4@23 ~ a#4@4 [g3,a#3,d#4,g4] ~@3 g4@2 [g3,a#3,d#4,g4] ~, a#4@9 ~@31 a4@6 ~@2, ~@2 [c3,g3,a#3,d#4]@11 ~@3]/2", // D# Cm7
K: "d4@6 [f#3,a3,d4] ~@9 [f3,a#3,d4,g#4] ~@7", L: "[a2,e3,g3,c4] ~@9 [a2,c3,g3,e4] ~ [f#4,a4,c5]@5 ~ [c4,f#4,a4]@5 ~",
M: "~ [g2,d3,g3,b3]@3", N: "[a#2,f3,g#3,d4]@15 ~ [f3,g#3,d4,f4] ~@5 [f3,g#3,d4,f4] ~",
O: "~@4 [e3,a3,c4,g4] ~@11 [c3,e3,g3,e4] ~@7", // Am7 C
P: "[d3,a3,c4,f#4] ~@9 [d3,f#3,c4,a4] ~@5 [d3,f#3,c4,a4]@5 ~ [d3,f#3,c4,a4] ~", // D7
Q: "~@6 [d3,g3,b3] ~@5 [d3,g3,a3]@3 ~ [d3,g3,b3] ~@5 [d3,g3,b3] ~", // G Dsus4 G
R: "~@6 [f3,g#3,d4] ~@5 [f3,g#3,c4]@3 ~ [f3,g#3,d4] ~@5 [f3,g#3,d4,f4] ~", // Ddim Fm Ddim
S: "~@6 [e3,a3,c4,g4] ~@9 [c3,e3,g3,e4] ~@7", // Am7 C
T: "[d3,a3,c4,f#4]@4 f4@2 [d3,a3,c4,f#4] ~@3 [a3,c4,f#4,a4] ~@5 [a3,c4,f#4,a4]@7 ~", U: "~ [d3,a3,c4,f4] ~@2",
V: "[d3,a3,c4,f4] [g2,d3,f3,b3]", W: "~@4 [g3,c4,e4,b4] ~@11 [e3,g3,b3,g4] ~@7",
X: "[c3,g3,a#3,d#4] ~@9 [c3,d#3,a#3,g4] ~@5 [c3,d#3,a#3,g4]@5 ~ [c3,d#3,a#3,g4] ~", // Cm7
Y: "~@6 [d3,g3,b3] ~@11 [b3,d4,g4] ~@5", Z: "~@6 [e3,g3,c4] ~@5 [d3,a3,c4,f#4]@12",
AA: "~@6 [d3,g3,b3,g4] ~@9 [e3,a3,c4,g4] ~@7", AB: "~ g2@3", AC: "a#2@5 ~@3",
AD: "[f#4,a4,c5]@5 ~ [c4,f#4,a4]@5 ~ [a3,c4,f#4]@5 ~ [a3,c4,e4]@3 ~ [a3,c4,f#4] ~", // F#dim Am F#dim
AE: "~ [d3,a3,c4,f4] ~ [g2,d3,f3,b3]", AF: "[c3,g3,b3,e4] ~@9 [c3,e3,b3,g4] ~ [c3,g3,b3,e4]@6 [c3,g3,a3,e4] ~@5",
AG: "[~@6 [c3,g3,a#3,d#4]@33 ~ [g3,a#3,d#4,g4] ~@5 [g3,a#3,d#4,g4] ~]/2", AH: "~@6 [f#3,a3,d4] ~@11 [f3,g#3,d4] ~@5",
AI: "[c4,e4,g4]@5 ~ [g3,c4,e4]@5 ~ [f#4,a4,c5]@5 ~ [c4,f#4,a4]@5 ~", // C F#dim
AJ: "~@6 [e3,g3,c4] ~@5 [e3,g3,b3]@3 ~ [e3,g3,c4] ~ [g3,c4,e4]@3 ~ [e3,g3,c4] ~", // C Em C
AK: "~@6 [e3,g3,c4] ~@11 [a3,c4,f#4] ~@5", AL: "~@4 [d3,g3,b3,g4] ~@11 [b2,d3,g3,d4] ~@7",
AM: "[g2,d3,g3,b3] ~@9 [g2,b2,g3,d4] ~@5 [g2,b2,g3,d4]@5 ~ [g2,b2,g3,d4] ~", // G
AN: "[c3,g3,b3,e4] ~@9 [c3,e3,b3,g4] ~ [c3,g3,b3,e4] ~@5 [c3,g3,a3,e4] ~@5", // Cmaj7 Am7
AO: "~@6 [g3,a#3,d#4] ~@5 [g3,a#3,d4]@3 ~ [g3,a#3,d#4] ~@5 [g3,a#3,d#4] ~", // D# Gm D#
AP: "~@6 [g3,a#3,d#4] ~@5 [g3,a#3,d4]@3 ~ [g3,a#3,d#4] ~@5 [g3,a#3,d#4,g4] ~", // D# Gm D#
AQ: "~@6 [f#3,b3,d4,a4] ~@11 [f3,g#3,d4] ~@5", // Bm7 Ddim
AR: "[a2,e3,g3,c4] ~@9 [a2,c3,g3,e4] ~ [d3,a3,c4,f#4] ~@9 [d3,f#3,c4,a4] ~", AS: "~ [a2,e3,g3,c4]@3",
AT: "~@6 [g2,d3,g3,b3]@6 ~@4 [e3,a3,c4,g4] ~@7", AU: "[f#4,a4,c5]@5 ~ [c4,f#4,a4]@5 ~@13",
})).s("gm_trombone").gain(0.31).pan(0.8)
// chords · acoustic guitar nylon · "Nylon Guitar"
const acoustic_guitar_nylon = note(`<
~@2 A B C D E F G H I J K L M N O P Q@2 R S T U V W X Y Z AA AB AC AD AE A AF C AG T AH AI AJ AK AL AM AN AO AP AQ AR
AS AT AU AV T AW AX AY T AZ V BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BM BQ BR AD BS BT BU BV BW T BX V BY BZ
CA CB BM CC CD AQ CE CF CG CH CI CF CG CH CJ
>`.pickRestart({
// … 203 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.