Strudelify

I'll Try

Alan Jackson

KeyD♭ majorTempo84 bpm
0:00/0:00
// I'll Try — Alan Jackson
// 84 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 78 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(84/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 · string ensemble 2 · "Ill tray"
const string_ensemble_2 = note(`<
  ~ A B@2 C D E D F D G D H I J I K L M@2 N O G L P A B@2 C D E D F D G D H I J I K L M@2 N O G L P L Q R@2 S T U@2 D C
  D C V Q W@2 V Q D Q D Q L Q X@5
>`.pickRestart({
  A: "[db4,gb4,bb4] [db4,f4,ab4]", B: "[[b3,eb4,gb4] [f4,ab4] [gb4,bb4] [db4,f4,ab4], ~ db4@2 ~]/2",
  C: "[b3,eb4,gb4] [ab3,db4,f4]", D: "[bb3,db4,gb4] [db4,f4,ab4]", E: "[b3,eb4,gb4] [f4,ab4], ~@4 db4@3 ~",
  F: "[b3,eb4]@7 ~ [ab3,db4]@4 [ab3,db4,f4]@4, gb4@3 ~", G: "[b3,eb4,gb4] [db4,f4,ab4]",
  H: "[b3,eb4,gb4]@8 [db4,gb4]@4 [db4,f4]@3 ~, ~ ab4", I: "[b3,eb4,gb4]", J: "ab4@8 ab3@7 ~, [db4,f4]",
  K: "[db4,f4]@2 gb4 f4, ab4, ~@8 db4@7 ~", L: "[bb3,db4,gb4] [ab3,db4,f4]",
  M: "[[b3,eb4,gb4]@8 [db4,f4,ab4]@7 ~ [bb3,db4]@8 [db4,f4,ab4]@8, ~@15 gb4@8 ~@9]/2", // B Db Bbm Db
  N: "[b3,gb4] [ab3,db4,f4], eb4@7 ~@9", O: "[bb3,db4,gb4] [f4,ab4], ~@4 db4@3 ~", P: "[b3,eb4,gb4]@8 [ab3,db4,f4]@7 ~",
  Q: "[b3,eb4]@7 ~ [ab3,db4,f4]@8, gb4 ~", // B Db
  R: "[[bb3,gb4]@8 [ab3,f4]@7 ~ [b3,eb4]@7 ~ f4@4 gb4@2 f4@2, db4@15 gb4@8 ~ [ab3,db4]@7 ~]/2", S: "[gb3,b3,eb4]",
  T: "ab3@7 ~ ab4@4 [ab3,db4]@4, f4, db4@11 ~@5", U: "[[eb4,gb4]@15 ~ [ab3,f4]@16, b3@14 ~ db4@16 ~]/2",
  V: "[bb3,gb4] [f4,ab4], db4@15 ~", // Ebm Fm
  W: "[[bb3,db4,gb4]@8 [db4,f4,ab4]@7 ~ [b3,eb4]@7 ~ [ab3,db4,f4]@8, ~@15 gb4@9 ~@8]/2", // Gb Db B Db
  X: "[[bb3,db4,gb4]@8 [ab3,db4]@8 ~@2 b3@9 ~ [ab3,db4]@10 ~@2 [bb3,db4,gb4]@29 ~@11, ~@8 f4@9 gb4@11 f4@12 ~@40, ~@17 eb4@8 ~@55]/5", // Gb Db5 Gb
})).s("gm_string_ensemble_2").gain(0.26)

// chords · piano
const piano = note(`<
  ~ A B C D E F G H I J K L M N O P Q R S T U V W X A B C D E F G H I J K L M N O P Q R S T U V W X A B C D Y Z AA AB AC
  AD AE AF AG AH AI AJ A B C D A B C D AK@5
>`.pickRestart({
  A: "db3@2 gb3@2 ab3@2 [db3,bb3]@2 db3@4 db3@3 ~, gb2 ~ [db2,ab3]@2, ~@2 db3 ~ db3 ~@11", // Gb Db5
  B: "eb3@2 gb3@2 b3@2 [eb3,bb3] ~ bb3 [bb3,b3] ~@4 db2@2, b1@4 eb3 ~@5 ab3@6", // Eb5 Bmaj7
  C: "gb2@2 gb3@2 ab3@2 bb3@2 [db2,ab3]@7 ~, ~@2 db3 ~ db3 ~ db3 ~ db3@3 ~@5", // Db5
  D: "b3@2 bb3@2 ab3@2 gb3@2 ~@4 db3@3 ~, b1 ~ [db2,ab3]@2, eb3 ~@3 bb3 ~@11", // Db5
  E: "db3@2 gb3@2 bb3@3 ~ db3@2 f3@2 ab3@2 db4@2, gb2 ~@3", F: "[b2,gb3]@2 b3 [b2,gb3] [db3,ab3]@2 db4@2",
  G: "gb2@3 ~ [gb3,db4] ab3 bb3 db4 [bb3,db4]@2 ab3@5 ~, ~@8 [ab3,b3] ~@7", // Gb5 Bbm Abm
  H: "ab3@2 gb3@3 ~ b2 ~ [eb3,gb3]@2 [db3,f3]@6, gb3 ~@7 f3 ~@7", I: "[gb2,gb3] db3 ~ db4",
  J: "b3@3 ~ gb3@2 eb3@2 db3@3 ~ [db3,ab3]@4, ~@4 b3@4 db2@7 ~", // Db5
  K: "gb2@4 gb3 ab3 bb3 db4 [bb3,db4]@2 ab3@5 ~, ~@8 ab3 ~@7", // Bbm
  L: "ab3 gb3@2 db3 [eb3,gb3] [db2,f3] ab3@2, gb3 ~@9 db3@5 ~", M: "gb3@4 ~@2 b2 ~@5 b3@4, ~@4 b3@5 ~ gb4@5 ~",
  N: "db3@4 ~@2 db3 ~ ab4@3 ~ f4@2 db4@2, db4@3 ~@5, ~@2 ab3@5 ~", O: "eb4@8 ~@2 [b3,gb4] ~ eb4@4, b2@4 ~@4 b2@5 ~@3",
  P: "db3@4 f4@2 ~@2 f3@2 b3@2 [f3,db4]@3 ~, db4 ~", Q: "gb3@2 db4@2 gb4@3 ~ f3@6 f4 eb4, ~@8 ab4@3 ~@5",
  R: "b2@4 b3 ~ b3@2 ~@4 b3@3 ~, gb4@6 b2 ~ f4@7 ~", S: "gb2@2 bb3@2 db4@2 gb4@2 [f3,f4]@4 ab4@3 ~",
  T: "gb4@5 ~ b3 eb4 ~@4 db5@2 ~@2, b2@3 ~@5 db4@8, ~@12 f3 ~@3",
  U: "gb3@2 bb3@2 gb4@2 db4 ~@3 ab4 ~ f4@4, ~@8 f3@5 ~@3", V: "eb4@3 b3 ~ f3 f4 db4",
  W: "gb3@2 bb3 ~ gb4@2 db4@2 [db3,ab4]@3 ~ [f3,f4]@2 ~@2", X: "gb4 eb4 b3 eb4 [db3,db4]@2 [b3,f4] ~, b2@4 ~@8 f3 ~@3",
  Y: "b3 db4 eb4@2 b3 ~ b3@2, b2@10 gb4@5 ~", Z: "db3@4 ~@2 f3 ~ ab4@3 ~ f4@4, db4@3 ~@5, ~@4 ab3@11 ~",
  AA: "eb4@6 b3 db4 eb4@6 ~@2, b2 ~@7", AB: "db4 eb4 f4 gb4 ab4 bb4 b4 eb5",
  AC: "[gb3,db5]@2 ~ bb4 ~@2 db4 ~, ~@8 ab4@7 ~", AD: "b4@6 eb4@2 f4@3 ~ [f3,db4] f4 ab4@2",
  AE: "bb4@5 ~@3 db4 ~ ab4@2 f4@2 ~@2",
  AF: "b2 ~ eb4@2 db4@2 b3 ~ eb4@2 [db4,f4]@3 ~ db4@2, ~@2 gb4@4 ~@2 gb4 ~@7, ~@2 db4 ~@13", // Db
  AG: "gb3@2 ~@4 db4@2 f4@2 ~@2 ab4@3 ~", AH: "~@2 gb4 ~ eb4@2 b3 ~@5 db3@4, ~@4 db4@3 ~",
  AI: "~ db4 gb4 ~ db4@2 bb4 ~ ab4@4 db4@3 ~, gb3 ~@7", AJ: "~@2 eb4@2 db4@2 b3@2 db4@4 [db3,db4]@3 ~",
  AK: "[db3@2 gb3@2 bb3@4 db3@3 f3@2 ab3@2 db4@2 ~ [b2,gb3]@5 b3@2 [b2,gb3]@2 ~ [db3,ab3]@6 db4@6 [db4,bb4]@29 ~@11, gb2 ~@19]/5", // B5 Db5 Gb
})).s("gm_piano").gain(0.51)

// chords · piano · soft notes
const piano_soft = note(`<
  ~ A B ~@4 C ~ D E ~@2 F G H I ~ J ~@3 K ~@2 A B ~@4 C ~ D E ~@2 F G H I ~ J ~@3 K ~@2 A B ~@2 L ~@3 M N O ~ P Q R S A
  B ~@2 A B ~@7
>`.pickRestart({
  A: "~@6 ab2 ~", B: "~@2 eb3 ~@9 db2 ~@3", C: "~@2 db3 ~@13", D: "~@8 db2@2 ab2 ~@5", E: "b1@2 eb3 ~@13",
  F: "~@8 [b2,eb3]@3 ~@5", G: "~@8 db3 ~ db3@2 ~@4", H: "~@6 b2 ~ gb3@4 ~@4", I: "~@6 f3 ~@9", J: "~@6 gb4 ~ db3@3 ~@5",
  K: "b2@4 ~@4 db4@2 b3 ~@5", L: "~@6 gb3 ~ gb3 ~@7", M: "~@4 db4 ~@3 db3@2 ~@2 f3 ~@3", N: "b2 ~@3 eb4 ~@11",
  O: "gb3@4 db4@2 ~@3 db3 ~@5 db4", P: "~@4 bb3 ~@4 db3@2 f3 ~@4", Q: "b2 ~@7 db3@3 ~@5", R: "~@4 db3 ~@3",
  S: "~ b3 ~@6 db3@3 ~ b3 ~@3, b2 ~@7",
})).s("gm_piano").gain(0.26)

// other · pad metallic
const pad_metallic = note(`<
  ~@2 A B C ~@8 D E F G ~@3 H B I J@2 ~ A B C ~@8 D E F G ~@3 H B I J@2 ~@3 K L K F ~@4 M ~@3 N ~ O P ~ Q R Q S@2 T@4
>`.pickRestart({
  A: "~@7 f4", B: "gb4 f4", C: "eb4@8 f4@5 ~@3", D: "gb4", E: "f4@2 f4 db4", F: "eb4", G: "f4@7 ~", H: "~@5 db4 f4@2",
  I: "eb4 ~", J: "[~@14 gb5@10 f5@5 ~@3]/2", K: "~@2 f4 db4", L: "eb4@7 ~", M: "~@4 gb5@4 f5@7 ~", N: "[gb4,b4] ~",
  O: "~@3 f4", P: "gb4 ~", Q: "db5", R: "b4@8 db5@7 ~", S: "[b4 ~ bb4 ab4, ~ db5@2 ~]/2",
  T: "[~@2 gb4@10 ab4@12 gb4@29 ~@11]/4",
})).s("gm_pad_metallic").gain(0.41)

// other · violin
const violin = note("<~@29 A@2 B C D ~@44>".pickRestart({
  A: "[~@3 db5@2 b4 ab4 f4]/2", B: "gb4@6 ab4 bb4 ab4@6 gb4 f4", C: "gb4@6 f4 eb4 db4@4 b3 bb3 ab3@2", D: "gb3@7 ~@9",
})).s("gm_violin").gain(0.36)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A B C D E F G H I J K D L M N O K P K Q R H K S A B C D E F G H I J K D L M N O K P K Q R H K S A B C D L M N O K P
  K Q R H K S A B C D E F G H T U V@3
>`.pickRestart({
  A: "[gb3,bb3,db4]@4 [db4,gb4]@2 [gb3,bb3,db4]@2 [f3,ab3,db4]@3 ~ [db4,f4]@4", // Gb Gb5 Gb Db
  B: "[eb3,gb3,b3]@2 [b3,eb4] [eb3,gb3,b3] [f3,ab3,db4]@2 [db4,f4]@2", // B Db
  C: "[gb3,bb3,db4]@4 [db4,gb4]@2 [gb3,bb3,db4] ~ [f3,ab3,db4]@3 ~ [db4,f4]@4", // Gb Gb5 Gb Db
  D: "[eb3,gb3,b3]@3 ~ [b3,eb4]@2 [eb3,gb3,b3] ~ [f3,ab3,db4]@3 ~ [f3,ab3,db4]@4", // B Db
  E: "[gb3,bb3,db4]@3 ~ [db4,gb4]@2 [gb3,bb3,db4]@2 [f3,ab3,db4]@4 [db4,f4]@4", // Gb Gb5 Gb Db
  F: "[eb3,gb3,b3]@4 [b3,eb4]@2 [eb3,gb3,b3] ~ [f3,ab3,db4]@3 ~ [db4,f4]@4", // B Db
  G: "[gb3,bb3,db4]@3 ~ [db4,gb4]@2 [gb3,bb3,db4] ~ [f3,ab3,db4]@4 [db4,f4]@4", // Gb Gb5 Gb Db
  H: "[eb3,gb3,b3]@4 [b3,eb4]@2 [eb3,gb3,b3] ~ [f3,ab3,db4]@4 [db4,f4]@4", // B Db
  I: "[gb3,bb3,db4]@2 [db4,gb4] [gb3,bb3,db4] [f3,ab3,db4]@2 [db4,f4]@2", // Gb Gb5 Gb Db
  J: "[eb3,gb3,b3]@3 ~ [b3,eb4]@2 [eb3,gb3,b3] ~ [f3,ab3,db4]@4 [db4,f4]@4", // B Db
  K: "[gb3,bb3,db4]@4 [db4,gb4]@2 [gb3,bb3,db4] ~ [f3,ab3,db4]@4 [db4,f4]@4", // Gb Gb5 Gb Db
  L: "[eb3,gb3,b3]@3 ~ [b3,eb4]@2 [eb3,gb3,b3]@2 [eb3,gb3,b3]@4 [b3,eb4]@4", // B
  M: "[f3,ab3,db4]@3 ~ [db4,f4]@2 [f3,ab3,db4]@2 [f3,ab3,db4]@3 ~ [db4,f4]@4", // Db
  N: "[eb3,gb3,b3]@4 [b3,eb4]@2 [eb3,gb3,b3]@2 [eb3,gb3,b3]@3 ~ [b3,eb4]@4", // B
  O: "[f3,ab3,db4]@3 ~ [db4,f4]@2 [f3,ab3,db4] ~ [f3,ab3,db4]@3 ~ [f3,ab3,db4]@3 ~", // Db
  P: "[eb3,gb3,b3]@4 [b3,eb4]@2 [eb3,gb3,b3]@2 [f3,ab3,db4]@3 ~ [db4,f4]@4", // B Db
  Q: "[eb3,gb3,b3]@4 [b3,eb4]@2 [eb3,gb3,b3] ~ [f3,ab3,db4]@4 [db4,f4]@3 ~", // B Db
  R: "[gb3,bb3,db4]@4 [db4,gb4]@2 [gb3,bb3,db4]@2 [f3,ab3,db4]@4 [db4,f4]@3 ~", // Gb Gb5 Gb Db
  S: "[eb3,gb3,b3]@3 ~ [b3,eb4]@2 [eb3,gb3,b3] ~ [f3,ab3,db4]@3 ~ [f3,ab3,db4]@3 ~", // B Db
  T: "[gb3,bb3,db4]@4 [db4,gb4]@2 [gb3,bb3,db4]@2 [f3,ab3,db4]@4 ~ [db4,f4]@3", // Gb Gb5 Gb Db
  U: "~@2 [eb3,gb3,b3]@4 ~ [b3,eb4]@2 [eb3,gb3,b3]@2 ~ [f3,ab3,db4]@4", V: "[~ [db4,f4]@3 [gb3,db4,gb4]@14 ~@6]/3",
})).s("gm_acoustic_guitar_steel").gain(0.41)

// bass · electric bass finger
const bass = note(`<
  ~ A B A C D E F G D H I J K L M N O P Q R S T U V A B A C D E F G D H I J K L M N O P Q R S T U V W X W Y K Z AA AB Q
  R AC R Q R AC AD D AD D R D AE AF X I AG AH@3
>`.pickRestart({
  A: "gb1@3 gb1 db2@4", B: "b1@5 ~ b1@2 db2@6 db1@2", C: "b1@3 b1 db2@2 ab1 db1", D: "gb1@5 ~ gb1@2 db2@8",
  E: "b1@6 b1@2 db2@7 ~", F: "gb1@6 gb1@2 db2@7 ~", G: "b1@6 b1 ~ db2@4 db1@2 ab1@2", H: "b1@3 b1 db2@4",
  I: "gb1@3 gb1 db1@4", J: "b0@5 ~ b0 ~ db1@2 ab1@2 db2@2 ab1@2", K: "b1@5 ~ b1 ~ b1@7 ~",
  L: "db2@6 db2 ~ db2@4 ab1@2 bb1@2", M: "b1@5 ~ b1 ~ b1@8", N: "db2@3 db2 db1@2 db2 db1",
  O: "gb1@2 bb1 b1 db2@2 ab1@2", P: "b1@5 ~ eb2@2 db2@4 db1@4", Q: "gb1@2 bb1 b1 db2@4",
  R: "b1@5 ~ b1@2 db2@4 db1@2 db2@2", S: "gb1@4 bb1@2 b1@2 db2@7 ~", T: "b1@3 b1 db2@2 db1 db2",
  U: "gb1@3 ~ bb1@2 eb2@2 db2@8", V: "b1@5 ~ b1@2 db1@4 db2@3 ~", W: "gb1@3 gb1 db2@2 db1@2",
  X: "b0@5 ~ b0@2 db1@4 db2@4", Y: "b1@5 ~ b1@2 db2@4 ab1@2 bb1@2", Z: "db2@5 ~ db2 ~ db2@4 ab1@2 db2@2",
  AA: "b1@5 ~ b1@2 b1@8", AB: "db2@3 db2 db1@2 ~ db1 eb1@4 f1@4", AC: "gb1@2 bb1 eb2 db2@4",
  AD: "b1@5 ~ b1@2 db2@4 db1@4", AE: "b1@3 b1 db2@2 db1@2", AF: "gb1@5 ~ gb1@2 db1@8", AG: "~@2 b0@7 b0@2 ~ db1@4",
  AH: "[~ db2@3 gb1@14 ~@6]/3",
})).s("gm_electric_bass_finger").gain(0.36)

// other · electric guitar clean · B Bb Ab Gb
const electric_guitar_clean = note("<[~@4 [b2,b3] [bb2,bb3] [ab2,ab3] [gb2,gb3]] [[gb2,gb3]@7 ~@9] ~@76>")
  .s("gm_electric_guitar_clean").gain(0.51)

// drums · kick
const kick = s("bd").struct("<~ A@19 B A@23 B A@7 B A@7 B A@13 C D ~@2>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@2 x!2 ~@2 x", C: "~@2 x ~@6 x ~@2 x ~@3", D: "~ x",
})).gain(0.46)

// drums · rim
const rim = s("rim").struct("<~ A@15 B ~@8 A@15 B ~@24 A@8 C D ~@3>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "~@4 x ~@8 x ~@2", D: "~@7 x ~@8",
})).gain(0.31)

// drums · snare
const snare = s("sd").struct("<~@17 A@3 B A@3 C ~@16 A@3 B A@3 C A@3 B A@3 C A@3 B A@3 C ~@13>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@2 x!2 ~", C: "~ x ~@2",
})).gain(0.46)

// drums · low tom
const low_tom = s("lt").struct("<~@16 A ~@7 B ~@15 A ~@7 B ~@7 B ~@7 B ~@10 C ~@2>".pickRestart({
  A: "~@7 x", B: "~@3 x", C: "~@5 x ~@10",
})).gain(0.41)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  A B@15 C B@3 C B@3 C B@15 C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@8 D E ~@3
>`.pickRestart({
  A: "x!2 ~@2", B: "~ x ~ x ~ x ~@2", C: "~ x ~ x ~@4", D: "~@2 x ~@3 x ~@4 x ~@4", E: "~@4 x ~@4 x ~@6",
})).gain(0.15)

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

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

// drums · high tom
const high_tom = s("ht").struct("<~@16 [~@5 x ~@2] ~@23 [~@5 x ~@2] ~@33 [~@15 x] ~@3>").gain(0.41)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@3 A ~@7 A ~@3 A ~@2 B A ~@3 A ~@3 A ~@7 A ~@3 A ~@2 B A ~@3 A ~@2 B A ~@3 A ~@2 B A ~@3 A ~@9 C ~@2
>`.pickRestart({
  A: "x", B: "~@7 x", C: "~ x",
})).gain(0.2)

stack(
  string_ensemble_2, piano, piano_soft, pad_metallic, violin, acoustic_guitar_steel, bass, electric_guitar_clean, kick,
  rim, snare, low_tom, hihat, hihat_soft, mid_tom, open_hat, high_tom, crash
)

More by Alan Jackson