Strudelify
KeyG majorTempo91 bpm
0:00/0:00
// Jumper — Third Eye Blind
// 91 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 103 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(91/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 · acoustic guitar steel · "Acoustic Guitar"
const acoustic_guitar_steel = note(`<
  A B C D E B F G H B H ~@11 B H G C B I J E J E ~@11 G E J H G I G H J K G H ~@16 B H B E G K B K ~@2 J E D E J I D H D
  E J E ~@10
>`.pickRestart({
  A: "~@14 [f3,a3,c4]!2", B: "[f3,a3,c4]!3 ~ [f3,a3,c4]@2 [f3,a3,c4]!2 [e3,g3,c4]!3 ~ [e3,g3,c4]@2 [e3,g3,c4]!2",
  C: "[d3,g3,c4] [d3,g3,b3]!2 ~ [d3,g3,b3]@2 [d3,g3,b3]!4 [d3,g3,b3]@2 [d3,g3,b3]@2 [d3,g3,b3]!2", // Csus2 G
  D: "[f3,a3,c4]!3 ~ [f3,a3,c4]@2 [f3,a3,c4]!2 [e3,g3,c4]!2 [e3,g3,c4]@2 [e3,g3,c4]@2 [e3,g3,c4]!2", // F C
  E: "[d3,g3,c4] [d3,g3,b3] [d3,g3,b3]@2 [d3,g3,b3]@2 [d3,g3,b3]!4 [d3,g3,b3]@2 [d3,g3,b3]@2 [d3,g3,b3]!2", // Csus2 G
  F: "[d3,g3,c4] [d3,g3,b3] [d3,g3,b3]@2 [d3,g3,b3]@2 [d3,g3,b3]!3 ~@7", // Csus2 G
  G: "[f3,a3,c4]!2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]!2 [e3,g3,c4]!3 ~ [e3,g3,c4]@2 [e3,g3,c4]!2", // F C
  H: "[d3,g3,c4] [d3,g3,b3] [d3,g3,b3]@2 [d3,g3,b3]@2 [d3,g3,b3]!5 ~ [d3,g3,b3]@2 [d3,g3,b3]!2", // Csus2 G
  I: "[d3,g3,c4] [d3,g3,b3] [d3,g3,b3]@2 [d3,g3,b3]@2 [d3,g3,b3]!2 ~@8", // Csus2 G
  J: "[f3,a3,c4]!2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]!2 [e3,g3,c4]!2 [e3,g3,c4]@2 [e3,g3,c4]@2 [e3,g3,c4]!2", // F C
  K: "[d3,g3,c4] [d3,g3,b3]!2 ~ [d3,g3,b3]@2 [d3,g3,b3]!5 ~ [d3,g3,b3]@2 [d3,g3,b3]!2", // Csus2 G
})).s("gm_acoustic_guitar_steel").gain(0.52)

// bass · fretless bass · "Bass"
const bass = note(`<
  ~@7 A B A B C D B@2 C D B@2 C E F A B A B A B A B A B C D B@2 C D B@2 C E F A B A B A B A B A B A B G H ~@22 E F A B A
  B A B A B A B A B A B A B ~@6
>`.pickRestart({
  A: "f2 c3", B: "g2", C: "a2", D: "c3", E: "f#2", F: "c3@5 ~@3", G: "~ f1!3 f2 ~ f2 ~ c2!5 ~@3",
  H: "g2!4 d2 ~ d2 ~ g1!5 ~@3",
})).s("gm_fretless_bass").gain(0.6)

// chords · overdriven guitar · "Electric Guitar"
const overdriven_guitar = note(`<
  ~@11 A B C@2 A B C@2 A D E F G F G F H F G F G A B C@2 A B C@2 A D E F G F G F H F G F G F G ~@12 F G F G I@2 J@7 E F
  G F G F H F G F G F G F G F G F G F G ~@2
>`.pickRestart({
  A: "[a2,c3,e3]", B: "[c3,e3,g3]", C: "[g2,b2,d3]/2", D: "f#3@2 c4@2 d4@3 e4@3 g3@2 f#3@2 c4@2, [a2,d3]",
  E: "[c3,g3] ~ c4 g3 e4 ~@3, e3 ~, ~ g3@2 ~@5", F: "[c3,f3,a3] [c3,e3,g3]", G: "[d3,g3,b3]",
  H: "[d3,g3,b3]@2 [d3,g3,b3] ~", // G
  I: "[~ b4 c5 b4 c5@3 b4 c5 b4 c5 d5@3 ~@4 f5 ~ f5@3 ~ f5 e5@2 b4@3 c5 d5, [c3,f3,a3] [c3,e3,g3] [d3,g3,b3]@2, ~@7 g4@2 ~@7]/2", // F C G
  J: "[~ b4 c5 b4 c5@3 b4 c5 b4 c5 d5@3 ~@4 f5 ~ f5@3 ~ f5 e5@2 b4@3 c5 ~@2 b4 c5 b4 c5@3 b4 c5 b4 c5 d5@3 ~@4 f5 ~ f5@3 ~ f5 e5@2 b4@3 c5 ~@2 b4 c5 b4 c5@3 b4 c5 b4 c5 d5@3 ~@4 f5 ~ f5@3 ~ f5 e5@2 b4@3 c5 ~ f#3@2 ~@2 d4@3 e4@3 ~@4 c4@2, [c3,f3,a3] [c3,e3,g3] [d3,g3,b3]@2 [c3,f3,a3] [c3,e3,g3] [d3,g3,b3]@2 [c3,f3,a3] [c3,e3,g3] [d3,g3,b3]@2 [d2,a2,d3]@2, ~@14 g4@4 ~@13 d5@2 ~@13 g4@4 ~@13 d5@2 ~@13 g4@4 ~@13 d5@2 ~@9 g3@4 ~@2, ~@27 f#3]/7", // F C G F C G F C …
})).s("gm_overdriven_guitar").gain(0.4)

// bass · synth bass 2 · "Accent, Bass #2"
const bass_2 = note(`<
  ~@14 A ~@3 A ~@16 A ~@3 A ~@15 B C B C B C B C B C B C B C B C B C B C B C B C ~@24
>`.pickRestart({
  A: "g3!16", B: "~ f1!3 f2 ~ f2 ~ c2!5 ~@3", C: "g2!4 d2 ~ d2 ~ g1!5 ~@3",
})).s("gm_synth_bass_2").gain(0.6)

// chords · electric guitar muted · "Muted Guitar"
const electric_guitar_muted = note("<~@59 A@4 B@8 C@8 ~@24>".pickRestart({
  A: "[~ b4 c5 b4 c5@3 b4 c5 b4 c5 d5@3 g4@4 f5 ~ f5@3 ~ f5 e5@2 b4@3 d5@2]/2",
  B: "[~ b4 c5 b4 c5@3 b4 c5 b4 c5 d5@3 g4@4 f5 ~ f5@3 ~ f5 e5@2 b4@3 c5 d5@2 b4 c5 b4 c5@3 b4 c5 b4 c5 d5@3 g4@4 f5 ~ f5@3 ~ f5 e5@2 b4@3 c5 d5@2 b4 c5 b4 c5@3 b4 c5 b4 c5 d5@3 g4@4 f5 ~ f5@3 ~ f5 e5@2 b4@3 c5 d5@2 b4 c5 b4 c5@3 b4 c5 b4 c5 d5@3 g4@4 f5 ~ f5@3 ~ f5 e5@2 b4@3 c5 d5]/8",
  C: "[~ b4 c5 b4 c5@3 b4 c5 b4 c5 d5@3 ~@4 f5 ~ f5@3 ~ f5 e5@2 b4@3 c5 ~@2 b4 c5 b4 c5@3 b4 c5 b4 c5 d5@3 ~@4 f5 ~ f5@3 ~ f5 e5@2 b4@3 c5 ~@2 b4 c5 b4 c5@3 b4 c5 b4 c5 d5@3 ~@4 f5 ~ f5@3 ~ f5 e5@2 b4@3 c5 ~@2 b4 c5 b4 c5@3 b4 c5 b4 c5 d5@3 ~@4 f5 ~ f5@3 ~ f5 e5@2 b4@3 c5 d5, [c3,f3,a3] [c3,e3,g3] [d3,g3,b3]@2 [c3,f3,a3] [c3,e3,g3] [d3,g3,b3]@2 [c3,f3,a3] [c3,e3,g3] [d3,g3,b3]@2 [c3,f3,a3] [c3,e3,g3] [d3,g3,b3]@2, ~@14 g4@4 ~@13 d5@2 ~@13 g4@4 ~@13 d5@2 ~@13 g4@4 ~@13 d5@2 ~@13 g4@4 ~@14]/8", // F C G F C G F C …
})).s("gm_electric_guitar_muted").gain(0.8)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@7 [~@9 x!2 ~@4 x]!4 ~@82 [~@9 x!2 ~@4 x]!9 [~@9 x!2 ~@5]>").gain(0.48)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@13 A B C@2 A B C@2 D E@5 F E@4 ~@2 A B C@2 A B C@2 D E@5 F E@5 G H@15 I E@7 J E K E@5 F E@5 G ~@9 L
>`.pickRestart({
  A: "x ~@3 x ~@3 x ~@3 x!2 ~@2", B: "x ~@3 x ~@3 x!2 ~@2 x ~@3", C: "x!4", D: "x ~ x ~ x ~ x ~ x ~@6 x",
  E: "x ~ x ~@4 x ~@2 x ~@4 x", F: "x ~ x ~@4 x ~@2 x ~@3 x!2", G: "x ~ x ~@4 x ~@2 x ~@5", H: "~@5 x ~@2",
  I: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", J: "~ x ~ x ~ x ~ x ~@7 x", K: "x ~ x ~@4 x ~@8", L: "~@11 x ~@4",
})).gain(0.8)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@13 A B C@2 A B C@2 ~@13 A B C@2 A B C@2 ~@13 D@15 ~@33>".pickRestart({
  A: "~@2 x ~@3 x ~@3 x ~@4 x", B: "~@2 x ~@3 x ~@4 x ~@2 x ~", C: "~ x ~ x ~ x ~ x", D: "x ~ x!2 ~@4 x ~@2 x ~@4",
})).gain(0.48)

// drums · mid tom
const mid_tom = s("mt").struct("<~@7 A@4 ~@16 B ~@20 B ~@5 C D@15 ~@16 B ~@5 C A@10>".pickRestart({
  A: "x!2", B: "~@12 x!2 ~@2", C: "~@14 x!2", D: "~@4 x ~@2 x ~@6 x!2",
})).gain(0.64)

// drums · ride bell
const ride_bell = s("rd").struct("<~@11 A@3 ~ A@3 ~ A@3 ~@10 A@3 ~ A@3 ~ A@3 ~@11 B ~@25 C ~@11 B ~@10>".pickRestart({
  A: "x", B: "~@3 x", C: "~ x",
})).gain(0.64)

// drums · splash
const splash = s("cr").struct(`<
  ~@11 A@3 ~ A@3 ~ A@2 B C@5 D C@4 A@3 ~ A@3 ~ A@2 B C@5 D C@5 E ~@16 C@9 F C@5 D C@5 E ~@10
>`.pickRestart({
  A: "x", B: "x!2", C: "x!8", D: "x!6 ~@2", E: "x!7 ~", F: "x!5 ~@3",
})).gain(0.48)

stack(
  acoustic_guitar_steel, bass, overdriven_guitar, bass_2, electric_guitar_muted, snare, snare_soft, low_tom,
  low_tom_soft, mid_tom, ride_bell, splash
)

More by Third Eye Blind