Skip to content

Latest commit

 

History

History
226 lines (150 loc) · 9.9 KB

class_audiostreamsample.rst

File metadata and controls

226 lines (150 loc) · 9.9 KB
github_url:hide

AudioStreamSample

Inherits: :ref:`AudioStream<class_AudioStream>` < :ref:`Resource<class_Resource>` < :ref:`RefCounted<class_RefCounted>` < :ref:`Object<class_Object>`

Stores audio data loaded from WAV files.

Description

AudioStreamSample stores sound samples loaded from WAV files. To play the stored sound, use an :ref:`AudioStreamPlayer<class_AudioStreamPlayer>` (for non-positional audio) or :ref:`AudioStreamPlayer2D<class_AudioStreamPlayer2D>`/:ref:`AudioStreamPlayer3D<class_AudioStreamPlayer3D>` (for positional audio). The sound can be looped.

This class can also be used to store dynamically-generated PCM audio data. See also :ref:`AudioStreamGenerator<class_AudioStreamGenerator>` for procedural audio generation.

Properties

:ref:`PackedByteArray<class_PackedByteArray>` :ref:`data<class_AudioStreamSample_property_data>` PackedByteArray()
:ref:`Format<enum_AudioStreamSample_Format>` :ref:`format<class_AudioStreamSample_property_format>` 0
:ref:`int<class_int>` :ref:`loop_begin<class_AudioStreamSample_property_loop_begin>` 0
:ref:`int<class_int>` :ref:`loop_end<class_AudioStreamSample_property_loop_end>` 0
:ref:`LoopMode<enum_AudioStreamSample_LoopMode>` :ref:`loop_mode<class_AudioStreamSample_property_loop_mode>` 0
:ref:`int<class_int>` :ref:`mix_rate<class_AudioStreamSample_property_mix_rate>` 44100
:ref:`bool<class_bool>` :ref:`stereo<class_AudioStreamSample_property_stereo>` false

Methods

:ref:`Error<enum_@GlobalScope_Error>` :ref:`save_to_wav<class_AudioStreamSample_method_save_to_wav>` ( :ref:`String<class_String>` path )

Enumerations

enum Format:

  • FORMAT_8_BITS = 0 --- 8-bit audio codec.
  • FORMAT_16_BITS = 1 --- 16-bit audio codec.
  • FORMAT_IMA_ADPCM = 2 --- Audio is compressed using IMA ADPCM.

enum LoopMode:

Property Descriptions

Default PackedByteArray()
Setter set_data(value)
Getter get_data()

Contains the audio data in bytes.

Note: This property expects signed PCM8 data. To convert unsigned PCM8 to signed PCM8, subtract 128 from each byte.


Default 0
Setter set_format(value)
Getter get_format()

Audio format. See :ref:`Format<enum_AudioStreamSample_Format>` constants for values.


Default 0
Setter set_loop_begin(value)
Getter get_loop_begin()

The loop start point (in number of samples, relative to the beginning of the sample). This information will be imported automatically from the WAV file if present.


Default 0
Setter set_loop_end(value)
Getter get_loop_end()

The loop end point (in number of samples, relative to the beginning of the sample). This information will be imported automatically from the WAV file if present.


Default 0
Setter set_loop_mode(value)
Getter get_loop_mode()

The loop mode. This information will be imported automatically from the WAV file if present. See :ref:`LoopMode<enum_AudioStreamSample_LoopMode>` constants for values.


Default 44100
Setter set_mix_rate(value)
Getter get_mix_rate()

The sample rate for mixing this audio. Higher values require more storage space, but result in better quality.

In games, common sample rates in use are 11025, 16000, 22050, 32000, 44100, and 48000.

According to the Nyquist-Shannon sampling theorem, there is no quality difference to human hearing when going past 40,000 Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are using lower-pitched sounds such as voices, lower sample rates such as 32000 or 22050 may be usable with no loss in quality.


Default false
Setter set_stereo(value)
Getter is_stereo()

If true, audio is stereo.

Method Descriptions

Saves the AudioStreamSample as a WAV file to path. Samples with IMA ADPCM format can't be saved.

Note: A .wav extension is automatically appended to path if it is missing.