SoundBuffer¶
Functions
-
sfSoundBuffer *sfSoundBuffer_createFromFile(const char *filename)¶
Create a new sound buffer and load it from a file.
Here is a complete list of all the supported audio formats: ogg, wav, flac, mp3, aiff, au, raw, paf, svx, nist, voc, ircam, w64, mat4, mat5 pvf, htk, sds, avr, sd2, caf, wve, mpc2k, rf64.
- Parameters:
filename – Path of the sound file to load
- Returns:
A new sfSoundBuffer object (NULL if failed)
-
sfSoundBuffer *sfSoundBuffer_createFromMemory(const void *data, size_t sizeInBytes)¶
Create a new sound buffer and load it from a file in memory.
Here is a complete list of all the supported audio formats: ogg, wav, flac, mp3, aiff, au, raw, paf, svx, nist, voc, ircam, w64, mat4, mat5 pvf, htk, sds, avr, sd2, caf, wve, mpc2k, rf64.
- Parameters:
data – Pointer to the file data in memory
sizeInBytes – Size of the data to load, in bytes
- Returns:
A new sfSoundBuffer object (NULL if failed)
-
sfSoundBuffer *sfSoundBuffer_createFromStream(sfInputStream *stream)¶
Create a new sound buffer and load it from a custom stream.
Here is a complete list of all the supported audio formats: ogg, wav, flac, mp3, aiff, au, raw, paf, svx, nist, voc, ircam, w64, mat4, mat5 pvf, htk, sds, avr, sd2, caf, wve, mpc2k, rf64.
- Parameters:
stream – Source stream to read from
- Returns:
A new sfSoundBuffer object (NULL if failed)
-
sfSoundBuffer *sfSoundBuffer_createFromSamples(const int16_t *samples, uint64_t sampleCount, unsigned int channelCount, unsigned int sampleRate, sfSoundChannel *channelMapData, size_t channelMapSize)¶
Create a new sound buffer and load it from an array of samples in memory.
The assumed format of the audio samples is 16 bits signed integer (int16_t).
- Parameters:
samples – Pointer to the array of samples in memory
sampleCount – Number of samples in the array
channelCount – Number of channels (1 = mono, 2 = stereo, …)
sampleRate – Sample rate (number of samples to play per second)
channelMapData – Pointer to the array of channel map data
channelMapSize – Size of channel map data array
- Returns:
A new sfSoundBuffer object (NULL if failed)
-
sfSoundBuffer *sfSoundBuffer_copy(const sfSoundBuffer *soundBuffer)¶
Create a new sound buffer by copying an existing one.
- Parameters:
soundBuffer – Sound buffer to copy
- Returns:
A new sfSoundBuffer object which is a copy of soundBuffer
-
void sfSoundBuffer_destroy(const sfSoundBuffer *soundBuffer)¶
Destroy a sound buffer.
- Parameters:
soundBuffer – Sound buffer to destroy
-
bool sfSoundBuffer_saveToFile(const sfSoundBuffer *soundBuffer, const char *filename)¶
Save a sound buffer to an audio file.
Here is a complete list of all the supported audio formats: ogg, wav, flac, mp3, aiff, au, raw, paf, svx, nist, voc, ircam, w64, mat4, mat5 pvf, htk, sds, avr, sd2, caf, wve, mpc2k, rf64.
- Parameters:
soundBuffer – Sound buffer object
filename – Path of the sound file to write
- Returns:
true if saving succeeded, false if it failed
-
const int16_t *sfSoundBuffer_getSamples(const sfSoundBuffer *soundBuffer)¶
Get the array of audio samples stored in a sound buffer.
The format of the returned samples is 16 bits signed integer (int16_t). The total number of samples in this array is given by the sfSoundBuffer_getSampleCount function.
- Parameters:
soundBuffer – Sound buffer object
- Returns:
Read-only pointer to the array of sound samples
-
uint64_t sfSoundBuffer_getSampleCount(const sfSoundBuffer *soundBuffer)¶
Get the number of samples stored in a sound buffer.
The array of samples can be accessed with the sfSoundBuffer_getSamples function.
- Parameters:
soundBuffer – Sound buffer object
- Returns:
Number of samples
-
unsigned int sfSoundBuffer_getSampleRate(const sfSoundBuffer *soundBuffer)¶
Get the sample rate of a sound buffer.
The sample rate is the number of samples played per second. The higher, the better the quality (for example, 44100 samples/s is CD quality).
- Parameters:
soundBuffer – Sound buffer object
- Returns:
Sample rate (number of samples per second)
-
unsigned int sfSoundBuffer_getChannelCount(const sfSoundBuffer *soundBuffer)¶
Get the number of channels used by a sound buffer.
If the sound is mono then the number of channels will be 1, 2 for stereo, etc.
- Parameters:
soundBuffer – Sound buffer object
- Returns:
Number of channels
-
sfSoundChannel *sfSoundBuffer_getChannelMap(const sfSoundBuffer *soundBuffer, size_t *count)¶
Get the map of position in sample frame to sound channel.
This is used to map a sample in the sample stream to a position during spatialization.
- Parameters:
soundBuffer – Sound buffer object
count – Pointer to a variable that will be filled with the number of channels in the map
- Returns:
Map of position in sample frame to sound channel
-
sfTime sfSoundBuffer_getDuration(const sfSoundBuffer *soundBuffer)¶
Get the total duration of a sound buffer.
- Parameters:
soundBuffer – Sound buffer object
- Returns:
Sound duration