Можно иметь буфер фиксированного размера, но, кстати, не знаю как будет работать изменение буфера в процессе воспроизведения источника, который в данный момент крутит этот буфер.
Если данные копируются при добавлении - всё круто.
Если нет - придётся или делать ротацию буферов, или тупо удалять использованные.
При выгребании данных из микрофона - каждый раз создаётся новая SoundData, поэтому мы выкидываем использованные, как туалетную бумажку.