Skip to content
GitHub

API Reference

Configuration for the beat-analysis subsystem.

Provider that registers a configured BeatAnalysisProvider backend.
__init__
def __init__(config: BeatAnalysisConfig | None = None) -> None
register
async def register(container: ContainerRegistrarProtocol) -> None
boot
async def boot(container: ContainerResolverProtocol) -> None

No async I/O needed at boot beyond what register() already did.

health_check
async def health_check(timeout: float = 5.0) -> HealthCheckResult

Librosa/madmom tempo-and-beat-detection integration.
configure
def configure(
    cls,
    config: BeatAnalysisConfig | None = None
) -> DynamicModule
stub
def stub(
    cls,
    config: BeatAnalysisConfig | None = None
) -> DynamicModule

Talks to no server — runs librosa's beat tracker in-process.
__init__
def __init__(sample_rate: int = 22050) -> None
analyze
async def analyze(request: BeatAnalysisRequest) -> Result[BeatAnalysisResult, MultimediaError]

Talks to a madmom_server.py reference server via BeatAnalysisProvider.
__init__
def __init__(
    base_url: str,
    timeout: float = 30.0,
    retry: RetryPolicyProtocol | None = None,
    circuit_breaker: CircuitBreakerProtocol | None = None
) -> None
analyze
async def analyze(request: BeatAnalysisRequest) -> Result[BeatAnalysisResult, MultimediaError]

Librosa could not decode the materialized audio file.