# HG changeset patch # User Chris Cannam # Date 1410444334 -3600 # Node ID e7c5b55aab9af26bb97494daa9ccc15a4ae5b7a3 # Parent eb27901664cd47a8569d321f44ba213f5373a42d Add mixedTo option to framer diff -r eb27901664cd -r e7c5b55aab9a src/may/stream/framer.yeti --- a/src/may/stream/framer.yeti Thu Sep 11 11:25:50 2014 +0100 +++ b/src/may/stream/framer.yeti Thu Sep 11 15:05:34 2014 +0100 @@ -82,6 +82,7 @@ var padded = true; var windower = id; var transform = id; + var mixer = id; for options \case of Hop h: hop := h; Padded p: padded := p; @@ -92,10 +93,13 @@ if f then transform := mat.mapRows (fft.realForwardMagnitude framesize); fi; + MixedTo c: + mixer := manip.mixedTo c; esac; map transform (map windower - (frames' framesize hop padded stream))); + (frames' framesize hop padded + (mixer stream)))); complexFrames framesize options stream = (var hop = framesize; @@ -103,6 +107,7 @@ var windower = id; var rowTransform = do r: complex.complexArray r (vec.zeros (vec.length r)) done; + var mixer = id; for options \case of Hop h: hop := h; Padded p: padded := p; @@ -114,12 +119,15 @@ if f then rowTransform := fft.realForward framesize; fi; + MixedTo c: + mixer := manip.mixedTo c; esac; map do m: cm.fromRows (map rowTransform (mat.asRows m)) done (map windower - (frames' framesize hop padded stream))); + (frames' framesize hop padded + (mixer stream)))); streamContiguous rate framesize frames = (var remaining = frames;