Strudelify

senorita

Kay One

KeyD majorTempo140 bpm
0:00/0:00
// senorita — Kay One
// 140 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5981410; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 32 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(140/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 · trumpet · "Trompete in B"
const trumpet = note("<~@15 A B@2 C@2 D E@3 F G F H D I@3>".pickRestart({
  A: "~@3 b4 c5 b4 a4 b4", B: "[c5@2 a4@2 e4@2 c5 b4@2 g4@2 b4 c5 b4 a4 b4]/2",
  C: "[c5@2 a4@2 e4@2 c5 b4@2 g4@2 b4 c5 b4 a4 g4]/2", D: "f4@3 c5@3 c5@2 c5@2 ~@4 f4@2",
  E: "[f4@3 c5@3 c5@2 c5@2 ~@4 b4@4 c5@2 b4@2 c5@2 b4@2 g4@2 ~@2 b4@4 c5@2 b4@2 c5@2 b4@2 g4@2 ~@2 b4@2]/3",
  F: "c5@2 a4@2 e4@2 c5 b4", G: "~ g4 ~ b4 c5 b4 a4 b4", H: "~ g4 ~ b4 c5 b4 a4 g4",
  I: "[f4@3 c5@3 c5@2 c5@2 ~@4 b4@4 c5@2 b4@2 c5@2 b4@2 g4@2 ~@2 b4@4 c5@2 b4@2 c5@2 b4@2 g4@2 ~@4]/3",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "Trompete in B" · soft notes
const trumpet_soft = note("<~@8 A B C D E@2 F G ~@16>".pickRestart({
  A: "e4", B: "f#4", C: "g4", D: "a#4", E: "c5", F: "b4", G: "b4@3 ~@5",
})).s("gm_trumpet").gain(0.2)

// other · tenor sax · "Tenorsaxophon"
const tenor_sax = note("<~@16 A B C D C E C B F G H I H J H G>".pickRestart({
  A: "c4", B: "d4", C: "e4", D: "g4", E: "d#4", F: "c4 ~@2 c4 ~@2 c4 ~ c4 ~@2 c4 ~@2 c4 ~",
  G: "d4 ~@2 d4 ~@2 d4 ~ d4 ~@2 d4 ~@2 d4 ~", H: "e4 ~@2 e4 ~@2 e4 ~ e4 ~@2 e4 ~@2 e4 ~",
  I: "g4 ~@2 g4 ~@2 g4 ~ g4 ~@2 g4 ~@2 g4 ~", J: "d#4 ~@2 d#4 ~@2 d#4 ~ d#4 ~@2 d#4 ~@2 d#4 ~",
})).s("gm_tenor_sax").gain(0.3)

// other · tenor sax · "Tenorsaxophon" · soft notes
const tenor_sax_soft = note("<~@8 A B C D C E C B ~@16>".pickRestart({
  A: "c4", B: "d4", C: "e4", D: "g4", E: "d#4",
})).s("gm_tenor_sax").gain(0.2)

// other · trombone · "Posaune"
const trombone = note("<~@16 A B C D A@2 B@2 E F G H E@2 F@2>".pickRestart({
  A: "a3", B: "b3", C: "c4", D: "a#3", E: "a3 ~@2 a3 ~@2 a3 ~ a3 ~@2 a3 ~@2 a3 ~",
  F: "b3 ~@2 b3 ~@2 b3 ~ b3 ~@2 b3 ~@2 b3 ~", G: "c4 ~@2 c4 ~@2 c4 ~ c4 ~@2 c4 ~@2 c4 ~",
  H: "a#3 ~@2 a#3 ~@2 a#3 ~ a#3 ~@2 a#3 ~@2 a#3 ~",
})).s("gm_trombone").gain(0.3)

// other · trombone · "Posaune" · soft notes
const trombone_soft = note("<~@8 a3 b3 c4 a#3 a3!2 b3!2 ~@16>").s("gm_trombone").gain(0.2)

// bass · tuba
const bass = note("<~@16 A B C@2 D@2 E F G H I@2 J@2 K L>".pickRestart({
  A: "a2", B: "b2", C: "c3", D: "f2", E: "e2", F: "g2", G: "a2 ~@2 a2 ~@2 a2 ~ a2 ~@2 a2 ~@2 a2 ~",
  H: "b2 ~@2 b2 ~@2 b2 ~ b2 ~@2 b2 ~@2 b2 ~", I: "c3 ~@2 c3 ~@2 c3 ~ c3 ~@2 c3 ~@2 c3 ~",
  J: "f2 ~@2 f2 ~@2 f2 ~ f2 ~@2 f2 ~@2 f2 ~", K: "e2 ~@2 e2 ~@2 e2 ~ e2 ~@2 e2 ~@2 e2 ~",
  L: "g2 ~@2 g2 ~@2 g2 ~ g2 ~@2 g2 ~@2 g2 ~",
})).s("gm_tuba").gain(0.3)

// bass · tuba · soft notes
const bass_soft = note("<~@8 a2 b2 c3!2 f2!2 e2 g2 ~@16>").s("gm_tuba").gain(0.2)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@16 [x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~]!6 [x ~@2 x ~@12] ~@9>").gain(0.2)

// drums · snare
const snare = s("sd").struct("<A B A B A B A B A B A B A B A B C@6 D@2 ~@8>".pickRestart({
  A: "x!4", B: "x ~@3 x ~@3 x ~@2 x ~@2 x ~", C: "x!16", D: "x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~",
})).gain(0.2)

// drums · hihat
const hihat = s("hh").struct("<~@8 [~ x ~ x ~ x ~ x]!8 ~@8 [x!16]!8>").gain(0.3)

// drums · crash
const crash = s("cr").struct("<~@23 [x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~] ~@8>").gain(0.3)

stack(
  trumpet, trumpet_soft, tenor_sax, tenor_sax_soft, trombone, trombone_soft, bass, bass_soft, kick, kick_soft, snare,
  hihat, crash
)