0:00/0:00
// I've Got the Music in Me — Kiki Dee
// 122 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 119 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(122/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 · electric bass finger · "Bass"
const bass = note(`<
A B@2 C B@7 C D B E C F B G H I J K L M N O P Q@4 B R B S T U B V W B T W@2 X C Y J Z AA M N K AB M AC AD AE@2 AF AG
AH AI AJ AK AH B AJ AG AH AL J Z AM AN N Z L AO AP AQ L M N AQ L AR AS@4 AT AU C AV N Z AW M AX Z AW M AP Z AW M N AY
AZ BA BB ~ BC BD@3 BE
>`.pickRestart({
A: "~@10 e1 ~ f1 e1 f#1@2", B: "g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~", C: "g1@3 ~ g1@3 ~ g1@3 ~ g1@4",
D: "g1@4 g1@3 ~ g1@2 e1 ~ f1 e1 f#1@2", E: "g1@4 g1@4 g1@3 ~ g1 ~ g1@2", F: "g1@4 g1@3 ~ g1 ~ g1 ~ g1@4",
G: "g1 ~ g1 ~ g1@3 ~ g1 ~ g1 ~ g1@3 ~", H: "g1@4 g1@3 ~ g1 ~ g1 ~ g1@3 ~",
I: "g1@3 ~ g1 ~ g1 ~ g1@2 e1 ~ f1 e1 f#1@2", J: "g1@2 ~@2 g1@3 f1 g1 ~ g1@3 ~ g1 a#1",
K: "c2@3 ~ c2@3 a#1 c2 ~ c2@4 a#1 c2", L: "a#1@3 ~ a#1@3 g1 a#1 ~ a#1@3 ~ g1 a#1",
M: "g1@3 ~ g1@3 f1 g1 ~ g1@4 d1 f1", N: "g1@3 ~ g1@3 f1 g1 ~ g1@3 ~ g1 a#1",
O: "c2@3 ~ c2@2 ~ a#1 c2 ~ c2@3 ~ a#1 c2", P: "a#1@3 ~ a#1@2 ~ a#1!2 ~ c2@2 a#1@4",
Q: "[g1@11 ~ g1 ~ g1@13 ~ g1 ~ g1@9 ~ g1 ~ g1@2 ~@2 g1@11 ~ e1 ~ f1 e1 f#1@2]/4", R: "g1@3 ~ g1@3 ~ g1@3 ~ g1 ~ g1 ~",
S: "g1@3 ~ g1@3 ~ g1@2 g1@2 g1 ~ g1@2", T: "g1@3 ~ g1@4 g1@3 ~ g1@3 ~", U: "g1@3 ~ g1@3 ~ g1@3 ~ g1 ~ g1@2",
V: "g1@4 g1@3 ~ g1 ~ e1 ~ f1 e1 f#1@2", W: "g1@3 ~ g1@3 ~ g1 ~ g1 ~ g1@3 ~", X: "g1@3 ~ g1@4 g1 ~ g1@2 g1@3 ~",
Y: "g1@2 g1 ~ g1 ~ g1 ~ g1@2 e1 ~ f1 e1 f#1 ~", Z: "c2@3 ~ c2@3 a#1 c2 ~ c2@3 ~ a#1 c2",
AA: "a#1@3 ~ a#1@2 ~ a#1!2 ~ a#1@3 ~ c2 a#1", AB: "a#1@3 ~ a#1@3 g1 a#1 ~ a#1@4 c2 a#1", AC: "g1@3 ~@13",
AD: "c2@3 ~@13", AE: "[a#1@3 ~@11 d1@4 d#1@4 e1@4 f1@3 ~ f#1@2]/2", AF: "g1@2 ~@2 g1@2 ~@2 g1@3 ~ g1@2 g1 a#1",
AG: "c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~", AH: "a#1@3 ~ a#1@3 ~ a#1@3 ~ a#1@4", AI: "d1@3 ~ e1@3 ~ f1@3 ~ f#1@3 ~",
AJ: "g1@3 ~ g1@3 ~ g1@3 ~ g1@2 g1 a#1", AK: "c2@3 ~ c2@3 ~ c2@3 ~ c2@4", AL: "~@2 d1@3 ~ e1@3 ~ f1@4 f#1@2",
AM: "a#1@2 ~@2 a#1@3 g1 a#1 ~ a#1@3 ~ g1 a#1", AN: "g1@3 ~ g1@3 f1 g1 ~ g1@3 ~ d1 f1",
AO: "g1@3 ~ g1@2 ~ f1 g1 ~ g1@3 ~ d1 f1", AP: "g1@3 ~ g1@3 f1 g1 ~ g1@4 g1 a#1",
AQ: "c2@2 ~@2 c2@3 a#1 c2 ~ c2@3 ~ a#1 c2", AR: "g1@2 ~@2 g1@3 f1 g1 ~ g1@4 d1 f1",
AS: "[g1@13 ~ g1@13 ~ g1 ~ g1@11 ~ g1@2 ~@2 g1@10 ~@2 f1@2 ~ f#1@2 ~]/4", AT: "g1@4 g1@4 g1@3 ~ g1@4",
AU: "g1@4 g1@3 ~ g1@3 ~ g1 ~ g1@2", AV: "g1 ~ g1@2 g1 ~ g1 ~ g1@2 e1 ~ f1 e1 f#1@2",
AW: "a#1@3 ~ a#1@3 g1 a#1 ~ a#1@4 g1 a#1", AX: "g1@3 ~ g1@3 f1 g1@2 g1@3 ~ g1 a#1",
AY: "c2@2 ~@2 c2@3 a#1 c2 ~ c2@4 a#1 c2", AZ: "a#1@3 ~@13", BA: "a1 ~@3", BB: "g#1@3 ~@13", BC: "g1!16",
BD: "[g1!15 g1@3 g1 g1@20 ~ g1@8]/3", BE: "~ g1@2 ~@13",
})).s("gm_electric_bass_finger").gain(0.48)
// chords · piano · "Keyboard 1"
const piano = note(`<
~@8 A@2 B C D E@4 F@4 G H I J@2 K L M@4 N@4 O@4 P@4 Q@4 R S T U@2 V W X Y Z AA AB AC AD AE AF AG AH AI AJ AG AK AL AM
AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD@4 BE@4 AG BF BG BH@2 BI BJ BK BL BM BN BO@2 BP BQ BR BS ~ BT@4 BU
>`.pickRestart({
A: "[~@9 e1 e2 f1 f2 f#1 f#2 ~ g2@8 [g1,g2]@4 [g1,g2]@3 ~, ~@15 g1@8 ~@9]/2", // G
B: "g1@3 ~ g1@3 ~ [g1,g2]@3 d1 g1@2 g2@2, g2@7 ~@9", C: "g1@3 ~ g2@3 ~ g2@3 ~ [g1,g2]@3 ~, ~@4 g1@7 ~@5",
D: "[g1,g2]@3 ~ [g1,g2]@3 ~ [g1,g2] ~ [g1,g2] ~ [g1,g2] ~ [g1,g2] ~", // G
E: "[[g1,g2,g3,b3,d4]@13 ~ [g1,g2,g3,c4,e4]@15 ~ [g3,a#3,d4,f4]@9 ~ [g3,a#3,d4,f4] ~@3 g1 ~ [g1,g2,g3,b3,d4]@11 ~ [g1,g2]@4 g1 ~, ~@15 [g1,g2]@7 ~@10, ~@21 [a3,c#4,e4]@2 ~@6 [g3,c4,e4]@3]/4", // G C Gm7 G A C
F: "[[g1,g2,g3,b3,d4]@13 ~ [g1,g2,g3,c4,e4]@15 ~ [g2,g3,a#3,d4,f4]@8 ~@2 [g3,a#3,d4,f4] ~ [a3,c#4,e4]@4 [g1,g3,b3,d4]@10 g2 ~ [a#3,c4,e4]@5 ~, ~@30 g1@11 ~@23, ~@19 g2@2 ~@2 g2@4 ~@5]/4", // G C Gm7 A G C7
G: "[g2,g3,b3,d4]@5 ~@2 g2, g1@7 ~, ~@5 [g3,b3,d4]@3", H: "~@4 c2@6 [g3,c4,e4]@4 c2 ~, [g3,c4,e4]@9 ~@7",
I: "[g3,a#3,d4,f4]@5 ~ [g3,a#3,d4,f4]@4 a#2@2 [g3,a#3,d4,f4]@2 a#1@2, a#1@5 ~@3", // Gm7
J: "[[g1,g3,b3,d4]@6 [g3,b3,d4] ~ [d4,f4]@2 d4@2 e4@2 g3 ~ g2@6 [b3,d4]@4 g2@2 [g3,b3,d4]@2 g2 ~, ~@6 g2@2 g3@6 [g1,b3,d4]@5 ~@3 g1@8 ~@2, ~@8 c#4 ~ g1 ~ c4 ~@3 g3@3 ~@3 g3 ~@3 g3 ~@5]/2", // G Dm Bm G
K: "c2@3 ~@3 [c4,e4]@4 c3@2 [g3,c4,e4]@2 [c2,g2] ~, [g3,c4,e4]@3 g3 ~@4, ~@3 c2@10 ~@3", // C C5 C
L: "[g3,a#3,d4,f4]@4 ~@2 [g3,a#3,d4,f4]@4 a#1@2 [g3,a#3,d4,f4]@2 a#1 ~, a#1@3 ~ a#2@5 ~@7", // Gm7
M: "[[g1,g3,b3,d4]@10 g2 ~ [g3,b3,d4]@2 [g1,g2,g3,c4,e4]@12 g2@2 [g3,e4] ~ [g1,g3,a#3,d4,f4]@8 ~@2 [g3,a#3,d4,f4] ~ [e3,a3,c#4]@2 g2 ~ [g1,d3,g3,b3]@10 g2@2 [g3,c4,e4]@6, ~@14 c4 ~@4 g2@2 ~@11]/4", // G C Gm7 A G C
N: "[[g1,g2,g3,b3,d4]@13 ~ [g1,g2,g3,c4,e4]@15 ~ [g3,a#3,d4,f4]@8 ~@2 [g3,a#3,d4,f4] ~ [a3,c#4,e4]@4 [g1,g2,g3,b3,d4]@10 g2 ~ [g3,c4,e4]@6, ~@15 g1@6 ~@11, ~@30 g2@7 ~ g2@5 ~@21]/4", // G C Gm7 A G C
O: "[[g3,b3,d4]@14 [g3,c4,e4]@14 g1 ~ [g2,g3,a#3,d4,f4]@8 g1@2 [g3,a#3,d4,f4] ~ [a3,c#4,e4]@4 [g1,g3,b3,d4]@10 g2 ~ [g3,c4,e4]@6, [g1,g2]@12 ~@2 [g1,g2]@13 ~@3 g1@7 ~@9 g2@8 ~@10]/4", // G C Gm7 A G C G
P: "[[g1,g3,b3,d4]@12 g2 ~@7 g2@9 ~ [g1,g3,a#3,d4,f4]@8 g2@2 [g3,a#3,d4,f4] ~ [a3,c#4,e4]@4 [g1,g2,g3,b3,d4]@10 g2 ~ [g3,c4,e4]@6, ~@14 [g1,g3,c4,e4]@15 ~ g2@7 ~@27]/4", // G Gm7 A G C
Q: "[[g1,g2]@10 g1@4 g2@12 g1@2 g2@2 [g1,g2,g3,a#3,d4,f4]@8 g2 ~ [g3,a#3,d4,f4] ~ [a3,c#4,e4]@3 ~ [g1,g2]@8 g1@2 g2 ~ [g3,a#3,c4,e4]@6, [g3,b3,d4]@13 ~ [g3,c4,e4]@15 ~@17 [g3,b3,d4]@10 ~@8]/4", // G Gm7 A G C7 G C G
R: "[g1,g2,g3,b3,d4]@5 [g2,g3,b3,d4]@2 g1", S: "[c2,g3,c4,e4]@6 c3@4 ~@2 c2@3 ~, ~@6 [g3,c4,e4]@9 ~",
T: "[a#1,a#3,d4,f4]@6 [a#3,d4,f4]@4 a#1 ~@3 a#1@2, g3@11 ~ [g3,a#3,d4,f4]@4, ~@6 a#2@3 ~@7", // A# Gm7
U: "[[b3,d4]@4 ~@2 [d4,g4]@4 [c#4,g4] ~ f4@2 g2@2 b3@6 [g2,b3]@4 g2@2 ~@2 g2 ~, g3@13 ~ g3@8 [g3,d4]@9 ~, g1@3 ~ g2@5 ~ g1@2 ~@4 g1@14 ~@2, ~@6 c#4 ~@3 d4@12 ~@6 b3@4]/2", // Bm G5 C#dim G G5
V: "c2@3 ~ c2@2 [c3,g3,e4]@4 ~@2 [g3,c4,e4]@2 c3 ~, [g3,c4,e4]@6 ~@4 c2@5 ~", // C
W: "[g3,a#3,d4,f4]@6 ~@4 a#1 ~ a#1@4, [a#1,a#2]@9 ~@7, ~@6 [g3,a#3,d4,f4]@9 ~", // Gm7 A# Gm7
X: "[g3,b3,d4]@10 ~@2 [g3,d4]@2 g2 ~, [g1,g2]@9 ~ g1@4 ~@2", Y: "[g1,g2,g3,b3,d4] ~@7", Z: "[c2,c3,g3,c4,e4]@3 ~@13",
AA: "[a#1,a#2,f3,a#3,d4]@3 ~@11 [d1,d2,d3,d4]@2", // A# D
AB: "~@2 [d#1,d#2,d#3,d#4]@3 ~ [e1,e2,e3,e4]@3 ~ [f1,f2,f3,f4]@3 ~ [f#1,f#3,f#4] ~, ~@7 f#2", // D# E F F#
AC: "[g2,g3,g4]@2 [g2,g3,b3,d4]@3 [g2,g3,b3,d4]@3, g1", AD: "[g3,c4,e4]@10 [c3,g3]@4 c2 ~, c2@13 ~@3, ~@5 [c4,e4]@3",
AE: "~@6 a#2@4 a#1@2 [f3,a#3,d4]@2 a#1 ~, [f3,a#3,d4]@11 ~@5, a#1@9 ~@7", // A#
AF: "[d1,d4]@3 ~ [e1,c#4]@3 ~ [f1,c4]@4 [f#1,a#3]@4", AG: "[g1,g2,g3,b3,d4]@15 ~", AH: "[c2,g3,c4,e4]@15 ~",
AI: "[a#1,g3,a#3,d4,f4]@14 a#1 ~", AJ: "~@6 g2@7 ~ g1 ~, [g1,g3,b3,d4]@7 ~", AK: "[c2,g3,c4,e4]@15 a#1",
AL: "[g3,a#3,d4,f4], [a#1,a#2]@7 ~", AM: "~@2 [d1,d2,d4]@3 ~ [e1,e2,e4]@3 ~ [f1,f2,f4]@3 ~ [f#1,f#2,f#4]@2",
AN: "g2@3 ~ [g2,b3,d4]@5 ~ [g2,b3,d4,g4]@5 ~, g1@15 ~, g4@9 ~@7", AO: "[g3,c4,e4,g4]@6 [g3,c4,e4,g4]@9 ~, c2@13 ~@3",
AP: "[a#1,f3,a#3,d4,f4]@6 ~@6 a#1@3 ~, ~@6 [a#2,a#3,d4,f4]@9 ~", AQ: "[g1,g2,g3,b3,d4]@9 ~ [g1,g3,b3,d4]@4 g2 ~",
AR: "[g2,g3,b3,d4]@9 ~ [g2,g3,b3,d4]@5 ~, g1@15 ~", AS: "[g3,c4,e4]@6 [g3,c4,e4]@8 c2 ~, c2@3 ~, ~@3 c3@3 ~@2",
AT: "[a#1,g3,a#3,d4,f4]@5 ~ [a#1,a#2,g3,a#3,d4,f4]@10", // Gm7
AU: "[g1,g2,g3,b3,d4]@3 [g3,b3,d4]@2 g2 ~ g2, ~@3 g1@4 ~, ~@3 [g3,b3,d4,g4]", // G
AV: "c#5 ~@3 g3@5 [g4,d5,g5] ~ g4 ~@2 g3 ~, g2@7 ~, [g4,d5,g5]@2 ~ [g4,d5,g5]", // G5
AW: "~ [g4,c5,e5,g5] ~ g4 ~@2 c3 ~@2 [g4,c5,e5,g5] ~ e4 c3 ~ c3 ~, c3 [g4,c5,e5,g5] ~ [e4,g4,c5,e5]", // C
AX: "~@4 a#3@5 f4 [f4,g4,a#4,d5]@2 a#2 f4 a#2 d4, [g4,a#4,d5]@9 ~@4 [g4,a#4,d5]@2 ~, [a#2,f4]@7 ~@9", // Gm7 Gm A#5
AY: "[g2,d4,g4,b4,d5]@2 g3 [d4,g4,b4,d5]@2 ~ [c#5,d5,f5]@3 [c5,e5]@3 [g4,b4,d5]@2 [g2,g4,b4,d5] ~, ~@3 [g2,g4]@3 ~@2", // G C# C G
AZ: "~ [g4,d5,g5] ~@2 [g4,d5,f5]@2 ~ [g4,b4,d5] ~ [g4,b4,d5,f5] ~ g4 ~@2 g3 ~, g2@3 ~ g3 ~ g2@8 ~@2, ~@3 [g4,b4,d5,f5]", // G5 G7 G G7
BA: "~ [g4,c5,e5,g5] ~ [c3,g4] [c5,e5,g5]@2 [c3,g4] ~@2 [d4,e4,a#4,d5] ~ e4 ~@2 c3 ~, c3@3 ~ g4 ~@7 [e4,a#4,d5]@4", // C C5 C C5 Em7b5
BB: "~ [f4,g4,a#4,d5] ~ [a#3,f4] ~@5 [f4,g4,a#4,d5] ~ f4 ~@2 a#2 ~, a#2@3 ~ [f4,g4,a#4,d5]@4 ~@4 [f4,g4,a#4,d5]@4, ~@3 a#2@3 ~@2", // Gm7 A#5 Gm7
BC: "~ [d4,g4,b4] ~ d4 [d4,g4,b4]@2 [g3,d4,g4,b4,d5]@3 d4 ~ g3 [d4,g4,b4]@3 ~, g2@5 ~ g2@5 ~@5", // G
BD: "[[g3,b3,d4]@10 ~@2 [g3,b3,d4]@2 [g2,g3,c4,e4]@12 g1@2 [g3,c4,e4]@2 [g2,g3,a#3,d4,f4]@8 g1@2 [g2,g3,a#3,d4,f4] ~ [g1,g2,a3,c#4,e4]@3 ~ [g1,g2,g3,b3,d4]@11 ~ [f1,f2,f3,f4]@3 [f#1,f#2,f#3,f#4]@2 ~, g1@13 ~ g1@11 ~@5 g1@7 ~@27, g2@9 ~ g2@4 ~@50]/4", // G C Gm7 A7 G F F#
BE: "[g2@9 ~ g2@2 [g3,b3,d4]@2 [g3,c4,e4]@12 g1@2 [g2,c4,e4] ~ [g2,g3,a#3,d4,f4]@8 g1@2 [g3,a#3,d4,f4] ~ [g1,g2,a3,c#4,e4]@3 ~ [g3,b3,d4]@4 g2@2 ~@2 g2 ~ g2 ~ [g3,a#3,c4,e4]@4 g2 ~, [g1,g3,b3,d4]@12 ~@2 [g1,g2]@11 ~@3 g3@2 g1@7 ~@9 g1@8 ~@4 g2@3 ~@3, ~@46 g2@3 ~@3 [g3,b3,d4]@5 ~@7]/4", // G C Gm7 A7 G C7 G
BF: "[c2,g3,c4,e4]@9 ~ [g3,c4,e4]@4 c2 ~, ~@10 c2@3 ~@3", // C
BG: "[a#1,g3,a#3,d4,f4]@9 ~@3 a#1@3 ~, ~@5 [g3,a#3,d4,f4]@3", // Gm7
BH: "[[g1,g3,b3,d4]@10 [g2,c4,e4]@4 ~@6 g2@5 ~ [g2,g3,b3,d4]@5 ~, g2@4 ~ g3@8 ~@3, ~@7 g1@8 ~, ~@7 [b3,d4]@6 ~@3]/2", // G C G Bm
BI: "[c2,g3,c4,e4]@9 ~ [c2,c3]@4 c2 ~, ~@5 [g3,c4,e4]@3", // C
BJ: "[a#1,a#2,d4,f4]@9 ~@3 a#1 ~ a#1@2, [g3,a#3]@7 ~@3 [g3,a#3,d4,f4]@6", // A# Gm Gm7
BK: "[g3,b3,d4]@6 [g3,b3,d4]@6 [g3,b3,d4]@3 ~, g1@7 ~, ~@3 g2@4 ~", // G
BL: "c#5 ~@8 [g4,d5,g5] ~ g4 ~@2 [g2,g3] ~, g2@3 ~, [g4,d5,g5]@2 ~ [g4,d5,g5], ~ g3@2 ~", // G5 G G5
BM: "~ [g4,c5,e5,g5] ~ g4 [g4,c5,e5,g5]@4 ~ [g4,c5,e5,g5] ~ g4 ~@2 c3 ~, c3 ~@2 [g4,c5,e5,g5]", // C
BN: "~ [g4,a#4,d5,f5] ~ [a#3,g4] [g4,a#4,d5,f5] ~ [a#3,g4,a#4,d5,f5] ~@2 [g4,a#4,d5,f5] ~ g4 ~@2 a#2 ~, a#2@3 ~@9 [g4,a#4,d5,f5]@4", // Gm7 D# Gm7
BO: "[~ [f4,b4,d5] ~ [g3,f4] [f4,b4,d5]@2 [c#3,f3] [g4,c5,e5]@2 [a4,c#5,d5,f5]@2 g2 [c5,e5]@2 [g2,g3] ~ [g2,g3]@4 [g4,d5,g5]@2 [g2,a2,g3] [g4,d5,g5] ~ [g4,d5,g5] ~ g4 c#5 ~ [g2,g3] ~, g2@3 ~@3 [g2,g3]@3 g3 ~@2 g4 ~ [f4,b4,d5]@4 ~@2 [a4,c#5] ~@7 [g4,d5,g5]@4]/2", // Bdim G7 Bdim C# C Dm C G …
BP: "~ [g4,c5,e5,g5] ~ g4 [c5,e5,g5] ~ c3 [e4,g4,a4,c5,e5] ~ [e4,g4,c5,e5] ~ e4 [e4,g4,c5,e5]@2 c3 ~, c3@2 g4 ~@5", // C Am7 C
BQ: "[a#2,a#3,f4,g4,a#4,d5]@3 ~@13", BR: "[a2,a3,e4,a4,c#5,e5] ~@3", BS: "[g#2,g#3,d#4,g#4,c5,d#5] ~@3",
BT: "[[g2,f4]@8 f4 [b4,d5] g4 f4 [b4,d5] ~@4 [g2,g4]@2 f5 ~ [g4,b4] f5 ~@3 g4 f5 ~@3 g2@2 ~ f4@2 f4 f4@3 f4@2 ~@3 f4@12 [g2,f4,g4,b4,d5]@7, [g3,g4,b4,d5]@9 f4@2 g2@2 [g3,b4,d5]@2 [b4,d5]@5 [d5,f5]@2 [b4,d5]@7 b4@4 g2 g3@8 [g2,f4] g3@21, ~@8 g2@2 [g3,b4,d5]@2 g4@4 g3@3 [g3,g4]@2 g3@3 g4 g2@3 [g2,d5,f5] g4 f5@32 ~@2, ~@6 f4 f4@8 d5@13 ~@4, ~@14 g2@3 ~@3 g2@2 g4 f5@4 [g3,g4]@2 g3@2 g4@26 ~@7]/4", // G7 Bm G G7 G Bm Dm Bm …
BU: "~ [g2,g3,f4,g4,b4,d5]@2 ~@13", // G7
})).s("gm_piano").gain(0.42).pan(0.3)
// chords · epiano2 · "Keyboard 2"
const epiano2 = note(`<
~@12 A B@4 C@4 D E F D@2 G H I@4 J ~@2 K@2 ~@2 L@2 ~@6 M N O P Q@2 O R S T U V W X Y Z AA AB O AC Q@2 O AC AD AE Y P
Q@2 O R Q@2 O R Q AF O P X AG@4 AH@4 X O P Q@2 O R Q X O P Q@2 O AI AJ AK ~ AL@5
>`.pickRestart({
A: "~@9 e2 e3 f2 f3 f#2 f#3 g2",
B: "[[g3,b3,d4]@14 [g3,c4,e4]@15 ~ [g3,a#3,d4,f4]@9 ~ [a#3,d4,f4] ~ [a3,c#4,e4]@3 ~ [g3,b3,d4]@10 ~@2 [g3,c4,e4]@6]/4", // G C Gm7 A# A G C
C: "[[g3,b3,d4]@12 ~@2 [g3,c4,e4]@13 ~@3 [g3,a#3,d4,f4]@8 ~@2 [g3,a#3,d4,f4] ~ [a3,c#4,e4]@2 ~@2 [g3,b3,d4]@9 ~@3 [a#3,c4,e4]@5 ~]/4", // G C Gm7 A G C7
D: "[g3,b3,d4]@15 ~", E: "[g3,c4,e4]@15 ~", F: "[g3,a#3,d4,f4]@15 ~", G: "[g3,c4,e4]@13 ~@3", H: "[g3,a#3,d4]@15 ~",
I: "[[g3,b3,d4]@11 ~ [g3,b3,d4] ~ [g3,c4,e4]@13 ~ [g3,c4,e4] ~ [g3,a#3,d4,f4]@9 ~ [g3,a#3,d4] ~ [e3,a3,c#4]@3 ~ [d3,g3,b3]@10 ~@2 [g3,c4,e4]@6]/4", // G C Gm7 Gm A G C
J: "[g3,b3,d4]@13 ~@3", K: "[~@8 [g4,d5,f5] ~ [g4,c5,e5]@3 ~ [g4,b4,d5]@15 ~@3]/2",
L: "[~@8 [g4,d5,f5] ~ [g4,c5,e5]@2 ~@2 [g4,b4,d5]@14 ~@4]/2", M: "~@10 [a#4,c5,e5]@3 ~ [a#4,c5]@2", N: "[b4,d5]@3 ~",
O: "[c3,g3,c4]", P: "[a#2,a#3], g3@7 ~", Q: "[g2,d3,g3]@15 ~", R: "[a#2,g3,a#3]", S: "[g2,d3,g3]@7 ~",
T: "[g2,d3,g3]@3 ~@13", U: "[c3,g3,c4]@3 ~@13", V: "[a#2,g3,a#3] ~@6 [d2,d3]",
W: "~@2 [d#2,d#3]@4 [e2,e3]@4 [f2,f3]@3 ~ [f#2,f#3]@2", X: "[g2,d3,g3]", Y: "[c3,g3,c4]@15 ~",
Z: "[g3,a#3]@15 ~, a#2@13 ~@3", AA: "[d2,d4]@3 ~ [e2,c#4]@3 ~ [f2,c4]@3 ~ [f#2,a#3]@3 ~", AB: "[g2,g3]",
AC: "[a#2,g3,a#3]@15 ~", AD: "~@2 [d2,d3]@3 ~ [e2,e3]@3 ~ [f2,f3]@4 [f#2,f#3] ~", AE: "[g2,g3,d4]@15 ~",
AF: "[g2,d3], g3@7 ~", // G5
AG: "[[g3,b3,d4]@10 ~@2 [g3,b3,d4] ~ [g3,c4,e4]@12 ~@2 [g3,c4,e4] ~ [g3,a#3,d4,f4]@9 ~ [g3,a#3,d4,f4] ~ [a3,c#4,e4]@3 ~ [g3,b3,d4]@10 ~@2 [f3,a3,c4]@2 ~ [f#3,a#3,c#4]@2 ~]/4", // G C Gm7 A G F F#
AH: "[[g3,b3,d4]@11 ~ [g3,b3,d4] ~ [g3,c4,e4]@12 ~@2 [g3,c4,e4] ~ [g3,a#3,d4,f4]@8 ~@2 [g3,a#3,d4,f4] ~ [a3,c#4,e4]@2 ~@2 [g3,b3,d4]@6 [g3,b3,d4]@5 ~ [a#3,c4,e4]@6]/4", // G C Gm7 A G C7
AI: "[a#2,g3,a#3]@3 ~@13", AJ: "[a2,e3,a3]@3 ~@13", AK: "[g#2,d#3,g#3]@3 ~@13", AL: "[[g2,d3,f3]@33 ~@7]/5",
})).s("gm_epiano2").gain(0.24).pan(0.7)
// chords · rock organ · "Keyboard 3"
const rock_organ = note(`<
~@21 A@2 B@4 C@6 ~@7 D@4 E@4 F@2 G@3 H I J K L M@2 N ~@10 O P@4 J H Q@2 A@2 R@3 S T J ~@8 J U V@2 W@2 X@2 J H T Y@2 H
Z AA AB ~ AC@4 AD
>`.pickRestart({
A: "[[g5,d6] [g5,c6], g6]/2", B: "[~@16 g6@16 g5@15 ~ [g5,c6]@16, d6@3 ~, g5 g6]/4",
C: "[g5@16 g6@65 ~@15, d6@27 ~@5]/6", D: "[d6@7 c6@8 ~@8 g6@9, [g5,g6]@15 [g5,d6]@17]/4",
E: "[d6@7 c6@8 d6@8 [d6,g6]@9, [g5,g6]@15 g5@17]/4", F: "[d6 c6, [g5,g6]]/2",
G: "[g5@16 g6@15 ~ [d6,g6]@16, d6@2 ~, ~ g5@2]/3", H: "[g5,c6,g6]", I: "[g5,d6]", J: "[g5,d6,g6]",
K: "[g5,d6,g6]@3 ~@13", L: "[g5,c6,g6]@3 ~@13", M: "[[g5,d6]@3 ~@11 d5@4 d#5@4 e5@4 f5@3 ~ f#5@2]/2", N: "g5@5 ~@11",
O: "~@2 d5@3 ~ e5@4 f5@3 ~ f#5@2", P: "[d6@16 c6@15 ~ d6@15 ~ [d6,g6]@15 ~, g6@47 ~@17, g5@31 ~ g5@31 ~]/4",
Q: "[d6 [d6,g6], g5]/2", R: "[d6@15 ~ [d6,g6]@15 ~ [d6,g6]@16, g5@47 ~]/3", S: "[c6,g6], g5@7 ~", T: "[g5,d6]@15 ~",
U: "[g5,c6,g6]@15 ~", V: "[g5@15 ~ [g5,g6]@15 ~, d6]/2", W: "[d6@16 c6@15 ~, [g5,g6]]/2",
X: "[g5@15 ~ [g5,g6]@16, d6@31 ~]/2", Y: "[[d6,g6] [d6,g6], g5]/2", Z: "d6@2 g5 ~@13, g5 ~@15", AA: "[a5,c#6] ~@3",
AB: "[d#5,g#5,c6] ~@3", AC: "[~ g6, [g5,d6], f6 ~, ~@7 b5@25]/4", AD: "~ [g5,b5,d6,g6]@2 ~@13",
})).s("gm_rock_organ").gain(0.24)
// chords · overdriven guitar · "Guitar 1"
const overdriven_guitar = note(`<
~@21 A B C A@2 B C D@2 ~@18 A B C E@2 B F A ~@4 A B C G H I J@2 K L M ~ A B C N A B C N A B C N A B C O@2 ~@7 A B C N
A B C N A B C N A B P Q R ~ S@4 T
>`.pickRestart({
A: "[g2,d3]", B: "[c3,g3]", C: "[a#2,f3]", D: "[[g2,d3]@29 ~@3]/2", E: "[g2,d3]@15 ~", F: "[a#2,f3]@15 ~",
G: "[d3,d4]@3 ~ [e3,c#4]@2 ~@2 [f3,c4]@3 ~ [f#3,a#3]@2 d2 f2", // D C#m F5 F#
H: "[g2,d3]@3 ~ [g2,d3]@3 ~ [g2,d3]@3 ~ [g2,d3] ~ g2 a#2", I: "[c3,g3]@2 ~@2 [c3,g3]@3 ~ [c3,g3]@2 ~@2 [c3,g3]@3 ~",
J: "[[a#2,f3]@3 ~ [a#2,f3]@3 ~ [a#2,f3]@2 a#2@2 a2@2 g2@5 ~ [g2,d3]@3 ~ [g2,d3]@3 ~ [g2,d3]@2 d2 f2]/2", // A#5 G5
K: "[g2,d3]@3 ~ [g2,d3]@3 ~ [g2,d3]@3 ~ [g2,d3]@2 g2 a#2", L: "[c3,g3]@2 ~@2 [c3,g3]@3 ~ [c3,g3]@3 ~ [c3,g3]@3 ~",
M: "[a#2,f3]@3 ~ [a#2,f3]@3 ~ [a#2,f3]@3 ~ [a#2,f3]@3 ~", N: "[g2,d3]@14 d2 f2", O: "[[g2,d3]@31 ~]/2",
P: "[a#2,f3]@3 ~@13", Q: "[a2,e3]@3 ~@13", R: "[g#2,d#3]@3 ~@13", S: "[[g2,d3]@63 ~]/4", T: "~ [g2,d3]@2 ~@13",
})).s("gm_overdriven_guitar").gain(0.36).pan(0.4)
// chords · electric guitar clean · "Guitar 2"
const electric_guitar_clean = note(`<
~@12 A@7 B@2 ~@10 C@5 D@4 E@2 F G H F E@2 ~@12 I J K ~ L M N O P Q R ~@18 S@3 T@4 ~@23
>`.pickRestart({
A: "[~@16 g4@14 [c4,e4]@15 ~ [d4,f4]@9 ~ [d4,f4] ~ [c#4,e4]@4 [b3,d4]@15 ~@3 g4@13 ~ [c4,e4]@15 ~ [d4,f4]@2, ~@15 [b3,d4]@14 ~@50 [b3,d4]@14 ~@19]/7", // C Dm C#m Bm C Dm Bm
B: "[~@8 [d4,f4] ~ [c#4,e4]@3 ~ [b3,d4]@11 ~ [a#3,e4]@4 ~@2]/2", // Dm C#m Bm A#dim
C: "[~@16 [b3,d4]@10 ~@4 [g3,c4,e4]@11 ~@5 [f3,a#3,d4]@9 ~ [f3,a#3,d4] ~ [e3,a3,c#4]@3 ~ [d3,g3,b3]@11 ~@6 g3, ~@3 g3@2 ~@11]/5", // Bm C A# A G
D: "[[b3,d4]@10 ~@4 [g3,c4,e4]@10 ~@6 [f3,a#3,d4]@9 ~ [f3,a#3,d4] ~ [e3,a3,c#4]@3 ~ [d3,g3,b3]@11 ~@7]/4", // Bm C A# A G
E: "~@2 f3 ~@2 f3 ~@2 f3 ~@2 f3@2 ~ f3 ~", F: "~@2 f3!2 ~ f3 ~@2 f3 ~@2 f3@2 ~ f3 ~",
G: "~@2 f3!2 ~ f3 ~@2 f3 ~@2 f3@3 f3 ~", H: "~@2 f3 ~@2 f3 ~@2 [e3,f3] ~@2 f3@2 ~ f3 ~",
I: "~@4 g3 g4 ~@5 [d4,g4] ~ g3 [d4,g4] ~", J: "~@4 g3 [c4,g4] ~ g3 [c4,g4] ~ g3 [c4,g4] ~ g3 [c4,g4] ~",
K: "~@2 [a#3,f4] ~ f3 [a#3,f4] ~ f3 [a#3,f4] ~ f3 [a#3,f4] ~@4", // A#5
L: "~@2 d4 ~ g3 [d4,g4] ~@2 [d4,g4] ~ g3 [d4,g4] ~ g3 [d4,g4] ~", // G5
M: "~@2 [c4,g4] ~ g3 [c4,g4] ~ g3 [c4,g4] ~ g3 [c4,g4] ~ g3 ~@2", // C5
N: "~@2 a#3 ~ f3 [a#3,f4] ~ f3 [a#3,f4] ~ f3 [a#3,f4] ~ f3 ~@2", // A#5
O: "~@2 [d4,g4] ~ g3 [d4,g4] ~ g3 [d4,g4] ~ g3 [d4,g4] ~ g3 [d4,g4] ~", // G5
P: "~@2 [d4,g4] ~ g3 [d4,g4] ~ g3 [d4,g4] ~ g3 [d4,g4] ~ g3 ~@2", // G5
Q: "~@2 [c4,g4] ~ g3 [c4,g4] ~ g3 [c4,g4] ~ g3 [c4,g4] ~ g3 [c4,g4] ~", // C5
R: "~@2 [a#3,f4] ~ f3 [a#3,f4] ~ f3 [a#3,f4] ~ f3 [a#3,f4] ~ f3 ~@2", S: "[~@14 d5@9 ~ d5 ~ d5 ~ c#5 ~ b4@14 ~@4]/3",
T: "[[b3,d4]@13 ~ [c4,e4]@15 ~ [d4,f4]@9 ~ [d4,f4] ~ [d4,f4]@2 [c#4,e4]@2 [b3,d4]@9 ~@9]/4", // Bm C Dm C#m Bm
})).s("gm_electric_guitar_clean").gain(0.3).pan(0.3)
// other · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
~@28 A@4 ~@3 B@2 ~@2 C ~@3 D ~@3 E F G H I J@2 K L M ~@5 N ~@10 G O P Q@2 R S@8 ~@7 T U V G N ~@2 G O W X@6 Y Z AA ~
AB@5
>`.pickRestart({
A: "[[g5,g6]@63 ~]/4", // G
B: "[[f2,f3] [g2,g3]!2 ~ [f2,f3] [g2,g3]!2 ~ [f2,f3] [g2,g3]!2 ~ [a#2,a#3] ~ [g2,g3]@4 ~@14]/2", // F G F G F G A# G
C: "~@8 [f2,f3] ~ [f2,f3]@4 [g2,g3]@2", D: "f3 g3!2 ~ f3 g3!2 ~ f3 g3!2 ~ a#3 ~ g3@2", E: "~@14 [f3,f4] [g3,g4]",
F: "[g3,g4] ~@3", G: "e4", H: "d4@13 ~@3", I: "~@2 g5@3 ~ f5@3 ~ d4@2 c4@2 f3 f#3", J: "[~ [c4,e4], g3]/2",
K: "[f3,a#3], d4@7 ~", L: "g3@15 ~", M: "g3 ~@7", N: "d4@15 ~", O: "d4@7 ~",
P: "~@2 g5@2 ~@2 f5@3 ~ d4@2 c4@2 f3 f#3", Q: "[~ c4, g3]/2", R: "[f3,a#3,d4]",
S: "[~@32 e4@16 ~@48 e4@16 d4@15 ~, g3@9 ~@7 g5@48, ~ g6@15]/8",
T: "~@2 [g1,g2] [g#1,a1,g#2,a2] [a#1,a#2] [b1,c2,b2,c3] [c#2,c#3] [d2,d3]@2 ~ [e2,e3] [f2,f3] [f#2,f#3] [g2,g3]@2 ~", // G Amaj7 A# Cmaj7 C# D E F …
U: "[a2,a#2,a3,a#3] [b2,b3] [c3,c4]@2 [c#3,d3,c#4,d4] [d#3,d#4] [e3,f3,e4,f4] [f#3,f#4] [g3,g#3,g4,g#4] [a3,a#3,a4,a#4] [b3,c4,b4,c5] [c#4,c#5] [d4,d#4,d5,d#5] [e4,e5] [f4,f5] [f#4,f#5]", // A#maj7 B C Dmaj7 D# Fmaj7 F# G#maj7 …
V: "[g4,g5] ~@3", W: "[c4,c5] [d4,d5]!3 [f4,f5]!5 [g4,g5]!3 [a#4,a#5] ~ [g4,g5] ~",
X: "[~@16 e4@16 d4@15 ~@33 e4@15 ~, [g5,g6]@31 ~]/6", Y: "[d5,f5] ~@7, [a#4,a#5] ~@15", Z: "[a4,c#5,e5,a5] ~@7",
AA: "[g#4,c5,d#5,g#5] ~@7", AB: "[[g4,g5,g6]@33 ~@7]/5",
})).s("gm_string_ensemble_1").gain(0.36).pan(0.7)
// … 135 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.