//! # Sensor — external input bridge
//!
//! A `Sensor` converts external data (MIDI, OSC, hardware knobs, signal analysis)
//! into [`ControlEvent`](crate::sensor::ControlEvent)s that can be mapped through
//! [`ParameterMapping`](crate::sensor::ParameterMapping) to graph parameters.
//!
//! ## Available sensor types
//!
//! - [`midi`] — MIDI controller and note sensors
//! - [`osc`] — OSC address-based sensors
//! - [`hearing`] — signal analysis algorithms (pitch, envelope, zero-crossing)
//! for acoustic sensors that react to graph signal output.
//!
//! Multiple sensors can run independently — all events share a single
//! mailbox drained by [`Patchbay::drain_events`].
use ActorRef;
use crate;
/// External input that produces [`ControlEvent`]s and dispatches them
/// via a shared [`ActorRef`].
///
/// `Sensor` extends [`Module`] so every sensor is also a rack module.