What audio formats are supported by Raylib?
Today I learnt …
A couple of weeks ago a friend convinced me, without much difficulty as it happens, that making games in Go and Raylib is an enjoyable way to spend your free time. I started off by recreating that stalwart of the 1970s, Pong.
Raylib’s documentation is as minimal as it gets. There’s a dense cheatsheet and a suggestion that if you want to learn you should read the code. And so, when I wanted to add some sound to the game, these were the first places I went to find out which audio formats are supported. The cheatsheet wasn’t much use: it simply tells you that you can load sound from a file using LoadSound
, or load wave data from LoadSoundFromWave
. So off to GitHub I went.
From there it was pretty easy to discover what’s available. In src/config.h
there are some configuration flags that hint at the supported audio formats:
- Waveform Audio File Format (
.wav
) - Ogg Vorbis (
.ogg
) - MP3
- Quite OK Audio (
.qoa
) - XM (
.xm
) - MOD music (
.mod
) - Free Lossless Audio Codec (FLAC,
.flac
)
Raylib supports the first six by default, but support for FLAC isn’t included unless you compile it in yourself. If you want it, you’ll need a customised build with the SUPPORT_FILEFORMAT_FLAC
flag turned on. Try to play a FLAC file without it and Raylib will log an error:
WARNING: WAVE: Data format not supported
Of course, after all that I discovered that this is briefly documented in the FAQ and in the raudio
module README. Today I learnt that if someone promises minimal documentation, you shouldn’t take their word for it.