0:00/0:00
// Easy to Love — Porter Cole
// 170 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 103 bars on a 16-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 · rock organ · "Easytolove"
const rock_organ = note(`<
A B C D E F G@2 H I@3 J K L M N O@4 P Q@2 R S@3 T U V W X@2 Y Z AA AB@2 AC@2 AD AE AF@2 AG AH AI AJ AK AL AM@2 AN@2 AO
AP AQ AR AS AT@4 AU@2 AV AW AX AY AZ BA BB BC@2 BD@2 BE@2 BF BG BH BI BJ BK BL BM@2 BN BO@6 BP@3 BQ BR@3 ~
>`.pickRestart({
A: "~@3 f#6 g6 c7 ~ f7 e7 f7 [c7,e7] g6 [f#6,c7] f6 c6 [f6,c7], [e4,d5]@5 ~@2 [c#5,f5]@7 ~@2", // C F#dim F5 E7 C#
B: "d#6 e6 ~ [f6,a6] [e6,g6] c6 ~ g5 [f5,c6]@2 ~ c5 [f5,c6]@3 e5, ~@8 f#5 ~@7", // F Em F5
C: "~@3 [f#5,g5,b5,d6,f#6] ~@3 [a5,b5,d6,f#6,a6] ~@3 [g5,b5,d6,f#6]@5, ~@11 f#5 ~@4", // Gmaj7 Bm7 Gmaj7
D: "[f#5,a#5,c#6,f6]@8 [c#5,d#5,f#5,a#5,c#6] ~@3 [c#5,d#5,a#5]@2 ~@2, ~@12 [a#4,f#5] ~@3", // F#maj7 D#m7 D#7 D#m
E: "[a4,c5,e5,f5,a5], g#4 ~@15", F: "[e4,g4,a#4,d5]@10 ~ [c#4,g4,a#4,c#5,e5]@4 c#4, c#4 ~@15",
G: "[[a4,c5,d5,f5]@8 [c#4,g4,a#4,c#5,e5]@3 [d4,c5,d5,f5] ~@3 f#5 g5@11 [f4,b4,d#5,a5]@5, ~@15 [f4,a4,c5,e5,b5]@12 g#5 ~@4]/2", // Dm7 C#dim Dm7 F7 Fmaj7
H: "[e4,a4,d5,g5]@11 [d#4,g#4,c#5,f#5]@2 [e4,a4,d5,g5]@2 c5", // Em7 D#m7 Em7
I: "[[d5,d#5,g5,b5,d6]@7 [c#5,d#5,g5,a#5,c#6]@2 [c5,d#5,g5,a5,c6]@3 ~ [b4,d5]@2 [a4,e5,a5]@9 [c#5,d#5,g#5]@2 ~@2 [a4,b4,d5,e5,a5]@3 d#6 [g5,d6,e6]@11 [g4,c#5,f5,a#5,d#6,g6] ~@4, c#5 ~@11 [d#5,g5,b5]@3 ~@9 [g#4,a4] ~@6 [a5,b5,g6]@11 ~@6]/3", // G D#7 Am7b5 Bm A5 C#sus2 Asus4 Em7 …
J: "c#6 d6@15, [a4,a5,g6]", K: "g#4 a4@10 [f4,b4,d#5,g#5,b5]@5, [c5,e5,f5,a5]@11 ~@5",
L: "a#5 [e4,b5]@6 [e5,e6]@2 ~ e6@2 [e5,e6]@3 [e5,e6], [g5,e6]@7 ~@3 e5 ~@5", // E5 E C
M: "~@4 [f#5,b5]@2 ~ [c#5,f5,c#6] ~@3 c#5 [c#5,f#5] ~@2 [f4,e5,f5], ~@3 d6@3 ~@5 a#5@3 ~@2", // B5 C# F#5 Fmaj7
N: "~@3 [g5,d#6] e6@4 [a4,c5,e5]@2 ~@2 [g4,a4,c5,e5,g5]@3 ~, ~@3 [a5,c6,g6]@5 [f4,g5] ~@7", // Cm Am Am7 Fsus2
O: "[[g#4,c5,d5,f5,g#5]@3 ~ [g#4,c5,d5,f5,g#5]@4 ~ c#5@2 [b4,c#5,e5,a5] ~@3 [e4,g4,b4,d5,e5,g5,b5]@9 [d5,e5,g5,b5,d6]@2 ~@4 [e5,g5] ~@2 f5@6 [g#4,c#5,f5,g#5] ~@2 [f#4,a#4,c#5,f5]@2 ~ [c#4,f#4,a#4,c#5]@2 [f4,a4,c5]@9 [c5,e5,f5,a5]@8, ~@8 [b4,e5,a5]@2 ~@14 c#5 ~@2 [c#5,c#6]@5 [a#4,c#5,f#5]@7 a#4@2 ~@15 g#4 ~@7, ~@27 b5@4 [b4,g5,b5]@2 ~@31, ~@29 c6@3 a#5@4 ~@28]/4", // Dm7b5 A Em7 Em C# F#maj7 F# F …
P: "c#4 [e4,g4]@10 [c#4,g4,a#4,c#5,e5]@4 c4, [d4,a#4,d5]@5 ~@3", // Em C#dim Gm
Q: "[[d4,a4,c5,d5,f5]@8 [c#4,g4,a#4,c#5,e5]@3 [d4,a4,c5,d5] ~@3 f#5 [f4,g5]@11 [f4,b4,d#5,a5]@5, c#4 ~@14 [a4,c5,e5,b5]@11 ~@6]/2", // Dm7 C#dim D7 Fsus2 F7 Am
R: "[e4,a4,b4,d5,e5,g5]@11 ~@2 [g4,a4,d5,e5,g5]@3, ~@11 [f#4,g#4,c#5,d#5,f#5]@5", // Em7 Gsus2 F#sus2
S: "[[d5,d#5,g5,b5,d6]@7 [c#5,d#5,g5,a#5,c#6]@2 [c5,d#5,g5,a5,c6]@3 [b4,d5,d#5,g5,b5]@3 [a4,b4,e5,a5]@9 [g#4,d5,e5,g#5]@2 ~@2 [a4,d5,e5,a5]@3 d#6 e6@10 ~ [c#5,e5,g5,a#5,c#6,e6]@5, [c5,c#5] ~@27 b4 ~@2 [a5,b5,d6,a6]@11 ~@6]/3", // G D#7 Am7b5 G Asus2 E7 Asus4 C#dim …
T: "[d5,f5,g5,a5,c6,e6,g6]@10 ~ [f5,a5]@2 [e5,f5,a5,e6]@3, ~@11 [d5,c6,d6]@5", // Dm7 F Fmaj7 D7
U: "[g5,g#5,c6,d#6,f6]@10 ~ g5@2 ~@2 d#5, f#5 ~@10 [c5,d#5,g#5,c6]@5, ~@13 [d5,a#5,d6]@3, ~@7 [f5,g5]", // Fm7 G# Gm Fsus2
V: "[g5,a5,b5,e6]@11 [b4,e5,g5,b5] [d5,f5,a5,c6]@2 ~ [d5,e5,g5,b5,d6]", // Em Dm7 Em7
W: "~@3 [c#5,e5,g5,a#5,c#6]@4 a#4 [d#5,f#5]@2 ~@2 [c5,d#5]@2 ~@2, ~@8 c6 ~@3 [f#5,b5] ~@3", // C#dim D#m Cm B5
X: "[[c5,e5,f5,a5]@8 [e5,f5,a5,c6,e6]@10 ~ [e5,g#5] a5 ~@3 [f5,g#5,b5,e6]@3 ~ [b4,d5,f5,g#5,b5]@3 [c5,e5,g5,c6], ~@8 d#5 ~@10 [f5,c6,e6]@2 ~@7 a#4 ~@3]/2", // Fmaj7 E Bdim C Fmaj7
Y: "~@3 g5 ~@2 b5 d6 ~ b5 ~ c6 ~ g6 ~ b6", Z: "~ d7 ~ g7 ~ d7@2 c#7 ~@3 [c#5,f5,f7]@4 a#4",
AA: "[f4,c5,d#7] e7 ~@2 a6@2 ~ a6 a6@2 ~ a6 a6@2 ~@2, g7 ~@7", // F7
AB: "[[d5,e5,a6]@2 ~@2 a6@3 [c#5,f5,a6]@2 ~ a6@2 f7@2 ~ [c5,e7]@5 d7 ~ c7 a6 ~ f6 ~ e6 ~ d6@2 [c5,c6], ~@7 a#4 ~@24]/2", // Dsus2 C#aug C
AC: "[~@4 f6@2 ~ [f4,c5,e5]@2 f#6 g6@2 b5@2 ~ d#6 e6 ~@2 [a4,b5] d6 e6 d6 ~ c6 g5@2 ~ g5@4, ~@3 d6@3 ~ [g#6,a6] ~@4 e5 ~@2 a4@2 ~@15]/2", // Fmaj7 Asus2 Amaj7
AD: "[d#4,a4,d5] ~@3 f#6 ~ c7 e7 d#4 f7 e7 f7 ~ e7 f7 e7", // D
AE: "[g4,d5,f7] ~ e7 f7 e7 f7 ~ e7 [d5,f7] ~ e7 f7 e7 f7 ~ e7", // G7 Dm
AF: "[[g4,d5,f7] ~ e7 c7 a6 ~@7 [a7,c8]@2 ~ [f4,a4,e5,f#7] g7 ~@2 a4 ~@2 c7 e7 ~ [e7,f7] e7 c7 ~@4, ~@5 c7@6 ~ [g#7,d8] ~@2 c8@2 ~@15, ~@4 [g4,c#5,f5]@3 ~@9]/2", // G7 Am Fmaj7 G#dim Gm7b5
AG: "~@5 f#6 f6 [f4,b4,e5,c7] ~ c6 ~ g5 ~ f5@2 d#5, ~@5 c7@2 e6@2 ~@7", AH: "e5@3 g5 b5@2 ~ d6@2 c6@2 b4 g5@3 ~",
AI: "f#5@2 ~ [d5,g5] [g4,d5,a5]@3 [f#4,a#4,c#5,a#5]@2 ~ [c#5,f5]@2 [f#4,a#4,c#5,d#5]@3 [f4,c5,d5], ~@10 a#4 ~@5", // G5 Gsus2 F# C# D#m7 Dm7
AJ: "~@3 g6 g5 ~ g5!4 ~ g5!2 ~ g5!2", AK: "[c5,e5] ~ g5!4 ~ g5 [f4,b4,e5] ~ g5!3 ~ g5!2",
AL: "[e4,d5] ~ f#5 g5 c6 ~ e6 f6 ~ e6 f6 e6 f6 ~ e6 c6", // E7
AM: "[f#4@3 a#4 [f#5,c6] f5@2 d#5 [f5,c6]@2 ~ [a#4,d#5] [f5,c6]@2 ~ f#5 g5 ~ e5@2 ~ c5@2 a4@7 ~ g#4, c#5@5 ~@10 [a4,c5,c6]@2 ~@15]/2", // F#dim F5 D#5 F5 Am
AN: "[a4@2 ~ b4 c5@2 ~ [g4,d5]@3 [g4,a#4,c#5,e5]@2 [a#4,c#5,a5]@3 [f4,a4,c5,g5]@3 ~ e5 f5 a5 ~ c6 e6 ~ g6 f6 e6@2 ~@2]/2", // G5 Gdim A#m F
AO: "[f4,c5,e5]@3 f#6 g6 c7 e7 g7 a#7 g#7 d#7 b6 a#6 g#6 g6 f#6", AP: "g6 ~ g6 a6 g6 ~ g5 a5 b5 ~ b5 c6 b5 a5 g5 ~",
AQ: "e5 ~ b5 d6 b5 c6 e6 ~ g6 b6 [c#7,d7]!2 c7 g6 ~ c6", AR: "f6 ~ c6 ~ f6 e6 c6 a5 g#5 g5 ~@6",
AS: "~@3 [g4,d5,d#5] e5 ~ f#5 g5 ~ [g4,c#5,f5,a5] a#5 ~ c6 c#6 d#6 e6", // D#maj7 C#aug
AT: "[e5 [f4,c5] ~ e6 ~ c6@2 [c5,e5,a5] ~ [a4,g5]@3 [a4,c5,e5,f5]@7 [g#4,a#4,d#5,d#6,a#6] ~ [g#4,a#4,d#5,g6] [g#4,a#4,d#5,d#6] [c5,d#5]@2 ~ [d5,g5,a#5]@2 [g#4,a#4,c5,g#5]@3 [g4,b4,d5,e5,g5]@8 [b4,d5,e5,c6] [d5,e6]@3 [b4,d5,e5,g6] [g4,b4,d5,e5]@3 [g4,b4,d5,e5,e7]@2 [g6,g7] [d5,f#5] ~ f#5 ~@3 d7 ~@6 [g4,a#4,c#5,f5,a6,b6,a7], ~ g6@2 ~@16 c5@4 [a#4,c6] ~@2 a#4 ~@12 g4@4 ~@9 a7@3 [g4,a#4,c#5,f5,c7,c8]@9, ~@19 g5@2 ~@7 g5 ~@15 c7@5 ~ d7@6 ~@8, ~@53 [b4,d5,f#5,a#6,a#7]@4 ~@7]/4", // F5 Am A7 Fmaj7 G#sus2 D# G#sus2 Cm …
AU: "[[f4,a4,c5,e5,g6,g7]@2 ~@2 d#7 e7 ~@2 [f7,g7]@3 e7 [f7,g7]@2 ~ [f4,b4,e5]@2 f7 [f#7,g7] ~ [a#6,a#7] a#6 a#7 [f4,b4,d#5]@2 ~ d#7 c7 [d#7,g7] e7 c7 [f7,g7], ~@4 [f4,a4,c5,e5,g7]@2 ~@9 [e7,g7] ~@7 [a#6,a#7] ~@8]/2", // Fmaj7 Fsus2 E Gmaj7 A# Fm7b5 D# Fsus2 …
AV: "~ [d#7,g7] e7 [c7,g7] ~ g6 ~ [e4,d5,f#6,c7] c7 f6@2 [f#6,c7] g6 d#6 ~ [d5,e5]", // D# C5 D7 F#dim Dsus2
AW: "c6@2 ~ a5 g5@2 ~ [g4,c#5,f5,a5]@2 [c#5,f5,g5,a#5]@2 ~ [g4,f5,a5] ~@2 [f4,c5,f5,a5], ~@9 g4 ~@2 [c#5,c6]@2 ~@2", // C#aug Gm7b5 Dm F C#maj7
AX: "~@3 [c6,e6,f6,a6]@5 [f5,a5,c6]@2 ~@2 [g5,a5,e6]@2 ~@2, ~@3 a5@2 ~@3 [c#5,d6] ~@3 e5 ~@3", // Fmaj7 F A7 Dmaj7
AY: "d#5 [b5,d6]@2 ~ [g5,a5,e6,g6]@2 ~@2 g#5 [c6,d6,f6] ~@3 e6@2 [d6,f6,a6,c7,d7], [g5,f6]@2 ~@7 [a5,a6]@3 [c#6,g6,a#6,c#7]@3 ~", // Bm A7 Dm7 G7 A Gdim
AZ: "~@3 [d5,f5,a5,c6,d6] ~ d5 ~@2 [d5,f5,a5]@2 ~@2 [c6,e6]@4, ~@2 [f5,a5,c6,d6] ~@3 [f5,a5] ~, ~@12 e5 ~@3", // Dm7 Dm C Dm7 F
BA: "[f5,a5,c6,d6,f6]@7 [d5,f5,a5,c6,d6] ~@2 [d5,f5,g#5,b5] ~ [g#4,b4,d5,f5,g#5]@3 [g4,e5,g5], ~@10 b4@2 f#4 ~@3", // Dm7 Ddim G#dim C
BB: "~@7 [c4,e4,g4,a4,c5] e4 c4 ~ [c4,e4,g4,a4,c5] [c4,e4,g4,a4,c5]@2 ~ [g4,a4,c5,d#5,g5], ~@4 [g4,a4,c5] ~@3", // Am7 Am7b5 Am7
BC: "[~@3 [c4,d#4,g4] ~@3 [b3,d#4,g4,c5] ~ [c4,d#4,g4,a4,c5] ~ [c4,d#4,c5] [c4,d#4,g4]@2 ~ d#5 e5@7 [c4,e4,g4,a4,c5] ~ a4@2 [c4,e4,g4,a4,c5] [c4,e4,g4,a4,c5]@3 [d4,e4,g4,b4,d5], ~@15 [g4,b4,d5,g5]@8 ~ c5@2 ~@6]/2", // Cm Am7b5 Cm Am7 Em7 G
BD: "[~@3 [e4,g4,b4,d5,e5] [g4,d5,f5] b4 ~ [g4,g5]@3 [c#5,f5,g#5] ~@2 [a#4,f5,f#5]@2 [f4,a4,c5,e5,g5,b5]@8 [a4,c5,e5,g5] [c5,e5]@2 ~ [a4,c5,f5] a5 c6 ~ e6, ~@4 f4@2 ~ [a4,b4] ~@2 [f#4,a#4]@2 [g#4,c#5,a#5]@4 ~@16]/2", // Em7 G7 G C# F#maj7 Fmaj7 Am7 C …
BE: "[[f4,a4,c5,e5,g6]@2 c5 [f4,e5,f6] [a4,e5,g6]@2 a4 [f4,c5,e5,f6,g6] ~ d#6 e6 ~ [a4,b4,g5]@2 ~ [e4,b4]@4 [c6,c#6] ~ c6 e6 g6 b6 c7 b6 g6!2 a6 b6 c7, ~@9 [f4,e5,g6]@2 ~ e5 ~@2 d6@3 ~@14]/2", // Fmaj7 A7 C Em E5 C#maj7 C
BF: "b6 c7 b6 a6 g6 a6 b6 [c#5,c7] [c#7,d#7] f7 [c#7,d#7] a#6 f#6 [c#6,d#6] [a#5,c6] [f#5,g#5]", // C#maj7 C#sus2 A#sus2 F#sus2
BG: "[d#5,f5] e5 ~@6 [f4,c5,e5] g6 f#6 f6 a5 c#6 [d#6,e6] ~", // D#sus2 Fmaj7 Emaj7
BH: "[c#6,d6] ~ a5 c6 ~@4 c6 [c6,d6] ~ [a5,a#5] b5 a#5 ~ g#5", // Dmaj7 Csus2 A#maj7
BI: "[b4,g5] c6 e6 f6 ~ f6 e6 c6 ~ f5 e5 d5 c5 b4 a4 ~", // Em
BJ: "f#4 g#4 ~ a#4 ~ c5 c#5 d#5 f5 f#5 g#5 a#5 [f#4,c6] c#6 d#6 ~", // F#dim
BK: "[f4,c5,e5,f6,a6]@7 [a4,c5,e5,d6,f6] ~@4 [c5,e5,a5,d6]@2 ~@2", // Fmaj7 Dm7 Am
BL: "~ [d5,e5]@10 [g4,a#4,c#5,e5,g5,a#5,c#6,e6]@5, [g5,a#5,d6]@11 ~@5", // Dsus2 Gdim Gm
BM: "[[f4,a4,c5,d5,a5,c6,d6,f6]@8 [a4,c#5,e5,g5,a#5,c#6,e6]@2 ~ [a4,c5,a5,c6,d6,f6] e5 ~@2 [d#6,f#6] e6@10 ~ [f4,g#4,b4,d#5,b5,d#6,a6]@5, ~@15 [f4,a4,c5,e5,c6,g6,b6]@11 ~@6]/2", // Dm7 A7 Dm7 D#m Fm7b5 Fmaj7
BN: "c#6 ~@10 [e4,g4,b4,d5]@2 [e4,g4,b4,d5,g5,g6]@3, [g5,g6]@13 ~@3, [e4,g4,b4,d5]@11 [f#5,f#6]@5, ~ d6@15", // Em7 G Em7 F#
BO: "[[d#4,g4,a4,d5,d6,d7]@7 [g4,a4,c#6,c#7]@2 [d#4,d5,c6,c7]@2 ~ [d#4,d5,b5,b6]@3 [e4,g4,a4,b4,d5,a5,a6]@9 ~ [e4,g4,d5] ~ [e4,a4,b4,d5,a5,a6] ~@3 [g#6,g#7] [a6,a7]@11 [g4,a#4,c#5,f#5]@2 [c#5,f#5] a#4 [f#6,f#7] [f#6,f#7] ~@10 [f4,a4,c5,e5] [f4,c5,e5,e6,e7]@3 [g4,g#4,c5]@12 [d4,g4,g#4,c5] ~ [d6,d7]@2 [e4,g4,b4,d5,e6,e7]@9 [g5,b5,b6]@2 ~@2 [d#5,g5,c7]@2 ~ c#5, ~@7 [d#4,d5] ~@7 b5 ~@8 [b4,g#5,g#6]@2 ~@17 e7@5 [f4,a4,c5,e5]@11 ~@4 [d#4,f6,f7]@17 ~@16, ~@25 a4@2 ~@4 [g4,a4,b4,d5,f#5]@11 ~ [d#6,e6,d#7] ~ [f6,f7]@4 [g6,g7]@14 e7 ~@12 g#4@3 ~@13 [a4,c6] ~@3, ~@47 [g4,a#4,c#5,f#5]@2 ~@10 [d6,d7]@5 ~@11 [c6,c7]@5 ~@16]/6", // D#maj7 A7 Cm G Em7 Esus4 G# A …
BP: "[[c#6,c#7] [d6,d7]@2 [d5,c#6,c#7]@2 ~ [d5,f#5,c6,c7]@2 [c#5,f5,b5,b6]@3 ~ [c#5,f5,a#5,a#6]@3 [f4,c5,e5]@8 [e5,d#6,d#7] e6@16 [g#4,b4,e5,e6,g#6,b6,e7]@3 ~@2 [f4,g#4,e5,b5,e6,g#6,b6]@2 [e4,g4,b4,d5,c6,e6,a6,c7], ~@3 f#5 ~@19 [f4,a4,c5]@17 ~@8]/3", // C# D Dmaj7 D7 C#7 A#m Fmaj7 Emaj7 …
BQ: "~@3 [c4,c7] ~ d4 e7 [g4,g7] [d4,d7]@2 ~ [f4,f7] [a4,a7] ~ c8 ~", // C G D F A
BR: "[[e5,e8] ~@2 [f#5,f#8] g8@2 [a#5,a8,a#8] [c6,b8,c9] ~@5 [c3,e4,b4]@32 ~@3, ~@4 g5 ~@7 [g3,f#4,d5]@32 ~@4]/3", // E F# A#maj7 Cmaj7 Gmaj7
})).s("gm_rock_organ").gain(0.4)
// chords · rock organ · "Easytolove" · soft notes
const rock_organ_soft = note(`<
A ~@2 B ~ C D ~@2 E@2 F G H I J K L M@2 N O P ~ Q R@2 ~ S ~ T U V W X Y Z AA@2 AB@2 AC AD AE@2 AF AG AH AI ~@2 AJ@2 AK
AL AM AN AO AP ~ AQ@2 AR AS ~ AT AU AV AW AX AY AZ@2 BA BB BC BD BE@2 BF ~ BG BH BI BJ BK BL ~@2 BM ~ BN BO BP BQ BR@3
BS BT ~@3
>`.pickRestart({
A: "~ g4@4 ~@2 g4@6 ~@3, b4 ~@3", B: "f5@8 ~@3 g#4 ~@3 g4", C: "c4 d4@10 ~@4 c4", D: "d4@8 ~@3 g4 ~@4",
E: "[~@15 [b4,d5]@9 ~@4 g4 ~@2 f#5]/2", F: "~@15 a#4", G: "~ f4@15, [c5,e5]", H: "g4 ~@15",
I: "[a4,d5]@7 ~@5 [a4,d5] ~@3", J: "~@3 [g4,f#5] [g4,d5]@2 ~ f#4 ~@5 f#4 ~@2", K: "~@8 f#4 g4@2 ~ f4 ~@3",
L: "~@9 a4@2 a4 ~@4", M: "[~@7 c5 ~@3 [e5,g5]@3 ~ e5@2 ~@9 f4@2 ~@4, ~@7 c5@2 ~@7]/2", N: "[c4,e4]@8 g4 a4@7",
O: "c4 ~@15", P: "~@7 c4 ~@3 f5 ~@4", Q: "~@15 a#5", R: "[~@15 d5@9 b4@2 ~ g4 ~@4]/2", S: "~@15 f5",
T: "e5@11 c5 ~ c5@2 ~", U: "~@8 a5 c5 ~@3 b4 ~@2", V: "a4@8 d5 ~@7", W: "~@7 d5 ~ e5@2 a4 ~@3 a5, ~@2 d#5 ~",
X: "~@12 e6 ~@3", Y: "~@11 g4@4 ~", Z: "e5 ~@15",
AA: "[[g4,a#4]@2 ~@5 g4@2 ~@6 [f4,a4,e5]@4 c5 ~@3 [f4,a4,c5,e5] ~@7 [f4,e5]]/2", // Gm Fmaj7
AB: "[b5@2 ~@8 [f4,b4,e5]@2 b4@3 [e4,d5]@4 ~@4 [a4,b5] ~@3 [a4,d5] ~@4, ~@12 f4 ~@19]/2", // E E7 Asus2 D5
AC: "g4 ~@4 g6 ~@2 [g4,a4,d5] ~@7", AD: "~@8 [g4,g5] ~@7", AE: "[~@15 c5@2 ~@2 [c5,e5] ~ g6 ~@10]/2",
AF: "~ [f4,c5,e5] ~@2 c6 ~@10 g4", AG: "[e4,b4,d5] ~@6 [e4,b4,d5] ~@3 [e4,d5] ~@4",
AH: "d5@2 ~@8 f#4@2 ~@3 a4, g4 ~@15", AI: "~@8 [a4,c5,e5] ~@7", AJ: "[f5@3 ~@5 a#4 ~@6 f4@2 ~@15]/2",
AK: "~@13 f5 ~@2, ~@6 g4 ~", AL: "~@7 [a4,c5,e5] ~@8", AM: "~@8 [f4,b4]@5 ~@3, ~@7 d#5@5 ~@4",
AN: "[e4,b4,d5]@7 ~@8 f5", AO: "~@2 g5 ~@9 b6 ~@3", AP: "~@12 g4@3 ~",
AQ: "[~@8 a4 [f4,c5,e5]@2 ~ f4@7 ~@3 g5 [g#4,g5] ~@2 g#4 ~ d5@2 ~@2, ~@25 c5@2 ~@5]/2", AR: "~@8 [b4,e5]@3 g4 ~@4",
AS: "~@2 b4@2 d5 g4@2 ~@9, ~@2 g4 ~@13", AT: "~@10 [f7,g7] ~@5", AU: "~@14 e6 g4", AV: "~@15 e5",
AW: "~@8 d5 ~@3 c6@2 ~@2", AX: "~ f5 ~@2 d6@2 ~@2 f#5 ~@7, ~@4 d#5 ~@11", AY: "~@7 c#5 [c6,d6] ~@2 d5 ~@3 d5",
AZ: "[~@15 [b4,d5]@8 ~@9]/2", BA: "~@3 c5 a4 ~@2 a4 ~@3 g4 ~ a4@2 ~, ~@6 c5 ~", BB: "~@9 [e4,g4]@2 ~@5, ~@9 c4 ~@6",
BC: "~@7 c5 ~@8", BD: "~@8 a4@2 ~ f4 ~@3 c5, ~@7 f4@3 ~@6",
BE: "[~@3 a4 c5@2 ~@3 [a4,b4]@2 ~ f4 ~@5 d6 ~ b5 ~@11, ~@4 f4 ~@10 [a4,d5]@6 ~@11]/2", BF: "~@11 g#6 f6 ~@3",
BG: "~@7 c5 ~@4 b4 ~@2 a5", BH: "[e4,d5] ~@4 e6 ~@3 g5 ~@6", BI: "~@12 c5 ~@3",
BJ: "~@8 f4 [f4,a4,c5,a5]@2 ~ a4@2 ~@2, ~@8 e5@2 ~@2 f4 ~@3", BK: "~ [g4,a#4]@10 ~@5", BL: "~@9 f4@2 ~@5",
BM: "~@9 [g4,a4]@3 [g4,a4]@3 ~", BN: "~@14 g4 ~", BO: "~@2 d#7 ~@9 a4@3 ~", BP: "~@13 d4@3, ~@12 [g4,c5]@3 ~",
BQ: "~@4 [a4,d5] ~@3", BR: "[~ d5@2 g4@2 ~ g4 ~ g4@3 ~ g4@3 [a4,a5,a6]@9 e7@16 ~ f4@3 ~ b4@2 ~, [g4,f#5] ~@15]/3",
BS: "~@5 d7 e4 ~@7 c5 ~", BT: "~@6 g#8 b5 ~@8",
})).s("gm_rock_organ").gain(0.24)
// bass · acoustic bass
const bass = note(`<
A B C D E F G H I J K L G M N O P Q R S T U G V I W X Y Z AA AB AC G V AD AE T AF AG AH AI AJ AK L AL AM AN AO AP AQ R
S AR AS AT AU AV AW AX AY AF AZ BA BB G BC BD BE BF AF AG BG BH BI BJ BK BL BM BN BO AF BP BQ BR BS BT BU BV BW BX BY
BZ CA CB CC Y G CD CE CF@4
>`.pickRestart({
A: "c2@8 a2@7 d#2", B: "d2@8 g2@5 f2 ~ g2", C: "e2@7 a#1 a1@4 e2@4", D: "d#2@7 a#1 g#1@4 d#2@4", E: "d2 a2 d3 d#2",
F: "e2 a#1 a1 c#2", G: "d2 e2 f2 f#2", H: "g2@4 a2@4 a#2@4 b2@3 a#2", I: "c3@3 g2 c2@4 g2@4 f#2@4", J: "f2 a1 d2 c#2",
K: "c2 c3 f2 b2", L: "e2 b2 a#2 d#2", M: "g2@3 d2 b1@4 e2@4 d2@4", N: "c2@4 g1@4 f1@4 b1@3 a#1",
O: "e2@4 b2@4 d#2@4 a#2@3 f#2", P: "d2 a2 d3 g#2", Q: "g2 d2 g2 d#2", R: "e2 f#2 g2 a2", S: "a#2 f2 d#2 a#2",
T: "d2 e2 a1 e2", U: "g2 e2 a2 c#2", V: "g2 a2 a#2 b2", W: "f2@3 c2 a1@4 d2@4 c#2@4", X: "c2 a2 e3 d#3",
Y: "d3 a#2 a2 d#2", Z: "d2 e2 f2 b2", AA: "a#2 c3 f2 c3", AB: "a2@4 b2@4 e2@3 ~ b2@4", AC: "a2 e2 a1 d#2",
AD: "c3@3 g2 c2@4 a2@4 g#2@4, a#2 ~@15", AE: "g2 d#2 e2 a1", AF: "d2 e2 f2 g2", AG: "a2 b2 c3 c#3",
AH: "d3 a2 g2 c#2", AI: "c2@3 g2 f3@4 e3@4 c3@4", AJ: "g2 f#2 f2 c2", AK: "g2 c3 f2 b2", AL: "g2 a2 d2 g#1",
AM: "g1 a1 a#1 b1", AN: "c2 a2 f2 c3", AO: "e2@3 b2 g3@4 f#3@4 d#2@4", AP: "d2@3 ~ f3@4 e3@4 d3@4",
AQ: "a2 g#2 g2 d#2", AR: "a2 e2 d2 g#1", AS: "a1 b1 c2 c#2", AT: "d2@3 a1 e2@4 f2@4 f#2@4",
AU: "g2@3 d2 a2@4 a#2@4 b2@4", AV: "c3@3 a#2 a3@3 a#2 g3@4 f#3@4", AW: "f3 c3 g2 f2", AX: "e2 c2 a2 g#2",
AY: "g2 f2 e2 c#2", AZ: "g#2 a#2 c3 f2", BA: "e2 b2 e3 d#3", BB: "d3@4 a#2@4 a2@4 d#2@3 f#2",
BC: "g2 ~@2 d2 b1@4 e2@4 d2@4", BD: "c2 g1 c2 f1", BE: "e1@4 a#1@4 a1@4 d#2@3 c#2", BF: "d2@2 ~@2 d2@4 d2 ~@3 d2@4",
BG: "d3 g#2 g2 c#3", BH: "c3 g2 c3 g2", BI: "f2 c3 f2 c3", BJ: "e2 b2 e3 f3", BK: "g3 e3 d#3 g#2", BL: "a2 e2 d2 e2",
BM: "f2 f#2 g2 b2", BN: "c3@4 g2@3 f#2 f2@4 c2@4", BO: "e2 b1 a#1 f2", BP: "a2 d2 g2 b2", BQ: "e3 b2 e2 e3",
BR: "d#3 a#2 d#2 d#3", BS: "d3 e3 f3 d3", BT: "c#3 a#2 a2 g2", BU: "f2 e2 d2 c2", BV: "b1 d2 g2 f2",
BW: "e2 c2 g2 c3", BX: "f2 g2 a2 d3", BY: "c3 g2 d2 d#2", BZ: "d2 a#1 a1 d#2", CA: "d2@4 e2@4 f2@4 a2@3 ~",
CB: "a#2 f2 d2 a#2", CC: "b2 e2 e3 d#3", CD: "g2@4 d2@4 g1@4 c#2@3 c2",
CE: "~@3 c2 d2 e2 ~ g2 d2@3 ~ a2@2 ~ c3, ~@11 f2@2 ~@3", CF: "[e3@4 g2@3 c3 ~@4 c2@40 ~@12]/4",
})).s("gm_acoustic_bass").gain(0.48)
// drums · kick
const kick = s("bd").struct(`<
A B C A@2 D A@3 E A B A@3 B A@4 D A B A D C A B A C A B A B A B A B A B A B@3 A@2 B@2 A@3 B A@3 B A@2 C B A B@3 A@2 B
D A D A D A D A B A@3 B A@2 D B A@2 D B@2 A@2 B A B A B A B C F ~@3
>`.pickRestart({
A: "x ~@6 x ~@7 x", B: "x ~@6 x ~@8", C: "~@7 x ~@8", D: "x ~@2 x ~@3 x ~@3 x ~@3 x", E: "~@3 x ~@3 x ~@3 x ~@3 x",
F: "x ~@6 x ~@4 x ~@3",
})).gain(0.1)
// drums · snare
const snare = s("sd").struct(`<
~ A ~@3 A ~ B C ~ A B C ~ A B D E ~ B ~@2 A B ~@2 A B@2 ~ A B F A@2 F A@2 ~ F B A@2 F@2 ~ A F C ~@2 F C ~@2 F G ~@2 B
G A@2 B ~ A@2 H A ~ A B I A ~ F C A ~ F A ~@2 F A ~@2 F A@2 ~ B J F C B K B L M ~@3
>`.pickRestart({
A: "~@3 x ~@12", B: "~@15 x", C: "~@3 x!2 ~@11", D: "~@3 x ~@4 x ~@3 x ~@3", E: "x ~@3 x ~@3 x ~@2 x ~@3 x",
F: "~@3 x ~@11 x", G: "~@3 x", H: "~@7 x", I: "~@3 x!2 ~@10 x", J: "~@3 x ~@8 x ~@3", K: "~@12 x ~@2 x",
L: "~@3 x!2 ~@3 x ~@2 x!2 ~@2 x", M: "x ~@3 x ~@2 x ~ x ~ x!2 ~@3",
})).gain(0.2)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@8 A ~@3 A ~@35 B ~@3 B ~@19 A ~@3 A ~@21 C D ~@3>".pickRestart({
A: "~@12 x!2 ~@2", B: "~@3 x", C: "~@7 x ~@8", D: "~@3 x ~@12",
})).gain(0.1)
// drums · low tom
const low_tom = s("lt").struct("<~@48 A ~@3 A ~@41 A ~@3 A ~@4>".pickRestart({
A: "~@13 x ~@2",
})).gain(0.1)
// drums · hihat
const hihat = s("hh").struct("<[x!4]!98 [x!3 ~] [x ~@3 x ~@2 x ~@8] ~@3>").gain(0.3)
// drums · mid tom
const mid_tom = s("mt").struct(`<
~@7 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3
A ~@3 A ~@3 A ~ A ~ A ~ A ~@5
>`.pickRestart({
A: "~@11 x ~@4",
})).gain(0.2)
// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct(`<
~@8 A ~@3 A ~@15 B ~@3 B ~@7 B ~@3 B ~@11 C ~@3 C ~@11 A ~@3 A ~@15 D ~ E ~ D ~@6
>`.pickRestart({
A: "~@11 x ~@4", B: "~@3 x", C: "~@15 x", D: "~@11 x ~@3 x", E: "~@11 x!2 ~@3",
})).gain(0.1)
// drums · crash
const crash = s("cr").struct(`<
~@4 A ~@3 A ~@3 A ~@4 B ~@10 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@6 B C ~@2 B@2 ~@2 B ~@16 A B ~ B ~ B
~ D ~@3
>`.pickRestart({
A: "x", B: "~@15 x", C: "~@3 x ~@12", D: "~@7 x ~@5 x ~@2",
})).gain(0.2)
// drums · ride
const ride = s("rd").struct(`<
A@2 B C D A@4 E A@3 F A@3 C G A@6 B A@2 D E A@2 D H A C D A H A@2 H@2 A@2 H@2 A@3 H A H A H A H A B A F A@3 H A@2 I J
K A K C L A@2 D A@5 K A@3 K A@6 C G C D C M N ~@3
>`.pickRestart({
// … 7 more lines
More by Cole Porter
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.