---
name: "SDL::AudioSpec"
section: "3pm"
platform: "linux"
package: "libsdl-perl"
version: "2.548-5+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SDL::AudioSpec"
---

# SDL::AudioSpec(3pm)

## NAME

SDL::AudioSpec -- SDL Bindings for structure SDL::AudioSpec

## CATEGORY

Core, Audio, Structure

## SYNOPSIS

```
 use SDL;
 use SDL::AudioSpec;

 SDL::init(SDL_INIT_AUDIO);

 my $audio_spec = SDL::AudioSpec->new();

     $audio_spec->freq(22050);          # 22050Hz - FM Radio quality
     $audio_spec->format(AUDIO_S16SYS); # 16-bit signed audio
     $audio_spec->samples(8192);        # Large audio buffer reduces risk of dropouts but increases response time
     $audio_spec->channels(1);          # Mono
     $audio_spec->callback('main::callback');

 sub callback
 {
     # do something here
 }
```

## DESCRIPTION

The `"SDL::AudioSpec"` structure is used to describe the format of some audio data. This structure is used by `"SDL::Audio::open_audio"`  and `"SDL::Audio::load_wav"`.  While all fields are used by `"SDL::Audio::open_audio"`, only `"freq"`, `"format"`, `"samples"` and `"channels"` are used by `"SDL::Audio::load_wav"`.  We will detail these common members here.

## METHODS

### freq

The number of samples sent to the sound device every second. Common values are 11025, 22050 and 44100. The higher the better.

### format

Specifies the size and type of each sample element. Values it can take are:

- AUDIO\_U8

  Unsigned 8-bit samples.

- AUDIO\_S8

  Signed 8-bit samples.

- AUDIO\_U16 or AUDIO\_U16LSB

  not supported by all hardware (unsigned 16-bit little-endian)

- AUDIO\_S16 or AUDIO\_S16LSB

  not supported by all hardware (signed 16-bit little-endian)

- AUDIO\_U16MSB

  not supported by all hardware (unsigned 16-bit big-endian)

- AUDIO\_S16MSB

  not supported by all hardware (signed 16-bit big-endian)

- AUDIO\_U16SYS

  Either AUDIO\_U16LSB or AUDIO\_U16MSB depending on hardware CPU endianness

- AUDIO\_S16SYS

  Either AUDIO\_S16LSB or AUDIO\_S16MSB depending on hardware CPU endianness

### channels

The number of separate sound channels. 1 is mono (single channel), 2 is stereo (dual channel).

### samples

When used with `"SDL::Audio::open_audio"` this refers to the size of the audio buffer in samples. A sample is a chunk of audio data of the  size specified in format multiplied by the number of channels. When the `"SDL::AudioSpec"` is used with `"SDL::Audio::load_wav"` samples is  set to 4096.

### callback

To be documented.

## AUTHORS

See "AUTHORS" in SDL.
