pub enum NodeRenderer {
Show 20 variants
Const(f64),
Time,
Wrap(Wrap),
Read {
slot: Slot,
map: Map,
},
Formula {
formula: Formula,
width: usize,
time: Box<NodeRenderer>,
},
Noise(u64),
Indexed {
slot: Slot,
index: Index,
reach: Option<(i64, i64)>,
},
Instant(Index),
Add(Vec<NodeRenderer>),
Mul(Vec<NodeRenderer>),
Sub(Box<NodeRenderer>, Box<NodeRenderer>),
Div(Box<NodeRenderer>, Box<NodeRenderer>),
Pow(Box<NodeRenderer>, Box<NodeRenderer>),
Map(Unary, Box<NodeRenderer>),
Zip(Binary, Box<NodeRenderer>, Box<NodeRenderer>),
Crop {
x: Box<NodeRenderer>,
window: (i64, i64),
a: f64,
b: f64,
rise: f64,
fall: f64,
},
Join(Vec<NodeRenderer>),
Channel {
x: Box<NodeRenderer>,
k: usize,
},
Filter {
site: SiteId,
from: i64,
x: Box<NodeRenderer>,
cutoff: Box<NodeRenderer>,
q: Box<NodeRenderer>,
gain: Box<NodeRenderer>,
},
Physics {
site: SiteId,
from: i64,
args: Vec<NodeRenderer>,
},
}Expand description
Every closed form-typed subterm was collapsed to a buffer, inlined or held as a formula before this tree was built, so there is no oscillator, no series and no delta here.
Variants§
Const(f64)
Time
Wrap(Wrap)
Read
Formula
A closed form at the instant time names, width components wide.
Noise(u64)
Indexed
The stored sample at the integer index names, within reach of the sample being
written where that is known.
Instant(Index)
The instant of the sample index names.
Add(Vec<NodeRenderer>)
Mul(Vec<NodeRenderer>)
Sub(Box<NodeRenderer>, Box<NodeRenderer>)
Div(Box<NodeRenderer>, Box<NodeRenderer>)
Pow(Box<NodeRenderer>, Box<NodeRenderer>)
Map(Unary, Box<NodeRenderer>)
Zip(Binary, Box<NodeRenderer>, Box<NodeRenderer>)
Crop
x over the samples window holds, the instants [a, b) it was written as, with a
raised-cosine rise and fall inside it; zero at every sample outside.
Join(Vec<NodeRenderer>)
Channel
Filter
Zero, stepping nothing, before from, where its state starts.
Physics
Implementations§
Source§impl NodeRenderer
impl NodeRenderer
Sourcepub fn spans(
&self,
layout: &Layout,
(from, to): (i64, i64),
live: &[Extent],
) -> Result<Vec<Span>, SampleError>
pub fn spans( &self, layout: &Layout, (from, to): (i64, i64), live: &[Extent], ) -> Result<Vec<Span>, SampleError>
[from, to) cut where the dead reads or shut crops change, each span pruned; any cut
of a run writes the same bits.
Trait Implementations§
Source§impl Clone for NodeRenderer
impl Clone for NodeRenderer
Source§impl Debug for NodeRenderer
impl Debug for NodeRenderer
Source§impl PartialEq for NodeRenderer
impl PartialEq for NodeRenderer
impl StructuralPartialEq for NodeRenderer
Auto Trait Implementations§
impl Freeze for NodeRenderer
impl RefUnwindSafe for NodeRenderer
impl Send for NodeRenderer
impl Sync for NodeRenderer
impl Unpin for NodeRenderer
impl UnsafeUnpin for NodeRenderer
impl UnwindSafe for NodeRenderer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more