C++ std::audio library theory and definitions: sample: a single sample of audio data. can be represented by a signed integer, float or double. must pass the following test to be a valid sample type: ((std::is_integral::value && std::is_signed::value) || std::is_floating_point::value) == true or could be constrained by: std::is_arithmetic::value==true if unsigned samples are allowed/desired frame: a collection of 0-N samples each sample represents an individual channel of audio data indexable as an array (should N be runtime or compile time?) buffer: a collection of 0-N frames indexable as an array (should N be runtime or compile time?) ideally maintains a continous piece of memory to house its frames device /interface: a device recognized by the system as being capable of reading and writing audio data can be polled for information regarding the capabilities of the device/interface audio callback: a function/lambda/functor registered with the library to be called once per buffer interval sampling rate: the number of samples per second of audio data frame interval: the length of a frame in seconds (1.0/sample_rate) buffer interval: the length of a buffer in seconds (frame_interval* buffer_size)