Strudelify

Moliendo Café

José Luis Rodríguez

KeyB♭ majorTempo180 bpm
0:00/0:00
// Moliendo Café — José Luis Rodríguez
// 180 bpm, 2/2, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3024686; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 64 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(180/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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.

// other · cello · "Violonchelo"
const cello = note(`<
  A B A B C D C D E F G@2 H F G@2 I@2 J@2 K@2 L@2 E M G@2 H F G@2 I@2 J@2 K@2 L@2 E N O P Q@2 O P Q@2 R S T U A B A B C
  D C D V W
>`.pickRestart({
  A: "g4 f4", B: "eb4@3 d4@2 e4 gb4@2", C: "g4@2 bb4 g4 f4@2 a4 f4", D: "g4@3 gb4@2 g4 a4@2", E: "g4@2 g4@2 ~@2 g4!2",
  F: "g4@2 ~@3 d4 g4 a4", G: "[bb4@2 bb4 bb4@2 bb4@2 bb4@2 bb4@2 bb4@2 bb4 a4 g4]/2", H: "bb4@3 g4 g4@4",
  I: "[c5@10 ~@3 d4 a4 bb4]/2", J: "[c5@2 c5 c5@2 c5@2 d5@2 d5@2 c5@2 d5 c5 d5]/2", K: "[c5@3 bb4@7 ~@3 d4 g4 a4]/2",
  L: "[bb4@2 bb4 bb4@2 bb4@2 a4@2 a4@2 a4@2 a4 bb4 a4]/2", M: "g4@4 ~ d4 g4 a4", N: "[d4,g4]@2 ~ [d4,g4]!2 ~@3",
  O: "c5@2 d5 c5@2 d5 c5@2", P: "eb5@5 d5 c5 d5", Q: "[c5@3 bb4@9 ~@4]/2", R: "bb4@4 bb4@2 bb4@2 bb4@3 bb4@2 bb4@3",
  S: "a4@3 a4@2 a4@3 c5@4 bb4@2 c5@2", T: "a4@4 a4 bb4 a4 g4", U: "a4 g4 gb4 a4", V: "g4@2 g4@2 ~@2 bb4 d5",
  W: "g5 ~@3",
})).s("gm_cello").gain(0.3)

// other · cello · "Violonchelo"
const cello_2 = note(`<
  A B A B A C A C D E F G H I J K L M N O P Q H R D S F G H I J K L M N O P Q H R D T L U V W L X Y Z ~ AA AB AC A B A B
  A C A C AD E
>`.pickRestart({
  A: "g3 f3", B: "g3@3 gb3@2 g3 a3@2", C: "eb3@3 d3@2 e3 gb3@2", D: "g3@2 g3@2 ~@2 d3!2", E: "g2 ~@3",
  F: "g2@3 d3@3 g3@2", G: "g2@3 d3@3 gb3@2", H: "g3@3 d3@3 g3@2", I: "bb3 a3 g3 gb3", J: "g3@3 d3@3 gb3@2",
  K: "g3 f3 eb3 d3", L: "c3@3 eb3@3 g3@2", M: "c4 d4 c4 b3 c4 bb3 a3 g3", N: "gb3@3 a3@3 gb3@2", O: "d3@3 d4@3 d3@2",
  P: "g3@2 d3 g3 f3@2 d3 f3", Q: "eb3@2 c3 eb3 d3 c4 bb3 a3", R: "d3@3 a2@2 d3 e3 gb3", S: "g2 a2 bb2 a2",
  T: "g3@2 ~ d3 g3 ~@3", U: "f3@3 a3@3 a2@2", V: "bb2@3 g3@3 f3@2", W: "bb2 c3 d3 bb2", X: "f3 g3 a3 f3",
  Y: "bb2@3 f3@3 d3@2", Z: "bb2 ~", AA: "~@3 eb3", AB: "d3 gb3", AC: "d3 bb2 a2 d3", AD: "g3@2 g3@2 ~@2 d3 bb2",
})).s("gm_cello").gain(0.3)

stack(cello, cello_2)