var searchIndex = {}; searchIndex["dsp"] = {"doc":"","items":[[8,"Walker","dsp","A trait providing a variety of useful methods for traversing some graph type **G**.",null,null],[16,"Index","","The unsigned integer type used for node and edge indices.",0,null],[10,"next","","Fetch the `EdgeIndex` and `NodeIndex` to the next neighbour in our walk through the given\n**Graph**.",0,null],[11,"next_edge","","The next edge in our walk for the given **Graph**.",0,null],[11,"next_node","","The next node in our walk for the given **Graph**.",0,null],[11,"count","","Counts all the steps in the entire walk of the given graph.",0,null],[11,"last","","Walks the whole walk until reaching and returning the last edge node pair.",0,null],[11,"last_edge","","Walks the whole walk until reaching and returning the last edge.",0,null],[11,"last_node","","Walks the whole walk until reaching and returning the last node.",0,null],[11,"nth","","Walks "n" number of steps and produces the resulting edge node pair.",0,null],[11,"nth_edge","","Walks "n" number of steps and produces the resulting edge.",0,null],[11,"nth_node","","Walks "n" number of steps and produces the resulting node.",0,null],[11,"chain","","Produces a walker that will walk the entirey of `self` before walking the entirey of other.",0,null],[11,"filter","","Creates a walker that applies the predicate to each element returned by this walker.\nThe only elements that will be yielded are those that make the predicate evaluate to true.",0,null],[11,"peekable","","Creates a walker that has a `.peek(&graph)` method that returns an optional next neighbor.",0,null],[11,"skip_while","","Creates a walker that invokes the predicate on elements until it returns false. Once the\npredicate returns false, that element and all further elements are yielded.",0,null],[11,"take_while","","Creates a walker that yields elements so long as the predicate returns true. After the\npredicate returns false for the first time, no further elements will be yielded.",0,null],[11,"skip","","Creates a walker that skips the first n steps of this walk, and then yields all further\nsteps.",0,null],[11,"take","","Creates a walker that yields the first n steps of this walk.",0,null],[11,"all","","Tests whether the predicate holds true for all steps in the walk.",0,null],[11,"any","","Tests whether any step in the walk satisfies the given predicate.",0,null],[11,"find","","Returns the first edge node index pair satisfying the specified predicate.",0,null],[11,"find_edge","","Returns the edge index satisfying the specified predicate.",0,null],[11,"find_node","","Returns the node index satisfying the specified predicate.",0,null],[11,"cycle","","Repeats the walker endlessly.",0,null],[11,"fold","","Performs a fold operation over the entire walker, returning the eventual state at the end\nof the walk.",0,null],[11,"inspect","","Creates a walker that calls a function with a reference to each index pair before yielding\nthem. This is often useful for debugging a walker pipeline.",0,null],[11,"iter","","Converts the walker into an iterator yielding index pairs.",0,null],[11,"iter_weights","","Converts the walker into an iterator yielding `(&e, &n)`, where `e` is the edge weight for\nthe next `EdgeIndex` and `n` is the node weight for the next `NodeIndex`.",0,null],[0,"conv","","Pure functions and traits for converting between i8, i16, I24, i32, I48, i64, u8, u16, U24,\nu32, U48, u64, f32 and f64.",null,null],[0,"i8","dsp::conv","",null,null],[5,"to_i16","dsp::conv::i8","",null,{"inputs":[{"name":"i8"}],"output":{"name":"i16"}}],[5,"to_i24","","",null,{"inputs":[{"name":"i8"}],"output":{"name":"i24"}}],[5,"to_i32","","",null,{"inputs":[{"name":"i8"}],"output":{"name":"i32"}}],[5,"to_i48","","",null,{"inputs":[{"name":"i8"}],"output":{"name":"i48"}}],[5,"to_i64","","",null,{"inputs":[{"name":"i8"}],"output":{"name":"i64"}}],[5,"to_u8","","",null,{"inputs":[{"name":"i8"}],"output":{"name":"u8"}}],[5,"to_u16","","",null,{"inputs":[{"name":"i8"}],"output":{"name":"u16"}}],[5,"to_u24","","",null,{"inputs":[{"name":"i8"}],"output":{"name":"u24"}}],[5,"to_u32","","",null,{"inputs":[{"name":"i8"}],"output":{"name":"u32"}}],[5,"to_u48","","",null,{"inputs":[{"name":"i8"}],"output":{"name":"u48"}}],[5,"to_u64","","",null,{"inputs":[{"name":"i8"}],"output":{"name":"u64"}}],[5,"to_f32","","",null,{"inputs":[{"name":"i8"}],"output":{"name":"f32"}}],[5,"to_f64","","",null,{"inputs":[{"name":"i8"}],"output":{"name":"f64"}}],[0,"i16","dsp::conv","",null,null],[5,"to_i8","dsp::conv::i16","",null,{"inputs":[{"name":"i16"}],"output":{"name":"i8"}}],[5,"to_i24","","",null,{"inputs":[{"name":"i16"}],"output":{"name":"i24"}}],[5,"to_i32","","",null,{"inputs":[{"name":"i16"}],"output":{"name":"i32"}}],[5,"to_i48","","",null,{"inputs":[{"name":"i16"}],"output":{"name":"i48"}}],[5,"to_i64","","",null,{"inputs":[{"name":"i16"}],"output":{"name":"i64"}}],[5,"to_u8","","",null,{"inputs":[{"name":"i16"}],"output":{"name":"u8"}}],[5,"to_u16","","",null,{"inputs":[{"name":"i16"}],"output":{"name":"u16"}}],[5,"to_u24","","",null,{"inputs":[{"name":"i16"}],"output":{"name":"u24"}}],[5,"to_u32","","",null,{"inputs":[{"name":"i16"}],"output":{"name":"u32"}}],[5,"to_u48","","",null,{"inputs":[{"name":"i16"}],"output":{"name":"u48"}}],[5,"to_u64","","",null,{"inputs":[{"name":"i16"}],"output":{"name":"u64"}}],[5,"to_f32","","",null,{"inputs":[{"name":"i16"}],"output":{"name":"f32"}}],[5,"to_f64","","",null,{"inputs":[{"name":"i16"}],"output":{"name":"f64"}}],[0,"i24","dsp::conv","",null,null],[5,"to_i8","dsp::conv::i24","",null,{"inputs":[{"name":"i24"}],"output":{"name":"i8"}}],[5,"to_i16","","",null,{"inputs":[{"name":"i24"}],"output":{"name":"i16"}}],[5,"to_i32","","",null,{"inputs":[{"name":"i24"}],"output":{"name":"i32"}}],[5,"to_i48","","",null,{"inputs":[{"name":"i24"}],"output":{"name":"i48"}}],[5,"to_i64","","",null,{"inputs":[{"name":"i24"}],"output":{"name":"i64"}}],[5,"to_u8","","",null,{"inputs":[{"name":"i24"}],"output":{"name":"u8"}}],[5,"to_u16","","",null,{"inputs":[{"name":"i24"}],"output":{"name":"u16"}}],[5,"to_u24","","",null,{"inputs":[{"name":"i24"}],"output":{"name":"u24"}}],[5,"to_u32","","",null,{"inputs":[{"name":"i24"}],"output":{"name":"u32"}}],[5,"to_u48","","",null,{"inputs":[{"name":"i24"}],"output":{"name":"u48"}}],[5,"to_u64","","",null,{"inputs":[{"name":"i24"}],"output":{"name":"u64"}}],[5,"to_f32","","",null,{"inputs":[{"name":"i24"}],"output":{"name":"f32"}}],[5,"to_f64","","",null,{"inputs":[{"name":"i24"}],"output":{"name":"f64"}}],[0,"i32","dsp::conv","",null,null],[5,"to_i8","dsp::conv::i32","",null,{"inputs":[{"name":"i32"}],"output":{"name":"i8"}}],[5,"to_i16","","",null,{"inputs":[{"name":"i32"}],"output":{"name":"i16"}}],[5,"to_i24","","",null,{"inputs":[{"name":"i32"}],"output":{"name":"i24"}}],[5,"to_i48","","",null,{"inputs":[{"name":"i32"}],"output":{"name":"i48"}}],[5,"to_i64","","",null,{"inputs":[{"name":"i32"}],"output":{"name":"i64"}}],[5,"to_u8","","",null,{"inputs":[{"name":"i32"}],"output":{"name":"u8"}}],[5,"to_u16","","",null,{"inputs":[{"name":"i32"}],"output":{"name":"u16"}}],[5,"to_u24","","",null,{"inputs":[{"name":"i32"}],"output":{"name":"u24"}}],[5,"to_u32","","",null,{"inputs":[{"name":"i32"}],"output":{"name":"u32"}}],[5,"to_u48","","",null,{"inputs":[{"name":"i32"}],"output":{"name":"u48"}}],[5,"to_u64","","",null,{"inputs":[{"name":"i32"}],"output":{"name":"u64"}}],[5,"to_f32","","",null,{"inputs":[{"name":"i32"}],"output":{"name":"f32"}}],[5,"to_f64","","",null,{"inputs":[{"name":"i32"}],"output":{"name":"f64"}}],[0,"i48","dsp::conv","",null,null],[5,"to_i8","dsp::conv::i48","",null,{"inputs":[{"name":"i48"}],"output":{"name":"i8"}}],[5,"to_i16","","",null,{"inputs":[{"name":"i48"}],"output":{"name":"i16"}}],[5,"to_i24","","",null,{"inputs":[{"name":"i48"}],"output":{"name":"i24"}}],[5,"to_i32","","",null,{"inputs":[{"name":"i48"}],"output":{"name":"i32"}}],[5,"to_i64","","",null,{"inputs":[{"name":"i48"}],"output":{"name":"i64"}}],[5,"to_u8","","",null,{"inputs":[{"name":"i48"}],"output":{"name":"u8"}}],[5,"to_u16","","",null,{"inputs":[{"name":"i48"}],"output":{"name":"u16"}}],[5,"to_u24","","",null,{"inputs":[{"name":"i48"}],"output":{"name":"u24"}}],[5,"to_u32","","",null,{"inputs":[{"name":"i48"}],"output":{"name":"u32"}}],[5,"to_u48","","",null,{"inputs":[{"name":"i48"}],"output":{"name":"u48"}}],[5,"to_u64","","",null,{"inputs":[{"name":"i48"}],"output":{"name":"u64"}}],[5,"to_f32","","",null,{"inputs":[{"name":"i48"}],"output":{"name":"f32"}}],[5,"to_f64","","",null,{"inputs":[{"name":"i48"}],"output":{"name":"f64"}}],[0,"i64","dsp::conv","",null,null],[5,"to_i8","dsp::conv::i64","",null,{"inputs":[{"name":"i64"}],"output":{"name":"i8"}}],[5,"to_i16","","",null,{"inputs":[{"name":"i64"}],"output":{"name":"i16"}}],[5,"to_i24","","",null,{"inputs":[{"name":"i64"}],"output":{"name":"i24"}}],[5,"to_i32","","",null,{"inputs":[{"name":"i64"}],"output":{"name":"i32"}}],[5,"to_i48","","",null,{"inputs":[{"name":"i64"}],"output":{"name":"i48"}}],[5,"to_u8","","",null,{"inputs":[{"name":"i64"}],"output":{"name":"u8"}}],[5,"to_u16","","",null,{"inputs":[{"name":"i64"}],"output":{"name":"u16"}}],[5,"to_u24","","",null,{"inputs":[{"name":"i64"}],"output":{"name":"u24"}}],[5,"to_u32","","",null,{"inputs":[{"name":"i64"}],"output":{"name":"u32"}}],[5,"to_u48","","",null,{"inputs":[{"name":"i64"}],"output":{"name":"u48"}}],[5,"to_u64","","",null,{"inputs":[{"name":"i64"}],"output":{"name":"u64"}}],[5,"to_f32","","",null,{"inputs":[{"name":"i64"}],"output":{"name":"f32"}}],[5,"to_f64","","",null,{"inputs":[{"name":"i64"}],"output":{"name":"f64"}}],[0,"u8","dsp::conv","",null,null],[5,"to_i8","dsp::conv::u8","",null,{"inputs":[{"name":"u8"}],"output":{"name":"i8"}}],[5,"to_i16","","",null,{"inputs":[{"name":"u8"}],"output":{"name":"i16"}}],[5,"to_i24","","",null,{"inputs":[{"name":"u8"}],"output":{"name":"i24"}}],[5,"to_i32","","",null,{"inputs":[{"name":"u8"}],"output":{"name":"i32"}}],[5,"to_i48","","",null,{"inputs":[{"name":"u8"}],"output":{"name":"i48"}}],[5,"to_i64","","",null,{"inputs":[{"name":"u8"}],"output":{"name":"i64"}}],[5,"to_u16","","",null,{"inputs":[{"name":"u8"}],"output":{"name":"u16"}}],[5,"to_u24","","",null,{"inputs":[{"name":"u8"}],"output":{"name":"u24"}}],[5,"to_u32","","",null,{"inputs":[{"name":"u8"}],"output":{"name":"u32"}}],[5,"to_u48","","",null,{"inputs":[{"name":"u8"}],"output":{"name":"u48"}}],[5,"to_u64","","",null,{"inputs":[{"name":"u8"}],"output":{"name":"u64"}}],[5,"to_f32","","",null,{"inputs":[{"name":"u8"}],"output":{"name":"f32"}}],[5,"to_f64","","",null,{"inputs":[{"name":"u8"}],"output":{"name":"f64"}}],[0,"u16","dsp::conv","",null,null],[5,"to_i8","dsp::conv::u16","",null,{"inputs":[{"name":"u16"}],"output":{"name":"i8"}}],[5,"to_i16","","",null,{"inputs":[{"name":"u16"}],"output":{"name":"i16"}}],[5,"to_i24","","",null,{"inputs":[{"name":"u16"}],"output":{"name":"i24"}}],[5,"to_i32","","",null,{"inputs":[{"name":"u16"}],"output":{"name":"i32"}}],[5,"to_i48","","",null,{"inputs":[{"name":"u16"}],"output":{"name":"i48"}}],[5,"to_i64","","",null,{"inputs":[{"name":"u16"}],"output":{"name":"i64"}}],[5,"to_u8","","",null,{"inputs":[{"name":"u16"}],"output":{"name":"u8"}}],[5,"to_u24","","",null,{"inputs":[{"name":"u16"}],"output":{"name":"u24"}}],[5,"to_u32","","",null,{"inputs":[{"name":"u16"}],"output":{"name":"u32"}}],[5,"to_u48","","",null,{"inputs":[{"name":"u16"}],"output":{"name":"u48"}}],[5,"to_u64","","",null,{"inputs":[{"name":"u16"}],"output":{"name":"u64"}}],[5,"to_f32","","",null,{"inputs":[{"name":"u16"}],"output":{"name":"f32"}}],[5,"to_f64","","",null,{"inputs":[{"name":"u16"}],"output":{"name":"f64"}}],[0,"u24","dsp::conv","",null,null],[5,"to_i8","dsp::conv::u24","",null,{"inputs":[{"name":"u24"}],"output":{"name":"i8"}}],[5,"to_i16","","",null,{"inputs":[{"name":"u24"}],"output":{"name":"i16"}}],[5,"to_i24","","",null,{"inputs":[{"name":"u24"}],"output":{"name":"i24"}}],[5,"to_i32","","",null,{"inputs":[{"name":"u24"}],"output":{"name":"i32"}}],[5,"to_i48","","",null,{"inputs":[{"name":"u24"}],"output":{"name":"i48"}}],[5,"to_i64","","",null,{"inputs":[{"name":"u24"}],"output":{"name":"i64"}}],[5,"to_u8","","",null,{"inputs":[{"name":"u24"}],"output":{"name":"u8"}}],[5,"to_u16","","",null,{"inputs":[{"name":"u24"}],"output":{"name":"u16"}}],[5,"to_u32","","",null,{"inputs":[{"name":"u24"}],"output":{"name":"u32"}}],[5,"to_u48","","",null,{"inputs":[{"name":"u24"}],"output":{"name":"u48"}}],[5,"to_u64","","",null,{"inputs":[{"name":"u24"}],"output":{"name":"u64"}}],[5,"to_f32","","",null,{"inputs":[{"name":"u24"}],"output":{"name":"f32"}}],[5,"to_f64","","",null,{"inputs":[{"name":"u24"}],"output":{"name":"f64"}}],[0,"u32","dsp::conv","",null,null],[5,"to_i8","dsp::conv::u32","",null,{"inputs":[{"name":"u32"}],"output":{"name":"i8"}}],[5,"to_i16","","",null,{"inputs":[{"name":"u32"}],"output":{"name":"i16"}}],[5,"to_i24","","",null,{"inputs":[{"name":"u32"}],"output":{"name":"i24"}}],[5,"to_i32","","",null,{"inputs":[{"name":"u32"}],"output":{"name":"i32"}}],[5,"to_i48","","",null,{"inputs":[{"name":"u32"}],"output":{"name":"i48"}}],[5,"to_i64","","",null,{"inputs":[{"name":"u32"}],"output":{"name":"i64"}}],[5,"to_u8","","",null,{"inputs":[{"name":"u32"}],"output":{"name":"u8"}}],[5,"to_u16","","",null,{"inputs":[{"name":"u32"}],"output":{"name":"u16"}}],[5,"to_u24","","",null,{"inputs":[{"name":"u32"}],"output":{"name":"u24"}}],[5,"to_u48","","",null,{"inputs":[{"name":"u32"}],"output":{"name":"u48"}}],[5,"to_u64","","",null,{"inputs":[{"name":"u32"}],"output":{"name":"u64"}}],[5,"to_f32","","",null,{"inputs":[{"name":"u32"}],"output":{"name":"f32"}}],[5,"to_f64","","",null,{"inputs":[{"name":"u32"}],"output":{"name":"f64"}}],[0,"u48","dsp::conv","",null,null],[5,"to_i8","dsp::conv::u48","",null,{"inputs":[{"name":"u48"}],"output":{"name":"i8"}}],[5,"to_i16","","",null,{"inputs":[{"name":"u48"}],"output":{"name":"i16"}}],[5,"to_i24","","",null,{"inputs":[{"name":"u48"}],"output":{"name":"i24"}}],[5,"to_i32","","",null,{"inputs":[{"name":"u48"}],"output":{"name":"i32"}}],[5,"to_i48","","",null,{"inputs":[{"name":"u48"}],"output":{"name":"i48"}}],[5,"to_i64","","",null,{"inputs":[{"name":"u48"}],"output":{"name":"i64"}}],[5,"to_u8","","",null,{"inputs":[{"name":"u48"}],"output":{"name":"u8"}}],[5,"to_u16","","",null,{"inputs":[{"name":"u48"}],"output":{"name":"u16"}}],[5,"to_u24","","",null,{"inputs":[{"name":"u48"}],"output":{"name":"u24"}}],[5,"to_u32","","",null,{"inputs":[{"name":"u48"}],"output":{"name":"u32"}}],[5,"to_u64","","",null,{"inputs":[{"name":"u48"}],"output":{"name":"u64"}}],[5,"to_f32","","",null,{"inputs":[{"name":"u48"}],"output":{"name":"f32"}}],[5,"to_f64","","",null,{"inputs":[{"name":"u48"}],"output":{"name":"f64"}}],[0,"u64","dsp::conv","",null,null],[5,"to_i8","dsp::conv::u64","",null,{"inputs":[{"name":"u64"}],"output":{"name":"i8"}}],[5,"to_i16","","",null,{"inputs":[{"name":"u64"}],"output":{"name":"i16"}}],[5,"to_i24","","",null,{"inputs":[{"name":"u64"}],"output":{"name":"i24"}}],[5,"to_i32","","",null,{"inputs":[{"name":"u64"}],"output":{"name":"i32"}}],[5,"to_i48","","",null,{"inputs":[{"name":"u64"}],"output":{"name":"i48"}}],[5,"to_i64","","",null,{"inputs":[{"name":"u64"}],"output":{"name":"i64"}}],[5,"to_u8","","",null,{"inputs":[{"name":"u64"}],"output":{"name":"u8"}}],[5,"to_u16","","",null,{"inputs":[{"name":"u64"}],"output":{"name":"u16"}}],[5,"to_u24","","",null,{"inputs":[{"name":"u64"}],"output":{"name":"u24"}}],[5,"to_u32","","",null,{"inputs":[{"name":"u64"}],"output":{"name":"u32"}}],[5,"to_u48","","",null,{"inputs":[{"name":"u64"}],"output":{"name":"u48"}}],[5,"to_f32","","",null,{"inputs":[{"name":"u64"}],"output":{"name":"f32"}}],[5,"to_f64","","",null,{"inputs":[{"name":"u64"}],"output":{"name":"f64"}}],[0,"f32","dsp::conv","",null,null],[5,"to_i8","dsp::conv::f32","",null,{"inputs":[{"name":"f32"}],"output":{"name":"i8"}}],[5,"to_i16","","",null,{"inputs":[{"name":"f32"}],"output":{"name":"i16"}}],[5,"to_i24","","",null,{"inputs":[{"name":"f32"}],"output":{"name":"i24"}}],[5,"to_i32","","",null,{"inputs":[{"name":"f32"}],"output":{"name":"i32"}}],[5,"to_i48","","",null,{"inputs":[{"name":"f32"}],"output":{"name":"i48"}}],[5,"to_i64","","",null,{"inputs":[{"name":"f32"}],"output":{"name":"i64"}}],[5,"to_u8","","",null,{"inputs":[{"name":"f32"}],"output":{"name":"u8"}}],[5,"to_u16","","",null,{"inputs":[{"name":"f32"}],"output":{"name":"u16"}}],[5,"to_u24","","",null,{"inputs":[{"name":"f32"}],"output":{"name":"u24"}}],[5,"to_u32","","",null,{"inputs":[{"name":"f32"}],"output":{"name":"u32"}}],[5,"to_u48","","",null,{"inputs":[{"name":"f32"}],"output":{"name":"u48"}}],[5,"to_u64","","",null,{"inputs":[{"name":"f32"}],"output":{"name":"u64"}}],[5,"to_f64","","",null,{"inputs":[{"name":"f32"}],"output":{"name":"f64"}}],[0,"f64","dsp::conv","",null,null],[5,"to_i8","dsp::conv::f64","",null,{"inputs":[{"name":"f64"}],"output":{"name":"i8"}}],[5,"to_i16","","",null,{"inputs":[{"name":"f64"}],"output":{"name":"i16"}}],[5,"to_i24","","",null,{"inputs":[{"name":"f64"}],"output":{"name":"i24"}}],[5,"to_i32","","",null,{"inputs":[{"name":"f64"}],"output":{"name":"i32"}}],[5,"to_i48","","",null,{"inputs":[{"name":"f64"}],"output":{"name":"i48"}}],[5,"to_i64","","",null,{"inputs":[{"name":"f64"}],"output":{"name":"i64"}}],[5,"to_u8","","",null,{"inputs":[{"name":"f64"}],"output":{"name":"u8"}}],[5,"to_u16","","",null,{"inputs":[{"name":"f64"}],"output":{"name":"u16"}}],[5,"to_u24","","",null,{"inputs":[{"name":"f64"}],"output":{"name":"u24"}}],[5,"to_u32","","",null,{"inputs":[{"name":"f64"}],"output":{"name":"u32"}}],[5,"to_u48","","",null,{"inputs":[{"name":"f64"}],"output":{"name":"u48"}}],[5,"to_u64","","",null,{"inputs":[{"name":"f64"}],"output":{"name":"u64"}}],[5,"to_f32","","",null,{"inputs":[{"name":"f64"}],"output":{"name":"f32"}}],[8,"FromSample","dsp::conv","Similar to the std `From` trait, but specifically for converting between sample types.",null,null],[10,"from_sample_","","",1,{"inputs":[{"name":"s"}],"output":{"name":"self"}}],[8,"ToSample","","Similar to the std `Into` trait, but specifically for converting between sample types.",null,null],[10,"to_sample_","","",2,null],[8,"Duplex","","Sample types which may be converted to and from some type `S`.",null,null],[8,"FromSampleSlice","","For converting from a slice of `Sample`s to a slice of `Frame`s.",null,null],[10,"from_sample_slice","","",3,null],[8,"FromSampleSliceMut","","For converting from a mutable slice of `Sample`s to a mutable slice of `Frame`s.",null,null],[10,"from_sample_slice_mut","","",4,null],[8,"FromBoxedSampleSlice","","For converting a boxed slice of `Sample`s to a boxed slice of `Frame`s.",null,null],[10,"from_boxed_sample_slice","","",5,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[8,"FromFrameSlice","","For converting from a slice of `Frame`s to a slice of `Sample`s.",null,null],[10,"from_frame_slice","","",6,null],[8,"FromFrameSliceMut","","For converting from a slice of `Frame`s to a slice of `Sample`s.",null,null],[10,"from_frame_slice_mut","","",7,null],[8,"FromBoxedFrameSlice","","For converting from a boxed slice of `Frame`s to a boxed slice of `Sample`s.",null,null],[10,"from_boxed_frame_slice","","",8,{"inputs":[{"name":"box"}],"output":{"name":"self"}}],[8,"ToSampleSlice","","For converting from a slice of `Frame`s to a slice of `Sample`s.",null,null],[10,"to_sample_slice","","",9,null],[8,"ToSampleSliceMut","","For converting from a mutable slice of `Frame`s to a mutable slice of `Sample`s.",null,null],[10,"to_sample_slice_mut","","",10,null],[8,"ToBoxedSampleSlice","","For converting from a boxed slice of `Frame`s to a boxed slice of `Sample`s.",null,null],[10,"to_boxed_sample_slice","","",11,null],[8,"ToFrameSlice","","For converting from a slice of `Sample`s to a slice of `Frame`s.",null,null],[10,"to_frame_slice","","",12,null],[8,"ToFrameSliceMut","","For converting from a mutable slice of `Sample`s to a mutable slice of `Frame`s.",null,null],[10,"to_frame_slice_mut","","",13,null],[8,"ToBoxedFrameSlice","","For converting from a boxed slice of `Sample`s to a boxed slice of `Frame`s.",null,null],[10,"to_boxed_frame_slice","","",14,null],[8,"DuplexSampleSlice","","",null,null],[8,"DuplexFrameSlice","","",null,null],[8,"DuplexSlice","","",null,null],[8,"DuplexSampleSliceMut","","",null,null],[8,"DuplexFrameSliceMut","","",null,null],[8,"DuplexSliceMut","","",null,null],[8,"DuplexBoxedSampleSlice","","",null,null],[8,"DuplexBoxedFrameSlice","","",null,null],[8,"DuplexBoxedSlice","","",null,null],[0,"rate","dsp","The **rate** module provides a [**Converter** type](./struct.Converter.html), for converting\nand interpolating the rate of **Signal**s. This can be useful for both sample rate conversion\nand playback rate multiplication.",null,null],[3,"Converter","dsp::rate","An iterator that converts the rate at which frames are yielded from some given frame Iterator\nvia some given ratio.",null,null],[0,"slice","dsp","This module provides various helper functions for performing operations on slices of frames.",null,null],[5,"to_frame_slice","dsp::slice","Converts the given slice into a slice of `Frame`s.",null,{"inputs":[{"name":"t"}],"output":{"name":"option"}}],[5,"to_frame_slice_mut","","Converts the given mutable slice into a mutable slice of `Frame`s.",null,{"inputs":[{"name":"t"}],"output":{"name":"option"}}],[5,"to_boxed_frame_slice","","Converts the given boxed slice into a boxed slice of `Frame`s.",null,{"inputs":[{"name":"t"}],"output":{"name":"option"}}],[5,"to_sample_slice","","Converts the given slice into a slice of `Sample`s.",null,null],[5,"to_sample_slice_mut","","Converts the given mutable slice of `Frame`s into a mutable slice of `Sample`s.",null,null],[5,"to_boxed_sample_slice","","Converts the given boxed slice into a boxed slice of `Sample`s.",null,{"inputs":[{"name":"t"}],"output":{"name":"box"}}],[5,"from_sample_slice","","Converts the given slice of `Sample`s into some slice `T`.",null,null],[5,"from_sample_slice_mut","","Converts the given mutable slice of `Sample`s into some mutable slice `T`.",null,null],[5,"from_boxed_sample_slice","","Converts the given boxed slice of `Sample`s into some slice `T`.",null,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[5,"from_frame_slice","","Converts the given slice of `Frame`s into some slice `T`.",null,null],[5,"from_frame_slice_mut","","Converts the given slice of mutable `Frame`s into some mutable slice `T`.",null,null],[5,"from_boxed_frame_slice","","Converts the given boxed slice of `Frame`s into some slice `T`.",null,{"inputs":[{"name":"box"}],"output":{"name":"t"}}],[5,"map_in_place","","Mutate every element in the slice with the given function.",null,null],[5,"equilibrium","","Sets the slice of frames at the associated `Sample`'s equilibrium value.",null,null],[5,"zip_map_in_place","","Mutate every frame in slice `a` while reading from each frame in slice `b` in lock-step using\nthe given function.",null,null],[5,"write","","Writes every sample in slice `b` to slice `a`.",null,null],[5,"add_in_place","","Adds every sample in slice `b` to every sample in slice `a` respectively.",null,null],[5,"add_in_place_with_amp_per_channel","","Scale the amplitude of each frame in `b` by `amp_per_channel` before summing it onto `a`.",null,null],[0,"signal","dsp","Use the [**Signal** trait](./trait.Signal.html) for working with **Iterator**s that yield\n**Frame**s. To complement the **Iterator** trait, **Signal** provides methods for adding,\nscaling, offsetting, multiplying, clipping and generating frame iterators and more.",null,null],[8,"Signal","dsp::signal","A trait that allows us to treat `Iterator`s that yield `Frame`s as a multi-channel PCM signal.",null,null],[11,"add_amp","","Provides an iterator that yields the sum of the frames yielded by both `other` and `self`\nin lock-step.",15,null],[11,"mul_amp","","Provides an iterator that yields the product of the frames yielded by both `other` and\n`self` in lock-step.",15,null],[11,"offset_amp","","Provides an iterator that offsets the amplitude of every channel in each frame of the\nsignal by some sample value and yields the resulting frames.",15,null],[11,"scale_amp","","Produces an `Iterator` that scales the amplitude of the sample of each channel in every\n`Frame` yielded by `self` by the given amplitude.",15,null],[11,"offset_amp_per_channel","","Produces an `Iterator` that offsets the amplitude of every `Frame` in `self` by the\nrespective amplitudes in each channel of the given `amp_frame`.",15,null],[11,"scale_amp_per_channel","","Produces an `Iterator` that scales the amplitude of every `Frame` in `self` by the\nrespective amplitudes in each channel of the given `amp_frame`.",15,null],[11,"mul_hz","","Multiplies the rate at which frames of `self` are yielded by the given `signal`.",15,null],[11,"from_hz_to_hz","","Converts the rate at which frames of the `Signal` are yielded using interpolation.",15,null],[11,"scale_hz","","Multiplies the rate at which frames of the `Signal` are yielded by the given value.",15,null],[11,"delay","","Delays the `Signal` by the given number of frames.",15,null],[11,"to_samples","","Converts a `Iterator` yielding `Frame`s into an `Iterator` yielding `Sample`s.",15,null],[11,"clip_amp","","Clips the amplitude of each channel in each `Frame` yielded by `self` to the given\nthreshold amplitude.",15,null],[11,"bus","","Moves the `Signal` into a `Bus` from which its output may be divided into multiple other\n`Signal`s in the form of `Output`s.",15,null],[3,"Equilibrium","","An iterator that endlessly yields `Frame`s of type `F` at equilibrium.",null,null],[3,"Gen","","A signal that generates frames using the given function.",null,null],[3,"GenMut","","A signal that generates frames using the given function which may mutate some state.",null,null],[3,"FromInterleavedSamples","","An iterator that converts an iterator of `Sample`s to an iterator of `Frame`s.",null,null],[3,"Rate","","The rate at which phrase a **Signal** is sampled.",null,null],[3,"ConstHz","","A constant phase step size.",null,null],[3,"Hz","","An iterator that yields the step size for a phase.",null,null],[3,"Phase","","An iterator that yields a phase, useful for waveforms like Sine or Saw.",null,null],[3,"Sine","","A sine wave signal generator.",null,null],[3,"Saw","","A saw wave signal generator.",null,null],[3,"Square","","A square wave signal generator.",null,null],[3,"Noise","","A noise signal generator.",null,null],[3,"NoiseSimplex","","A 1D simplex-noise generator.",null,null],[3,"AddAmp","","An iterator that yields the sum of the frames yielded by both `other` and `self` in lock-step.",null,null],[3,"MulAmp","","An iterator that yields the product of the frames yielded by both `other` and `self` in\nlock-step.",null,null],[3,"OffsetAmp","","Provides an iterator that offsets the amplitude of every channel in each frame of the\nsignal by some sample value and yields the resulting frames.",null,null],[3,"ScaleAmp","","An `Iterator` that scales the amplitude of the sample of each channel in every `Frame` yielded\nby `self` by the given amplitude.",null,null],[3,"OffsetAmpPerChannel","","An `Iterator` that scales the amplitude of every `Frame` in `self` by the respective amplitudes\nin each channel of the given `amp` `Frame`.",null,null],[3,"ScaleAmpPerChannel","","An `Iterator` that scales the amplitude of every `Frame` in `self` by the respective amplitudes\nin each channel of the given `amp` `Frame`.",null,null],[3,"MulHz","","Multiplies the rate at which frames of `self` are yielded by the given `signal`.",null,null],[3,"Delay","","Delays the `signal` by the given number of frames.",null,null],[3,"ToSamples","","Converts a `Signal` to an `Iterator` yielding `Sample`s of the signal.",null,null],[3,"ClipAmp","","Clips samples in each frame yielded by `signal` to the given threshhold amplitude.",null,null],[3,"Bus","","A type which allows for `send`ing a single `Signal` to multiple outputs.",null,null],[3,"Output","","An output node to which some signal `S` is `Output`ing its frames.",null,null],[5,"equilibrium","","Provides an iterator that endlessly yields `Frame`s of type `F` at equilibrium.",null,{"inputs":[],"output":{"name":"equilibrium"}}],[5,"gen","","A signal that generates frames using the given function.",null,{"inputs":[{"name":"g"}],"output":{"name":"gen"}}],[5,"gen_mut","","A signal that generates frames using the given function which may mutate some state.",null,{"inputs":[{"name":"g"}],"output":{"name":"genmut"}}],[5,"from_interleaved_samples","","An iterator that converts the given `Iterator` yielding `Sample`s to a `Signal` yielding frames\nof type `F`.",null,{"inputs":[{"name":"i"}],"output":{"name":"frominterleavedsamples"}}],[5,"phase","","Creates a `Phase` that continuously steps forward by the given `step` size yielder.",null,{"inputs":[{"name":"s"}],"output":{"name":"phase"}}],[5,"rate","","Creates a frame `Rate` (aka sample rate) representing the rate at which a signal may be\nsampled.",null,{"inputs":[{"name":"f64"}],"output":{"name":"rate"}}],[5,"sine","","Produces a `Signal` that yields a sine wave oscillating at the given hz.",null,{"inputs":[{"name":"phase"}],"output":{"name":"sine"}}],[5,"saw","","Produces a `Signal` that yields a saw wave oscillating at the given hz.",null,{"inputs":[{"name":"phase"}],"output":{"name":"saw"}}],[5,"square","","Produces a `Signal` that yields a square wave oscillating at the given hz.",null,{"inputs":[{"name":"phase"}],"output":{"name":"square"}}],[5,"noise","","Produces a `Signal` that yields random values between -1.0..1.0.",null,{"inputs":[{"name":"u64"}],"output":{"name":"noise"}}],[5,"noise_simplex","","Produces a 1-dimensional simplex noise `Signal`.",null,{"inputs":[{"name":"phase"}],"output":{"name":"noisesimplex"}}],[8,"Step","","Types that may be used to give a phase step size based on some `hz / sample rate`.",null,null],[10,"step","","Yield the phase step size (normally `hz / sampling rate`).",16,null],[8,"DuplexSample","dsp","Sample types which may be converted to and from some type `S`.",null,null],[8,"Frame","","Represents one sample from each channel at a single discrete instance in time within a\nPCM signal.",null,null],[16,"Sample","","The type of PCM sample stored at each channel within the frame.",17,null],[16,"NumChannels","","A typified version of a number of channels in the `Frame`, used for safely mapping frames\nof the same length to other `Frame`s, perhaps with a different `Sample` associated type.",17,null],[16,"Channels","","An iterator yielding the sample in each channel, starting from left (channel 0) and ending\nat the right (channel NumChannels-1).",17,null],[16,"Signed","","A frame type with equilavent number of channels using the associated `Sample::Signed` format.",17,null],[16,"Float","","A frame type with equilavent number of channels using the associated `Sample::Float` format.",17,null],[10,"equilibrium","","The equilibrium value for the wave that this `Sample` type represents. This is normally the\nvalue that is equal distance from both the min and max ranges of the sample.",17,{"inputs":[],"output":{"name":"self"}}],[10,"from_fn","","Create a new `Frame` where the `Sample` for each channel is produced by the given function.",17,{"inputs":[{"name":"f"}],"output":{"name":"self"}}],[10,"from_samples","","Create a new `Frame` from a borrowed `Iterator` yielding samples for each channel.",17,{"inputs":[{"name":"i"}],"output":{"name":"option"}}],[10,"n_channels","","The total number of channels (and in turn samples) stored within the frame.",17,{"inputs":[],"output":{"name":"usize"}}],[10,"channels","","Converts the frame into an iterator yielding the sample for each channel in the frame.",17,null],[10,"channel","","Yields a reference to the `Sample` of the channel at the given index if there is one.",17,null],[10,"channel_unchecked","","Returns a pointer to the sample of the channel at the given index, without doing bounds\nchecking.",17,null],[10,"map","","Applies the given function to each sample in the `Frame` in channel order and returns the\nresult as a new `Frame`.",17,null],[10,"zip_map","","Calls the given function with the pair of elements at every index and returns the\nresulting Frame.",17,null],[10,"to_signed_frame","","Converts the frame type to the equivalent signal in its associated `Float`ing point format.",17,null],[10,"to_float_frame","","Converts the frame type to the equivalent signal in its associated `Signed` format.",17,null],[11,"offset_amp","","Offsets the amplitude of every channel in the frame by the given `offset` and yields the\nresulting frame.",17,null],[11,"scale_amp","","Multiplies each `Sample` in the `Frame` by the given amplitude and returns the resulting\n`Frame`.",17,null],[11,"add_amp","","Sums each channel in `other` with each channel in `self` and returns the resulting `Frame`.",17,null],[11,"mul_amp","","Multiplies `other` with `self` and returns the resulting `Frame`.",17,null],[8,"FromSample","","Similar to the std `From` trait, but specifically for converting between sample types.",null,null],[10,"from_sample_","","",1,{"inputs":[{"name":"s"}],"output":{"name":"self"}}],[8,"ToSample","","Similar to the std `Into` trait, but specifically for converting between sample types.",null,null],[10,"to_sample_","","",2,null],[8,"Sample","","A trait for working generically across different **Sample** format types.",null,null],[16,"Signed","","When summing two samples of a signal together, it is necessary for both samples to be\nrepresented in some signed format. This associated `Addition` type represents the format to\nwhich `Self` should be converted for optimal `Addition` performance.",18,null],[16,"Float","","When multiplying two samples of a signal together, it is necessary for both samples to be\nrepresented in some signed, floating-point format. This associated `Multiplication` type\nrepresents the format to which `Self` should be converted for optimal `Multiplication`\nperformance.",18,null],[10,"equilibrium","","The equilibrium value for the wave that this `Sample` type represents. This is normally the\nvalue that is equal distance from both the min and max ranges of the sample.",18,{"inputs":[],"output":{"name":"self"}}],[11,"identity","","The multiplicative identity of the signal.",18,null],[11,"to_sample","","Convert `self` to any type that implements `FromSample<Self>`.",18,null],[11,"from_sample","","Create a `Self` from any type that implements `ToSample<Self>`.",18,{"inputs":[{"name":"s"}],"output":{"name":"self"}}],[11,"to_signed_sample","","Converts `self` to the equivalent `Sample` in the associated `Signed` format.",18,null],[11,"to_float_sample","","Converts `self` to the equivalent `Sample` in the associated `Float` format.",18,null],[11,"add_amp","","Adds (or "offsets") the amplitude of the `Sample` by the given signed amplitude.",18,null],[11,"mul_amp","","Multiplies (or "scales") the amplitude of the `Sample` by the given float amplitude.",18,null],[8,"Signal","","A trait that allows us to treat `Iterator`s that yield `Frame`s as a multi-channel PCM signal.",null,null],[11,"add_amp","","Provides an iterator that yields the sum of the frames yielded by both `other` and `self`\nin lock-step.",15,null],[11,"mul_amp","","Provides an iterator that yields the product of the frames yielded by both `other` and\n`self` in lock-step.",15,null],[11,"offset_amp","","Provides an iterator that offsets the amplitude of every channel in each frame of the\nsignal by some sample value and yields the resulting frames.",15,null],[11,"scale_amp","","Produces an `Iterator` that scales the amplitude of the sample of each channel in every\n`Frame` yielded by `self` by the given amplitude.",15,null],[11,"offset_amp_per_channel","","Produces an `Iterator` that offsets the amplitude of every `Frame` in `self` by the\nrespective amplitudes in each channel of the given `amp_frame`.",15,null],[11,"scale_amp_per_channel","","Produces an `Iterator` that scales the amplitude of every `Frame` in `self` by the\nrespective amplitudes in each channel of the given `amp_frame`.",15,null],[11,"mul_hz","","Multiplies the rate at which frames of `self` are yielded by the given `signal`.",15,null],[11,"from_hz_to_hz","","Converts the rate at which frames of the `Signal` are yielded using interpolation.",15,null],[11,"scale_hz","","Multiplies the rate at which frames of the `Signal` are yielded by the given value.",15,null],[11,"delay","","Delays the `Signal` by the given number of frames.",15,null],[11,"to_samples","","Converts a `Iterator` yielding `Frame`s into an `Iterator` yielding `Sample`s.",15,null],[11,"clip_amp","","Clips the amplitude of each channel in each `Frame` yielded by `self` to the given\nthreshold amplitude.",15,null],[11,"bus","","Moves the `Signal` into a `Bus` from which its output may be divided into multiple other\n`Signal`s in the form of `Output`s.",15,null],[3,"Connection","","Describes a connection between two Nodes within the Graph: *input -> connection -> output*.",null,null],[12,"buffer","","The buffer used to pass audio between nodes.",19,null],[3,"Graph","","A directed, acyclic DSP graph.",null,null],[3,"Inputs","","A walker object for walking over nodes that are inputs to some node.",null,null],[3,"Outputs","","A walker object for walking over nodes that are outputs to some node.",null,null],[3,"VisitOrder","","A walker type for walking over a **Graph**'s nodes in the order in which they will visited when\naudio is requested from the **Graph**.",null,null],[3,"VisitOrderReverse","","A walker type for walking over a **Graph**'s nodes in the order in which they will visited when\naudio is requested from the **Graph**.",null,null],[3,"WouldCycle","","The error returned when adding an edge that would create a cycle.",null,null],[11,"fmt","","",20,null],[11,"clone","","",20,null],[11,"fmt","","",19,null],[11,"clone","","",19,null],[11,"fmt","","",21,null],[11,"clone","","",21,null],[11,"new","","Constructor for a new dsp Graph.",20,{"inputs":[],"output":{"name":"self"}}],[11,"with_capacity","","Constructor for a new dsp Graph with some minimum capacity.",20,{"inputs":[{"name":"usize"},{"name":"usize"},{"name":"usize"}],"output":{"name":"self"}}],[11,"dag","","A reference to the underlying **Dag**.",20,null],[11,"into_dag","","Takes ownership of the **Graph** and returns the underlying **Dag**.",20,null],[11,"pet_graph","","A reference to the internal **Dag**'s underlying **PetGraph**.",20,null],[11,"into_pet_graph","","Takes ownership of the **Graph** and returns the internal **Dag**'s underlying **PetGraph**.",20,null],[11,"node_count","","The total number of nodes in the **Graph**.",20,null],[11,"connection_count","","The total number of connections in the **Graph**.",20,null],[11,"master_index","","Return the **Graph**'s master index if there is one.",20,null],[11,"set_master","","Set the master node for the **Graph**.",20,null],[11,"add_node","","Add a node to the dsp graph.",20,null],[11,"node","","A reference to the node at the given index (or `None` if it doesn't exist).",20,null],[11,"node_mut","","A mutable reference to the node at the given index (or `None` if it doesn't exist).",20,null],[11,"raw_nodes","","Read only access to the internal node array.",20,null],[11,"nodes_mut","","An iterator yielding mutable access to all nodes.",20,null],[11,"connection","","A reference to the connection at the given index (or `None` if it doesn't exist).",20,null],[11,"raw_edges","","Read only access to the internal edge array.",20,null],[11,"index_twice_mut","","Index the **Graph** by two `NodeIndex`s at once.",20,null],[11,"remove_node","","Remove a node from the dsp graph.",20,null],[11,"add_connection","","Adds an edge from `src` to `dest`. That is, `src` is now an input to `dest`.",20,null],[11,"add_connections","","The same as [`add_connection`](./struct.Graph.html#method.add_connection) but adds\nmultiple connections to the **Graph**. Rather than checking for introduced cycles and\nre-preparing the visit order after adding each edge, we only do so after **all** edges are\nadded. Thus, this is a far more efficient alternative to repeatedly calling the\n`add_connection` method.",20,null],[11,"find_connection","","Find and return the index to the edge that describes the connection where `src` is an input\nto `dest`.",20,null],[11,"remove_edge","","Remove the connection described by the edge at the given index.",20,null],[11,"remove_connection","","Find and remove any connection between a and b if there is one, whether it is *a -> b* or\n*b -> a*. We know that their may only be one edge as our API does not allow for creating a\ncyclic graph.",20,null],[11,"add_input","","Add a new node weight to the graph as an input to the wait at the given `dest` node index.",20,null],[11,"add_output","","Add a new node weight to the graph as an output to the wait at the given `src` node index.",20,null],[11,"inputs","","A "walker" object that may be used to step through the inputs of the given node.",20,null],[11,"outputs","","A "walker" object that may be used to step through the outputs of the given node.",20,null],[11,"visit_order","","A "walker" type that may be used to step through all node indices in the order in which\nthey will be visited when audio is requested from the **Graph**.",20,null],[11,"visit_order_rev","","A "walker" type that may be used to step through all node indices in the order in which\nthey will be visited when audio is requested from the **Graph**.",20,null],[11,"remove_all_input_connections","","Remove all incoming connections to the node at the given index.",20,null],[11,"remove_all_output_connections","","Remove all outgoing connections from the node at the given index.",20,null],[11,"clear_disconnected","","Clear all dsp nodes that have no inputs or outputs.",20,null],[11,"clear","","Clear all dsp nodes.",20,null],[11,"prepare_buffers","","Prepare the buffers for all nodes within the Graph.",20,null],[11,"audio_requested_from","","Request audio from the node at the given index.",20,null],[11,"index","","",20,null],[11,"index_mut","","",20,null],[11,"index","","",20,null],[11,"audio_requested","","",20,null],[11,"next","","The next (connection, node) input pair to some node in our walk for the given **Graph**.",22,null],[11,"next_edge","","The next input connection to some node in our walk for the given **Graph**.",22,null],[11,"next_node","","The next input node to some node in our walk for the given **Graph**.",22,null],[11,"next","","The next (connection, node) output pair from some node in our walk for the given **Graph**.",23,null],[11,"next_edge","","The next output connection from some node in our walk for the given **Graph**.",23,null],[11,"next_node","","The next output node from some node in our walk for the given **Graph**.",23,null],[11,"next","","The index of the next node that would be visited during audio requested in our walk of the\ngiven **Graph**'s visit order.",24,null],[11,"next","","The index of the next node that would be visited during audio requested in our walk of the\ngiven **Graph**'s visit order.",25,null],[11,"fmt","","",21,null],[11,"description","","",21,null],[6,"Dag","","An alias for the **Dag** used within our **Graph**.",null,null],[6,"EdgeIndex","","An alias for our Graph's Edge Index.",null,null],[6,"NodeIndex","","An alias for our Graph's Node Index.",null,null],[6,"NodesMut","","An alias for the iterator yielding mutable access to all node weights.",null,null],[6,"PetGraph","","An alias for the **PetGraph** used by our **Graph**'s internal **Dag**.",null,null],[6,"RawEdges","","Read only access to a **Graph**'s internal edge array.",null,null],[6,"RawNodes","","Read only access to a **Graph**'s internal node array.",null,null],[6,"Volume","","The amplitude multiplier.",null,null],[6,"Panning","","The spacial positioning of the node. Currently only supports Stereo or Mono.\n-1.0 = Left.\n 0.0 = Center.\n 1.0 = Right.",null,null],[8,"Node","","Types to be used as a **Node** within the DSP **Graph**.",null,null],[10,"audio_requested","","Request audio from the **Node** given some `sample_hz` (aka sample rate in hertz).\nIf the **Node** has no inputs, the `buffer` will be zeroed.\nIf the **Node** has some inputs, the `buffer` will consist of the inputs summed together.",26,null],[11,"dry","","Following the call to the `Node`'s `audio_requested` method, the `Graph` will sum together\nsome of the original (dry) signal with some of the processed (wet) signal.",26,null],[11,"wet","","Following the call to the `Node`'s `audio_requested` method, the `Graph` will sum together\nsome of the original (dry) signal with some of the processed (wet) signal.",26,null],[11,"clone","dsp::signal","",27,null],[11,"clone","","",28,null],[11,"clone","","",29,null],[11,"clone","","",30,null],[11,"eq","","",31,null],[11,"ne","","",31,null],[11,"fmt","","",31,null],[11,"clone","","",31,null],[11,"clone","","",32,null],[11,"clone","","",33,null],[11,"clone","","",34,null],[11,"clone","","",35,null],[11,"clone","","",36,null],[11,"clone","","",37,null],[11,"clone","","",38,null],[11,"clone","","",39,null],[11,"clone","","",40,null],[11,"clone","","",41,null],[11,"clone","","",42,null],[11,"clone","","",43,null],[11,"clone","","",44,null],[11,"clone","","",45,null],[11,"clone","","",46,null],[11,"clone","","",47,null],[11,"clone","","",48,null],[11,"next","","",27,null],[11,"next_back","","",27,null],[11,"next","","",28,null],[11,"next","","",29,null],[11,"next","","",30,null],[11,"const_hz","","Create a `ConstHz` iterator which consistently yields "hz / rate".",31,null],[11,"hz","","Create a variable `hz` some iterator that yields hz and an initial hz.",31,null],[11,"phase","","Construct a `Phase` iterator that, for every `hz` yielded by `self`, yields a phase that is\nstepped by `hz / self.rate.hz`.",33,null],[11,"sine","","A composable alternative to the `signal::sine` function.",33,null],[11,"saw","","A composable alternative to the `signal::saw` function.",33,null],[11,"square","","A composable alternative to the `signal::square` function.",33,null],[11,"noise_simplex","","A composable alternative to the `signal::noise_simplex` function.",33,null],[11,"phase","","Construct a `Phase` iterator that is incremented via the constant step size, `self.step`.",32,null],[11,"sine","","A composable alternative to the `signal::sine` function.",32,null],[11,"saw","","A composable alternative to the `signal::saw` function.",32,null],[11,"square","","A composable alternative to the `signal::square` function.",32,null],[11,"noise_simplex","","A composable alternative to the `signal::noise_simplex` function.",32,null],[11,"step","","",32,null],[11,"step","","",33,null],[11,"next_phase_wrapped_to","","Before yielding the current phase, the internal phase is stepped forward and wrapped via\nthe given value.",34,null],[11,"next_phase","","Calls `next_phase_wrapped_to`, with a wrapping value of `1.0`.",34,null],[11,"sine","","A composable version of the `signal::sine` function.",34,null],[11,"saw","","A composable version of the `signal::saw` function.",34,null],[11,"square","","A composable version of the `signal::square` function.",34,null],[11,"noise_simplex","","A composable version of the `signal::noise_simplex` function.",34,null],[11,"next","","",33,null],[11,"next","","",32,null],[11,"next","","",34,null],[11,"next","","",35,null],[11,"next","","",36,null],[11,"next","","",37,null],[11,"next_sample","","",38,null],[11,"next","","",38,null],[11,"next_sample","","",39,null],[11,"next","","",39,null],[11,"next","","",40,null],[11,"size_hint","","",40,null],[11,"len","","",40,null],[11,"next","","",41,null],[11,"size_hint","","",41,null],[11,"len","","",41,null],[11,"next","","",43,null],[11,"size_hint","","",43,null],[11,"len","","",43,null],[11,"next","","",45,null],[11,"size_hint","","",45,null],[11,"len","","",45,null],[11,"next","","",42,null],[11,"size_hint","","",42,null],[11,"len","","",42,null],[11,"next","","",44,null],[11,"size_hint","","",44,null],[11,"len","","",44,null],[11,"next","","",46,null],[11,"size_hint","","",46,null],[11,"next","","",47,null],[11,"size_hint","","",47,null],[11,"len","","",47,null],[11,"next","","",49,null],[11,"size_hint","","",49,null],[11,"clone","","",49,null],[11,"len","","",49,null],[11,"next","","",48,null],[11,"send","","Produce a new Output node to which the signal `S` will output its frames.",50,null],[11,"pending_frames","","The number of frames that have been requested from the `Signal` `S` by some other `Output`\nthat have not yet been requested by this `Output`.",51,null],[11,"next","","",51,null],[11,"size_hint","","",51,null],[11,"clone","dsp::rate","",52,null],[11,"from_hz_to_hz","","Construct a new `Converter` from the source frames and the source and target sample rates\n(in Hz).",52,{"inputs":[{"name":"i"},{"name":"f64"},{"name":"f64"}],"output":{"name":"converter"}}],[11,"scale_playback_hz","","Construct a new `Converter` from the source frames and the amount by which the current\n***playback*** **rate** (not sample rate) should be multiplied to reach the new playback\nrate.",52,{"inputs":[{"name":"i"},{"name":"f64"}],"output":{"name":"converter"}}],[11,"scale_sample_hz","","Construct a new `Converter` from the source frames and the amount by which the current\n***sample*** **rate** (not playback rate) should be multiplied to reach the new sample\nrate.",52,{"inputs":[{"name":"i"},{"name":"f64"}],"output":{"name":"converter"}}],[11,"set_hz_to_hz","","Update the `source_to_target_ratio` internally given the source and target hz.",52,null],[11,"set_playback_hz_scale","","Update the `source_to_target_ratio` internally given a new **playback rate** multiplier.",52,null],[11,"set_sample_hz_scale","","Update the `source_to_target_ratio` internally given a new **sample rate** multiplier.",52,null],[11,"source","","Borrow the `source_frames` Iterator from the `Converter`.",52,null],[11,"source_mut","","Mutably borrow the `source_frames` Iterator from the `Converter`.",52,null],[11,"into_source","","Drop `self` and return the internal `source_frames` Iterator.",52,null],[11,"next_frame","","Yields the next interpolated target frame.",52,null],[11,"next","","",52,null],[11,"size_hint","","",52,null],[11,"dry","dsp","Following the call to the `Node`'s `audio_requested` method, the `Graph` will sum together\nsome of the original (dry) signal with some of the processed (wet) signal.",26,null],[11,"wet","","Following the call to the `Node`'s `audio_requested` method, the `Graph` will sum together\nsome of the original (dry) signal with some of the processed (wet) signal.",26,null]],"paths":[[8,"Walker"],[8,"FromSample"],[8,"ToSample"],[8,"FromSampleSlice"],[8,"FromSampleSliceMut"],[8,"FromBoxedSampleSlice"],[8,"FromFrameSlice"],[8,"FromFrameSliceMut"],[8,"FromBoxedFrameSlice"],[8,"ToSampleSlice"],[8,"ToSampleSliceMut"],[8,"ToBoxedSampleSlice"],[8,"ToFrameSlice"],[8,"ToFrameSliceMut"],[8,"ToBoxedFrameSlice"],[8,"Signal"],[8,"Step"],[8,"Frame"],[8,"Sample"],[3,"Connection"],[3,"Graph"],[3,"WouldCycle"],[3,"Inputs"],[3,"Outputs"],[3,"VisitOrder"],[3,"VisitOrderReverse"],[8,"Node"],[3,"Equilibrium"],[3,"Gen"],[3,"GenMut"],[3,"FromInterleavedSamples"],[3,"Rate"],[3,"ConstHz"],[3,"Hz"],[3,"Phase"],[3,"Sine"],[3,"Saw"],[3,"Square"],[3,"Noise"],[3,"NoiseSimplex"],[3,"AddAmp"],[3,"MulAmp"],[3,"OffsetAmp"],[3,"ScaleAmp"],[3,"OffsetAmpPerChannel"],[3,"ScaleAmpPerChannel"],[3,"MulHz"],[3,"Delay"],[3,"ClipAmp"],[3,"ToSamples"],[3,"Bus"],[3,"Output"],[3,"Converter"]]}; initSearch(searchIndex);