0:00/0:00
// I Don't Know — Celine Dion
// 90 bpm, 6/8, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 133 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/3)
// 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
const bass = note(`<
~@52 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@2 Z AA Y AB AC AD G AE AF AG W AH AI AJ AK R S AL AM AN A AO AP
R AQ D AR AS AT AU G@2 AV S G AB G AW AX AY AZ BA Y BB BC BD BE BB BF BG BH BI BJ BD ~
>`.pickRestart({
A: "e1@17 ~@3 e1 ~@3", B: "e1@11 ~", C: "d1@17 ~@3 d1@3 ~", D: "d1@19 ~@5", E: "e1@17 ~@3 e1@2 ~@2",
F: "c1@3 ~ d1@3 ~", G: "e1@16 ~@4 e1@3 ~", H: "b1@3 ~ e1@13 ~@3 d1@4", I: "g1@16 ~@4 d1@3 ~", J: "g1@16 ~@4 g1@3 ~",
K: "d1@18 ~@2 d1@3 ~", L: "d2@15 ~ d1@8", M: "a1@17 ~@3 e1@4", N: "a1@12 ~@4 a1@3 ~ g1@4", O: "e1@16 ~@4 b0@3 ~",
P: "e1@12 ~@4 d1@3 ~ d1@2 ~@2", Q: "g1@8 ~@2 g1 ~", R: "g1@12 ~@4 g1@3 ~ a1@3 ~", S: "d1@8 ~@2 d1 ~",
T: "d1@13 ~@7 d1@2 ~@2", U: "c1@17 ~@3 g1@2 ~@2", V: "c2@13 ~@3 c1@3 ~ d1@3 ~", W: "g1@17 ~@3 g1@3 ~",
X: "f#1@3 ~ g1@3 ~ a1@3 ~ d1@3 ~ d1@3 ~ d1@3 ~", Y: "e1@17 ~@3 e1@3 ~", Z: "d1@17 ~@3 d1@4", AA: "d1@4 ~ d1",
AB: "c1@10 ~@2 d1@9 ~@3", AC: "e1@4 ~ e1", AD: "e1@6 ~@2 d2@4 e2@3 ~ a1@3 ~ g1@3 ~", AE: "e1@15 ~@5 e1@4",
AF: "c2@17 ~@3 c2@4", AG: "c2@13 ~@3 c2@3 ~ b1@3 ~", AH: "d1@9 ~ d1@2", AI: "e1@19 ~ e1@3 ~",
AJ: "e1@11 ~ d1@3 ~ d1@3 ~ d1@4", AK: "g1@15 ~@5 d1@3 ~", AL: "d1@13 ~@3 d1@3 ~ e1@3 ~", AM: "a1@17 ~@3 e1@3 ~",
AN: "a1@13 ~@3 a1@3 ~ g1@4", AO: "e2@7 ~ d2@5 ~@3 a1@2 ~@2 f#1@2 ~@2", AP: "g1@17 ~@3 d1@2 ~@2", AQ: "d1@5 ~",
AR: "c1@15 ~@5 c1 ~@3", AS: "c1@7 ~ c1@4 ~@4 c1@4 ~@4", AT: "g1@19 ~ g1 ~@3",
AU: "f#1@3 ~ g1@3 ~ a1@5 ~@3 d2@3 ~ e2@3 ~", AV: "d1@16 ~@4 d1@3 ~", AW: "c1@9 ~@3 d1@10 ~@2", AX: "e1@7 ~@3 e1 ~",
AY: "c1@11 ~ d1@9 ~@3", AZ: "e1@15 ~@5 e1@3 ~", BA: "c2@7 ~ c2@2 ~@2 d2@7 ~ d2@3 ~", BB: "c1@11 ~ d1@11 ~",
BC: "e1@14 ~@2 f#1@4 g1@3 ~", BD: "c2@7 ~ c2@3 ~ d2@7 ~ d2@4", BE: "e1@9 ~ e1 ~", BF: "e1@14 ~@2 f#1@3 ~ g1@3 ~",
BG: "c2@7 ~@5 d2@7 ~ d2@3 ~", BH: "e1@18 ~@2 e1@3 ~", BI: "c1@11 ~ d1@10 ~@2", BJ: "e1@15 ~ f#1@4 g1@2 ~@2",
})).s("gm_electric_bass_finger").gain(0.43)
// chords · distortion guitar
const distortion_guitar = note(`<
~@35 A B@2 ~@4 C@4 ~@36 D@2 E@2 F@2 ~@26 G@2 ~ H@2 ~@3 E@2 ~ I@3 J@2 ~@3
>`.pickRestart({
A: "[d5,f#5]", B: "[~ e2@47]/2", C: "[~@25 [b3,e4]@69 ~@2, ~@23 b2@71 ~@2, ~@24 [e3,g3]@71 ~]/4",
D: "[~@13 g4@35, ~ [b3,e4]@3]/2", E: "[e2@47 ~]/2", F: "[c3@47 ~]/2", G: "[~ [d4,a4,d5]@3]/2",
H: "[~@11 e5@34 ~@3]/2", I: "[~@7 [d3,a3,d4,f#4]@13 ~ [e3,b3,e4,g4]@41 ~@10]/3", J: "[~@19 a4@27 ~@2]/2",
})).s("gm_distortion_guitar").gain(0.12)
// chords · pad warm
const pad_warm = note(`<
A@4 B@4 C@6 D@3 E F@2 G@4 H@4 I@8 J@4 K@4 L@5 M@5 N@6 O@8 P@8 Q@4 R@8 S@4 T@6 U@2 V@7 W X@8 Y@2 Z@8 AA@6 ~
>`.pickRestart({
A: "[a4@6 ~@32 [d6,f#6]@47 ~@11, f#5@27 e6@56 ~@13, d5@11 ~ b5@72 ~@12, ~@6 a5@21 g5@35 ~@34, ~@6 [b4,e5]@23 ~@19]/4", // D E5
B: "[[e2,b3,e4,g4]@47 ~ [d2,a3,d4]@48, ~@47 f#4@48 ~]/4", // Em D5
C: "[[e2,b3,e4,g4]@23 ~ [g3,c4,e4]@10 ~@2 [a3,d4,f#4]@11 ~ e4@83 ~ [e4,g4,b4]@12, ~@23 c2@12 d2@12 e2@94 ~@3, ~@47 [b3,g4]@83 ~@14]/6", // Em C D Em
D: "[~@23 d5@24 [e2,b3,e4,g4,b4]@24 ~, [d2,d4,f#4,a4]@47 ~@25]/3", // Em D
E: "[c2,c4,e4,g4]@11 ~ [d2,a4]@12, ~@11 [d4,f#4]@10 ~@3", F: "[~ [b3,e4,b4]@46 ~, [e2,g4]]/2",
G: "[[g2,g4]@47 ~ d2@48, [d4,b4]@45 ~@2 [d4,f#4,a4]@46 ~@3]/4", // G D
H: "[[a2,c4,e4,a4]@47 ~ e2@36 [f#2,d4,f#4,a4]@11 ~, ~@47 [b3,e4,g4]@34 ~@15]/4", // Am D Em
I: "[[g2,g4,b4]@47 ~ [d2,f#4]@47 [c2,c4,e4]@48 [g2,b3]@24 ~ d2@24, d4@93 ~@50 d4@48 ~, ~@47 a4@46 ~@2 g4@71 ~ [a3,f#4]@24 ~]/8", // G D C G D
J: "[[e2,b3,e4]@47 ~ d2@48, g4@46 ~ [a3,d4,f#4]@48 ~]/4", // E5 D
K: "[[e2,b3]@23 [c2,c4]@12 [d2,d4,f#4,a4]@12 ~ [e2,b3,e4]@48, [e4,g4]@34 ~@13 g4@48 ~]/4", // E5 C D E5 Em
L: "[[e2,e4]@47 ~ c2@47 [g2,d4]@24 [d2,a3,f#4], [b3,g4]@46 ~ g4@71 ~@2, ~@47 [c4,e4]@48 b3@22 ~@3]/5", // E G5 D Em C
M: "[~@12 [b3,g4]@47 ~, ~@23 [e2,e4]@95 ~@2]/5", // Em E
N: "[[d2,a3,d4,f#4]@47 [e2,b3]@24 ~ c4@10 ~ [d2,a3,d4,f#4]@12 ~ [b3,g4]@45 ~@3, ~@47 [e4,g4]@36 ~@12 e4@45 ~@4, ~@71 c2@12 ~@12 e2@48 ~]/6", // D E5 D Em
O: "[[g2,g4,b4]@48 [d2,f#4]@48 a2@48 [e2,b4]@35 ~ f#2@11 ~, d4@93 ~@3 e4@80 ~@16, ~@48 a4@93 ~@3 g4@33 ~@2 [f#4,a4,d5]@11 ~@2, ~@32 c5@15 ~@17]/8", // G D E5 D
P: "[[g2,g4]@47 ~ d2@47 ~ [c4,e4,g4]@46 ~ [g2,b3,d4,g4]@24 ~ d2@24, d4@93 ~@2 c2@48 ~@49, b4@46 ~ [f#4,a4]@46 ~@74 [a3,d4,f#4]@24 ~]/8", // G C G F#m D
Q: "[[e2,b3,e4] [d2,a3,d4,f#4], g4@23 ~@25]/4", // E5 D
R: "[[e2,b3]@23 ~ c4@10 ~@2 f#4@11 ~@97 [c2,c4]@47 g2, [e4,g4]@35 a3@10 ~@2 e4@142 ~@3, ~@23 c2@12 [d2,d4]@12 b3@93 ~@52, ~@47 g4@46 ~@3 g3@94 ~@2, ~@16 e2@31 ~@17]/8", // E5 C Em D
S: "[[b3,d4,g4]@23 ~ [a3,d4,f#4]@22 ~@2 [g3,b3,e4]@33 ~@3 f#4@11 ~, ~@23 d2@24 e2@49, ~@83 [a3,d4]@11 ~@2]/4", // G D Em D5
T: "[[g2,g4,b4] [d2,f#4] [a2,e4,c5], d4@23 ~@13, ~@16 a4@31 ~]/6", // G D Am
U: "[[e2,e4,b4]@35 ~ f#2@11 ~, g4@33 ~@2 [d4,f#4,a4]@10 ~@3]/2", // E5 D
V: "[[g2,b4]@48 [d2,f#4,a4]@47 ~ [e4,c5]@45 ~@3 [d4,b4]@23 ~, d5@93 ~@3 g4@70 ~@2, g4@46 ~@49 c2@48 g2@25]/7", // G D C G
W: "[d2,d4,f#4,a4]", // D
X: "[[e2,e4,g4,b4]@48 [d4,f#4,a4]@45 ~@3 [e2,b4]@23 [c2,e4,g4,c5]@12 [d4,f#4,a4]@10 ~@3 e2@24 c2@11 [d4,f#4,a4]@10 ~@3, ~@48 d2@48 [e4,g4]@21 ~@14 d2@12 [e4,g4,b4]@36 d2@13]/8", // Em D E5 C D Em
Y: "[e2@23 c2@13 [d2,d4,f#4,a4]@11 e2, [e4,g4,b4]@3 ~]/2", // D Em
Z: "[~@23 c2@12 ~ [d4,f#4,a4]@11 ~@25 c2@12 [d2,d4,f#4,a4]@11 ~@25 c2@11 ~ [d4,f#4,a4]@11 ~@25 c2@11 ~ [d4,f#4,a4]@11 e2, [e4,g4,b4]@35 d2@12 e2@25 ~@23 e2@25 ~@11 d2@13 [e4,g4,b4]@36 ~@12, ~@48 [e4,g4,b4]@36 ~@12 [e4,g4,b4]@36 ~@11 e2@25 ~@11 d2@12 ~]/8", // D Em
AA: "[~@24 c2@12 [d2,d4,f#4,a4]@11 ~@25 c2@11 ~ [d4,f#4,a4]@11 ~@24 c2@12 ~ [d4,f#4,a4]@11 ~, [e4,g4,b4]@35 ~@12 e2@25 ~@11 d2@13 [e4,g4,b4]@36 ~@12, ~@48 [e4,g4,b4]@35 ~@12 e2@25 ~@11 d2@13]/6", // D Em
})).s("gm_pad_warm").gain(0.1).pan(0.3)
// other · pad new age
const pad_new_age = note(`<
A@6 ~@2 B@2 ~@2 C@3 ~ D@2 E@2 F@2 ~@2 G@4 H@6 I@2 J@2 K L J@3 M N J O P Q R S P T@2 U V J W J M X Y Z AA AB AC AD AE
AF AG AH AI AJ AK AL AM T@2 U V J W J M AN N AO AP AQ AR AS AT X AU AV AW AX AY AZ BA BB BC AA BD J M BE BF AP BG BH
BI BJ BK P BL J BK AN BM BN BO BP BQ BR BQ BJ BS BT BU BP BV ~
>`.pickRestart({
A: "[~@4 g5@43 ~]/6", B: "[g5@3 ~]/2", C: "[~@23 b5@28 ~@21, g5@47 ~@25]/3", D: "[g5@37 ~@11]/2", E: "[~ g5@46 ~]/2",
F: "[~ g5@44 ~@3]/2", G: "[c6@48 g5@35 ~@13]/4",
H: "[~@36 d6@11 ~@49 g5@44 ~@4, g5@47 d5@47 ~ c6@44 ~@5, ~@12 d6@23 ~]/6", I: "[~@21 [a5,d6,f#6]@26 ~]/2",
J: "e6 f#6 g6 a6 g6 f#6", K: "d6 e6 f#6 g6 f#6 e6", L: "d6 e6 f#6 g6 f#6 d6", M: "e6@4 f#6@4 g6@4 a6@4 g6@4 f#6@3 ~",
N: "e6@3 ~ f#6@4 g6@4 a6@4 g6@4 f#6@3 ~", O: "e6@3 ~ f#6@3 ~ g6@4 a6@3 ~ g6@4 f#6@4",
P: "e6@3 ~ f#6@3 ~ g6@4 a6@3 ~ g6@4 f#6@3 ~", Q: "d6@4 e6@4 g6@3 ~ a6@3 ~ g6@4 f#6@4",
R: "d6@4 g6@4 a6@4 g6@4 f#6@4 d6@3 ~", S: "e6@3 ~ f#6@3 ~ g6@4 a6@4 g6@3 ~ f#6@3 ~",
T: "e6@3 ~ f#6@3 ~ g6@3 ~ a6@3 ~ g6@4 f#6@4", U: "d6@4 e6@3 ~ f#6@3 ~ g6@4 f#6@4 e6@4",
V: "d6@4 e6@3 ~ f#6@4 g6@4 f#6@4 d6@4", W: "e6 f#6 g6 f#6 e6 d6", X: "g6 a6 b6 c7 b6 a6", Y: "g6 a6 b6 c7 b6 g6",
Z: "f#6 g6 a6 b6 a6 g6, ~@8 g6 ~@15", AA: "f#6 g6 a6 b6 a6 g6", AB: "a6@4 b6@4 c7@4 d7@4 c7@3 ~ b6@4",
AC: "a6@3 ~ b6@3 ~ c7@4 d7@3 ~ c7@4 b6@3 ~", AD: "g6@4 a6@3 ~ b6@4 c7@3 ~ b6@3 ~ a6@3 ~",
AE: "g6@4 a6@3 ~ b6@4 f#6@4 g6@3 ~ a6@4", AF: "g6@3 ~ a6@3 ~ b6@3 ~ c7@3 ~ b6@4 a6@3 ~",
AG: "g6@3 ~ a6@3 ~ b6@3 ~ c7@3 ~ b6@3 ~ g6@4", AH: "f#6@3 ~ g6@3 ~ a6@3 ~ b6@3 ~ a6@3 ~ g6@3 ~",
AI: "f#6@3 ~ g6@3 ~ a6@4 b6@3 ~ a6@3 ~ g6@3 ~", AJ: "e6@4 f#6@3 ~ g6@4 a6@3 ~ g6@3 ~ f#6@4",
AK: "e6@4 f#6@3 ~ g6@4 a6@4 g6@4 e6@3 ~", AL: "g6@4 b6@4 d7@4 g6@4 f#6@4 e6@3 ~",
AM: "f#6@4 d6@4 e6@3 ~ f#6@4 e6@4 d6@3 ~", AN: "e6@4 f#6@3 ~ g6@4 a6@4 g6@4 f#6@3 ~",
AO: "e6@4 f#6@3 ~ g6@4 a6@4 g6@3 ~ f#6@3 ~", AP: "e6@4 f#6@3 ~ g6@4 a6@3 ~ g6@3 ~ f#6@3 ~",
AQ: "g6@4 b6@4 d7@4 g6@4 f#6@3 ~ e6@4", AR: "f#6@3 ~ d6@4 e6@3 ~ f#6@4 e6@4 d6@3 ~",
AS: "e6@3 ~ f#6@3 ~ g6@3 ~ f#6@4 e6@4 d6@4", AT: "e6@4 f#6@4 g6@4 f#6@3 ~ g6@4 a6@4",
AU: "g6@4 a6@4 b6@4 c7@4 b6@4 g6@3 ~", AV: "f#6@3 ~ g6@3 ~ a6@4 b6@3 ~ a6@4 g6@4",
AW: "f#6@3 ~ g6@3 ~ a6@4 b6@3 ~ a6@4 g6@3 ~", AX: "a6@4 b6@3 ~ c7@3 ~ d7@3 ~ c7@4 b6@4",
AY: "a6@3 ~ b6@3 ~ c7@3 ~ b6@4 a6@4 f#6@4", AZ: "g6@4 a6@3 ~ b6@3 ~ c7@3 ~ b6@3 ~ a6@3 ~",
BA: "g6@3 ~ a6@3 ~ b6@4 f#6@3 ~ g6@4 a6@3 ~", BB: "g6@4 a6@4 b6@4 c7@3 ~ b6@4 a6@4",
BC: "g6@3 ~ a6@4 b6@4 c7@3 ~ b6@4 g6@4", BD: "f#6@4 g6@4 a6@4 b6@3 ~ a6@4 f#6@4",
BE: "g6@4 d6@4 e6@4 g6@4 f#6@4 e6@3 ~", BF: "f#6@4 d6@4 e6@3 ~ f#6@3 ~ g6@3 ~ a6@3 ~",
BG: "e6@3 ~ f#6@3 ~ g6@3 ~ a6@3 ~ g6@3 ~ f#6@3 ~", BH: "d6@4 e6@3 ~ f#6@4 g6@3 ~ f#6@3 ~ e6@4",
BI: "d6@3 ~ e6@3 ~ f#6@3 ~ g6@3 ~ f#6@4 d6@4", BJ: "e6@3 ~ f#6@3 ~ g6@3 ~ a6@3 ~ g6@4 f#6@3 ~",
BK: "e6@3 ~ f#6@4 g6@4 f#6@3 ~ e6@4 d6@4", BL: "e6@3 ~ f#6@3 ~ g6@4 f#6@4 e6@4 d6@3 ~",
BM: "e6@3 ~ f#6@3 ~ g6@4 f#6@4 e6@3 ~ d6@4", BN: "e6@4 f#6@3 ~ g6@4 a6@3 ~ g6@4 f#6@3 ~",
BO: "e6@3 ~ f#6@4 g6@4 f#6@4 e6@3 ~ d6@4", BP: "e6@3 ~ f#6@4 g6@3 ~ a6@3 ~ g6@3 ~ f#6@3 ~",
BQ: "e6@3 ~ f#6@3 ~ g6@4 f#6@3 ~ e6@3 ~ d6@4", BR: "e6@3 ~ f#6@4 g6@3 ~ a6@4 g6@4 f#6@4",
BS: "e6@3 ~ f#6@4 g6@4 f#6@4 e6@3 ~ d6@3 ~", BT: "e6@3 ~ f#6@3 ~ g6@4 a6@3 ~ g6@3 ~ f#6@3 ~",
BU: "e6@3 ~ f#6@3 ~ g6@4 f#6@3 ~ e6@3 ~ d6@3 ~", BV: "e6@3 ~ f#6@3 ~ g6@3 ~ f#6@3 ~ e6@3 ~ d6@3 ~",
})).s("gm_pad_new_age").gain(0.23).pan(0.9)
// other · pad new age · soft notes
const pad_new_age_soft = note("<A@8 B@4 C@2 D@2 E@2 F@2 G@8 H@6 ~@99>".pickRestart({
A: "[[a4,d5,f#5]@11 ~ b4@129 ~@2 [a4,f#5]@48 ~, e3@71 ~@25, ~@11 e5@128 ~@3 d5@50]/8", // D
B: "[b4@22 ~ c5@10 ~@3 a4@10 ~@2 b4@48, e5@35 [d5,f#5]@12 [e5,g5]@49]/4", C: "[[b4,e5]@23 ~]/2",
D: "[~@12 d6@11 ~, f#5@23 ~, ~ [d5,a5]@46 ~]/2", E: "[b4@22 ~@2 c5@11 ~@2 [d5,a5]@11, e5@36 f#5@11 ~]/2",
F: "[~ b4@46 ~, e5@23 ~]/2",
G: "[~ b5@45 ~ f#5@48 ~@49 b5@35 ~ [d5,f#5,a5]@11 ~, ~ d6@95 e5@83 ~@13, ~@23 a5@49 ~@24]/8", // D
H: "[b5@47 ~ a5@47 c5@45 ~@4, d5@37 ~@10 f#6@47 ~@50]/6",
})).s("gm_pad_new_age").gain(0.13).pan(0.9)
// chords · pad bowed
const pad_bowed = note("<A@4 ~ B@2 C@5 D@4 E@2 F@4 G@2 H@2 I J K@6 L@2 M@2 ~ N O P@3 ~@89>".pickRestart({
A: "[~@61 [g6,b6,e7]@35, ~@4 b5@45 e4@47, ~@7 f#6@48 ~@2 e5@39, ~@8 b6@21 ~@19, ~@27 e6@32 ~@37]/4", // Em
B: "[~@11 b5@22 ~@15]/2", C: "[~@4 d5@40 ~@2 e5@12 ~ d5@8 b4@12 ~@5 [e6,g6,b6]@36, ~@79 e5@38 ~@3]/5",
D: "[g4@23 ~ g5@23 f#4@24 f#5@23 ~@2, [b4,e5]@47 [a4,d5]@47 ~@2]/4", // E5 D5
E: "[[e6,g6]@11 ~@12 c7@12 ~@13, b6@11 ~@13, ~@11 [e7,g7]@24 ~@13]/2", F: "[[b6,e7,g7]@41 ~@4 d6@50 ~]/4",
G: "[a6@12 g6@11 f#6@22 ~@3, [a5,d6]@23 ~]/2", H: "[a5@23 a6@24 ~, [c6,e6]]/2", I: "[e6,g6,b6]@11 ~",
J: "[e6,g6]@11 [d6,f#6,a6]@11 ~@2, b5@3 ~@5", // Em D
K: "[[b5,d6,g6]@22 ~ [g6,a6,d7]@23 ~ [f#6,a6,d7]@46 ~@27 a6@21 ~@3, ~@95 [e6,g6,d7]@47 ~@2]/6", // G Gsus2 D Em7
L: "[[d6,g6,b6]@29 ~@19]/2", M: "[[b5,e6,g6,b6]@11 ~]/2", N: "d6 d7, [e6,a6]@7 ~", O: "d6 b6, [e6,a6]",
P: "[~@47 e7@22 ~@3, ~@23 [e6,g6]@46 ~@3, ~@12 b6@23 ~]/3", // Em
})).s("gm_pad_bowed").gain(0.3)
// chords · pad bowed · soft notes
const pad_bowed_soft = note("<~@2 A@3 ~@14 B@3 ~@111>".pickRestart({
A: "[~@5 b4@5 ~@8 g4@30 ~@24, ~@14 b4@35 ~@23]/3", B: "[~@11 [g5,b5]@25]/3",
})).s("gm_pad_bowed").gain(0.17)
// chords · string ensemble 2
const string_ensemble_2 = note("<~@52 A@2 B@2 C@4 D@8 E@8 F@2 G@2 H@2 F@2 ~@8 D@8 E@8 F@2 G@2 H@20 ~>".pickRestart({
A: "[e4,g4,b4]/2", B: "[d4,f#4,a4]/2",
C: "[[e4,g4,b4]@23 [c4,e4,g4]@11 ~ [d4,f#4,a4]@12 ~ e4@46 ~@2, ~@47 [g4,b4]@47 ~@2]/4", // Em C D G
D: "[[g4,b4]@47 f#4@48 ~@49 b4@35 ~ [d4,f#4]@11 ~, d4@95 c5@49 ~@48, ~@47 a4@97 g4@34 ~ a4@11 ~@2, ~@96 e4@83 ~@13]/8", // G D
E: "[[g4,b4]@47 [f#4,a4]@48 [c4,e4]@49 b3@23 ~ a3@23 ~, d4@94 ~ g4@72 f#4@23 ~@2, ~@144 d4@47 ~]/8", // G F#m C
F: "[b3,e4,g4]/2", G: "[a3,d4,f#4]/2", H: "[b3@22 ~@2 c4@10 ~ [a3,d4,f#4]@13, [e4,g4]@35 ~@13]/2",
})).s("gm_string_ensemble_2").gain(0.11).pan(0.9)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
~@52 A B@2 ~ C ~ C ~ D ~ E ~ F ~ G ~ H ~ E ~ I ~ H J K ~ L ~ C ~ C ~@9 M ~ N ~ O ~ P Q R ~ E ~ S ~ R T A ~ L ~ C ~ U ~
U ~ U ~ U ~ U ~ U ~ U ~ U ~ U ~@2
>`.pickRestart({
A: "~@6 [b3,g4,b4] ~@5", B: "[~@8 d4@19 ~@9 [d4,f#4,a4] ~@11, e3@9 ~@7, ~@2 g3@11 ~@11]/2", C: "~@12 [e4,g4,b4] ~@11",
D: "~@12 [b3,d4,g4] ~@11", E: "~@12 [f#4,a4,d5] ~@11", F: "~@12 [c4,e4,a4] ~@11", G: "~@12 [g4,b4,e5] ~@11",
H: "~@12 [g4,b4,d5] ~@11", I: "~@12 [e4,g4,c5] ~@11", J: "~@2 e4, d3 d4@2, ~ a3@5", K: "~@12 [b3,g4,b4] ~@11",
L: "~@12 [d4,f#4,a4] ~@11", M: "~@13 d4 ~@10, ~@6 [b3,g4] ~@5", N: "~@6 a4 ~@5, ~@11 [f#4,d5]@2 ~@11",
O: "~@6 [c4,e4,a4] ~@5", P: "~@6 [g4,b4,e5] ~@5", Q: "~@8 d4@3 ~@9 d3@4, a2, ~@4 a3@11 ~ a3@8, ~ d4",
R: "~@6 [g4,b4,d5] ~@5", S: "~@6 [e4,g4,c5] ~@5", T: "~@2 e4, d3, ~ a3@5, ~ d4@2", U: "~@6 [e4,g4,b4] ~@5",
})).s("gm_electric_guitar_clean").gain(0.25)
// chords · rock organ
const rock_organ = note(`<
A@6 B@8 C@4 D@2 E@4 F@4 G@8 H@2 I@4 J@8 K@4 L@2 M@2 D@2 N@8 O@4 P@4 Q@2 R@3 S@8 T U@2 V@7 W@5 X@4 Q@2 Y@2 Z@2 AA@2 Z@2
AB@2 Z@2 AC@2 AD@6 AE@2 ~
>`.pickRestart({
A: "[[b4,e5,g5,b5]@143 ~]/6", // Em
B: "[[a4,d5,f#5]@47 [b4,g5]@23 ~ [g4,c5]@12 ~ [a4,d5]@11 ~ [b4,g5]@95 ~, ~@47 e5@36 f#5@12 e5@94 ~@3]/8", // D Em C5 D5 Em
C: "[[a4,d5,f#5]@47 ~ b4@22 ~ [g4,c5]@11 ~@2 [a4,d5]@11 ~, ~@47 e5@36 ~@13, ~@47 g5@23 ~@13 f#5@12 ~]/4", // D C5 D5
D: "[b4,e5,g5]/2", E: "[[b4,g5]@47 [a4,f#5]@48 ~, d5]/4",
F: "[[c5,a5]@48 [b4,g5]@35 ~ [d5,f#5,a5]@11 ~, e5@85 ~@11]/4", // F Em D
G: "[[g5,b5]@48 [f#5,a5]@47 [c5,e5]@49 b4@23 ~ [a4,f#5]@24, d5@94 ~ g5@72 ~@25, ~@3 d5]/8", H: "[[b4,e5,g5]@47 ~]/2",
I: "[[a4,d5,f#5]@47 ~ b4@24 c5@11 ~ [d5,f#5]@12, ~@47 g5@35 ~ a4@11 ~@2, ~@4 e5@3 ~]/4", // D
J: "[b4@95 c5@47 ~@2 b4@23 ~ a4@23 ~, g5@166 ~ f#5@24 ~, e5@143 ~ d5@48]/8", K: "[~ g5@95, [b4,e5]]/4",
L: "[a4,d5,f#5]/2", M: "[b4@24 c5@11 ~ [a4,d5,f#5]@12, [e5,g5]@3 ~]/2",
N: "[[g5,b5]@48 f#5@48 c6@47 ~ [g5,b5]@36 [d5,f#5,a5]@10 ~@2, d5@95 ~ e5@83 ~@13, ~ a5@2 ~]/8", // G D
O: "[[g5,b5] [f#5,a5], d5@95 ~]/4", P: "[[c5,e5]@48 b4@22 ~@2 a4@23 ~, g5@71 f#5@24 ~, ~@48 d5@47 ~]/4",
Q: "[e5,g5,b5]/2", R: "[[d5,f#5,a5]@47 [e5,g5,b5]@25]/3",
S: "[c6@12 [d5,f#5,a5]@11 ~@97 c6@47 ~ [d5,b5]@24, ~@23 b5@97 ~@72, ~@24 g5@167 ~, ~ e5@6 ~]/8", T: "[f#5,a5]",
U: "[[e5,g5,b5]@3 [d5,f#5,a5]]/2", V: "[[g5,b5]@47 ~ f#5@47 ~ c6@48 [g5,b5]@24, d6@95 ~ e5@72, ~@48 a5@95 ~@25]/7",
W: "[~@6 [f#5,a5]@6 [g5,b5]@24 [f#5,a5]@23 ~, ~@12 d6@107 ~]/5", X: "[[e5,c6]@2 b5 [f#5,a5], g5@35 ~@13, ~ d5]/4",
Y: "[d5,f#5,a5]/2", Z: "[b5@2 c6 [d5,f#5,a5], [e5,g5]@35 ~@13]/2",
AA: "[b5@23 c6@13 [d5,f#5,a5]@11 ~, [e5,g5]@35 ~@13]/2", AB: "[b5@2 c6 [d5,f#5,a5], [e5,g5]@3 ~]/2",
AC: "[b5@24 c6@11 ~ [d5,f#5]@11 ~, [e5,g5]@35 a5@12 ~]/2", AD: "[b5@24 c6@12 [d5,f#5,a5]@11 ~, [e5,g5]@35 ~@13]/2",
AE: "[b5@24 c6@11 ~ [d5,f#5,a5]@10 ~@2, [e5,g5]@35 ~@13]/2", // D Em
})).s("gm_rock_organ").gain(0.05).pan(0.4)
// drums · kick
const kick = s("bd").struct(`<
~@42 A ~@9 B A B A B A B@3 A B A B A B@3 A B A B A B@3 A B A B A B C B A B A B A B@3 A B A B A B A B A B A B A B A B A
B A B A B A B A B@3 A B@3 A B@3 A B@2 ~
>`.pickRestart({
A: "x", B: "x ~@4 x", C: "x ~ x ~@2 x",
})).gain(0.4)
// drums · snare
// … 117 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.