Skip to main content

dspk_view/
lib.rs

1//! Preparing continuous multi-channel signals for viewing, wherever the viewer runs: a local
2//! app next to the recording, or a remote viewer served over the network (dspk-stream carries
3//! what this crate produces).
4//!
5//! - [`envelope`]: the min/max reduction (`[min, max]` per column keeps every spike peak visible
6//!   at any zoom), on the host and (feature `device`, on by default with `wgpu`) on a CubeCL
7//!   device.
8//! - [`view`]: what a viewer asks for ([`View`]) and gets ([`Envelope`]), locally or remotely.
9//! - [`pyramid`]: the min/max pyramid of a whole recording (in memory or in a file) and its
10//!   background builder.
11//! - [`signal`]: a signal as a viewer sees it ([`SignalBackend`]): [`LocalSignal`] (a recording
12//!   and its pyramid in this process), or a remote session (dspk-stream) answering the same views.
13//!
14//! Rendering and UI belong to the app; transport to dspk-stream; file formats to dspk-io.
15
16pub mod envelope;
17pub mod pyramid;
18pub mod signal;
19pub mod view;
20mod read;
21
22pub use envelope::{min_max_decimate, min_max_decimate_into, Block, Columns};
23#[cfg(feature = "device")]
24pub use envelope::envelope_on_device;
25pub use pyramid::{pyramid_path, OnProgress, Progress, Pyramid, PyramidBuilder, PyramidIdentity, FILE_BASE, MEMORY_BASE};
26pub use signal::{LocalSignal, SignalBackend, FILE_PYRAMID_MIN_BYTES};
27pub use view::{Envelope, View, RAW_BLOCK_VALUES};