Strudelify
Mr. Bad Guy cover art

Mr Bad Guy

Mr. Bad Guy

Freddie Mercury

KeyG minorTempo90 bpm
0:00/0:00
// Mr. Bad Guy — Freddie Mercury
// 90 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 1 "Contra Bass/Bass Guitar" named as a bass, played on acoustic bass (its contrabass patch is not one); ch 11 "Orchestral Perc." named as a string part, played on string ensemble 1 (its piano patch is not one)
// note: Full arrangement: all 116 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: The whole transcription plays 57 ms ahead of the beat; the grid follows it, so its parts stay together.
setcpm(90/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.

// bass · acoustic bass · "Contra Bass/Bass Guitar"
const bass = note("<A@2 B@8 ~@63 A@42 ~>".pickRestart({
  A: "~ g1 ~ bb1 ~ g1 ~ bb1 ~ g1 ~ bb1 ~ g1 ~ bb1",
  B: "[~ g1 ~ bb1 ~ c2 ~ d2 ~ g2@24 g1 ~ bb1 ~ c2 ~ d2 ~ g2@40 ~@16 f1@16 ~@15, ~@81 f2@32 ~@15]/8",
})).s("gm_acoustic_bass").gain(0.57)

// bass · synth strings 1 · "Contra Bass/Bass Guitar"
const bass_2 = note("<~@10 A@5 B@2 C@2 D ~@5 A@5 B@2 C@2 D ~@24 E@2 F@2 G@2 C@2 D H I J@3 ~@43>".pickRestart({
  A: "~ g1 ~ bb1 ~ g1 ~ bb1 ~ g1 ~ bb1 ~ g1 ~ bb1", B: "~ f1 ~ a1 ~ f1 ~ a1 ~ f1 ~ a1 ~ f1 ~ a1",
  C: "~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1", D: "~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1",
  E: "~ c3@5 ~ bb2@9", F: "~ d3@5 ~ c3@9", G: "~ f2@2 ~@2 f2@2 ~@2 f2@2 ~@2 f2@2 ~", H: "~ c2@6 b1@6 bb1@3",
  I: "~ a1@8 ab1@4 g1@3",
  J: "[~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1@2 c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2 f2@2 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1]/3",
})).s("gm_synth_strings_1").gain(0.57)

// bass · string ensemble 1 · "Low Strings"
const bass_3 = note(`<
  A B C@8 B@5 D@2 E@2 F G H I J K B@5 D@2 E@2 F G H I J L@2 M N O P Q R S T S T U V W ~ X Y ~ Z AA@2 AB@2 AC AD AE@2 AF
  AG AH AI@3 AJ AK AL@6 AJ AK AL@6 AJ AK AL@6 AJ AK AL@6 AJ AK AL@6 AJ AK ~
>`.pickRestart({
  A: "~@9 g1 ~ bb1 ~ g1 ~ bb1", B: "~ g1 ~ bb1 ~ g1 ~ bb1 ~ g1 ~ bb1 ~ g1 ~ bb1",
  C: "[~ g1 ~ bb1 ~ c2 ~ [d2,e2] ~ g2@24 g1 ~ bb1 ~ c2 ~ d2 ~ g2@40 f2@32 d2@15]/8", // Dsus2
  D: "~ f1 ~ a1 ~ f1 ~ a1 ~ f1 ~ a1 ~ f1 ~ a1", E: "~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1",
  F: "~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1", G: "~ c2@6 b1@9", H: "~ bb1@6 a1@9", I: "~ g1@15", J: "~ c2@15",
  K: "~ f2@15", L: "[~ [f2,f3]@30 ~]/2", M: "~ [eb2,eb3]@15", N: "~ [f2,f3]@15", O: "~ [c2,c3]@6 [b1,b2]@6 [bb1,bb2]@3",
  P: "~ [a1,a2]@6 [ab1,ab2]@6 [g1,g2]@3", Q: "~ [eb2,eb3]@8 [f2,f3]@7", R: "~ [bb1,bb2]@15", S: "~ eb3@8 d3@7",
  T: "~ [f2,f3]@6 [e2,e3]@9", U: "~ [eb2,eb3] ~@3 [eb2,eb3] ~@3 [eb2,eb3] ~@3 [eb2,eb3] ~@2",
  V: "~ [f2,f3] ~@3 [f2,f3] ~@3 [f2,f3] ~@3 [f2,f3] ~@2", W: "~ [bb1,bb2]@15, ~ ab2 ~@14", X: "~ eb4@6 d4 ~@8",
  Y: "~ db4@6 c4 ~@8", Z: "~ bb2@6 a2 ~@8", AA: "~ eb4@5 ~ eb4@9", AB: "~ f4@5 ~ e4@9",
  AC: "~@2 d4@2 ~ eb4@2 ~@2 eb4 ~@3 [eb4,f4] ~@2, ~@2 eb4 ~@13", // Ebsus2
  AD: "~ [eb4,f4] ~@3 [eb4,f4] ~@3 [eb4,f4] ~@3 [eb4,f4]@2 ~", AE: "~ [bb2,bb3]@15", AF: "~ [ab2,ab3]@15",
  AG: "~ [c3,c4]@6 [b2,b3]@6 [bb2,bb3]@3", AH: "~ [a2,a3]@8 [ab2,ab3]@4 [g2,g3]@3",
  AI: "[~@9 g1@8 ~@8 c3@8 [f3,f4]@15, ~ g3@32 ~@15, ~ g2@16 c4@31]/3", // F
  AJ: "~ g2 ~ [bb1,bb2] ~ [g1,g2] ~ [bb1,bb2] ~ [g1,g2] ~ [bb1,bb2] ~ [g1,g2] ~ [bb1,bb2]", // Bb G Bb G Bb G Bb
  AK: "~ [g1,g2] ~ [a1,bb1,bb2] ~ [g1,g2] ~ [bb1,bb2] ~ [g1,g2] ~ [bb1,bb2] ~ [g1,g2] ~ [bb1,bb2]", // G Bbmaj7 G Bb G Bb G Bb
  AL: "~ [g1,g2] ~ [bb1,bb2] ~ [g1,g2] ~ [bb1,bb2] ~ [g1,g2] ~ [bb1,bb2] ~ [g1,g2] ~ [bb1,bb2]", // G Bb G Bb G Bb G Bb
})).s("gm_string_ensemble_1").gain(0.36)

// chords · string ensemble 1 · "High Strings"
const string_ensemble_1 = note(`<
  ~ A B@7 C ~@3 D ~ E@2 F G H I@2 J K@2 ~@5 E@2 L@2 M N O P Q R@3 S T U V W X Y Z AA AB AC AD@2 AE@2 AF@2 AG@2 AH AI AJ
  AK AL AM AN AO AP AQ AR AS ~@24 AT@8 ~@11
>`.pickRestart({
  A: "~@9 g2 ~ bb2 ~ g2 ~ bb2",
  B: "[~ g2 ~ bb2 ~ c3 ~ d3 ~@9 [g4,d5] ~@3 [g4,d5] ~@3 [g4,d5] ~@3 [g4,d5] ~@3 [g2,g4,d5] ~ bb2 ~ [c3,g4,d5] ~ d3 ~ [g4,d5] ~@3 [g4,d5] ~@3 [gb4,g4,c5]@8 g4@2 ~@6 c5@8 [g4,b4]@2 ~@6 [f3,c5,f5]@31, ~@9 g3@24 ~@8 g3@40 ~@31, ~@57 b4 ~@7 ab4@10 ~@37]/7", // G5 Csus2 G5 C G F5
  C: "~ [d3,d5,gb5]@15", D: "~@9 eb4@4 d4 ~@2", E: "~ [f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,a4,c5] ~@2",
  F: "~ [d5,f5]@15", G: "~ [c5,eb5]@8 [bb4,d5]@7, ~ d5 ~@14", H: "~ [ab4,c5]@15", I: "[~ [c5,g5]@31]/2",
  J: "~ [c5,f5]@14 ~", K: "[[c5,d5] c6@31, ~ g5@16 ~@15, ~ e5 ~@30]/2",
  L: "~ [f5,bb5] ~ [f5,bb5] ~ [f5,bb5] ~ [f5,bb5] ~ [f5,bb5] ~ [f5,bb5] ~ [f5,bb5] ~ [f5,bb5]", M: "~ [eb5,ab5]@15",
  N: "~ c6@6 d6@9", O: "~ eb6@6 f6@9", P: "~ g6@15", Q: "~ c6@15",
  R: "[~ [a4,c5]!2 [bb4,d5]!2 [a4,c5]!2 [bb4,d5]!2 [a4,c5]!2 [bb4,d5]!2 [a4,c5]!2 [bb4,d5] [bb4,d5] [a4,c5]!2 [bb4,d5]!2 [a4,c5]!2 [bb4,d5]!2 [a4,c5]!2 [bb4,d5]!2 [a4,c5]!2 [bb4,d5] [bb4,d5] [c5,eb5] ~ [c5,eb5] ~ [c5,eb5] ~ [c5,eb5]!3 ~ [c5,eb5]!3 ~ [c5,eb5], ~ [f5,c6]@32 [bb5,eb6]@15]/3", // Am Bb Am Bb Am Bb Am Bb …
  S: "~ [c5,f5] ~ [c5,f5]!3 ~ [c5,f5] ~ [c5,f5]!3 ~ [c5,f5] ~ [c5,f5], ~ [c6,f6]@15", // F5
  T: "[c5,f5] [g4,c5,g5,c6] ~ [g4,c5,g5,c6] ~ [g4,c5,g5,c6] ~ [g4,c5,g5,c6] ~ [g4,c5,g5,c6] ~ [g4,c5,g5,c6] ~ [g4,c5,g5,c6] ~ [g4,c5,g5,c6]", // F5 C5
  U: "~ [g4,c5,g5,c6] ~ [g4,c5,g5,c6] ~ [g4,c5,g5,c6] ~ [g4,c5,g5,c6] ~ [g4,c5,g5,c6] ~ [g4,c5,g5,c6] ~ [g4,c5,g5,c6] ~ [g4,c5,g5,c6]", // C5
  V: "~ [bb4,eb5] ~ [bb4,eb5]!3 ~ [bb4,eb5]!2 [c5,f5] ~ [c5,f5]!3 ~ [c5,f5], ~ [bb5,eb6]@8 [c6,f6]@7", // Eb5 F5 Eb5 F5
  W: "[c5,f5] f5@8 bb4 ~@3 bb4 ~@2, ~ c6@15, ~@9 g5@7", X: "~ eb5@8 d5@7",
  Y: "~ [c5,f5]@2 [c5,f5]@2 [c5,f5] ~ c5@2 c5@2 c5@2 c5@2 [c5,f5], ~@7 e5@9, ~@7 f5 ~ f5 ~ f5 ~ f5 ~@2", // F5
  Z: "~ [c5,g5,c6,g6]@3 ~ [c5,g5,c6,g6]@3 ~ [c5,g5,c6,g6]@3 ~ [c5,g5,c6,g6]@3, ~ e5 ~@14", // C5
  AA: "~ [c5,f5]@2 [c5,f5]@2 [c5,f5] ~ c5@2 c5@2 c5@2 c5@2 [c5,f5], ~@7 e5@8 ~, ~@7 f5 ~ f5 ~ f5 ~ f5 ~@2", // F5
  AB: "~@2 ab5 c5 ab5 c6 ab5 c5 ab5 c6 ab5 c5 ab5 c6 ab5 c5, ~ [ab4,c5]@2 ~@2 [ab4,c5]@2 ~@2 [ab4,c5]@2 ~@2 [ab4,c5]@2 ~", // Ab
  AC: "ab5 db6 ab5 db5 ab5 db6 ab5 db5 ab5 db6 ab5 db5 ab5 [db5,db6] ab5 db5, ~ [ab4,db5]@2 ~@2 [ab4,db5]@2 ~@2 [ab4,db5]@2 ~@2 ab4@2 ~", // Db Db5
  AD: "[ab5 [f4,bb4,f5]@8 c5 ~ f5 c6 f6 g6 ab6@2 [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5], ~@9 f4@8 ~@15, ~@10 c5@7 ~@15]/2", // Bb5 Am
  AE: "~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5]", // Am
  AF: "~ [f4,a4] ~ [f4,a4] ~ [f4,a4] ~ [f4,a4] ~ [f4,a4] ~ [f4,a4] ~ [f4,a4] ~ [f4,a4]", // F
  AG: "~ [eb5,eb6]@5 ~ [eb5,eb6]@8 ~", AH: "~ [f5,f6]@5 ~ [e5,e6]@9", AI: "~ [f5,f6]@5 ~ [e5,e6]@7 ~@2",
  AJ: "~ [d4,bb5,d6]@2 ~@2 [c4,c6,eb6]@2 ~@2 [c6,eb6] ~@3 [c6,eb6] ~@2", // Gm Cm
  AK: "~ c6 ~@3 [c6,eb6] ~@3 [c6,eb6] ~@3 [c6,eb6] ~@2", // Cm
  AL: "~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5]", // Bb
  AM: "~ [f4,bb4,eb5] ~ [f4,bb4,eb5] ~ [f4,bb4,eb5] ~ [f4,bb4,eb5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5]", // Ebsus2 Bb
  AN: "~ [eb4,ab4,c5]@15", AO: "~ c5 eb5 g5 bb5 c6 bb5 g5 eb5 c5 eb5 g5 bb5 c6 bb5 g5",
  AP: "eb5 c5 eb5 g5 bb5 c6 bb5 g5 eb5 c5 eb5 g5 bb5 c6 bb5 g5",
  AQ: "eb5 bb4 d5 f5 ab5 bb5 ab5 f5 d5 bb4 d5 f5 ab5 bb5 ab5 f5", AR: "d5 c5 d5 e5 d5 e5 f5 e5 f5 g5 f5 g5 a5 f5 a5 c6",
  AS: "f5 f6@15", AT: "[~ [g4,bb4,d5]@127]/8",
})).s("gm_string_ensemble_1").gain(0.37)

// other · tuba
const tuba = note("<~ A B@8 ~@106>".pickRestart({
  A: "~ g1 ~ bb1 ~ g1 ~ bb1 ~ g1 ~ bb1 ~ g1 ~ bb1",
  B: "[~ g1 ~ bb1 ~ c2 ~ d2 ~ g2@24 g1 ~ bb1 ~ c2 ~ d2 ~@3 g2@38 f2@32 gb1@15]/8",
})).s("gm_tuba").gain(0.36)

// chords · string ensemble 1 · "Orchestra"
const string_ensemble_1_2 = note(`<
  ~@7 A@2 B ~@10 C D E F G ~@3 H I J@5 K L M N O@4 P Q R S T U@2 V W X Y@2 ~@10 Z@3 AA AB@4 ~@43
>`.pickRestart({
  A: "[~ [c4,f4,c5,f5]@30 ~]/2", B: "~ [d4,gb4,d5,gb5]@15", C: "~ [c3,c4]@6 [b2,b3]@9", D: "~ [bb2,bb3]@6 [a2,a3]@9",
  E: "~ g3@5 ~ [g3,d4]!2 [g3,d4]@7, ~ g2@15", F: "~ [c5,g5,c6]@15", G: "~ [c5,f5]@14 ~",
  H: "~@9 [c4,eb4]@4 [bb3,d4,eb4] ~@2", I: "~ [g3,bb3]@4 [d3,g3] ~@3 [f3,c4,f4] [g3,d4,g4] ~ [g3,d4,g4] ~ [g3,d4,g4] ~",
  J: "[[g3,d4,g4] ~@22 f2!2 f2@8 [bb2,bb3]@32 [ab2,ab3]@15, ~ [f3,f4]@32 ~@47]/5", // G5 Bb Ab F
  K: "~@3 [eb3,eb4] ~ [eb3,eb4]@2 [b2,b3]@9, ~ [c3,c4]@6 ~@9", // Eb B C
  L: "~@3 [eb3,eb4] ~ [eb3,eb4]@2 [a2,a3]@9, ~ [bb2,bb3]@6 ~@9", M: "~ g3@6 [g3,d4]!2 [g3,d4]@7, ~ g2@15",
  N: "~ [c3,c4,c5,g5]@15", O: "[~@17 f5@16 [eb3,eb4,eb5]@16 [f3,f4,c5,f5]@15, ~ f4@32 ~@31]/4",
  P: "~@3 [g4,c5] ~ [g4,c5] ~@5 [g4,c5] ~ [bb2,bb3]@2 [g4,c5], ~ [c3,c4]@6 [b2,b3]@6 ~@3", // C5 Bb C5 C B
  Q: "~@3 [g4,c5] ~ [g4,c5] ~@5 [g4,c5] ~ [g2,g3]@2 [g4,c5], ~ [a2,a3]@6 [ab2,ab3]@6 ~@3", // C5 G C5 A Ab
  R: "~ [eb3,eb4,bb4,eb5]@8 [f3,f4,c5,f5]@7", S: "~ [bb2,bb3,f4,bb4]@15", T: "~ [eb4,eb5]@8 [d4,d5]@7, ~ bb4 ~@14",
  U: "[~ [c5,f5]@6 ~@4 bb4@2 f4@2 c4@2 [eb4,eb5]@8 [d4,d5]@7, ~ f4@10 ~@21, ~@7 [e4,c5,e5]@10 ~@15]/2", // F5 Eb D C
  V: "~ [f3,f4,c5,f5]@6 [e3,e4,c5,e5]@9", // F5 C
  W: "~ [eb3,ab3,eb5] ~@3 [ab3,c4,ab4]@2 ~@2 [eb3,ab3,c4,eb4,ab4]@2 ~@2 [ab3,c4,ab4,c5]@2 ~, ~@5 [eb3,eb5] ~@3 c5 ~@3 [eb3,eb4] ~@2", // Ab5 Ab Eb
  X: "~ [f3,ab3,db4,f4,ab4,db5] ~@3 [f3,ab3,db4,f4,ab4,db5] ~@3 [f3,ab3,db4,f4,ab4,db5] ~@3 [f3,ab3,db4,f4,ab4,db5] ~@2", // Db
  Y: "[~ [bb2,bb4]@8 [c3,c4,c5]@9 ~@14, ~ [f3,bb3,f4]@16 ~@15]/2", // Bb C Bb5
  Z: "[~ [bb3,f4,bb4]@32 [ab3,eb4,ab4]@15, ~@33 bb4 ~@14]/3", AA: "~ [c4,c5]@6 [b3,b4]@6 [bb3,bb4]@3",
  AB: "[~ [a3,a4]@8 [ab3,ab4]@4 g4@9 ~ [d4,g4]!2 d4@8 ~@16 [f4,c5,f5]@14 ~, ~@13 g3@36 ~@15, ~@25 g4@24 ~@15, ~@33 c4@30 ~]/4", // A Ab G5 F5
})).s("gm_string_ensemble_1").gain(0.41)

// chords · marimba · "Mallet Perc."
const marimba = note(`<
  ~@7 A B C D ~@18 E F ~@8 G H I J K ~ L M N O P O Q ~@23 R S T U V W X Y X W Z AA V AB V AC AD AE V W AF AG AH AI AJ AK
  AL V AM X W AN AO AP AQ AR AS ~@4
>`.pickRestart({
  A: "~ [c5,f5]!2 [c5,e5]!2 [c5,f5]!2 [c5,e5]!2 [c5,f5]!2 [c5,e5]!2 [c5,f5]!2 [c5,e5]", // F5 C F5 C F5 C F5 C
  B: "[c5,e5] [c5,f5]!2 [c5,e5]!2 [c5,f5]!2 [c5,e5]!2 [c5,f5]!2 [c5,e5]!2 [c5,f5]!2 [c5,e5]", C: "[c5,e5] gb5!15",
  D: "gb5!2 ~@14", E: "~@9 [f4,f5] [g4,g5] ~ [g4,g5] ~ [g4,g5] ~", F: "[g4,g5] ~@15",
  G: "~ [a4,c5]!2 [bb4,d5]!2 [a4,c5]!2 [bb4,d5]!2 [a4,c5]!2 [bb4,d5]!2 [a4,c5]!2 [bb4,d5]", // Am Bb Am Bb Am Bb Am Bb
  H: "[bb4,d5] [a4,c5]!2 [bb4,d5]!2 [a4,c5]!2 [bb4,d5]!2 [a4,c5]!2 [bb4,d5]!2 [a4,c5]!2 [bb4,d5]", // Bb Am Bb Am Bb Am Bb Am …
  I: "[bb4,d5] [c5,eb5]!15", J: "[c5,eb5] [c5,f5]!15", K: "[c5,f5] ~@15", L: "~ [bb4,eb5]!8 ~ [c5,f5]!6",
  M: "[c5,f5] [bb4,db5,d5] ~ [bb4,d5] d5 [bb4,d5]!2 d5 [bb4,d5]!2 d5 [bb4,d5]!5", N: "[bb4,d5] ~@15",
  O: "~ [c5,f5]!6 [c5,e5]!9", P: "[c5,e5] ~@15", Q: "[c5,e5] c5 ~@14",
  R: "~@5 [g3,bb3,g4,bb4] ~@7 [bb3,d4,bb4,d5] ~ [bb3,d4,bb4,d5]", // Gm Bb
  S: "~@4 [bb3,bb4] [g3,bb3,g4,bb4] ~@6 [d4,d5] [bb3,d4,bb4,d5] ~ [bb3,d4,bb4,d5]", // Bb Gm D Bb
  T: "~@12 [g4,g5] ~@2 [g4,bb4,g5,bb5]", U: "~@3 [d5,d6] [bb4,d5,bb5,d6] [bb4,bb5] ~ [bb4,d5,bb5,d6] ~@8",
  V: "~ [bb4,bb5]!2 [f4,f5]!2 [g4,g5] ~ [d4,d5] ~ [bb4,bb5]!2 [f4,f5]!2 [g4,g5] ~@2", // Bb F G D Bb F G
  W: "~ [bb4,bb5]!2 [f4,f5]!2 [g4,g5] ~ [d4,d5] ~ [c5,c6] [d5,d6] [c5,c6] [bb4,bb5] [g4,g5] ~@2", // Bb F G D C D C Bb …
  X: "~ [bb4,bb5]!2 [f4,f5]!2 [g4,g5] ~ [d4,d5] ~ [bb4,bb5]!2 [f4,f5] ~ [g4,g5] ~@2", // Bb F G D Bb F G
  Y: "~@2 [bb4,bb5]!2 [f4,f5] [g4,g5]!2 [d4,d5] ~ [bb4,bb5]!2 [g4,g5] [f4,f5] [g4,g5] ~@2", // Bb F G D Bb G F G
  Z: "~@3 [g4,bb4,g5,bb5] [bb4,bb5] [g4,bb4,g5,bb5] ~@3 [d5,d6] [bb4,d5,bb5,d6]!2 ~ [bb4,d5,bb5,d6] ~ [bb4,d5,bb5,d6]", // Gm Bb Gm D Bb
  AA: "~@3 [g4,bb4,g5,bb5]!3 ~@5 [bb4,d5,bb5,d6] [bb4,bb5] [bb4,d5,bb5,d6] ~ [bb4,d5,bb5,d6]", // Gm Bb
  AB: "~ [bb4,bb5]!2 [f4,f5]!2 [g4,g5] ~ [d4,d5] ~ [c5,c6] [d5,d6] [c5,db5,c6,db6] [bb4,bb5] [g4,g5] ~@2", // Bb F G D C D Dbmaj7 Bb …
  AC: "~ [bb4,bb5]!2 [f4,f5]!2 [g4,g5] ~ [d4,d5] ~@2 [d5,d6] ~ [bb4,bb5] [g4,g5] ~@2", // Bb F G D Bb G
  AD: "~ [bb4,bb5]!2 [f4,f5]!2 [g4,g5] ~ [d4,d5] ~@3 [bb4,bb5]!2 [f4,f5] [g4,g5]!2", // Bb F G D Bb F G
  AE: "~@3 [g4,bb4,g5,bb5]!3 ~@2 [bb4,d5,bb5,d6]!2 ~ [bb4,d5,bb5,d6]!3 ~@2", // Gm Bb
  AF: "~ [bb4,bb5]!2 [g4,g5]!3 ~ [f4,f5] ~ [bb4,bb5]!2 [f4,f5]!2 [g4,g5] ~@2", // Bb G F Bb F G
  AG: "~ [bb4,bb5]!2 [f4,f5]!2 [g4,g5] ~ [d4,d5] ~@3 [c5,c6] [d5,d6] [c5,c6] [bb4,bb5] [g4,g5]", // Bb F G D C D C Bb …
  AH: "~ [bb4,bb5]!2 [f4,f5]!2 [g4,g5] ~ [d4,d5] ~@2 [a4,a5] ~@5", // Bb F G D A
  AI: "~ [bb4,bb5]!2 [f4,f5] ~ [g4,g5] ~ [d4,d5] ~@3 [bb4,bb5]!2 ~ [f4,f5] [g4,g5]", // Bb F G D Bb F G
  AJ: "~@3 [bb4,bb5]!2 [f4,f5] [g4,g5]!2 [d4,d5] ~@4 [c5,c6] [d5,d6] [c5,c6]", // Bb F G D C D C
  AK: "[bb4,bb5] [g4,g5] ~@5 [bb4,bb5] [f4,f5] [g4,g5]!2 [d4,d5] ~@3 [bb4,bb5]", // Bb G Bb F G D Bb
  AL: "[f4,f5] [g4,g5] [f4,f5] ~ [d4,d5] ~@4 [bb4,bb5] [f4,f5] ~ [g4,g5] ~@2 [d4,d5]", // F G F D Bb F G D
  AM: "~ [bb4,bb5]!2 [f4,f5]!2 [g4,g5] ~ [d4,d5] ~ [c5,c6] [d5,d6] [c5,c6] ~ [g4,g5] ~@2", // Bb F G D C D C G
  AN: "~@3 [bb4,bb5]!2 [g4,bb4,g5,bb5] ~@4 [d5,d6] [bb4,d5,bb5,d6]!3 ~@2", // Bb Gm D Bb
  AO: "~@4 [g4,bb4,g5,bb5]!2 ~@3 [d5,d6] [bb4,d5,bb5,d6]!3 ~ [bb4,d5,bb5,d6]!2", // Gm D Bb
  AP: "~ [bb4,bb5]!2 [f4,f5]!2 [g4,g5] ~ [d4,d5] ~ [bb4,bb5]!2 [f4,f5] ~ [g4,g5] ~ [c4,d4,c5,d5]", // Bb F G D Bb F G Csus2
  AQ: "~ [bb4,bb5]!3 ~ [g4,g5] ~ [d4,d5] ~ [c5,c6] [d5,d6] [c5,c6] [bb4,bb5] [g4,g5] ~@2", // Bb G D C D C Bb G
  AR: "~@3 [g4,g5] [bb4,bb5] [g4,g5] [bb4,bb5] [f4,f5] ~@3 [bb4,bb5] [g4,g5] [bb4,bb5] [f4,f5] ~", // G Bb G Bb F Bb G Bb …
  AS: "~ [bb4,bb5] ~ [g4,g5] [g4,bb4,g5,bb5] ~ [bb4,bb5] [g4,bb4,g5,bb5] ~@3 [bb4,bb5] [bb4,d5,bb5,d6]!4", // Bb G Gm Bb Gm Bb
})).s("gm_marimba").gain(0.31)

// chords · marimba · "Mallet Perc." · soft notes
const marimba_soft = note("<~@46 A ~@28 B C D E ~@2 F ~ F ~ G H ~@3 I ~ J ~@8 K ~ L ~@2 M N F ~@2 O ~@4>".pickRestart({
  A: "~@4 bb4 ~@2 bb4 ~@2 bb4 ~@5", B: "~@4 [bb3,bb4] ~@11", C: "~@11 [bb3,bb4]!2 ~@3",
  D: "~@11 [g4,g5] [bb4,bb5] [g4,bb4,g5,bb5] ~@2", E: "~@3 [bb4,bb5] ~ [d5,d6] ~@10", F: "~@12 [f4,f5] ~@3",
  G: "~@9 [bb4,bb5] ~@6", H: "~@12 [d5,d6] ~@3", I: "~@9 [c5,c6] ~@6", J: "~@7 [bb4,bb5] ~@8",
  K: "~@11 [g4,g5] ~ [g4,g5] ~@2", L: "~@12 [bb4,bb5] ~@3", M: "~@3 [g4,g5]!2 ~@4 [bb4,bb5]!2 ~@5",
  N: "~@3 [bb4,bb5] ~@4 [bb4,d5,bb5,d6] [bb4,bb5] ~@6", O: "~@6 [g4,g5] ~@3 [bb4,bb5] ~@5",
})).s("gm_marimba").gain(0.15)

// chords · pizzicato strings · "Pizzicato/Clarinet" · Bb C5 Bb
const pizzicato_strings = note("<~@27 [~@3 [bb4,d5] ~@7 [g4,c5] ~@3 [bb4,d5]]!3 ~@86>")
  .s("gm_pizzicato_strings").gain(0.4)

// other · clarinet · "Pizzicato/Clarinet"
const clarinet = note("<~@74 A B@2 C D E@2 C F C D E G H I C D J K C D L C M E K C K C N C D B@2 C D ~@6>".pickRestart({
  A: "~@9 g3 ~ bb3 ~ g3 ~ bb3", B: "~ g3 ~ bb3 ~ g3 ~ bb3 ~ g3 ~ bb3 ~ g3 ~ bb3",
  C: "~ g3 ~ bb3 ~ c4 ~ d4 ~ db4@4 d4 ~@2", D: "~ eb4@4 d4 ~@3 f4@2 g4 ~@4",
  E: "~ g3 ~ bb3 ~ g3 ~ bb3 ~@3 g3 ~ bb3 ~ g3", F: "~ g3 ~ g3 ~ bb3 ~ g3 ~@3 g3@2 bb3 ~ g3",
  G: "~@3 g3 ~ bb3 ~ g3 ~ d4 ~ db4 ~ eb4 ~ d4", H: "~ [f3,g3] ~ bb3 ~ g3 ~ bb3 ~@3 g3 ~ bb3 ~ g3",
  I: "~@3 g3 ~ bb3 ~ g3 ~ bb3 ~ g3 ~ bb3 ~ g3", J: "~ g3 ~ a3 ~ g3 ~ bb3 ~@3 g3 ~ bb3 ~ g3",
  K: "~@3 g3 ~ bb3 ~ g3 ~@3 g3 ~ bb3 ~ g3", L: "~ g3 ~ bb3 ~ g3 ~ bb3 ~@3 g3 ~ bb3 ~ c4", M: "~ eb4@4 d4 ~@7 g4@3",
  N: "~ g3 ~ bb3 ~ g3 ~@3 g3 ~ bb3 ~ g3 ~ bb3",
})).s("gm_clarinet").gain(0.35)

// chords · flute
const flute = note("<~@15 A@2 B@2 C D E F G@3 ~@13 H I J K L M N O P Q ~@2 R S T@2 ~@61>".pickRestart({
  A: "~ [a5,c6] ~@3 [a5,c6] ~@3 [a5,c6] ~@3 [a5,c6] ~@2", // Am
  B: "~ [f5,bb5] ~ [f5,bb5] ~ [f5,bb5] ~ [f5,bb5] ~ [f5,bb5] ~ [f5,bb5] ~ [f5,bb5] ~ [f5,bb5]", // Bb5
  C: "~ [eb5,ab5] ~ ab5 ~ [eb5,ab5] ~ [eb5,ab5] ~ [eb5,ab5] ~ ab5 ~ ab5 ~ ab5", D: "~ c5@6 b4@9", E: "~ bb4@6 a4@9",
  F: "~ g4@6 g4 [c5,d5] g5@7", G: "[~ c5@32 ~@15]/3",
  H: "~@3 [bb5,d6] ~ [a5,c6] ~ [bb5,d6] ~ [a5,c6] ~ [bb5,d6] ~ [a5,c6] ~ [bb5,d6]", // Bb Am Bb Am Bb Am Bb
  I: "~ [a5,b5,c6] ~ [bb5,d6] ~ [a5,c6] ~ [bb5,d6] ~ [a5,c6] ~ [bb5,d6] ~ [a5,c6] ~ [bb5,d6]", // Am Bb Am Bb Am Bb Am Bb
  J: "~ eb6 ~ eb6 ~ eb6 ~ eb6 ~ eb6 ~ eb6 ~ eb6 ~ eb6",
  K: "~ [c6,f6]!2 ~ eb6 [c6,f6]!2 eb6!2 [c6,f6]!2 eb6!2 [c6,f6]!2 eb6", // F5
  L: "[bb5,eb6] [g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [g5,c6]", // Eb5 C5
  M: "~ [g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [g5,c6]", // C5
  N: "~ [bb5,eb6] eb6 [bb5,eb6] eb6 [bb5,eb6] eb6!2 [bb5,eb6] [c6,f6]!2 c6 [c6,f6]!4", O: "[c6,f6] bb5!15",
  P: "bb5 ~@8 d6@7", Q: "~ c6 ~@14", R: "~ c6 ab5 c5 ~ c6 ab5 c5 ab5 c6 ab5 c5 ab5 c6 ab5 c5",
  S: "ab5 db6 ab5 db5 ab5 db6 ab5 db5 ab5 db6 ab5 db5 ab5 db6 ab5 db5", T: "[ab5 ~@8 f4 c5 f5 c6 f6 g6 ab6@2 ~@15]/2",
})).s("gm_flute").gain(0.36)

// chords · flute · soft notes
// … 137 more lines

More by Freddie Mercury