Strudelify
Only the Young cover art

1988

Only the Young

Journey

KeyG majorTempo144 bpm
0:00/0:00
// Only the Young — Journey
// 144 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 150 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(144/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, A@4 for four bars: edit a riff to change every repeat.

// bass · electric bass finger · "Track 2"
const bass = note(`<
  ~ A@3 B C@2 D E F@3 G A@3 H C@4 A@3 I F@3 G A@3 H C@4 A@3 I J@3 K L@2 A M N@3 K L@2 O P F@5 G A@3 H C@4 A@3 I J@3 K
  L@2 A M N@3 K L@2 O P F@3 G A@3 H C@4 A@3 I J@3 K L@2 A M N@3 K L@2 O P F@2 J@3 K L@2 A M N@3 K L@2 O P F@4 Q R S@2 ~
>`.pickRestart({
  A: "c2@4 ~@2 c2 ~ c2@4 ~@2 c2 ~", B: "c2@4 ~@2 c2 ~ c2@2 d2@2 e2@2 c2@2", C: "a1@4 ~@2 a1 ~ a1@4 ~@2 a1 ~",
  D: "b1@4 ~@2 b1 ~ b1@4 ~@2 b1 ~", E: "b1@3 ~@3 b1 ~ b1 ~ b1@2 a1@2 b1@2", F: "d2@4 ~@2 d2 ~ d2@4 ~@2 d2 ~",
  G: "d2@4 ~@2 d2 ~ d2@2 e2@2 f#2@2 g2@2", H: "c2@4 ~@2 c2 ~ c2@2 e2@2 d2@2 c2@2", I: "c2@4 ~@2 c2 ~ c2@4 a1@2 c2@2",
  J: "g1@4 ~@2 g1 ~ g1@4 ~@2 g1 ~", K: "g1@4 ~@2 g1 ~ g1@4 a1@2 b1@2", L: "c2@4 ~@2 c2 ~ c2@5 ~@3",
  M: "c2@2 ~ c2 e2 d2 c2 a1", N: "g1@4 ~@2 g1 ~ g1@5 ~@3", O: "b1@4 ~@2 b1 ~ b1@5 ~@3",
  P: "b1@4 ~@2 b1 ~ b1@4 g1@2 b1@2", Q: "c2@5 ~ c2@2 ~@8", R: "c2@5 ~ c2@3 ~@5 [g1,a1,b1] ~", S: "[d1@31 ~, f1 ~@31]/2",
})).s("gm_electric_bass_finger").gain(0.49)

// chords · acoustic guitar steel · "Track 3"
const acoustic_guitar_steel = note(`<
  ~ A B A C D E F G ~ H I ~ A J@2 K L@4 A B A M ~ H I ~ A J@2 K L@4 A B A M F G F G N C A C F G F G A C F O ~@3 H I ~ A
  J@2 K L@4 A B A M F G F G N C A C F G F G A C F O ~@4 A J@2 K L@4 A B A M F G F G N C A C F G F G A C F O ~@2 F G F G
  N C A C F G F G A C F O ~@9
>`.pickRestart({
  A: "~@3 g4 ~@3 f#4, g4 g3 f#4 g3, ~@2 c4@7 ~ c4@6", B: "~@3 e4 ~@3 f#4, e4 g3 f#4 g3, ~@2 c4@7 ~ c4@6",
  C: "~@3 e4 ~@2 e4 f#4, e4@2 g3@2 ~ c4@3, ~ c4@3 f#4@2 g3@2", D: "~@3 g4 ~@3 f#4, g4 a3 f#4 a3, ~@2 d4@7 ~ d4@6",
  E: "~@3 e4 ~@2 e4 f#4, e4 a3 f#4 a3, ~@2 d4@7 ~ d4@6", F: "~@3 g4 ~@3 f#4, g4@2 b3@2 ~ d4@3, ~ d4@3 f#4@2 b3@2",
  G: "~@3 e4 ~@2 e4 f#4, e4@2 b3@2 ~ d4@3, ~ d4@3 f#4@2 b3@2", H: "~@10 [d4,g4,a4] ~ [d4,g4,a4]@2 f#4 ~",
  I: "[d4,f#4,a4]@15 ~", // D
  J: "[~@3 e4 ~ c4 ~ f#4 ~@3 g4 ~@3 f#4, e4@2 g3@3 ~ g3@3 c4@3 f#4@2 g3@2, ~@2 c4@6 f#4@4 ~@4 g4@4 g3@5 ~ c4@6]/2",
  K: "~@3 f#4@2 ~ g3@2, e4@3 ~@5, ~@2 c4@7 ~ [c4,g4]@6, ~@2 g3@3 ~@3", // C5
  L: "[~@3 g4 ~@3 f#4 ~@3 e4 ~@3 f#4 ~@3 g4 ~@3 f#4 ~@3 f#4@2 ~ a3@2, g4@2 a3@3 c4@3 e4@2 a3@3 c4@3 g4@2 a3@3 c4@3 e4@3 ~@5, ~@2 c4@6 f#4@4 a3@6 c4@6 f#4@4 a3@6 c4@6 f#4@4 a3@6 c4@7 ~ [c4,g4]@6, ~@26 a3@3 ~@3]/4", // C5
  M: "~@6 f#4@4 ~@2 g3@3 ~, e4@3 ~@5, ~@2 c4@7 ~ [c4,g4]@6, ~@4 g3@5 ~@7", // C5
  N: "~@3 g4 ~@3 f#4, g4@2 g3@2 ~ c4@3, ~ c4@3 f#4@2 g3@2",
  O: "~@3 e4 ~@2 [b3,e4] f#4, e4@2 b3@2 ~ d4@2 ~, ~ d4@3 f#4@2 ~@2", // E5
})).s("gm_acoustic_guitar_steel").gain(0.16)

// chords · pad warm · "Track 4"
const pad_warm = note(`<
  ~ A@4 B@2 C@2 D@4 E@4 D@4 E@4 D@4 E@4 D@4 F@4 G@4 E@4 G@4 H@2 I@2 J@6 E@4 D@4 E@4 G@4 E@4 G@4 H@2 I@2 D@4 E@4 D@4 F@4
  G@4 E@4 G@4 H@2 I@2 K@6 E@4 G@4 H@2 I@2 J@6 ~@3
>`.pickRestart({
  A: "g3/4", B: "a3/2", C: "b3/2", D: "[a3,d4]/4", E: "[g3,c4,d4]/4", F: "[g3,c4]/4", G: "[[g3,b3,d4]@63 ~]/4",
  H: "[g3,c4,d4]/2", I: "[b3,d4]/2", J: "[~ [a3,d4]@2, [a3,d4]@2 ~]/6", K: "[~@32 [g3,b3,d4]@63 ~, [a3,d4]@2 ~]/6",
})).s("gm_pad_warm").gain(0.24)

// chords · pad warm · "Track 4" · soft notes
const pad_warm_soft = note("<~@37 A@4 ~@14 B@2 ~@32 B@2 ~@12 A@4 ~@14 B@2 ~@16 B@2 ~@9>".pickRestart({
  A: "d4/4", B: "g3/2",
})).s("gm_pad_warm").gain(0.15)

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

// drums · snare
const snare = s("sd").struct(`<
  ~ A@7 B A@15 B A@15 B A@15 B A B A@15 B A@15 B A@15 B A@33 B A@4 C@2 D ~@2
>`.pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@3 x!2", C: "x ~@2 x ~@4", D: "x",
})).gain(0.49)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@8 A ~@15 A ~@15 A ~@15 A ~ A ~@15 A ~@15 A ~@15 A ~@33 A ~@9>".pickRestart({
  A: "~@4 x!2 ~@2",
})).gain(0.24)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~ A B A B A B A C A B A B A B A B A B A B A B A C A B A B A B A B A B A B A B A C A B A B A B A B A B A B A B A C A C
  A B A B A B A B A B A B A B A C A B A B A B A B A B A B A B A C A B A B A B A B A B A B A B A C A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B A C A B A B ~@5
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~ x ~@2", C: "~ x ~@6",
})).gain(0.19)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@8 A ~@15 A ~@15 A ~@15 A ~ A ~@15 A ~@15 A ~@15 A ~@33 A ~@4 B@2 C ~@2
>`.pickRestart({
  A: "~ x!3", B: "x ~@2 x ~@4", C: "x",
})).gain(0.44)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@3 A ~@3 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~ A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~ A ~@7 A ~@7
  A ~ A ~ B C A ~@2
>`.pickRestart({
  A: "x", B: "x ~@2 x ~@4", C: "x ~@5 x ~@8 x",
})).gain(0.49)

// drums · ride
const ride = s("rd").struct("<~@147 [~@5 x ~ x ~ x ~@2 x ~ x ~] [~@2 x ~@3 x ~@3 x ~@4 x] [~@2 x ~@2 x ~@2]>")
  .gain(0.19)

stack(
  bass, acoustic_guitar_steel, pad_warm, pad_warm_soft, kick, snare, snare_soft, hihat, hihat_soft, open_hat, crash,
  ride
)

More by Journey