Strudelify

tum hi ho

Arijit Singh

KeyA majorTempo100 bpm
0:00/0:00
// tum hi ho — Arijit Singh
// 100 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3798526; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 80 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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 · "Violoncello"
const cello = note(`<
  A@2 B C D E F G H E I J K L M N O P Q@2 R S Q@2 R T U V W X U V W X ~@4 Y I J K L M Z AA AB Q@2 R S Q@2 R T U V W X U
  V W X AC AD AE AF AG AH AI AJ AK@2 AL AM@3 AN@2 AO
>`.pickRestart({
  A: "e2 g2 b2@2 c3 g2 a2 f#2", B: "b2@2 e3 d3!2 c3!2 b2", C: "a2 g2 a2 c3 b2!2 b2@2", D: "a2@2 a2 g2 a2@2 a2 g2",
  E: "f#2@2 d2 e2 e2@4", F: "b2!2 e3 d3!2 c3!2 b2", G: "a2 g2 a2 c3 b2!3 g2", H: "g2 a2!2 g2 a2@2 a2 g2",
  I: "g2 a2 b2@4 g2@2 a2@6 ~@2", J: "g2 a2 b2@4 g2@2 a2@8", K: "f#2@4 a2@2 g2@6 ~@2 f#2 e2",
  L: "f#2@2 d2 e2@2 f#2 g2 a2", M: "b2@4 g2@2 a2@6 ~@2 g2 a2", N: "b2@2 [g2,d3] a2@3 a2@2", O: "~@4 g2 f#2@2 e2",
  P: "f#2 ~", Q: "a2 b2@2 a2 b2@2 a2@2", R: "g2 a2@2 g2 a2@2 g2@2", S: "f#2 e2 ~ e2 f#2 g2 a2 g2", T: "f#2 e2 ~@6",
  U: "b2 c3", V: "a2 b2", W: "a2!2", X: "f#2 e2", Y: "~@3 f#2", Z: "b2@4 [g2,d3]@2 a2@6 ~@2 f#2!2",
  AA: "f#2@4 a2@2 g2@8 f#2 e2", AB: "f#2@2 d2 e2@2 ~@3", AC: "~ f#2@2 ~ f#2@2 f#2@2 e2@2 f#2@4 f#2@2",
  AD: "c3!2 b2!2 a2 b2@2 b2", AE: "e3 d#3 e3!2 b2!2 a2!2", AF: "g2 a2@2 g2@4 g2", AG: "g2 f#2@6 ~",
  AH: "~ g2 a2 b2@4 g2@2 a2@6 ~", AI: "~ g2 a2 b2@4 g2@2 a2@7", AJ: "~ f#2@4 a2@2 g2@6 ~@2 f#2",
  AK: "[e2 f#2@4 d2@2 e2@4 f#2@2 g2@2 a2@2 b2@4 g2@2 a2@6 ~@2 g2]/2", AL: "a2 b2@4 [g2,d3]@2 a2@6 ~@2 f#2",
  AM: "[f#2 f#2@4 a2@2 g2@12 f#2@2 e2@2 f#2@8 d2@4 e2@12 f#2]/3", AN: "[f#2 ~@8 g2@2 f#2@4 e2@2 f#2@8 d2@4 ~@3]/2",
  AO: "~ e2",
})).s("gm_cello").gain(0.3)

stack(cello)