Changeset 529 for ocaml-remix/trunk/sound.ml
- Timestamp:
- 11/19/07 15:39:53 (1 year ago)
- Files:
-
- ocaml-remix/trunk/sound.ml (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
ocaml-remix/trunk/sound.ml
r514 r529 1 1 (* a raw sound is an array of int values *) 2 type raw_sound = int array;;2 type raw_sound = FB.buffer;; 3 3 4 4 (* but sounds have a start, a rendered start, and a rendered length *) … … 6 6 7 7 let silence r e (s,l) = 8 let raw_length = Time.time_to_raw_samplesr l in9 Array.create raw_length 0;;8 let length = Time.time_to_raw_time r l in 9 FB.create length (Remix.channels r);; 10 10 11 11 (* note: length applies to raw sounds *) 12 let length r s = (Array.length s) / (Remix.channels r);; 12 let length = FB.length;; 13 14 let size = FB.size;; 13 15 14 16 (* note: ignore start time when writing raw sounds *) 15 17 let write_raw_sound r out snd = 16 18 IO.nwrite out "RIFF"; 17 IO.write_i32 out (( Array.lengthsnd) * 2 + 36);19 IO.write_i32 out ((size snd) * 2 + 36); 18 20 IO.nwrite out "WAVE"; 19 21 IO.nwrite out "fmt "; (* format chunk *) … … 26 28 IO.write_i16 out 16; (* bits per sample - always 16 *) 27 29 IO.nwrite out "data"; (* data chunk *) 28 IO.write_i32 out (( Array.lengthsnd) * 2);29 for i = 0 to ( Array.length snd - 1) do IO.write_i16 out snd.(i) done;;30 IO.write_i32 out ((size snd) * 2); 31 for i = 0 to (size snd - 1) do IO.write_i16 out (FB.short_at snd i) done;; 30 32 31 33 let write output remix snd start render_extent =
