Skip to content

class_audioserver

reduz edited this page Feb 23, 2014 · 10 revisions

AudioServer

Inherits: Object\n\n

Brief Description

Server interface for low level audio access.

Member Functions

Numeric Constants

  • SAMPLE_FORMAT_PCM8 = 0 - Sample format is 8 bits, signed.
  • SAMPLE_FORMAT_PCM16 = 1 - Sample format is 16 bits, signed.
  • SAMPLE_FORMAT_IMA_ADPCM = 2 - Sample format is IMA-ADPCM compressed.
  • SAMPLE_LOOP_NONE = 0 - Sample does not loop.
  • SAMPLE_LOOP_FORWARD = 1 - Sample loops in forward mode.
  • SAMPLE_LOOP_PING_PONG = 2 - Sample loops in a bidirectional way.
  • FILTER_NONE = 0 - Filter is disable.
  • FILTER_LOWPASS = 1 - Filter is a resonant lowpass.
  • FILTER_BANDPASS = 2 - Filter is a resonant bandpass.
  • FILTER_HIPASS = 3 - Filter is a resonant highpass.
  • FILTER_NOTCH = 4 - Filter is a notch.
  • FILTER_BANDLIMIT = 6 - Filter is a bandlimit (resonance used as highpass).
  • REVERB_SMALL = 0 - Small reverb room (closet, bathroom, etc).
  • REVERB_MEDIUM = 1 - Medium reverb room (living room)
  • REVERB_LARGE = 2 - Large reverb room (warehouse).
  • REVERB_HALL = 3 - Large reverb room with long decay.

Description

AudioServer is a low level server interface for audio access. It is"#10;"#9;in charge of creating sample data (playable audio) as well as it's"#10;"#9;playback via a voice interface.

Member Function Description

  • RID sample_create ( int format, bool stereo, int length ) \ Create an audio sample, return a rid referencing"#10;"#9;"#9;"#9;it. The sample will be created with a given format"#10;"#9;"#9;"#9;(from the SAMPLE_FORMAT_* enum), a total length (in"#10;"#9;"#9;"#9;frames, not samples or bytes), in either stereo or"#10;"#9;"#9;"#9;mono.
  • int sample_get_format ( RID sample ) const \ Return the format of the audio sample, in the form"#10;"#9;"#9;"#9;of the SAMPLE_FORMAT_* enum.
  • int sample_get_length ( RID sample ) const \ Return the length in frames of the audio sample (not"#10;"#9;"#9;"#9;samples or bytes).
  • void sample_set_signed_data ( RID sample, RealArray data ) \ Set the sample data for a given sample as an array"#10;"#9;"#9;"#9;of floats. The length must be equal to the sample"#10;"#9;"#9;"#9;lenght or an error will be produced.
  • void sample_set_data ( RID sample, RawArray arg1 ) \ Set the sample data for a given sample as an array"#10;"#9;"#9;"#9;of bytes. The length must be equal to the sample"#10;"#9;"#9;"#9;lenght expected in bytes or an error will be produced.
  • RawArray sample_get_data ( RID sample ) const \ Return the sample data as an array of bytes. The"#10;"#9;"#9;"#9;length will be the expected length in bytes.
  • void sample_set_loop_format ( RID sample, int loop_format ) \ Set the loop format for a sample from the"#10;"#9;"#9;"#9;SAMPLE_LOOP_* enum. As a warning, Ping Pong loops"#10;"#9;"#9;"#9;may not be available on some hardware-mixing"#10;"#9;"#9;"#9;platforms.
  • int sample_get_loop_format ( RID sample ) const \ Return the loop format for a sample, as a value from"#10;"#9;"#9;"#9;the SAMPLE_LOOP_* enum.
  • RID voice_create ( ) \ Allocate a voice for playback. Voices are"#10;"#9;"#9;"#9;persistent. A voice can play a single sample at the"#10;"#9;"#9;"#9;same time. See #sample_create.
  • void voice_play ( RID voice, RID sample ) \ Start playback of a given voice using a given"#10;"#9;"#9;"#9;sample. If the voice was already playing it will be"#10;"#9;"#9;"#9;restarted.
  • void voice_set_volume ( RID voice, real volume ) \ Change the volume of a currently playing voice."#10;"#9;"#9;"#9;Volume is expressed as linear gain where 0.0 is mute"#10;"#9;"#9;"#9;and 1.0 is default.
  • void voice_set_pan ( RID voice, real pan, real depth=0, real height=0 ) \ Change the pan of a currently playing voice and,"#10;"#9;"#9;"#9;optionally, the depth and height for a positional/3D"#10;"#9;"#9;"#9;sound. Panning values are expressed within the -1 to"#10;"#9;"#9;"#9;+1 range.
  • void voice_set_filter ( RID voice, int type, real cutoff, real resonance, real gain=0 ) \ Set a resonant filter post processing for the voice."#10;"#9;"#9;"#9;Filter type is a value from the FILTER_* enum.
  • void voice_set_chorus ( RID voice, real chorus ) \ Set chorus send post processing for the voice (from"#10;"#9;"#9;"#9;0 to 1).
  • void voice_set_reverb ( RID voice, int room, real reverb ) \ Set the reverb send post processing for the voice (from"#10;"#9;"#9;"#9;0 to 1) and the reverb type, from the REVERB_* enum.
  • void voice_set_mix_rate ( RID voice, int rate ) \ Set a different playback mix rate for the given"#10;"#9;"#9;"#9;voice.
  • void voice_set_positional ( RID voice, bool enabled ) \ Set wether a given voice is positional. This is only"#10;"#9;"#9;"#9;interpreted as a hint and used for backends that may"#10;"#9;"#9;"#9;support binaural encoding.
  • real voice_get_pan ( RID voice ) const \ Return the current pan for a given voice (-1 to +1"#10;"#9;"#9;"#9;range).
  • int voice_get_filter_type ( RID voice ) const \ Return the current selected filter type for a given"#10;"#9;"#9;"#9;voice, from the FILTER_* enum.
  • real voice_get_chorus ( RID voice ) const \ Return the current chorus send for a given"#10;"#9;"#9;"#9;voice (0 to 1).
  • int voice_get_reverb_type ( RID voice ) const \ Return the current reverb type for a given voice"#10;"#9;"#9;"#9;from the REVERB_* enum.
  • real voice_get_reverb ( RID voice ) const \ Return the current reverb send for a given voice"#10;"#9;"#9;"#9;(0 to 1).

Clone this wiki locally