Skip to main content

oximedia_audiopost/
lib.rs

1//! Professional audio post-production suite for `OxiMedia`.
2//!
3//! `oximedia-audiopost` provides comprehensive audio post-production capabilities including:
4//!
5//! - **ADR (Automated Dialogue Replacement)**: Session management, recording, and synchronization
6//! - **Foley**: Recording, editing, and library management
7//! - **Sound Design**: Synthesizers, effects, and spatial audio
8//! - **Mixing Console**: Professional channel strips, aux sends, and master section
9//! - **Advanced Effects**: Dynamic processing, time-based effects, modulation, and spectral processing
10//! - **Audio Restoration**: Noise reduction, artifact removal, and enhancement
11//! - **Stem Management**: Multi-stem creation, mixing, and export
12//! - **Loudness Management**: Standards compliance (EBU R128, ATSC A/85, etc.)
13//! - **Automation**: Volume, pan, and parameter automation with multiple modes
14//! - **Delivery**: Professional export formats and deliverable specifications
15//!
16//! # Example: ADR Session
17//!
18//! ```
19//! use oximedia_audiopost::adr::{AdrSession, AdrCue};
20//! use oximedia_audiopost::timecode::Timecode;
21//!
22//! # fn example() -> Result<(), Box<dyn std::error::Error>> {
23//! // Create an ADR session
24//! let mut session = AdrSession::new("Scene 42", 48000);
25//!
26//! // Add a cue
27//! let cue = AdrCue::new(
28//!     "Actor: 'To be or not to be'",
29//!     Timecode::from_frames(1000, 24.0),
30//!     Timecode::from_frames(1100, 24.0),
31//! );
32//! session.add_cue(cue);
33//! # Ok(())
34//! # }
35//! ```
36//!
37//! # Example: Mixing Console
38//!
39//! ```
40//! use oximedia_audiopost::mixing::{MixingConsole, ChannelStrip};
41//!
42//! # fn example() -> Result<(), Box<dyn std::error::Error>> {
43//! // Create a mixing console
44//! let mut console = MixingConsole::new(48000, 512)?;
45//!
46//! // Add a channel
47//! let channel = console.add_channel("Dialogue")?;
48//!
49//! // Configure the channel strip
50//! console.set_channel_gain(channel, 6.0)?;
51//! console.set_channel_pan(channel, 0.0)?; // Center
52//! # Ok(())
53//! # }
54//! ```
55
56#![warn(missing_docs)]
57#![allow(clippy::module_name_repetitions)]
58#![allow(clippy::too_many_arguments)]
59
60pub mod adr;
61pub mod adr_manager;
62/// ARIB TR-B32 loudness measurement for Japanese broadcast delivery.
63pub mod arib_loudness;
64pub mod audio_bus;
65pub mod audio_report;
66pub mod automation;
67pub mod broadcast_delivery;
68pub mod bus_routing;
69pub mod channel_mapping;
70pub mod clip_gain;
71/// Crossfade engine for seamless audio transitions.
72pub mod crossfade_engine;
73pub mod cue_sheet;
74pub mod delivery;
75pub mod delivery_spec;
76pub mod dialogue;
77/// Dialogue enhancement processing for clarity and intelligibility.
78pub mod dialogue_enhancer;
79/// Dialogue-specific equalization with resonance and presence control.
80pub mod dialogue_eq;
81pub mod dsp;
82pub mod edit_decision_audio;
83pub mod effects;
84pub mod error;
85pub mod foley;
86pub mod foley_manager;
87/// Foley synchronization with frame-accurate cue alignment.
88pub mod foley_sync;
89pub mod hardware;
90pub mod loudness;
91/// Loudness measurement pass with per-section integrated LUFS reporting.
92pub mod loudness_measure;
93pub mod loudness_session;
94/// Mid/Side matrix processing for stereo width and balance control.
95pub mod m_s_processing;
96pub mod metering;
97pub mod mix_session;
98pub mod mixing;
99pub mod music_licensing;
100pub mod noise_profile;
101pub mod noise_reduction_gate;
102pub mod phase_alignment;
103pub mod pipeline;
104/// Podcast-oriented audio processing pipeline with noise reduction and loudness normalization.
105pub mod podcast_processor;
106pub mod realtime;
107pub mod restoration;
108pub mod reverb_profile;
109pub mod room_acoustics;
110/// Automatic room-tone matching for seamless dialogue editing.
111pub mod room_tone_matcher;
112pub mod session;
113pub mod session_template;
114pub mod sound_design;
115pub mod sound_library;
116pub mod spectral_editor;
117pub mod stem_export;
118/// Stem-based mix console with per-stem processing and export.
119pub mod stem_mixer;
120pub mod stems;
121pub mod surround;
122/// Surround sound upmixing from stereo and mono sources.
123pub mod surround_upmix;
124pub mod take_manager;
125pub mod timecode;
126pub mod timecode_chase;
127pub mod track_layout;
128/// True-peak limiter meeting ITU-R BS.1770 / EBU R128 inter-sample peak requirements.
129pub mod true_peak;
130pub mod workflow;
131
132// Re-export commonly used items
133pub use error::{AudioPostError, AudioPostResult};
134pub use pipeline::{
135    AudioCodec, AudioExportConfig, ContainerFormat, DialogueLeveler, SurroundFormat, SurroundPanner,
136};
137
138/// Audio post-production version information
139pub const VERSION: &str = env!("CARGO_PKG_VERSION");