Expand description
§Rill Patchbay — Маршрутизация событий и автоматизация
rill-patchbay является эволюцией rill-automation из версии 0.2.0,
объединённой с функциональностью маппинга из rill-control.
§Основные компоненты
- Автоматы — генеративные источники сигналов (LFO, огибающие, секвенсоры)
- Сервоприводы — связь автоматов с параметрами узлов
- Маппинги — связь внешних событий (MIDI/OSC) с параметрами
- Сенсоры — источники событий из внешнего мира
- Менеджер — центральный координатор для двухпоточной архитектуры
§Архитектура
┌─────────────────────────────────────────────────────────────┐
│ ПОТОК УПРАВЛЕНИЯ │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ PatchbayManager │ │
│ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │
│ │ │ Automata │ │ Servos │ │ Mappings │ │ │
│ │ └────────────┘ └────────────┘ └────────────┘ │ │
│ │ │ │ │ │
│ │ ▼ ▼ │ │
│ │ ┌──────────────────────────┐ │ │
│ │ │ RtQueue<ParameterCommand>│ │ │
│ │ └──────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ │ неблокирующая очередь │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ АУДИОПОТОК │ │
│ │ (rill-graph / rill-io) │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘Re-exports§
pub use automaton::EnvelopeAutomaton;pub use automaton::EnvelopeStage;pub use automaton::EnvelopeType;pub use automaton::FunctionAutomaton;pub use automaton::LfoAutomaton;pub use automaton::LfoWaveform;pub use automaton::PlayMode;pub use automaton::Range;pub use automaton::SequencerAutomaton;pub use automaton::StatefulFunctionAutomaton;pub use automaton::Step;pub use automaton::SyncMode;pub use control::midi_cc;pub use control::osc_address;pub use control::AnyServo;pub use control::Automaton;pub use control::BoxedServo;pub use control::ControlEvent;pub use control::EventPattern;pub use control::Mapping;pub use control::NoAction;pub use control::ParameterCommand;pub use control::ParameterMapping;pub use control::PatchbayControl;pub use control::Servo;pub use control::Target;pub use control::Transform;pub use manager::PatchbayManager;
Modules§
- automaton
- Автоматы — генеративные источники управления
- buffer_
prelude - Prelude for working with buffers
- control
- Управление и маппинг событий
- external
- Common third-party types that are frequently used with Rill
- f32_
prelude - Prelude for working with f32 samples (common case)
- f64_
prelude - Prelude for working with f64 samples (high precision)
- manager
- Менеджер патчбэя — центральный координатор
- node_
prelude - Prelude for working with nodes
- param_
prelude - Prelude for working with parameters
- port_
prelude - Prelude for working with ports
- prelude
- Прелюдия для удобного импорта основных типов
- queue_
prelude - Prelude for working with queues (automation)
- sensor
- Сенсоры — источники событий из внешнего мира
- time_
prelude - Prelude for working with time
- utils
- Утилиты и вспомогательные функции
Structs§
- Action
Context - Context provided to an
Algorithmduring processing. - Algorithm
Metadata - Descriptive metadata for an
Algorithmimplementation. - Atomic
Cell - Атомарная ячейка с полностью безопасным API
- Atomic
Stats - Atomic statistics for safe concurrent access
- Buffer
- Fixed-size audio buffer owned by a port.
- Buffer
Stats - Buffer statistics snapshot for monitoring and debugging
- Clock
Tick - A tick of the audio clock
- Delay
Line - Delay line for audio effects
- FanIn
Buffer - Buffer for mixing multiple producers to one consumer
- FanOut
Buffer - Buffer for broadcasting from one producer to multiple consumers
- NodeId
- Unique identifier for a node in the graph
- Node
Metadata - Metadata about a node
- Node
Params - A flexible set of parameters passed to a node constructor.
- Node
State - State of a node during processing State of a node during processing
- Node
Type Id - Type identifier for a node (for downcasting)
- Param
Metadata - Metadata about a parameter
- Param
Range - Range constraints for a parameter
- Parameter
Id - Type-safe parameter identifier with validation
- Pipe
Buffer - Single-producer, single-consumer buffer for node connections
- Port
- A port on a node.
- PortId
- Unique identifier for a port within a graph
- Ring
Buffer - Кольцевой буфер с фиксированным размером
- RtQueue
- Главная RT-safe очередь
- Scalar
Vector1 - Скалярный вектор из 1 элемента
- Scalar
Vector2 - Скалярный вектор из 2 элементов
- Scalar
Vector4 - Скалярный вектор из 4 элементов
- Scalar
Vector8 - Скалярный вектор из 8 элементов
- System
Clock - High-precision system clock
- Telemetry
Block - Fixed-size telemetry frame for RT-safe ring buffer communication.
Enums§
- Algorithm
Category - Category of an algorithm (for introspection / UI)
- Atomic
Cell Error - Ошибки создания атомарной ячейки
- Buffer
Error - Buffer error types
- Connection
Error - Errors that can occur during graph connections
- Node
Category - Category of a node (for UI/organization)
- Param
Type - Type of parameter value
- Param
Value - Parameter value (can be of different types)
- Parameter
Error - Errors that can occur during parameter operations
- Port
Direction - Direction of a port (input or output)
- Port
Error - Errors that can occur during port operations
- Port
Type - Type of a port - what kind of signal it carries
- Process
Error - Main error type for signal processing operations
- Queue
Error - Ошибки очередей
- Time
Error - Errors that can occur during time and clock operations
Constants§
- CACHE_
LINE_ SIZE - Cache line size for alignment (64 bytes on x86_64)
- DEFAULT_
BLOCK_ SIZE - Default block size for signal processing
- DEFAULT_
BUFFER_ SIZE - Default buffer size for most use cases
- DEFAULT_
SAMPLE_ RATE - Default sample rate (44.1 kHz)
- MAX_
BLOCK_ SIZE - Maximum block size
- MAX_
BUFFER_ SIZE - Maximum buffer size (2^16 = 65536 samples)
- MAX_
SAMPLE_ RATE - Maximum supported sample rate
- MIN_
BLOCK_ SIZE - Minimum block size
- MIN_
BUFFER_ SIZE - Minimum buffer size
- MIN_
SAMPLE_ RATE - Minimum supported sample rate
- VERSION
- Current version of rill-core
Traits§
- Action
- Unified processing primitive for ports and DSP blocks.
- Algorithm
- Unified processing primitive for ports and DSP blocks.
- Clock
Source - A source of clock ticks for signal processing
- Interpolate
- Fractional-index reading with interpolation.
- Into
Param Value - Trait for types that can be converted to/from
ParamValue - Processor
- Passive processor of signals
- Signal
Buffer - Common trait for all signal buffers
- Signal
Node - Base trait for all audio nodes
- Sink
- Active sink of signals
- Source
- Active source of signals
- Transcendental
- Трансцендентные операции (sin, cos, sqrt, exp, ln).
- Vector
- Основной трейт для векторных типов (базовые операции).
- Vector
Mask - Vector
Reduce - Vector
Scalar Ops - Vector
Transcendental - Трейт для векторных типов с трансцендентными операциями.
Functions§
- abs_
slice - Поэлементный модуль слайса
- add_
scalar_ slice - Сложение слайса со скаляром
- add_
slices - Поэлементное сложение двух слайсов с сохранением результата в третий
- clamp_
slice - Поэлементное ограничение слайса
- cos_
slice - Поэлементный косинус слайса
- div_
slices - Поэлементное деление двух слайсов
- exp_
slice - Поэлементная экспонента слайса
- ln_
slice - Поэлементный натуральный логарифм слайса
- max_
slice - Поэлементный максимум двух слайсов
- min_
slice - Поэлементный минимум двух слайсов
- mul_
scalar_ slice - Умножение слайса на скаляр
- mul_
slices - Поэлементное умножение двух слайсов
- sin_
slice - Поэлементный синус слайса
- sqrt_
slice - Поэлементный квадратный корень слайса
- sub_
slices - Поэлементное вычитание двух слайсов
- tan_
slice - Поэлементный тангенс слайса
Type Aliases§
- Buffer
Result - Result type for buffer operations
- Connection
Result - Result type for connection operations
- Control
Value - Control signal value type
- Default
Clock - Default system clock
- Default
Delay Line - Default delay line with f32 samples
- Default
Pipe Buffer - Default pipe buffer with f32 samples
- Default
Ring Buffer - Default ring buffer with f32 samples
- Mono
Block - Mono signal block type
- Parameter
Result - Result type for parameter operations
- Port
Result - Result type for port operations
- Process
Result - Result type for signal processing operations
- Queue
Result - Результат операций с очередями
- Sample
- Default sample type (32-bit float)
- Stereo
Block - Stereo signal block type (left, right)
- Time
Result - Result type for time operations