Strudelify

Dangerous

Roxette

KeyE majorTempo122 bpm
0:00/0:00
// Dangerous — Roxette
// 122 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 111 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): guitar program 29, guitar program 27, guitar program 28.
setcpm(122/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.

// chords · percussive organ
const percussive_organ = note(`<
  ~@4 A@2 B@2 C@2 D@2 E@2 ~@12 F@4 G@2 H@4 ~@12 F@4 I@6 J@2 ~@28 F@4 G@2 K@8 L@2 G@2 H@4 ~
>`.pickRestart({
  A: "[a5@3 g#5@12 ~, [b4,e5]@15 ~]/2", B: "[[e5,g#5]@3 [d#5,f#5]@12 ~, b4@15 ~]/2",
  C: "[f#5@6 e5@23 ~@3, [g#4,c#5]@15 ~]/2", D: "[[b4,c#5,e5]@5 ~ [b4,c#5,e5]@23 ~@3]/2",
  E: "[[b4,a5]@6 [b4,g#5]@25 ~, e5@31 ~]/2", F: "[e5 f#4, b4]/4", G: "[g#4,c#5]/2", H: "[b4,e5]/4",
  I: "[[g#4,c#5] e5@2, ~@32 b4@61 ~@3]/6", J: "[f#4,b4]/2", K: "[e5@2 f#4 e5, b4]/8", L: "f#4/2",
})).s("gm_percussive_organ").gain(0.11).pan(0.7)

// bass · fretless bass
const bass = note(`<
  A@4 B@2 C@2 D E F G B H D@2 I@2 D@2 I J K L F G M@2 I@2 L N F O M@2 D@2 I@2 D@2 I J K L F G M@2 I@2 L N F O M@2 I@2 P
  Q R S P T U S P T U S P Q R S K L F G ~@8 M@2 I@2 L N F O M@2 I@2 M@2 I@2 L N F O V@2 ~
>`.pickRestart({
  A: "d2@2 e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~",
  B: "[d1,d2]@2 [e1,e2] ~ [e1,e2] ~ [e1,e2] ~ [e1,e2] ~ [e1,e2] ~ [e1,e2] ~ [e1,e2] ~", // D E
  C: "a1@2 b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~", D: "b1@2 c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~",
  E: "b1@2 c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ b1@2", F: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
  G: "a1 ~ a1 ~ a1 ~ a1 ~ a1@2 g1@2 a1@2 g1@2",
  H: "~ e1 e2 ~ [e1,e2] ~ [e1,e2] ~ [e1,e2] ~ [e1,e2] ~ [e1,e2] ~ [e1,e2] ~, [d1,d2] ~@7", // E D
  I: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~", J: "b1 ~ b1 ~ b1 ~ b1 ~ a1@2 b1 ~ a1@2 b1 ~",
  K: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~", L: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~",
  M: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~", N: "b1@2 c#2 ~ c#2 ~ c#2 ~ b1@2 c#2 ~ c#2 ~ b1 ~",
  O: "a1 ~ a1 ~ a1 ~ a1 ~ a1@2 g1 ~ a1@2 g1@2",
  P: "[b0,b1]@2 [c#1,c#2] ~ [c#1,c#2] ~ [c#1,c#2] ~ [c#1,c#2] ~ [c#1,c#2] ~ [c#1,c#2] ~ [c#1,c#2] ~", // B C#
  Q: "[b0,b1] ~ [b0,b1] ~ [b0,b1] ~ [b0,b1] ~ [b0,b1] ~ [d#1,d#2]@2 e2@2 f2@2, ~@12 e1 ~ f1 ~", // B D#
  R: "f#2@2 [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~, f#1 ~@15", // F#
  S: "[c#1,c#2] ~ [c#1,c#2] ~ [c#1,c#2] ~ [c#1,c#2] ~ [c#1,c#2] ~ [c#1,c#2] ~ [c#1,c#2] ~ [c#1,c#2] ~", // C#
  T: "[b0,b1] ~ [b0,b1] ~ [b0,b1] ~ [b0,b1] ~ [b0,b1] ~ [d#1,d#2]@2 [e1,e2]@2 f2@2, ~@14 f1 ~", // B D# E
  U: "[f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~", // F#
  V: "[e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1@20]/2",
})).s("gm_fretless_bass").gain(0.38)

// chords · percussive organ
const percussive_organ_2 = note(`<
  A@4 B A C D E F G H B A ~@8 I J K@2 B A C D E F G H B A ~@8 I J K@2 B A C D E L G H B A C M N O P Q R S T U N V W U N
  X Y Z I J K@2 AA AB AC AD AE AF AG AH B A C AI E AJ G H B A C M B A C D E F G H AK ~@2
>`.pickRestart({
  A: "~@2 b4 ~@3 b4 ~ [b4,e5]!3 ~@3 [b4,e5] ~", B: "~@2 b4 ~@3 b4 ~ [b4,e5]!3 ~@3 b4 ~",
  C: "~@2 b4 ~@3 b4 ~ [b4,f#5]!3 ~@3 b4 ~", D: "~@2 b4 ~@3 b4 ~ [b4,f#5]!3 ~@3 [b4,f#5] ~",
  E: "~@2 [c#5,g#5] ~@3 [g#4,c#5] ~ [c#5,g#5]!3 ~@3 [g#4,c#5] ~", // C#5
  F: "~@2 [g#4,c#5] ~@3 [g#4,c#5] ~ [c#5,g#5] g#5!2 ~@3 [g#4,c#5] ~, ~@9 c#5@2 ~@5", // C#5
  G: "~@2 a4 ~@3 a4 ~ [b4,e5]!3 ~@3 a4 ~", H: "~@2 a4 ~@3 a4 ~ [b4,e5]!3 ~@3 [b4,e5] ~", I: "[b4,e6]", J: "[g#5,c#6]",
  K: "[[e5,a5]@23 ~ [e5,a5]@3 ~ [e5,a5]@3 ~]/2", L: "~@2 [g#4,c#5] ~@3 [g#4,c#5] ~ [c#5,g#5]!3 ~@3 [g#4,c#5] ~",
  M: "~@2 b4 ~@3 b4 ~ [b4,f#5]!3 f#5!3 [b4,f#5] f#5", // B5
  N: "~@2 [c#5,g#5] ~@3 [c#5,g#5] ~ [c#5,g#5]!3 ~ [c#5,g#5] ~ [c#5,g#5] ~", // C#5
  O: "~@2 [b4,f#5] ~ [b4,f#5] f#5!2 ~ [b4,f#5] f#5!2 ~@3 [b4,f#5] ~, ~@5 b4@2 ~@2 b4@2 ~@5", // B5
  P: "~@2 [c#5,f#5] ~@3 [c#5,f#5] ~ [c#5,f#5]!3 ~ [c#5,f#5] ~ [c#5,f#5] ~", // F#5
  Q: "~@2 [c#5,g#5] ~ g#5 [c#5,g#5]!2 ~ [c#5,g#5] g#5!2 ~@3 [c#5,g#5] ~, ~@9 c#5@2 ~@5", // C#5
  R: "~@2 [c#5,g#5] ~@3 [c#5,g#5] ~ [c#5,g#5] g#5!2 ~ [c#5,g#5] ~ [c#5,g#5] ~, ~@9 c#5@2 ~@5", // C#5
  S: "~@2 [b4,f#5] ~ [b4,f#5] f#5!2 ~ [b4,f#5] f#5!2 ~@3 [b4,f#5] ~, ~@5 b4@2 ~@2 b4@3 ~@4", // B5
  T: "~@2 [c#5,f#5] ~@3 [c#5,f#5] ~ c#5 [c#5,f#5]!2 ~ c#5 ~ [c#5,f#5] ~", // F#5
  U: "~@2 [c#5,g#5] ~ [c#5,g#5]!3 ~ [c#5,g#5] g#5!2 ~@3 [c#5,g#5] ~, ~@9 c#5@2 ~@5", // C#5
  V: "~@2 [b4,f#5] ~ [b4,f#5]!3 ~ [b4,f#5]!3 ~@3 [b4,f#5] ~", // B5
  W: "~@2 f#5@2 ~@2 [c#5,f#5] ~ [c#5,f#5]!3 ~ [c#5,f#5] ~ [c#5,f#5] ~, ~@2 c#5 ~@13", // F#5
  X: "~@2 [b4,f#5] ~ [b4,f#5] f#5!2 ~ [b4,f#5] f#5 b4@2 ~@2 [b4,f#5] ~, ~@5 b4@2 ~@3 f#5 ~@5", // B5
  Y: "~@2 [c#5,f#5] ~@3 [c#5,f#5] ~ [c#5,f#5] c#5!2 ~ [c#5,f#5] ~ [c#5,f#5] ~, ~@9 f#5@2 ~@5", // F#5
  Z: "~@2 [c#5,g#5] ~ [c#5,g#5]!3 ~ [c#5,g#5] g#5!2 ~@3 c#5@2, ~@9 c#5@2 ~@3 g#5 ~", // C#5
  AA: "~@2 [e3,b4] ~@3 e4 ~ [b4,e5]!3 ~@3 [e3,b4] ~", AB: "~@2 [e3,e4] ~@3 [e3,b3] ~ [b4,e5]!3 ~@3 [b2,f#4] ~",
  AC: "~@2 b3 ~@3 [b2,b3] ~ [f#4,b4]!3 ~@3 [b2,b3] ~", AD: "~@2 b3 ~@3 [b2,b3] ~ [f#4,b4]!3 ~@3 [c#3,g#4] ~",
  AE: "~@2 [c#4,g#4] ~@3 [c#3,c#4] ~ [g#4,c#5]!3 ~@3 [c#3,g#4] ~", // C#5 C# C#5
  AF: "~@2 [c#4,g#4] ~@3 [c#3,c#4] ~ [g#4,c#5] g#4!2 ~@3 [a3,g#4] ~, ~@9 c#5@2 ~@5", // C#5 C# C#5 Amaj7
  AG: "~@2 a4 ~@3 [a2,a3] ~ [e4,b4]!3 ~@3 [a2,a4] ~", AH: "~@2 [a3,a4] ~@3 [a2,a3] ~ [e4,b4]!3 ~@3 [e4,b4] ~",
  AI: "~@2 b4 ~@3 b4 ~ [b4,f#5]!2 f#5 ~@3 [b4,f#5] ~", // B5
  AJ: "~@2 [g#4,c#5] ~@3 [g#4,c#5] ~ [c#5,g#5]!2 g#5 ~@3 [g#4,c#5] ~", AK: "~@2 b4 ~@3 b4 ~ [b4,e5]!3 ~@5",
})).s("gm_percussive_organ").gain(0.16).pan(0.4)

// other · epiano1
const epiano1 = note(`<
  ~@4 A@2 B ~@10 C D E ~@6 F G H I@2 J@2 K L ~@4 C M E ~@6 F G H N@2 J@2 K O@2 P@2 ~@28 Q G H I@2 J@2 K O@2 R ~@12
>`.pickRestart({
  A: "[~@14 b4@5 ~ b4@2 b4@2 b4@2 a4@2 g#4@4]/2", B: "[e4,g#4]@2 [d#4,f#4] [d#4,f#4]@5", C: "~@10 e3 d#3@2 d#3 b2@2",
  D: "c#3@8 ~@2 e3 d#3@2 d#3 b2@2", E: "c#3 ~", F: "[a3,a4]@2 [g#3,g#4] [g#3,g#4]@4 [g#3,g#4]",
  G: "[g#3,g#4]@2 [g#3,g#4]!3 [a3,a4] [b3,b4]@2", H: "[b3,b4]@2 [f#3,f#4] [f#3,f#4]@4 [f#3,f#4]",
  I: "[[f#3,f#4]@2 [f#3,f#4] [g#3,g#4] [a3,a4]@2 [f#3,f#4] [f#3,f#4]@2 [g#3,g#4]@2 [e3,e4]@4 [e3,e4]]/2", // F# G# A F# G# E
  J: "[[g#3,g#4]@2 [g#3,g#4]!3 [f#3,f#4] [e3,e4] [a3,a4]@2 [g#3,g#4] [f#3,f#4] [e3,e4]@4 [e3,e4]]/2", // G# F# E A G# F# E
  K: "[a3,a4,c#5]@2 [a3,a4,c#5]!4 [a3,a4,c#5]@2", L: "[a3,a4,c#5]@2 [g#3,g#4,b4] [g#3,g#4,b4]@5",
  M: "c#3@7 ~@3 g3 f#3@2 f#3 e3@2",
  N: "[[f#3,f#4]@2 [f#3,f#4] [g#3,g#4] [a3,a4]@2 [f#3,f#4] [f#3,f#4]@2 [g#3,g#4]@2 [e3,e4]@3 ~ [e3,e4]]/2", // F# G# A F# G# E
  O: "[[a3,a4,c#5]@2 [g#3,g#4,b4] [g#3,g#4,b4]@4 b4@3 [b3,e4,g#4]!3 [b3,e4,a4] [b3,e4,g#4]@2]/2", // A G#m E Esus4 E
  P: "[[c#4,e4,f#4]@2 [d#4,f#4,b4] [b3,d#4,f#4]@7 ~@6]/2", Q: "[a3,a4,e5]@2 [g#3,g#4,e5] [g#3,g#4,e5]@3 ~ [g#3,g#4]",
  R: "[c#4,e4,g#4]@2 [d#4,f#4,b4] [b3,d#4,f#4]@5", // C#m B
})).s("gm_epiano1").gain(0.11)

// chords · lead 8 bass lead
const lead_8_bass_lead = note("<~@3 A B ~@6 C D ~@74 C E ~@22>".pickRestart({
  A: "~@3 [d5,g5], ~@12 e3 ~@3", B: "e5@2 b5 g#5@3 ~@2, a5@3 ~@3 g5 ~@9", C: "~@3 [d5,g5]", D: "[e5,a5] ~@3",
  E: "[e5,a5]@5 ~@11", // A5
})).s("gm_lead_8_bass_lead").gain(0.17).pan(0.7)

// other · pad poly
const pad_poly = note(`<
  ~@2 A B C D E D F G H B C D ~@12 C D E D F G H B C D ~@12 C D E D F G H B C D E D ~@22 E D F G H B C D E D F G H B C D
  E D C D E D F G H B I@2 ~
>`.pickRestart({
  A: "~ e5 b5 b4 e5 b4 b5 b4", B: "f#5 b4 e5 b4 f#5 b4 g5 b4", C: "a5 e5 b5 b4 e5 b4 b5 b4",
  D: "f#5 b4 e5 b4 f#5 b4 g#5 b4", E: "f#5 b4 b5 b4 f#5 b4 b5 b4", F: "f#5 e5 c#6 c#5 e5 c#5 c#6 c#5",
  G: "f#5 c#5 e5 c#5 f#5 c#5 g#5 c#5", H: "e5 b4 b5 b4 e5 b4 b5 b4", I: "[a5 e5 b5 b4 e5@12]/2",
})).s("gm_pad_poly").gain(0.16).pan(0.2)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@12 A@2 B C D E B C D F G H I@2 J K L M N O P Q R@2 B C S T B C S T G H I@2 J K L M N O P Q U K V W X Y Z AA AB@2
  AC@2 AD@2 AE@2 AF@2 AG@2 AH@4 ~@8 J K L M N O P Q U K V W J K L M N O P Q R@2 ~
>`.pickRestart({
  A: "[~@3 [e3,b3]@5]/2", B: "~@2 [b3,e4] ~@5 [f#3,b3]@2 ~@2 [g#3,c#4]@2 [f#3,g3,b3,c4] [e3,f3,a3,a#3]",
  C: "g#3 ~ [b3,e4] ~@3 [f#3,b3] ~@3 [g#3,c#4]@5 ~", D: "~@8 c#3 d#3 f#3 ~ f#3 g#3 b3 ~",
  E: "~@2 [f#3,b3] ~@5 [b3,e4]@4 [b3,d#4]@3 ~", F: "~@2 [f#3,b3] ~@3 f#3 ~ [b3,e4]@4 [b3,d#4]@2 ~@2", G: "[e3,b3,e4]",
  H: "[c#3,g#3,c#4]", I: "[[a2,e3,a3]@22 ~@2 [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~]/2",
  J: "[e4,a4]@2 [e4,a4]@2 ~@2 [e4,g#4] ~ [e4,g#4]@4 ~@2 [e4,a4]@2", // A5 E A5
  K: "~@2 [e4,g#4]@2 ~@2 e4 ~ [e4,a4] ~ [e4,a4] ~ [e4,g#4]@2 ~@2", // E A5 E
  L: "[b3,e4]@2 [b3,e4]@2 ~@2 [b3,d#4]@2 [b3,d#4]@4 ~@2 [b3,e4] ~", // E5 B E5
  M: "~@2 [b3,d#4]@2 ~@2 b3 ~ e4 ~ e4 ~ [b3,d#4]@3 ~, ~@2 b3 ~", N: "[c#4,e4]!2 ~ [c#4,e4] [c#4,e4]@2 ~ [c#4,f#4]",
  O: "~@2 [c#4,e4] ~@3 c#4 ~ [c#4,f#4] ~ f#4@2 e4 ~ b3 ~, ~@5 c#4@2 ~", // C#m F#5
  P: "[b3,e4]@2 [b3,e4] ~@3 [b3,e4]@2 [b3,e4]@5 ~ [b3,e4] ~", Q: "~@2 [b3,e4] ~@3 b3 ~ a3@4 [b3,e4]@2 ~@2, ~@4 d4 ~@3",
  R: "[[b3,e4,a4]@5 ~ [b3,e4]@4 ~@2 [e3,b3,e4]@20, ~@3 g#4@3 ~@10]/2", // Esus4 E5
  S: "~@2 [f#3,b3] ~@3 [f#3,b3] ~ [f#3,b3] ~ [f#3,b3] ~@3 [f#3,b3] ~", // B5
  T: "~@2 [f#3,b3] ~@3 [f#3,b3] ~ [b3,e4]@3 ~ [b3,d#4]@3 ~", // B5 E5 B
  U: "[e4,a4]@2 [e4,a4]@2 ~@2 [e4,g#4]@2 [e4,g#4]@5 ~ [e4,a4] ~", // A5 E A5
  V: "[b3,e4]@2 [b3,e4]@2 ~@2 [b3,d#4]@2 [b3,d#4]@5 ~ [b3,e4]@2", W: "~@2 [b3,d#4]@13 ~", X: "b4@5 ~ e5!2",
  Y: "~ e5@6 ~", Z: "~ b5!2 g#5 e5@2 d#5 c#5", AA: "b4!2 g#4 b4@4 ~",
  AB: "[g#5@4 b5 g#5 [g#5,b5] b5 [g#5,b5] g#5 [g#5,b5]!2 b5 [g#5,b5] g#5 g#5@4 ~ [g#5,b5]!2 b5 [g#5,b5] g#5 [g#5,b5] b5 [g#5,b5] g#5 [g#5,b5] b5 ~, ~@15 b5 ~@16]/2", // G#m
  AC: "[b2@3 ~ e5@3 ~ e5@4 c#5@2 e5@13 ~@5]/2", AD: "[e4@8 c#4@6 e4@11 ~@2 e4 c#4@2 g#3@2]/2",
  AE: "[c#4@8 e3@2 f3@2 c#3@6 ~@2 g#4@4 b4 g#4 b4@2 g#4@2 b4 g#4]/2",
  AF: "[b4@2 g#4@2 b4 g#4 b4@2 ~ b4!2 g#4 b4 ~ b4@4 ~@2 c#5@2 b4@5 [f#4,g#4] c#4@3 ~, ~@8 g#4@2 ~@18 e4 ~@3]/2", // F#sus2
  AG: "[[e5,f5] g#5@3 f#5 e5 ~ c#5@4 ~@5]/2", // Fmaj7
  AH: "[[e3,b3,e4]@16 [c#3,g#3,c#4]@16 [a2,e3,a3]@22 ~@2 [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~, e5@55 ~@9]/4", // E5 C#5 A5
})).s("gm_overdriven_guitar").gain(0.19).pan(0.7)

// chords · overdriven guitar
const overdriven_guitar_2 = note(`<
  A B A@2 ~@3 C D@2 E ~@40 F ~ G ~@10 H I J K L ~@22 F ~ G ~@9 F ~ G ~@5
>`.pickRestart({
  A: "[d3,a3] [e3,b3] ~@6", B: "[d3,a3]@2 [e3,b3] ~@13", C: "~@4 b3 c#4 e4 f#4", D: "[c#4@10 ~@2 b3 c#4 e4 f#4]/2",
  E: "e4@7 ~", F: "~@5 c#4 e4 f#4", G: "~@4 b3 ~@2 f#4", H: "~@5 b5 ~@10", I: "~@3 b5 ~@12",
  J: "~@4 b4@3 ~ b4@4 g#4@2 b4@2", K: "~@2 e5@5 ~ e5@2 d#5@2 c#5@2 f#4@2, ~ b4@4 ~@3", L: "g#4@13 ~@3",
})).s("gm_overdriven_guitar").gain(0.22).pan(0.3)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  A@4 B C D E F G H I J ~ K L M N K L O P Q R S@2 T U V W X Y Z AA AB@2 K L AC AD K L AC AE Q R S@2 AF AG AH AI AJ AK AL
  AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BB BF Q R S@2 ~@8 T AG V BG AJ AK AL AA BH AO BI AQ BJ AG BK
  BL AJ BM BN BO BP@2 ~
>`.pickRestart({
  A: "[d3,a3]@2 [e3,b3] ~@13", B: "[b3,e4,a4]@2 [b3,e4,a4] ~@3 [b3,e4,g#4] ~ [b3,e4,g#4]@5 ~ [b3,e4,g#4] ~",
  C: "~@2 [b3,e4,g#4] ~@3 b3 ~ [b3,e4,a4] ~ [b3,e4,a4] ~ [b3,e4,g#4]@2 b3 ~", // E Esus4 E
  D: "[b3,e4,g#4]@2 [b3,e4,g#4] ~@3 [b3,d#4,f#4] ~ [b3,d#4,f#4]@4 ~@2 [b3,d#4,f#4] ~", // E B
  E: "~@2 [b3,d#4,f#4] ~@3 b3 ~ [b2,b3,g#4] ~ [c#3,b3,g#4] ~ [e3,b3,f#4]@2 f#3@2", // B E C#7 Esus2
  F: "[g#3,c#4] ~ [g#3,c#4,f#4] ~@3 [g#3,c#4,e4] ~ [g#3,c#4,e4]@4 g#3 ~ [g#3,c#4,f#4] ~, c#3@7 ~, f#4 ~@7", // C#5 C#sus4 C#m C#sus4
  G: "~@2 [g#3,c#4,e4] ~@3 [g#3,c#4,f#4] ~ [b2,g#3,f#4]@2 [c#3,g#3,f#4]@2 [e3,g#3,e4]@2 [f#3,g#3]@2, ~@5 c#4@2 ~", // C#m C#sus4 G#m7 C#sus4 E F#sus2
  H: "[b3,c#4] ~ [b3,c#4] ~@3 [b3,c#4,e4]@2 [b3,c#4,e4]@4 ~@2 [b3,c#4,e4] ~, e3@11 ~@5, e4 ~@7", // Bsus2 C#m7
  I: "~@2 [b3,c#4] ~@3 b3 ~ [g3,d4] ~ [g3,d4] ~ [a3,c#4,e4]@2 a3 ~, ~@2 e4@3 ~@11", // Bsus2 G5 A
  J: "[b3,e4,a4]@2 [b3,e4,a4] ~@3 [b3,e4,g#4]@2 [b3,e4,g#4]@8", K: "~@2 [b3,e4] ~@5 [f#3,b3] ~@3 [g#3,c#4]@2 ~@2",
  L: "~@2 [b3,e4] ~@3 [f#3,b3] ~@3 [g#3,c#4]@5 ~", M: "~@8 c#3 d#3 f#3 ~ f#3 g#3 b3@2",
  N: "~@2 [f#3,b3] ~@5 [b3,e4]@3 ~ [b3,d#4]@3 ~", O: "~@8 c#3 d#3 f#3 ~ f#3 g#3 b3 ~",
  P: "~@2 [f#3,b3] ~@3 f#3 ~ [b3,e4]@4 [b3,d#4]@2 ~@2", Q: "[e3,b3], e4@13 ~@3", R: "[c#3,g#3]",
  S: "[[a2,e3]@11 ~ [a2,e3] ~ [a2,e3] ~]/2", // A5
  T: "[b3,e4,a4]@2 [b3,e4,a4] ~@3 [b3,e4,g#4]@2 [b3,e4,g#4]@4 ~@2 [b3,e4,a4] ~", // Esus4 E Esus4
  U: "~@2 [b3,e4,g#4] ~@3 [b3,e4] ~ [b3,e4,a4] ~ [b3,e4,a4] ~ [b3,e4,g#4]@2 b3 ~", // E E5 Esus4 E
  V: "[f#3,b3,e4] ~ [f#3,b3,e4] ~@3 [f#3,b3,d#4] ~ [f#3,b3,d#4]@5 ~ [f#3,b3,e4] ~", // Esus2 B Esus2
  W: "~@2 [f#3,b3,d#4]@2 ~@2 [f#3,b3] ~ [f#3,b3,e4] ~ [f#3,b3,e4] ~ [f#3,b3,d#4]@3 ~", // B B5 Esus2 B
  X: "[g#3,c#4,e4]@2 [g#3,c#4,e4] ~@3 [g#3,c#4,e4]@2 [g#3,c#4,e4]@5 ~ [g#3,c#4,f#4] ~", // C#m C#sus4
  Y: "~@2 [g#3,c#4,e4] ~@3 [g#3,c#4] ~ [g#3,c#4,f#4] ~ [g#3,c#4,f#4]@2 [c#4,e4]@2 g#3 ~", // C#m C#5 C#sus4 C#m
  Z: "[a3,b3,c#4,e4]@2 [a3,b3,c#4,e4] ~@3 [a3,b3,c#4,e4]@2 [a3,b3,c#4,e4]@5 ~ [a3,b3,c#4,e4] ~", // A
  AA: "~@2 [a3,b3,c#4,e4]@2 ~@2 [a3,b3] ~ [g3,b3,d4]@2 [g3,b3,d4] ~ [b3,e4]@2 [b3,d4] ~", // A Asus2 G E5 Bm
  AB: "[[b3,e4,a4]@2 [b3,e4,a4] ~@3 [b3,e4,g#4] ~ [b3,e4,g#4]@16 ~@8]/2", // Esus4 E
  AC: "~@2 [f#3,b3] ~@3 [f#3,b3] ~ [f#3,b3] ~ [f#3,b3] ~@3 [f#3,b3] ~", // B5
  AD: "~@2 [f#3,b3] ~@3 f#3 ~ [f#3,b3,e4]@2 ~@2 [f#3,b3,d#4]@2 ~@2", // B5 Esus2 B
  AE: "~@2 [f#3,b3] ~@3 [f#3,b3] ~ [b3,e4]@3 ~ [b3,d#4]@4", // B5 E5 B
  AF: "[b3,e4,a4]@2 [b3,e4,a4] ~@3 [b3,e4,g#4]@2 [b3,e4,g#4]@5 ~ [b3,e4,a4] ~", // Esus4 E Esus4
  AG: "~@2 [b3,e4,g#4] ~@3 [b3,e4] ~ [b3,e4,a4]@2 [b3,e4,a4] ~ [b3,e4,g#4]@2 b3 ~", // E E5 Esus4 E
  AH: "[f#3,b3,e4] ~ [f#3,b3,e4] ~@3 [f#3,b3,d#4] ~ [f#3,b3,d#4]@4 ~@2 [f#3,b3,e4] ~", // Esus2 B Esus2
  AI: "~@2 [f#3,b3,d#4]@2 ~@2 [f#3,b3] ~ [b2,f#3,b3,e4]@2 [c#3,f#3,b3,e4]@2 [e3,b3,d#4]@2 f#3@2, ~@12 f#3 ~@3", // B B5 Bsus4 C#m7 Emaj7
  AJ: "[g#3,e4]@2 [g#3,c#4,e4] ~@3 [g#3,c#4,e4]@2 [g#3,c#4,e4]@5 ~ [g#3,c#4,f#4] ~, c#3@7 ~, c#4 ~@15", // C#m C#sus4
  AK: "~@2 [g#3,c#4,e4] ~@3 [g#3,c#4] ~ [b2,g#3,c#4,f#4]@2 [c#3,g#3,c#4,f#4]@2 [e3,c#4,e4]@2 [f#3,g#3]@2", // C#m C#5 Bsus2 C#sus4 C#m F#sus2
  AL: "[a3,b3,c#4]@2 [a3,b3,c#4,e4] ~@3 [a3,b3,c#4,e4]@2 [a3,b3,c#4,e4]@5 ~ [a3,b3,c#4,e4] ~, e3@11 ~@5, e4 ~@15", // A
  AM: "~@2 [a3,b3,c#4,e4]@2 ~@2 [a3,b3] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [b3,e4]@2 [b3,d4] ~", // A Asus2 G E5 Bm
  AN: "[e4,a4]@2 [e4,a4] ~@3 [b3,e4,g#4]@2 [b3,e4,g#4]@5 ~ [b3,e4,a4] ~, b3 ~@3", // A5 E Esus4
  AO: "~@2 [b3,e4,g#4]@2 ~@2 [b3,e4] ~ [b3,e4,a4] ~ [b3,e4,a4] ~ [b3,e4,g#4]@2 ~@2", // E E5 Esus4 E
  AP: "[f#3,b3,e4]@2 [f#3,b3,e4]@2 ~@2 [f#3,b3,d#4] ~ [f#3,b3,d#4]@4 ~@2 [f#3,b3,e4] ~", AQ: "~ [f#3,b3,d#4]@5 ~@2",
  AR: "~@2 [b3,e4] ~@3 [g#3,c#4] ~ [b3,e4]@3 b3 [c4,c#4,f#4] ~ [b3,e4] ~", // E5 C#5 E5 F# E5
  AS: "~@2 [b3,e4] ~@3 [g#3,c#4] ~ [c#4,f#4]@4 [b3,e4]!3 b3", // E5 C#5 F#5 E5
  AT: "~@2 b3 ~ [b3,e4]@2 b3 ~ [a#3,d#4]@2 [g#3,c#4]@2 ~@2 [g#3,c#4] ~", // E5 D#5 C#5
  AU: "~@2 g#3 ~ [c#4,f#4]@4 [b3,e4]@5 ~ [b3,e4] ~, ~@4 b3 ~@11", // F#5 E5
  AV: "~@2 [b3,e4] ~@3 [g#3,c#4] ~ [c#4,e4]@3 ~ [b3,c#4,f#4]@2 [b3,e4] ~, ~@8 b3 ~@7", // E5 C#5 C#m Bsus2 E5
  AW: "~@2 [b3,e4] ~@3 [g#3,c#4] ~ [c#4,f#4]@4 [b3,e4]!4, ~@8 b3 ~@7", // E5 C#5 F#5 E5
  AX: "~@2 b3 ~ [a#3,c#4,f#4]@2 ~@2 [a#3,c#4,f#4]@2 [g#3,b3,e4]@2 ~@2 [g#3,b3,e4] ~", // F# E
  AY: "~@2 b3 ~ [c#4,f#4]@4 [b3,e4]@5 ~ [b3,e4] ~, ~@4 b3 ~@11", // F#5 E5
// … 122 more lines

More by Roxette