package portaudio

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

* Bindings for the portaudio portable audio library. * *

  • author Samuel Mimram

*

  • author Niki Yoshiuchi

Exceptions

exception Error of int

An error occured. In the future, this exception should be replaced by more * specific exceptions. Use string_of_error to get a description of the * error.

exception Unanticipated_host_error

An unanticipaced

val string_of_error : int -> string

Get a description of an error.

val get_last_host_error : unit -> int * string

Get the last errror which occured together with its description.

General

val get_version : unit -> int

Version of portaudio.

val get_version_string : unit -> string

Version of portaudio.

val init : unit -> unit

Initialize the portaudio library. Should be called before calling any other * function.

val terminate : unit -> unit

Stop using the library. This function should be called before ending the * program and no other portaudio function should be called after.

Host API

type host_api_info = {
  1. h_struct_version : int;
  2. h_host_api_type : int;
  3. h_name : string;
  4. h_device_count : int;
  5. h_default_input_device : int;
  6. h_default_output_device : int;
}

Host API Information

val get_host_api_count : unit -> int

Number of available host API.

val get_default_host_api : unit -> int

Index of the default host API.

val get_host_api_info : int -> host_api_info

Information on a host API

type device_info = {
  1. d_struct_version : int;
  2. d_name : string;
  3. d_host_api : int;
  4. d_max_input_channels : int;
  5. d_max_output_channels : int;
  6. d_default_low_input_latency : float;
  7. d_default_low_output_latency : float;
  8. d_default_high_input_latency : float;
  9. d_default_high_output_latency : float;
  10. d_default_sample_rate : float;
}

Device Information

val get_default_input_device : unit -> int

Default input device.

val get_default_output_device : unit -> int

Default output device.

val get_device_count : unit -> int

Number of available devices.

val get_device_info : int -> device_info

Information on device

Streams

type ('a, 'b) sample_format

The abstract type ('a, 'b) sample_format describes the OCaml type 'a and the underlying C type 'b used to represent the data being written to or read from a stream. This type is compatible with ('a, 'b) Bigarray.kind.

val format_float32 : (float, Bigarray.float32_elt) sample_format

The stream uses floats in the range of -1.,1. to represent audio data. * The underlying type is a 32 bit float.

type ('a, 'b) stream_parameters = {
  1. channels : int;
  2. device : int;
  3. sample_format : ('a, 'b) sample_format;
  4. latency : float;
}
type stream_flag
type ('a, 'b, 'c, 'd) stream
type ('a, 'b, 'c, 'd) callback = ('a, 'b, Bigarray.c_layout) Bigarray.Genarray.t -> ('c, 'd, Bigarray.c_layout) Bigarray.Genarray.t -> int -> int

The function signature of a callback. Callbacks only work with interleaved streams.

val open_stream : ('a, 'b) stream_parameters option -> ('c, 'd) stream_parameters option -> ?interleaved:bool -> float -> int -> ?callback:('a, 'b, 'c, 'd) callback -> stream_flag list -> ('a, 'b, 'c, 'd) stream

open_stream inparam outparam interleaved rate bufframes callback flags opens a new * stream with input stream of format inparam, output stream of format * outparam using interleaved or non-interleaved interleaved buffers * at rate samples per second, with bufframes frames per buffer * passed the callback function callback (0 means leave this choice to * portaudio).

val open_default_stream : ?callback:('a, 'b, 'a, 'b) callback -> ?format:('a, 'b) sample_format -> ?interleaved:bool -> int -> int -> int -> int -> ('a, 'b, 'a, 'b) stream

open_default_stream callback format interleaved inchans outchans rate bufframes * opens default stream with callback as callback function, handling samples in * format format using interleaved or non-interleaved buffers interleaved with * inchans input channels and outchans output channels * at rate samples per seconds with handling buffers of size bufframes.

val close_stream : ('a, 'b, 'c, 'd) stream -> unit

Close a stream.

val start_stream : ('a, 'b, 'c, 'd) stream -> unit

Start a stream.

val stop_stream : ('a, 'b, 'c, 'd) stream -> unit

Stop a stream.

val abort_stream : ('a, 'b, 'c, 'd) stream -> unit

Abort a stream.

val sleep : int -> unit

Sleep.

val write_stream : ('a, 'b, 'c, 'd) stream -> 'c array array -> int -> int -> unit

Write to a stream.

val read_stream : ('a, 'b, 'c, 'd) stream -> 'a array array -> int -> int -> unit

Read from a stream.

val write_stream_ba : ('a, 'b, 'c, 'd) stream -> ('c, 'd, Bigarray.c_layout) Bigarray.Genarray.t -> int -> int -> unit

Write to a stream using a bigarray.

val read_stream_ba : ('a, 'b, 'c, 'd) stream -> ('a, 'b, Bigarray.c_layout) Bigarray.Genarray.t -> int -> int -> unit

Read from a stream using a bigarray.

val read_stream_available_frames : ('a, 'b, 'c, 'd) stream -> int
val write_stream_available_frames : ('a, 'b, 'c, 'd) stream -> int
OCaml

Innovation. Community. Security.