pub fn try_euclidean(pulses: usize, steps: usize) -> PulseResult<Vec<usize>>
Generates Euclidean rhythm step indices after validating allocation size.
Returns an error when steps is too large to allocate safely.
steps