Strudelify
Situation cover art

1982

Situation

Yaz

KeyD♭ majorTempo119 bpm
0:00/0:00
// Situation — Yaz
// 119 bpm, 4/4, key C# major. Source: mcgill.
// Generated by strudelify. One cycle = one bar.
setcpm(119/4)

const chords = arrange(
  // intro (20 bars)
  [20, "<[C#5@2 B5@2]!20>"],
  // verse (6 bars)
  [6, "<[C#5@2 B5@2]!3 C#5 F#5 G#5>"],
  // chorus (4 bars)
  [4, "<[C#5@2 F#5@2]!3 [D#@2 G#@2]>"],
  // trans (4 bars)
  [4, "<[C#5@2 B5@2]!4>"],
  // verse (6 bars)
  [6, "<[C#5@2 B5@2]!3 C#5 F#5 G#5>"],
  // chorus (4 bars)
  [4, "<[C#5@2 F#5@2]!3 [D#@2 G#@2]>"],
  // solo (12 bars)
  [12, "<[C#5@2 B5@2]!12>"],
  // chorus (4 bars)
  [4, "<[C#5@2 F#5@2]!3 [D#@2 G#@2]>"],
  // chorus (4 bars)
  [4, "<[C#5@2 F#5@2]!3 [D#@2 G#@2]>"],
  // trans (4 bars)
  [4, "<[C#5@2 B5@2]!4>"],
  // verse (6 bars)
  [6, "<[C#5@2 B5@2]!3 C#5 F#5 G#5>"],
  // chorus (4 bars)
  [4, "<[C#5@2 F#5@2]!3 [D#@2 G#@2]>"],
  // chorus (4 bars)
  [4, "<[C#5@2 F#5@2]!3 [D#@2 G#@2]>"],
  // trans (5 bars)
  [5, "<[C#5@2 B5@2]!4 ~>"],
  // interlude (16 bars)
  [16, "<[C#5@2 B5@2]!16>"],
  // solo (6 bars)
  [6, "<[C#5@2 B5@2]!4 F#5 G#5>"],
  // solo (4 bars)
  [4, "<[C#5@2 F#5@2]!3 [D#@2 G#@2]>"],
  // chorus (4 bars)
  [4, "<[C#5@2 F#5@2]!3 [D#@2 G#@2]>"],
  // solo (12 bars)
  [12, "<[C#5@2 B5@2]!4 ~!2 [C#5@2 B5@2]!6>"],
  // solo (6 bars)
  [6, "<[C#5@2 B5@2]!3 C#5 F#5 G#5>"],
  // chorus (4 bars)
  [4, "<[C#5@2 F#5@2]!3 [D#@2 G#@2]>"],
  // solo (12 bars)
  [12, "<[C#5@2 B5@2]!12>"],
  // verse (6 bars)
  [6, "<[C#5@2 B5@2]!3 C#5 F#5 G#5>"],
  // chorus (4 bars)
  [4, "<[C#5@2 F#5@2]!3 [D#@2 G#@2]>"],
  // chorus (4 bars)
  [4, "<[C#5@2 F#5@2]!3 [D#@2 G#@2]>"],
  // coda (5 bars)
  [5, "<[C#5@2 B5@2]!4 C#5>"],
)
const bassline = arrange(
  [20, "<[c#2@2 b2@2]!20>"],
  [6, "<[c#2@2 b2@2]!3 c#2 f#2 g#2>"],
  [4, "<[c#2@2 f#2@2]!3 [d#2@2 g#2@2]>"],
  [4, "<[c#2@2 b2@2]!4>"],
  [6, "<[c#2@2 b2@2]!3 c#2 f#2 g#2>"],
  [4, "<[c#2@2 f#2@2]!3 [d#2@2 g#2@2]>"],
  [12, "<[c#2@2 b2@2]!12>"],
  [4, "<[c#2@2 f#2@2]!3 [d#2@2 g#2@2]>"],
  [4, "<[c#2@2 f#2@2]!3 [d#2@2 g#2@2]>"],
  [4, "<[c#2@2 b2@2]!4>"],
  [6, "<[c#2@2 b2@2]!3 c#2 f#2 g#2>"],
  [4, "<[c#2@2 f#2@2]!3 [d#2@2 g#2@2]>"],
  [4, "<[c#2@2 f#2@2]!3 [d#2@2 g#2@2]>"],
  [5, "<[c#2@2 b2@2]!4 ~>"],
  [16, "<[c#2@2 b2@2]!16>"],
  [6, "<[c#2@2 b2@2]!4 f#2 g#2>"],
  [4, "<[c#2@2 f#2@2]!3 [d#2@2 g#2@2]>"],
  [4, "<[c#2@2 f#2@2]!3 [d#2@2 g#2@2]>"],
  [12, "<[c#2@2 b2@2]!4 ~!2 [c#2@2 b2@2]!6>"],
  [6, "<[c#2@2 b2@2]!3 c#2 f#2 g#2>"],
  [4, "<[c#2@2 f#2@2]!3 [d#2@2 g#2@2]>"],
  [12, "<[c#2@2 b2@2]!12>"],
  [6, "<[c#2@2 b2@2]!3 c#2 f#2 g#2>"],
  [4, "<[c#2@2 f#2@2]!3 [d#2@2 g#2@2]>"],
  [4, "<[c#2@2 f#2@2]!3 [d#2@2 g#2@2]>"],
  [5, "<[c#2@2 b2@2]!4 c#2>"],
)

// chords · gm_piano
const keys = chord(chords).voicing().s("gm_piano").gain(0.8)
// bass · gm_electric_bass_finger
const bass = note(bassline).s("gm_electric_bass_finger").gain(0.9)
// drums
const drums = s("[bd hh] [sd hh] [bd hh] [sd hh]").gain(0.8)

stack(keys, bass, drums)