root/ocaml-remix/trunk/ladspa_test.ml

Revision 502, 1.0 kB (checked in by shans, 5 years ago)

Added ladspa tree implementation and demonstration in ladspa_test. This
is probably not going to be the final abstraction for ladspa.

Line 
1 let p = Ladspa_raw.open_plugin "noise:noise_white";;
2
3 let n_ports = Ladspa_raw.port_count p;;
4
5 Printf.printf "there are %d ports\n" n_ports;;
6
7 for i = 0 to (n_ports - 1) do
8   let (d, t) = Ladspa_raw.port_descriptor p i in
9   Printf.printf "port %d has direction %s and type %s\n" i
10   (Ladspa_raw.direction_to_string d) (Ladspa_raw.type_to_string t) done;;
11
12 let r = Remix.create 44000 2 120.;;
13
14 let h = Ladspa_raw.instantiate p (Remix.samplerate r);;
15
16 let b = Ladspa_raw.empty_buffer 44000;;
17 Ladspa_raw.connect_port p h 1 b;;
18
19 let c = Ladspa_raw.control_value_to_buffer 1.0;;
20 Ladspa_raw.connect_port p h 0 c;;
21
22 Ladspa_raw.activate p h;;
23 Ladspa_raw.run p h 44000;;
24
25 let s = Ladspa_raw.buffers_to_raw_sound [| b; b |] 44000;;
26 Sound.raw_preview r s;;
27
28 let t = Ladspa.Plugin ("noise:noise_white",
29         [(Ladspa.Control 1.0, [(0, 0)]); (Ladspa.EmptySlot, [(0, 1)])],
30         false, [1; 1]);;
31
32 Sound.preview r (Ladspa.render_tree t) (Time.Seconds 0., Time.Seconds 1.)
33   (Time.Seconds 0., Time.Seconds 1.);;
34
Note: See TracBrowser for help on using the browser.