Strudelify

Ace Attorney - Objection!

Misc Computer Games

KeyB♭ majorTempo120 bpm
0:00/0:00
// Ace Attorney - Objection! — Misc Computer Games
// 120 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1957271; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 37 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · piccolo
const piccolo = note("<~@5 A ~@4 A B ~@3 C D E ~@3 C D E ~@3 C D E ~@3 C D E ~>".pickRestart({
  A: "~@5 a5 bb5 f6", B: "d6 ~", C: "f5 c5 f5 a5 bb5@2 a5@2", D: "~@4 g5 bb5 c6 f6", E: "~@2 bb5 a5 eb6 d6 bb5 a5",
})).s("gm_piccolo").gain(0.22)

// other · synth strings 1 · "String Synthesizer"
const synth_strings_1 = note("<~@6 A@3 B C@2 A D E F A D A D E F A D A D E F A D A D E F A D A>".pickRestart({
  A: "bb4", B: "c5 f4", C: "[bb4@3 a4]/2", D: "a4", E: "g4", F: "f4",
})).s("gm_synth_strings_1").gain(0.18)

// bass · piano · "Electric Piano"
const bass = note("<A B C D E F A B C D E B G H I D J K G H I D J K G H I D J K G H I D J K G>".pickRestart({
  A: "g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~ g2@2 g2@2", B: "f2@2 ~ f2@2 ~ f2@2 ~ f2@2 ~ f2@2 f2@2",
  C: "c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 c2@2", D: "d2@2 ~ d2@2 ~ d2@2 ~ d2@2 ~ d2@2 d2@2",
  E: "eb2@2 ~ eb2@2 ~ eb2@2 ~ eb2@2 ~ eb2@2 eb2@2", F: "f2@2 ~ f2@2 ~ f2@2 ~@4 f2@2 gb2@2",
  G: "g2@2 ~ g2@2 ~ g2@2 ~@4 g2@2 g2@2", H: "f2@2 ~ f2@2 ~ f2@2 ~@4 f2@2 f2@2", I: "c2@2 ~ c2@2 ~ c2@2 ~@4 c2@2 c2@2",
  J: "eb2@2 ~ eb2@2 ~ eb2@2 ~@4 eb2@2 eb2@2", K: "f2@2 ~ f2@2 ~ f2@2 ~@4 f2@2 ~@2",
})).s("gm_piano").gain(0.48)

// drums · kick
const kick = s("bd").struct("<~@6 A@3 B A@2 C@5 D C@5 D C@5 D C@5 D C>".pickRestart({
  A: "x!4", B: "x ~ x ~ x ~ x!2", C: "x ~ x ~@8 x ~@4", D: "x ~@6 x ~@4 x ~@3",
})).gain(0.11)

// drums · rim
const rim = s("rim").struct("<~@12 A@5 B A@5 B A@5 B A@5 B A>".pickRestart({
  A: "~@3 x ~ x ~@2", B: "~ x ~ x ~ x ~@2",
})).gain(0.11)

// drums · hihat
const hihat = s("hh").struct("<~@3 A B C D E D E D@2 F@5 G F@5 G F@5 G F@5 G F>".pickRestart({
  A: "~@8 x!8", B: "x", C: "~@4 x!4", D: "x!8", E: "x ~ x ~ x ~ x ~ x ~ x!3 ~ x ~", F: "x ~@3 x ~@3 x ~@3 x ~ x!2",
  G: "x ~ x ~ x ~ x!2",
})).gain(0.11)

// drums · open hat
const open_hat = s("oh").struct("<~@17 A ~@5 A ~@5 A ~@5 A ~>".pickRestart({
  A: "~@15 x",
})).gain(0.11)

// drums · tambourine
const tambourine = s("tb").struct("<~@12 [~@7 x ~@8]!25>").gain(0.11)

stack(piccolo, synth_strings_1, bass, kick, rim, hihat, open_hat, tambourine)

More by Misc Computer Games