Strudelify

Onde Anda Você

Tiago H.

KeyA majorTempo100 bpm
0:00/0:00
// Onde Anda Você — Tiago H.
// 100 bpm, 2/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5949188; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 113 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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.

// other · tenor sax · "Saxofone Tenor"
const tenor_sax = note(`<
  ~@2 A B@2 C@2 D@2 E F G H I J K L@2 M N O P ~@8 J K L@2 M N O P ~@5 Q R S@2 T U ~@9 V ~@7 W@2 X@2 Y@2 Z@2 V AA AB@2 J
  K L@2 AC AD AE@2 AF@2 AG AH AI AJ AK@2 AL AM U AN W@2 X@2 Y@2 Z@2 V AA AB@2 AO AP AQ
>`.pickRestart({
  A: "e3@2 ~ e3", B: "[a3 g#3 g3 f3@3 ~ f3]/2", C: "[f3!2 e3 a3@3 a3 g3]/2", D: "[a3!2 g3 a3@3 ~@2]/2",
  E: "f#3 f3 e3 d#3", F: "d3 ~@2 d3", G: "~@2 e3 d3", H: "e3@2 e3 g3", I: "e3@5 c3@5 ~ a2@5",
  J: "c3@4 e3@4 g3 a3@3 g3@4", K: "f3 e3 d3 c3", L: "c#3/2", M: "d3@2 ~ d3", N: "c3@2 ~ c3", O: "b2@2 ~ b2", P: "a#2 ~",
  Q: "d3 f3", R: "g3", S: "[g3 f#3 f3 d#3@5]/2", T: "d#3 a#2", U: "c3 e3 g3 c4", V: "d3 [a3,d4,f4]@2 d3",
  W: "f#2@2 [e3,a3,c4] f#2", X: "f2@2 [d3,g#3,c4] f2", Y: "e2@2 [e3,g3,b3] d3", Z: "d#3@2 [a3,c4,f#4] d#3",
  AA: "d2 e2 f2 f#2", AB: "g2@2 [g3,b3,f4] b2", AC: "d3@2 [a3,d4,f4] d3", AD: "c3@2 [a3,d4,f4] c3",
  AE: "b2@2 [g3,b3,f4] b2", AF: "e3@2 [g3,c4,e4] e3", AG: "d#3 f#3 c3 d#3", AH: "a2 c3 f#2 a2",
  AI: "d2@2 [f3,a3,d4] d2", AJ: "f2@2 [f3,a3,d4] f2", AK: "g2@2 [g3,b3,f4] g2", AL: "a#2 [g#3,d4,g4] [g#3,d4,g4]@2",
  AM: "[g#3,d4,g4]!2 a#2@2", AN: "a#3 g3 e3 c3", AO: "e3 g3 c3 e3", AP: "g2 c3 e2 g2",
  AQ: "~@3 e4@13, c3, ~ g3@15, ~ b3@7",
})).s("gm_tenor_sax").gain(0.3)

// other · tenor sax · "Saxofone Tenor"
const tenor_sax_2 = note(`<
  ~@21 A B C@2 D@2 E F G ~@7 A B C@2 D@2 ~@6 H I J K L F M N O P Q R E S@2 T@2 I J K L F M N O P Q R U V@2 W X@2 Y@2 Z@2
  AA@2 AB@2 AC@2 AD AE@2 T@2 I J K L F M N O P Q R U AF@3
>`.pickRestart({
  A: "~@2 d3 f3", B: "e3 ~", C: "[g3 f#3 f3 d#3@5]/2", D: "[f#3 f3 e3 d3@3 ~@2]/2", E: "d3 f3", F: "e3",
  G: "g3 a3 b3 g3", H: "e3@2 e3 f3", I: "f#3", J: "a3 f#3", K: "f3", L: "g#3 f3", M: "g3 e3", N: "d#3", O: "f#3 d#3",
  P: "d3", Q: "f3 e3 d3 c3", R: "b2", S: "g3/2", T: "[e3@6 e3 f3]/2", U: "d3 g3 e3 g2", V: "c3/2", W: "~ g3!2 a3",
  X: "[c4 a3 g3 e3@3 e3 d3]/2", Y: "[e3!2 d3 e3@3 d3 e3]/2", Z: "[g3 e3 d3 b2@2 b2@2 a2]/2",
  AA: "[b2!2 a2 b2@3 a2 b2]/2", AB: "[e3 d3 b2 a2@3 a2 g2]/2", AC: "[a2!2 g2 a2@3 a2 g2]/2", AD: "a2@2 a2 g2",
  AE: "a#2/2", AF: "c3/3",
})).s("gm_tenor_sax").gain(0.3)

stack(tenor_sax, tenor_sax_2)