:github_url: hide .. Generated automatically by doc/tools/make_rst.py in Godot's source tree. .. DO NOT EDIT THIS FILE, but the AudioStreamSample.xml source instead. .. The source is found in doc/classes or modules//doc_classes. .. _class_AudioStreamSample: AudioStreamSample ================= **Inherits:** :ref:`AudioStream` **<** :ref:`Resource` **<** :ref:`Reference` **<** :ref:`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` (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. Properties ---------- +--------------------------------------------------+----------------------------------------------------------------+-----------------------+ | :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`` | +--------------------------------------------------+----------------------------------------------------------------+-----------------------+ Methods ------- +---------------------------------------+-------------------------------------------------------------------------------------------------------------+ | :ref:`Error` | :ref:`save_to_wav` **(** :ref:`String` path **)** | +---------------------------------------+-------------------------------------------------------------------------------------------------------------+ Enumerations ------------ .. _enum_AudioStreamSample_Format: .. _class_AudioStreamSample_constant_FORMAT_8_BITS: .. _class_AudioStreamSample_constant_FORMAT_16_BITS: .. _class_AudioStreamSample_constant_FORMAT_IMA_ADPCM: 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_AudioStreamSample_LoopMode: .. _class_AudioStreamSample_constant_LOOP_DISABLED: .. _class_AudioStreamSample_constant_LOOP_FORWARD: .. _class_AudioStreamSample_constant_LOOP_PING_PONG: .. _class_AudioStreamSample_constant_LOOP_BACKWARD: enum **LoopMode**: - **LOOP_DISABLED** = **0** --- Audio does not loop. - **LOOP_FORWARD** = **1** --- Audio loops the data between :ref:`loop_begin` and :ref:`loop_end`, playing forward only. - **LOOP_PING_PONG** = **2** --- Audio loops the data between :ref:`loop_begin` and :ref:`loop_end`, playing back and forth. - **LOOP_BACKWARD** = **3** --- Audio loops the data between :ref:`loop_begin` and :ref:`loop_end`, playing backward only. Property Descriptions --------------------- .. _class_AudioStreamSample_property_data: - :ref:`PoolByteArray` **data** +-----------+-----------------------+ | *Default* | ``PoolByteArray( )`` | +-----------+-----------------------+ | *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. ---- .. _class_AudioStreamSample_property_format: - :ref:`Format` **format** +-----------+-------------------+ | *Default* | ``0`` | +-----------+-------------------+ | *Setter* | set_format(value) | +-----------+-------------------+ | *Getter* | get_format() | +-----------+-------------------+ Audio format. See :ref:`Format` constants for values. ---- .. _class_AudioStreamSample_property_loop_begin: - :ref:`int` **loop_begin** +-----------+-----------------------+ | *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. ---- .. _class_AudioStreamSample_property_loop_end: - :ref:`int` **loop_end** +-----------+---------------------+ | *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. ---- .. _class_AudioStreamSample_property_loop_mode: - :ref:`LoopMode` **loop_mode** +-----------+----------------------+ | *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` constants for values. ---- .. _class_AudioStreamSample_property_mix_rate: - :ref:`int` **mix_rate** +-----------+---------------------+ | *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. ---- .. _class_AudioStreamSample_property_stereo: - :ref:`bool` **stereo** +-----------+-------------------+ | *Default* | ``false`` | +-----------+-------------------+ | *Setter* | set_stereo(value) | +-----------+-------------------+ | *Getter* | is_stereo() | +-----------+-------------------+ If ``true``, audio is stereo. Method Descriptions ------------------- .. _class_AudioStreamSample_method_save_to_wav: - :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.)`