changeset 13:5da01c5a5e1f

Fixes to naming and indexing in framer
author Chris Cannam
date Fri, 14 Dec 2012 09:29:29 +0000
parents 2afcb56f57b1
children ff66f7df30bf
files framer.yeti
diffstat 1 files changed, 20 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/framer.yeti	Thu Dec 13 16:21:07 2012 +0000
+++ b/framer.yeti	Fri Dec 14 09:29:29 2012 +0000
@@ -4,29 +4,33 @@
 vec = load fvector;
 af = load audiofile;
 
-flist2 blocksize hopsize file saved is number -> number -> 'a -> ~double[] -> 'b =
+blockList blocksize file =
+    if af.finished? file then
+       (af.close file; [] );
+    else
+        af.readMono file blocksize :. \(blockList blocksize file);
+    fi;
+
+overlappingBlockList blocksize hopsize file buffer
+    is number -> number -> 'a -> ~double[] -> 'b =
     if af.finished? file then
        (af.close file; [] ); //!!! wrong! need unit tests! need to read from any stream, not only a file, to facilitate that
     else
-        block = af.readMono file blocksize;
+        block = af.readMono file hopsize;
         blen = vec.vectorLength block;
-        for [0..blen-1] do i: saved[hopsize + i] := block[i] done;
-        for [blen..blocksize-1] do i: saved[hopsize + i] := 0.0 done;
-        v = vec.subVector saved 0 blocksize;
-        for [0..blocksize-1] do i: saved[i] := saved[i + hopsize] done;
-        v :. \(flist2 blocksize hopsize file saved);
+        for [0..blen-1] do i: buffer[blocksize - hopsize + i] := block[i] done;
+        for [blen..hopsize-1] do i: buffer[blocksize - hopsize + i] := 0.0 done;
+        v = vec.subVector buffer 0 blocksize;
+        for [hopsize..blocksize-1] do i: buffer[i - hopsize] := buffer[i] done;
+        v :. \(overlappingBlockList blocksize hopsize file buffer);
     fi;
 
-flist blocksize file =
-    if af.finished? file then
-       (af.close file; [] );
-    else
-        af.readMono file blocksize :. \(flist blocksize file);
-    fi;
+overlappingFrames blocksize hopsize filename =
+    overlappingBlockList blocksize hopsize (af.open filename)
+        (new double[blocksize]);
 
-overlappingFrames blocksize hopsize filename = flist2 blocksize hopsize (af.open filename) (new double[blocksize + hopsize]);
-
-frames blocksize filename = flist blocksize (af.open filename);
+frames blocksize filename =
+    blockList blocksize (af.open filename);
 
 { 
     frames, overlappingFrames