There would be multiple approaches to making Lysergic feel in sync with BPM. One approach might be to replace the random expression triggers (currently specified in terms of seconds) with triggers from the BPM clock. For example in the Frequency field, in place of:
1 s randExp s random abs * 12 nn + 60 nn
you could instead use:
!BPM bpm random abs * 12 nn + 60 nn
and the other parameter fields could be:
FreqScale = 1 + (!BPM bpm random)
FormantScale = 0.5 + (!BPM bpm random abs smooth: !BPM bpm)
TimeIndex = !BPM bpm random abs
An alternative approach might be to find Chopper (ctrl+B to search for it in the Prototypes) and place it at the end of the signal chain. This will chop Lysergic into longer and shorter bits (according to !DutyCycle) at a rate controlled by !BPM.
Hope that helps give you a starting point. Curious to hear your results!