Strudelify

Amarilli mia bella

CACCINI

KeyB♭ majorTempo120 bpm
0:00/0:00
// Amarilli mia bella — CACCINI
// 120 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1018391; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 49 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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("<~@4 A@2 B@4 C D E F G H I J ~@4 K L M N O P D Q R G H S T ~@14>".pickRestart({
  A: "[~@4 [bb2,bb3]@2 a3@2 g3@2 c5 bb4 ~@2 a3@2, ~@2 d5@3 bb3@2 ~, ~ [d4,f4] eb4@2, ~@2 eb3 [f3,c5]]/2", // Bb Dm F5
  B: "[d4@2 f4 eb4 d4@2 [gb3,a3,a4]@2 ~@2 c5@2 f4@2 eb4 f4 [eb3,g4,bb4]@2 a4 g4 g4@2 gb4 c5 bb4@2 g4@2 [bb3,d4]@2 [g3,bb3]@2, [bb2,bb3,bb4]@3 d4@3 ~@4 d4@4 ~@2, ~@3 d5@2 ~@11, ~@4 bb3@5 ~@3 g3@3 ~, ~@4 [g3,g4]@2 [d3,bb4]@2 ~ [c3,c4,eb4] [d3,a3]@2 g2@4]/4", // Gbm Eb Bb Gm Bb G Gm Cm …
  C: "~@6 a4 g4, g3, bb4@3 ~, ~ d4@2 c4, ~ eb3", D: "[d3,c4,g4]@2 gb4 e4 gb4@2 gb4 g4, ~ c4@2 c4, ~ a3 [d3,a3]@2",
  E: "[c4,gb4,a4] gb4 ~ c4, [d3,a3] [eb3,g3,g4], ~ c4@2 ~", F: "g4 gb4 [c4,d4] [c4,d4,gb4], [d3,a3], c4 ~",
  G: "g2 g3 d3 d2, [bb3,d4,g4] [a3,d4,gb4]", H: "g2 g3 d3 c3, [bb3,d4,g4] [a3,d4,gb4]",
  I: "~@2 [bb3,d4,f4]@2 [d4,f4,bb4]@2 [c4,eb4,a4] [bb3,eb4,g4], bb2@3 c3", J: "g4@2 gb4 e4 ~@4, [a3,d4], d3 ~",
  K: "~@2 [d4,g4,c5] [d4,g4,b4], ~ g2", L: "c3 bb2 a2 g2, [e4,g4,c5] [e4,a4,db5]",
  M: "d5 c5 g2 g3, [gb2,d4,a4] [d4,g4,bb4]", N: "d3@2 a2@2 ~@2 a4 c5, [d4,g4,a4]@3 [d4,gb4], ~ d2",
  O: "[d4,g4,bb4] [g3,bb3] [bb3,d4] [bb3,d4,g4], [g2,d3]", P: "~@6 a4 g4, bb4@3 ~, g3 [eb3,g3], ~ d4@2 c4",
  Q: "[gb4,a4] gb4 eb3 eb2, [d3,a3,c4] [c4,g4]", R: "g4 gb4 [c4,d4] [c4,d4,gb4], [d2,a3], c4 ~",
  S: "~@2 [bb3,d4,f4]@2 [d4,f4,bb4]@2 [c4,a4] [bb3,g4], bb2@3 c3", T: "g4@2 gb4 e4 [d2,gb4]@4, [a3,d4], d3 ~",
})).s("gm_piano").gain(0.3)

// chords · piano · soft notes
const piano_soft = note("<A B@2 C D ~@12 E F G H I J ~@12 K G H I L M N O P Q R S T U>".pickRestart({
  A: "[g3,bb3,g4] [d3,a3,gb4], d4", // Gm D
  B: "[[g2,d3,g3,d4,g4]@4 [d3,a3,d4,gb4]@2 [eb3,g3,g4]@2 g4@2 gb4 e4 gb4@2 [d3,a3,c4,gb4,a4]@2, ~@3 c4@2 c4@2 ~, ~@4 [d3,a3]@3 ~]/2", // G5 D Eb D7 D5
  C: "a4@2 a4@2 [f4,a4]@2 ~ bb4, [f3,a3]@3 [g3,d4,g4], [c4,f4]@4 c5@3 ~", D: "d3 c3 ~@2, [d4,f4,a4] ~", E: "~ [d2,gb4]",
  F: "[d4,f4]@2 a4@2 ~@3 g4, [d3,a3] [a2,a3], ~@4 e4@3 ~, ~@3 db4", // Dm D5 A
  G: "[a3,d4,f4] [d4,a4,d5] [d4,gb4,a4] [a3,d4,gb4], [d2,d3] d3", // Dm D5 D
  H: "[bb3,d4,g4] [g4,bb4,d5] [d4,g4,bb4] [bb3,d4,g4], g3 g2", // Gm
  I: "[a3,d4,gb4] [a4,d5,gb5] [gb4,a4,d5] [d4,gb4,a4], d2 d3", J: "[d4,g4,b4] [e4,g4,c5] ~@2, g3 ~",
  K: "f4@2 a4@2 ~@3 g4, d4@3 db4, [d3,a3] [db3,a3], ~@4 e4@3 ~", // D5 Gbm
  L: "[d4,g4,b4] [e4,g4,c5] [d4,g4,c5] [d4,g4,b4], g3 g2", M: "c3 bb2 a2 g2, [e4,g4,c5] [e4,a4,db5]",
  N: "d5 c5 g2 g3, [gb2,d4,a4] [d4,g4,bb4]", O: "d3@2 a2@2 ~@2 a4 c5, [d4,g4,a4]@3 [d4,gb4], ~ d2",
  P: "g2 d3 [g4,b4,d5]!2, [d4,g4,b4] g3", Q: "c2 g2 g3@2, [g4,c5,e5]", R: "b1 g2 g3 [gb2,d4,a4,c5], [d4,g4,d5]@3 ~",
  S: "g2 g3, [d4,g4,b4]", T: "[d3,a3,d4,g4,a4]@2 d4 c4, ~ [d2,d3,gb4,a4]", U: "[g2,d3,b3,d4,g4]",
})).s("gm_piano").gain(0.2)

stack(piano, piano_soft)