Strudelify
KeyF majorTempo120 bpm
0:00/0:00
// La paloma — Sebastian de Yvradier
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/4816894; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 99 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · violin · "Violin II"
const violin = note(`<
  A B A C D@3 E@2 F@3 D@5 E@2 F@3 D@4 F@4 G@2 D@2 F@4 H I D@2 F@4 D J D@3 E@2 F@3 D@5 E@2 F@3 D@4 F@4 G@2 D@2 F@4 H I
  D@2 F@4 D J A B A B A C K
>`.pickRestart({
  A: "f5 ~@2 c5 f5 ~ c5@2", B: "e5 ~ e5@4 c5@2 e5@2 ~@2 c5@4", C: "e5 ~@7", D: "~@2 a4@4 a4 ~@3 a4 ~@3 a4 ~",
  E: "~@2 g4@4 g4 ~@3 g4 ~@3 g4 ~", F: "~@2 bb4@4 bb4 ~@3 bb4 ~@3 bb4 ~", G: "~@2 f4@4 f4 ~@3 f4 ~@3 f4 ~",
  H: "~@2 f4@4 f4 ~@3 f4 ~ f4@2 f4 ~", I: "~@3 a4@2 a4@3 a4@3 bb4@2 gb4@3", J: "g4 ~@7", K: "~ e4",
})).s("gm_violin").gain(0.3)

// other · viola
const viola = note(`<
  A B C D E@3 F@5 E@5 F@5 E@4 F@4 G@2 E@2 F@4 H I E@2 F@4 E J E@3 F@5 E@5 F@5 E@4 F@4 G@2 E@2 F@4 H I E@2 F@4 E J A B A
  B A D K
>`.pickRestart({
  A: "a4 ~@2 a4!2 ~ a4@2", B: "g4 ~ g4@4 g4@2 g4@2 ~@2 bb4@4", C: "a4@2 ~ a4!2 ~ a4@2", D: "g4 ~@7",
  E: "~@2 f4@4 f4 ~@3 f4 ~@3 f4 ~", F: "~@2 e4@4 e4 ~@3 e4 ~@3 e4 ~", G: "~@2 d4@4 d4 ~@3 d4 ~@3 d4 ~",
  H: "~@2 d4@4 d4 ~@3 d4 ~ d4@2 d4 ~", I: "~@3 f4@2 f4@3 f4@3 f4@2 f4@3", J: "e4 ~@7", K: "~ bb3",
})).s("gm_viola").gain(0.3)

// other · cello · "Violoncello"
const cello = note(`<
  A B C D E@3 F@4 G H@5 I@4 J H@4 I@3 J H@4 I@3 J K ~ H@2 I@3 J L D E@3 F@4 G H@5 I@4 J H@4 I@3 J H@4 I@3 J K ~ H@2 I@3
  J L D A B C B C D M
>`.pickRestart({
  A: "f3 ~@2 f3!2 ~ f3@2", B: "c3 ~ c3@4 c3@2 c3@2 ~@2 e3@4", C: "f3 ~@2 f3!2 ~ d3@2", D: "c3 ~@7",
  E: "f3 ~@2 c3 f3 ~ c3@2", F: "c3 ~@2 g2 c3 ~ g2@2", G: "c3 ~@2 g2 c3 ~ d3 e3", H: "f3 ~@2 f3!2 ~ c3@2",
  I: "c3 ~@2 c3!2 ~ g2@2", J: "c3 ~@2 c3!2 ~ d3 e3", K: "f3 ~@2 c3 f3 ~ d3 c3", L: "f3 ~@2 f3!2 ~ e3 d3", M: "~ c3",
})).s("gm_cello").gain(0.3)

stack(violin, viola, cello)