When should I choose one over the other? What are the advantages / disadvantages of each?
I use boolean triggers only for UI buttons and schmitt triggers for cv inputs.
One advantage of the Schmitt is that you can do
Schmitt.process(rescale(x, xmin, xmax, min, max))
With this you can trigger it with different ranges not only when the signal goes from 0 to 1.
Does boolean always trigger when true? schmitt only triggers once if true, correct?
The boolean triggers only when the variable you are passing to it changes from false to true.
In the Real World, Schmitt triggers have hysteresis.
The input signal has to go to the other extreme before it changes, not just above or below some single threshold. Useful for cleaning up noisy inputs and debouncing mechanical keyswitches. (the green B is the Schmitt output.)
The orange A trace is the output of a simple comparator. If the input goes higher than (in this model) 50%, output goes high. As soon as it goes under 50%, output goes low.
Full disclosure: I’m too new to VCV Rack to be familiar with the behaviour of “boolean triggers”. Arte they different from simple AND / OR / NOR / XOR / NOT etc. logic gates?