Strudelify
KeyA minorTempo214 bpm
0:00/0:00
// One Way Out — The Allman Brothers Band
// 214 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 6 "Slide Guitar" overdriven guitar (copy of ch 3 "Organ" rock organ)
// note: Full arrangement: all 228 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(214/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "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 · electric guitar muted · "Muted Electric Guitar"
const electric_guitar_muted = note(`<
  ~ A B A C A B A D A B A C A B A E F G A H F G I J K L M N O P Q R S T U V W X Y Z F G A H F G I J K L M N O P Q R S T
  ~@2 W X Y Z F G A H F G I J K L M N O P Q R S T ~@2 W X Y Z F G A H F G I J K L M N O P Q R S T ~@2 W X Y Z F G A H F
  G I J K L M N O P Q R S T ~@2 W X Y Z ~@24 K L M N O P Q R S T ~@2 W X Y Z F G A H F G I J K L M N O P Q R S T ~@2 W X
  Y Z S T ~@2 W X Y Z S T ~@17
>`.pickRestart({
  A: "a2 ~ a3 ~ a3 g3 e3 a3", B: "~ g3 ~ e3 g3!2 a3!2", C: "~ g3 ~ e3 g3!2 e3!2", D: "~ g3 ~ e3 g3 c3@2 ~",
  E: "~ a3 g3 e3 g3!2 e3!2", F: "a2@2 ~@2 a3@2 ~@2 a3@2 g3@2 e3 ~ a3@2", G: "~@2 g3@2 ~@2 e3 ~ g3 ~ g3 ~ a3 ~ a3@2",
  H: "~@2 g3@2 ~@2 e3 ~@2 g3!2 ~ e3 ~ e3 ~", I: "a2@2 ~@2 a3@2 ~@2 a3 ~ g3 ~ e3@2 a3@2",
  J: "~@2 g3@2 ~@2 e3 ~ g3 ~ g3@2 e3 ~ e3 ~", K: "d3@3 ~@2 d4 ~@2 d4 ~ c4 ~ a3 ~ d4 ~",
  L: "~@2 c4@2 ~@2 a3 ~ c4 ~ c4@2 d4 ~ d4 ~", M: "d3@2 ~@2 d4@2 ~@2 d4@2 c4 ~ a3 ~ d4@2",
  N: "~@2 c4@2 ~@2 a3@2 c4 ~ c4@2 a3 ~ a3 ~", O: "a2@2 ~@2 a3 ~@3 a3@2 g3 ~ e3 ~ a3@2",
  P: "~@2 g3@2 ~@3 e3 ~ g3!2 ~ a3 ~ a3@2", Q: "a2@2 ~@2 a3 ~@3 a3@2 g3@2 e3 ~ a3@2",
  R: "~@2 g3@2 ~@2 e3@2 g3 ~ g3@2 e3 ~ e3 ~", S: "e3@2 ~@2 e4@2 ~@2 e4 ~ d4 ~ b3 ~ e4@2",
  T: "~@2 d4 ~@3 b3 ~ d4 ~ d4@2 e4 ~ e4@2", U: "d3@2 ~@2 d4 ~@3 d4@2 c4@2 a3 ~ d4@2",
  V: "~@2 c4@2 ~@2 a3 ~ c4@4 a3 ~ a3 ~", W: "~ a2@2 ~ a3 ~@3 a3@2 g3 ~ e3 ~ a3 ~",
  X: "~@2 g3 ~@3 e3 ~ g3 ~ g3 ~ a3 ~ a3@2", Y: "a2@2 ~@2 a3@2 ~@2 a3@2 g3 ~ e3 ~ a3@2",
  Z: "~@2 g3 ~@3 e3 ~@2 g3 g3@2 e3 ~ e3 ~",
})).s("gm_electric_guitar_muted").gain(0.46)

// other · lead 5 charang · "Lead"
const lead_5_charang = note(`<
  ~@88 A B@2 C@2 D@2 E F G H I J K L M@2 N O P Q R S T U V W X Y Z@2 AA@2 AB AC AD AE AF@4 AG@2 AH AI AJ@2 AK@2 AL ~@6
  AM AN AO AP AQ AR ~@3 AS@2 AT AU ~@61 AV@3 AW@6 ~
>`.pickRestart({
  A: "~@4 a4 ~ a4 ~", B: "[c5@18 d5@8 c5@2 a4@3 ~]/2", C: "[a4@8 c5@13 ~@3 a4@3 ~ c5@2 ~@2]/2",
  D: "[d5@24 c5@2 ~ a4@5]/2", E: "a4@4 g4 e4 a4 e4", F: "g4@2 a4@2 g4@2 e4@2 a4@2 e4@2 g4@2 e4 ~",
  G: "f#4@4 a4@3 ~ a4@4 b4@2 f#4@2", H: "a4@4 b4@2 f#4@2 a4@2 b4@3 ~@3", I: "f#4@2 a4 f#4 a4@2 b4 a4",
  J: "~@4 d5 b4@3, b4@5 ~@3", K: "a4@7 ~ a4@6 f#4@2", L: "a4 b4@3 a4 f#4@3",
  M: "[a4@8 a4@3 ~ a4@2 e5@5 ~ e5@3 ~ e5@2 ~@2 e5@3 ~]/2", N: "e5@7 ~ e5@7 ~", O: "d5@7 ~ c5@8",
  P: "a4@4 ~ c5@2 ~ c5@4 d5@2 c5@2, ~@7 a4@2 ~@7", Q: "d5@4 e5@3 ~ c5@2 d5@2 c5@4",
  R: "a4@8 g4@2 ~@2 a4@3 e4, ~@11 e4@2 ~@3", S: "g4@2 e4@2 d4@3 ~ c4@4 a3@3 ~", T: "a3@2 d4 ~ d4@2 c4 d4",
  U: "~@4 c4@9 d4@3", V: "~ e4@2 ~@2 g4@2 ~@2 d4@3 e4@2 ~@2", W: "g4@2 ~@2 d4@3 ~ e4@2 ~@2 g4@3 ~",
  X: "d4@3 ~ e4@2 ~@2 g4@2 ~@2 d4@3 ~", Y: "e4@2 g4@3 d4@2 ~ e4@2 ~@2 g4@2 ~@2",
  Z: "[a4@5 ~ a4@5 ~ c5@6 a4@6 g4@2 ~@2 e4@3 ~]/2", AA: "[c4@13 b3@7 a3@3 ~ a3@4 g3@3 ~]/2",
  AB: "f3 f#3 a3 ~ a3@2 b3 f#3", AC: "a3@2 b3 f#3 a3 b3 ~@2", AD: "~ f#3@3 a3@2 f#3@2 a3@4 b3@2 a3@2",
  AE: "b3@4 d4 b3@3", AF: "[a3@8 ~@12 g4@6 ~@4 g4@9 ~ g4@4 ~@2 g4@6 b4@4 ~ c5@3 d5@3 ~, ~@8 d4@34 ~@2 d4@9 ~@11]/4",
  AG: "[d5@7 ~ d5@3 ~ c5@2 d5@17 ~]/2", AH: "d5@4 ~ d5@2 ~ d5@2 ~@2 d5@2 ~@2", AI: "d5@2 c5 ~ d5 c5 a4 ~",
  AJ: "[a4@7 ~ a4@3 ~ a4@2 c5@6 d5@2 ~@2 d5@2 c5@2 a4@2 ~@2]/2",
  AK: "[a4@8 g4@2 e4@2 a4@3 ~ g4@2 e4@2 d4@2 ~@2 c4@3 ~@2 a3@2 ~, ~@15 e4@2 ~@15]/2", AL: "a3@11 ~@5", AM: "~@6 e4 ~",
  AN: "g4@15 ~", AO: "g4@5 ~ e4@2 ~@2 d4@5 c4", AP: "d4 ~ d4@6", AQ: "~ c4 a3@5 ~ c4@8", AR: "a3@3 ~",
  AS: "[~@4 d4@3 c4 d4@2 c4 ~@3 d4@5 c4 d4@4 c4@2 d4@4 e4@2]/2", AT: "a4@2 g4@2 e4@2 d4@5 ~ a3 ~@3, ~@11 c4@2 ~@3",
  AU: "c4@8 a3@7 ~", AV: "[~@15 e4@5 g4@5 a4@4 e4@5 c5@8 ~ c5@4 ~]/3",
  AW: "[~ a4@3 ~ e4@2 ~@3 d4@2 ~@3 c#4@5 a3@2 ~@3 e3@2 ~@3 d3@10 ~ c#3@49 ~@6, ~@25 f3 ~@70]/6",
})).s("gm_lead_5_charang").gain(0.72)

// bass · electric bass finger · "Bass Guitar"
const bass = note(`<
  ~@17 A B A B A C D@2 E F G H A B I@2 J K G L M C M C A B A B A C D@2 E F G H A B I@2 J K N ~ M C M C A B A B A C D@2 E
  F G H A B I@2 J K N ~ M C M C A B A B A C D@2 E F G H A B I@2 J K N ~ M C M C A B A B A C D@2 E F G H A B I@2 J K N ~
  M C M C O ~@23 E F G H A B I@2 J K N ~ M C M C A B A B A C D@2 E F G H A B I@2 J K N ~ M C M C J K N ~ M C M C J K P@5
  ~@2 Q R@2 S@6 ~
>`.pickRestart({
  A: "a1 ~ a1 ~ e1 ~ e1 a1", B: "~ e1 g1 g#1, ~@3 a1@2 ~@11", C: "~ a1 e1@2 g1@2 g#1@2",
  D: "[a1@2 ~@2 a1@2 ~@2 e1@2 ~@2 e1@2 a1@5 ~ a1@4 ~ c2@3 c#2@4]/2", E: "d2@2 ~@2 d2@2 ~@2 a1@3 ~ a1@2 d2@2",
  F: "~ d2 a1@2 c2@2 c#2@2", G: "d2@2 ~@2 d2@3 ~ a1@2 ~@2 a1@2 d2@2", H: "~ d2 e1@2 g1@2 g#1@2",
  I: "[~ a1@2 ~ a1@2 ~@2 e1@2 ~@2 e1@2 a1@5 ~ a1@4 c2@4 d2@4]/2", J: "e2@2 ~@2 e2@3 ~ b1@2 ~@2 b1@2 e2@2",
  K: "~ e2 b1@2 d2@2 e2@2", L: "~@2 d2@2 ~ f1 ~@2 g1@4 g#1@4, ~ e1 ~@2", M: "a1@2 ~@2 a1@2 ~@2 e1@3 ~ e1@2 a1@2",
  N: "d2 ~@7", O: "a1@4 ~ f1 e1 d1 ~@8, ~@2 g1 ~@5", P: "[~ d2@66 ~@13]/5", Q: "~@5 a1@10 ~",
  R: "[a1@4 c#2@7 ~@2 c#2@5 ~ d2@8 ~ d2@4]/2", S: "[~ d#2@8 ~ d#2@4 ~ e2@3 ~@12 a#2@10 a2@51 ~@5]/6",
})).s("gm_electric_bass_finger").gain(0.52)

// drums · kick
const kick = s("bd").struct(`<
  ~@9 A ~@3 A ~@3 B@42 ~@2 B@22 ~@2 B@22 ~@2 B@22 ~@2 B@4 C@22 ~@2 B@10 ~@2 B@22 ~@2 B@6 ~@2 B@6 ~@3 D ~@3 E ~ F D G ~@4
  A
>`.pickRestart({
  A: "x", B: "x!2", C: "x ~@3 x!2 ~@2", D: "~@15 x", E: "~@5 x ~@9 x", F: "~ x ~@4 x ~", G: "~@13 x ~@2",
})).gain(0.43)

// drums · snare
const snare = s("sd").struct(`<
  ~@8 A ~@3 A ~@3 A B@14 C B@3 D B@3 C B@18 E F A B@10 G H B@6 I H B E F A B@11 J B@9 E F A B@11 J B@9 E F A B@26 K@2
  B@9 E F L B@11 J B@9 E F A B@5 E F A B@5 E F ~@2 A ~@2 M ~ N ~ O ~ P ~@2 Q ~
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@7 x ~@2 x", D: "~@2 x ~@3 x!2", E: "~@2 x ~@2 x!2 ~", F: "x",
  G: "~ x!2 ~@3 x!2", H: "~ x!3 ~ x!2 ~", I: "~ x!2 ~ x ~ x!2", J: "~@4 x ~@6 x!2 ~@3", K: "x!4",
  L: "~ x ~ x!2 ~@2 x!2 ~ x ~ x ~ x ~", M: "~@5 x ~@10", N: "~@4 x ~@8 x ~@2", O: "~ x ~@8 x ~@5", P: "~@9 x ~@6",
  Q: "~@7 x",
})).gain(0.5)

// drums · low tom
const low_tom = s("lt").struct("<~@72 A ~@7 B ~@133 C ~@2 D ~@4 E ~@3 F ~>".pickRestart({
  A: "~@6 x!2", B: "~@7 x", C: "~@13 x ~@2", D: "~@10 x ~@4 x", E: "~@3 x ~@4 x ~@7", F: "~@15 x",
})).gain(0.57)

// drums · pedal hat
const pedal_hat = s("hh").struct("<[x!4]!17 ~@211>").gain(0.5)

// drums · mid tom
const mid_tom = s("mt").struct("<~@58 A ~@23 A ~@23 A ~@23 A ~@39 A ~@23 A ~@7 A ~@7 A ~@17>".pickRestart({
  A: "~@3 x",
})).gain(0.57)

// drums · open hat
const open_hat = s("oh").struct("<~@8 [~@3 x] ~@3 [~@3 x] ~@215>").gain(0.64)

// drums · crash
const crash = s("cr").struct(`<
  ~@17 A ~@13 B ~@3 C ~@3 C ~@9 A ~@9 A ~ A ~@11 A ~@7 A ~ A ~ A ~@11 A ~@9 A ~ A ~@11 A ~@9 A ~ A ~@27 A ~@9 A ~ A ~@11
  A ~@9 A ~ A ~@5 A ~ A ~@5 A ~@6 D ~@3 E F ~@3 A
>`.pickRestart({
  A: "x", B: "~@15 x", C: "~@7 x", D: "~@5 x ~@10", E: "~@13 x ~@2", F: "~@9 x ~@6",
})).gain(0.64)

// drums · ride
const ride = s("rd").struct(`<
  ~@9 A B C D C D C D@43 ~@2 D@22 ~@2 D@22 ~@2 D@22 ~@2 D@38 ~@2 D@22 ~@2 D@6 ~@2 D@6 ~@7 E F G H ~@6
>`.pickRestart({
  A: "~@4 x ~@3 x ~@3 x ~@2 x", B: "~ x!3", C: "x ~@3 x ~@3 x ~@3 x ~@2 x", D: "x!4", E: "~@5 x ~@4 x ~@4 x",
  F: "~@4 x ~@4 x ~@3 x ~@2", G: "~@2 x ~@4 x ~@4 x ~@3", H: "~ x ~@3 x ~@4 x ~@4 x",
})).gain(0.5)

stack(electric_guitar_muted, lead_5_charang, bass, kick, snare, low_tom, pedal_hat, mid_tom, open_hat, crash, ride)

More by The Allman Brothers Band