X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/4d5f39ea1ae1eff1d8eadf7875851be467e40a47..d8214dc258396483f72533504515a4e1d1b3deef:/interpretor/beam.ml diff --git a/interpretor/beam.ml b/interpretor/beam.ml index a4f22b8..c4c3b9e 100644 --- a/interpretor/beam.ml +++ b/interpretor/beam.ml @@ -25,6 +25,10 @@ class beam : signal_type array -> beam_type = fun len -> new beam (Array.sub self#get start len) + method cut : int -> beam_type * beam_type = + fun (cut_width : int)-> + ((self#sub 0 cut_width),(self#sub cut_width (self#width - cut_width))) + method append : beam_type -> beam_type = fun (b : beam_type) -> new beam (Array.append self#get b#get) @@ -96,4 +100,14 @@ class beam : signal_type array -> beam_type = in let () = print_string error_message in transpose (Array.sub container 0 !index) + + method frequency : int array = + let each_rate : signal -> int = + fun (s : signal) -> + let rate = s#frequency in + if rate > 0 then rate + else if rate = 0 then 44100 + else raise (Beam_matching "frequency error.") in + Array.map each_rate self#get + end