0:00/0:00
// A New Day Has Come — Celine Dion
// 92 bpm, 4/4, key F# 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: 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(92/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
const bass = note(`<
~@3 A B C D E F E ~ E F E G C B C H C B I J A B C D A K L M N O P Q N O R S C D A K C B C T C B I U A B C D A K L M
~@3 V N O R W N O X Y N O X Y Z C D A K C D A K C D A K C D A K AA ~@6 AB AC@3
>`.pickRestart({
A: "d#2 ~ d#2@2 ~@4 b1 ~ b1@2 ~@4", B: "f#1 ~ f#1@2 ~@4 c#1 ~ c#1@2 ~ c#1@2 ~", C: "d#1 ~ d#1@2 ~@4 b1 ~ b1@2 ~@4",
D: "f#1 ~ f#1@3 ~@2 f#1 c#1@2 ~ c#2@3 c#1@2", E: "d#2 ~ d#2 ~@13", F: "~@13 d#3 c#3 ~",
G: "d#2 ~ d#2@2 ~@4 c#2 ~ c#2@2 ~@4", H: "f#1 ~ f#1@3 ~@2 f#1 c#1@2 c#1@2 ~ c#1 c#1@2",
I: "b1 ~ b1@2 ~@4 b1 ~ b1@2 ~@4", J: "d#2@3 d#1@2 ~ c#2@7 ~ c#2@2", K: "f#1 ~ f#1@2 ~@4 c#2 ~ c#1@2 ~ c#1 c#2@2",
L: "g#1 ~ g#1@2 ~@2 d#1 ~ g#1 ~ g#1@2 ~@2 d#1 ~", M: "g#1 ~ g#1@3 ~@2 d#1 g#1@2 g#1 g#1@2 g#1 g#1@2",
N: "b1 ~ b1@2 ~@4 f#1 ~ f#1@2 ~@4", O: "c#2 ~ c#2@2 ~@4 d#1 ~ d#1@2 ~ c#1@2 ~",
P: "b1 ~ b1@2 ~@4 f#1 ~ f#1@2 ~@2 f#1 ~", Q: "c#2 ~ c#2@3 ~@2 f#1 c#1@2 ~ c#2@3 c#1@2", R: "b1 ~ a#1 ~",
S: "c#2 ~ c#2@3 ~@2 c#2 c#1@2 g#1 c#1@2 c#1 c#1@2", T: "f#1 ~ f#1@3 ~@2 f#1 c#1@2 c#1@2 ~ a#1 a#1@2",
U: "d#2@3 d#1@2 ~ c#2@4 c#2@3 c#2@3", V: "~@13 c#1 g#1 a#1", W: "a#1 ~ a#1@3 ~@2 a#1 a#1@2 a#1 a#1@2 a#1 a#1@2",
X: "b1 ~ b1@2 ~@3 f#1!2 ~ f#1@2 ~@3 c#2", Y: "c#2 ~ c#2@2 ~@3 c#1!2 ~ c#1@2 ~ c#1@2 c#1",
Z: "~@9 c1@2 ~@2 d#2@3, c#1@13 ~@3", AA: "d#1 ~", AB: "~ f1", AC: "[~ d#1@36 ~@11]/3",
})).s("gm_electric_bass_finger").gain(0.61)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
A@2 B C D C E@5 F G H I J ~ J ~ F G K L C D C M@2 D N O@2 P@2 Q@2 R@2 S C T@2 D C T@2 U F G K V C D C W@2 D N O@2 P@2
Q@2 X@2 Y Z P@2 Q@2 P@2 AA@2 C T@2 D C T@2 D C T@2 D C T@2 D AB AC AB AC AB AC AB AD@4
>`.pickRestart({
A: "[~@16 [b3,c#4,f#4]@7 ~ [f#3,a#3,c#4,f#4]@8, ~@15 [b2,f#3]@8 a#2@9]/2", // Bsus2 F# B5
B: "~@6 f4 f#4@2 ~@3 c#3@4, c#3@8 ~@3 f#4@5, f4 c#4@3, c#4@3 f#4@4 ~@3 f4@2 ~@4, ~@2 g#3@4 g#3@3 g#3@7",
C: "[a#2,d#3] ~ [a#2,d#3]@2 [f#3,a#3,d#4]@2 [d#3,f#3,a#3,d#4] [f#3,a#3,d#4] [b2,f#3] ~ [b2,f#3]@2 [b2,f#3,b3,d#4]@2 [f#3,b3,d#4] [b2,f#3,b3,d#4]", // D#5 D#m B5 B
D: "[f#2,c#3]@2 [f#2,c#3]@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4]!2 [g#2,c#3]@2 [g#2,c#3]@2 [g#3,c#4,f4]@2 [c#3,g#3,c#4,f4] [g#3,c#4,f4], ~ f#3 ~@2", // F#5 F# C#5 C#
E: "[[f#2,c#3]@2 [f#2,c#3]@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4]!2 [g#2,c#3]@2 [g#2,c#3]@2 [g#3,c#4,f4]@2 [c#3,g#3,c#4,f4] ~ [a#3,d#4]@28 ~@2 c#4 c#4@21 ~@6 c#4 c#4@5, ~@4 f#3@4 ~@7 [d#3,f#3]@28 ~ d#3@24 ~@4 d#3@8, ~@45 f#3@23 ~@5 f#3@7]/5", // F#5 F# C#5 C# D#5 D#m
F: "~@2 c#4 c#4@5 ~@2 c#4 c#4@5, d#3 b2, ~ f#3@7 ~ f#3@7",
G: "~@2 c#4 ~@3 f#3@2 ~@6 f3@2, c#3@4 c#3@3 ~, ~ f#3@4 a#3@3 ~@2 f3@3 g#3@3, ~@3 c#4@5 ~@3 c#4@5",
H: "~@3 b3 ~@3 b3, b2!2, ~ f#3@7 ~ f#3@5 ~@2, ~@2 b3@3 d#4@3 ~@4 d#4@4, ~@3 f#4@5 ~@2 f#4@6",
I: "[d#3,a#3,d#4,f#4]@3 [a#3,d#4,f#4] ~@6 c#3@2 [g#3,c#4,f4]!4, ~@3 [g#3,c#4,f4]@3 ~@2", // D#m C#
J: "~@2 c#4 c#4@13, d#2@15 ~, ~ d#3@14 ~",
K: "~@7 f#4@6 f#4@3, b2, ~ f#3@4 ~ f#3@7 ~@3, ~@2 b3@2 ~ b3@7 ~@4, ~@3 c#4@5 ~@8",
L: "~@3 a#3 [g#3,f4]@4, f#4@9 ~@7, ~@3 c#4@5 ~@8", // C#
M: "[[f#2,c#3]@2 [f#2,c#3]@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4]!2 [g#2,c#3]@2 [g#2,c#3]@2 [g#3,c#4,f4]@2 [c#3,g#3,c#4,f4] ~ [a#3,d#4]@4 [f#3,a#3,d#4]@2 [d#3,f#3,a#3,d#4] [f#3,a#3,d#4] [b2,f#3] ~ [b2,f#3]@2 [b2,f#3,b3,d#4]@2 [f#3,b3,d#4] [b2,f#3,b3,d#4], ~@4 f#3@4 ~@7 d#3@6 ~@11, ~@15 f#3@4 ~@13]/2", // F#5 F# C#5 C# D#5 D#m B5 B
N: "[d#3,g#3] ~ [d#3,g#3]@2 [c4,d#4,g#4]@2 [g#3,c4,d#4,g#4] [c4,d#4,g#4] [d#3,c4] ~ [d#3,c4]@2 [d#3,c4,d#4,g#4]@2 [c4,d#4,g#4] [d#3,c4,d#4,g#4]", // G#5 G# Cm G#
O: "[[f#2,c#3]@2 [f#2,c#3]@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4]!2 [g#2,c#3]@2 [g#2,c#3]@2 [g#3,c#4,f4]@2 [c#3,g#3,c#4,f4] ~ [b3,d#4]@4 [b3,d#4,f#4]@2 [f#3,b3,d#4,f#4] [b3,d#4,f#4] [c#3,a#3] ~ [c#3,a#3]@2 [c#3,a#3,c#4,f#4]@2 [a#3,c#4,f#4] [c#3,a#3,c#4,f#4], ~@4 f#3@4 ~@7 [b2,f#3]@5 ~@12]/2", // F#5 F# C#5 C# B F# B5
P: "[[g#2,c#3]@2 [g#2,c#3]@2 [g#3,c#4,f4]@2 [g#3,c#4,f4]!2 [a#2,d#3]@2 [a#2,d#3]@2 [a#3,d#4,f#4]@2 [d#3,a#3,d#4,f#4] ~ [b3,d#4]@4 [b3,d#4,f#4]@2 [f#3,b3,d#4,f#4] [b3,d#4,f#4] [c#3,a#3] ~ [c#3,a#3]@2 [c#3,a#3,c#4,f#4]@2 [a#3,c#4,f#4] [c#3,a#3,c#4,f#4], ~@4 f3@4 ~@7 [b2,f#3]@5 ~@12]/2", // C#5 C# D#5 D#m B F# B5
Q: "[[g#2,c#3]@2 [g#2,c#3]@2 [g#3,c#4,f4]@2 [g#3,c#4,f4]!2 [g#2,c#3]@2 [g#2,c#3]@2 [g#3,c#4,f4]@2 [c#3,g#3,c#4,f4] ~ [b3,d#4]@4 [b3,d#4,f#4]@2 [f#3,b3,d#4,f#4] [b3,d#4,f#4] [c#3,a#3] ~ [c#3,a#3]@2 [c#3,a#3,c#4,f#4]@2 [a#3,c#4,f#4] [c#3,a#3,c#4,f#4], ~@4 f3@4 ~@7 [b2,f#3]@5 ~@12]/2", // C#5 C# C#5 C# B F# B5
R: "[[g#2,c#3]@2 [g#2,c#3]@2 [g#3,c#4,f4]@2 [g#3,c#4,f4]!2 [a#2,d#3]@2 [a#2,d#3]@2 [a#3,d#4,f#4]@2 [d#3,a#3,d#4,f#4] ~ [b3,c#4,f#4]@7 ~ [f#3,a#3,c#4,f#4]@8, ~@4 f3@4 ~@7 [b2,f#3]@8 a#2@9]/2", // C#5 C# D#5 D#m Bsus2 F# B5
S: "[c#4,f4]@2 ~@5 f#4@2 ~@3 c#3@4, c#3@10 ~ f#4@5, ~ g#3@2 [g#3,f4]@2 f4 ~@2, ~@3 f#4@4 ~@2 g#3@7, ~ c#4@3", // C#
T: "[[f#2,c#3]@2 [f#2,c#3]@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4]!2 [g#2,c#3]@2 [g#2,c#3]@2 [g#3,c#4,f4]@2 [c#3,g#3,c#4,f4] ~ a#3@4 [f#3,a#3,d#4]@2 [d#3,f#3,a#3,d#4] [f#3,a#3,d#4] [b2,f#3] ~ [b2,f#3]@2 [b2,f#3,b3,d#4]@2 [f#3,b3,d#4] [b2,f#3,b3,d#4], ~@4 f#3@4 ~@7 [d#3,f#3]@5 ~@12]/2", // F#5 F# C#5 C# D#m B5 B D#m
U: "[f#2,c#3]@2 [f#2,c#3]@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4]!2 [g#2,c#3]@2 [g#2,c#3]@2 [g#3,d4,f4]@2 [c#3,g#3,d4,f4] [g#3,d4,f4], ~ f#3 ~@2", // F#5 F# C#5 Ddim C# Ddim
V: "~@6 a#3@2 [g#3,f4]@4 [g#3,c#4,f4]@2 [g#3,c#4,f4]!2, f#4@9 ~@7, ~@3 c#4@5 ~@8", // C#
W: "[[f#2,c#3]@2 [f#2,c#3]@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4]!2 [g#2,c#3]@2 [g#2,c#3]@2 [g#3,c#4,f4]@2 [c#3,g#3,c#4,f4] d#3 [a#2,d#3] ~ [a#2,d#3]@2 [f#3,a#3,d#4]@2 [d#3,f#3,a#3,d#4] [f#3,a#3,d#4] [b2,f#3] ~ [b2,f#3]@2 [b2,f#3,b3,d#4]@2 [f#3,b3,d#4] [b2,f#3,b3,d#4], ~@4 f#3@4 ~@7 f#3@5 ~@12, ~@4 a#3 ~@3]/2", // F#5 F# C#5 C# D#5 D#m B5 B
X: "[[g#2,c#3]@2 [g#2,c#3]@2 [g#3,c#4,f4]@2 [g#3,c#4,f4]!2 [a#2,d#3]@2 [a#2,d#3]@2 [a#3,d#4,f#4]@2 [d#3,a#3,d#4,f#4] ~@9 [f#3,f#4]@2 ~@4 c#4@2, ~@4 f3@4 ~@7 b2@7 b3@2 a#3@8, ~@15 f#3@2 ~ f#3@5 a#2@9, ~@4 c#4@2 c#4 f#4, ~@8 [b3,f#4]@2 f#4@2 ~ f#3@3]/2", // C#5 C# D#5 D#m F# B5
Y: "[a#3,f4]@2 ~@5 f#4@2 ~@3 d3@4, a#2@10 ~ f#4@5, ~ g#3@2 [g#3,f4]@2 f4 ~@2, ~@3 f#4@4 ~@2 g#3@7, ~ d4@3", // A#5 C#
Z: "[f#3,b3,d#4]@4 [b3,d#4,f#4]@2 [f#3,b3,d#4,f#4] [b3,d#4,f#4] [c#3,a#3] ~ [c#3,a#3]@2 [c#3,a#3,c#4,f#4]@2 [a#3,c#4,f#4] [c#3,a#3,c#4,f#4]", // B F#
AA: "[[g#2,c#3]@2 [g#2,c#3]@2 [g#3,c#4,f4]@2 [g#3,c#4,f4]!2 [c#3,g#3,c#4,f#4]@2 [g#3,c#4,f#4]!2 [g#3,c#4,f4]!2 [c#3,g#3,c#4,f4] ~ [g#3,c#4]@4 [g#3,c#4,f4]@2 [g#3,c#4,f4]!3 [c#4,f4] [g#3,c#4,f4]!2 [g#3,c#4,f4]@2 [g#3,c#4,f4]!2, ~@4 f3@4 ~@2 c#3@3 ~@2 [c#3,f3]@5 f3@4 ~@4 f3@4]/2", // C#5 C# C#sus4 C# C#5 C#
AB: "a#3 d#4 ~ a#3 ~@3 b3, ~@2 [f#4,a#4]@3 d#4@3, ~@2 b3 [f#4,a#4]", // F#
AC: "~@3 a#3 ~@3 g#3, a#3@2 [f#4,a#4]@2 ~ c#4@3, ~@2 c#4@5 ~ g#3@4 [f4,g#4]@4", // F# Fm
AD: "[~@6 a#3@2 ~@10 d#5@35 ~@11, a#3@4 [f#4,a#4]@4 ~@2 c#4@6 d#3@37 ~@11, ~@2 c#4@6 g#3@4 [f4,g#4]@5 ~@47, ~@15 g#3@2 [a#3,f#4,a#4]@36 ~@11]/4", // F# Fm D#m
})).s("gm_acoustic_guitar_steel").gain(0.24).pan(0.6)
// other · pad sweep
const pad_sweep = note(`<
~@2 A ~@6 B@2 ~@2 C D@2 ~@2 E@2 ~@18 F ~@5 G@4 ~@14 H I@2 ~ J K ~@3 K ~@3 L M ~@26
>`.pickRestart({
A: "~ [g#4,c#5]", B: "[d#4@31 ~]/2", C: "~@6 d#5!2 a#5 ~ d#5 d#5@2 ~@3", D: "[c#5@3 ~@9 d#4@12 ~@8]/2",
E: "[~@10 g#5@9 ~@13]/2", F: "~ c#5", G: "[~@8 g#5@32 c#7@13 ~@11]/4", H: "g#5",
I: "[~@12 f#3@3 ~, c#4@3 ~, ~@15 g#5@14 ~@3]/2", J: "~@8 d5@7 ~", K: "d#5 ~@3", L: "~ c#6@3", M: "d#6 ~@3",
})).s("gm_pad_sweep").gain(0.48)
// other · orchestral harp · F#maj7 G#sus2 Bsus2 D#sus2
const orchestral_harp = note("<~@42 [~@12 [f5,f#5] [g#5,a#5] [b5,c#6] [d#6,f6]] [f#6 ~@15] ~@59>")
.s("gm_orchestral_harp").gain(0.24)
// chords · string ensemble 2
const string_ensemble_2 = note(`<
~@3 A B A B C D@4 E F@3 ~@7 G@2 H@2 I J K L M N O P Q R ~@2 S T U V W ~@2 X Y Z@3 AA@2 AB@2 AC AD AE AF AG ~@7 AH AI
AJ AK AH AI AL@3 AM@2 U AN AO@2 AP AQ AR@2 AP AQ AS@2 AT AQ AU ~@6 AV AW@3
>`.pickRestart({
A: "c#4 d#4, f#4", B: "a#4@4 b4 a#4@3 g#4@8, c#4", C: "[f#4,a#4]", D: "[~@4 d#4@16 c#4@11 b3]/4",
E: "a#3@6 f#4@2 f4 [f4,f#4] f#4 f4@3 ~@2", F: "[c#4@8 d#4@3 ~, f#3@11 ~]/3", G: "[d#4@2 c#4 [g#3,f4], f#3@3 ~]/2",
H: "[d#4@2 c#4 f4, f#3@3 ~]/2", I: "a#4 b4", J: "~ f4, c#5", K: "d#5@5 c#5@3 c5@3 a#4@2 g#4@3, c4@3 ~",
L: "d#4@5 c#4@3 c4@3 a#3@2 g#3@3", M: "f#3 a#3", N: "[f4,c#5] [a#3,f#4]", O: "[b3,d#4] [a#3,c#4]", P: "c#4",
Q: "f#4 c#5", R: "[f4,g#4] [d#4,f#4]", S: "a#3 b3, f#4", T: "[a#4,c#5]@3 [g#4,b4]@2 [f#4,a#4]@3 [f4,g#4]@8",
U: "[d#4,f#4]", V: "a#4@3 [g#4,b4]@3 [f#4,a#4]@2 [f4,g#4]@8, c#5 ~", W: "[d#4,f#4]@3 ~", X: "c#5@3 d5",
Y: "d#5@9 ~@7", Z: "[~@13 f4@11 ~@4 c#4@12 f4@8]/3",
AA: "[[d#4,f#5]@16 c#6@3 b5@2 a#5@3 [g#3,f4,g#5]@8, f#3@3 ~, ~@2 c#4 ~]/2", // D#m C#
AB: "[d#4@16 c#4@8 f5@3 f#5@2 g#5@3, [f#3,f#5]@3 f4]/2", AC: "[f#4,a#5] [d#4,b5]", AD: "c#4 f4, c#6",
AE: "d#6@5 c#6@3 c6@3 a#5@2 g#5@3, c4", AF: "d#5@5 c#5@3 c5@3 a#4@2 g#4@3", AG: "b3 ~", AH: "f#6", AI: "f6 d#6",
AJ: "f#5", AK: "g#5@8 c#6@6 [d#5,d#6] [f5,f6]", AL: "[d#5 [c#4,c#5]@5]/3", AM: "[a#3 b3 a#3 [g#3,f4], f#4@3 ~]/2",
AN: "[a#4,c#5]@3 [g#4,b4]@3 [f#4,a#4]@2 [f4,g#4]@3 [d#4,f#4]@2 [c#4,f4]@3", // A#m G#m F# Fm D#m C#
AO: "[a#3@8 b3@5 ~@3 a#3@8 [g#3,f4,g#5]@8, [f#4,f#5]@3 ~]/2", AP: "[d#4,f#4,f#5]",
AQ: "[a#4,c#6]@3 [g#4,b5]@3 [f#4,a#5]@2 [f4,g#5]@3 [d#4,f#5]@2 [c#4,f5]@3", // A#m G#m F# Fm D#m C#
AR: "[a#3 b3 a#3 [g#3,f4,g#5], f#5@3 ~, f#4 ~]/2", AS: "[a#3@8 b3@5 ~@3 [a#3,f#6]@8 [g#3,f4,f6]@8, f#4@3 ~, f#5 ~]/2",
AT: "[d#4,f#4,d#6]", AU: "[a#3,d#5] ~", AV: "[a#3,f#4] [g#3,f4]", AW: "[~ [a#3,f#4]@37 ~@10]/3",
})).s("gm_string_ensemble_2").gain(0.55).pan(0.7)
// other · string ensemble 1 · D#maj7 F#maj7 G#sus2 Csus2 D#sus2 F#sus2 A#sus2 D#maj7
const string_ensemble_1 = note(`<
~@66
[~@8 [d4,d#4] [f4,f#4] [g#4,a#4] [c5,d5] [d#5,f5] [f#5,g#5] [a#5,c6] [d6,d#6]]
~@36
>`).s("gm_string_ensemble_1").gain(0.55).pan(0.7)
// chords · string ensemble 2
const string_ensemble_2_2 = note(`<
~@3 A@4 B ~@2 C@2 D E F G H I J K J K J L M L N O P Q@2 R S R T R S R T U V U V B H I W X@2 Y Z L M L N O P AA@2 AB
~@6 AC AD AE AF AG AD AE AF AH@2 U V U V U V U AI U V U AI U V U AI AJ ~@6 AK AL@3
>`.pickRestart({
A: "[~@2 d#3 f3 f#3 g#3@3 b3@8 a#3@8 [f3,g#3]@8, a#3 f#3@2 ~]/2", B: "[d#3,a#3]", C: "[d#1@3 b1]/2", D: "f#1 c#2",
E: "b1", F: "d#1 c#2", G: "d#2@11 ~@5", H: "f#3@8 f3@7 ~", I: "c#4 b3", J: "a#3 g#3", K: "f#3", L: "d#2 b2",
M: "a#2 c#3", N: "a#2 [c#3,g#3]", O: "[d#3,a#3] [b2,b3]", P: "[f#2,a#3] [c#3,g#3]",
Q: "[[g#3,a#3]@11 a#3@2 c4@2 ~ c4@8 d#3@3 c#3@2 c3@3, g#2]/2", R: "b2 f#2", S: "c#3 d#3", T: "g#3@3 f#3 f3@2 d#3 c#3",
U: "d#3@3 f3 f#3@2 g#3@2 f#3@6 b3@2, d#2 b2", V: "f#2 c#3, c#4", W: "a#3@2 d#4 f4, ~ g#3",
X: "[f#3@16 a#3@8 f4@3 d#4@2 c#4@3, f#4@3 g#3]/2", Y: "b3 a#3, f#3", Z: "c#4 g#3",
AA: "[[g#3,a#3]@11 a#3@2 c4@2 ~ c4@6 c#4 c4 c#4 c4 a#3 g#3@5, g#2]/2", AB: "[b2,f#3] ~", AC: "~@3 f#3 f3@2 d#3 d3",
AD: "[b2,d#3] [f#2,a#3]", AE: "[c#3,g#3]@2 d#3 c#3, ~ a#3", AF: "[b2,b3] [f#2,a#3]", AG: "[c#2,f3,c#4]",
AH: "[c#2,f3]/2", AI: "f#2 c#3, c#4@3 ~", AJ: "f#3 ~", AK: "c#3, f#2 ~", AL: "[~ [d#2,d#3]@36 ~@11]/3",
})).s("gm_string_ensemble_2").gain(0.55).pan(0.4)
// chords · epiano2
const epiano2 = note(`<
~@6 A B C D E F G H ~ B C D E F G H I J ~@15 K L M N O P Q R S T U V J ~@15 K L M N K L M N ~ K L M N K L M N K L M N
K L M N ~@11
>`.pickRestart({
A: "~@11 f#3 g#3 a#3 ~@2", B: "d#4 ~@2 c#4 ~@2 c#4 ~@9", C: "f#3 ~@2 f#3 ~@6 g#3 ~@2 g#3 ~@2",
D: "f#3 ~@2 f#3 ~@11 g#3", E: "~@2 g#3 ~@7 g#3 ~ g#3 a#3 g#3 f#3", F: "d#3 ~@2 d#3 ~@6 c#4 ~@2 c#4 ~@2",
G: "~@3 c#4 ~@2 c#4 ~ f3 ~@2 f3 ~@4", H: "~@3 c#4 ~@2 c#4 ~@9", I: "~@10 g#4 a#4 g#4 a#4 f#4 g#4",
J: "f#4 g#4 f#4 g#4 f#4 g#4 ~@10", K: "~@3 [g#3,c#4] ~@2 [g#3,c#4] ~@9",
L: "~@2 [g#3,c#4] ~@2 [g#3,c#4] ~@9 [a#3,c#4]", M: "~@3 [g#3,c#4] ~@2 [g#3,c#4] ~@6 [g#3,c#4] ~@2",
N: "~@3 [a#3,c#4] ~@2 [a#3,c#4] ~@6 [g#3,c#4] ~@2", O: "~@3 [g#3,c#4] ~@2 [g#3,c#4] ~@5 [f#3,b3]@4",
P: "f#2 ~ f#2@2 [a#3,c#4]@4 ~@2 [g#3,c#4] ~ g#2 [g#3,c#4] ~@2", // A#m C#5
Q: "d#2 ~@2 [f#3,c#4] ~ a#2 [f#3,c#4] ~@5 [f#3,d#4]@4", R: "~@2 f#2 [f#3,c#4] ~ f#2 [f#3,c#4] ~@5 [g#3,d4]@4",
S: "[f#3,d#4]@5 ~@2 [b3,d#4] ~@2 [b3,d#4] ~@5", T: "~@2 [c#4,f#4] ~@2 [c#4,f#4]@3 [c#4,f4]@6 ~@2",
U: "~@2 [b3,d#4] ~@2 [b3,d#4]@3 [b3,d#4] ~ [b3,d#4]@5 ~", V: "[a#3,d#4]@8 [g#3,c#4]@2 g#4 a#4 g#4 a#4 f#4 g#4",
})).s("gm_epiano2").gain(0.46)
// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
~ A@2 B C B C D@2 ~@4 E F ~ G ~ G ~@2 H@2 B C B C I@2 J K L M L N L M L N B C O P@2 G ~ G Q R H@2 B C B C S C J K L M
L N L M L T L M L N L M L N U B C V C B C V C B C V C B C V C W X W X W X W Y@4
>`.pickRestart({
A: "[~@2 b3 [f#3,b3] ~@2 a#3!2 g#3 ~@2 [f3,g#3] g#3 ~@2 [f3,g#3], [d#3,b3]@2 [d#3,f#4]@2 c#3@3 c#3@5 c#3@4, ~@2 [f#3,c#4]@5 ~ a#3@4 f#4@4 ~@2 [g#3,c#4]@5 ~@3 [g#3,c#4]@5 ~, ~@5 [f#3,c#4]@3 f3@3 ~@5, ~@5 [f#3,f4] ~ [f#3,f4]]/2", // B5 Fm G#m D#m F#5 C#5 F#5 F#maj7
B: "~ d#4 ~ a#3 ~@3 b3, a#3@2 f#4@3 d#4@3, ~@2 b3 f#4",
C: "~@3 a#3 ~@3 g#3, a#3@2 f#4@2 ~ c#4@3, ~@2 c#4@5 ~ g#3@4 f4@4", D: "[d#3,a#3]/2",
E: "~@2 c#4 ~@4 f#3, b2@5 b2@3, ~@2 f#3@11 ~@3, ~@3 c#4@3 c#4@2",
F: "[f#3,d#4]@3 [f#3,d#4] ~@11 c#3, ~@6 [g#3,c#4]@5 c#3@3 f3@2, ~@5 f3 c#4@2, ~@13 g#3@2 ~", // D#m C#5
G: "f#3 ~@2 f#3 [c#3,g#3]@4, [f#2,c#3] ~, ~@2 f#3@3 a#3@3 ~@8, ~@2 c#4 ~@5", // C#5 F#5
H: "[~@6 f#3@2 ~@8 c#4@3 ~@2 a#3@2 ~ [c#3,g#3,f4]@5 ~@3, b2@6 ~@2 b2@6 ~ f#3@2 ~@15, ~ f#3@4 ~@4 f#3@5 b3@3 ~@15, ~@2 b3@2 ~ b3@4 ~ b3@3 c#4@3 [d#3,f#4]@8 ~@8, ~@3 c#4@8 f#4@5 ~@3 d#4@5 ~@8]/2", // C# D#m
I: "[~ d#4 ~ a#3 ~@3 b3 ~@3 a#3 ~@3 g#3, d#3, a#3@2 f#4@3 d#4@3 a#3@2 f#4@2 ~ c#4@3, ~@8 b3@4 f#4@4 ~@2 c#4@5 ~ g#3@4 f4@4]/2",
J: "~ d#4 ~ c4 ~@3 c4, c4@2 g#4@3 d#4@3, ~@2 g#3 g#4", K: "~ d#4 ~ c4 ~@3 c4, [a#3,c4]@2 g#4@3 d#4@3, ~@2 g#3 g#4",
L: "~ d#4 ~ b3 ~@3 a#3, b3@2 f#4@3 c#4@3, ~@2 a#3 f#4",
M: "~@3 g#3 ~@3 a#3, g#3@2 f4@2 ~ d#4@3, ~@2 c#4@5 ~ f#3@4 f#4@4",
N: "~@3 g#3 ~@3 g#3, g#3@2 f4@2 ~ c#4@3, ~@2 c#4@5 ~ g#3@4 f4@4",
O: "~ d#4 ~ a#3 ~@3 b3, [d#3,a#3]@3 ~ b3@2 f#4@2, ~@2 f#4@3 d#4@3", // D#5
P: "[~@3 a#3 ~@4 [a#3,d#4]@7 ~, a#3@4 f#4@4 ~@2 c#4@5 f#3@15 ~@2, ~@2 c#4@5 ~ g#3@4 f4@4 ~@16, ~@7 g#3 ~@8]/2", // D#5
Q: "~@3 f#4 ~@3 f#4, d#3@7 ~ b2@4 b2@2 ~@2, ~ f#3@4 a#3@3 ~@2 f#3@6, ~@3 d#4@4 ~@4 d#4@5, ~@13 b3@3",
R: "~@7 f#3 ~@6 g#3 ~, f#2@4 f#4@4 ~@3 f4@4 ~, ~ c#3@2 a#3@5 ~@2 g#3@3 ~@3, ~@2 f#3@3 c#3@3 c#3@4 ~ c#3@2 ~, ~@6 c#4@2 ~@4 c#4@3 ~",
S: "~ d#4 ~ a#3 ~@3 b3, d#3@2 b3 f#4, a#3@2 f#4@3 d#4@3",
T: "~@3 g#3 ~@3 g#3, g#3@2 f4@2 ~ d4@3, ~@2 d4@5 ~ g#3@4 f4@4",
U: "~@3 g#3 ~@3 g#3, c#3@2 f4@2 ~ c#4@3, ~@2 c#4@5 ~ c#3@4 f4@4",
V: "~ d#4 ~ a#3 ~@3 b3, a#3@3 ~ b3@2 f#4@2, ~@2 f#4@3 d#4@3",
W: "a#3 ~ f#3 [f#3,a#3] ~@2 b3 [f#3,b3], [d#3,c#4]@2 [d#3,b3] [d#3,f#4], ~@2 [a#3,d#4]@5 ~@3 [f#3,c#4]@5 ~, ~ f#4 ~@2", // F# B5 D#7 G#m D#m D#5 F#5
X: "~@2 a#3!2 g#3 ~@2 [f3,g#3], c#3@3 c#3@5, a#3@4 f#4@4 ~@2 [g#3,c#4]@5 ~, ~ [f#3,c#4]@3 f3@3 ~, ~@3 [f#3,f4]", // Fm C#5 F#5 F#maj7
Y: "[~@4 a#3@2 a#3@2 g#3@2 ~@2 f#3@3 ~@3 d#4@36 ~@10, c#3@6 c#3@10 d#3@37 ~@11, a#3@4 f#4@4 ~@2 [g#3,c#4]@5 ~@49, ~@2 [f#3,c#4]@6 f3@7 [f3,g#3]@2 [f#3,a#3]@37 ~@10, ~@12 f4@5 ~@47]/4", // C#5 F#5 Fm F#
})).s("gm_acoustic_guitar_nylon").gain(0.25).pan(0.1)
// other · lead 8 bass lead
const lead_8_bass_lead = note(`<
~@23 A B A B A B C D E F G H E F I J A B A B ~@8 A B A B A B C D K ~@6 L M N M O M N M P Q A B A B A B A R S T U V S V
W T X ~@10
>`.pickRestart({
A: "d#2 ~ d#2 ~ d#3!4 b1 ~ b2 ~ b2!4", B: "f#2 ~ f#2 ~ f#3!4 c#3 ~ c#3 ~ c#3 ~ c#3 ~",
C: "g#1 ~ g#1 ~ g#2!4 g#1 ~ g#2 ~ g#2!4", D: "g#1 ~ g#1 ~ g#2!5 ~ g#2 ~ g#2 ~ g#2 ~",
E: "b1 ~ b1 ~ d#3 b1!3 f#2 ~ f#2 ~ f#2!4", F: "c#2 ~ c#2 ~ c#2!3 d#2!2 ~ d#2 ~ d#2!4",
G: "b1 ~ b1 ~ f#2 b1!3 f#2 ~ f#2 ~ f#2!4", H: "c#2 ~ c#2 ~ c#2!5 ~ c#2 ~ c#2!4",
I: "b1 ~ b1 ~ b2!4 a#2 ~ a#2 ~ a#2!4", J: "c#2 ~ c#2 ~ c#3!4 c#2 ~ c#2 ~ c#2!4", K: "b1 ~ b1 ~@13",
L: "~@8 a#1 ~ a#1 ~ a#1!4", M: "b1 ~ b1 ~ b2!4 f#2 ~ f#2 ~ f#2!4", N: "c#2 ~ c#2 ~ c#2!4 d#2 ~ d#2 ~ d#2 ~ c#2 ~",
O: "c#2 ~ c#2 ~ c#2!5 ~ c#2 ~ c#2 ~ c#2 ~", P: "c#2 ~ c#2 ~ c#2!5 ~ c#2 ~ c#2 ~ c#2!2",
Q: "c#2 ~ c#2 ~ c#2!5 ~ c#2 ~ c#2 ~ d#2!2", R: "f#2 ~ f#2 ~ f#3!4 c#3 ~ c#3 ~ c#3 c#2 c#3!2",
S: "d#2 ~ d#2 ~ d#3 d#2 d#3!2 b1 ~ b2 ~ b2 b1 b2!2", T: "f#2 ~ f#2 ~ f#3 f#2 f#3!2 c#3 ~ c#3 ~ c#3 c#2 c#3!2",
U: "d#2 ~ d#2 ~ d#2!2 d#3!2 b1 ~ b2 ~ b2 b1 b2!2", V: "f#2 ~ f#2 ~ f#3 f#2 f#3!2 c#3 c#2 c#3 c#2 c#3 c#2 c#3!2",
W: "d#2 ~ d#2 ~ d#3 d#2 d#3!2 b1 ~ b2 ~ b2!4", X: "d#3 ~ d#3!3 ~ d#3!2 ~@8",
})).s("gm_lead_8_bass_lead").gain(0.41)
// chords · pad warm
const pad_warm = note(`<
~ A B C D C D E ~ F@2 G H I J K L M@2 K L M@2 K N M@2 K N O@2 P Q R S T U ~@2 M@2 K N K L V@2 K L M@2 K N M@2 K N O@2
P Q R W T X Y Z P Q R W P Q R AA@2 M@2 K N AB AC AD AE AB AC AD AE AB AC AD AE AF ~@10
>`.pickRestart({
A: "~@4 [b2,b3,c#4,d#4,f#4]@4 ~@3 [a#2,a#3,c#4,f#4,g#4]@4 ~", B: "[c#3,c#4,d#4,f4,g#4]@15 ~", C: "d#3 b2",
D: "f#3 f3", E: "d#2@7 ~@9", F: "d#2/2", G: "f#3@4 b2@3 b3", H: "a#3 g#3, c#3", I: "b2, f#3 ~", J: "d#3 c#3",
K: "a#3 b3, d#3", L: "[f#3,a#3]@7 ~ g#3@8, ~@7 c#3@8 ~", M: "[d#3 b3 a#3 [c#3,g#3], f#3@3 ~]/2",
N: "[f#2,a#3]@7 ~ g#3@8, ~@7 c#3@8 ~", O: "[g#3,c4]/2", P: "[b2,f#3] [f#2,a#3]", Q: "[c#3,g#3] [d#3,a#3]",
// … 124 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.