:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/3.6/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/3.6/doc/classes/AudioStreamSample.xml. .. _class_AudioStreamSample: AudioStreamSample ================= **Inherits:** :ref:`AudioStream` **<** :ref:`Resource` **<** :ref:`Reference` **<** :ref:`Object` Stores audio data loaded from WAV files. .. rst-class:: classref-introduction-group Description ----------- AudioStreamSample stores sound samples loaded from WAV files. To play the stored sound, use an :ref:`AudioStreamPlayer` (for non-positional audio) or :ref:`AudioStreamPlayer2D`/:ref:`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` for procedural audio generation. .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +--------------------------------------------------+----------------------------------------------------------------+-----------------------+ | :ref:`PoolByteArray` | :ref:`data` | ``PoolByteArray( )`` | +--------------------------------------------------+----------------------------------------------------------------+-----------------------+ | :ref:`Format` | :ref:`format` | ``0`` | +--------------------------------------------------+----------------------------------------------------------------+-----------------------+ | :ref:`int` | :ref:`loop_begin` | ``0`` | +--------------------------------------------------+----------------------------------------------------------------+-----------------------+ | :ref:`int` | :ref:`loop_end` | ``0`` | +--------------------------------------------------+----------------------------------------------------------------+-----------------------+ | :ref:`LoopMode` | :ref:`loop_mode` | ``0`` | +--------------------------------------------------+----------------------------------------------------------------+-----------------------+ | :ref:`int` | :ref:`mix_rate` | ``44100`` | +--------------------------------------------------+----------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`stereo` | ``false`` | +--------------------------------------------------+----------------------------------------------------------------+-----------------------+ .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +---------------------------------------+-------------------------------------------------------------------------------------------------------------+ | :ref:`Error` | :ref:`save_to_wav` **(** :ref:`String` path **)** | +---------------------------------------+-------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_AudioStreamSample_Format: .. rst-class:: classref-enumeration enum **Format**: .. _class_AudioStreamSample_constant_FORMAT_8_BITS: .. rst-class:: classref-enumeration-constant :ref:`Format` **FORMAT_8_BITS** = ``0`` 8-bit audio codec. .. _class_AudioStreamSample_constant_FORMAT_16_BITS: .. rst-class:: classref-enumeration-constant :ref:`Format` **FORMAT_16_BITS** = ``1`` 16-bit audio codec. .. _class_AudioStreamSample_constant_FORMAT_IMA_ADPCM: .. rst-class:: classref-enumeration-constant :ref:`Format` **FORMAT_IMA_ADPCM** = ``2`` Audio is compressed using IMA ADPCM. .. rst-class:: classref-item-separator ---- .. _enum_AudioStreamSample_LoopMode: .. rst-class:: classref-enumeration enum **LoopMode**: .. _class_AudioStreamSample_constant_LOOP_DISABLED: .. rst-class:: classref-enumeration-constant :ref:`LoopMode` **LOOP_DISABLED** = ``0`` Audio does not loop. .. _class_AudioStreamSample_constant_LOOP_FORWARD: .. rst-class:: classref-enumeration-constant :ref:`LoopMode` **LOOP_FORWARD** = ``1`` Audio loops the data between :ref:`loop_begin` and :ref:`loop_end`, playing forward only. .. _class_AudioStreamSample_constant_LOOP_PING_PONG: .. rst-class:: classref-enumeration-constant :ref:`LoopMode` **LOOP_PING_PONG** = ``2`` Audio loops the data between :ref:`loop_begin` and :ref:`loop_end`, playing back and forth. .. _class_AudioStreamSample_constant_LOOP_BACKWARD: .. rst-class:: classref-enumeration-constant :ref:`LoopMode` **LOOP_BACKWARD** = ``3`` Audio loops the data between :ref:`loop_begin` and :ref:`loop_end`, playing backward only. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_AudioStreamSample_property_data: .. rst-class:: classref-property :ref:`PoolByteArray` **data** = ``PoolByteArray( )`` .. rst-class:: classref-property-setget - void **set_data** **(** :ref:`PoolByteArray` value **)** - :ref:`PoolByteArray` **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. .. rst-class:: classref-item-separator ---- .. _class_AudioStreamSample_property_format: .. rst-class:: classref-property :ref:`Format` **format** = ``0`` .. rst-class:: classref-property-setget - void **set_format** **(** :ref:`Format` value **)** - :ref:`Format` **get_format** **(** **)** Audio format. See :ref:`Format` constants for values. .. rst-class:: classref-item-separator ---- .. _class_AudioStreamSample_property_loop_begin: .. rst-class:: classref-property :ref:`int` **loop_begin** = ``0`` .. rst-class:: classref-property-setget - void **set_loop_begin** **(** :ref:`int` value **)** - :ref:`int` **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. .. rst-class:: classref-item-separator ---- .. _class_AudioStreamSample_property_loop_end: .. rst-class:: classref-property :ref:`int` **loop_end** = ``0`` .. rst-class:: classref-property-setget - void **set_loop_end** **(** :ref:`int` value **)** - :ref:`int` **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. .. rst-class:: classref-item-separator ---- .. _class_AudioStreamSample_property_loop_mode: .. rst-class:: classref-property :ref:`LoopMode` **loop_mode** = ``0`` .. rst-class:: classref-property-setget - void **set_loop_mode** **(** :ref:`LoopMode` value **)** - :ref:`LoopMode` **get_loop_mode** **(** **)** The loop mode. This information will be imported automatically from the WAV file if present. See :ref:`LoopMode` constants for values. .. rst-class:: classref-item-separator ---- .. _class_AudioStreamSample_property_mix_rate: .. rst-class:: classref-property :ref:`int` **mix_rate** = ``44100`` .. rst-class:: classref-property-setget - void **set_mix_rate** **(** :ref:`int` value **)** - :ref:`int` **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. .. rst-class:: classref-item-separator ---- .. _class_AudioStreamSample_property_stereo: .. rst-class:: classref-property :ref:`bool` **stereo** = ``false`` .. rst-class:: classref-property-setget - void **set_stereo** **(** :ref:`bool` value **)** - :ref:`bool` **is_stereo** **(** **)** If ``true``, audio is stereo. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Method Descriptions ------------------- .. _class_AudioStreamSample_method_save_to_wav: .. rst-class:: classref-method :ref:`Error` **save_to_wav** **(** :ref:`String` path **)** 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. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`