so, i thought about this more, and realized that 28hz is quite close to being 2/3 of 44.1
so, it MIGHT be enough to do the following:
for every 3 samples, output the first sample, the second sample, and then instead of playing the 3rd sample, repeat the second sample.
so, if my block looks like: 0.597, 0.604, 0.628, 0.651.. then the output block would be 0.597, 0.604, 0.604, 0.651 ...
i still have no idea how i would do that.