|
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 |
|
|---|