Strudelify

Justine Courtney - Goddess of Law

Noriyuki Iwadare

KeyA♭ majorTempo94 bpm
0:00/0:00
// Justine Courtney - Goddess of Law — Noriyuki Iwadare
// 94 bpm, 4/4, key Ab major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 3/4 at bar 10, 4/4 at bar 16, 3/4 at bar 18, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5181154; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 32 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(94/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 · church organ · "Organ"
const church_organ = note("<A B C D C E F@2 G H I@3 J@4 K L M@2 N@6 O@4 ~>".pickRestart({
  A: "f4", B: "[c3,c4,f4]",
  C: "[f4,ab4]@3 ~@3 [f4,ab4] ~@5 [g4,bb4]@2 ~@2 [e4,g4]@3 ~@3 [e4,g4] ~@5 [f4,ab4]@2 ~@2, c3", // Fm Gm Em Fm
  D: "[g4,bb4]@3 ~@3 [g4,bb4] ~@5 [f4,ab4]@2 ~@2 [f4,ab4]@2 [g4,bb4]@2 [ab4,c5]@2 ~@2 [g4,bb4]@2 ~@2 [f4,ab4]@2 ~@2, c3", // Gm Fm Gm Ab Gm Fm
  E: "[g4,bb4]@3 ~@3 [g4,bb4] ~@5 [ab4,c5]@2 ~@2 [g4,bb4]@2 [ab4,c5]@2 [bb4,db5]@2 ~@2 [ab4,c5]@2 ~@2 [g4,bb4]@2 ~@2, c3", // Gm Ab Gm Ab Bbm Ab Gm
  F: "[ab4,c5]@3 ~@3 [ab4,c5] ~@5 [f4,ab4]@2 ~@2 [g4,bb4]@3 ~@3 [ab4,c5] ~@5 [bb4,db5]@2 ~@2, c3", // Ab Fm Gm Ab Bbm
  G: "[ab4,c5]@3 ~@3 [ab4,c5] ~@5 [f5,ab5]@2 ~@2 [eb5,g5]@3 ~@3 [eb5,g5] ~@5 [db5,f5]@2 ~@2, c3", // Ab Fm Eb Db
  H: "[db5,f5]@3 ~@3 [c5,eb5] ~@5 [bb4,db5]@2 ~@2 [bb4,db5]@3 ~@3 [ab4,c5] ~@5 [g4,c5]@2 ~@2, c3", // Db Cm Bbm Ab C5
  I: "[f4 ab4 g4 ab4 f4 ab4 g4 ab4 f4 ab4 g4 ab4 g4 bb4 ab4 bb4 g4 bb4 ab4 bb4 g4 bb4 ab4 bb4 ab4 c5 bb4 c5 ab4 c5 bb4 c5 ab4 c5 bb4 c5 bb4 f4 d5 f4 f5 f4 d5 f4 bb4 f4 d5 f4, f3 e3 eb3 d3]/3",
  J: "[db5 f5 eb5 db5 c5 bb4 ab4 g4 f4 g4 ab4 bb4 ab4 f4 c5 f4 ab4 f4 c5 f4 ab4 f4 c5 f4 g4 e4 c5 e4 g4 e4 c5 e4 g4 e4 c5 e4 [c3,c4,g4]@8 [g2,c3,c4,g4,c5]@8 ~@12, db3@3 c3@3 c3@3 ~@7]/4", // C5
  K: "~@25 f4@4 eb4@3", L: "~ db4@4 ab4@4 g4@4 f4@4 g4@4 e4@4 [f3,f4,ab4]@4 [eb3,eb4,g4]@3",
  M: "[~ [db3,db4,f4]@4 [ab3,ab4,c5]@4 [g3,g4,bb4]@4 [f3,f4,ab4]@4 [g3,g4,bb4]@4 [e3,e4,g4]@4 f4@2 f5@2 f4@2 f5@2 f4@2 f5@2 f4@2 f5@2 f4@2 f5@2 f4@2 f5@2 f4@2 e5@2 f4@2 e5@2 ab4 f4 ~ f5 ab4 f4 ~, ~@25 f3@4 eb3@4 db3@4 ab3@4 g3@4 f3@4 g3@4 e3@4 [f3,ab3]@4 [eb3,g3]@3]/2", // Db Ab Gm Fm Gm Em Fm Eb
  N: "[f5 ab4 f4 ~ f5 ab4 f4 ~ f5 ab4 f4 ~ f5 ab4 f4 ~ f5 ab4 f4 ~ e5 ab4 f4 ~ e5 [ab2,ab4]@2 [bb2,bb4]@2 [c3,c5]@2 [d3,d5]@2 [e3,e5]@2 [f3,f5]@2 [g3,g5]@2 [ab3,ab5]@2 ~@32 [db2,db3]@8 ~@10 [ab2,ab3]@2 [bb2,bb3]@2 [c3,c4]@2 db4@2 ab5@2 f5@2 ab5@2 eb5@2 ab5@2 db5@2 ab5@2 db5@2 ab5@2 c5@2 ab5@2 db5@2 ab5@2 bb4@2 ab5@2 c5@2 ab5@2 db5@2 ab5@2 eb5@2 ab5@2 c5@2 ab5@2 db5@2 ab5@2 eb5@2 ab5@2 f5@2 ab5@2 db5@2 ab5@2 db3@2 gb3@2 f3@2 gb3@2 eb3@2 gb3@2 db3@2 gb3@2 c3@2 gb3@2 db3@2 gb3@2 eb3@2 gb3@2 c3@2 gb3, ~ [db3,f3]@4 [ab3,c4]@4 [g3,bb3]@4 [f3,ab3]@4 [g3,bb3]@4 [e3,g3]@4 ~@16 [db2,db3]@32 ~@24 db3@32 db3@32 ~@31, ~@49 [db4,f4,ab4,db5]@32 ~@80 bb5@31]/6", // Ab Bb C D E F G Ab …
  O: "[~ [g4,g5]@2 [e4,e5]@2 [db4,db5]@2 [e4,e5]@2 [db4,db5]@2 [bb3,bb4]@2 [db4,db5]@2 [bb3,bb4]@2 [g3,bb3,g4]@2 [bb3,db4,bb4]@2 [g3,bb3,g4]@2 [e3,g3,e4]@2 [g3,bb3,g4]@2 [e3,g3,e4]@2 [g3,bb3,g4]@2 [e4,g4,e5]@2 f5@2 c6@2 bb5@2 ab5@2 g5@2 f5@2 eb5@2 db5@2 c5@2 bb4@2 ab4@2 g4@2 f4@2 g4@2 ab4@2 bb4@2 c5@2 d5@2 e5@2 f5@2 g5@2 ab5@2 bb5@2 ab5@2 g5@2 f5@2 e5@2 f5@2 g5@2 ab5@2 bb5@2 g5@2 [c2,c3,c4,bb5]@31, ~@33 [f2,f3]@32 [c2,c3,c4]@32 ~@31]/4", // G E Db E Db Bb Db Bb …
})).s("gm_church_organ").gain(0.4)

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

stack(church_organ, kick)

More by Noriyuki Iwadare