A Swift library for monophonic pitch detection in audio signals, offering multiple estimation algorithms.
Beethoven is a Swift library that solves the problem of pitch detection in monophonic audio signals. It provides an easy-to-use interface to track audio input or output, transform buffers, and apply various pitch estimation algorithms to find fundamental frequencies. The library is designed for real-time processing and supports multiple algorithms to balance accuracy and speed.
iOS and macOS developers building applications that require audio pitch analysis, such as tuners, music education tools, or voice processing apps. It's particularly useful for those working with monophonic sources like single instruments or vocals.
Developers choose Beethoven for its flexibility, extensibility, and comprehensive set of pitch estimation algorithms in a native Swift package. It abstracts the complexity of audio signal processing while allowing deep customization through protocols and configurable components.
:guitar: A maestro of pitch detection.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports multiple pitch estimation algorithms like YIN, HPS, and quadratic interpolation, allowing developers to choose based on accuracy-speed trade-offs for different instruments or voices.
Designed for live audio analysis with configurable buffer sizes and delegate-based results delivery, making it ideal for interactive apps like tuners or vocal trainers.
Uses protocols for transformers and estimators, enabling easy addition of custom methods or algorithms, as highlighted in the README's contribution encouragement.
Provides comprehensive error types for signal tracking, permissions, and estimation failures, aiding in building robust applications that handle edge cases gracefully.
Explicitly only handles monophonic audio signals, making it unsuitable for polyphonic music analysis, which is a common real-world scenario.
Built with Swift and AVAudioEngine, it's confined to iOS and macOS, excluding cross-platform projects and limiting adoption outside Apple's ecosystem.
Requires setting up Config, PitchEngine, and delegates, which adds complexity compared to more integrated or higher-level audio libraries.