I had an idea for a sample rate reduction effect that would work differently than the typical S+H + fast clock reducer.
In some of our plugins, we wrap significant portions of the DSP in a variable timer (Unfiltered Audio's Sandman - Making Ambient Textures - YouTube). I got this idea from the Z-DSP, which has a manual clock input. This affects the clock rate of the entire active DSP program. When changing the clock of a delay program, for example, it drops the sampling rate of the delay while simultaneously expanding the delay “time”.
In other words, instead of input->SR->output like most effects, it would be more like SR(other DSP unit)->output.
This would be a unit like a mixer channel. If it receives an input, it would sample-and-hold that in the typical fashion. However, if a unit is loaded inside of the SR unit, that unit’s DSP callback would only be called when the S+H is updated.
So, something like this pseudocode:
if(checkSampleRateClock())
{
return internalUnitDSP() + nextInput();
}