# HG changeset patch # User Chris Cannam # Date 1357922899 0 # Node ID 11933d198ad0902d3298d4e587393188dd521810 # Parent 6ce0ffdc7b0003dde3caa6b5ee8a9b772fa37cfe# Parent bf25c6d663d2e6a35dabd95197943d63a7de3e86 Merge diff -r 6ce0ffdc7b00 -r 11933d198ad0 vamp.yeti --- a/vamp.yeti Fri Jan 11 16:38:56 2013 +0000 +++ b/vamp.yeti Fri Jan 11 16:48:19 2013 +0000 @@ -122,7 +122,7 @@ get preferredStepSize () = p#getPreferredStepSize(), get minChannelCount () = p#getMinChannelCount(), get maxChannelCount () = p#getMaxChannelCount(), - initialise { channels, blocksize, hop } = p#initialise(channels, blocksize, hop), + initialise { channels, blocksize, hop } = p#initialise(channels, hop, blocksize), reset () = p#reset(), get outputs () = array (map outputDescriptor p#getOutputDescriptors()), process blocks time is 'a -> ~RealTime -> 'b = @@ -133,9 +133,6 @@ featuresFromSet outputNo f = if outputNo in f then f[outputNo] else [] fi; -converted outputNo fl = - map (featuresFromSet outputNo) fl; - outputNumberByName p name = (outputs = p.outputs; index (head (find ((== name) . (.identifier)) outputs)) outputs); @@ -155,17 +152,21 @@ [rf]); esac; +converted { p, sampleRate, hop } outputNo fl = + map (featuresFromSet outputNo) fl; + process key output stream = (p = loadPlugin stream.sampleRate key; blockSize = p.preferredBlockSize; hop = p.preferredStepSize; outputNo = outputNumberByName p output; - if p.initialise { channels = 1, blocksize = blockSize, hop } then - converted outputNo - (processed - { p, sampleRate = stream.sampleRate, hop } - (fr.frames { framesize = blockSize, hop } stream) - 0); + params = { + p, + sampleRate = stream.sampleRate, channels = 1, + framesize = blockSize, blocksize = blockSize, hop + }; + if p.initialise params then + converted params outputNo(processed params (fr.frames params stream) 0); // If processing completed successfully, then p is disposed by // processed and stream is closed by the framer else