Module Interpreter


module Interpreter: sig .. end
Module: Interpreter Description: input beam -> process -> output beam
Author(s): WANG Haisheng Created: 15/05/2013 Modified: 04/06/2013

exception Evaluation_Error of string
Exception raised during interpretation of faust process.

type interpreter_macro =
| Number_samples_int
| Max_Eval_Time_int
Macro constants of this file.
val interpreter_macro_to_value : interpreter_macro -> int
val interpreter_macro_to_value : returns the value associated with the macro.
val fun_array_to_fun : ('a -> 'b) array -> 'a -> 'b array
val func_of_func_array : (int -> value) array -> (int -> value array), applies the same int parameter to each element of function array, produces a value array.
val computing : (int -> Types.value array) -> int -> int -> float array array array
val computing : (int -> value array) -> int -> int -> float array array array, applies time sequence "0,1,2,3,...,max" to signal beam, returns primitive output data.
val matrix_transpose : 'a array array -> int -> 'a array array
val matrix_transpose : 'a array array -> 'a array array, transposes the input matrix.
val channels : 'a array array array -> int -> int array
val channels : 'a array array array -> int -> int array, returns an array of number of channels.
val arrange : 'a array array array -> int -> 'a array list
val arrange : 'a array array array -> int -> 'a array list, arranges the output data in "array list" form.
val compute : (int -> Types.value) list -> int list * float array list
val compute : (int -> value) list -> (int list) * (float array list). input: a list of signal functions output: channel number list, data list.
val sublist : 'a list -> int -> int -> 'a list
val sublist : 'a list -> int -> int -> 'a list, sublist l start length, returns the sublist of list 'l', from index 'start', with length 'length'.
val make_beam : 'a list * float array list -> ('a * (int -> Types.value)) list
val make_beam : (int list) * (float array list) -> (int * (int -> value)) list, input: (sample rate list, data list) output: beam = (sample rate, function) list
val interpret_const : 'a -> 'b list -> (int * ('c -> 'a)) list
val interpret_const : value -> beam -> beam, generates constant signal with frequency 0.
val interpret_ident : Types.symbol ->
(int * (int -> Types.value)) list -> (int * (int -> Types.value)) list
val interpret_ident : string -> beam -> beam, generates signals according to identified symbols.
val eval : Types.faust_exp ->
Types.dimension ->
(int * (int -> Types.value)) list -> (int * (int -> Types.value)) list
val rec eval : faust_exp -> beam -> beam, main interpretation work is done here.
val extract_rate : (int * 'a) list -> int list
val extract_rate : (int * (int -> value)) list -> int list, gets the sample rate list from beam.
val interpreter : Types.faust_exp ->
int list * float array list -> int list * int list * float array list
val interpreter : faust_exp -> (int list) * (float array list) -> (int list) * (int list) * (float array list) input: faust expression, sample rate list * input data list output: channel list * sample rate list * output data list.