Strudelify
KeyE♭ majorTempo192 bpm
0:00/0:00
// Le Bananier — Louis Moreau Gottschalk
// 192 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 132 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(192/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 · piano
const piano = note(`<
  A B@12 A B@10 C D@2 E F D@2 E F D@2 E F D@2 E G@8 H@8 I J K L M J K L N@2 O P Q R S P@2 R T P Q R T P Q R T U V W X Y
  Z AA AB AC AD@3 AE ~ AF AG AH AI AJ AK AL AI AM AI AM AN@2 AO AP AQ K L M J K L@3 AR ~ AS AT AU AT AV@2 AW AX AY
>`.pickRestart({
  A: "[c2,g2]@2 [c2,c3]@2 [c2,g2] c3 [c2,g2] c3", B: "[c2,g2] [c2,c3] [c2,g2] [c2,c3]", C: "[c2,g2] c3 [c3,g3] c4",
  D: "[[f3,ab3]@4 g3@2 ~@2 ab3@2 c4 bb3 ab3@2 g3 f3, ~@2 db4@3 ~@3]/2", E: "eb3@2 d3 c3 b2@2 g2@2",
  F: "c2@2 [c3,g3] c4", // C5
  G: "[~@2 c3 ~@3 c3 ~@5 c3 ~ c3 g3, c2@3 ~ c3@2 ~@2 c3@2 c3@2 ~@4, ~ g3@2 g3@2 g3@2 g3@2 g3@2 g3@2 g3@2 ~]/8",
  H: "[~@2 c3 ~@5 c3 ~ c3 ~@4 g3, c3 ~ c3 c3 ~@2 c3 c3, ~ g3@2 g3@2 g3@2 g3@2 g3@2 g3@2 g3@2 ~]/8",
  I: "c3@8 c3@3 ~ [eb3,g3,c4]@3 ~", J: "f2@3 ~ [f3,ab3,db4]@3 ~ g2@3 ~ [g3,bb3,eb4]@3 ~",
  K: "ab2@3 ~ [eb3,ab3,c4]@3 ~ db3@3 ~ [f3,ab3,db4]@3 ~", L: "c3@3 ~ [eb3,g3,c4]@3 ~ g2@3 ~ [f3,g3,b3]@3 ~",
  M: "c3@3 ~ [eb3,g3,c4]@3 ~ c3@3 ~ [eb3,g3,c4]@3 ~", N: "c3@3 ~ [eb3,g3,c4]@3 ~ g2@3 ~ [b3,d4,g4]@3 ~",
  O: "c3@3 ~@5 [f3,ab3]@4 [bb3,d4]@3 ~, ~ eb4@2 ~", P: "~@3 [bb3,eb4,g4], eb3!2, ~ [bb3,eb4,g4]@2 ~",
  Q: "~@3 [b3,eb4,g4], eb3!2, ~ bb3@3, ~ [eb4,g4]@2 ~", R: "~@3 [c4,eb4,ab4], eb3!2, ~ [c4,eb4,ab4]@2 ~",
  S: "~@3 [bb3,d4,c5], eb3!2, ~ [bb3,d4,c5]@2 ~", T: "~@3 [bb3,d4,ab4], eb3!2, ~ [bb3,d4,ab4]@2 ~",
  U: "eb3@3 ~@5 [g5,bb5]@8", V: "[f5,ab5]@3 ~ [bb4,f5]@3 ~ [g5,bb5]@8", W: "[f5,ab5]@8 [f5,a5,eb6]@3 ~ [f5,a5,eb6]@3 ~",
  X: "[f5,a5,eb6]@3 ~ [f5,a5,eb6]@3 ~ [f5,a5,eb6]@3 ~ [bb4,f5,ab5]@3 ~", Y: "[eb5,g5] ~ [g4,bb4]@2",
  Z: "[f4,ab4]@3 ~ [bb3,f4]@3 ~ [g4,bb4]@8", AA: "[f4,ab4]@8 [f4,a4,eb5]@3 ~ [f4,a4,eb5]@3 ~",
  AB: "[f4,a4,eb5]@3 ~ [f4,a4,eb5]@3 ~ [f4,a4,eb5]@3 ~ [bb3,f4,a4]@4", AC: "[eb4,g4] ~ [g3,bb3]@2",
  AD: "[f3,ab3]@3 ~ [bb2,f3]@3 ~ [g3,bb3]@8", AE: "[f3,ab3] ~@3", AF: "~@8 ab3@3 ~ c4@3 ~", AG: "eb4@8 c5@3 ~ c5@3 ~",
  AH: "ab4@4 [ab3,db4,ab4]@2 g4 f4", AI: "eb4 c4 bb3 eb4", AJ: "c4@4 ab3@4 ab3@3 ~ c4@3 ~", AK: "eb4@2 c5!2",
  AL: "ab4@4 ab4@2 g4 f4", AM: "c4@2 ab3@2 ab4@2 g4 f4", AN: "eb4@2 c4@2 ab4@2 g4 f4", AO: "eb4 c4 ~@2",
  AP: "~@8 c3@3 ~ [eb3,g3,c4]@3 ~", AQ: "f2@3 ~ [ab3,db4,f4]@3 ~ g2@3 ~ [g3,bb3,eb4]@3 ~",
  AR: "c3@3 ~ [g3,c4,eb4]@3 ~@9", AS: "~@8 c4@3 ~ eb4@3 ~", AT: "g4@2 eb5!2", AU: "c5@8 c4@3 ~ eb4@3 ~",
  AV: "c5@2 eb5!2", AW: "c5 eb4 g4 c4", AX: "g3 ~ [g2,g3]!2", AY: "[c2,c3] ~@3",
})).s("gm_piano").gain(0.31)

stack(piano)

More by Louis Moreau Gottschalk