Strudelify

guiles theme

Misc Computer Games

KeyD majorTempo120 bpm
0:00/0:00
// guiles theme — Misc Computer Games
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 5/4 at bar 20, 3/4 at bar 22, 4/4 at bar 23, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/1256401; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 45 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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.

// other · trumpet · "B♭ Trumpet"
const trumpet = note("<A@2 B A@2 B ~ C@3 ~@3 D E F G D H I@3 J K L@3 M@6 N@2 ~@7 O@3>".pickRestart({
  A: "e5 ~ e5 d#5 ~ d#5 e5@8 d#5@2", B: "e5 ~ d#5 e5 ~ d#5@2 f#5 ~ f#5 e5@2 d#5@2 b4@2", C: "e5/3",
  D: "c#5@10 d#5@2 e5 f#5@3", E: "g#5@4 f#5@2 b5@4 a5@2 g#5 a5@3", F: "d#5@4 e5@3 f#5 ~@2 b4@2 d#5@2 f#5@2",
  G: "a5@4 b5@3 g#5 ~@2 g#5 f#5 e5 f#5 e5 d#5", H: "g#5@4 a5@2 f#5@4 f#5@2 g#5 a5@3",
  I: "[b5@12 c#6@2 d#6 e6@3 g#6@22 f#6@4 e6@4]/3", J: "b5@2 c#5@4 ~ d#5", K: "e5 f#5@3 c#5@8 ~@2 d#5@2",
  L: "[e5 f#5@3 g#5@32 a5@12]/3", M: "[g#5@2 f#5 g#5@3 f#5@4 e5@4 d#5@4 b4@4 c#5@3 g#4@27 e5@16 f#5@20 ~@8]/6",
  N: "[~@7 a4@8 g#4@8 ~@9]/2", O: "[~ e5@8 ~@3]/3",
})).s("gm_trumpet").gain(0.45)

// other · trumpet · "B♭ Trumpet"
const trumpet_2 = note("<A@2 B A@2 B ~ C@3 ~@6 D E F G@2 ~@4 H@2 ~@2 I@4 ~@12>".pickRestart({
  A: "c#5 ~ c#5 b4 ~ b4 c#5@8 b4@2", B: "c#5 ~ b4 c#5 ~ b4@2 d#5 ~ d#5 c#5@2 b4@2 g#4@2", C: "c#5/3",
  D: "~@10 e5 c#5 g#4 c#5!2 g#4", E: "g#4@10 g#4@2 b4 c#5@3", F: "c#5@4 d#5@2 b4@4 b4@2 b4 g#4@3",
  G: "[b4@12 c#5@2 d#5 e5@2 ~@15]/2", H: "[~@4 c#5@2 c#5 b4@2 b4 c#5@8 ~@14]/2",
  I: "[~@6 c#5@2 c#5 b4@2 b4 c#5@8 c#5@16 c#5@2 d#5 d#5@17 ~@8]/4",
})).s("gm_trumpet").gain(0.3)

// other · trumpet · "B♭ Trumpet" · soft notes
const trumpet_soft = note("<~@33 A@2 ~@2 B@2 ~@3 C@3>".pickRestart({
  A: "[~@7 a4@8 g#4@8 ~@9]/2", B: "[~@12 c#5@2 c#5 b4@2 b4 c#5@8 ~@6]/2", C: "[~ c#5@8 ~@3]/3",
})).s("gm_trumpet").gain(0.15)

// other · french horn · "Horn in F"
const french_horn = note("<~@3 A@2 B ~ C@3 ~@3 D E F G H I J@2 ~ K L M@3 N O P@2 ~@14>".pickRestart({
  A: "b4/2", B: "f#4 ~ g#4 a4 ~ b4@2 c#5 ~ b4 c#5@2 c#5@2 d#5@2", C: "c#5/3", D: "c#4 g#3 c#4 g#3 c#4 g#3 c#4 g#3",
  E: "c#4 a3 c#4 a3 c#4 a3 c#4 a3", F: "a3 f#3 a3 f#3 a3 f#3 a3 f#3", G: "g#3 d#3 g#3 d#3 g#3 d#3 g#3 d#3",
  H: "c#5 g#4 c#5 g#4 c#5 g#4 c#5 g#4", I: "c#5 a4 c#5 a4 c#5 a4 c#5 a4",
  J: "[a4@2 f#4@2 a4@2 f#4@2 a4@2 f#4@2 g#4 a4 b4 c#5@2 ~@15]/2", K: "~@2 c#4 g#3 c#4 g#3 c#4 g#3",
  L: "c#4 g#3 d#4 a3 d#4 a3 d#4 a3", M: "[d#4@2 a3@2 e5@16 c#5@2 c#5 b4@2 b3 c#4@8 ~@14]/3",
  N: "~@12 g#4!4 ~@4 g#4 ~@3 g#4!4 ~@4", O: "g#4 ~@3 g#4!4 ~@4 g#4!4 ~@4 g#4 ~@3 g#4!4 ~@4",
  P: "[g#4 ~@3 g#4!4 ~@4 c#5@4 c#5@2 b4@4 b3@2 c#4@16 ~@24]/2",
})).s("gm_french_horn").gain(0.3)

// other · french horn · "Horn in F" · soft notes
const french_horn_soft = note("<~@33 A@2 ~@2 B@2 ~@3 C@3>".pickRestart({
  A: "[~@7 a4@8 g#4@8 ~@9]/2", B: "[~@12 c#5@2 c#5 b4@2 b3 c#4@8 ~@6]/2", C: "[~ g#4@8 ~@3]/3",
})).s("gm_french_horn").gain(0.15)

// other · french horn · "Horn in F"
const french_horn_2 = note("<~@4 A B ~ A C@2 ~@3 D E F G H I J@2 ~ K L M@3 N O P@2 ~@14>".pickRestart({
  A: "g#4", B: "f#4 ~ g#4 a4 ~ b4@2 c#5 ~ b4 c#5@2 b4@2 f#4@2", C: "c#5/2", D: "c#4 g#3 c#4 g#3 c#4 g#3 c#4 g#3",
  E: "c#4 a3 c#4 a3 c#4 a3 c#4 a3", F: "a3 f#3 a3 f#3 a3 f#3 a3 f#3", G: "g#3 d#3 g#3 d#3 g#3 d#3 g#3 d#3",
  H: "d#5 g#4 c#5 g#4 c#5 g#4 c#5 g#4", I: "c#5 a4 c#5 a4 c#5 a4 c#5 a4",
  J: "[a4@2 f#4@2 a4@2 f#4@2 a4@2 f#4@2 g#4 a4 b4 c#5@2 ~@15]/2", K: "~@2 c#4 g#3 c#4 g#3 c#4 g#3",
  L: "c#4 g#3 b3 f#3 b3 f#3 b3 f#3", M: "[b3@2 f#3@2 c#5@16 g#4@2 g#4 f#4@2 f#4 g#4@8 ~@14]/3",
  N: "~@12 e4!4 ~@4 e4 ~@3 e4!4 ~@4", O: "e4 ~@3 e4!4 ~@4 e4!4 ~@4 e4 ~@3 e4!4 ~@4",
  P: "[e4 ~@3 e4!4 ~@4 g#4@4 g#4@2 f#4@4 f#4@2 g#4@16 ~@24]/2",
})).s("gm_french_horn").gain(0.3)

// other · french horn · "Horn in F" · soft notes
const french_horn_soft_2 = note("<~@33 A@2 ~@2 B@2 ~@3 C@3>".pickRestart({
  A: "[~@7 a4@8 g#4@8 ~@9]/2", B: "[~@12 g#4@2 g#4 f#4@2 f#4 g#4@8 ~@6]/2", C: "[~ [g#3,e4]@8 ~@3]/3",
})).s("gm_french_horn").gain(0.15)

// bass · tuba · "Euphonium"
const bass = note("<~@7 A@3 ~@7 B C D E ~ F@5 G H I@2 J K L M N O@4 P Q@4>".pickRestart({
  A: "g#3/3", B: "g#3 e3 g#3 e3 g#3 e3 g#3 e3", C: "c#4 a3 c#4 a3 c#4 a3 c#4 g#3",
  D: "e2 f#2 g#2 a2 b2 c#3 d#3 e3 f#3 e3 d#3 e3 g#3 f#3 g#3 a3", E: "b3 ~@15",
  F: "[~@4 c#3@16 d#3@16 e3@16 e3@2 e3 d#3@2 d#3 e3@8 ~@14]/5", G: "~@12 e3!4 ~@4 e3 ~@3 e3!4 ~@4",
  H: "e3 ~@3 e3!4 ~@4 e3!4 ~@4 e3 ~@3 e3!4 ~@4", I: "[e3 ~@3 e3!4 ~@4 e3@4 e3@2 d#3@4 d#3@2 e3@16 c#3@24]/2",
  J: "d#3@2 e3 f#3@2 g#3@4 a3 ~@2 f#3@4",
  K: "c#3 d#3 e3 f#3 e3 d#3 c#3 d#3 c#3 b2 c#3 d#3 e3 d#3 c#3 d#3 d#3@8 e3@6 f#3@2", L: "~@2 b2@3 f#3@2 a3@8 g#3",
  M: "f#3 g#3@4 f#3@2 e3@2 c#3@6 ~", N: "~@2 d#3 e3 f#3 f#3@3",
  O: "[~@4 g#3@2 e3 d#3@4 d#3@2 e3 c#3@21 c#3@4 b2@2 b2@2 c#3@9 d#3@2 e3 f#3@2 g#3@4 c#3@3]/4",
  P: "b3@3 g#3@2 b3@2 g#3@2 g#3 a3 a#3 b3 a#3 a3 g#3", Q: "[a3 a#3 b3 a#3 b3 a#3 g#3 b3 c4 c#4@11 c#4@32 ~@12]/4",
})).s("gm_tuba").gain(0.3)

// other · tuba · "Euphonium"
const tuba = note("<~@7 A@3 ~@7 B C D E ~ F@5 G H I@2 ~@2 J@2 ~@2 K@2 ~@3 L@3>".pickRestart({
  A: "e3/3", B: "g#3 e3 g#3 e3 g#3 e3 g#3 e3", C: "c#4 a3 c#4 a3 c#4 a3 c#4 g#3",
  D: "e2 f#2 g#2 a2 b2 c#3 d#3 e3 f#3 e3 d#3 e3 g#3 f#3 g#3 a3", E: "b3 ~@15",
  F: "[~@4 g#2@16 b2@16 c#3@16 c#3@2 c#3 b2@2 b2 c#3@8 ~@14]/5", G: "~@12 c#3!4 ~@4 c#3 ~@3 c#3!4 ~@4",
  H: "c#3 ~@3 c#3!4 ~@4 c#3!4 ~@4 c#3 ~@3 c#3!4 ~@4", I: "[c#3 ~@3 c#3!4 ~@4 c#3@4 c#3@2 b2@4 b2@2 c#3@16 ~@24]/2",
  J: "[~@7 f#3@8 e3@8 ~@9]/2", K: "[~@12 c#3@2 c#3 b2@2 b2 c#3@8 ~@6]/2", L: "[~ [e3,b3]@8 ~@3]/3",
})).s("gm_tuba").gain(0.3)

// other · tuba
const tuba_2 = note("<~@7 A@3 ~@3 B C D E B C F ~@2 G@5 H I J@2 ~@14>".pickRestart({
  A: "c#2/3", B: "e2@3 e2@2 e2@2 e2 e2@8", C: "c#2@3 c#2@2 c#2@2 c#2 c#2@8", D: "a1@3 a1@2 a1@2 a1 a1@8",
  E: "d#2@3 d#2@2 d#2@2 d#2 d#2@8", F: "b2 ~ b2@2",
  G: "[~@4 e2@3 e2@2 e2@2 e2 e2@8 d#2@3 d#2@2 d#2@2 d#2 d#2@8 e2@16 g#2@2 g#2 f#2@2 f#2 g#2@8 ~@14]/5",
  H: "~@12 e2!4 ~@4 e2 ~@3 e2!4 ~@4", I: "e2 ~@3 e2!4 ~@4 e2!4 ~@4 e2 ~@3 e2!4 ~@4",
  J: "[e2 ~@3 e2!4 ~@4 g#2@4 g#2@2 f#2@4 f#2@2 g#2@16 ~@24]/2",
})).s("gm_tuba").gain(0.39)

// other · tuba · soft notes
const tuba_soft = note("<~@33 A@2 ~@2 B@2 ~@3 C@3>".pickRestart({
  A: "[~@7 c#3@8 b2@8 ~@9]/2", B: "[~@12 g#2@2 g#2 f#2@2 f#2 g#2@8 ~@6]/2", C: "[~ b3@8 ~@3]/3",
})).s("gm_tuba").gain(0.22)

// other · tuba
const tuba_3 = note("<~@7 A@3 ~@3 B C D E B C F ~@2 G@5 H I J@2 ~@14>".pickRestart({
  A: "c#2/3", B: "c#2@3 c#2@2 c#2@2 c#2 c#2@8", C: "a1@3 a1@2 a1@2 a1 a1@8", D: "f#1@3 f#1@2 f#1@2 f#1 f#1@8",
  E: "g#1@3 g#1@2 g#1@2 g#1 g#1@8", F: "f#2 ~ f#2@2",
  G: "[~@4 c#2@3 c#2@2 c#2@2 c#2 c#2@8 b1@3 b1@2 b1@2 b1 b1@8 c#2@16 c#2@2 c#2 b1@2 b1 c#2@8 ~@14]/5",
  H: "~@12 c#2!4 ~@4 c#2 ~@3 c#2!4 ~@4", I: "c#2 ~@3 c#2!4 ~@4 c#2!4 ~@4 c#2 ~@3 c#2!4 ~@4",
  J: "[c#2 ~@3 c#2!4 ~@4 c#2@4 c#2@2 b1@4 b1@2 c#2@16 ~@24]/2",
})).s("gm_tuba").gain(0.45)

// other · tuba · soft notes
const tuba_soft_2 = note("<~@33 A@2 ~@2 B@2 ~@3 C@3>".pickRestart({
  A: "[~@7 f#2@8 e2@8 ~@9]/2", B: "[~@12 c#2@2 c#2 b1@2 b1 c#2@8 ~@6]/2", C: "[~ e2@8 ~@3]/3",
})).s("gm_tuba").gain(0.25)

// bass · electric bass pick · "Bass Guitar"
const bass_2 = note("<A B C A B C ~@7 D E F G D E ~@3 H@3 ~@20>".pickRestart({
  A: "c#2@8 ~ c#2 b1 g#1 e1 c#2 b1@2", B: "a1@8 ~ a1 g#1 e1 c#1 c#2 b1@2",
  C: "f#1!2 ~ f#1 ~ f#1 ~ g#1 ~ g#1!2 ~ g#1@2 e1@2", D: "c#2@3 c#2@2 c#2@2 c#2 c#2@8", E: "a1@3 a1@2 a1@2 a1 a1@8",
  F: "f#1@3 f#1@2 f#1@2 f#1 f#1@8", G: "g#1@3 g#1@2 g#1@2 g#1 g#1@8",
  H: "[~@4 c#2@3 c#2@2 c#2@2 c#2 c#2@8 d#2@3 d#2@2 d#2@2 d#2 d#2@8 ~@12]/3",
})).s("gm_electric_bass_pick").gain(0.3)

// drums · kick
const kick = s("bd").struct("<A B C D C@2 ~@3 E F ~@2 D C D C D C D ~ G H I ~@21>".pickRestart({
  A: "x!2 ~@2", B: "x ~@3 x ~@5 x!2 ~@4", C: "x ~@2 x ~ x ~@2", D: "x!2 ~@4 x ~@3 x!2 ~@4", E: "x!4", F: "x",
  G: "~@2 x!2", H: "x ~@3 x!2 ~@4 x ~@3 x!2", I: "~@2 x ~@2 x ~ x",
})).gain(0.3)

// drums · rim
const rim = s("rim").struct("<~@9 [~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~] ~@35>").gain(0.45)

// drums · snare
const snare = s("sd").struct("<~ A B@3 C ~ D@2 E F G H B@7 ~ I J@2 F ~@20>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@7 x!4", D: "x!32", E: "x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x", F: "x",
  G: "x!9 ~@3 x ~@11 x ~@3 x ~@3", H: "~@8 x!17 ~@7", I: "~@2 x!2", J: "x!2",
})).gain(0.45)

// drums · crash
const crash = s("cr").struct("<A@2 ~ A@2 ~@5 A ~@2 A ~@3 A ~@3 B C ~@22>".pickRestart({
  A: "x", B: "~@2 x!2", C: "x!2 ~@2",
})).gain(0.3)

stack(
  trumpet, trumpet_2, trumpet_soft, french_horn, french_horn_soft, french_horn_2, french_horn_soft_2, bass, tuba,
  tuba_2, tuba_soft, tuba_3, tuba_soft_2, bass_2, kick, rim, snare, crash
)

More by Misc Computer Games