Class reference

AudioStreamWAV

Inherits AudioStream

Stores audio data loaded from WAV files.

Description

AudioStreamWAV stores sound samples loaded from WAV files. To play the stored sound, use an AudioStreamPlayer (for non-positional audio) or AudioStreamPlayer2D/AudioStreamPlayer3D (for positional audio). The sound can be looped. This class can also be used to store dynamically-generated PCM audio data. See also AudioStreamGenerator for procedural audio generation.

Properties

PackedByteArray data = PackedByteArray()

Contains the audio data in bytes. Note: If format is set to FORMAT_8_BITS, this property expects signed 8-bit PCM data. To convert from unsigned 8-bit PCM, subtract 128 from each byte. Note: If format is set to FORMAT_QOA, this property expects data from a full QOA file.

int format = 0

Audio format.

int loop_begin = 0

The loop start point (in number of samples, relative to the beginning of the stream).

int loop_end = 0

The loop end point (in number of samples, relative to the beginning of the stream).

int loop_mode = 0

The loop mode.

int mix_rate = 44100

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.

bool stereo = false

If true, audio is stereo.

Dictionary tags = {}

Contains user-defined tags if found in the WAV data. Commonly used tags include title, artist, album, tracknumber, and date (date does not have a standard date format). Note: No tag is guaranteed to be present in every file, so make sure to account for the keys not always existing. Note: Only WAV files using a LIST chunk with an identifier of INFO to encode the tags are currently supported.

Methods

AudioStreamWAV load_from_file(String path, Dictionary options = {}) static

Creates a new AudioStreamWAV instance from the given file path. The file must be in WAV format. The keys and values of options match the properties of ResourceImporterWAV. Example: Load the first file dropped as a WAV and play it:

				@onready var audio_player = $AudioStreamPlayer

				func _ready():
					get_window().files_dropped.connect(_on_files_dropped)

				func _on_files_dropped(files):
					if files[0].get_extension() == "wav":
						audio_player.stream = AudioStreamWAV.load_from_file(files[0], {
								"force/max_rate": true,
								"force/max_rate_hz": 11025
							})
						audio_player.play()
				

int save_to_wav(String path)

Saves the AudioStreamWAV as a WAV file to path. Samples with IMA ADPCM or Quite OK Audio formats can't be saved. Note: A .wav extension is automatically appended to path if it is missing.

Constants

FORMAT_8_BITS = 0

Enum: Format

8-bit PCM audio codec.

FORMAT_16_BITS = 1

Enum: Format

16-bit PCM audio codec.

FORMAT_IMA_ADPCM = 2

Enum: Format

Audio is lossily compressed as IMA ADPCM.

FORMAT_QOA = 3

Enum: Format

Audio is lossily compressed as Quite OK Audio.

LOOP_DISABLED = 0

Enum: LoopMode

Audio does not loop.

LOOP_FORWARD = 1

Enum: LoopMode

Audio loops the data between loop_begin and loop_end, playing forward only.

LOOP_PINGPONG = 2

Enum: LoopMode

Audio loops the data between loop_begin and loop_end, playing back and forth.

LOOP_BACKWARD = 3

Enum: LoopMode

Audio loops the data between loop_begin and loop_end, playing backward only.

Tutorials

Source revision 4f5b14abade2
Connection interrupted. Reload×

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.