pods::...ioSpec(3pm)

πŸ“¦ version 2.548, in opensuse-leap 16.0

🌸 NAME 🌸

Bestie!! This page is pods::...ioSpec(3pm) from the User Contributed Perl Documentation, and it's all about SDL::AudioSpec -- SDL Bindings for structure SDL::AudioSpec. It's giving Core, Audio, Structure energy, and we're gonna go through every single detail together. No cap. πŸ’…

πŸŽ€ CATEGORY πŸŽ€

Core, Audio, Structure β€” that's the whole category vibe. πŸ’–

✨ SYNOPSIS ✨

Okay so here's the setup in code, bestie β€” copy it exactly, iykyk:

        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 πŸ’–

Okay so the SDL::AudioSpec structure is literally there to describe the format of some audio data. Periodt. It's 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're gonna detail these common members here, and yes, we're covering every one. 🫢

πŸ¦‹ 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

Literally just: To be documented. πŸ™ˆ

πŸ‘‘ AUTHORS πŸ‘‘

See "AUTHORS" in SDL. πŸ’œ


πŸ’– That's the whole page, bestie! This iconic little number is pods::...ioSpec(3pm), from User Contributed Perl Documentation, perl v5.42.0, dated 2024-05-01. Slay and go make some beautiful audio specs! πŸŽ€βœ¨

πŸ“¦ where this page comes from