Show
Ignore:
Timestamp:
11/19/07 15:39:53 (1 year ago)
Author:
shans
Message:

Replacing sound implementation - WAS ocaml int arrays, IS native float
arrays. This has not yet been completely been debugged!

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • ocaml-remix/trunk/note.ml

    r512 r529  
    6363  let num_in = List.length inAudioPorts in 
    6464  let num_out = List.length outAudioPorts in  
    65   let create_in_buffers n sound length = 
    66     let b = Array.init n (function _ -> Ladspa_raw.empty_buffer length) in 
    67     Ladspa_raw.raw_sound_to_buffers sound b length; b in 
    6865  let create_out_buffers n length =  
    69     Array.init n (function _ -> Ladspa_raw.empty_buffer length) in 
    70   let connect portlist portpos h b i = 
     66    Array.init n (function _ -> FB.create length 1) in 
     67  let connect portlist portpos h b i = match b.(i) with  
     68    (buf, _, _) -> 
    7169    Ladspa_raw.connect_port ladspa h.(i) (fst (List.nth portlist portpos))  
    72               b.(i) in 
     70              buf in 
    7371  if num_in = 1 && num_out = 1 then ( 
    7472    let raw_insound = insound remix extent render_extent in 
    7573    let channels = Remix.channels remix in 
    76     let buffers = create_in_buffers channels raw_insound raw_length in 
     74    let buffers = FB.split raw_insound in 
    7775    let outbuffers = create_out_buffers channels raw_length in 
    7876    for i = 0 to (channels - 1) do ( 
     
    8179      Ladspa_raw.run ladspa handles.(i) raw_length 
    8280    ) done; 
    83     Ladspa_raw.buffers_to_raw_sound outbuffers raw_length 
     81    FB.merge outbuffers 
    8482  ) else if num_in = 0 && num_out = 1 then ( 
    8583    let channels = Remix.channels remix in 
     
    8987      Ladspa_raw.run ladspa handles.(i) raw_length 
    9088    ) done; 
    91     Ladspa_raw.buffers_to_raw_sound outbuffers raw_length 
     89    FB.merge outbuffers 
    9290  ) else raise InappropriatePlugin;; 
    9391