Strudelify

18 Morceaux Faciles et Progressifs Op.120

Ferdinando Carulli

KeyA majorTempo60 bpm
0:00/0:00
// 18 Morceaux Faciles et Progressifs Op.120 — Ferdinando Carulli
// 60 bpm, 2/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/8 at bar 1, 2/4 at bar 2, 3/8 at bar 22, 1/8 at bar 22, ...) are rendered on a constant 2/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5836088; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 59 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/2)

// 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 · acoustic guitar nylon · "Guitare classique"
const acoustic_guitar_nylon = note(`<
  A B C D E B C F G H I H J B C F K L K L M N O P Q R S T U V W X Y Z AA AB@2 AC AD@8 AE AF AG AH AI@7 AJ@2
>`.pickRestart({
  A: "~@6 e4 d4", B: "d4 c#4 b3 c#4 e4 d4 c#4 d4, a2 e2", C: "f#4@2 e4@2 ~ f#4 g#4 a4, a2 d3",
  D: "a4 g#4 f#4 e4!2 d4 c#4 d4, e2!2", E: "c4@2 ~@4 e4 d4, a2!2, ~ c#4@2 ~", F: "a4 g#4 f#4 e4!2 d4 c#4 b3, e2!2",
  G: "a3@2 c#4@2 [a2,a3]@2 e4!2, a2 ~", H: "[b2,d#4]@3 a4 g#4 f#4 e4 d#4", I: "[e2,e4]@3 g#4 f#4 e4 d#4 e4",
  J: "e4 f#4 g#4 f#4 e4 d4 c#4 b3, e2 ~", K: "a3 a4 g#4 f#4 d#4 e4 b3 d4, a2 e2",
  L: "c#4 a4 g#4 f#4 d#4 e4 d4 b3, a2 e2", M: "[a2,a3] [a2,c#4,a4]", N: "[a2,c#4,a4]@4 ~@2 e4 d4",
  O: "d4 c4 b3 c4 e4 d4 c#4 d4, a2 e2", P: "f4@2 e4@2 ~ e4 f4 e4, a2!2", Q: "~ d4 e4 d4 c4 e4 d4 c4, e2 a2",
  R: "c4@2 b3@2 [e2,b3]@2 g4 f4, e2 ~", S: "f4 e4 d4 e4 g4 f4 e4 f4, c3 g3", T: "[f3,a4]@2 [e3,g4]@2 ~ [g3,c#4]!3",
  U: "d4 e4 f4 d4 c4 e4 d4 b3, f3@2 g3!2", V: "c4@2 e4@2 [c3,c4]@2 [e4,g4] [d4,f4], c3 ~", W: "[c#4,e4]!3 [c#4,g4]",
  X: "[d4,f4]@2 [d4,f4]@2 [d4,f4]@2 [d4,f4] [c4,e4]", Y: "[b3,d4]!3 [b3,f4]",
  Z: "[c4,e4]@2 [c4,e4]@2 [c4,e4]@2 [c4,e4] [b3,d4]", AA: "[a3,c4]!6 [a3,d#4]!2",
  AB: "[g#3,b3,e4] e4 d#4 d4 c4!2 b3 a3", AC: "[e2,g#3,b3,e4] ~",
  AD: "[e4 d4!2 c#4 b3 c#4 e4 d4 c#4 d4 f#4@2 e4@2 ~ f#4 g#4 a4!2 g#4 f#4 e4!2 d4 c#4 d4 c4@2 ~@4 e4 d4!2 c#4 b3 c#4 e4 d4 c#4 d4 f#4@2 e4@2 ~ f#4 g#4 a4!2 g#4 f#4 e4!2 d4 c#4 b3 a3@2 c#4@2 [a2,a3]@2, ~ a2@2 e2@2 a2@2 d3@2 e2@2 e2@2 a2@2 a2@2 a2@2 e2@2 a2@2 d3@2 e2@2 e2@2 a2@2 ~, ~@7 c#4 ~@8]/8", // A
  AE: "e4!2 [b2,d#4]@3 a4 g#4 f#4", AF: "e4 d#4 [e2,e4]@3 g#4 f#4 e4", AG: "d#4 e4 [b2,d#4]@3 a4 g#4 f#4",
  AH: "e4 d#4 e4 f#4 g#4 f#4 e4 d4, ~ e2@2 ~",
  AI: "[c#4 b3 d4 c#4 b3 c#4 e4 d4 c#4 d4 f#4@2 e4@2 ~ f#4 g#4 a4!2 g#4 f#4 e4!2 d4 c#4 b3 a3 a4 g#4 f#4 d#4 e4 b3 d4 c#4 a4 g#4 f#4 d#4 e4 d4 b3 a3 a4 g#4 f#4 d#4 e4 b3 d4 c#4 a4 g#4 f#4 d#4 e4, ~ a2@2 e2@2 a2@2 d3@2 e2@2 e2@2 a2@2 e2@2 a2@2 e2@2 a2@2 e2@2 a2@2 e2]/7",
  AJ: "[d4 b3 [a2,a3]@4 [a2,c#4,a4]@4 [a2,c#4,a4]@4 ~@2]/2", // A
})).s("gm_acoustic_guitar_nylon").gain(0.3).pan(0.4)

// chords · acoustic guitar nylon · "Guitare classique"
const acoustic_guitar_nylon_2 = note(`<
  A B C D E B C F G H I H J B C F K L K L M N O P Q R S T U V W X Y Z AA AB@2 AC AD@8 AE AF AG AH AI@4 AJ AK AJ AL@2
>`.pickRestart({
  A: "~@6 c#4 b3", B: "b3 a3 g#3 a3 c#4 b3 a#3 b3, a2 e2", C: "d4@2 c#4@2 ~ d4 e4 f#4, a2 d3",
  D: "f#4 e4 d4 c#4!2 b3 a#3 b3, e3 e2", E: "g#3@2 ~@4 c#4 b3, a2 c#3, ~ a3@2 ~", F: "f#4 e4 d4 c#4!2 b3 a3 g#3, e3!2",
  G: "~ e3 c#3 ~, c#3 ~", H: "a3 b3 a3 b3 a3 b3 a3 b3, f#3!4", I: "g#3 b3 g#3 b3 g#3 b3 g#3 b3, e3!4",
  J: "g#3 a3 b3 a3 g#3 e3 f#3 g#3, e3 ~", K: "a3 c#4 e3 a3 g#3 e3 g#3 e3", L: "a3 c#4 e3 a3 e3 g#3 e3 g#3",
  M: "[c#3,e3,a3]!2", N: "[c#3,e3,a3]@4 ~@2 c4 b3", O: "b3 a3 g3 a3 c4 b3 a#3 b3, a2 e2",
  P: "d4@2 c4@2 ~ c4 d4 c4, a2!2", Q: "~ b3 c4 b3 [a2,a3] [c3,c4] [d3,b3] [d#3,a3], g#2 ~",
  R: "a3@2 g#3@2 [e3,g#3]@2 e4 d4, e3 ~", S: "d4 c4 b3 c4 e4 d4 c4 d4, c3 g2",
  T: "[c3,a3,c4,f4]@2 [c3,g3,c4,e4]@2 ~ [g2,a#3]!3", U: "a3 g3 a3 f3 e3 g3 f3 d3, f2@2 g2!2",
  V: "e3 g3 [c3,e3] ~, c3 ~", W: "~ a#3 a3 g#3 a3 g3 f3 e3", X: "~ f3 a3 f3 d3@2 ~@2, d3 ~",
  Y: "~ g#3 g3 f#3 g3 f3 e3 d3", Z: "~ e3 g3 e3 c3@2 ~@2, c3 ~", AA: "a2 g#2 a2 g2 ~ f3 ~ f3, ~@2 f2!2",
  AB: "~ [e3,g#3] [f#3,a3] [g#3,b3] [a2,a3,c4] c3 d3 d#3, e2 ~", AC: "e3 ~",
  AD: "[c#4 b3!2 a3 g#3 a3 c#4 b3 a#3 b3 d4@2 c#4@2 ~ d4 e4 f#4!2 e4 d4 c#4!2 b3 a#3 b3 g#3@2 ~@4 c#4 b3!2 a3 g#3 a3 c#4 b3 a#3 b3 d4@2 c#4@2 ~ d4 e4 f#4!2 e4 d4 c#4!2 b3 a3 g#3 ~@2 e3@2 c#3@2, ~ a2@2 e2@2 a2@2 d3@2 e3@2 e2@2 a2@2 c#3@2 a2@2 e2@2 a2@2 d3@2 e3@2 e3@2 c#3@2 ~, ~@7 a3 ~@8]/8",
  AE: "~@2 a3 b3 a3 b3 a3 b3, ~ f#3!3", AF: "a3 b3 g#3 b3 g#3 b3 g#3 b3, f#3 e3!3",
  AG: "g#3 b3 a3 b3 a3 b3 a3 b3, e3 f#3!3", AH: "a3 b3 g#3 a3 b3 a3 g#3 e3, f#3 e3@2 ~",
  AI: "[f#3 g#3 b3 a3 g#3 a3 c#4 b3 a#3 b3 d4@2 c#4@2 ~ d4 e4 f#4!2 e4 d4 c#4!2 b3 a3 g#3 a3 c#4 e3 a3 g#3 e3, ~ a2@2 e2@2 a2@2 d3@2 e3@2 e3@2 ~@3]/4",
  AJ: "g#3 e3 a3 c#4 e3 a3 e3 g#3", AK: "e3 g#3 a3 c#4 e3 a3 g#3 e3",
  AL: "[e3 g#3 [c#3,e3,a3]@4 [c#3,e3,a3]@4 [c#3,e3,a3]@4 ~@2]/2", // A
})).s("gm_acoustic_guitar_nylon").gain(0.29).pan(0.6)

stack(acoustic_guitar_nylon, acoustic_guitar_nylon_2)

More by Ferdinando Carulli