Strudelify

Jane Says

Jane's Addiction

KeyD majorTempo82 bpm
0:00/0:00
// Jane Says — Jane's Addiction
// 82 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 2 electric guitar jazz (copy of ch 1 acoustic guitar steel)
// note: Full arrangement: all 100 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 25.
setcpm(82/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · acoustic guitar steel · G5 A5
const acoustic_guitar_steel = note("<~ [~@5 [g3,d4,g4]!2 ~@9] [~@11 [a3,e4,a4] ~@4] ~@97>")
  .s("gm_acoustic_guitar_steel").gain(0.25).pan(0.6)

// chords · electric guitar clean
const electric_guitar_clean = note("<A@2 B@14 C D C D B@16 C D C D B@24 C D C D B@26 C D C D B@2>".pickRestart({
  A: "[b2,d3,g3,b3]@4 [b2,d3,g3,b3]@3 [a2,e3,a3]@2 [a2,e3,a3] [a2,e3,a3]@2 [a2,f#3,b3] [a2,e3,a3] [a2,c#3,f#3] [a2,e3,a3]", // G A5 B7 A5 F#m A5
  B: "[b2,d3,g3,b3]@4 [b2,d3,g3,b3]!3 [a2,e3,a3]@2 [a2,e3,a3] [a2,e3,a3]@2 [a2,f#3,b3] [a2,e3,a3] [a2,c#3,f#3] [a2,e3,a3]", // G A5 B7 A5 F#m A5
  C: "[g2,d3,g3]@4 [g2,d3,g3]!3 [g2,d3,g3]@2 [f#2,d3,f#3] [f#2,d3,f#3]@2 [f#2,d3,f#3]!4", // G5 D
  D: "[g2,d3,g3]@4 [g2,d3,g3]!3 [g2,d3,g3]@2 [f#2,d3,a3] [f#2,d3,a3]@2 [f#2,d3,a3]!4", // G5 D
})).s("gm_electric_guitar_clean").gain(0.29)

// bass · electric bass pick
const bass = note("<A@16 B@4 A@16 B@4 A@24 B@4 A@26 B@4 A@2>".pickRestart({
  A: "g1@4 g1@3 a1@2 a1 a1@2 b1@2 a1@2", B: "g1@4 g1@3 g1@2 f#1 f#1@2 f#1@2 f#1@2",
})).s("gm_electric_bass_pick").gain(0.46)

// other · steel drums
const steel_drums = note("<~@2 A@14 ~@6 A@14 ~@6 A@22 ~@6 A@19 B C D E@2 ~@4 E F>".pickRestart({
  A: "g4@4 g4@2 a4 e4@3 e4@6", B: "g4@4 g4@2 a4 e4 e4@2 e4@6, a4 ~@7",
  C: "g4@4 [e4,g4]@2 a4 ~ a4@2 e4@2 e4@4, a4@2 ~@5 e4@3 ~@6", D: "g4@2 g4 ~ a4 e4 e4@2, a4@2 ~@5 e4@3 ~@6",
  E: "g4@4 [e4,g4]@2 a4 e4@3 e4@2 e4@4, a4 ~@7", F: "g4@4 [e4,g4]@2 a4 e4@3 e4@2 e4@2 ~@2, a4 ~@7",
})).s("gm_steel_drums").gain(0.64).pan(0.6)

// other · vibraphone
const vibraphone = note("<~@2 A@14 ~@6 A@14 ~@6 A@22 ~@6 A@19 B@4 C ~@4 B D>".pickRestart({
  A: "g5@4 g5@2 a5 e5@3 e5@6", B: "g5@4 [e5,g5]@2 a5 ~ a5@2 e5@2 e5@4, a5@2 ~@5 e5@3 ~@6",
  C: "g5@4 [e5,g5]@2 ~ e5@3 e5@2 e5@4, a5 ~@7", D: "g5@4 [e5,g5]@2 ~ e5@3 e5@2 e5@2 ~@2, a5 ~@7",
})).s("gm_vibraphone").gain(0.45)

// drums · rim
const rim = s("rim").struct("~ x ~ x").gain(0.33)

// drums · pedal hat
const pedal_hat = s("hh").struct("x!8").gain(0.33)

stack(acoustic_guitar_steel, electric_guitar_clean, bass, steel_drums, vibraphone, rim, pedal_hat)

More by Jane's Addiction