Strudelify

Farandole (from

Georges Bizet

KeyD minorTempo113 bpm
0:00/0:00
// Farandole (from — Bizet Georges
// 113 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 16 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(113/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 · "A.PIANO"
const piano = note("<A B C D E F@2 G H I J K L M J N>".pickRestart({
  A: "~@16 [f3,a3,d4]@8 ~ [e3,a3]@7", // Dm A5
  B: "~ [f3,bb3,d4]@8 ~@5 [g3,bb3,e4]@2 [f3,a3,f4]@6 ~ [a3,e4]@2 [a3,f4]@5 [f3,bb3,d4]@2", // Bb Edim F A5 Dm Bb
  C: "~ [f3,a3,c4,f4]@8 ~@6 [a3,c4,f4]@2 [g3,c4,g4]@8 [a3,c4,f4,a4]@7", // F C5 F
  D: "~ [bb3,f4,bb4]@4 [eb4,a4]@4 [d4,g4]@4 [d4,f4]@4 [bb3,d4,e4]@7 [c4,e4,a4]@8", // Bb5 Ebdim G5 Dm Em7b5 Am
  E: "~ [bb3,c4,g4]@4 [a3,f4]@4 [g3,db4,e4]@3 [a3,f4]@4 ~ [f3,a3,d4]@7 [e3,a3]@8", // C7 Dm Dbdim Dm A5
  F: "[~ [f3,bb3,d4]@8 ~@6 [g3,bb3,e4]@2 [f3,a3,f4]@5 [a3,e4]@2 ~ [a3,f4]@6 [f3,bb3,d4]@2 [f3,a3,c4,f4]@8 ~@6 c4 [g3,c4,g4]@8 ~ [c4,f4,a4]@7, ~@47 [a3,f4]@2 ~@15]/2", // Bb Edim F A5 Dm Bb F C5 …
  G: "[bb3,f4,bb4]@4 ~ [eb4,a4]@3 [d4,g4]@4 [d4,f4]@4 [g3,d4,f4]@8 [a3,db4,e4]@8", H: "[f3,a3,d4]@3 ~@5",
  I: "d4@4 a3@4 d4@6 ~ e4", J: "f4@2 ~ e4 f4@2 ~ d4 a4@6 ~ f4, g4 ~@31", K: "g4@2 ~@2 a4@2 ~@2 bb4 ~ a4 ~ g4 ~ f4 ~",
  L: "e4@2 ~@2 a4@2 ~@2 g4 ~ f4 ~ e4 ~ f4 ~", M: "d4@2 ~@2 a3@2 ~@2 d4@6 ~ e4", N: "g4@3 ~ e4@3 ~ a4@3 ~ a3@3 ~",
})).s("gm_piano").gain(0.41)

// chords · piano · "A.PIANO"
const piano_2 = note("<A B C D E F@2 G H ~@7>".pickRestart({
  A: "~@16 [f4,a4,d5]@8 ~ [e4,a4]@7", B: "~ [f4,bb4,d5]@8 ~@5 [g4,bb4,e5]@2 [a4,f5]@6 ~ [a4,e5]@2 [a4,f5]@5 [bb4,d5]@2",
  C: "~ [a4,c5,f5]@8 ~@6 [a4,c5,f5]@2 [c5,g5]@8 [c5,eb5,f5,a5]@7", // F C5 F7
  D: "~ [f5,bb5]@4 [eb5,a5]@4 [d5,g5]@4 [d5,f5]@4 [bb4,d5,e5]@7 [c5,e5]@8", // Bb5 Ebdim G5 Dm Em7b5 C
  E: "~ [bb4,c5,g5]@4 [a4,f5]@4 [g4,db5,e5]@3 [a4,f5]@4 ~ [f4,a4,d5]@7 [e4,a4]@8", // C7 Dm Dbdim Dm A5
  F: "[~ [f4,bb4,d5]@8 ~@6 [g4,bb4,e5]@2 [a4,f5]@5 [a4,e5]@2 ~ [a4,f5]@6 [bb4,d5]@2 [a4,c5,f5]@8 ~@6 c5 [c5,g5]@8 ~ [c5,f5,a5]@7, ~@47 [a4,f5]@2 ~@15]/2", // Bb Edim Dm A5 Dm Bb F C5 …
  G: "[f5,bb5]@4 ~ [eb5,a5]@3 [d5,g5]@4 [d5,f5]@4 [bb4,d5,f5]@8 [g4,db5,e5]@8", H: "[f4,a4,d5]@3 ~@5",
})).s("gm_piano").gain(0.41)

// chords · piano · "A.PIANO"
const piano_3 = note("<A B C D E F@2 G H I J K L I J M>".pickRestart({
  A: "~@16 [f5,a5,d6]@8 ~ [e5,a5]@7", B: "~ [f5,bb5,d6]@8 ~@5 [g5,bb5,e6]@2 [a5,f6]@6 ~ [a5,e6]@2 [a5,f6]@5 [bb5,d6]@2",
  C: "~ [a5,a6]@8 ~@6 [a5,c6,f6]@2 [c6,g6]@8 [c6,eb6,f6,a6]@7", // A F C5 F7
  D: "~ [f6,bb6]@4 [eb6,a6]@4 [d6,g6]@4 [d6,f6]@4 [d6,e6]@7 [a5,e6,a6]@8", // Bb5 Ebdim G5 Dm Dsus2 A5
  E: "~ [bb5,c6,g6]@4 [a5,f6]@4 [g5,db6,e6]@3 [a5,f6]@4 ~ [f5,a5,d6]@7 [e5,a5]@8", // C7 Dm Dbdim Dm A5
  F: "[~ [f5,bb5,d6]@8 ~@6 [g5,bb5,e6]@2 [a5,f6]@5 [a5,e6]@2 ~ [a5,f6]@6 [bb5,d6]@2 [a5,a6]@8 ~@6 c6 [c6,g6]@8 ~ [c6,f6,a6]@7, ~@47 [a5,f6]@2 ~@15]/2", // Bb Edim Dm A5 Dm Bb A C5 …
  G: "[f6,bb6]@4 ~ [eb6,a6]@3 [d6,g6]@4 [d6,f6]@4 [bb5,d6,f6]@8 [g5,db6,e6]@8", H: "[f5,a5,d6]@3 ~ d5@2 a4@2",
  I: "d5@6 ~ e5 f5@2 ~ e5 f5@2 ~ d5, ~@16 g5 ~@15", J: "a5@6 ~ f5 g5@2 ~@2 a5@2 ~@2",
  K: "bb5 ~ a5 ~ g5 ~ f5 ~ e5@2 ~@2 a5@2 ~@2", L: "g5 ~ f5 ~ e5 ~ f5 ~ d5@2 ~@2 a4@2 ~@2",
  M: "bb5 ~ a5 ~ g5 ~ f5 ~ f5@2 ~@2 e5@2 ~@2",
})).s("gm_piano").gain(0.41)

stack(piano, piano_2, piano_3)

More by Georges Bizet