Use direct intervals instead of clear_markers which has to guess.
Remove markers that are older than the ringbuffers capacity.
replaced empty data with None internally
Simplified the block selection
Directly split markers instead of using clear_markers to avoid rounding errors
Add a warning for subsampling if it leads to a loss of samples.