Strudelify

Manhã de Carnaval (Black Orpheu)

Luis Bonfa

KeyB♭ majorTempo120 bpm
0:00/0:00
// Manhã de Carnaval (Black Orpheu) — Luis Bonfa
// 120 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/800661; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 41 bars on a 24-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 · flute · "Flûte 1"
const flute = note("<A B@2 C D E F G H E I G J K@2 L@2 M@2 G H E F G H N O P Q R S T U G V W@2 X@2 Y P>".pickRestart({
  A: "~@4 g4 a4", B: "bb4 c5 bb4 a4 g4 a4", C: "bb4 c5 bb4 a4 g4 f4", D: "g4@11 ~@7 d5@6", E: "bb5@15 ~ a5@4 g5@4",
  F: "g5@15 ~ gb5@4 a5@4", G: "d5@23 ~", H: "~@3 d5", I: "g5@15 ~ f5@4 a5@4", J: "~@3 d5 eb5 f5",
  K: "[g5@9 c5@3 c5@23 ~ c5@4 d5@4 eb5@4]/2", L: "[f5@9 bb4@3 bb4@23 ~ bb4@4 c5@4 d5@4]/2",
  M: "[eb5@9 a4@3 a4@23 ~ a4@4 bb4@4 c5@4]/2", N: "ab5@15 ~ g5@4 f5@4", O: "f5@15 ~ eb5@4 d5@4", P: "g5@23 ~",
  Q: "~@3 c5", R: "c5@15 ~ d5@4 eb5@4", S: "a5@23 ~", T: "~@3 bb4@3 bb4@2 c5@2 d5@2", U: "g5@17 ~ gb5@6",
  V: "~@3 d5@3 d5@2 bb5@2 a5@2", W: "[g5@17 ~@3 g5@2 a5@2]/2", X: "bb5 c6 bb5 a5 g5 a5", Y: "bb5 c6 bb5 a5 g5 f5",
})).s("gm_flute").gain(0.3)

// bass · electric bass finger · "Basse électrique"
const bass = note("<~@5 A B A B A C D E F G D H I J E B A B A@2 K A F@2 L B A B A B A M N@3 O>".pickRestart({
  A: "d2 g2@2 g2 d2 g2 d2 g2", B: "c2 a2@2 a2 d2 a2 d2 a2", C: "c2 g2@2 g2 c2 f2 c2 f2", D: "bb1 f2@2 f2 bb1 f2 bb1 f2",
  E: "bb1 g2@2 g2 d2 g2 d2 g2", F: "c2 g2@2 g2 c2 g2 c2 g2", G: "c2 f2@2 f2 c2 f2 c2 f2",
  H: "bb1 eb2@2 eb2 bb1 eb2 bb1 eb2", I: "a1 eb2@2 eb2 a1 eb2 a1 eb2", J: "a1 d2@2 d2 a1 d2 a1 d2",
  K: "d2 ab2@2 ab2 d2 ab2 d2 ab2", L: "c2 eb2@2 eb2 c2 eb2 c2 eb2", M: "d2", N: "c2 g1", O: "g2",
})).s("gm_electric_bass_finger").gain(0.3)

// drums · kick
const kick = s("bd").struct("<~ A@3 B C@14 D ~ C@15 D ~@4>".pickRestart({
  A: "x!2", B: "x!2 ~@4", C: "x ~@2 x!2 ~@2 x", D: "x",
})).gain(0.3)

// drums · rim
const rim = s("rim").struct("<~@5 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A C ~@4>".pickRestart({
  A: "x ~@2 x ~@2 x ~", B: "~@2 x ~@2 x ~@2", C: "x",
})).gain(0.3)

// drums · hihat
const hihat = s("hh").struct("<A B@3 C D@14 E ~ D@15 E ~@4>".pickRestart({
  A: "~@4 x!2", B: "x!6", C: "x!2 ~@4", D: "x!8", E: "x",
})).gain(0.3)

stack(flute, bass, kick, rim, hihat)