#include <allegro5/allegro_audio.h> ALLEGRO_SAMPLE *al_create_sample(void *buf, unsigned int samples, unsigned int freq, ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf, bool free_buf)
A sample that is referred to by the samples parameter refers to a sequence channel intensities. E.g. if you’re making a stereo sample with the samples set to 4, then the layout of the data in buf will be:
Where L and R are the intensities for the left and right channels respectively. A single sample, then, refers to the LR pair in this example.
To allocate a buffer of the correct size, you can use something like this:
int sample_size = al_get_channel_count(chan_conf) * al_get_audio_depth_size(depth); int bytes = samples * sample_size; void *buffer = al_malloc(bytes);
|Allegro reference manual|