v1.1.0
🇪🇸 Español
Normalizador Audio v1.1.0
Esta versión amplía significativamente las capacidades de rendimiento e interfaz de la aplicación, incorporando aceleración por GPU, presets profesionales, procesamiento en paralelo configurable y previsualización de waveform. Compatible sin cambios con la configuración de v1.0.0.
✨ Nuevas Funcionalidades
🚀 Rendimiento y procesamiento
- Aceleración GPU inteligente (FFmpeg): detección automática del método
hwaccelcompatible con el hardware (CUDA, DXVA2, D3D11VA). Activación y desactivación opcional directamente desde la interfaz sin reiniciar la app. - Fallback automático a CPU: si FFmpeg falla al usar
-hwaccel, el procesamiento reintenta automáticamente en CPU sin interrumpir el flujo de trabajo ni generar errores visibles al usuario. - Procesamiento paralelo configurable: el nuevo selector de concurrencia permite procesar entre 1 y 8 videos simultáneamente, ajustado al número de núcleos disponibles en el sistema.
- Cancelación robusta: al pulsar Cancelar, todos los procesos FFmpeg activos son terminados de forma segura, liberando recursos del sistema inmediatamente.
🎛️ Interfaz de usuario
- Presets predefinidos por plataforma: cuatro presets listos para usar (YouTube, Netflix, Spotify, Podcast) aplican automáticamente los valores de LUFS, LRA y TP recomendados para cada estándar. El modo
Customconserva los valores guardados manualmente. - Selector de concurrencia: control visual integrado en la pestaña Normalizar para ajustar la cantidad de procesos simultáneos en tiempo real.
- Waveform visual en la pestaña Perfil: al seleccionar un video de referencia, la app genera y muestra automáticamente la forma de onda del audio usando FFmpeg, sin herramientas externas.
🧩 Infraestructura interna
- Tres nuevos módulos de servicio:
gpu_service(detección y selección de hwaccel),waveform_service(generación de imágenes waveform) ywaveform_worker(procesamiento en background sin bloquear la UI). - La limpieza de caché ahora incluye también el directorio temporal de imágenes waveform.
🔧 Gestión automática de FFmpeg
- Los instaladores install.ps1 e install_secure.ps1 ahora validan si FFmpeg está disponible y, si no lo está, lo instalan automáticamente mediante
winget(paqueteGyan.FFmpegcon fallback aFFmpeg.FFmpeg). - Al iniciar la aplicación, si FFmpeg no se detecta en el sistema, se ofrece instalación automática con winget desde una ventana de consola, sin necesidad de intervención manual adicional.
- El menú Ayuda > Instalar FFmpeg informa si FFmpeg ya está presente o inicia el instalador automático si falta.
🛠️ Compatibilidad
- Sin cambios incompatibles para usuarios que vienen de v1.0.0.
- La configuración existente se migra automáticamente con los nuevos campos
gpu_accelyparallel_jobs. - El entorno virtual
.venvexistente se conserva durante actualizaciones.
📦 Stack Técnico
- Framework: PyQt6 ≥6.0.0
- Backend: Python 3.8–3.14 (recomendado 3.11)
- Procesamiento de audio: FFmpeg con filtro loudnorm
- GPU detection: subprocess + ffmpeg hwaccels probe
- QR local: qrcode[pil], sin API remota
- CI/CD: GitHub Actions (tests, linting, security checks)
📋 Requisitos del Sistema
- SO: Windows 10/11 64-bit
- Python: 3.8–3.14 (preinstalado o auto-instalable vía winget)
- FFmpeg: Instalado en PATH (auto-instalable vía winget desde la app)
- RAM: Mínimo 2 GB (recomendado 4 GB+ para procesamiento paralelo)
- GPU (opcional): NVIDIA (CUDA), Intel o AMD con soporte DXVA2/D3D11VA
📝 Notas de versión
Segunda versión del proyecto. La arquitectura de servicios fue refactorizada internamente para soportar hardware acceleration y procesamiento concurrente de forma estable.
Próximas versiones considerarán:
- Soporte para formatos de audio directo (.mp3, .wav, .flac)
- Historial de procesamiento con rollback
- Interfaz de línea de comandos (CLI)
🇺🇸 English
Audio Normalizer v1.1.0
This release significantly extends the app's performance and interface capabilities, adding GPU acceleration, professional presets, configurable parallel processing, and waveform preview. Fully backward compatible with v1.0.0 configuration.
✨ New Features
🚀 Performance and processing
- Smart GPU acceleration (FFmpeg): automatic detection of the hardware-compatible
hwaccelmethod (CUDA, DXVA2, D3D11VA), with an optional toggle in the UI — no restart required. - Automatic CPU fallback: when FFmpeg fails with
-hwaccel, processing silently retries on CPU without interrupting the workflow or surfacing errors to the user. - Configurable parallel processing: a new concurrency control lets you process 1 to 8 videos simultaneously, automatically capped to the number of available CPU cores.
- Robust cancellation: pressing Cancel safely terminates all active FFmpeg processes and immediately releases system resources.
🎛️ User interface
- Platform presets: four ready-to-use presets (YouTube, Netflix, Spotify, Podcast) apply the recommended LUFS, LRA and TP values for each delivery standard in one click.
Custommode restores manually saved values. - Concurrency selector: inline control in the Normalize tab to adjust simultaneous processing jobs in real time.
- Visual waveform in the Profile tab: when a reference video is selected, the app automatically generates and displays the audio waveform using FFmpeg — no external tools required.
🧩 Internal infrastructure
- Three new service modules:
gpu_service(hwaccel detection and selection),waveform_service(waveform image generation), andwaveform_worker(background processing that keeps the UI responsive). - Cache cleanup now covers the waveform image temp directory.
🔧 Automatic FFmpeg Management
- The install.ps1 and install_secure.ps1 installers now validate whether FFmpeg is available and, if missing, install it automatically via
winget(primary packageGyan.FFmpegwith fallback toFFmpeg.FFmpeg). - On app startup, if FFmpeg is not detected, the user is offered automatic winget installation through a console window — no manual steps required.
- The Help > Install FFmpeg menu item informs the user if FFmpeg is already present, or launches the automatic installer if it is missing.
🛠️ Compatibility
- No breaking changes for users upgrading from v1.0.0.
- Existing configuration is automatically migrated with the new keys
gpu_accelandparallel_jobs. - An existing
.venvenvironment is preserved during in-place updates.
📦 Tech Stack
- Framework: PyQt6 ≥6.0.0
- Backend: Python 3.8–3.14 (recommended 3.11)
- Audio processing: FFmpeg with loudnorm filter
- GPU detection: subprocess + ffmpeg hwaccels probe
- Local QR: qrcode[pil], no remote API
- CI/CD: GitHub Actions (tests, linting, security checks)
📋 System Requirements
- OS: Windows 10/11 64-bit
- Python: 3.8–3.14 (pre-installed or auto-installable via winget)
- FFmpeg: In PATH (auto-installable via winget from within the app)
- RAM: Minimum 2 GB (4 GB+ recommended for parallel processing)
- GPU (optional): NVIDIA (CUDA), Intel or AMD with DXVA2/D3D11VA support
📝 Release Notes
Second project release. The internal service architecture was refactored to reliably support hardware acceleration and concurrent processing.
Future versions may include:
- Direct audio format support (.mp3, .wav, .flac)
- Processing history with rollback
- Command-line interface (CLI)
🇧🇷 Português (Brasil)
Normalizador de Áudio v1.1.0
Esta versão expande significativamente os recursos de desempenho e interface do aplicativo, com aceleração por GPU, presets profissionais, processamento paralelo configurável e pré-visualização de waveform. Totalmente compatível com as configurações da v1.0.0.
✨ Novas Funcionalidades
🚀 Desempenho e processamento
- Aceleração GPU inteligente (FFmpeg): detecção automática do método
hwaccelcompatível com o hardware (CUDA, DXVA2, D3D11VA), com ativação opcional direto na interface — sem necessidade de reiniciar o app. - Fallback automático para CPU: quando o FFmpeg falha com
-hwaccel, o processamento tenta novamente em CPU de forma silenciosa, sem interromper o fluxo de trabalho nem exibir erros ao usuário. - Processamento paralelo configurável: o novo seletor de concorrência permite processar de 1 a 8 vídeos simultaneamente, limitado automaticamente ao número de núcleos disponíveis no sistema.
- Cancelamento robusto: ao pressionar Cancelar, todos os processos FFmpeg ativos são encerrados com segurança e os recursos do sistema são liberados imediatamente.
🎛️ Interface do usuário
- Presets por plataforma: quatro presets prontos (YouTube, Netflix, Spotify, Podcast) aplicam os valores recomendados de LUFS, LRA e TP para cada padrão de entrega com um clique. O modo
Customrestaura os valores salvos manualmente. - Seletor de concorrência: controle integrado na aba Normalizar para ajustar os processos simultâneos em tempo real.
- Waveform visual na aba Perfil: ao selecionar um vídeo de referência, o app gera e exibe automaticamente a forma de onda do áudio usando o FFmpeg — sem ferramentas externas.
🧩 Infraestrutura interna
- Três novos módulos de serviço:
gpu_service(detecção e seleção de hwaccel),waveform_service(geração de imagens waveform) ewaveform_worker(processamento em segundo plano sem bloquear a UI). - A limpeza de cache agora também cobre o diretório temporário de imagens waveform.
🔧 Gerenciamento automático de FFmpeg
- Os instaladores install.ps1 e install_secure.ps1 agora validam se o FFmpeg está disponível e, se não estiver, instalam automaticamente via
winget(pacoteGyan.FFmpegcom fallback paraFFmpeg.FFmpeg). - Na inicialização do app, se o FFmpeg não for detectado, o usuário pode instalá-lo automaticamente via winget por uma janela de console — sem etapas manuais adicionais.
- O menu Ajuda > Instalar FFmpeg informa se o FFmpeg já está instalado no sistema, ou inicia o instalador automático caso esteja ausente.
🛠️ Compatibilidade
- Sem mudanças incompatíveis para usuários que atualizam da v1.0.0.
- A configuração existente é migrada automaticamente com as novas chaves
gpu_acceleparallel_jobs. - O ambiente virtual
.venvexistente é preservado durante atualizações no local.
📦 Stack Técnico
- Framework: PyQt6 ≥6.0.0
- Backend: Python 3.8–3.14 (recomendado 3.11)
- Processamento de áudio: FFmpeg com filtro loudnorm
- Detecção de GPU: subprocess + ffmpeg hwaccels probe
- QR local: qrcode[pil], sem API remota
- CI/CD: GitHub Actions (testes, linting, verificações de segurança)
📋 Requisitos do Sistema
- SO: Windows 10/11 64-bit
- Python: 3.8–3.14 (pré-instalado ou instalável automaticamente via winget)
- FFmpeg: No PATH (instalável automaticamente via winget pelo próprio app)
- RAM: Mínimo 2 GB (4 GB+ recomendado para processamento paralelo)
- GPU (opcional): NVIDIA (CUDA), Intel ou AMD com suporte DXVA2/D3D11VA
📝 Notas de Versão
Segunda versão do projeto. A arquitetura interna de serviços foi refatorada para suportar aceleração por hardware e processamento concorrente de forma estável.
Versões futuras poderão incluir:
- Suporte a formatos de áudio direto (.mp3, .wav, .flac)
- Histórico de processamento com rollback
- Interface de linha de comando (CLI)
Full Changelog: v1.0.0...v1.1.0