0:00/0:00
// El Shaddai — Amy Grant
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 122 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · fretless bass · "FRETLESS"
const bass = note(`<
~ A B C D E F@2 G B H I J K L M N B O P Q R S T N U V P W X Y Z N AA AB AC W AD AE AF N AG AH P W K AI AJ G B AK AC E
R AB AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB AU AV AW AX AY BC BD BE BF BG BH BI BJ BK BL BM BN BO BH BI BP
BQ BR BS BT BU BV BW BX BY BZ CA CB CC@7 CD@8 CE@2
>`.pickRestart({
A: "d2@8 ~ d2@3 c2@12", B: "b1@20 ~ b1@2 ~", C: "c2@2 c2 b1", D: "a1@8 ~ a1@3 e2@12", E: "a#1@8 ~ a#1@3 a#1@6 a1@6",
F: "g2@20 ~ g2@2 ~", G: "d2@20 ~ d2@2 ~", H: "c2@2 c2 e2", I: "f2@19 ~@2 f2@3", J: "a#1@20 ~ a#1@2 ~",
K: "g#2@20 ~ g#2@2 ~", L: "a1@8 ~ a1@3 b1@12", M: "c#2@20 ~ c#2@2 ~", N: "d2@19 ~@2 d2@3", O: "c2@12 e2@8 ~ e2@3",
P: "f2@20 ~ f2@2 ~", Q: "a#1@2 a#1 a1", R: "g2@8 ~ g2@3 g2@8 ~ g2@3", S: "c2@20 ~ c2 ~@2", T: "c2",
U: "g2@8 ~ g2@3 b1@12", V: "c2@19 ~@2 c2@3", W: "a#1@19 ~@2 a#1@3", X: "e2@19 ~@2 e2@3", Y: "a1 b1",
Z: "c#2@19 ~@2 c#2@3", AA: "g2@8 ~ g2@3 b1@8 ~ b1@3", AB: "c2@8 ~ c2@3 c2@12", AC: "f2@5 c3 f3 c3",
AD: "g2@19 ~@2 g2@3", AE: "c2@8 ~ c2@3 c2@8 ~ c2@3", AF: "c2@20 ~ c2@2 ~", AG: "b1@19 ~@2 b1@3",
AH: "c2@8 ~ c2@3 c2@6 e2@6", AI: "a1@8 ~ a1@3 b1@8 ~ b1@3", AJ: "c#2@5 e2 c#3 e2", AK: "c2@8 ~ c2@3 e2@8 ~ e2@3",
AL: "c2@5 g2 c3 g2", AM: "a#1 a1 g2 f2", AN: "e2@3 e2 d2@3 d2", AO: "c2 b1 a1 g2", AP: "f2@3 f2 e2@3 e2",
AQ: "d2 c2 b1 a1", AR: "g#2@8 ~ g#2@2 ~ g#2@9 g#2@3", AS: "a1@8 ~ a1@2 ~ a1@9 a1@3", AT: "a1@8 ~ a1@2 ~ a1@8 ~ a1@3",
AU: "d2@8 ~ d2@2 ~ d2@9 d2@3", AV: "g2@3 g2 b1@3 b1", AW: "c2@8 ~ c2@2 ~ c2@9 c2@3", AX: "f2@3 f2 a1@3 a1",
AY: "a#1@8 ~ a#1@2 ~ a#1@9 a#1@3", AZ: "e2@8 ~ e2@2 ~ e2@9 e2@3", BA: "a1@3 a1 b1@3 b1",
BB: "c#2@8 ~ c#2@2 ~ c#2@9 c#2@3", BC: "g2@8 ~ g2@2 ~ g2@9 g2@3", BD: "f2@9 ~ f2@3 f2@11",
BE: "~ f2@4 ~ g2@12 ~ g2@4 ~", BF: "g2@10 g2@2 ~ d2@9 d2@2", BG: "~ f2@9 f2@3 g2@9 g2@2", BH: "~ b1@9 b1@3 c2@9 c2@2",
BI: "~ e2@9 e2@3 f2@9 f2@2", BJ: "~ a1@9 a1@3 a#1@9 a#1@2", BK: "~ d2@9 d2@3 e2@9 e2@2",
BL: "~ g#2@9 g#2@3 a1@9 a1@2", BM: "~ b1@9 b1@3 c#2@8 ~ c#2@2", BN: "~ c#2@9 c#2@2 ~ d2@9 d2@2",
BO: "~ f2@6 f2@6 g2@9 g2@2", BP: "~ a1@8 a1@3 a#1@9 a#1@3", BQ: "d2@3 d2 g2@3 g2", BR: "b1@9 b1@3 a1@8 ~ a1@2 ~",
BS: "a1@9 a1@2 ~ a1@8 ~ a1@2 ~", BT: "a1@8 ~ a1@2 ~ d2@9 d2@3", BU: "f2@3 f2 g2@3 g2", BV: "b1@3 b1 c2@3 c2",
BW: "e2@3 e2 f2@3 f2", BX: "a1@3 a1 a#1@3 a#1", BY: "d2@3 d2 e2@3 e2", BZ: "g#2@3 g#2 a1@3 a1",
CA: "b1@9 b1@3 c#2@8 ~ c#2@2 ~", CB: "c#2@9 c#2@2 ~ d2@8 d2@3 f2",
CC: "[~@5 f2@6 g2@9 g2@3 b1@9 b1@3 c2@9 c2@3 e2@9 e2@3 f2@9 f2@3 a1@9 a1@3 a#1@9 a#1@3 d2@9 d2@3 g2@9 g2@3 b1@9 b1@3 c2@7 ~@2 c2 ~@2 c2@8 ~ c2 ~@2 c2@7 ~@2 c2 ~@2 c2]/7",
CD: "[~@8 c2@2 ~ d2@20 ~ d2@2 ~ g2@20 ~ g2@2 ~ c2@20 ~ c2@2 ~ f2@20 ~ f2@2 ~ a#1@6 a1@5 g2@6 f2@6 e2@19 ~@3 e2@3 a1@21 ~@2 a1@3 a1@8 ~@2 a1]/8",
CE: "[~@3 a1@8 ~@2 a1 ~@2 a1@24 ~@8]/2",
})).s("gm_fretless_bass").gain(0.36)
// chords · piano · "A.PIANO 1"
const piano = note(`<
~@40 A B C D E F G H A I J D K L M N O P Q R S F T U V W N X Y Z AA AB AC AD N AE E AF AG@3 AH AI AJ AK AL AM AN@2 AO
AP AQ AR AS AT@3 AU AV AW AX AY AZ BA@2 BB BC@4 BD@7 BE@5
>`.pickRestart({
A: "e4@8 ~ f4@14 ~, [d3,d4,a4]", B: "[b3,d4,g4]@8 ~ [a3,d4,g4]@14 ~, b1@23 ~",
C: "[g3,c4,e4]@2 [c3,g3,c4,e4] [e3,g3,c4,e4]", D: "[a3,c4,f4]@8 ~ [g3,c4,f4]@14 ~, f2@23 ~",
E: "[d4,f4,a#4]@8 ~ [c4,f4,a#4]@14 ~, a#2@23 ~", F: "[g#3,b3,e4]@8 ~ [f#3,b3,e4]@14 ~, g#2@23 ~",
G: "[a3,c4,e4] [g3,b3,d4]", H: "b3@8 ~ c#4@14 ~, [c#3,a3,e4]", I: "a3@8 ~ b3@14 ~, [b1,g3,d4]",
J: "~@3 [g3,c4,e4]@5 ~ [g3,c4,e4]@2 ~ [g3,c4,e4]@8 ~ [g3,c4,e4]@2 ~", // C
K: "[a#3,d4,f4]@9 a#2@2 ~ [a#2,a#3,d4,f4]@6 [a2,c4,d4,f4,a4]@6, a#2@7 ~@17", // A# Dm7
L: "~@3 [g3,b3,d4]@5 ~ [g3,b3,d4]@2 ~ [g3,c4,d4]@9 g2@2 ~, ~@12 g2@7 ~@5", // G Gsus4
M: "[g3,c4,e4]@12 [g3,c4,f4]@9 c3@2 ~, ~@12 c3@7 ~@5", N: "e4@9 d4@13 ~@2, [c3,c4,g4]@23 ~",
O: "[a#2,a#3,d4,f4] [a2,c4,d4,f4,a4] [g2,g3,a#3,d4] [f3,a3,d4,f4]", // A# Dm7 Gm Dm
P: "[b3,d4,e4,g#4]@9 e3@2 ~ [b3,d4,e4,g#4]@9 d3@2 ~, e3@7 ~@5 d3@7 ~@5", // E7
Q: "[c3,g3,c4,e4] [b2,b3,d4,e4,g4] [a2,a3,c4,e4] [g2,g3,b3,d4]", // C Em7 Am G
R: "[a3,c4,f4]@8 ~ [a3,c4,f4]@2 ~ [a3,c4,f4]@9 e3@2 ~, ~@12 e3@7 ~@5", // F
S: "[d3,a3,d4,f4] [c3,c4,e4,g4,a4] [b2,d4,f4,a4,b4] [a2,a3,c4,f4]", T: "[f3,a3,d4]@8 ~ [e3,a3,d4]@14 ~, a2@23 ~",
U: "[c4,e4,a4]@8 ~ [b3,e4,a4]@14 ~, a2@23 ~", V: "[f3,a3,d4]@8 ~ [e3,a3,d4]@14 ~, d2@23 ~",
W: "~@3 [g3,b3,d4]@5 ~ [g3,b3,d4]@2 ~ [g3,b3,d4]@12", X: "[a3,c4,f4]@9 f3@2 ~ [a3,c4,f4]@9 a2@2 ~, f3@7 ~@5 a2@7 ~@5",
Y: "c4@8 ~ d4@14 ~, [a#2,a#3,f4]", Z: "f#4@8 ~ g#4@14 ~, [e3,e4,b4]",
AA: "[a3,c4,e4]@9 a2@2 ~ [g3,b3,d4]@9 b1@2 ~, a2@7 ~@5 b1@7 ~@5", AB: "[c#4,e4,a4]@8 ~ [b3,e4,a4]@14 ~, c#3@23 ~",
AC: "f4@9 e4@13 ~@2, [d3,d4,a4]@23 ~", AD: "[g3,b3,d4]@12 [g3,b3,d4]@9 b1@2 ~, ~@12 b1@7 ~@5",
AE: "[a3,c4,f4]@9 f3@2 ~ [c4,e4,g4,a4]@9 a2@2 ~, f3@7 ~@5 a2@7 ~@5", AF: "b3@9 a3@13 ~@2, [g2,g3,d4]@23 ~",
AG: "[c4@9 ~ d4@18 ~@2 b3@13 a3@16 ~@2 [a3,d4,f4]@9 d3@2, [f3,a#3,f4]@29 ~ [g2,g3,d4]@30 ~ d3@7 ~@4]/3", // Dm A#5 G5
AH: "~ [a3,d4,f4]@9 f3@2 ~ [g3,b3,d4]@9 g2@2, ~ f3@7 ~@5 g2@7 ~@4", // Dm G
AI: "~ [g3,b3,d4]@8 ~ [g3,b3,d4]@2 ~ [g3,c4,e4]@9 c3@2, ~@13 c3@7 ~@4", AJ: "~ [g3,c4,e4]@12 [a3,c4,f4]@11",
AK: "~@4 [a3,c4,f4]@5 ~ [a3,c4,f4]@2 ~ [a#3,d4,f4]@11", AL: "~ [a#3,d4,f4]@12 [b3,d4,e4,g#4]@9 e3@2, ~@13 e3@7 ~@4",
AM: "~ [b3,d4,e4,g#4]@12 ~@3 [a3,c4,e4]@5 ~ [a3,c4,e4]@2", // E7 Am
AN: "[~ [g3,b3,d4]@9 b1@2 ~ [c#4,e4,a4]@8 ~ [b3,e4,a4]@14 ~ [a3,d4,f4]@8 ~ [a3,d4,f4]@2, ~ b1@7 ~@5 c#3@23 ~@12]/2", // G A Esus4 Dm
AO: "~ [f3,a3,d4,f4]@6 [f3,a3,c4,e4]@6 [g3,b3,d4]@9 g2@2, ~@13 g2@7 ~@4", // Dm Fmaj7 G
AP: "~ [g3,b3,d4]@9 b1@2 ~ [g3,c4,e4]@9 c3@2, ~ b1@7 ~@5 c3@7 ~@4", // G C
AQ: "~ [g3,c4,e4]@9 e3@2 ~@4 [a3,c4,f4]@5 ~ [a3,c4,f4]@2, ~ e3@7 ~@16", // C F
AR: "~ [a3,c4,f4]@8 [a3,c4,f4]@2 ~@4 [a#3,d4,f4]@5 ~ [a#3,d4,f4]@2 ~", // F A#
AS: "[a#3,d4,f4]@9 d3@2 ~ [g3,b3,d4]@9 g2@2 ~, d3@7 ~@5 g2@7 ~@5", // A# G
AT: "[[g3,b3,d4]@12 d4@9 b3@13 ~@2 b3@8 ~ c#4@14 ~ [a3,d4,f4]@9 d3@2 ~, ~@12 [a2,a3,e4]@23 ~ [a2,a3,e4]@23 ~ d3@7 ~@5]/3", // G Dm A5
AU: "[a3,d4,f4]@9 f3@2 ~ [g3,b3,d4]@12, f3@7 ~@17", AV: "[g3,b3,d4]@9 b1@2 ~ [g3,c4,e4]@9 c3@2 ~, b1@7 ~@5 c3@7 ~@5",
AW: "[g3,c4,e4]@9 e3@2 ~ [a3,c4,f4]@12, e3@7 ~@17", AX: "[a3,c4,f4]@9 a2@2 ~ [a#3,d4,f4]@12, a2@7 ~@17",
AY: "[a#3,d4,f4]@9 d3@2 ~ [b3,d4,e4,g#4]@9 e3@2 ~, d3@7 ~@5 e3@7 ~@5", // A# E7
AZ: "[b3,d4,e4,g#4]@9 g#2@2 ~@4 [a3,c4,e4]@5 ~ [a3,c4,e4]@2 ~, g#2@7 ~@17", // E7 Am
BA: "[[g3,b3,d4]@9 b1@2 ~ [c#4,e4,a4]@8 ~ [b3,e4,a4]@14 ~ [a3,d4,f4]@11 [f3,a3,d4,f4], b1@7 ~@5 c#3@23 ~@13]/2", // G A Esus4 Dm
BB: "~@5 [f3,a3,c4,e4]@6 [g3,b3,d4]@12 [g3,b3,d4]", // Fmaj7 G
BC: "[~@8 [g3,b3,d4]@2 ~ [g3,c4,e4]@9 c3@2 ~ [g3,c4,e4]@9 e3@2 ~ [a3,c4,f4]@8 ~ [a3,c4,f4]@2 ~ [a3,c4,f4]@9 a2@2 ~ [f3,a#3,d4]@12 [a#3,d4,f4]@9 d3@2 ~ [g3,b3,d4]@9 g2@2 ~ [b1,g3,b3,d4], ~@11 c3@7 ~@5 e3@7 ~@17 a2@7 ~@17 d3@7 ~@5 g2@7 ~@6]/4", // G C F A# G
BD: "[~@8 b1@2 ~@10 [c4,d4,g4]@2 ~ [c4,d4,g4]@8 ~ [c4,e4,g4]@2 ~ [c4,e4,g4]@8 ~ [c4,d4] ~@11 [c4,g4]@2 ~ [f3,a3,d4]@8 ~ [e3,a3,d4]@14 ~ [b3,d4,g4]@8 ~ [a3,d4,g4]@14 ~ e4@9 d4@13 ~@2 [a3,c4,f4]@8 ~ [g3,c4,f4]@14 ~ [a#2,a#3,d4,f4]@6 [a2,c4,e4,g4,a4]@5 [g2,a#3,d4,f4,g4]@2, ~@11 c3@48 d2@23 ~ g2@23 ~ [c3,c4,g4]@23 ~ f2@23 ~@14, ~@17 g3@35 ~ g3@6 ~@109, ~@44 g4@2 ~ [c4,d4,g4]@9 d4 ~@111]/7", // Csus2 C Csus2 C5 Dm Dsus2 G Dsus4 …
BE: "[~@4 [f3,a3,c4,f4]@6 g#4@9 f#4@14 ~@2 [f3,a3,d4]@9 ~ [e3,a3,d4]@15 ~ [a3,c4,e4]@8 ~@2 [a3,c4,e4] ~@3 [a3,c4,e4]@9 ~ a2 ~@2 [a2,a3,c4,e4]@26 ~@6, ~@10 [e3,e4,b4]@23 ~@2 a2@26 a2@22 ~@37]/5", // F Dm Dsus2 Am E5
})).s("gm_piano").gain(0.36)
// chords · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
A B C D E F G@2 H I J K L M N O P Q R S T U V@2 W X Y Z AA AB AC AD AE AF AG AH AI AJ@2 AK H I J K L M N O P Q R S T U
AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ@3 BK BL@2 BM BN BO BP BQ BR BS BT BU BV
BW@2 BX BY BZ@2 CA CB CC CD CE@8 CF@7 CG@2 ~
>`.pickRestart({
A: "~@12 [f5,d6]@5 ~ [g5,e6]@5 ~", // Dm C
B: "~@3 a4 ~@3 [a4,g5,e6], [a5,f6]@3 ~, d4 c4, ~ a4@2 ~@2 a4@2 ~, ~ d5 ~ [d5,a5,f6]", // A7 Dm
C: "~@3 d5 ~@3 f6, d6, [b3,g5] ~, ~ g4@3 ~@2 g6@2, ~ b4 g5@2", // Em
D: "~@3 [g4,f6] ~@2 [b3,d6]@2, [c4,g5,e6]!2, ~ g4@2 ~@2 g4@3, ~ c5 ~@2", // G7 Bm C
E: "~@7 [c5,e6], c6, [a3,f4]@3 f5@5, f5@2 c5@2 ~ c5 [a4,d6]@2, ~ a4@3 e4@4", // C Dm D5
F: "~@7 a#4, [a#3,f6]@2 ~ [a4,c6], ~ a#4@3 ~ a#4@2 ~, ~ e6 d6@2, ~@3 d5@5", // A#5 Am
G: "[~@3 d6 g6@12, [g4,b4,b5] ~@3, ~ d5@3 ~@12, ~ g5@7]/2", H: "f4!2 ~ c4, [d4,a4] a4",
I: "~@3 b4 g5@4, b3, d4 ~, ~ g4 ~@2", J: "g4@3 ~@3 e3@2, [c4,e4]@4 ~ c5@3, ~@3 g4@5",
K: "~@3 a5 ~@2 e4@2, [f3,a4] ~, f4!2 ~@2, ~ c4@3 [a3,c5]@4", L: "[a#4,d5] [d4,a#4], a#3",
M: "~@3 g#4 e5@4, [g#3,b4] ~, e4!2 ~@2, ~ d4@7", N: "[a3,e4,a4,c5] [b3,g4,d5]",
O: "~@3 e4 ~@3 a5, [c#3,a4,e5]@4 ~ c#5@3, ~ a3@7, ~ c#4 a4@2, ~@3 e5", // A
P: "~@3 d5 f5@4, [d3,a3], f5 ~, a4!2 ~@2, ~ f4@3 ~@4", // D5
Q: "~@3 d4 ~@2 [d4,b4]@2, [b2,g3], g4 [f4,g4,d5], ~ d4@2 ~@5, ~ b4 ~@2", // G Em G7
R: "~@7 g4, [c3,c5] [e3,c5], e4!2 ~@2, ~ c4@3 ~@4, ~@3 g4@4 ~", S: "~@3 c4 ~@2 e4@2, [f2,a4] ~, ~ c3@3 d4@4, ~ a3@3",
T: "~@3 d4 ~@2 [a2,d4,a4,c5]@2, [a#2,f4] ~, d4@3 ~ [a#4,d5]@4, ~ f3@3 ~@4, ~ a#3@3", // D7 A#5 A#
U: "~@3 b3 [d4,c5]@4, [g2,g4,b4] ~, ~ d3@3 ~@4, ~ g3 ~@2", // D7 G
V: "[~@3 g3 ~@2 e4@2 g4@8, [c2,e4,c5]@4 ~ d4@3 ~@8, ~ g2@3 c4@4 ~@8, ~ e3@7]/2", // C
W: "~ a2 ~ a3, [d2,d4,f4,a4] [f3,d4,a4]", X: "~@3 c5 ~@2 f4@2, [g2,d4,b4] ~, ~ d3 [b2,g3,g4,d5]@2",
Y: "~ c4 ~ c4, [c3,g3], e4 [e4,c5]", Z: "~ f4 ~ e4, [a3,c4], [f2,g4] ~, ~ c3@3 d4@4, ~ f3@3",
AA: "~@3 d4 ~@3 a#4, [a#2,f4]@4 ~ d4@3, d4@3 ~ d5@4, ~ f3@3 f4@2 f4@2, ~ a#3@3", // A#5
AB: "~@3 d4 ~@2 d5@2, [e2,g#4,b4,d5] ~, ~ b2@3 [g#4,b4]@4, ~ g#3@3", // E7 G#m
AC: "~ c4 ~ d4, [a2,a3,e4,a4,c5] [b2,g3,b3,g4,d5]", AD: "~ e5 ~ c#6, [c#3,e4,a4,c#5] ~, ~ a3@3 a5@4, ~ c#4@3",
AE: "~@3 f4 ~@3 d4, [d3,d5,f5,a5,d6]@4 ~ d4@2 ~, ~ a3@7, ~ d4 a4@2, ~@3 c5", // Dm
AF: "~@3 g5 ~@2 [b3,f4]@2, [g2,b4] ~, g4@2 [b3,g4]@2 ~ g3@3, ~ d3@3 [b2,d5]@4", // Bdim G Em Bm
AG: "~ [c4,e4,g4] [e4,g4] [e4,g4,c5], c3 ~, [c4,e4] ~ b4@2, ~ g3@7", // C Em C
AH: "~@3 a3 [c4,e4]@4, [f2,c4,f4] ~, a3@3 ~@5, ~ c3@3 ~@4, ~ f3@3", AI: "~ f3 f4 [d4,f4], [a#2,d4,f4] [a#3,d5]",
AJ: "[d4@2 ~@8 g4@2 ~@3 g4, [g2,b3,g4] d3 c3@2, ~@2 d4@2 ~ b3@3 ~@6 d4@2, ~@3 c4@5 [c4,e4,c5]@4 ~ e4@3, ~@3 g3@3 [f3,f4]@2]/2", // G C F
AK: "[c3,e3,c4]", AL: "~@9 d4@2 e4 ~@9 e4@2 f4, c3, [g3,e4,c5] [f3,f4]", AM: "~@7 c6, [c3,e3,g4], ~@3 a#5",
AN: "~@3 d5 ~@3 d5, [a#2,d6]@2 ~ [f2,a5], ~ d5@2 ~@2 d5@2 ~, ~ [a2,c6] [g2,a#5]@2", // A# F Am Gm
AO: "~@3 g#5 ~@3 b5, e2 ~, g#5@3 ~ b5@3 ~, ~ d5@3 ~@2 e5@2, ~ [b2,e5] d3@2", // E5
AP: "~@3 c5 ~@2 [g2,b4,g5]@2, [c3,e5,c6] ~, ~ c5@2 ~@2 c5@3, ~ [b2,b5] [a2,a5]@2", // G C B A
AQ: "~@7 e5, [f2,f5] ~, a4 [c3,a4] e3@2, ~ f4@3 ~@2 d5@2, ~@3 c5@5", // F
AR: "~@3 f4 ~@3 f4, [d3,f5]@2 ~ [a2,c5], ~ f4@2 ~@2 f4@2 ~, ~ [c3,e5] [b2,d5]@2", // Dm Am C Bm
AS: "~@3 g#4 ~@3 b4, [g#2,b4] e2, ~ d4@3 ~@2 c5@2, ~@2 e4@2 b4@3 ~", // G#m
AT: "~@3 a4 ~@3 d4, a2, a4@3 ~ d5@4, ~ d4@3 ~@2 f4@2, ~@2 f4@2 ~ a4@3", AU: "[a2,a3,c4,e4]",
AV: "~@3 a2 ~@3 f4, [d4,a4], f4@3 e4, d2 f3, ~@5 a3@3", AW: "~@3 b3 [b2,d4]@4, [g2,g4] ~, b3@3 ~@5, ~ g3 ~@2",
AX: "~@3 d4, [c3,e4] c2, ~ g3@3 ~ g3@3, ~ c4 ~@2, ~@3 g4@5", // C
AY: "a3@2 ~ c4 ~@3 e4, [f2,f4] [a1,c4,f4], c4@3 ~@3 d4@2, ~ a3 ~@2", AZ: "~ a#3 ~ a#3, a#1, [d4,f4] [d4,a#4]",
BA: "~@3 d4 ~@2 d4@2, e2, [e4,g#4,b4] e4, d4@3 ~@5, ~ b3 ~@2", BB: "~ a3 ~ g3, [a1,a2,c4,e4,a4] [b1,b2,d4,g4]",
BC: "~@3 a3 ~@2 e4@2, [c#2,e4,a4] ~, ~ a2@3 [a2,d4]@4, ~ e3 ~@2", // A D5
BD: "~@3 f4 ~@2 [e4,c5]@2, d2 ~, f4 d4 [f4,d5]@2, d4 f3@3, ~ a2@3 ~@4", // C Dm
BE: "~ [b3,g4,d5] ~ [a4,f5,a5], [g2,d4,b4] ~, ~ d3@3 [b2,g3,b4,g5,b5]@4", // G Dm G Em
BF: "~@3 e4 ~@2 d5@2, [c3,g4,e5,g5] ~, ~ g3@3 [g4,e5]@4, ~ c4@3", // C
BG: "~@3 f4 ~@3 c5, [f2,a4,c5,f5] ~, ~ c3@3 [a2,f3,e5]@4, ~ a3 ~ b4", // F Fmaj7
BH: "~@3 d4 ~@2 c5@2, [a#2,f4,d5] ~, ~ f3@3 [f4,d5]@4, ~ a#3@3", BI: "~@3 b3 ~@2 d4@2, g2, [d4,b4] g4, ~ g3 ~@2",
BJ: "[~@6 [f4,d5]@7 ~@8 [d3,d5,a#5]@7 ~@2 [b3,b5]@31 ~@6 f4@5, [f2,d4,a#4]@13 ~@15 [g2,b4]@33 [d2,a4,d5,f5]@11, ~@3 d3@10 [a#4,f5]@16 ~@43, ~@6 f3@23 [d3,d5,g5]@32 ~@11]/3", // Dm Gm B A# G Dm A#5 G5
BK: "~@7 a3@6 ~@9 b3@2, ~ [f2,d4,a4]@12 [g2,d4,g4,b4]@11, ~@19 g3@5", // Dm G
BL: "[~@7 f4@6 ~@33 c4@2, ~ [b1,d4,g4]@12 [c2,g3,c4,e4]@12 e2@12 [f2,f4,a4]@11, ~@22 c5@15 ~@11, ~@28 g4@9 ~@6 a3@5, ~@17 c4@6 ~]/2", // G C F
BM: "~@7 e4@6 ~@6 a#3@5, ~ [a1,d4]@12 [a#1,d4,f4]@11", BN: "~@7 c4@6 ~@6 b3@5, ~ [d2,f4,a#4]@12 [e2,d4,e4,g#4]@11",
BO: "~@7 d4@6 ~@6 a3@5, ~ [g#2,e3,e4,b4]@12 [a1,a2,c4,e4,a4]@11", // E Am
BP: "~@10 e4@3 ~@9 a3@2, ~ [b1,b2,d4,g4]@12 [c#2,e4,a4]@11, ~@4 g3@9 a3@9 ~@2, ~@7 b3@6 ~@3 a2@8, ~@19 e3@5", // G A
BQ: "~@7 [a1,e4]@6 ~@6 d3@5, ~ [a2,d4]@12 ~@11, ~@4 e2@9 [d2,a3,d4,f4]@11", // A5 D5 Dm
BR: "~ a4@6 [e4,a4,c5]@6 ~@6 d3@5, ~ [f2,d3,f4,d5]@12 [g2,d4,g4,b4]@11", // Am Dm G
BS: "~@7 [a4,f5,a5]@6 ~@6 [c4,g4]@5, ~ [b2,g3,b4,g5,b5]@12 [c3,c5,e5,g5]@11, ~@2 g3", // Dm C5 Em C
BT: "~@7 c4@6 ~@9 e5@2, ~ [e2,c3,e4,g4,c5]@12 [f2,a4,c5,f5]@11, ~@2 c3, ~@19 [a3,f4]@5", // C F Dm
BU: "~@2 c5@2 ~@3 d4, ~ [a2,f3,f4,d5]@11 [a#2,f3,f4,a#4]@12, ~@4 d4@3 ~, ~@3 a#3", // Dm A#5
BV: "~ a#3 ~ b3, [d2,f4,a#4] [g1,g2,d4,g4,b4]", // A# G
BW: "[~@2 g3@2 ~@3 [d4,e4,a4] [d4,e4]@2 ~ e2 ~@2 e2@2, [b1,b2,d4,g4] [a1,a2]@2 [a2,a3,c#4,e4,a4], ~@4 [d4,e4,a4]@3 ~ a4@4 ~@4, ~@3 a3 ~ [a3,d4,e4] ~@2]/2", // Dsus2 G A Dsus2 Asus4
BX: "~ [e4,e5] ~ f4, [a1,d4,d5] [d2,a4,d5,f5]", BY: "~@2 a3@2 ~@3 b3, [f2,d4,a4] [g2,d4,g4,b4], ~@3 g3",
BZ: "[~@2 f4@2 ~@11 c4, [b1,d4,g4] [c2,g3,c4,e4] e2 [f2,f4,a4], ~@7 c5@5 ~@4, ~@9 g4@3 ~@2 a3@2, ~@11 c4@4 ~]/2", // G C F
CA: "~ e4 ~ a#3, [a1,d4] [a#1,d4,f4]", CB: "~ c4 ~ b3, [d2,f4,a#4] [e2,d4,e4,g#4]",
CC: "~ d4 ~ a3, [g#2,e3,e4,b4] [a1,a2,c4,e4,a4]", // E Am
CD: "~@3 e4 ~@3 a3, [b1,b2,d4,g4] [c#2,e4,a4], ~ g3@3 a3@3 ~, ~@2 b3@2 ~ a2@3, ~@3 e3", // G A
CE: "[~@6 [a1,e4]@6 ~@5 d3@6 a4@6 [e4,a4,c5]@6 ~@6 d3@6 ~@6 [a4,f5,a5]@6 ~@6 [c4,g4]@6 ~@6 c4@6 ~@9 e5@3 ~@6 c5@6 ~@9 d4@3 ~@6 a#3@6 ~@6 b3@6 [b1,d4,g4]@12 ~@9 c5@3 ~@12 [c2,e4]@12 d6, [a2,d4]@12 ~@11 [f2,d3,f4,d5]@12 [g2,d4,g4,b4]@12 [b2,g3,b4,g5,b5]@12 [c3,c5,e5,g5]@12 [e2,c3,e4,g4,c5]@12 [f2,a4,c5,f5]@12 ~@18 a#3@6 ~@36 e4@6 e4@6 f4@12 ~@13, ~@3 e2@9 [d2,a3,d4,f4]@12 ~@38 g3@9 ~@15 c3@9 [a2,f3,f4,d5]@12 [a#2,f3,f4,a#4]@12 [d2,f4,a#4]@12 [g2,d4,g4,b4]@12 ~@12 c2@24 ~@13, ~@89 [a3,f4]@6 ~@12 d4@9 ~@39 c5@9 ~@12 c4@15 ~, ~@158 c4@9 ~@6 g3@6 ~@13]/8", // A5 Am Dm C5 G C D5 Dm …
CF: "[~@5 e6@6 f4@6 ~@3 a5@3 ~@30 f6@6 e4@6 ~@18 f3@6 [f3,c4]@6 ~@6 e5@6 ~@9 f4@2 ~@6 [f2,c5]@6 ~@9 b4@3 ~@7 b4@6 ~@10 f4@3, ~@11 [d4,a4,f6]@12 f6@12 ~@3 g4@9 ~@12 [c4,g4]@12 ~@6 c5@3 c6@15 ~@15 f4@6 ~@2 [g2,d5]@12 e2@24 ~ [a2,a4]@13, ~@17 [f4,d5]@18 d5@9 d5@15 ~@15 d6@9 ~@30 [a2,e5]@6 ~@14 b3@9 ~@13 d4@6 d4@6 ~, ~@29 e6@6 b4@6 b4@6 ~@18 [e4,f6]@6 g4@12 a3@12 [f4,d5]@12 [a#2,f5]@12 ~@2 f4@9 [d4,g#4]@12 ~@13 f4@10 ~@3, ~@32 d6@15 g6@12 e6@9 e6@15 ~@47 b4@6 e4@6 c5@12 ~@4 a3@10]/7", // F5 Dm C5 G5 A Dm A5 Fmaj7 …
CG: "[~@6 [f4,d5]@6 ~ [a2,a4,c5]@27 ~@8, a4@13 ~@35, f4@3 ~@3 [a1,c4,e4]@14 ~@4, ~@3 d4@10 ~@35]/2", // Dm Am
})).s("gm_epiano1").gain(0.36)
// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
~ A B C D E F G H I J K L M N O P Q R S T U V@2 W X Y Z AA AB AC O H AD AE Z L AF AG AH AI AJ AK AL AM AN N AO H Q AP
AQ T AR AG AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP@3 BQ BR BS BT BU BV BW@2 BX BY BZ
CA CB CC@3 CD CE CF CG CH CI CJ@4 CK CL CM CN@7 CO@3 CP@2
>`.pickRestart({
A: "~@9 f4@3 ~@9 d4@2 ~, d3 [c3,f4], f4 ~@2, ~@3 a3@9 ~@3 a3@8 ~, ~ d4 ~@2", // F5
B: "~@6 g3 ~, b1@11 ~, b3@3 g3@5 ~@4, ~@3 d3@9 ~@3 d3@7 ~@2, ~@9 b3@13 ~@2",
C: "~@9 c4@2 ~ [c3,e4]@6 [b1,b3]@6, [c3,e4] ~, ~@3 g3@8 ~@13", // C B C
D: "~@9 f4@2 ~@10 f4@2 ~, [a2,a4] [e3,a4], ~@3 c4@8 ~@4 c4@8 ~", // A A5
E: "~@9 a#3@2 ~ [a#2,d4]@6 [a2,a4]@6, [a#2,c4] ~, ~ f3@3 ~@4", // A# A A#sus2
F: "~@9 a3@4 ~@2 b3@7 ~@2, g2@23 ~, b3@3 g3@8 ~, ~@3 d3@19 ~@2",
G: "a3 ~@5 d4@2, g2, ~@3 d4@11 ~ d3@9, ~ g3@3, ~@3 a3@3 ~@2",
H: "~@9 e4@4 ~@2 f4@7 ~@2, d3@23 ~, f4@3 d4@8 ~, ~@3 a3@19 ~@2",
I: "~@9 a3@4 ~@2 b3@7 ~@2, b1@23 ~, b3@3 g3@8 ~, ~@3 d3@19 ~@2",
J: "~@3 e4 [c3,e4]@2 [e3,e4]@2, c3 ~, e4 ~@2, ~ g3@3 ~@4, ~ c4 ~@2", // C E
K: "~@6 f4 ~, f3@11 ~, a4@3 f4@5 ~@4, ~@3 c4@9 ~@3 c4@7 ~@2, ~@9 a4@13 ~@2",
L: "~@9 c4@2 ~ d4@3 c4@3 ~@3 f3@3, ~ a#2@7, ~@5 f3@15 ~@4, ~@6 a#3@10 ~@2 a#3@5 ~",
M: "f#4 ~@5 b4@2, g#2, ~@3 b4@11 ~ b3@9, ~ e4@3, ~@3 f#4@3 ~@2",
N: "~@9 c4@3 ~@9 g3@2 ~, a2 [b1,b3], c4 ~@2, ~@3 e3@9 ~@3 d3@8 ~, ~ a3 ~@2", // B
O: "~@6 a3 ~, c#3@11 ~, c#4@3 a3@5 ~@4, ~@3 e3@9 ~@3 e3@7 ~@2, ~@9 c#4@13 ~@2",
P: "~@6 d4 ~, d3@11 ~, f4@3 d4@5 ~@4, ~@3 a3@9 ~@3 a3@7 ~@2, ~@9 f4@13 ~@2",
Q: "a3 ~@5 d4@2, b1, ~@3 d4@11 ~ d3@9, ~ g3@3, ~@3 a3@3 ~@2",
R: "~@9 e4@3 ~@9 c4@2 ~, c3 ~, e4 ~@2, ~ g3@3 [e3,e4]@4, ~@6 c4@6 ~@3 g3@8 ~", // E
S: "g4 ~@5 c5@2, f3, ~@3 c5@11 ~ c4@9, ~ f4@3, ~@3 g4@3 ~@2",
T: "~@9 a#3@2 ~ [a#2,d4]@6 [a2,f4]@6, [a#2,d4] ~, ~@3 f3@8 ~@13", // A# Dm A#
U: "~@9 b3@3 ~@9 g3@2 ~, g2 [g2,c4], b3 ~@2, ~@3 d3@9 ~@3 d3@8 ~, ~ g3 ~@2", // C5
V: "[~@21 e4@11 ~ g3 ~@2 c4@4 ~ c4@4 c4@2 ~, c3@14 ~ c3@25 ~@8, ~@3 g3@13 ~@2 g3@12 ~@18, ~@2 d4@5 ~@9]/2",
W: "e4 ~@5 a4@2, d3, ~@3 a4@11 ~ a3@9, ~ d4@3, ~@3 e4@3 ~@2", X: "~@9 g3@2 ~@10 g3@2 ~, [g2,a3]!2, ~ d3@3 ~ d3@3",
Y: "~@9 d4@2 ~ e4@3 d4@3 ~@3 g3@3, ~ c3@7, ~@5 g3@15 ~@4, ~@6 c4@10 ~@2 c4@5 ~",
Z: "~@9 g4@2 ~ a4@3 g4@3 ~@3 c4@3, ~ f3@7, ~@5 c4@15 ~@4, ~@6 f4@10 ~@2 f4@5 ~",
AA: "~@6 a#3 ~, a#2@11 ~, d4@3 a#3@5 ~@4, ~@3 f3@9 ~@3 f3@7 ~@2, ~@9 d4@13 ~@2",
AB: "f#4 ~@5 b4@2, e3, ~@3 b4@11 ~ b3@9, ~ e4@3, ~@3 f#4@3 ~@2",
AC: "~@9 a3@2 ~@10 g3@2 ~, [a2,c4] [g2,a3], ~@3 e3@8 ~@4 d3@9", // Am Gsus2
AD: "~@9 g3@2 ~@10 b3@3, [g2,a3] b1, ~@3 d3@9 b3@8 ~@4, ~@5 d3@3, ~@3 g3", // Gsus2
AE: "~@9 c4@2 ~@10 c4@2 ~, [c3,d4] [c3,e4], ~@3 g3@9 ~@3 g3@8 ~", // Csus2 C
AF: "~@6 g3@3 a3@13 ~@2, g2@11 ~, a3 ~@3, ~@3 d3@10 ~@11",
// … 177 more lines
More by Amy Grant
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.