Strudelify

Rumba Calypso

Jamaican Traditional

KeyG majorTempo120 bpm
0:00/0:00
// Rumba Calypso — Jamaican Traditional
// 120 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5985157; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 33 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 · [...]/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 · recorder · "直笛"
const recorder = note("<A B C D E F G H I J K@2 L J K@2 M B C D E F G H I J K@2 L J K@2 M>".pickRestart({
  A: "~@3 b5", B: "b5 c6 b5 a5 g5 a5 g5 f#5", C: "b5@2 ~@2 b5 d6@2 g5", D: "f#5@4 a5 c6@2 f#5", E: "g5 ~ g5 ~",
  F: "d6 e6 d6 c6 b5 c6 b5 a5", G: "g5 d6@2 d5 g5@2 b5@2", H: "a5 c6@2 d5 f#5@2 a5@2", I: "g5 g6 ~ d5", J: "f#5!2 ~@2",
  K: "d5!2 ~@2", L: "g5!2 ~ d5", M: "g5!2 ~ b5",
})).s("gm_recorder").gain(0.3)

// other · recorder · "直笛"
const recorder_2 = note("<~ A@2 B C A@2 B D E F G H E F G I A@2 B C A@2 B D E F G H E F G I>".pickRestart({
  A: "[g6@10 ~@2 g6 b6@2 d6]/2", B: "d6@4 d6 f#6@2 d6", C: "d6 ~ d6 ~", D: "b5 ~ g6 d6", E: "d6@2 e6 f#6",
  F: "g6 b6@2 d6 g6@2 b6@2", G: "a6 c7@2 d6 f#6@2 a6@2", H: "g6 b6 ~ d6", I: "g6!2 ~@2",
})).s("gm_recorder").gain(0.2)

stack(recorder, recorder_2)