0:00/0:00
// I'm Your Angel — Celine Dion
// 56.7 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: pitch bends are ignored
// note: Full arrangement: all 75 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(56.7/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.
// other · piano
const piano = note("<~@45 [~@27 a#3@4 ~] [~@11 a#3@4 ~@12 a#3@4 ~]!5 [~@3 a#3 ~@3 a#3]!2 [~@3 a#3 ~ a#3 ~@2] ~@21>")
.s("gm_piano").gain(0.48)
// bass · fretless bass
const bass = note(`<
~@3 A B C D E F G H I J K L M N O P Q R S T U V A W X W Y@3 Z@6 AA@4 AB@8 AC@5 AD@2 AE@2 AF@2 AG AH@2 AI@2 AJ@6 AK@2 ~
>`.pickRestart({
A: "~ [c1,c2]@15", B: "~ g2@31", C: "~ f2@31", D: "g2", E: "[c1,c2]", F: "g2@3 e2", G: "f2", H: "g2@3 g#2",
I: "a2 g#2", J: "g2 f#2", K: "d2 e2", L: "a2@2 a1 a2 [b0,b1]@2 [b0,b1]@2", M: "c3@6 e2 [g1,g2] a2@4 [a1,a2]@2 a1@2",
N: "g2@3 [g1,g2] g2@2 e2@2", O: "f2@3 f2 a2@2 a2@2", P: "[g1,g2]@3 g2 a2@2 b2@2",
Q: "[c2,c3]@6 [e1,e2] g2 a2@4 a2@2 a1@2", R: "g2@3 g2 g2@2 e2@2", S: "f2@10 f2@4 f2 g2 [a1,a2]@8 a2@8",
T: "g2@12 ~ [g1,g2]@4 g2@15", U: "~ f2@16 f2@6 f2@2 f2@7", V: "~ c2@31", W: "~ g2@15", X: "~ f2@15",
Y: "[~@3 [c1,c2]@32 g2@24 ~ e2@8 f2@28]/3", // C
Z: "[~@4 g2@24 ~ g#2@8 a2@16 g#2@16 g2@16 f#2@16 d2@16 e2@16 a2@8 a1@4 a2@4 [b0,b1]@8 [b0,b1]@8 [c2,c3]@12 e2@2 g2@2 a2@8 a2@3]/6", // B C
AA: "[~ a1@2 g2@6 [g1,g2]@2 g2@4 e2@4 [f1,f2]@6 f2@2 a2@4 [a1,a2]@4 [g1,g2]@6 g2@2 a2@4 [b1,b2]@4 [c2,c3]@6 [e1,e2] g2 a2@4 a2]/4", // G F A G B C E
AB: "[~@2 a1@4 ~ [g1,g2]@12 [g1,g2]@4 g2@8 e2@8 f2@12 f2@2 f2 g2 a2@8 [a1,a2]@8 g2@12 d2@4 g2@16 f2@16 f2@16 c2@12 c2@4 c2@16 f2@16 e2@8 d2@8 c2@12 c2@4 c2@16 [f1,f2]@16 e2@8 d2]/8", // G A F
AC: "[~@7 a2@16 [g#1,g#2]@16 ~ g2@16 f#2@16 f2@12 f2@4 f2@16 g2@12 g2@4 [g#1,g#2]@16 [g#1,g#2]@6 ~@18]/5", // G#
AD: "[~@8 d2@12 ~ f#1@2 a1@2 b1@6 b1@2 b1@4 b2@2 b1@2 a2@12 [e0,e1]@4 a2@7]/2", // E
AE: "[~ [f#1,f#2]@8 g2@6 g2@2 g2@4 g2@2 g2 a2 b2@6 b2@2 b2@4 b2@4 a2@4 a2@8 a2@4 b2@4 g2@3]/2", // F#
AF: "[~ c#3@8 ~ d2@16 b1@16 a2@12 a2@2 b2@2 [a2,c#3]@6]/2", AG: "~ a3@2 f#2@2 g2@6 g2 a2 b2@3",
AH: "[~@7 b2@4 [a1,a2]@12 d3@2 a2@2 a2@8 a2@8 d2@12 f#1@2 a1@2 b1@5]/2", // A
AI: "[~ b1@2 b1@4 b2@2 b1@2 a2@12 e1@4 a2@8 ~ f#2@8 [g1,g2]@6 g2@2 g2@4 g2@2 g2 a2 b2@4]/2", // G
AJ: "[~ b2 [b1,b2]@2 [b1,b2]@2 a2@2 a2@4 [a1,a2]@2 b2@2 g2@2 c#3@4 d2@8 b1@8 a2@6 a2 b2 [a2,c#3]@4 a3@2 f#2@2 g2@6 g2 [a1,a2] b2@4 ~@2 [b1,b2]@2 a2@6 [d2,d3] a2 [a1,a2]@4 a2@4 g2@8 g2@2, ~@7 b1@2 ~@39]/6", // B A B D A
AK: "[~@2 g2@2 g2@8 d2@49 ~@3]/2",
})).s("gm_fretless_bass").gain(0.22)
// bass · fretless bass · soft notes
const bass_soft = note(`<
~@15 A B C D E F G H I J ~@12 K L@2 M N@3 O@7 P@3 ~ Q R S T U@2 V W@2 X@2 Y Z@2 AA@2 AB AC@2 ~
>`.pickRestart({
A: "c2@12 e1@2 ~@2 a1@8 ~@4 a0@3 ~", B: "g1@11 ~@5 g1@8 e1@7 ~", C: "f1@12 f1@4 a1@8 a1@7 ~",
D: "~@12 g1@3 ~ a1@8 b1@7 ~", E: "~@14 g1@2 a1@8 a1@4 a0@3 ~", F: "g1@11 ~ g1@3 ~ g1@7 ~ e1@7 ~",
G: "f1@12 f1@2 ~ g1@2 ~@7 a1@7 ~, ~@15 f1 ~@16", H: "g1@12 ~@5 g1@15", I: "~ f1@16 f1@5 ~ f1 ~ f1@7", J: "~ c1@31",
K: "~@17 e1@2 g1@2 a1@8 a1@3", L: "[~@2 a0@3 ~ g1@11 ~@5 g1@8 e1@7 ~@13 f1@4 a1@8 ~@2]/2", M: "~@18 g1@3 ~ a1@8 ~@2",
N: "[~@20 g1@2 a1@8 a1@4 a0@3 ~@18 g1@8 e1@7 ~ f1@12 f1@2 f1 ~ a1@8 ~, ~@43 g1 ~@4]/3",
O: "[~@7 g1@12 d1@3 ~ g1@16 f1@16 f1@16 c1@12 c1@3 ~ c1@15 ~ f1@15 ~ e1@8 d1@7 ~ c1@12 c1@3 ~ c1@15 ~@17 e1@8 d1@7 ~ a1@16 ~@9]/7",
P: "[~@8 g1@15 ~ f#1@15 ~ f1@12 f1@3 ~ f1@15 ~ g1@11 ~ g1@3 ~@9]/3", Q: "~@8 d1@12 ~ f#0@2 a0@2 b0@5 ~ b0",
R: "~ b0@4 b1@2 b0@2 a1@12 ~@4 a1@7", S: "~@9 g1@6 g1 ~ g1@3 ~ g1@2 g1 a1 b1@5 ~ b1",
T: "~ b1@4 b1@4 a1@4 a1@7 ~ a1@3 ~ b1@7", U: "[~ c#2@7 ~@2 d1@16 b0@16 a0@16 ~@6]/2", V: "~@3 f#1@2 g1@6 g1 a1 b1@3",
W: "[~@2 b2@4 ~ b1@4 ~@12 d2@2 a1 ~ a1@8 a1@7 ~ d1@12 f#0@2 a0@2 b0@5]/2",
X: "[~ b0 ~ b0@4 b1@2 b0@2 a1@12 e0@4 a1@8 ~ f#1@7 ~@7 g1 ~ g1@3 ~ g1@2 g1 a1 b1@4]/2", Y: "~@2 b1 ~@9 a1@4 a1@7 ~@9",
Z: "[~@4 c#2@7 ~ d1@16 b0@16 a0@16 ~@4]/2", AA: "[~@8 f#1@4 g1@12 g1@2 ~@2 b1@8 b2@4 ~@4 a1@12 ~@2 a1 ~@5]/2",
AB: "~@4 a1@7 ~ g1@16 g1@4", AC: "[~@2 g1 ~ g1@8 d1@49 ~@3]/2",
})).s("gm_fretless_bass").gain(0.14)
// chords · epiano2
const epiano2 = note(`<
~@3 A@2 B C D E F G H I J K L M N O P@2 Q R S T@2 U V W X@2 Y Z@8 AA@2 AB AC AD AE@4 AF@6 AG@2 AH@2 AI AJ@8 AK@7
>`.pickRestart({
A: "[~@2 g4@27 ~@2 c5@2 b4@2 a4@2 b4@27, ~@2 [e4,c5]@31 [d4,g4]@31, ~@29 g4@4 ~@31]/2", // C G5
B: "~ [c4,f4,a4]@15 ~ [a3,c4]@15, ~ f4", C: "c4@16 b3@15 ~, [d4,g4]@31 ~", D: "[c3,g3,c4,e4]@31 ~",
E: "[b3,d4,g4,b4]@31 ~", F: "[f4,a4,c5]@3 ~ [f4,a4,c5]@28", G: "[c4,e4,g4]@23 ~ [e4,g#4,b4]@8",
H: "[e4,a4,c5]@15 ~ [e4,g#4,b4,d5]@15 ~", I: "[e4,g4,c5] [a4,c5,e5]",
J: "c5@12 g4@2 c5@2 [e4,g4,c5]@14 a4 b4, [f4,a4] ~", K: "[f4,a4,c5]@16 [g4,b4,d5]@15 ~",
L: "[g3,c4,e4]@16 [e3,g3,c4]@7 ~ [c4,e4,g4]@8", M: "[c4,d4,g4]@24 [e4,g4,c5]@7 ~",
N: "[d4,f4,a4]@15 ~ [a3,f4,a4]@7 ~ [f4,a4,c5]@2 [g4,b4,d5]@2 [a4,c5,e5]@4", // Dm F G Am
O: "[e4,g4,c5]@8 [d4,g4,b4]@7 ~ [c4,f4,a4]@8 [b3,d4,g4]@7 ~", // C G F G
P: "[~@12 b4@2 c5@2 [c4,e4]@6 e4@2 [c4,e4]@4 b4@2 c5@4 ~@2 c5@2 b4@5 ~ b4 ~ b4@5 ~ d4@4 [g4,c5]@4 [c4,e4,g4]@4, ~@14 c4@3 ~@15]/2", // C C5 C
Q: "[c4,f4,a4]!2", R: "c4@12 ~ c4@4 b3@15, [d4,g4]", S: "~ [a3,c4]@16 [a3,c4]@8 [c3,f3,a3]@7, ~ f4@24 ~@7",
T: "[~ [c3,e3,g3]@28 ~ [g3,c4]@4 [c4,e4,g4]@28 c5@2]/2", // C C5 C
U: "c5@2 g4@8 ~@8 b3@7 ~ [g4,c5]@6, ~@2 b4@25 ~@5, ~ d4@9 ~@6, ~@5 g4@8 ~@3", // C5
V: "[e4,g4] [a3,c4,e4]@8 [f3,a3,c4]@6 g4", W: "a4 [c4,g4]@8 b3@7, ~ [g3,d4]@15",
X: "[~@31 b4@2 c5@2 [d4,g4,b4]@6 [d4,g4,b4]@5 ~@13 c5@4 g4, ~@3 [c4,e4,g4]@32 ~@12 [d4,g4,b4]@17]/2", // G C G
Y: "~ [c4,f4,a4]@7", // F
Z: "[g4@2 a4@2 [c4,g4]@16 b3@7 ~@2 [b3,d4,g#4,b4]@5 c5 ~@2 [a3,c4,e4]@16 [g#3,b3,e4]@16 [e4,c5]@12 b4@2 c5@2 a4@8 a4@7 ~ [f4,a4,c5]@16 [e4,g4,c5]@16 [a3,c4,f4]@8 [a3,c4,f4]@7 ~ [b3,d4,g4]@8 [b3,d4,g4]@7 ~ [g3,c4,e4]@16 ~ [a3,c4,e4]@16 c4@16 b3@7 ~ [e4,g4,c5]@8 a3@12 a3@3 ~ [a3,c4,f4]@8 a4@2, ~@4 [g3,d4,d5]@24 ~@8 d5@2 ~@31 [c4,g4]@16 [c4,f#4]@16 ~@97 [d4,g4]@24 ~@8 [c4,f4]@16 ~@10, ~@81 e4@4 ~@171]/8", // C5 G#dim Am E C F C F …
AA: "[b4@2 c5@4 c5@8 b4@7 ~ [a3,c4,f4]@8 [b3,d4,g4]@7 ~ [c4,e4,g4]@12 [d4,g4,b4]@2 ~ [a4,c5]@7 ~ a4@3, ~@6 [d4,g4]@15 ~@31 e4@7 ~@5]/2", // F G C G Am G5
AB: "~@7 [c4,d4]@8 [b3,d4]@6 [g3,c4]@2 [g3,b3]@3 ~ [g3,b3]@4 [g3,c4,e4], ~@23 d4@7 ~@2", // Csus2 Bm C5 G C
AC: "~@3 [g3,c4]@4 c4@12 c4@2 f4@2 [f4,c5]@8 [f4,c5], ~@7 [c3,f3]@16 ~@9", // C5 F5
AD: "~@7 [g3,c4,d4]@12 c4@4 b3@9, ~@19 [g3,d4]@13", // Gsus4 G5
AE: "[~@7 [f3,a3,c4]@31 ~ [g3,c4,e4]@32 [c4,f4,a4]@15 ~ [d4,e4,g4]@8 [c4,d4,f4]@7 ~ [g3,c4,e4]@15 ~ [g3,b3,e4]@9]/4", // F C F Em7 Dm7 C Em
AF: "[~@19 c5@2 ~@4 g4@3 ~@7 b4@2 c5@2 ~ [e4,a4,c5]@15 ~ [d4,g#4,b4]@15 ~ [g3,c4,e4]@15 ~ [d3,a3,d4]@15 ~ [a3,c4,f4,a4]@31 ~ [c4,d4,g4]@16 [c#4,d#4,g#4]@16 [c#4,d#4,g#4]@3 ~@21, ~@7 [a3,c4,f4]@14 b4@4 ~@4 a4@6 ~@157, ~@23 [g3,b3,e4]@7 ~ [a3,c4,d4]@7 ~@154]/6", // Am G#dim C D5 F Csus2 C#sus2 F …
AG: "[~@9 [a3,d4,f#4]@16 [b3,d4,f#4]@16 d4@16 c#4@7, ~@41 [e4,a4]@23]/2", // D Bm A5
AH: "[~ [f#4,a4,d5]@8 b3@12 b3@4 [d4,g4]@8 b4@2 c#5@2 d5@4 d5@8 c#5@7 ~ [b3,d4,g4]@7, ~@9 [d4,g4]@15 ~ b3@15 ~ [e4,a4]@16 ~@7]/2", // D G5 G G5 A5
AI: "~@2 [c#4,e4,a4]@7 ~ [d4,f#4,a4]@12 [e4,a4,c#5]@2 [f#4,b4,d5]@7 ~", // A D A Bm
AJ: "[b4@9 ~ [d4,e4]@8 [c#4,e4]@6 [a3,d4] ~ [a3,c#4]@4 [a3,c#4]@4 [a3,c#4,e4]@4 [a3,d4]@4 d4@12 d4@2 g4@2 ~ [g4,d5]@8 [g4,d5]@7 ~ [a3,d4,e4]@12 d4@4 c#4@15 ~ [a3,d4,f#4]@11 ~ [a3,d4,f#4]@4 [b3,d4,f#4]@12 [b3,d4,f#4]@4 d4@16 c#4@7 ~ [f#4,a4,d5]@8 ~ b3@12 b3@3 ~ [d4,g4]@8 b4@2 c#5@2 d5@3 ~ d5@8 c#5@7 ~ [b3,d4,g4]@8 [c#4,e4,a4]@7 ~ [d4,f#4,a4]@12 [e4,a4,c#5]@2 [f#4,b4,d5]@6, ~@26 e4@7 ~@9 [d3,g3]@16 ~@29 [a3,e4]@19 ~@33 [e4,a4]@24 ~@9 [d4,g4]@16 b3@15 ~ [e4,a4]@16 ~@36]/8", // Dsus2 C#m D5 A D5 G5 Asus4 D …
AK: "[~@2 b4@9 ~ [d4,e4]@8 [c#4,e4]@6 [a3,d4] ~ [a3,c#4]@4 [a3,c#4]@3 ~ [a3,c#4,e4]@4 [a3,d4]@3 ~ d4@11 ~ d4@2 g4@2 [g4,d5]@8 [g4,d5]@7 ~ [a3,d4,e4]@11 ~ d4@4 c#4@14 ~@2 [b3,d4]@16 [b3,d4]@8 [d3,g3,b3]@8 [d3,f#3,a3]@58 ~@26, ~@28 e4@7 ~@9 [d3,g3]@16 ~@28 [a3,e4]@18 ~@2 g4@24 ~@92]/7", // Dsus2 C#m D5 A D5 G5 Asus4 Bm …
})).s("gm_epiano2").gain(0.32).pan(0.1)
// chords · string ensemble 1
const string_ensemble_1 = note(`<
~ A@2 ~@4 B C D E F G H I J K L M N O P Q R S T U V W X@2 Y@2 Z@2 AA AB AC@5 AD AE@8 AF@4 AG@2 AH@2 AI@6 AJ@2 AK@8
>`.pickRestart({
A: "[~@3 b3@8 c4@7 d4@45 ~]/2", B: "[c4,e4]@31 ~", C: "[b3,d4]@23 ~ [c4,e4]@7 ~", D: "[d4,f4]",
E: "[d4,g4]@3 [g#4,b4]", F: "[a3,a4]@15 ~ [g#3,g#4]@16, e4", G: "[g3,c5]@15 ~ [f#3,e5]@16, e4@31 ~",
H: "[f4,a4]@16 [e4,g4]@15 ~", I: "[a2,f4,a4,f5]@16 [b2,d4,g4,g5]@15 ~", J: "c3@16 a2@15 ~, [e4,g4,e5]@31 ~",
K: "[g2,c4]@16 b3@15 ~, [d4,g4]@31 ~, ~@2 g2 ~", L: "f2@16 a2@15 ~, [c4,f4,a4]@31 ~",
M: "c4@8 b3@7 ~ [a2,c4,f4,a4]@8 [b2,g3,g4,b4]@7 ~, [g2,g4] ~", N: "g4@16 a4@15 ~, [c4,e4]@31 ~",
O: "c5@6 b4@7 ~ b4@10 c5@4 g4@4, g3@31 ~, d4@23 ~@9", P: "[c4,f4,a4]", Q: "c4@16 ~ b3@15, [d4,g4]",
R: "~ [f2,a3,c4]@31", S: "~ [c2,e3,g3,c4]@31", T: "~ [c2,g3,c4,e4]@15", U: "~ [g2,g3,b3,d4]@15",
V: "~@9 f4@7, ~ [f2,a3,c4]@15", W: "~ [g2,c4]@8 [g2,b3]@7, ~ [g3,d4]@15",
X: "[~@3 [c2,g3,c4,e4]@32 [g3,b3,d4]@29, ~@35 g2@24 ~@5]/2", // C G
Y: "[~@20 f4@16 [g3,c4]@15 ~ b3@4 a3@4 [g#3,b3]@4, ~ [f2,a3,c4]@8 ~@4 g3@2 ~]/2", // C5 G#m F
Z: "[~@5 [e4,a4,c5]@16 [g#4,b4,d5]@15 ~ c6@12 b5@2 c6@2 [a3,d4,d6]@11, ~@37 [c4,e4]@17 ~@10]/2", // Am G#dim D5 C
AA: "~@5 [f3,a3,f4]@15 ~ [e3,g3,c4]@11", AB: "~@5 [f4,c5,f5]@16 [d4,d5,g5]@11",
AC: "[~@5 c3@16 a2@15 ~@2 [g2,c4]@15 ~ [g2,b3]@8 [e3,g3,c4]@8 f2@16 a2@15 ~ c4@8 b3@7 ~ [a2,c4,f4,a4]@8 [b2,g3,g4,b4]@7 ~ g4@16 a4@10, ~@5 [e4,g4,e5]@32 ~ [d4,g4]@24 ~@8 [c4,f4,a4]@31 ~ [g2,g4]@16 ~@16 [c4,e4]@26]/5", // C5 G C F Em G5 F G …
AD: "~@7 c5@6 b4@7 ~ b4@10 c5, ~@7 [g3,d4]@25", // G5
AE: "[~@3 g4@4 ~@32 c4@16 [b3,d5]@16 [f2,a3,c4,c5]@31 ~ [c2,e3,g3,c4]@31 ~ [c4,f4,a4]@16 [b3,e4,g4]@7 ~ [a3,d4,f4]@7 ~ c5@16 d5@7 ~ e5@7 ~ [f4,a4,c5]@16 [e4,g4,b4]@8 [d4,f4,a4]@7 ~ [e4,c5,a5]@16 [e4,b4,b5]@9, ~@7 [c4,f4,a4]@32 [d4,g4]@31 ~@97 [c2,g3,e4]@31 ~@58, ~@23 c5@31 ~@202]/8", // Bm F C F Em Dm F Em …
AF: "[~@8 [c4,c5,e5]@15 ~ [a3,b4,d5]@15 ~ c5@23 ~ d5@4 d5@3 ~ [d4,c5,g5]@16 [c#4,g#4,g#5]@15 ~ [c#4,g#4,g#5]@3 ~@21, ~@5 [a3,f4]@4 ~@7]/4", // C Bm7 Csus2 C#5 Dm
AG: "[~@8 d3@16 ~ b2@15 ~ [a2,d4]@16 [a2,c#4]@7, ~@8 [f#4,a4,f#5]@31 ~@2 [e4,a4]@23]/2", // D5 A F#m A5
AH: "[~ [f#3,a3,d4]@8 g2@16 b2@15 ~ d4@8 c#4@7 ~ [b2,d4,g4,b4]@7, ~@9 [d4,g4,b4]@31 ~ [a2,a4]@16 ~@7]/2", // D G A
AI: "[~@2 a4@7 ~ a4@16 b4@15 ~ d5@6 c#5@7 ~ c#5@10 d5@4 a4@4 ~@33 d4@16 [c#4,e5]@16 d3@16 b2@15 ~ [a2,d4]@16 [a2,c#4]@5, ~ [c#3,a3,c#5]@7 ~@2 [d4,f#4]@31 ~ [a3,e4]@32 [d4,g4,b4]@32 ~ [e4,a4]@32 [f#4,a4,f#5]@31 ~ [e4,a4]@21, ~@91 d5@32 ~@69]/6", // C#m D5 A F#m D A5 G A5 …
AJ: "[~@4 [f#3,a3,d4]@8 g2@16 b2@15 ~ d4@8 c#4@7 ~ [b2,d4,g4,b4]@4, ~@3 [d4,g4,b4]@8 [a2,a4]@4 ~]/2", // D G A
AK: "[~@4 [c#3,a3,a4,c#5]@7 ~ a4@16 b4@15 ~ d5@6 c#5@7 ~ c#5@10 d5@4 a4@4 ~@32 d4@16 [c#4,e5]@16 [g2,b3,d4]@32 [d2,f#3,a3,d4]@55 ~@29, ~@12 [d4,f#4]@31 ~ [a3,e4]@31 ~ [d4,g4,b4]@31 ~ [e4,a4]@32 ~@116, ~@92 d5@31 ~@133]/8", // F#m C#m G D A5 G A5
})).s("gm_string_ensemble_1").gain(0.08)
// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
~@3 A@3 B C D E F G H I J K L M N O P Q R S T U@2 V W X@3 Y Z@5 AA@4 AB@4 AC AD AE AF@6 AG@4 AH AI@8 AJ@7
>`.pickRestart({
A: "[~@15 g3@2 c4@11 ~ g4@2 c5@2 ~@24 c5@6 g4@2 ~@14 a3@2 [a3,c4]@11 g4@2 a4@2, ~@33 b4@30 ~@2 a4@28 ~@3, ~@41 g4@22 ~@33, ~@49 b3@14 ~@33]/3", // Am
B: "c4@16 b3@15 ~, g4@31 ~", C: "~@2 c4@2 d4@2 e4@19 ~ e4@2 g4@2 c5@2", D: "~@12 c5@3 g4, b4@25 ~@7, ~@4 g4@11 ~",
E: "~@6 a3 c4 ~@6 g4 a4, a4@27 ~@5, ~@16 f4@15 ~", F: "c4@2 b3 ~, g4@3 ~",
G: "~@6 c5 ~@3 g#3 b3@4 c5, ~@2 c4@5 b4@8 ~, ~@3 e4@5 ~@8",
H: "c5@4 g3@2 c5@6 b4@2 c5@2 ~@6 c4@9 ~, ~@6 c4@10 e5@15 ~, ~@20 a3@11 ~", I: "~@6 g4@15 ~ g4@9 ~",
J: "[f4,a4,c5]@4 [f4,a4,c5]@4 [f4,a4,c5]@2 ~ [f4,a4,c5]@2 [f4,a4,d5]@2 ~ [d4,b4,d5]@8 c4@4 [d4,g4]@4", // F Dm G G5
K: "~@2 g3@4 ~ b3 ~@2 a3@2 a3@2 a3@2, ~@12 g3@4 c4@15 ~", L: "~@6 c4@2 ~@3 g4 c5@2 g4@2, ~@16 b3@9 ~@7",
M: "c3@6 c3@5 ~ [c3,f4]@3 ~ [a2,c4]@8 a3@2 b3@2 c4@3 ~, [a3,f4]@6 ~@2 [f4,a4]@7 ~, ~@24 a2@7 ~", // F5 Am Dm F
N: "[g3,e4,c5]@8 [g3,d4,b4]@7 ~ [a3,f4,a4]@7 ~ [b3,d4,g4]@7 ~", // C G Dm G
O: "~@6 b4 c5 ~@3 e4@3 b4 c5, ~@4 g3@13 ~@3 a3@10 ~@2, ~@6 c4@10 a4@11 ~@5",
P: "~@2 c5 ~@3 b4 ~@3 d4@2 c5@2 g4@2, c4@6 b4@5 ~@3 b4@6 ~@12, ~@8 b3@7 ~ b3@8 c4@8",
Q: "~ f4, a4@19 ~@13, ~@3 a3@5, ~@7 c4@9", R: "c4@3 c4 b3@4", S: "~ f4@6 e4@6 d4@4 c4@8 a3@7",
T: "~ g3@6 ~ e3@5 ~ d3@4 c3@12 [e3,g3]@2", // Em
U: "[[g3,c4]@2 [c3,g3]@13 ~@11 [e4,g4]@4 [g4,c5]@4 [g3,d4,b4]@30, ~@16 g3@13 ~@35, ~@18 c4@11 ~@35]/2", // C5 Em C5 G
V: "~ [f3,c4,a4]@15", W: "~ c4@8 ~@4 g4@3, ~ [g3,d4]@15, ~@9 b3@7",
X: "[~@3 g3@2 c4@2 d4@2 e4@20 e4@2 g4@2 c5@2 b4@4 b4@2 ~@2 g4@4 g4@2 ~@2 d4@4 d4@2 ~@3 g3@3 g3@2 ~ g3@2 [c4,a4]@12 ~@4 f4@12, ~@41 b4@26 ~@29, ~@49 g4@18 ~@15 c4@14, ~@57 d4@10 ~@13 a3@16]/3", // F
Y: "g4 a4 g4@12 ~@2",
Z: "[~@15 e4@2 a4@2 b4 c5 b4@10 e4@2 g#4@2 b4@2 c4@6 c4 ~@5 b4@2 c5@2 [d4,d5]@5 ~ [d4,d5]@2 [d4,d5]@7 ~ c4@6 g3@2 c4@2 g3@5 ~ c4@6 g3@2 c4@2 g3@4 a4 b4 c5@2 g4@2 f4@2 f4@3 ~@3 c5@2 d5@2 d5@7 ~ d5@6 ~@3 g3@5 [g3,c4,e4]@5 ~ [b3,d4]@2 g4@2 e4@6 a3@2 ~ a3@2, ~@37 c5@14 ~@18 c5@30 ~@61, ~@45 e4@7 ~@23 g4@15 ~ g4@8 ~@34 [c4,e4]@5 ~@22]/5", // D C Bm C
AA: "[~@2 [a3,e4]@4 c4@4 c4@2 c4@6 b3@2 c4@2 b3@4 ~@2 d4@2 [e4,g4]@4 [g3,c4]@4 c4@12 a3@2 b3@2 ~@8 a4@2 b4@2 c5@4 [g4,c5]@8 [g4,b4]@7 ~ [f4,a4,c5]@8 [d4,d5]@7 ~@13 b4@2 c5@2 a4@4 e4@2 a4@4, ~@6 g3@20 g3@4 ~@24 c4@13 ~@3 d4@16 ~@42]/4", // A5 Em C5 G F D
AB: "[~@7 [c4,d4,g4]@14 [c4,d4,g4]@2 b3@4 g3@3 ~ g3@4 g3@4 ~@16 c5@16 [c4,d4,g4]@11 ~ [c4,d4,g4]@3 ~ [b3,d4]@8 b3@2 c4@2 d4@3 ~@13 c5@4 g4@4 f4@2 e4@3, ~@23 [d4,g4]@15 ~@13 c4@20 ~@57, ~@53 f4@18 ~@16 g4@15 ~@26]/4", // Csus2 Bm G5
AC: "~ d4@2 f4@3 ~ e4@2 e4@2 g4@2 c5@4 e4@2 g4@2 b4@2 b4@3 ~ b4@2 c5@3",
AD: "~ e4@2 g4@2 a4@4 c4@2 f4@2 a4@4 c4@2 c5@2 b4@4 c4@2 b4@2 a4@3",
AE: "~ c4@2 a4@2 g4@4 d4@2 e4@2 c5@4 d4@2 e4@2 c5@2 b4@2 d4@2 e4@2 b4@3",
AF: "[~ g4@2 b4@2 a4@3 ~ c4@2 f4@2 a4@4 a4@2 c5@2 b4@4 g4@4 a4@5 ~ b4@5 ~ c4@2 e4@2 a4@4 ~ e4@2 ~ a3@2 ~ g#3@15 ~@7 e4@3 ~ c4@2 b3@2 c4@2 a3@4 a3@2 a3@6 a3@3 ~ [c3,f3,c4,a4]@16 [f3,c4,f4]@15 ~ g3@2 c4@2 d4@2 d4@4 c4@2 d4@3 ~ d#4@16 d#4@3 ~@21, ~@52 c4@2 ~@20 g3@7 ~@111, ~@76 c4@5 ~@111]/6", // F F5
AG: "[~@9 [a3,d4,f#4]@5 ~ [a3,d4,f#4]@5 ~ [c#4,e4]@2 a4@2 ~@6 b3@2 b3@3 ~ [b3,f#4]@4 d4@4 d4@2 d4@6 c#4@2 d4@2 c#4@4 ~@2 e4@2 [f#4,a4]@4 [a3,d4]@4 d4@12 b3@2 c#4@2 ~@8 b4@2 c#5@2 d5@4 [a4,d5]@8 [a4,c#5]@7 ~@2 [g4,b4]@6, ~@25 f#4@11 ~@5 a3@20 a3@4 ~@24 d4@13 ~@3 e4@16 d5@7]/4", // D C#m B5 F#m D5 A G
AH: "~@2 [e4,e5]@7 ~@13 c#5@2 d5@2 b4@4 f#4@2", // E
AI: "[b4@6 ~@4 [d4,e4,a4]@14 [d4,e4,a4]@2 c#4@4 a3@3 ~ a3@4 a3@4 ~@16 d5@16 ~ [d4,e4,a4]@11 ~ [d4,e4,a4]@3 ~ [c#4,e4]@8 c#4@2 d4@2 e4@3 ~ [a3,d4,f#4]@5 ~ [a3,d4,f#4]@5 ~ [c#4,e4]@2 a4@2 ~@6 b3@2 b3@3 ~ [b3,f#4]@4 d4@4 d4@2 d4@6 c#4@2 d4@2 c#4@4 a3@3 e4@2 [f#4,a4]@4 [a3,d4]@4 d4@12 b3@2 c#4@2 ~@8 b4@2 c#5@2 d5@4 [a4,d5]@8 [a4,c#5]@8 [g4,b4,d5]@8 [e4,e5]@7 ~@13 c#5@2 d5@2 b4@4, ~@26 [e4,a4]@15 ~@13 d4@20 ~@65 a3@20 ~@97, ~@56 g4@18 ~@17 a4@15 ~@17 f#4@11 ~@54 d4@13 ~@3 e4@16 ~@36]/8", // Dsus2 C#m D C#m B5 F#m D5 A …
AJ: "[f#4@2 b4@6 ~@4 [d4,e4,a4]@14 [d4,e4,a4]@2 c#4@4 a3@4 a3@3 ~ a3@3 ~@17 d5@16 [d4,e4,a4]@11 ~ [d4,e4,a4]@3 ~ [c#4,e4]@8 c#4@2 d4 ~ e4@3 ~ g4@6 f#4@6 e4@4 d4@8 b3@8 a3@61 ~@23, ~@28 [e4,a4]@15 ~@13 d4@20 ~@148, ~@58 g4@18 ~@16 a4@15 ~@117]/7", // Dsus2 C#m A5
})).s("gm_acoustic_guitar_nylon").gain(0.22).pan(0.9)
// other · string ensemble 1
const string_ensemble_1_2 = note("<A@4 ~@21 B C ~@5 D@8 E@3 F@4 ~@3 G@5 H I J K@2 ~@3 L@6 M@5 ~>".pickRestart({
A: "[~@43 [a2,f3]@8 [b2,g3]@15 ~@62, ~@27 g4@70 ~@31]/4", B: "~@16 g3 ~ [g3,c4] ~ [g3,c4] ~ [g3,c4] ~@9",
C: "~@18 [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~@7", // G5
D: "[~@20 b4@4 a4@4 b4@8 ~ a5@16 b5@16 c6@16 d6@15 ~ c6@48 g5@16 e5@16 c5@16 ~ c5@16 b4@8 c5@8 ~@26]/8",
E: "[~@14 b3 c4 d4 e4 f4 g4 a4 b4 c5@8 d5@8 e5@8 g5@22 ~@28]/3", F: "[~@23 c6@16 d6@16 d5@16 c6@32 ~@25]/4",
G: "[~@7 a5@16 ~ b5@16 [e5,c6]@16 [d5,d6]@15 ~ f5@32 g5@16 g#5@15 ~ g#5@4 ~@20]/5", // C D
H: "~@8 a5@4 f#5@2 e5@2 d5@4 c#5 ~@2 a4@2 d5@5 ~ c#5, ~@11 b4 ~@4", I: "b4 a4@7 ~ e5@7 ~ c#5@4 b4@4 a4@7",
J: "~ d5@8 b4@16 d5@7", K: "[~ d5@2 e5@2 f#5@4 a5@17 ~@4 a5@4 d6@3 ~ a5@3 ~@23]/2",
L: "[~@11 a5@32 a5@24 d6@4 e6@4 ~ d6@13 ~ d6 c#6 b5@7 ~ b5 ~ c#6 ~ d6@3 ~ d6@2 c#6@2 b5@2 a5@2 c#6@7 ~ d6@7 ~ e6@6 ~@2 a5@31 ~ a5@20]/6",
M: "[~@4 d6@7 ~ d6@32 d6@16 c#6@15 ~ d6@83 ~]/5",
})).s("gm_string_ensemble_1").gain(0.3).pan(0.3)
// chords · french horn
const french_horn = note(`<
~@7 A B C D E F G H I J K L M N O P Q R S T U V W@7 X Y@6 Z@7 AA@5 AB@4 AC@2 AD@8 AE@5 ~
>`.pickRestart({
A: "[c3,g3,c4]", B: "[d3,g3,d4]@23 ~ [g3,c4,e4]@8", C: "[a3,c4,f4]@31 ~",
D: "d4@16 ~@8 [g#3,g#4]@7 ~, [g3,g4]@3 ~, ~@16 b3@15 ~", E: "[a3,a4]@16 [g#3,g#4]@15 ~, e4",
F: "[g3,c4,g4]@16 e4@8 c4@7 ~, ~ [f#3,f#4]", G: "[a3,a4] ~, c4@15 ~", H: "[f4,a4]@16 [g4,b4]@15 ~",
I: "[g3,c4]@15 ~ [a3,c4]@15 ~, e4", J: "c4@16 b3@8 c4@7 ~, [g3,d4]@3 ~", K: "[f3,a3,c4]",
L: "[g3,c4,d4]@8 [g3,b3,g4]@8 [f3,c4,f4]@7 ~ [g3,d4,g4]@7 ~", M: "[e3,g3,c4]@16 [e3,a3,c4]@15 ~",
N: "[g3,c4,d4]@8 [g3,b3,d4]@8 [g3,b3,d4]@8 [c4,e4]@7 ~", O: "[a3,c4,f4]", P: "c4@16 ~ b3@15, [d4,g4]@31 ~",
Q: "~ [f3,a3,c4]@31", R: "~ [e3,g3,c4]@31", S: "~ [g3,c4,e4]@15", T: "~ [g3,b3,d4]@15", U: "~ [f3,c4,a4]@15",
V: "~ c4@8 b3@7, ~ [g3,d4]@15", // G5
W: "[~@3 [c3,g3,c4]@32 [d3,g3,d4]@24 ~ c4@8 [a3,c4,f4]@32 d4@16 ~@9 g#4@8 [a3,a4]@16 [g#3,g#4]@15 ~ [g3,c4,g4]@16 e4@8 c4@7 ~ [a3,a4]@16 ~@11, ~@100 [g3,g4]@24 g#3@7 ~@50 [f#3,f#4]@16 ~@27, ~@116 b3@16 ~ e4@32 ~@32 c4@27]/7", // C5 G5 F A G# C5 A G …
X: "~@5 [f4,a4]@16 [g4,b4]@11", // F G
Y: "[~@5 [g3,c4]@15 ~ [a3,c4]@15 ~@2 c4@16 b3@8 [c4,e4]@8 [f3,a3,c4]@32 [g3,d4,a4]@8 [g3,b3,g4]@8 [f3,c4,f4]@7 ~ [g3,d4,g4]@7 ~ [e3,g3,c4]@16 [e3,a3,c4]@15 ~@2 [g3,c4,d4]@7 ~ [b3,d4]@7 ~ [g3,b3,d4]@8 [c4,e4], ~@5 e4@32 ~ g3@32 ~@104 g3@8 ~@10, ~@38 d4@23 ~@131]/6", // C5 Am C F Gsus2 G F5 G5 …
Z: "[~@7 [a3,c4,f4]@32 c4@16 b3@15 ~ [f3,a3,c4]@31 ~ [e3,g3,c4]@31 ~ [c4,f4,a4]@16 [b3,g4]@8 [a3,f4]@8 [e3,g3,c4]@31 ~ [c4,f4,a4]@16 [b3,g4]@8 [a3,f4], ~@39 [d4,g4]@32 ~@153]/7", // F C F Em Dm C F Em …
AA: "[~@7 [a3,c4,e4]@16 ~ [b3,e4]@15 ~ [c4,e4,g4]@15 ~ [a3,d4,a4]@16 [f3,c4,f4]@32 [g3,d4]@15 ~ [g#3,d#4]@15 ~ [g#3,d#4]@3 ~@21, ~@23 g#3@15 ~@122]/5", // Am E5 C D5 F5 G5 G#5
AB: "[~@8 [a3,d4]@15 ~@2 [b3,d4]@15 ~ d4@16 c#4@8 [f#3,d4]@7 ~ [g3,b3,d4]@31 ~ [a3,d4,e4]@8 [a3,c#4,a4]@8 [g3,d4,g4]@7, ~@8 f#4@32 ~ a3@31 ~@56, ~@41 e4@24 ~@63]/4", // D5 Bm D G Asus4 A G5
AC: "[~@2 e4@7 ~ [f#3,a3,d4]@16 [f#3,b3,d4]@15 ~ [a3,d4,e4]@8 [a3,c#4,e4]@8 [a3,c#4,e4]@6, ~ [a3,a4]@7 ~@56]/2", // D Bm Asus4 A
AD: "[~@2 [d4,f#4]@7 ~ [b3,d4,g4]@32 ~ d4@15 ~ c#4@15 ~ [a3,d4]@15 ~ [b3,d4]@15 ~ d4@16 c#4@8 ~ [f#3,d4]@8 [g3,b3,d4]@31 ~ [a3,d4,e4]@8 [a3,c#4,a4]@8 [g3,d4,g4]@7 ~ [a3,e4,a4]@7 ~ [f#3,a3,d4]@16 [f#3,b3,d4]@15 ~ [a3,d4,e4]@8 [a3,c#4,e4]@8 [a3,c#4,e4]@4, ~@43 [e4,a4]@32 f#4@32 a3@32 ~@117, ~@107 e4@24 ~@125]/8", // D G D5 Bm D G Asus4 A …
AE: "[~@4 [d4,f#4]@7 ~ [b3,d4,g4]@32 d4@16 c#4@15 ~ [g3,b3,d4]@31 ~ [f#3,a3,d4]@52, ~@11 [e4,a4]@8 ~@21]/5", // D G D A5
})).s("gm_french_horn").gain(0.09)
// other · pan flute
const pan_flute = note("<~@22 A B@2 ~@50>".pickRestart({
A: "~@9 c6@7 b5@8 g5@8", B: "[~ a5@14 a5 c6 g5@44 ~@3, ~@17 a5 ~@46]/2",
})).s("gm_pan_flute").gain(0.32).pan(0.7)
// other · glockenspiel
const glockenspiel = note("<~@46 A B@2 C@2 D E F G ~@20>".pickRestart({
A: "~@9 e6@2 c6@2 e6@2 ~@2 e6@2 c6@2 e6@2 ~@2 e6@2 c6@2 e6@2 ~",
B: "[~ e6@2 c6@2 e6@2 ~@2 a5@2 f5@2 c5@4 f5@2 c6@2 b5@4 d6@2 b5@2 g5@2 f5@3 ~ a5@2 c6 ~@3 e6@2 c6@2 e6@2 ~@2 e6@2 c6@2 e6@2 ~@2 e6@2 c6@2 e6@2 ~]/2",
C: "[~ e6@2 c6@2 e6@2 ~@2 a5@2 f5@2 c5@4 f5@2 c6@2 b5@4 d6@2 b5@2 g5@2 f5@3 ~ a5@2 c6 ~ c6@2 a5@2 e5@2 ~ a5 ~ c6@2 a5@2 e5@2 a5 ~ b5@2 g#5@2 e5@2 g#5 ~]/2",
D: "b5@2 g#5@2 e5@2 g#5 ~@3 a4 ~ c5 ~ e5@3 ~ e5 ~ e5 ~ e5 ~@3 a5@2 f#5@2 d5@2",
E: "~@2 d5@2 e5@2 d5 ~@3 c6@2 a5@2 f5@2 ~@2 c6@2 a5@2 f5@2 c6@2 a5@2 f5@2 c5@2",
F: "c5 ~ a5 ~ f5 ~ c5 ~@3 c6@2 g5@2 d5@3 ~ c6@2 g5@2 d5@2 ~@2 c#6@2 g#5@2 d#5@2", G: "c#6 g#5 d#5 c#6 g#5 ~@11",
// … 244 more lines
More by Celine Dion
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.