Strudelify
Foolish Games cover art

1995 · Pieces Of You

Foolish Games

Jewel

KeyG majorTempo130 bpm
0:00/0:00
// Foolish Games — Jewel
// 130 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 161 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/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 · piano · "Piano Intro"
const piano = note(`<
  A@6 B@2 ~@48 C@2 D@2 E@2 C@4 D@2 E@2 C@2 A@6 B@2 ~@48 C@2 D@2 E@2 C@4 D@2 E@2 F@2 ~ A@6 B@2 ~@8
>`.pickRestart({
  A: "[~@47 d3, e3 e4 f#4 g4 a4 g4 f#4 e4 c3 [c4,e4] f#4 g4 a4 g4 f#4 e4 g2 [g3,d4] g4 a4 b4 a4 g4 d4, ~ b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 g3@2 g3@2 g3@2 g3@2 g3@2 g3@2 g3@2 g3@2 d3@2 d3@2 d3@2 d3@2 d3@2 d3@2 d3@2 ~]/6", // C G5
  B: "[~@15 a3, d3 d4 f#4 g4 a4 g4 f#4 d4, ~ a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 ~]/2", C: "c3 [g3,c4]", D: "d3 [a3,d4]",
  E: "g2 [d3,g3]", F: "[~ [g3,c4]@3, c3]/2",
})).s("gm_piano").gain(0.31)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 E@2 F@2 G@2 H@2 E@2 F@2 G@2 H@2 ~@8 I@2 F@2 G@2 H@2 F@2 H@2 G@2 F@4
  H@2 G@2 F@2 A@2 J@2 K@2 L@2 A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 E@2 F@2 G@2 H@2 E@2 F@2 G@2 H@2 ~@16 F@2 H@2 G@2 F@4 H@2
  G@2 M@2 ~ A@2 J@2 K@2 L@2 A@2 B@2 G@2 H@2
>`.pickRestart({
  A: "e4/2", B: "c4/2", C: "g3/2", D: "d4/2", E: "[b3,e4]/2", F: "[g3,c4]/2", G: "[d3,g3]/2", H: "[a3,d4]/2",
  I: "[a3,e4]/2", J: "[~@12 d5 e5 d5 c5, c4]/2", K: "[b4@16 ~@6 b4@2 b4@2 c5@2 b4@3 ~, g3]/2",
  L: "[b4@2 a4@7 ~@23, d4]/2", M: "[[g3,c4] ~, c6]/2",
})).s("gm_string_ensemble_1").gain(0.31)

// other · piano · "Piano Verse"
const piano_2 = note(`<
  ~@8 A B C D E F G H A B C D E F G H A B C D E F G H A B C D E F G H I J K L M N O P I J K L M N O P Q R O P S N K R K
  R O P S N K R ~@8 A B C D E F G H A B C D E F G H A B C D E F G H A B C D E F G H I J K L M N O P I J K L M N O P Q R
  O P S N K R K R O P S N ~@11 A B C D E F G T
>`.pickRestart({
  A: "e3 g3 b3 g3 e4 b3 g4 b3", B: "b4 b3 g4 b3 b4 b3 e5 b3", C: "c3 g3 c4 g3 e4 g3 g4 g3",
  D: "c5 g3 g4 g3 c5 g3 e5 g3", E: "g2 d3 g3 d3 b3 g3 d4 g3", F: "g4 g3 d4 g3 g4 g3 b4 g3",
  G: "d3 f#3 a3 f#3 d4 f#3 f#4 f#3", H: "a4 f#3 f#4 f#3 a4 f#3 d5 f#3", I: "a2 e3 a3 e3 a3 e3 b3 e3",
  J: "c4 e3 a3 e3 c4 e3 e4 e3", K: "c3 g3 c4 g3 c4 g3 d4 g3", L: "e4 g3 c4 g3 e4 g3 g4 g3",
  M: "g2 d3 g3 d3 a3 d3 b3 d3", N: "d4 b3 g4 b3 b4 b3 g4 b3", O: "d3 a3 d4 a3 d4 a3 f#4 a3",
  P: "a4 a3 g4 a3 f#4 a3 d4 a3", Q: "c3 g3 c4 g3 c4 g3 d4 g3, e3 ~@15", R: "e4 g3 c4 g3 e4 g3 g4 g3, g3 ~@15",
  S: "g2 d3 g3 d3 a3 d3 b3 d3, g3 ~@15", T: "a4@3 ~@9 d5@3 ~",
})).s("gm_piano").gain(0.31)

// chords · violin · "Chorus-lead Violins"
const violin = note("<~@40 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 ~@56 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 ~@33>".pickRestart({
  A: "[a3,e4,a4]@3 ~ [a3,e4,a4]@3 ~ [a3,e4,a4]@3 ~ [a3,e4,a4]@3 ~", // A5
  B: "[c4,g4,c5]@3 ~ [c4,g4,c5]@3 ~ [c4,g4,c5]@3 ~ [c4,g4,c5]@3 ~", // C5
  C: "[g3,d4,g4]@3 ~ [g3,d4,g4]@3 ~ [g3,d4,g4]@3 ~ [g3,d4,g4]@3 ~", // G5
  D: "[d4,a4,d5]@3 ~ [d4,a4,d5]@3 ~ [d4,a4,d5]@3 ~ [d4,a4,d5]@3 ~", // D5
})).s("gm_violin").gain(0.31)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@24 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 E@2 F@2 G@2 H@2 F@2 H@2 G@2 F@4 H@2 G@2 F@2 ~@24 A@2 B@2 C@2 D@2
  A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 E@2 F@2 G@2 H@2 F@2 H@2 G@2 F@4 H@2 G@2 I@2 ~@17
>`.pickRestart({
  A: "[e2@24 g2@3 b2@3 e3@2]/2", B: "[c2@24 e2@3 g2@3 c3@2]/2", C: "[g1@24 b1@3 d2@3 g2@2]/2",
  D: "[d2@12 a2 g2 f#2 e2]/2", E: "a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~", F: "c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~",
  G: "g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~", H: "d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~", I: "[c2@3 ~]/2",
})).s("gm_electric_bass_finger").gain(0.51)

// other · tubular bells · "drums triangle"
const tubular_bells = note("<~@12 A ~@15 A ~@47 A ~@72 A ~@7 A ~@3>".pickRestart({
  A: "g6 ~",
})).s("gm_tubular_bells").gain(0.31)

// other · oboe
const oboe = note("<~@72 A@2 B@2 C@2 D@2 ~@65 A@2 B@2 C@2 D@2 ~@8>".pickRestart({
  A: "[e5@12 f#5 g5 f#5 e5]/2", B: "[d5@12 d5 e5 d5 c5]/2", C: "[b4@11 b4!2 c5 b4@2]/2", D: "[b4 a4@13 ~@2]/2",
})).s("gm_oboe").gain(0.2)

// drums · kick
const kick = s("bd").struct(`<
  ~@40 A B A C A@3 C A B A C A@3 C A B A C A@3 C A B A C A@3 C ~@24 A B A C A@3 C A B A C A@3 C A B A C A@3 C A B A C
  A@3 C A B A C A@3 C A B A C A@2 D ~@16 E F
>`.pickRestart({
  A: "x ~ x ~@4 x", B: "x ~ x ~@2 x ~ x", C: "x!2 ~@2", D: "x", E: "~@5 x!3", F: "~ x!3 ~@4",
})).gain(0.41)

// drums · snare
const snare = s("sd").struct(`<
  ~@40 A@3 B A@3 C A@3 B A@3 C A@3 B A@3 C A@3 B A@3 C ~@3 D ~@3 B@4 D B@3 C B@7 C A@3 B A@3 C A@3 B A@3 C A@3 B A@3 C
  A@3 B A@3 C A@3 B A@3 C A@3 B A@2 ~ E ~@4 D ~@10 F G
>`.pickRestart({
  A: "~ x", B: "~@4 x ~@2 x", C: "~@4 x ~ x!2", D: "~@4 x!4", E: "~@6 x!2", F: "x!3 ~", G: "x",
})).gain(0.41)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@152 A B C B C B D ~@2>".pickRestart({
  A: "x ~ x!2 ~ x!3 ~ x!3 ~ x!3", B: "x!4 ~ x!3 ~ x!3 ~ x!3", C: "x!3 ~ x!3 ~ x!3 ~ x!3 ~", D: "x ~ x!5 ~ x!3 ~ x!3 ~",
})).gain(0.26)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@32 [x!4]!40 ~@12 [x!4]!58 x!2 ~@17>").gain(0.31)

// drums · open hat
const open_hat = s("oh").struct("<~@24 A@16 ~@8 A@8 B@16 ~@48 A@8 B@14 ~ C ~@17>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "x!8", C: "x",
})).gain(0.41)

// drums · crash
const crash = s("cr").struct("<~@56 [x!2]!16 ~@12 x ~@43 [x!2]!14 x!2 ~@17>").gain(0.41)

// drums · ride
const ride = s("rd").struct("<~@88 x ~@53 x ~@17 [~@3 x]>").gain(0.41)

// drums · vibraslap
const vibraslap = s("vibraslap:0").struct("<~@157 x ~@2 [~@3 x]>").gain(6.02)

stack(
  piano, string_ensemble_1, piano_2, violin, bass, tubular_bells, oboe, kick, snare, snare_soft, pedal_hat, open_hat,
  crash, ride, vibraslap
)

More by Jewel