FmBuffer

Inside the fm_server audio moves from one element to another inside a FmBuffer. Each of them contains an area in which the samples (32-bit floating point numbers) are stored, separated by channel, in addition to some other data (number of samples used, space reserved...).

A particularity of FmBuffers is that they can reserve more space than they actually need to store audio data, allowing them to be resized on-the-fly without expensive reallocations.