Strudelify

Sunshade City of Pleasures

Yasunori Nishiki

KeyE♭ majorTempo135 bpm
0:00/0:00
// Sunshade City of Pleasures — Yasunori Nishiki
// 135 bpm, 12/8, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/8 at bar 1, 12/8 at bar 2) are rendered on a constant 12/8 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/6129538; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 69 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(135/6)

// 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.

// other · flute
const flute = note("<~@19 A B C@2 D E F@2 ~@26 A B C@2 D E F@2 ~@8>".pickRestart({
  A: "eb5@4 d5@4 c5@4 f5@9 ~ eb5@2", B: "d5@3 c5 bb4@3 ab4", C: "[g4@15 ~@6 c5@2 d5]/2",
  D: "eb5@4 f5@4 g5@4 f5@4 bb5 ~@7", E: "eb5 f5 g5 f5 eb5 d5", F: "[c5@5 ~@3]/2",
})).s("gm_flute").gain(0.3)

// chords · acoustic guitar steel · "Acoustic Guitar (Treble Clef)"
const acoustic_guitar_steel = note(`<
  ~ A ~ B ~ A ~ A ~ A ~ A ~ A ~ C D E ~ A ~ A ~ C D E ~ F G H I J K L ~ A ~ B ~ A ~ A ~ A ~ A ~ A ~ C D E ~ A ~ A ~ C D
  E ~ F G H I J K L ~
>`.pickRestart({
  A: "~ c5@11, c4, ~ [eb4,g4]@23", B: "~ [eb4,g4]@23, c4",
  C: "~ ab4@5 [eb3,ab3,c4,d4]@2 [eb3,ab3,c4,d4] ~@3, ab3 ~, ~ [c4,eb4]@11 ~@12", // Ab Cm
  D: "~ bb4@5 [f3,bb3,c4,eb4]@2 [f3,bb3,c4,eb4] ~@3, g3 ~, ~ [bb3,eb4]@11 ~@12", E: "~ c4@11, bb2, ~ [f3,g3]@23",
  F: "[e3,a3,e4]@4 [e3,a3,e4]@2 ~@2 [db4,d4,eb4] [e4,f4,gb4,g4] [ab4,a4]@2 e5@6 ~@6", G: "~@5 eb5@6 c5",
  H: "[a3,e4,a4]@4 g4 [a3,e4,a4]@3 ~@8 g4@7 e4", I: "gb4@2 e4@10 d4 e4@3 c4@8",
  J: "[e3,a3,e4]@4 [e3,a3,e4] ~ a3@2 g3@2 a3@2 g3@4 a3@4 gb3@4", K: "g3@2 e3@5 d3 e3 g3 ab3 a3",
  L: "[a3,c4,e4]@2 [a3,c4,e4]@2 e3!2 g3@2 a3@4", // Am
})).s("gm_acoustic_guitar_steel").gain(0.3)

// bass · acoustic bass
const bass = note("<A B@14 C D B@6 C D B@2 E ~ F G F ~@2 H B@14 C D B@6 C D B@2 E ~ F G F ~@2 H>".pickRestart({
  A: "~@11 g1", B: "c2@2 c2 eb2@2 eb2 c2@2 bb1 ~@2 g1", C: "ab1@2 ab1 eb2@2 eb2 ab1@2 ab1 ~@2 g1",
  D: "ab1@2 ab1 eb2@2 eb2 bb1@2 bb1 ~@2 g1", E: "a1@2 a1 ~@9", F: "a1!2 ~@4", G: "~@6 a2@4 e2 c2",
  H: "~@6 a2@3 a1 bb1 b1",
})).s("gm_acoustic_bass").gain(0.3)

// chords · epiano1 · "Electric Piano" · Eb Ebmaj7 Eb Ebmaj7
const epiano1 = note(`<
  ~@3
  [~@2 [eb4,g4] ~@3 [d4,eb4,g4]@2 [d4,eb4,g4] ~@3]!24
  ~@10
  [~@2 [eb4,g4] ~@3 [d4,eb4,g4]@2 [d4,eb4,g4] ~@3]!24
  ~@8
>`).s("gm_epiano1").gain(0.3)

// drums · snare
const snare = s("sd").struct("<~ A ~ A@24 ~@8 A ~ A@24 ~@8>".pickRestart({
  A: "~@3 x ~@4 x ~@3",
})).gain(0.3)

// drums · tambourine
const tambourine = s("tb").struct("<~@2 [~@3 x!3 ~@6]!33 ~ [~@3 x!3 ~@6]!33>").gain(0.3)

// drums · bongos
const bongos = s("bongo:18").struct("<~@3 [x ~ x ~@2 x!2 ~@5]!31 ~@3 [x ~ x ~@2 x!2 ~@5]!31 ~>").gain(0.78)

// drums · shaker
const shaker = s("sh").struct("<~ [x!3 ~]!26 [x ~@2 x ~ x ~@6] [x!3 ~]!33 [x ~@2 x ~ x ~@6] [x!3 ~]!7>").gain(0.3)

stack(flute, acoustic_guitar_steel, bass, epiano1, snare, tambourine, bongos, shaker)

More by Yasunori Nishiki