Syntax struggles with remap()

I think I fatally misunderstand something with the syntax. Why doesn't remap() simply transform the n() to "4 5 9 4 5"?

let remap = register('remap', (mapping, x) => {return mapping[x]})

s("fmpiano")
  .euclid(11,16)
  .n("1 2 3 1 2".remap("0459000000"))
  // .n("1 2 3 1 2").remap("0459000000")
  .scale("C:minor")

I also thought of solving the issue without registering but no luck:

s("fmpiano")
  .euclid(11,16)
  .n("1 2 3 1 2"
  .when("1", x => x.add("0459000000"[x]).sub(x))
  )
  .scale("C:minor")

Probably I make it more complicated than I should.

Maybe this one?

// this doesn't seem to work
s("fmpiano")
  .euclid(11,16)
  .n("1 2 3 1 2".pick("0 4 5 9"))
  .scale("C:minor")
// this does work but I want to type less
s("fmpiano")
  .euclid(11,16)
  .n("1 2 3 1 2".pick(["0","4","5","9"]))
  .scale("C:minor")

OK, I think maybe I found the solution.

s("fmpiano")
  .euclid(11,16)
  .n("1 2 3 1 2".pick(map("0 4 5 9")))
  .scale("C:minor")

The solution delivered by froos on Discord seems to be working just fine.

let yoko = register('yoko',(patt)=>patt.queryArc(0,1).map(h=>h.value))

setcpm(66/4)

s("fmpiano")
  .euclid(11,16)
  .n("1 2 3 1 2".pick("0 2 5 9".yoko()))
  .scale("C:minor")