Strudelify
Let Be Must the Queen cover art

1988 · Labyrinthe

Let Be Must the Queen

Guesch Patti

KeyG minorTempo114 bpm
0:00/0:00
// Let Be Must the Queen — Guesch Patti
// 114 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 121 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(114/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 · "ACOU BASS"
const bass = note(`<
  ~@9 A B C D E F G H I J K L M J K N O P Q P Q R S T U V K L W ~ X Y Z F G H I J K L M J K N O P Q P Q R S T U P Q P AA
  AB AC T AD AE ~@2 AF AG AH AI ~ AB K AJ AK AJ AK AJ AL J AM AG AN P Q AO AC T U P Q P AP AO AC T U P Q P AQ AO AC T U
  P Q P AQ AO AC T U ~
>`.pickRestart({
  A: "~@3 g1", B: "g1 ~@3", C: "~@10 f2 ~ e2@4", D: "g1@4 ~@11 f1", E: "f2@4 e2@4 f2 ~@7", F: "g1 ~@2 f1 g1 ~@3",
  G: "g1@2 g1 ~@7 f2 ~ e2@3 f1", H: "g1 ~@2 g1 f1 ~@3", I: "g1@2 ~ g1 ~@6 f1 ~ g1@2 ~@2",
  J: "eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~", K: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1!2",
  L: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1!2", M: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1@2",
  N: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~", O: "g1 ~ g1 ~ g1 ~@7 g1@3 ~", P: "bb1 a1 g1 f1 bb1 ~@2 bb1",
  Q: "c2@2 ~ c2 ~@2 bb1@2 c2@3 ~ c2@2 ~@2", R: "eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~",
  S: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~", T: "d2 ~ d2 ~@3 c2@2 d2 ~ d2 ~@3 c2@2",
  U: "d2@2 c2@2 d2 ~@3 f1@4 g1@3 ~", V: "eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1!2",
  W: "g1 ~ g1 ~ g1 ~ f1@2 g1 ~ g1 ~ g1 ~@3", X: "~@10 f2 ~ e2@3 f1", Y: "g1@3 ~@12 g1", Z: "f1@2 g1 ~@13",
  AA: "c2@2 ~ c2 d2@2 eb2@2 e2@3 ~ c2 ~ c2@2", AB: "eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1@2",
  AC: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2", AD: "d2@2 c2@2 d2@2 ~@2 f1@4 g1@3 ~", AE: "g1@3 ~@5",
  AF: "~@10 f1 ~ e1@4", AG: "g1 ~@7", AH: "~@15 f1", AI: "g1@3 ~ bb2@2 a2@2 bb2@2 a2@2 bb2@2 a2@2",
  AJ: "g1 ~ g1 ~@3 g1 ~ g1 ~ g1 ~@3 g1 ~", AK: "g1 ~ g1 ~@3 g1 ~ g1 ~ g1 ~ g1 ~ g1!2",
  AL: "f1 ~ f1 ~@3 f1 ~ f1 ~ f1 ~@3 f1@2", AM: "eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1@2 ~@2",
  AN: "c2 ~@2 c2 ~@2 bb1 ~ c2 ~@3 c2@2 ~@2", AO: "eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2@2",
  AP: "c2@2 ~ c2 d2@2 eb2@2 e2@2 ~@6", AQ: "c2@2 ~ c2@2 ~ bb1@2 c2@3 ~ c2@3 ~",
})).s("gm_acoustic_bass").gain(0.4)

// chords · piano · "A.PIANO 2"
const piano = note(`<
  ~@9 A B ~@7 C D E F C G H I J@2 K L M N O P M Q R@2 ~@8 C S E T C G H U K L V W X N Y@2 Z L Z AA AB AC AD@2 ~@8 AE AF
  AG@2 AH@3 AI AJ AK AL AM AN AO AP AQ AR@2 AS AT V AU AV AQ AW@2 AX@2 AY AZ BA AQ BB@2 BC BD BE BF BA AQ BG@2 ~
>`.pickRestart({
  A: "~@12 [c4,e4,g4]@3 ~", B: "[b3,d4,g4] ~@3", C: "[eb2,eb4], [bb3,g4]@7 ~", D: "[c4,f4,a4]@7 ~, f2",
  E: "[g2,d4,g4,bb4]@15 ~", F: "[g2,c4,f4,a4]@11 ~ [g2,f4,a4]@4, ~@6 c4 ~", G: "[f2,c4,f4,a4]",
  H: "[g2,c4,d4,g4]@11 ~ [g2,c4,d4,g4]@4", I: "[g2,b3,d4,g4]@9 ~@7",
  J: "[[bb3,d4,f4]@8 ~@4 [bb3,f4] ~@3 c3@5 ~@5 c3@2 e4@2 c3@2, bb2@5 ~@3 bb2@7 ~@17, ~@6 d4 [c4,e4,g4]@6 ~ [c4,g4]@2]/2", // Bb Bb5 C C5
  K: "[bb3,d4,f4]@6 ~ [d4,f4], bb2@11 ~ bb2@4, ~@14 bb3 ~", L: "[c4,e4,g4]@7 c3, c3@13 ~@3",
  M: "[bb3,eb4,g4]@7 eb3, eb3@13 ~@3", N: "[c3,c4,eb4], g4@7 ~", O: "[d4,g4,a4]@14 d3 ~, d3@13 ~@3",
  P: "[d3,d4,gb4,a4]@7 ~@9", Q: "[f3,f4,a4], c4@7 ~", R: "[[bb3,d4,g4]@15 ~ [g2,c4,f4,a4]@14 ~@2, g3@29 ~@3]/2",
  S: "[f2,f4], [c4,a4]@7 ~", T: "[c4,f4,a4]@3 [c4,f4,a4], g2@7 ~", U: "[g2,b3,d4,g4] ~",
  V: "[bb2,bb3,d4,f4]@13 ~ [bb2,d4,f4]@2, ~@14 bb3 ~", W: "c3@13 ~ c3@2, [c4,e4]", X: "[eb3,bb3,eb4,g4]",
  Y: "[[d4,g4,a4]@14 ~@2 [d4,gb4,a4]@7 ~@9, d3@23 ~@9, ~@14 d2@9 ~@9]/2", // Dsus4 D
  Z: "[bb2,bb3,d4,f4]@13 ~ [bb2,d4]@2, ~@14 [bb3,f4] ~", AA: "[c4,e4,g4]@11 ~ [c4,e4,g4]@2 c3@2, c3@3 ~",
  AB: "[bb3,eb4,g4]@11 ~ [bb3,eb4,g4]@2 eb3@2, eb3@3 ~", AC: "[c4,eb4,g4]@11 ~ [c4,eb4,g4]@2 c3@2, c3@3 ~",
  AD: "[[d4,g4,a4]@11 ~ [d4,g4,a4]@2 ~@2 [d4,gb4,a4]@7 ~@9, d3@12 ~@2 d2@9 ~@9]/2", // Dsus4 D
  AE: "[bb3,eb4,g4]@8 eb2 ~ [bb3,g4]@2 eb3@2 eb2@2, eb2@7 ~@3 eb4@5 ~", AF: "[c4,f4,a4]@5 f2 [c4,f4,a4] f3, f2@9 ~@7",
  AG: "[[g2,d4,g4,bb4]@10 ~@6 [c4,f4,a4]@5 ~ [c4,f4,a4]@4 ~@2 [c4,f4,a4]@2 g3 ~, ~@10 [d4,g4,bb4]@4 g2@9 ~@3 g2@4 ~@2, ~@6 g3@5 ~@5]/2", // Gm F Gm
  AH: "[~@10 d4@2 ~@4 [c4,f4,a4]@6 [c4,f4,a4]@4 g2@2 [c4,f4,a4]@2 ~@2 [d4,g4,bb4]@9 ~@3 g2@2 g3 ~, [d4,g4,bb4]@9 ~ [g4,bb4]@4 g2@9 ~@9 g2@10 [d4,g4,bb4]@5 ~, ~@4 g2@8 g3@10 ~@8 g3@13 ~@5]/3", // F Gm
  AI: "[f2,c4,f4,a4]@10 ~@2 f2@3 ~, ~@10 [c4,f4,a4]@5 ~", AJ: "[eb2,bb3,eb4,g4]@15 ~", AK: "[eb2,bb3,eb4,g4] ~",
  AL: "[bb2,bb3,d4,f4] ~@15", AM: "c2@3 ~ c2@2 [c4,e4,g4] c3, [c4,e4,g4]@3 ~, ~@6 c3@7 ~@3",
  AN: "[bb3,d4,f4]@6 ~ [d4,f4], bb2@9 ~@3 bb2@4, ~@14 bb3 ~", // Bb Dm
  AO: "[c3,c4,e4,g4]@3 ~ c3 ~@5 c3@2 c4@2 c3@2, ~@3 [c4,e4,g4]@2 ~ [e4,g4]@9 ~, ~@6 c4@5 ~@5, ~@8 c2@5 ~@3", // C Em
  AP: "[bb3,eb4,g4]@5 eb3 [bb3,eb4,g4] eb3, eb2@13 ~@3", AQ: "[c4,eb4,g4]@5 ~ [c4,eb4,g4] c3, c3@13 ~@3, ~@5 c2@3",
  AR: "[[d4,g4,a4]@11 ~ [d4,g4,a4]@2 ~@2 [d2,d4,gb4,a4]@6 ~@10, d2@7 d3@4 ~@5]/2", // Dsus4 D
  AS: "[bb3,d4,f4]@12 ~@2 [bb3,f4] ~, bb2@11 ~ bb2@4, ~@7 d4", // Bb Bb5
  AT: "[c3,c4,e4,g4]@3 ~@5 c2@4 [c4,e4,g4]@2 c3@2, ~@3 [c4,e4,g4]@9 ~@4, ~@4 c3@9 ~@3", // C
  AU: "[c4,e4,g4] ~@5 c3@2, c3@11 ~@5, ~@3 [c4,e4,g4]@3 [e4,g4]@10, ~@2 c2@5 ~, ~@3 c4@4 ~", // C Em
  AV: "[bb3,eb4,g4]@11 ~ [bb3,eb4,g4]@2 eb3@2, eb2@15 ~", // Eb
  AW: "[[d4,g4,a4]@11 ~ [d4,g4,a4]@2 ~@2 [d2,d4,gb4,a4]@7 ~@9, d2@7 d3@4 ~@5]/2", // Dsus4 D
  AX: "[[bb1,bb3,d4,f4]@12 ~@2 f4@2 [c2,c4,e4,g4]@3 ~@11 c4@2, ~@6 bb2@2 ~@2 c2@5 ~, ~@14 d4@4 ~ [e4,g4]@13, ~@14 bb3 ~@4 c4@9 c3@4]/2", // Bb C Em
  AY: "[bb3,d4,f4]@13 ~ [bb3,d4,f4]@2, bb2@7 ~", // Bb
  AZ: "[c2,c4,e4,g4]@3 ~ c2@2 ~@4 c4 ~ [c4,e4,g4]@2 c3@2, ~@3 [e4,g4]@8 ~@5, ~@3 c4@5 c2@5 ~@3, ~@6 c3@7 ~@3", // C Em
  BA: "[bb3,eb4,g4]@5 eb3 [bb3,eb4,g4] eb2, eb2@13 ~@3", // Eb
  BB: "[~@10 d3@2 [d4,g4,a4]@2 ~@2 [d2,d4,gb4,a4]@7 ~@9, [d2,d4,g4,a4]@6 ~ d3@5 ~@4]/2", // Dsus4 D Dsus4
  BC: "[bb3,d4,f4]@12 ~@2 [bb3,f4] ~, bb2@7 d4, ~@3 bb1", // Bb Bb5
  BD: "[c4,e4,g4]@2 ~ [c4,e4,g4]@7 ~@2 [c4,e4]@2 c2@2, c2@3 g4, ~@5 c3@3", // C
  BE: "[bb2,bb3,d4,f4]@13 ~ [bb2,bb3,f4] ~, ~@7 [bb1,d4]", // Bb Bb5 Bb
  BF: "[c4,e4,g4]@2 ~ [c4,e4,g4]@6 ~ [c4,g4] ~ [c2,c4,e4,g4]@2 ~@2, c2@10 c3@5 ~, ~@5 e4 ~@2", // C C5 C
  BG: "[~@10 d3@2 [d4,g4,a4]@2 ~@2 [d2,d4,gb4,a4]@7 ~@9, [d2,d4,g4,a4]@12 ~@2 d3@9 ~@9]/2", // Dsus4 D Dsus4
})).s("gm_piano").gain(0.39)

// chords · string ensemble 2 · "STRINGS"
const string_ensemble_2 = note(`<
  ~@26 A B A C D E F G H I J K ~@16 A B A C L@2 F G A C A M D E F G ~@5 N@2 ~ D O J O J P J O Q@2 ~ B A C D E F G A R A
  B D E F G A C A S D E F G A B A T D E F G ~
>`.pickRestart({
  A: "[bb4,d5,f5]@15 ~", B: "[c5,e5]@7 ~, g5", C: "[c5,e5,g5]@15 ~", D: "[bb4,eb5,g5]@15 ~", E: "[c5,eb5,g5]@15 ~",
  F: "[d5,g5,a5]@15 ~", G: "[d5,gb5,a5] ~", H: "[bb4,eb5,g5]", I: "[c5,a5], f5@7 ~", J: "[d5,g5,bb5]@15 ~",
  K: "~ c5@12 ~@3, [f5,a5]@13 ~@3", L: "[bb4@15 ~ c5@14 ~@2, [eb5,g5]@31 ~]/2", M: "[c5,e5,g5]@7 ~", N: "g3/2",
  O: "[c5,f5,a5]", P: "[c5,f5,a5]@15 ~", Q: "[[bb4,eb5,g5]@25 ~@7]/2", R: "[c5,e5,g5]",
  S: "[c5,e5,g5]@9 ~ [c5,e5,g5] ~ [c5,e5,g5]@2 ~@2", T: "[c5,e5,g5]@9 ~ [c5,e5,g5] ~ [c5,e5,g5] ~@3",
})).s("gm_string_ensemble_2").gain(0.17)

// chords · pad sweep · "SWEEP PAD"
const pad_sweep = note("<A B@5 ~@33 C D@2 ~@2 E@2 ~@75>".pickRestart({
  A: "~@3 [db3,gb3]", B: "[d3,g3]/5", C: "[f4,f5]", D: "[e4,e5]/2", E: "[g4,bb4,c5,f5]/2",
})).s("gm_pad_sweep").gain(0.24)

// chords · lead 8 bass lead · "BASS&LEAD"
const lead_8_bass_lead = note(`<
  ~@4 A ~@3 A ~@3 A ~ A ~ A ~@10 B ~ B ~@8 A ~ A ~ A ~ A ~@10 B ~ B ~@5 B ~ B ~@6 A ~ C ~ A ~@12 B ~ B ~@5 B ~ B ~@5 B ~
  B ~@5 B ~ B ~@5
>`.pickRestart({
  A: "[f4,g4]@2 e4@2 [f4,g4]@7 ~@5", B: "~@2 [c5,d5] b4 [c5,d5]@3 ~", C: "~@4 [f4,g4] e4 [f4,g4]@2",
})).s("gm_lead_8_bass_lead").gain(0.3)

// other · lead 7 fifths · "5THSAWWAVE"
const lead_7_fifths = note("<~@4 A B ~@4 A B A B A B A B ~@103>".pickRestart({
  A: "~@2 f4 ~ bb4 ~ bb4 ~@3 a4 ~ f4 ~ g4 ~", B: "~@2 f4 g4 bb4 ~ a4 ~@3 f4 ~ g4 ~@3",
})).s("gm_lead_7_fifths").gain(0.29)

// other · lead 7 fifths · "5THSAWWAVE" · soft notes
const lead_7_fifths_soft = note("<~@4 A ~@5 A ~ A ~ A ~ A ~@104>".pickRestart({
  A: "~@3 g4 ~@4 a4 ~@7",
})).s("gm_lead_7_fifths").gain(0.14)

// chords · lead 7 fifths · "5THSAWWAVE"
const lead_7_fifths_2 = note(`<
  ~@25 A ~@7 B ~@3 C ~@7 D ~@7 A ~@7 B ~@7 B ~@2 E ~@14 F G ~@6 B H ~@6 B ~@7 B ~@7 B I
>`.pickRestart({
  A: "~@7 d3 g3 [c4,d4] [g4,c5] d5 [g3,g4,g5] ~@3", B: "~@8 [f3,eb4,bb4] ~@3 [g3,f4,c5] ~@3",
  C: "~@12 [g4,c5,d5,g5]!2 ~@2", D: "~@12 [g4,g5] ~@3", E: "~@10 d3 g3 [c4,d4] [g4,c5] d5 ~",
  F: "~@11 g3 c4 [d4,f4] g4 [c5,d5]", G: "[g3,g4,g5] ~@15", H: "~@4 [g5,g6] ~@11", I: "[g4,g5] ~@3 g2@3 ~@9",
})).s("gm_lead_7_fifths").gain(0.45)

// drums · kick
const kick = s("bd").struct(`<
  ~@6 A B A B C@4 D E D E D@7 F D G D G D@3 H D@3 I A B A@2 D E D E D@7 F D G D G D@3 H D G D G D@3 H C@2 J@2 D K D F
  D@8 L M ~ G D G D@3 H D G D G D@3 H D G D C D@2 J H D G D C D@2 J H ~
>`.pickRestart({
  A: "x ~@2 x ~@12", B: "x ~@2 x ~@2 x ~@9", C: "x!2", D: "x ~@2 x!2 ~@3", E: "x ~@2 x ~@4 x ~@7", F: "x",
  G: "x ~@2 x ~@2 x ~ x ~@7", H: "x ~ x!2", I: "x ~@3 x!3 ~", J: "x ~@3 x!2 ~@2", K: "x ~@4 x ~@2", L: "x!2 ~ x!3 ~ x",
  M: "x!2 ~ x!3 ~@2",
})).gain(0.66)

// drums · snare
const snare = s("sd").struct(`<
  ~@6 A@4 B@15 A B@3 A B@3 C B@3 D A@3 E B@11 A B@3 A B@3 C B@3 A B@3 C B@7 F B@10 G B@6 C B@3 H B@3 I B@3 J B@2 K L B@3
  J B@2 K L ~
>`.pickRestart({
  A: "~ x ~@2", B: "~ x ~ x", C: "~ x!3", D: "~@2 x ~ x!3 ~", E: "~@4 x ~@3 x ~@2 x ~@2 x!2", F: "~@4 x ~@3 x!5 ~@3",
  G: "~@7 x", H: "~@4 x ~@9 x!2", I: "~ x ~@6 x ~@3 x ~@3", J: "~@2 x ~@2 x!2 ~", K: "~ x ~@2 x ~@7 x ~@3",
  L: "~ x ~@2 x ~@3 x ~@3 x ~@3",
})).gain(0.59)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@13 A ~@11 A ~@3 A ~@3 B ~@19 A ~@3 A ~@3 B ~@3 A ~@11 B ~@29 B ~@7 B ~@5
>`.pickRestart({
  A: "~@3 x", B: "~ x ~@2",
})).gain(0.66)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@10 A@2 B A@4 C A@3 C D A@2 E A C A C A@3 F A B G C A@11 C D A@2 E A C A C A@3 F A C A C A@3 F A@3 H A@6 C H ~ A C@2
  A@2 I J A@5 K A@3 L A@3 M A C A N D A O F A C A N D A O F ~
>`.pickRestart({
  A: "x!8", B: "x!2 ~ x!5", C: "x!7 ~", D: "~ x!7", E: "x!2 ~@2 x ~@11", F: "x!3 ~@5", G: "x!6 ~ x", H: "x!5 ~@3",
  I: "x!4", J: "~ x!2 ~ x!4", K: "x!2 ~@2 x ~@3 x ~@7", L: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", M: "x!2 ~@6",
  N: "x!4 ~@4", O: "x!6 ~@2",
})).gain(0.44)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@13 A ~@11 B ~@3 B ~@3 C ~@3 B ~@15 B ~@3 B ~@3 C ~@3 B ~@3 D ~@7 E ~@13 B ~@3 F ~@3 B ~@3 F ~@3 G ~@3 F ~@3 G ~@3 F
  ~
>`.pickRestart({
  A: "~@11 x ~@4", B: "~@3 x", C: "~ x ~@6", D: "~@3 x!2 ~@11", E: "~@3 x ~@12", F: "~ x ~@2", G: "~@3 x ~@8 x ~@3",
})).gain(0.52)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@21 A ~@3 B ~ A ~ A ~@3 C ~@15 A ~@3 B ~ A ~ A ~@3 C ~ A ~ A ~@3 C ~@3 D ~@7 D ~@13 B ~@7 E ~ A ~@7 A ~@7
>`.pickRestart({
  A: "~@7 x", B: "~ x ~@6", C: "~@3 x ~@4", D: "~@5 x ~@2", E: "~ x ~@14",
})).gain(0.37)

// drums · crash
const crash = s("cr").struct(`<
  ~@17 A ~@4 B ~@3 B ~@3 B@2 ~ C ~ D A ~@5 B ~@2 A ~@4 B ~@3 B ~@3 B@2 ~ C B ~@3 B@2 ~ C ~@3 A ~@4 B ~ A@2 E F@3 ~@2 G
  ~@3 B@2 ~ A ~@4 B ~@2 C B ~@2 H B@2 A C B ~@2 H B@2 A C ~
>`.pickRestart({
  A: "~@3 x", B: "x", C: "~@2 x!2", D: "~ x ~@2", E: "x!2 ~ x", F: "~ x ~ x", G: "~@7 x", H: "~@5 x!2 ~",
})).gain(0.37)

// drums · tambourine
const tambourine = s("tb").struct("<~@104 [x!16]!16 ~>").gain(0.44)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@2 A B A B A B A B ~@111>".pickRestart({
  A: "x ~@2 x ~@2 x ~", B: "~ x ~ x",
})).gain(3.37)

stack(
  bass, piano, string_ensemble_2, pad_sweep, lead_8_bass_lead, lead_7_fifths, lead_7_fifths_soft, lead_7_fifths_2, kick,
  snare, low_tom, hihat, mid_tom, open_hat, crash, tambourine, cabasa
)