Strudelify

I'll Get You

The Beatles

KeyD♭ majorTempo136 bpm
0:00/0:00
// I'll Get You — The Beatles
// 136 bpm, 4/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 67 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(136/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.

// other · rock organ · "Lead Org 3"
const rock_organ = note(`<
  A B C B D E F G H I J K L M N O P Q R B D E F G H I S K L M N O P Q R B T U V W X Y Z AA D E F G H I J K L M N O P Q R
  B C B C AB@2 ~@2
>`.pickRestart({
  A: "~@3 [f4,f5]", B: "[db4,db5]@3 [c4,c5]", C: "[ab3,ab4]@3 [f4,f5]", D: "[ab3,ab4]@6 ~ f4", E: "ab4@3 ab4 bb4@3 bb4",
  F: "bb4@3 f4 f4@3 ab4", G: "gb4@5 ab4 gb4 f4", H: "f4 eb4@5 db4 eb4", I: "f4@2 ab4@2 [c5,eb5]@3 [bb4,db5]",
  J: "ab4 f4@2 [f4,bb4] [f4,bb4]@4, db5@3 ~@5", K: "gb4 ab4@3 ~@2 gb4 ab4 gb4 ab4 gb4@4 f4@2", L: "eb4@6 db4 eb4",
  M: "[f4,ab4]@2 [f4,ab4]@4 [eb4,ab4] [f4,bb4]", N: "[gb4,b4]@4 ~@2 ab4 bb4", O: "bb4 ab4@2 db5 f5 eb5 db5 eb5",
  P: "bb4@6 db5 bb4", Q: "gb4@3 bb4 eb5 bb4 gb4 ab4", R: "f4 eb4@2 [f4,f5]",
  S: "ab4 f4@2 [f4,bb4] [f4,bb4]@3 ab4, db5@3 ~@5", T: "[ab3,ab4]@6 bb4 db5",
  U: "[db5,f5]@3 [bb4,eb5] [bb4,eb5]@3 [gb4,db5]", V: "[gb4,db5]@6 bb4 db5",
  W: "[db5,f5]@3 [ab4,eb5] [ab4,eb5]@3 [f4,db5]", X: "[f4,db5]@6 bb4 db5",
  Y: "[f4,db5,f5]@3 [eb4,bb4,eb5] [eb4,bb4,eb5]@3 [eb4,g4,db5]", // Db Eb5 Eb7
  Z: "[db4,g4,db5]@3 [bb3,g4,bb4] [bb3,g4,bb4]@3 [db4,g4,db5]", AA: "[eb4,ab4,eb5]@3 [c4,c5]",
  AB: "[[db4,db5]@21 ~@11]/2", // Db
})).s("gm_rock_organ").gain(0.54).pan(0.8)

// bass · fretless bass · "Fretless E. Bass"
const bass = note(`<
  A B C B C D E F G B H I C B C J K I L M C D E F G B H I C B C J K I L M C N O D P Q R L S D E F G B H I C B C J K I L
  T C T C U@4
>`.pickRestart({
  A: "~@5 ab2 gb2 f2", B: "db2@3 db2 db2@2 ~@2", C: "ab2@3 ab2 ab2@2 ~@2", D: "db2@3 db2 ab2@3 c2",
  E: "db2@3 db2 ab2@3 db2", F: "gb2@3 gb2 db2@3 gb2", G: "ab2@3 ab2 eb2@3 ab2", H: "bb1@3 bb1 bb1@2 ~@2",
  I: "gb2@3 gb2 db2 ~ gb2 ~", J: "db2@3 f2 ab2@2 f2 ab2", K: "bb1@3 bb1 f2 ~ ab2 ~", L: "ab2@3 ab2 ab2@3 ab2",
  M: "db2@3 db2 db2@2 f2@2", N: "gb2@3 gb2 db2@3 f2", O: "gb2@3 gb2 db2@3 ab2", P: "db2@3 db2 ab2@2 db2 ~",
  Q: "eb2@3 eb2 bb2@3 d2", R: "eb2@3 eb2 bb2@3 eb2", S: "ab2!2 gb2!2 f2!2 eb2!2", T: "db2@3 f2 ab2@2 f2@2",
  U: "[db2@57 ~@7]/4",
})).s("gm_fretless_bass").gain(0.54).pan(0.4)

// chords · harmonica
const harmonica = note(`<
  A@2 B C B D@2 E B C@2 E B F G F H I C@2 B D@2 E B C@2 E B F G F H I C@2 B ~@8 D@2 E B C@2 E B F G F H I C@2 B J K L@4
>`.pickRestart({
  A: "[~@15 ab4@17, ~@7 f4@9]/2", B: "ab3", C: "[f4,ab4]", D: "[f4,ab4]/2", E: "[gb4,bb4]", F: "ab4", G: "b4", H: "bb4",
  I: "gb4", J: "[ab4,b4]@3 [gb4,bb4] [f4,ab4]@4", K: "ab3@3 [ab4,b4]", L: "[[f4,ab4]@57 ~@7]/4",
})).s("gm_harmonica").gain(0.36).pan(0.1)

// chords · electric guitar muted · "Muted Gtr"
const electric_guitar_muted = note(`<
  ~@5 A@2 B C D E B C D F G H B I J K A@2 B C D E B C D F G H B I J L M@2 A@2 N@2 C O A@2 B C D E B C D F G H B I P K P
  K Q@4
>`.pickRestart({
  A: "[db3,ab3]!2 [db3,bb3] [db3,ab3]!3 [db3,bb3] [db3,ab3]", // Db5 Gb Db5 Gb Db5
  B: "[gb2,db3]!2 [gb2,eb3] [gb2,db3]!3 [gb2,eb3] [gb2,db3]", C: "[ab2,eb3]!2 [ab2,f3] [ab2,eb3]!3 [ab2,f3] [ab2,eb3]",
  D: "[db3,ab3]!8", E: "[bb2,f3,bb3]!7 ~",
  F: "[ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3] [a2,bb2,c3,e3,f3,gb3]", // Ab5 Fmaj7
  G: "[db3,g3,ab3] [db3,ab3] [db3,bb3] [db3,ab3]!3 [db3,bb3] [db3,ab3]", H: "[bb2,f3]!8",
  I: "[ab2,eb3]!2 [ab2,f3]!2 [ab2,eb3]@4", J: "[db3,ab3]!2 [db3,bb3] [db3,ab3] [db3,ab3]@2 [db3,ab3]@2",
  K: "[ab2,eb3]!2 [ab2,f3] [ab2,eb3] [ab2,eb3]@2 ~@2", L: "[ab2,eb3]!2 [ab2,f3] [ab2,eb3]!3 ~@2", M: "[gb2,db3]!8",
  N: "[eb3,bb3]!8", O: "[ab2,eb3]!8", P: "[db3,ab3]!2 [db3,bb3] [db3,ab3] [db3,ab3]@2 [db3,ab3]!2",
  Q: "[[ab2,db3]@57 ~@7]/4", // Db5
})).s("gm_electric_guitar_muted").gain(0.4).pan(1)

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

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

// drums · clap
const clap = s("cp").struct("<~ [~@2 x!2 ~@2 x ~]!4 ~@62>").gain(0.4)

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

// drums · open hat
const open_hat = s("oh").struct("<~@8 A ~@6 B ~ C ~@4 A ~@6 D A ~@3 A ~ A ~@12 A ~@2 A ~@3 A D ~@5 E ~@3>".pickRestart({
  A: "~@15 x", B: "~@5 x ~ x", C: "~@7 x", D: "~@11 x ~@4", E: "x",
})).gain(0.4)

// drums · ride bell
const ride_bell = s("rd").struct("<~@37 [x ~ x ~ x ~ x ~ x ~ x!3 ~ x ~]!7 [x ~ x ~ x ~ x ~ x ~ x!3 ~@3] ~@22>")
  .gain(0.35)

stack(rock_organ, bass, harmonica, electric_guitar_muted, kick, snare, clap, hihat, open_hat, ride_bell)

More by The Beatles