Strudelify

maa tujhe salaam

A. R. Rahman

KeyB♭ majorTempo120 bpm
0:00/0:00
// maa tujhe salaam — A.R. Rahman
// 120 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/6273371; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 53 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 · [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 · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  A B C D E F G H ~@11 I J K J K J L M N@2 O P Q@2 R@2 S@2 T@2 U@2 T@2 U@2 V@2 W@2 V@2 X@2
>`.pickRestart({
  A: "d4@6 d4!2 d4@4 d4@4", B: "f4@6 f4!2 f4@4 f4@4", C: "g4 ~ g4!2 g4@4 ~@2 eb4 f4 g4@2 a4@2",
  D: "bb4!3 ~ f4!3 ~ d4!3 ~ bb3!3 ~", E: "bb3@2 c4@3 eb4 f4 eb4", F: "f4", G: "eb4@2 f4@3 a4 bb4 a4", H: "bb4",
  I: "~@7 d5", J: "c5 eb5@2 d5 bb4@2 f4@2", K: "f4@6 ~ d5", L: "bb4!2 g4@2 bb4!2 f4@2", M: "bb4!2 a4@2 bb4@2 ~@2",
  N: "c5!2 ~@2 c5!2 ~@2", O: "c5@2 bb4 c5@2 ~@3 c5@2 bb4 c5@2 ~@3", P: "c5@2 bb4 c5@8 ~ d5@2 ~@2",
  Q: "[c5 d5@2 bb4 bb4@10 d5 ~]/2", R: "[c5 d5@2 bb4 bb4@10 d5!2]/2", S: "[c5 d5@2 bb4 bb4@8 ~@4]/2",
  T: "[f3@4 bb3 c4 d4@18 ~@2 bb3@2 ~@2 f3@2]/2", U: "c4/2", V: "[f3@2 bb3@2 bb3@2 c4 d4@5 c4@4]/2",
  W: "[d4@2 c4@2 bb3@2 g3 bb3@9]/2", X: "[d4@2 c4@2 bb3@2 g3 ~ d4@8, ~@7 bb3@9]/2",
})).s("gm_trumpet").gain(0.3)

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  ~@4 A B ~@10 C D E F G H I J I K L M@2 N O P@2 Q@2 R@2 S T U V S T U@2 W@2 X Y W@2 Z@2
>`.pickRestart({
  A: "~@5 bb4!3", B: "bb4 a4 g4 f4", C: "bb3!4 bb3@2 bb3!2", D: "bb3 ~ bb3!2 bb3@2 bb3@2",
  E: "bb3!2 d4@2 d4 eb4 d4 eb4", F: "g4@2 ab4@2 g4@2 ab4@2 g4@3 f4 eb4@4", G: "bb3", H: "bb3 ~ c4 ~", I: "f4",
  J: "bb3 ~ bb3 ~", K: "bb4!2 g4@2 bb4!2 f4@2", L: "bb4!2 a4@2 bb4@2 ~@2", M: "c4!2 ~@2 c4!2 ~@2",
  N: "c5@2 bb4 c5@2 ~@3 c5@2 bb4 c5@2 ~@3", O: "c5@2 bb4 c5@8 ~ d5@2 ~@2", P: "[c5 d5@2 bb4 bb4@10 d5 ~]/2",
  Q: "[c5 d5@2 bb4 bb4@10 d5!2]/2", R: "[c5 d5@2 bb4 bb4@8 ~@4]/2", S: "f4 bb4", T: "d5 f5", U: "bb4 ~ d5 ~ bb4 a4 ~@2",
  V: "a4 eb4", W: "[f4@2 bb4@2 bb4@2 c5 d5@5 f5@4]/2", X: "d5@2 eb5@2 d5@2 c5 bb4", Y: "f5 d5 eb5 c5 d5 bb4 c5 bb4",
  Z: "[d5@2 eb5@2 d5@2 c5 [bb4,bb5]@9]/2", // Bb
})).s("gm_clarinet").gain(0.3)

// other · french horn · "Horn in E♭"
const french_horn = note(`<
  A B C D E F G H ~@4 F@8 A I A I B J B K@2 L M N I ~ I F@4 A@2 F@2 A@2 O F@3 O F@3
>`.pickRestart({
  A: "f3", B: "d3", C: "eb3@3 ~", D: "bb3 f3 d3 bb2", E: "~@5 a3 bb3 a3", F: "bb3", G: "g3@2 a3@3 d4!3", H: "d4",
  I: "g3!2 ~@2 a3!2 ~@2", J: "eb3!2", K: "c4!2 ~@2 c4!2 ~@2", L: "a3 bb3", M: "c4 eb4", N: "d4 ~@3", O: "g3",
})).s("gm_french_horn").gain(0.21)

// bass · tuba · "Euphonium (Treble Clef)"
const bass = note("<A B C D E F G H I ~ I ~ J@8 K@5 L M N@2 O@2 P@5 Q R@2 S@2 R@2 S@2 T U V W T U W J>".pickRestart({
  A: "bb2 ~@3", B: "d3 ~@3", C: "g2@3 ~", D: "f2", E: "bb2@2 c3@3 f2!3", F: "f3 eb3 d3 c3", G: "bb2@2 a2@3 f2!3",
  H: "bb2", I: "bb2@4 bb2@4 bb2@4 bb2 ~ bb2@2", J: "f3", K: "d3 ~@2 d3@3 f3@2", L: "eb3!2", M: "d3!2",
  N: "c3!2 ~@2 c3!2 ~@2", O: "a2 ~", P: "bb3 ~@2 bb3@3 f3@2", Q: "bb3 a3", R: "bb3 ~ bb3@2 bb3!2 ~@2",
  S: "[bb3 ~ bb3@2 bb3!2 ~ c4@2 ~ c4@2 c4!2 ~@2]/2", T: "d3 ~ d3@2 d3!2 ~@2", U: "bb2 ~ bb2@2 bb2!2 ~@2",
  V: "eb3 ~ eb3@2 eb3!2 ~@2", W: "f3 ~ f3@2 f3!2 ~@2",
})).s("gm_tuba").gain(0.14)

// bass · tuba · "E♭ Tuba (Treble Clef)"
const bass_2 = note(`<
  A B C D ~ D E D F ~ F ~ G ~ G ~ G ~ G ~ H@5 I J K@2 L M N O N O N P Q R S T Q R S T P U V D P U V D
>`.pickRestart({
  A: "bb1 ~@3", B: "d2 ~@3", C: "eb2 ~ eb2!2 eb2@8 ~@4", D: "bb2", E: "bb2@2 a2@3 f2!3",
  F: "bb2@4 bb2@4 bb2@4 bb2 ~ bb2@2", G: "bb2 ~ bb2 ~ bb2 ~ bb2!2", H: "bb2 ~@2 bb2@3 f2@2", I: "g2!2", J: "f2!2",
  K: "f2!2 ~@2 f2!2 ~@2", L: "a2 ~", M: "c3 ~", N: "bb2@3 f2", O: "g2@3 f2", P: "g2 a2", Q: "bb2@4 bb2!2 ~@2",
  R: "g2@4 g2!2 ~@2", S: "eb2", T: "f2", U: "d3 c3", V: "eb2 g2",
})).s("gm_tuba").gain(0.11)

stack(trumpet, clarinet, french_horn, bass, bass_2)

More by A. R. Rahman