var searchIndex = {}; searchIndex["envelope_detector"] = {"doc":"A collection of types and traits useful for high performance envelope detection over a signal.","items":[[3,"EnvelopeDetector","envelope_detector","Iteratively extracts the amplitude envelope from an audio signal based on three parameters:",null,null],[3,"Mono","","A channel mode used by the **EnvelopeDetector** when envelope detection is only needed on a\nsingle channel.",null,null],[3,"MultiChannel","","A channel mode that allows the **EnvelopeDetector** to handle any number of audio channels.",null,null],[0,"mode","","A generic interface over the two kinds of detection modes currently available to the\n**EnvelopeDetector**.",null,null],[8,"Mode","envelope_detector::mode","The mode used to detect the envelope of a signal.",null,null],[10,"next_sample","","Update state that is unique to the **Mode**.",0,null],[0,"peak","envelope_detector","Peak envelope detection over a signal.",null,null],[3,"Peak","envelope_detector::peak","A peak rectifier, generic over **FullWave**, **PositiveHalfWave** and **NegativeHalfWave**\nrectification.",null,null],[4,"PositiveHalfWave","","A rectifier that produces only the positive samples from a signal.",null,null],[4,"NegativeHalfWave","","A rectifier that produces only the negative samples from a signal.",null,null],[4,"FullWave","","A rectifier that produces the absolute amplitude from samples from a signal.",null,null],[8,"Rectifier","","Types that can rectify some incoming signal.",null,null],[10,"rectify","","Rectify a single sample of some incoming signal.",1,{"inputs":[{"name":"f32"}],"output":{"name":"f32"}}],[11,"eq","","",2,null],[11,"fmt","","",2,null],[11,"clone","","",2,null],[11,"eq","","",3,null],[11,"fmt","","",3,null],[11,"clone","","",3,null],[11,"eq","","",4,null],[11,"fmt","","",4,null],[11,"clone","","",4,null],[11,"rectify","","",2,{"inputs":[{"name":"f32"}],"output":{"name":"f32"}}],[11,"rectify","","",3,{"inputs":[{"name":"f32"}],"output":{"name":"f32"}}],[11,"rectify","","",4,{"inputs":[{"name":"f32"}],"output":{"name":"f32"}}],[11,"eq","","",5,null],[11,"ne","","",5,null],[11,"fmt","","",5,null],[11,"clone","","",5,null],[11,"full_wave","","A full-wave peak rectifier.",5,{"inputs":[],"output":{"name":"peak"}}],[11,"positive_half_wave","","A positive half-wave peak rectifier.",5,{"inputs":[],"output":{"name":"peak"}}],[11,"negative_half_wave","","A negative half-wave peak rectifier.",5,{"inputs":[],"output":{"name":"peak"}}],[11,"rectify","","Return the rectified sample.",5,{"inputs":[{"name":"f32"}],"output":{"name":"f32"}}],[0,"rms","envelope_detector","Root mean square calculation over a signal.",null,null],[3,"Rms","envelope_detector::rms","Iteratively extracts the RMS (root mean square) envelope from a window over a signal of\nsamples.",null,null],[11,"fmt","","",6,null],[11,"clone","","",6,null],[11,"new","","Construct a new **Rms**.",6,{"inputs":[{"name":"usize"}],"output":{"name":"self"}}],[11,"reset","","Zeroes the sum and the buffer of the `window`.",6,null],[11,"set_window_frames","","Set the size of the `window` as a number of frames.",6,null],[11,"window_frames","","The length of the window as a number of frames.",6,null],[11,"next","","The next RMS given the new sample in the sequence.",6,null],[6,"MonoEnvelopeDetector","envelope_detector","A single channel **EnvelopeDetector** generic over its detection mode.",null,null],[6,"MultiChannelEnvelopeDetector","","A multi-channel **EnvelopeDetector** generic over its detection mode.",null,null],[11,"fmt","","",7,null],[11,"clone","","",7,null],[11,"fmt","","",8,null],[11,"clone","","",8,null],[11,"fmt","","",9,null],[11,"clone","","",9,null],[11,"set_attack_frames","","Set the **EnvelopeDetector**'s attack time as a number of frames.",7,null],[11,"set_release_frames","","Set the **EnvelopeDetector**'s release time as a number of frames.",7,null],[11,"next","","Given the next input signal sample, detect and return the next envelope sample.",8,null],[11,"rms","","Construct a new **Rms** **Mono**.",8,{"inputs":[{"name":"usize"}],"output":{"name":"mono"}}],[11,"set_window_frames","","Set the duration of the **Rms** window in frames.",8,null],[11,"peak","","Construct a new **Rms** **Mono**.",8,{"inputs":[],"output":{"name":"mono"}}],[11,"rms","","Construct a new **Mono** **Rms** **EnvelopeDetector**.",10,{"inputs":[{"name":"usize"},{"name":"f32"},{"name":"f32"}],"output":{"name":"monoenvelopedetector"}}],[11,"set_window_frames","","Set the duration of the **Rms** window in frames.",10,null],[11,"peak","","Construct a new **Mono** **Peak** **EnvelopeDetector**.",10,{"inputs":[{"name":"f32"},{"name":"f32"}],"output":{"name":"monoenvelopedetector"}}],[11,"next","","Given the next input signal sample, detect and return the next envelope sample.",10,null],[11,"resize","","Resize the `channels` `Vec` to the given size.",9,null],[11,"rms","","Construct a new **MultiChannel** **Rms** **EnvelopeDetector**.",11,{"inputs":[{"name":"usize"},{"name":"f32"},{"name":"f32"},{"name":"usize"}],"output":{"name":"multichannelenvelopedetector"}}],[11,"set_window_frames","","Set the duration of the **Rms** window in frames.",11,null],[11,"peak","","Construct a new **MultiChannel** **Peak** **EnvelopeDetector**.",11,{"inputs":[{"name":"f32"},{"name":"f32"},{"name":"usize"}],"output":{"name":"multichannelenvelopedetector"}}],[11,"set_channels","","Set the number of channels for the **MultiChannelEnvelopeDetector**.",11,null],[11,"next","","Given the next input signal sample for the channel at the given index, detect and return\nthe next envelope sample for that channel.",11,null],[11,"next_sample","envelope_detector::peak","",5,null],[11,"next_sample","envelope_detector::rms","",6,null]],"paths":[[8,"Mode"],[8,"Rectifier"],[4,"PositiveHalfWave"],[4,"NegativeHalfWave"],[4,"FullWave"],[3,"Peak"],[3,"Rms"],[3,"EnvelopeDetector"],[3,"Mono"],[3,"MultiChannel"],[6,"MonoEnvelopeDetector"],[6,"MultiChannelEnvelopeDetector"]]}; initSearch(searchIndex);