Sobre el proyecto

DSPark es una biblioteca de audio DSP en C++20, solo cabeceras, dirigida a desarrolladores que crean software de audio en tiempo real y fuera de línea. Incluye efectos, filtros, síntesis y bloques espectrales, herramientas de análisis y musicales, E/S de archivos nativa y una capa opcional de plugins. Los módulos del framework no tienen dependencias de terceros y no requieren una biblioteca DSPark compilada por separado; las rutas optimizadas pueden usar intrínsecos SIMD proporcionados por el compilador detrás de protecciones de plataforma. Los adaptadores de plugins y la aplicación DSParkLab, solo para Windows, quedan fuera del encabezado general y tienen sus propios requisitos de integración de plataforma. La integración es sencilla: se incorpora el repositorio, se añade a la ruta de inclusión y se incluye el encabezado general. Un objetivo de interfaz CMake proporciona la ruta de inclusión y el requisito de C++20, y el proyecto también se puede consumir mediante find_package o FetchContent. Los procesadores se construyen y configuran con prepare(AudioSpec) antes de que un propietario de flujo de audio llame a processBlock(); en un host, se puede crear un AudioBufferView sobre punteros de canal propiedad del host para evitar asignaciones en la devolución de llamada. Las áreas de capacidad incluyen filtros y ecualización (Biquad, StateVariableFilter, LadderFilter, FilterEngine, Equalizer, CrossoverFilter); dinámica y control de nivel (Compressor, Limiter, NoiseGate, Expander, DynamicEQ, MultibandCompressor, DeEsser); modelado no lineal y analógico (Saturation, Clipper, TapeMachine, TubePreamp, TransformerModel, wdf::*); procesamiento de tiempo, tono y espacial (Delay, AlgorithmicReverb, Reverb, PitchShifter, TimeStretch, PitchCorrector, GranularProcessor); procesamiento espectral (FFTReal, Convolver, ZeroLatencyConvolver, SpectralProcessor, SpectralFreeze, SpectralDenoiser); análisis y medición (SpectrumAnalyzer, LoudnessMeter, LoudnessNormalizer, PitchDetector, OnsetDetector, BeatTracker, LoopFinder); síntesis y música (Oscillator, WavetableOscillator, ADSREnvelope, ChordDetector, KeyDetector, harmony::*); e infraestructura (AudioBuffer, ProcessorChain, Resampler, Oversampling, Dither, SpscQueue, blobs de estado versionados). La E/S de archivos cubre lectura/escritura de WAV y MP3, lectura/escritura de archivos MIDI estándar (formatos 0, 1, 2 lectura; 0 y 1 escritura) y decodificación FLAC nativa solamente, con operaciones de escritura que devuelven falso. Definir DSPARK_NO_FILE_IO omite todos los encabezados de E/S de archivos para objetivos sin soporte de sistema de archivos. El desarrollo de plugins se admite mediante adaptadores nativos VST3 y CLAP, además de Audio Unit v2 de macOS, que cubren parámetros, automatización, estado, latencia, informes de cola, bypass, diseños mono/estéreo, cadenas laterales, transporte, instrumentos MIDI, renderizado fuera de línea y ajustes preestablecidos de fábrica; los editores personalizados se pueden escribir en HTML/CSS/JavaScript e incrustarse mediante la capa WebView de la plataforma, con WebKitGTK requerido en tiempo de ejecución en Linux. La seguridad en tiempo real se documenta como un contrato por método, no como una propiedad general: la construcción, prepare(), la restauración de estado y la configuración solo de configuración pueden asignar y no deben ejecutarse concurrentemente con el procesamiento; un procesador preparado tiene un propietario de flujo de audio; la publicación de parámetros normalmente asume un escritor de control y un propietario de audio. La matriz de CI v1.7.0 cubre Windows (MSVC x64/ARM64), Linux (GCC x64/ARM64, Clang x64), macOS (Clang ARM64), WebAssembly (Emscripten escalar y SIMD128) y una compuerta de compilación embebida con E/S de archivos, excepciones y RTTI deshabilitados; iOS y Android son objetivos de los encabezados, pero carecen de trabajos de CI dedicados. La CI también verifica la autosuficiencia de los encabezados instalados, compilaciones sin advertencias, sanitizadores, rutas de publicación concurrentes, ejemplos, hosts de prueba y validadores de plugins, y documentación generada. El trabajo oficial de vectores de sonoridad EBU es de mejor esfuerzo porque el material de prueba con licencia se descarga por separado. DSParkLab es una aplicación Win32/Direct3D 11 solo para Windows para pruebas interactivas de procesadores; sus fuentes incluidas de Dear ImGui y miniaudio están confinadas a la aplicación y no son dependencias del framework. La documentación incluye una referencia de API generada, un libro de cocina orientado a tareas, ejemplos independientes, una guía de plugins, un modelo de subprocesos, una tabla de métricas de calidad con ajustes medidos y advertencias, una guía de migración a v1.7.0 y un registro de cambios. v1.7.0 añade herramientas de sincronización y edición musical, procesamiento de tono y espectral, decodificación FLAC y soporte de archivos MIDI sin dependencias, y actualizaciones de contrato público como ventanas de análisis sensibles a la tasa y coeficientes de biquad de doble precisión. El proyecto tiene licencia MIT y es mantenido por Cristian Moresi.