I'm not sure the second can be done with abstraction: could you trust a
[bang~]
|
[0, 64 1.451247(
|
[vline~]
you can use [line~ ] instead, which runs on the block grid anyway.
[bang~ ]
|
[0, 64 'x' ( <-- 0<x<2bsms, bsms -> blocksize duration in milliseconds
|
[line~ ]
this should be simpler and cheaper too.
In case you run with blocksizes under 64, i think [bang~ ] will refuse to bang faster than that. So a custom [bang~ ] would be needed.
ciao