Strudelify

Arpeggiator

Jean Michel Jarre

KeyE♭ majorTempo105 bpm
0:00/0:00
// Arpeggiator — Jean Michel Jarre
// 105 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 81 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(105/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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.

// bass · synth bass 1
const bass = note("<A@37 ~@18 A@13 B@2 C@2 A@2 B@2 C@2 A@2 D>".pickRestart({
  A: "c2!2 c3 c2!2 c3 c2!2 eb2 c2!2 eb2 c2!4", B: "bb1!2 bb2 bb1!2 bb2 bb1!2 db2 bb1!2 db2 bb1!4",
  C: "g1!2 g2 g1!2 g2 g1!2 bb1 g1!2 bb1 g1!4", D: "c2!2 c3 c2!2 c3 c2!2 eb2 c2!2 eb2 c2!3 ~",
})).s("gm_synth_bass_1").gain(0.51)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@25 A@12 B ~@17 C@12 D E@2 F@2 G@2 E@2 F@2 H@3>".pickRestart({
  A: "[g4,c5,eb5]/6", B: "[g4,c5,eb5]", C: "[g3,c4,eb4]/6", D: "[ab2,c4,eb4]", E: "[f3,bb3,db4]/2", F: "[d3,g3,bb3]/2",
  G: "[g3,c4,eb4]/2", H: "[[g3,c4,eb4]@23 ~]/3",
})).s("gm_string_ensemble_2").gain(0.36)

// other · synth bass 2
const synth_bass_2 = note("<~@47 A@21 B@2 C@2 A@2 B@2 C@2 A@2 ~>".pickRestart({
  A: "c4!2 bb3 c4!2 bb3 c4!2 g4 c4!2 g4 c4!2 eb4 c4", B: "bb3!2 ab3 bb3!2 ab3 bb3!2 f4 bb3!2 f4 bb3!2 db4 bb3",
  C: "g3!2 f3 g3!2 f3 g3!2 d4 g3!2 d4 g3!2 bb3 g3",
})).s("gm_synth_bass_2").gain(0.41)

// other · whistle
const whistle = note("<~@39 A@29 B@2 C@2 A@2 B@2 C@2 A@2 ~>".pickRestart({
  A: "c4!2 eb4 c4!4 c5", B: "bb3!2 db4 bb3!4 bb4", C: "g3!2 bb3 g3!4 g4",
})).s("gm_whistle").gain(0.36)

// drums · kick
const kick = s("bd").struct("<~@25 [x ~@2 x!2 ~ x ~@9]!12 ~@10 [x ~@2 x!2 ~ x ~@9]!33 ~>").gain(0.51)

// drums · snare
const snare = s("sd").struct("<~@25 [~ x ~@2]!12 ~@18 [~ x ~@2]!25 ~>").gain(0.51)

// drums · hihat
const hihat = s("hh").struct("<~@37 [x ~ x!3 ~ x!4 ~ x!4 ~]!43 ~>").gain(0.51)

stack(bass, string_ensemble_2, synth_bass_2, whistle, kick, snare, hihat)

More by Jean Michel Jarre