Strudelify
Power of Love cover art

1993 · The Colour of My Love

Power of Love

Celine Dion

KeyA♭ majorTempo69 bpm
0:00/0:00
// Power of Love — Celine Dion
// 69 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 100 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): STEEL GTR.
setcpm(69/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, A@4 for four bars: edit a riff to change every repeat.

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note("<~ A@6 B@2 A@4 C A B@2 A@2 C@2 D@2 E F A@6 B@2 A@4 C A B@2 ~@59>".pickRestart({
  A: "[ab4,c5] ~ [ab4,c5] ~ [ab4,c5] ~ [ab4,c5] ~ [ab4,c5] ~ [ab4,c5] ~ [ab4,c5] ~ [ab4,c5] ~", // Ab
  B: "[g4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~", // Gm
  C: "[ab4,db5] ~ [ab4,db5] ~ [ab4,db5] ~ [ab4,db5] ~ [ab4,db5] ~ [ab4,db5] ~ [ab4,db5] ~ [ab4,db5] ~", // Db5
  D: "[bb4,db5] ~ [bb4,db5] ~ [bb4,db5] ~ [bb4,db5] ~ [bb4,db5] ~ [bb4,db5] ~ [bb4,db5] ~ [bb4,db5] ~", // Bbm
  E: "[bb4,eb5] ~ [bb4,eb5] ~ [bb4,eb5] ~ [bb4,eb5] ~ [bb4,eb5] ~ [bb4,eb5] ~ [bb4,eb5] ~ [bb4,eb5] ~", // Eb5
  F: "[bb4,eb5] ~ [bb4,eb5] ~ [bb4,eb5] ~ [bb4,eb5] ~ [bb4,eb5] ~ [bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~", // Eb5 Eb
})).s("gm_synth_strings_1").gain(0.25).pan(0.7)

// bass · synth bass 2 · "SYN BASS 2"
const bass = note(`<
  ~ A ~@3 B ~@3 B ~ C ~ D E F ~ G H I J K L M N O P Q R G S T U G V W R X Y Z AA AB S AC AD AE L M AF AB S X AG AH AI AJ
  AK AL S AM AN AO AP X AQ@2 AB S X AR AS AT AU AF AB S X AR AS AV AB AW AX S X AY AZ AV AB S AB S AB BA AB S AJ S BB@2
>`.pickRestart({
  A: "ab1@3 ~@5", B: "ab1@5 ~@3", C: "f1@9 ~@7", D: "db2@9 ~@7", E: "c2@9 ~@7", F: "eb1@11 ~@5",
  G: "ab1 ab1@2 ~@5 ab1@2 ~@4 ab1 ~", H: "ab1 ab1@2 ~@5 ab1@2 ~@6", I: "db1 db1@2 ~@5 db1@2 ~@4 db1 ~",
  J: "db1 db1@2 ~@5 db1@2 ~ c2@2 ~ bb1 ab1", K: "bb1 bb1@2 ~@5 bb1@2 ~@4 bb1 ~", L: "bb1 bb1@2 ~@5 bb1@2 ~@6",
  M: "eb1 eb1@2 ~@5 eb1@2 ~@4 eb1 ~", N: "eb1 eb1@2 ~@13", O: "ab1 ab1@2 ~@5 ab1@2 ~@4 ab1!2",
  P: "ab1 ab1@2 ~@5 ab1@3 ~@3 f1 eb1", Q: "f1 f1@2 ~@5 f1@3 ~@3 f1 ~", R: "f1 f1@2 ~@5 f1@3 ~@5",
  S: "ab1 ab1@2 ~@5 ab1@3 ~@5", T: "eb1 eb1@3 ~@2 eb1 ~ eb1 eb1@3 ~@2 eb1 ~", U: "eb1 eb1@3 ~@4 eb1@2 ~@6",
  V: "ab1 ab1@2 ~@5 ab1@3 ~@3 g1 eb1", W: "f1 f1@2 ~@5 f1@3 ~@3 f1!2", X: "db1 db1@3 ~@4 db1@3 ~@3 db1 ~",
  Y: "c2 c2@2 ~@5 c2@3 ~@5", Z: "eb1 eb1@2 ~@5 eb1@4 ~@2 eb1 ~", AA: "eb1 eb1@2 ~@5 eb1@2 ~@6",
  AB: "ab1 ab1@2 ~@5 ab1@3 ~@3 ab1 ~", AC: "db1 db1@2 ~@5 db1@3 ~@3 db1 c1", AD: "db1 db1@2 ~@5 db1 ~@2 c2@3 ~@2",
  AE: "bb1 bb1@2 ~@5 bb1@3 ~@3 bb1 ab1", AF: "eb1 eb1@3 ~@4 eb1@3 ~@5", AG: "db1 db1@3 ~@4 db1 ab1 db2 c2@3 ~@2",
  AH: "bb1 bb1@3 ~@4 bb1@3 ~@3 bb1 ab1", AI: "eb1 eb1@3 ~@4 db1@3 ~ eb1@2 db1 eb1", AJ: "ab1 ab1@3 ~@4 ab1@4 ~@2 ab1 ~",
  AK: "ab1 ab1@3 ~@4 ab1@4 ~@4", AL: "db1 db1@2 ~@5 eb1@3 ~@3 eb1 ~", AM: "db1 db1@3 ~@2 db1 ~ eb1@3 ~@3 eb1!2",
  AN: "f1 f1@2 ~@3 f1 ~ f1@2 ~@2 eb1@2 ~@2", AO: "db1 db1@2 ~@3 db1 ~ eb1@4 ~@2 eb1 ~",
  AP: "ab1 ab1@2 ~@3 ab1 ~ ab1 ab1@3 ~@4", AQ: "eb1 eb1@2 ~@3 db1!2 eb1 eb1@2 ~@5",
  AR: "db1 db1@5 ~@2 db1@2 ~ db2 c2@2 bb1 ab1", AS: "bb1 bb1@2 ~@5 bb1@3 ~@3 bb1 ~", AT: "bb1 bb1@2 ~@5 bb1@3 ~@5",
  AU: "eb1 eb1@3 ~@4 eb1@3 ~@3 eb1 ~", AV: "eb1 eb1@2 ~@5 db1@3 ~@5", AW: "~ ab1 ~@6 ab1@4 ~@2 ab1@2",
  AX: "~ ab1@2 ~@5 ab1@2 ~@4 ab1 ~", AY: "db1 db1@3 ~@4 db1@2 ~ db2 c2@2 bb1 ab1", AZ: "bb1@3 ~@5 bb1@3 ~@3 bb1 ~",
  BA: "ab1 ab1@2 ~@5 ab1@4 ~@4", BB: "[ab1@3 ~]/2",
})).s("gm_synth_bass_2").gain(0.55)

// other · lead 8 bass lead · "BASS&LEAD"
const lead_8_bass_lead = note("<~ A@6 B C D A@3 E F B G ~@24 H ~@58>".pickRestart({
  A: "c4 ab3 c4 ab3 c4 ab3 c4 ab3 c4 ab3 c4 ab3 c4 ab3 c4 ab3",
  B: "bb3 g3 bb3 g3 bb3 g3 bb3 g3 bb3 g3 bb3 g3 bb3 g3 bb3 g3",
  C: "bb3 g3 bb3 g3 bb3 g3 bb3 g3 bb3 g3 bb3 g3 bb3 g3 [ab3,bb3,c4] [db4,eb4,f4,g4,ab4,bb4]", // Ab Eb7
  D: "[c4,c5] ab3 c4 ab3 c4 ab3 c4 ab3 c4 ab3 c4 ab3 c4 ab3 c4 ab3", // C
  E: "db4 ab3 db4 ab3 db4 ab3 db4 ab3 db4 ab3 db4 ab3 db4 ab3 db4 ab3",
  F: "eb4 c4 eb4 c4 eb4 c4 ab3!2 c4 ab3 c4 ab3 c4 ab3 c4 ab3",
  G: "eb4 bb3 eb4 bb3 eb4 bb3 eb4 bb3 eb4 bb3 eb4 bb3 eb4 bb3 eb4 bb3", H: "c4 ~@3",
})).s("gm_lead_8_bass_lead").gain(0.07).pan(0.9)

// chords · flute
const flute = note("<~@69 A@2 B ~@5 C@3 ~@15 D@2 ~@3>".pickRestart({
  A: "[~@3 [f4,c5]!2 [g4,db5] [ab4,eb5] [bb4,f5]@2 [bb4,db5] [bb4,db5]@6]/2", B: "~@3 [bb4,db5]!4 ~@9",
  C: "[~@3 [f4,c5]!2 [g4,db5] [ab4,eb5] [bb4,f5]@2 [bb4,f5]!4 [ab4,eb5]!2 [g4,eb5]@4 ~@5]/3", // F5 Gdim Ab5 Bb5 Ab5 Cm
  D: "[~@11 [ab4,c5] [c5,eb5]!3 eb5@2 ab4 bb4@5 ~@9]/2", // Ab Cm
})).s("gm_flute").gain(0.35).pan(0.4)

// chords · flute · soft notes
const flute_soft = note("<~@95 A@2 ~@3>".pickRestart({
  A: "[~@15 c5@2 c5 db5@5 [c5,eb5]@7 ~@2]/2", // Cm
})).s("gm_flute").gain(0.2).pan(0.4)

// other · lead 8 bass lead · "BASS&LEAD"
const lead_8_bass_lead_2 = note(`<
  ~ A B C@2 D E F G H I J K L M N@2 O@2 P Q R@2 S@2 O@2 T@2 O@2 U V O@2 T@2 W X Y V ~@59
>`.pickRestart({
  A: "ab4 ~ ab4 ~ ab4 ~ ab4 ~@9", B: "~@15 eb4",
  C: "[f4,ab4] ~ [f4,ab4] ~ [f4,ab4] ~ [f4,ab4] ~ [f4,ab4] ~ [f4,ab4] ~ [f4,ab4] ~ [f4,ab4] ~", // Fm
  D: "[eb4,ab4] ~ [eb4,ab4] ~ [eb4,ab4] ~ [eb4,ab4] ~ [eb4,ab4] ~ [eb4,ab4] ~@5", // Ab5
  E: "[eb4,ab4] ~ [eb4,ab4] ~ [eb4,ab4] ~ [eb4,ab4] ~@3 [eb4,ab4] ~@3 [eb4,ab4] ~", // Ab5
  F: "~@2 [eb4,g4] ~ [eb4,g4] ~ [eb4,g4] ~ [eb4,g4] ~ [eb4,g4] ~ [eb4,g4] ~ [eb4,g4] ~", // Eb
  G: "[eb4,g4] ~ [eb4,g4] ~ [eb4,g4] ~ [eb4,g4] ~ [eb4,g4] ~ [eb4,g4] ~ [eb4,g4] ~ [eb4,g4] ~", // Eb
  H: "ab2 eb3 ab3 c4 eb4 c4 eb4 c4 ab2 eb3 ab3 c4 eb4 c4 eb4 c4",
  I: "ab2 eb3 ab3 c4 eb4 c4 eb4 c4 ab2 eb3 ab3 c4 eb4 eb3 g2 f3",
  J: "f2 c3 f3 ab3 c4 ab3 c4 ab3 f2 c3 f3 ab3 c4 ab3 c4 ab3", K: "f2 c3 f3 ab3 f4 c4 ab3 c4 ab3 f3 c3 f3 f2 c3 f3 ab3",
  L: "db2 ab2 f3 ab3 db4 ab3 db4 ab3 db2 ab2 f3 ab3 db4 ab3 db4 ab3",
  M: "c2 ab2 eb3 c4 eb4 c4 ab3 eb3 c2 ab2 eb3 c4 eb4 c4 ab3 eb3",
  N: "eb2 bb2 g3 eb3 eb4 bb3 g3 bb3 eb2 bb2 g3 eb3 eb4 bb3 g3 bb3",
  O: "ab2 eb3 c4 ab3 eb4 c4 ab3 c4 ab2 eb3 c4 ab3 eb4 c4 ab3 c4",
  P: "db2 db3 ab3 f3 db4 ab3 f3 ab3 db2 db3 ab3 f3 db4 ab3 f3 ab3",
  Q: "db2 ab2 ab3 f3 db4 ab3 f3 ab3 db2 db3 ab3 f3 db4 ab3 f3 ab3",
  R: "bb2 f3 bb3 f3 db4 bb3 f3 bb3 bb2 f3 bb3 f3 db4 bb3 f3 bb3",
  S: "eb2 bb2 bb3 g3 eb4 bb3 g3 bb3 eb2 bb2 bb3 g3 eb4 bb3 g3 bb3",
  T: "f2 c3 ab3 f3 c4 ab3 f3 ab3 f2 c3 ab3 f3 c4 ab3 f3 ab3",
  U: "eb2 bb2 g3 ~ bb3 g3 eb3 g3 eb2 bb2 g3 eb3 bb3 g3 bb3 g3",
  V: "eb2 bb2 g3 eb3 bb3 g3 eb3 g3 eb2 bb2 g3 eb3 bb3 g3 bb3 g3",
  W: "db3 ab3 db4 ab3 f4 db4 ab3 db4 db3 ab3 db4 ab3 f4 db4 ab3 db4",
  X: "c3 eb3 c4 ab3 eb4 c4 ab3 c4 c3 eb3 c4 ab3 eb4 c4 ab3 c4",
  Y: "eb2 bb2 g3 ~ bb3 g3 eb3 g3 eb2 bb2 g3 eb3 bb3 g3 eb3 g3",
})).s("gm_lead_8_bass_lead").gain(0.11).pan(0.4)

// other · lead 8 bass lead · "BASS&LEAD" · soft notes
const lead_8_bass_lead_soft = note("<~ A B C@2 D E F G ~@91>".pickRestart({
  A: "eb4!8 [eb4,ab4] eb4 [eb4,ab4] eb4 [eb4,ab4] eb4 [eb4,ab4] eb4", // Ab5
  B: "[eb4,ab4] eb4 [eb4,ab4] eb4 [eb4,ab4] eb4 [eb4,ab4] eb4 [eb4,ab4] eb4 [eb4,ab4] eb4 [eb4,ab4] eb4 [eb4,ab4] ~", // Ab5
  C: "~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4", D: "~ eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 [eb4,ab4] eb4 [eb4,ab4] eb4",
  E: "~ eb4 ~ eb4 ~ eb4 ~ eb4 [eb4,ab4] eb4 ~ eb4 [eb4,ab4] eb4 ~ eb4", // Ab5
  F: "[eb4,g4] eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4", G: "~ eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4",
})).s("gm_lead_8_bass_lead").gain(0.07).pan(0.4)

// other · synth strings 1 · "SYN STR 1"
const synth_strings_1_2 = note(`<
  ~ A@2 B@2 A@6 B@3 A@5 B@4 C@2 A@2 B@2 A@6 B@3 A@3 ~@47 D E F E F E F E F E G@2
>`.pickRestart({
  A: "~ eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4", B: "~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4",
  C: "~ g4 ~ g4 ~ g4 ~ g4 ~ g4 ~ g4 ~ g4 ~ g4", D: "ab3@2 bb3@2 bb3@2 c4 ~ c4@6 ~@2", E: "ab4 bb4!2 c5 c5@4",
  F: "ab3 bb3!2 c4 c4@4", G: "[[ab3,c4,eb4,ab4]@3 ~]/2",
})).s("gm_synth_strings_1").gain(0.16).pan(0.2)

// other · pad metallic · "METAL PAD"
const pad_metallic = note("<~ A ~@3 A ~@3 B ~ C ~ D E F ~@9 G H I J K L M N G O I J P Q R S ~@59>".pickRestart({
  A: "~ ab2@6 ~@9, ab1@11 ~@5", B: "~ ab2@3 ~@4, ab1@13 ~@3", C: "~ f2@3 ~@4, f1@7 ~", D: "~ db3@3 ~@4, db2@11 ~@5",
  E: "~@2 c3@7 ~@7, c2@11 ~@5", F: "~@2 eb2@7 ~@7, eb1@3 ~", G: "ab5", H: "ab5@6 ab5 g5", I: "f5", J: "f5@11 ~ eb5@4",
  K: "ab5@7 ~", L: "ab5@9 ~ g5@2 f5@4", M: "eb5@5 ~ f5 bb4", N: "eb5@3 ~", O: "ab5@9 ~ g5@2 c5@2 g5@2",
  P: "ab5@11 ~ ab5@2 bb5@2", Q: "ab5@3 eb5", R: "g5@11 ~ f5@4", S: "eb5@15 ~",
})).s("gm_pad_metallic").gain(0.27)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  ~@9 A@2 B C D A E@2 F@2 G@2 H@2 I@2 J@2 K@2 J@2 L@2 J@2 K@2 M N O P F@2 G@2 H@2 Q@2 R@2 S@2 T U J@2 V N V W X Y M ~ Z
  F@2 G@2 H@2 L@2 J@2 AA@2 AB AC J@2 AD@2 AE@2 AF AG AH@2 J@8 AI@2
>`.pickRestart({
  A: "ab3 bb3!2 c4 c4@4", B: "ab4@2 g4@2 g4@2 f4@2 f4@7 ~", C: "ab4 g4!2 f4 f4@4", D: "db4 eb4!2 f4 f4@4",
  E: "g4 f4!2 eb4 eb4@4", F: "[ab3,c4,eb4]/2", G: "[ab3,db4,f4]/2", H: "[bb3,db4,f4]/2", I: "[g3,bb3,eb4,g4]/2",
  J: "[c4,eb4,ab4]/2", K: "[c4,f4,ab4]/2", L: "[bb3,eb4,g4]/2", M: "[db4,f4,ab4]", N: "[c4,eb4,ab4]", O: "[bb3,eb4,g4]",
  P: "bb3 eb5, [eb4,g4,bb4]", Q: "[[g3,bb3,eb4]@31 ~]/2", R: "[eb4,ab4,c5]/2", S: "[f4,ab4,db5]/2", T: "[db4,f4,bb4]",
  U: "[eb4,g4,bb4]@2 [ab3,db4,f4] [bb3,eb4,g4]", V: "[ab3,db4,f4] [bb3,eb4,g4]", W: "[c4,f4,ab4]",
  X: "[db4,f4,ab4] [eb4,g4,bb4]", Y: "[eb4,ab4,c5]", Z: "~@5 [bb5,eb6]@3", AA: "[db4,f4,ab4]/2", AB: "[bb3,db4,f4]",
  AC: "[bb3,eb4,g4] [db4,f4,ab4]", AD: "[eb4,ab4,c5,eb5]/2", AE: "[f4,ab4,db5,f5]/2", AF: "[f4,bb4,db5,f5]",
  AG: "[g4,bb4,eb5,g5] [f4,ab4,db5,f5]", AH: "[c4,eb4,ab4,c5]/2", AI: "[[ab3,c4,eb4]@3 ~]/2",
})).s("gm_string_ensemble_2").gain(0.25)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@17 A@2 B@2 C@2 D E F G F H I J K J I L M N O P Q@2 R@2 S H T U V W X Y Z@2 AA AB AC AD ~@9 AE@3 ~ AF AG AH@2 AE@3 ~
  AI@2 AJ AK@2 AL AM@2 AN AO I L I AP I AP I AP I L AQ@2
>`.pickRestart({
  A: "ab3@2 bb3@2 bb3@2 c4@9 ~", B: "db4 eb4!2 f4@5", C: "bb3 c4!2 db4@5",
  D: "[g3,eb4] [ab3,f4]!2 [bb3,g4] [bb3,g4]@3 [f4,bb4]", E: "f4 g4@2 [g4,bb4]@11 ~@2, bb4@3 ~@13",
  F: "~@8 ab4@3 g4@3 c4@2", G: "eb4 ~", H: "f4@11 ~@5", I: "~@8 [ab3,ab4]@3 [g3,g4]@3 [c3,c4]@2", J: "[eb3,eb4]@3 ~",
  K: "~@8 [g3,g4]@3 [f3,f4]@3 [bb2,bb3]@2", L: "[eb3,eb4]@7 ~",
  M: "~@6 [f3,f4] [g3,g4] [ab3,ab4]@3 [g3,g4]@3 [c3,c4]@2", N: "[f3,f4]@7 ~",
  O: "[db3,db4]@3 [eb3,eb4] ~@2 [eb3,eb4]@2 [db3,db4]@2 [g3,g4]@2 [ab3,ab4]@2 [bb3,bb4]@2, ~@2 [f3,f4] ~@5, ~@5 ab3@5 ~@6", // Db Eb Db G Ab Bb F
  P: "[ab3,ab4]@3 [eb3,eb4]@2 ~ [db3,db4]@2 [c3,c4]@7 ~, ~@5 ab3@11", // Ab Eb Db C
  Q: "[[eb3,eb4]@7 ~ [eb3,eb4]@3 [g3,g4]@3 ~@2 [eb3,eb4]@12 ~@4, ~@14 [bb2,bb3]@13 ~@5]/2", // Eb G Eb Bb
  R: "[~@9 [ab4,c5]@7, c4, ~@2 eb4@7 ~ eb4@21 ~, ~@6 ab4@11 ~@15]/2", S: "~@8 ab4@3 bb4@3 c5@2, db4@7 ~, ~@2 f4@13 ~",
  T: "[f4,db5]@3 [f4,db5]@5 [f4,db5]@3 [f4,c5]@3 [f4,bb4]@2", U: "[f4,bb4]@15 ~",
  V: "[bb3,eb4]@8 [ab4,bb4]@3 [g4,bb4]@3 [f4,bb4]@2", W: "[eb4,bb4]@15 ~",
  X: "[eb4,ab4,c5]@9 ~ [eb4,ab4,bb4]@2 [eb4,ab4,c5]@2 [eb4,ab4,db5]@2", Y: "~@2 [eb4,ab4,c5]@13 ~",
  Z: "[[db4,f4,ab4]@7 ~ [f4,ab4]@2 [f4,bb4]@2 [f4,c5]@2 [db4,f4]@14 ~@4]/2", // Db Fm Bb5 F5 Db
  AA: "~@3 [db4,f4,bb4]@3 ~ [db4,f4,bb4]@3 [db4,f4,bb4]@4 ~@2", // Bbm
  AB: "[g4,bb4]@3 [g4,bb4]@4 ~ [f4,ab4]@3 [f4,ab4] [g4,bb4]@3 ~", AC: "[eb4,ab4]@12 ~ [eb4,ab4,bb4]!3",
  AD: "[eb4,ab4,c5]@5 ~@2 c5 db5 c5 ~ [eb4,ab4,bb4]@2 [eb4,ab4]@3, ~@6 [eb4,ab4,bb4]@2 [eb4,ab4]@3 ~@5", // Ab Ebsus4 Ab5 Ebsus4 Ab5
  AE: "[~@8 ab4@2 bb4@2 c5@2 [ab4,db5]@4 [ab4,c5]@8 [ab4,c5]!4 [ab4,bb4] [ab4,c5]@2 [f4,ab4]@9 ~@6]/3", // Db5 Ab Absus2 Ab Fm
  AF: "~@3 [f4,db5]!2 [f4,db5]@2 [f4,db5]@8 ~", AG: "eb4 f4 ~ f4@3 ~ f4 eb4 f4@3 eb4 f4@3, bb4@6 ~ bb4@5 bb4@4",
  AH: "[~@16 f4 g4!2 f4@2 g4!2 f4@2 g4 [g4,bb4]@5 ~, ~@15 [g4,bb4]@2 ~ bb4@3 ~ bb4@3 ~@7]/2", // Gm
  AI: "[~@14 g4!2 f4 g4@6 ~@9, ~@14 bb4@9 ~@9]/2", AJ: "[ab4,c5,eb5]@10 ~ [ab4,db5,eb5]@2 db5 [ab4,bb4,eb5] bb4",
  AK: "[[ab4,c5,eb5]@9 eb4 ~ eb4 ~ eb4 ab4 ab4@8 ~@9, ~@10 [bb4,eb5]@4 [bb4,eb5]@9 ~@9, ~@5 ab4!2 ~@9]/2", // Ab Eb5
  AL: "ab4 ab4@2 g4@3 ab4@2, [eb4,bb4]", AM: "[~@5 f3 [ab3,db4] f3 [ab3,db4]@12 ~@12, ~@2 [eb3,db4] ~@13]/2",
  AN: "~@3 eb4 f4!2 eb4!2 f4 f4@7, ~@3 bb4@13", AO: "~@3 g4@2 g4 g4@2 [db4,f4]@6 ~@2, ~@3 eb4@5 ~@8", AP: "[eb3,eb4]",
  AQ: "[~@3 ab4@20 ~@9, c4@3 ~, ~ eb4@22 ~@9]/2",
})).s("gm_electric_guitar_jazz").gain(0.19).pan(0.8)

// other · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note("<~@17 A@2 B@2 C D ~@23 E F G ~@7 H ~@43>".pickRestart({
  A: "~@8 c4@7 ~", B: "~@8 f4@7 ~", C: "~@8 db4@7 ~", D: "~@8 db4@5 ~@3", E: "db4", F: "g3@7 ~@9", G: "g4@7 ~",
  H: "~@9 ab4@2 ~@5",
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0.8)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note("<~@20 A B ~@35 C D E F G H I J@2 ~@19 K L ~@13>".pickRestart({
  A: "~@11 c3@2 ~ bb2 ab2", B: "bb2!2 ~@14", C: "eb4 db4 ab3 eb4 ~ eb4 db4 ~ eb4 bb3 g3 eb4 ~ eb4 ~@2",
  D: "eb4 c4 ~ eb4 ~ eb4 c4 ~ eb4 c4 ab3 eb4 ~ eb4 c4 ~", E: "eb4 db4 ab3 eb4 ~ eb4 db4 ~ eb4 bb3 g3 eb4 ~ eb4 bb3 ~",
  F: "c4 ab3 f3 c4 ~ c4 ab3 ~ c4 ab3 ~ c4 ~ c4 ab3 ~", G: "eb4 db4 ab3 eb4 ~ eb4 db4 ab3 eb4 bb3 g3 eb4 ~ eb4 bb3 g3",
  H: "eb4 c4 ~ eb4 ~ eb4 c4 ab3 eb4 c4 ab3 eb4 ~ eb4 c4 ~", I: "eb4 db4 ab3 eb4 ~ eb4 ~@2 eb4 db4 ab3 eb4 ~ eb4 db4 ~",
  J: "[eb3,bb3]!2 ~@4 [db3,ab3]!2 [eb3,bb3]!2 ~@6", K: "~@11 db3 c3@2 bb2 ab2", L: "bb2 ~@7",
})).s("gm_electric_guitar_muted").gain(0.33).pan(0.4)

// other · electric guitar muted · "MUTED GTR" · soft notes
const electric_guitar_muted_2 = note("<~@57 A B C D ~ E F ~@36>".pickRestart({
  A: "~@14 bb3 ~", B: "~@2 ab3 ~@13", C: "~@7 ab3 ~@8", D: "~@7 f3 ~@2 f3 ~@5", E: "~@2 ab3 ~@12 ab3",
  F: "~@6 db4 ~@8 ab3",
})).s("gm_electric_guitar_muted").gain(0.22).pan(0.4)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@58 A B C D ~@2 E F@3 G@2 H@2 I@2 J@2 G@2 K L M@4 G@2 K L N@2 ~@10>".pickRestart({
  A: "~@9 c4 eb4 ab4 g4 eb4 c4 bb3", B: "ab3@3 ~@5", C: "~@4 f4 g4 ab4 [a4,bb4]", D: "ab4 ~",
  E: "[eb3,g3,bb3]!2 ~@4 [db3,f3,ab3]!2 [eb3,g3,bb3]!2 ~@6", // Eb Db Eb
  F: "[[eb3,g3,bb3]!2 ~@4 [db3,f3,ab3]!2 [eb3,g3,bb3]!2 ~@6 eb3@32, ~@5 ab2@19]/3", G: "[db3,ab3]/2",
  H: "[[bb2,f3]@31 ~]/2", I: "[eb3,bb3]/2", J: "[ab2,eb3]/2", K: "[bb2,f3]", L: "[eb3,bb3] [db3,ab3]",
  M: "[[ab2,eb3]@15 [ab2,eb3]@17]/4", N: "[[ab2,eb3]@3 ~]/2",
})).s("gm_overdriven_guitar").gain(0.44)

// … 114 more lines

More by Celine Dion