Strudelify

It Don't Matter to Me

Bread

KeyD majorTempo75 bpm
0:00/0:00
// It Don't Matter to Me — Bread
// 75 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 54 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(75/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.

// bass · electric bass finger · "tk1"
const bass = note(`<
  ~@4 A B C D E F G H A B I J K L M N O P ~ Q R S A B A B I T U V W X Y V W X Y V W X Y A B A B I J U Z@2
>`.pickRestart({
  A: "a1@4 a1@3 ~ a1 ~ a1@3 ~ a1 ~", B: "a1@4 a1@4 g2 ~ g2@3 ~ g2 ~", C: "f#2@7 ~", D: "f2@8 a1@4 a2@2 a1 ~",
  E: "d2@4 d2@3 a1 d2 ~ d2@4 d2 a1", F: "c#2@3 ~ c#2@3 ~ c#2 ~ c#2@3 ~ c#2@2", G: "c2@4 c2@3 g1 c2 ~ c2@4 c2@2",
  H: "a#1@4 a#1@3 f1 a#1 ~ a#1@3 f1 a#1 ~", I: "f#2@4 f#2@3 f#1 f#2 ~ f#2@3 ~ f#2 ~", J: "f2@6 f2 c2 f1@4 f2@2 ~@2",
  K: "c2@2 ~ c2 ~@2 f1@4 f2@3 e2 d2 ~", L: "c2@3 g1 c2 ~ f1@4 f2 f1 f2 e2 d2 ~", M: "c2@3 g1 c2 ~ f1@4 f2 ~ f2 e2 d2 ~",
  N: "c2@3 g1 c2 ~ f1@4 f2 f1 f2 e2 d2 c2", O: "d2@2 ~ d2 ~@2 g1@4 g2@3 f#2 e2 ~", P: "d2@3 a1 d2 ~ g1@4 ~@6",
  Q: "~@15 c#3, ~@7 d3", R: "c3@5 g2 c2 c3", S: "a#2@6 a#1!2 ~ a#1 a#2 a#1 ~ a#1 a#2 ~",
  T: "f2@6 f2 c2 f1@4 f2@2 ~@2, g8 ~@15", U: "a1@6 a2 e2 a1@7 ~", V: "d2@7 a1 d2 ~ d2@3 ~ d2@2", W: "c#2@8 c#2 ~ c#2@6",
  X: "c2@7 g1 c2 ~ c2@6", Y: "a#1@7 ~ a#1 ~ a#1@3 ~ a#1 ~", Z: "[d2@31 ~]/2",
})).s("gm_electric_bass_finger").gain(0.35)

// chords · epiano2 · "tk2"
const epiano2 = note(`<
  A B C D E F G H A B C D E F I J K L M N O P A B C D E F E F I J Q R S T U R S T U R S T U E F E F I J Q V@2
>`.pickRestart({
  A: "[d3,a3,d4,f#4]", B: "[c#3,a3,c#4,e4]", C: "[c3,g3,c4,e4]@7 ~", D: "[f3,a#3,d4,g4]@7 ~",
  E: "[d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]", F: "[d3,a3,d4,e4]@8 [a3,d4,g4]@7 ~", G: "[a3,d4,f#4]",
  H: "[f3,a3,c4,e4]@4 [a3,c#4,e4]@3 ~", I: "[a3,d4,f#4]@15 ~", J: "~@6 c4 ~, [f3,a3,e4]@7 ~, c4@3 ~, ~@5 g4@2 ~",
  K: "[c3,b3,e4,g4]@2 ~ [f3,a3,c4,e4]@3 [f3,a3,c4,e4,a4] ~, ~@3 g4@4 ~", // Cmaj7 Fmaj7
  L: "[c3,b3,e4,g4]@4 ~@7 g4 ~ c4@3, ~@3 [f3,a3]@5, ~@3 [c4,e4]@3 e4@2, ~@5 a4 ~@2", // Cmaj7 F C
  M: "[c3,e3,g3,b3,e4,g4]@4 ~@2 [f3,a3,c4,e4]@4 [f3,a3,c4,e4,a4]@5 ~, ~@6 g4@9 ~", // Cmaj7 Fmaj7
  N: "[c3,e3,g3,b3,e4,g4]@4 [b3,e4,g4] ~ [f3,a3,c4]@4 ~@2 e4 f3 ~@2, ~@5 e4 ~@2, ~@11 [f3,a3,c4]@2 ~@3", // Cmaj7 Em F
  O: "[d3,c#4,f#4,a4]@2 ~ [g3,b3,d4,f#4]@3 [g3,b3,d4,f#4,b4] ~, ~@3 a4@4 ~", // Dmaj7 Gmaj7
  P: "[d3,c#4,f#4,a4]@2 ~ [g3,b3]@5, ~@3 [d4,f#4]@3 ~@2", Q: "e3@4 e3@3 ~, [a2,c#4,e4,a4]@7 ~",
  R: "~@2 a3 [a3,d4,f#4], d2, [d4,f#4]@3 ~, a3 ~, ~@3 d3@5", S: "[a3,c#4,e4]@3 [a3,c#4,e4], c#3",
  T: "c3@3 c3, [g3,c4,e4]", U: "a#2@4 ~@9 a#2@2 ~, a#3@12 a#3@3 ~, d4@10 d4@5 ~, ~@4 g4@11 ~, ~@4 a#2@9 ~@3",
  V: "[[d2,a3,d4,f#4]@29 ~@3]/2", // D
})).s("gm_epiano2").gain(0.35)

// chords · electric guitar jazz · "tk3"
const electric_guitar_jazz = note(`<
  A B C D E F G H A B C D E F G I ~ J K J L M N O ~@2 E F E F G I P N Q R S ~ T U V ~ T U V E F E F G I P ~@2
>`.pickRestart({
  A: "d3", B: "a2@14 ~ a2", C: "c3@13 ~ c3 ~", D: "a#2@7 ~",
  E: "f#4@4 ~ a3@2 [a3,d4,f#4], [a3,d4]@9 d4@5 ~@2, ~@4 f#4@3 ~", F: "[a3,d4,e4]@4 [b3,d4,g4]@2 [d4,g4] ~", G: "~ d3@3",
  H: "~@4 c4@4 ~@4 a3@2 a4 ~, a4@8 ~@2 c#4@5 ~, ~@2 f4@6 e4@7 ~", I: "e4@7 ~ e4@4 a4@2 e4 ~",
  J: "~@12 [b3,b4] [c4,c5] [d4,d5] [e4,e5]", K: "[b3,b4]@9 ~@7", L: "[f#4,f#5]@3 ~",
  M: "~@6 [d4,b4] [c#4,a4] [b3,f#4] [a3,e4] [b3,f#4]@5 ~", N: "~@14 e4 d4", O: "c#4@2 a4@11 ~@3",
  P: "~@8 a3@7 ~, e4@15 ~, ~@4 a4@11 ~", Q: "c#4 a4@7", R: "g4@3 ~", S: "g4 g4@2 g4@2 f#4 ~ e4@2 d4@2 c4@2 a#3@3",
  T: "a3 b3 ~ c#4@4 ~ c#4 d4 ~ e4@2 f#4 e4@2", U: "d4@9 ~@7", V: "~ a4 ~ g4@2 a#4 ~ a#4@2 a4 g4@4 ~@2",
})).s("gm_electric_guitar_jazz").gain(0.35)

// chords · acoustic guitar steel · "tk4"
const acoustic_guitar_steel = note(`<
  A B C D E F A G A B C D E F A H I J K L M N A B C D E F E F A H O P Q R S T U V W T U V X E F E F A H O Y@2
>`.pickRestart({
  A: "[a3,d4,f#4]!4", B: "[a3,c#4,e4]!4", C: "[g3,c4,e4]@4 [g3,c4,e4]@4 [g3,c4,e4]@4 [g3,c4,e4]@3 ~",
  D: "[a#3,d4,g4]@4 [a#3,d4,g4]@4 [a#3,d4,g4]@4 [a#3,d4,g4]@3 ~, f3@15 ~", // Gm
  E: "[a3,d4,f#4]@4 [a3,d4,f#4]@3 [a3,d4,f#4] [a3,d4,f#4]@2 [a3,d4,f#4]@4 [a3,d4,f#4]@2", // D
  F: "[a3,d4,e4]@4 [a3,d4,e4]@3 [a3,d4] [a3,d4,g4]@2 [a3,d4,g4]@4 [a3,d4,g4] ~, ~@7 e4@8 ~", // Asus4 D5 Dsus4
  G: "[a3,c4,e4]@4 [a3,c4,e4]@4 [a3,c#4,e4]@4 [a3,c#4,e4]@3 ~, f3 ~", // Am A
  H: "[f3,a3,c4]@4 [f3,a3,c4]@4 [f3,a3,c4]@2 [f3,a3,c4,e4]@2 ~@2 [f3,a3,c4] ~, ~@2 e4@3 ~ [f3,a3,c4] ~, ~@13 e4@2 ~", // F Fmaj7 F
  I: "[c3,e3,g3,b3]@4 [c3,e3,g3,b3] ~ [f3,a3,c4,e4]@4 [f3,a3,c4,e4]@2 ~@2 e4@2, ~@6 e4 ~, ~@13 [f3,a3,c4]@3", // Cmaj7 Fmaj7 F
  J: "[c3,e3,g3,b3]@3 [c3,e3,g3] b3 ~ [f3,a3,c4,e4]@4 [f3,a3,c4,e4]@2 ~ e4@3, ~@3 [f3,a3,c4]", // Cmaj7 C Fmaj7 F
  K: "[c3,e3,g3,b3]@3 ~ b3 ~ [f3,a3,c4,e4]@4 [f3,a3,c4,e4]@2 ~ e4@3, ~@3 [c3,e3,g3]@2 ~@7 [f3,a3,c4]@4", // Cmaj7 Fmaj7 C F
  L: "[c3,e3,g3,b3]@3 [c3,e3,g3] b3 ~ [f3,a3,c4,e4]@4 [f3,a3,c4,e4] [f3,a3,c4,e4]@2 ~ e4 ~, ~@13 [f3,a3,c4]@2 ~", // Cmaj7 C Fmaj7 F
  M: "[d3,f#3,a3,c#4]@4 [d3,f#3,a3,c#4] ~ [g3,b3,d4,f#4]@4 [g3,b3,d4,f#4]@2 ~@2 f#4@2, ~@6 f#4 ~, ~@13 [g3,b3,d4]@3", // Dmaj7 Gmaj7 G
  N: "[d3,f#3,a3,c#4]@3 [d3,f#3,a3] c#4 ~ [g3,b3,d4,f#4]@9 ~", // Dmaj7 D Gmaj7
  O: "c#4@2 c#4 [a2,c#4,e4,a4] [a2,c#4,e4,a4]@3 ~, [a2,e4,a4]@3 ~@5", // A A5
  P: "[d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@2 [a3,d4,f#4]@2 ~ d3, ~@4 d3@3 ~, ~@3 [a3,d4,f#4]", Q: "[a3,c#4,e4]!4, c#3",
  R: "[g3,c4,e4]!4", S: "[a#3,d4]@4 [a#3,d4]@4 ~@4 [a#3,d4,g4]@2 a#2 ~, g4 ~@3 g4@8 ~@4, ~@2 [a#3,d4] ~, ~@5 a#2@2 ~",
  T: "a3 ~ [a3,d4,f#4] [a3,d4,f#4]@2 [d3,a3,d4,f#4] ~ [a3,d4,f#4], [d3,d4,f#4]@3 d3@7 ~@3 d3@3, ~ a3 ~@4 [a3,d4,f#4] ~", // D
  U: "a3 ~ [a3,c#4,e4] a3 ~ [a3,c#4,e4] [a3,c#4,e4]@2, [c#3,c#4,e4]@3 c#3@3 [c#3,c#4,e4]@3 c#3@7, ~ a3 ~@2 a3 ~@3", // A C#m
  V: "g3@2 ~ c3 [g3,c4,e4]@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2, [c4,e4] ~@3, ~@2 g3@2 ~@5 c3@7", // C
  W: "f#9 ~@3 a#3 ~@2 [d4,g4]@2 ~@2 [d4,g4] ~@2 [d4,g4] ~, ~@2 a#3@2 ~ a#3@4 [d4,g4]@2 ~ [d4,g4]@2 ~@2, ~@3 a#2@12 ~, ~@10 a#3@3 a#3@2 ~", // G5
  X: "~@4 a#3 ~@2 [d4,g4]@2 ~@2 [d4,g4] ~@2 [d4,g4] ~, ~@2 a#3@2 ~ a#3@4 [d4,g4]@2 ~ [d4,g4]@2 ~@2, ~@3 a#2@12 ~, ~@10 a#3@3 a#3@2 ~", // G5
  Y: "[[d3,a3,d4,f#4]@25 ~@7]/2", // D
})).s("gm_acoustic_guitar_steel").gain(0.35)

// other · string ensemble 1 · "tk5"
const string_ensemble_1 = note("<~@8 A B C D A E F G ~@10 H@4 F G ~@4 I ~@3 J K L M N H@4 F O P Q@2>".pickRestart({
  A: "[a3,d4,f#4]", B: "[c#4,e4,a4]", C: "[c4,e4,g4]", D: "[a#3,g4]@15 ~", E: "a4@3 b4", F: "~@4 a5@11 ~, a4@15 ~",
  G: "a5@8 a6@7 ~", H: "[[a4,a5]@14 [d5,d6] [c#5,c#6]]/2", I: "~ [a#2,a#3]",
  J: "~@4 [a#4,a#5]!2 ~ [c5,c6] ~ [a#4,a#5] ~@2 [g4,g5]@2 ~@2, ~@11 [a4,a5]@2 ~@3", K: "[a4,d5,f#5,a5]",
  L: "[c#5,e5,a5]", M: "[g4,c5,e5]", N: "[a#4,g5]@15 ~", O: "a5 a6", P: "a3@15 ~, e4@3 ~, c#5@9 ~@7",
  Q: "[[d3,a3,f#4]@7 ~]/2", // D
})).s("gm_string_ensemble_1").gain(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 A B C D A E A E A E A F G H G H G I ~@2 C D G H G H G J K L M L M A E A E A E A E N@4 G J K C ~
>`.pickRestart({
  A: "x ~@6 x!2 ~ x ~@5", B: "x ~@6 x!2 ~ x ~@3 x ~", C: "x", D: "~@5 x ~ x ~@2 x ~@2 x ~@2",
  E: "x ~@6 x!2 ~ x ~@2 x ~@2", F: "x ~@4 x ~ x!2 ~@4 x ~ x", G: "x ~@2 x ~@2 x ~@3 x ~@3 x!2",
  H: "x ~@2 x ~@2 x ~@3 x ~@3 x ~", I: "x ~@2 x ~@2 x ~@9", J: "x ~@3 x!2 ~ x", K: "x ~@4 x ~ x!2 ~@7", L: "x ~@6 x",
  M: "x ~@14 x", N: "x ~@2 x ~@2 x ~ x ~ x ~@4 x",
})).gain(0.5)

// drums · rim
const rim = s("rim").struct("<~@8 A@4 ~@2 B ~@17 C ~@4 A@4 ~@10 C ~@2>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~ x ~@2",
})).gain(0.5)

// drums · snare
const snare = s("sd").struct("<~@7 A ~@3 B C@2 D E C F C F C D ~@3 A C F C F C@2 ~@8 B C@4 G@4 C@2 ~@3>".pickRestart({
  A: "~ x ~@13 x", B: "~@7 x", C: "~ x ~ x", D: "~ x ~@2", E: "~@14 x!2", F: "~@4 x ~@7 x ~ x!2",
  G: "~@4 x ~@3 x ~@3 x ~@2 x",
})).gain(0.5)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@7 A ~@3 B ~@3 C ~@9 A ~@14 B ~@4 D@4 ~@5>".pickRestart({
  A: "~@12 x!3 ~", B: "~@9 x ~@6", C: "~@3 x!2 ~@6 x ~ x ~@2", D: "~@7 x",
})).gain(0.1)

// drums · low tom
const low_tom = s("lt").struct("<~@7 A ~@3 B ~@3 C ~@9 A ~@14 B ~@13>".pickRestart({
  A: "~@9 x ~@6", B: "~@15 x", C: "~@11 x ~@2 x ~",
})).gain(0.5)

// drums · hihat
const hihat = s("hh").struct("<A@8 B@7 C B@5 D A@4 B@6 E B@18 E ~@2>".pickRestart({
  A: "~ x ~ x", B: "x!4", C: "x!2 ~@2", D: "x ~ x ~@2 x ~@2", E: "x!2 ~ x",
})).gain(0.5)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@7 A ~@3 B ~@3 C ~@9 A ~@14 B ~@13>".pickRestart({
  A: "~@7 x ~@8", B: "~@13 x ~@2", C: "~@9 x ~@6",
})).gain(0.5)

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

// drums · high tom
const high_tom = s("ht").struct("<~@7 A ~@3 B ~@3 C ~@9 A ~@14 B ~@13>".pickRestart({
  A: "~ x ~@2", B: "~@11 x ~@4", C: "~@7 x ~@4 x ~@3",
})).gain(0.5)

// drums · crash
const crash = s("cr").struct("<~@12 A ~ A ~ A ~ A ~ A ~@5 A ~ A ~ A ~@10 A ~ A ~ A@5 ~@4>".pickRestart({
  A: "x",
})).gain(0.5)

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

stack(
  bass, epiano2, electric_guitar_jazz, acoustic_guitar_steel, string_ensemble_1, kick, rim, snare, snare_soft, low_tom,
  hihat, hihat_soft, mid_tom, open_hat, high_tom, crash, ride
)

More by Bread