Skip to main content

Crate rill_patchbay

Crate rill_patchbay 

Source
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§

ActionContext
Context provided to an Algorithm during processing.
AlgorithmMetadata
Descriptive metadata for an Algorithm implementation.
AtomicCell
Атомарная ячейка с полностью безопасным API
AtomicStats
Atomic statistics for safe concurrent access
Buffer
Fixed-size audio buffer owned by a port.
BufferStats
Buffer statistics snapshot for monitoring and debugging
ClockTick
A tick of the audio clock
DelayLine
Delay line for audio effects
FanInBuffer
Buffer for mixing multiple producers to one consumer
FanOutBuffer
Buffer for broadcasting from one producer to multiple consumers
NodeId
Unique identifier for a node in the graph
NodeMetadata
Metadata about a node
NodeParams
A flexible set of parameters passed to a node constructor.
NodeState
State of a node during processing State of a node during processing
NodeTypeId
Type identifier for a node (for downcasting)
ParamMetadata
Metadata about a parameter
ParamRange
Range constraints for a parameter
ParameterId
Type-safe parameter identifier with validation
PipeBuffer
Single-producer, single-consumer buffer for node connections
Port
A port on a node.
PortId
Unique identifier for a port within a graph
RingBuffer
Кольцевой буфер с фиксированным размером
RtQueue
Главная RT-safe очередь
ScalarVector1
Скалярный вектор из 1 элемента
ScalarVector2
Скалярный вектор из 2 элементов
ScalarVector4
Скалярный вектор из 4 элементов
ScalarVector8
Скалярный вектор из 8 элементов
SystemClock
High-precision system clock
TelemetryBlock
Fixed-size telemetry frame for RT-safe ring buffer communication.

Enums§

AlgorithmCategory
Category of an algorithm (for introspection / UI)
AtomicCellError
Ошибки создания атомарной ячейки
BufferError
Buffer error types
ConnectionError
Errors that can occur during graph connections
NodeCategory
Category of a node (for UI/organization)
ParamType
Type of parameter value
ParamValue
Parameter value (can be of different types)
ParameterError
Errors that can occur during parameter operations
PortDirection
Direction of a port (input or output)
PortError
Errors that can occur during port operations
PortType
Type of a port - what kind of signal it carries
ProcessError
Main error type for signal processing operations
QueueError
Ошибки очередей
TimeError
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.
ClockSource
A source of clock ticks for signal processing
Interpolate
Fractional-index reading with interpolation.
IntoParamValue
Trait for types that can be converted to/from ParamValue
Processor
Passive processor of signals
SignalBuffer
Common trait for all signal buffers
SignalNode
Base trait for all audio nodes
Sink
Active sink of signals
Source
Active source of signals
Transcendental
Трансцендентные операции (sin, cos, sqrt, exp, ln).
Vector
Основной трейт для векторных типов (базовые операции).
VectorMask
VectorReduce
VectorScalarOps
VectorTranscendental
Трейт для векторных типов с трансцендентными операциями.

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§

BufferResult
Result type for buffer operations
ConnectionResult
Result type for connection operations
ControlValue
Control signal value type
DefaultClock
Default system clock
DefaultDelayLine
Default delay line with f32 samples
DefaultPipeBuffer
Default pipe buffer with f32 samples
DefaultRingBuffer
Default ring buffer with f32 samples
MonoBlock
Mono signal block type
ParameterResult
Result type for parameter operations
PortResult
Result type for port operations
ProcessResult
Result type for signal processing operations
QueueResult
Результат операций с очередями
Sample
Default sample type (32-bit float)
StereoBlock
Stereo signal block type (left, right)
TimeResult
Result type for time operations