Skip to content
reduz edited this page Apr 10, 2014 · 10 revisions

AudioServer

####Inherits: Object ####Category: Core

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

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.

  • void sample_set_description ( RID sample, String description )

Set the description of an audio sample. Mainly used"#10;"#9;"#9;"#9;for organization.

Return the description of an audio sample. Mainly"#10;"#9;"#9;"#9;used for organization.

  • 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.

  • bool sample_is_stereo ( RID sample ) const

Return wether the sample is stereo (2 channels)

  • 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.

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.

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_mix_rate ( RID sample, int mix_rate )

Change the default mix rate of a given sample.

  • int sample_get_mix_rate ( RID sample ) const

Return the mix rate of the given sample.

  • 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.

  • void sample_set_loop_begin ( RID sample, int pos )

Set the initial loop point of a sample. Only has"#10;"#9;"#9;"#9;effect if sample loop is enabled. See sample_set_loop_format.

  • int sample_get_loop_begin ( RID sample ) const

Return the initial loop point of a sample. Only has"#10;"#9;"#9;"#9;effect if sample loop is enabled. See sample_set_loop_format.

  • void sample_set_loop_end ( RID sample, int pos )

Set the final loop point of a sample. Only has"#10;"#9;"#9;"#9;effect if sample loop is enabled. See sample_set_loop_format.

  • int sample_get_loop_end ( RID sample ) const

Return the final loop point of a sample. Only has"#10;"#9;"#9;"#9;effect if sample loop is enabled. See sample_set_loop_format.

  • 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, float 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.

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.

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, float 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, float 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.

  • float voice_get_volume ( RID voice ) const

Return the current volume for a given voice.

  • float voice_get_pan ( RID voice ) const

Return the current pan for a given voice (-1 to +1"#10;"#9;"#9;"#9;range).

  • float voice_get_pan_height ( RID voice ) const

Return the current pan height for a given voice (-1 to +1"#10;"#9;"#9;"#9;range).

  • float voice_get_pan_depth ( RID voice ) const

Return the current pan depth 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.

  • float voice_get_filter_cutoff ( RID voice ) const

Return the current filter cutoff (in hz) for a given"#10;"#9;"#9;"#9;voice.

  • float voice_get_filter_resonance ( RID voice ) const

Return the current filter resonance for a given"#10;"#9;"#9;"#9;voice.

  • float 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.

  • float voice_get_reverb ( RID voice ) const

Return the current reverb send for a given voice"#10;"#9;"#9;"#9;(0 to 1).

  • int voice_get_mix_rate ( RID voice ) const

Return the current mix rate for a given voice.

  • bool voice_is_positional ( RID voice ) const

Return wether the current voice is positional. See"#10;"#9;"#9;"#9;voice_set_positional.

  • void voice_stop ( RID voice )

Stop a given voice.

  • void free ( RID rid )

Free a RID resource.

  • void set_stream_global_volume_scale ( float scale )

Set global scale for stream playback. Default is 1.0.

  • float get_stream_global_volume_scale ( ) const

Return the global scale for stream playback.

Clone this wiki locally