Using variables within patterns

This does not seems to work for me:

setI "pulse" $ (cI 5 "21")

setI "step" $ (cI 16 "22")

d1 $ "bd(^pulse, ^step)" 

where 21 and 22 are two MIDI knobs on my controller.
Also, it works fine with :

 d1 $ sound "bd*16"
    # djf (cF 0.5 "21")

What I mean but does not work, it is taking the default value but values are not changing while moving the knobs