9e65e721d4
- Reflect current implementation status with complete GUI and font system - Update roadmap with prioritized development plan focusing on plot control widgets - Reorganize future goals into urgent/short-term/mid-long term categories - Add comprehensive feature overview and usage instructions - Clarify next priority: plot control system clustering 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
5.8 KiB
5.8 KiB
uj-mastering-master
A custom mastering toolkit that provides metrics to evaluate audio masterings through visual analysis.
Current Implementation
Core Features
- Audio Analysis: Uses librosa to analyze audio files (MP3/WAV/FLAC support)
- Power Visualization: Generates colorized power magnitude graphs over time
- Metadata Extraction: Reads ID3 tags from MP3 files for better file identification
- Modular GUI Architecture: Complete PyQt5 interface with drag-and-drop and file dialog support
- Font Management: Comprehensive CJK-compatible font system with user-provided font support
- Threading & Logging: Robust background processing with detailed logging system
Technical Stack
- Audio Processing: librosa, numpy
- Visualization: matplotlib with custom colormaps and embedded Qt widgets
- GUI Framework: PyQt5 with modular widget architecture
- Metadata: mutagen for audio tag reading
- Font Support: Custom font loading system with CJK fallback
Key Components
main.py
- Complete GUI application with modular architecture
- Drag-and-drop and file dialog support for audio files
- Integrated font control system
- Real-time analysis display and file management
analysis_results_manager.py
- Background threading for audio analysis
- Results caching and management
- Progress tracking and error handling
audio_visualization_widget.py
- Embedded matplotlib visualization with Qt integration
- Real-time plot updates and status display
font_control_widget.py & font_manager.py
- Unified font control system with clustered interface
- Auto-detection of custom fonts from
fonts/directory - System font discovery and CJK compatibility
- Auto-regeneration of plots when fonts change
master_core.py
- Core audio analysis functionality
AudioFileclass with comprehensive metrics extraction- RMS power analysis and BPM detection
Current Analysis Features
- RMS Power Analysis: 10-second rolling window with 2-second hops
- Adaptive Color Mapping: Automatically adjusts scale based on detected headroom
- High dynamic range: 0-0.6 scale for loud masters
- Conservative mastering: 0-0.3 scale for quiet masters
- BPM Detection: Automatic tempo analysis
- Metadata Display: Artist and title from audio tags
- Real-time Visualization: Embedded matplotlib plots with font-aware rendering
GUI Features
- File Management: Drag-and-drop and file dialog for audio selection
- Font Control: Unified font selector with size control and plot regeneration
- Analysis Display: Real-time visualization with metadata panels
- Modular Architecture: Self-contained widgets for easy layout management
Future Development Plans
Short-term (Urgent)
- Plot Control Widget Cluster
- Move 'Refresh Plot' into dedicated plot/graph widget cluster
- Add metric selection widget (choose which analysis to display)
- Implement plot style controller (colormap, line vs bar, etc.)
- Prepare foundation for mastering comparison features
Short-term (Not Urgent)
-
Enhanced Metrics
- LUFS loudness measurement implementation
- Dynamic range measurement (DR meter)
- Peak-to-average ratio analysis
- Frequency spectrum analysis
-
Interactive Plot Features
- GUI-controllable plotting styles (colormap, visualization type)
- Select axis ranges on the fly with automatic graph updates
- Zoom/pan controls for detailed analysis
- Export analysis results to CSV/JSON
-
Advanced GUI Controls
- Plot style customization interface
- Real-time axis range selection
- Interactive plot manipulation tools
Mid-Long term (Not Urgent)
-
Audio Comparison System
- Reference vs. comparee audio file analysis
- Side-by-side track comparison interface
- A/B testing for mastering versions
- Overlay visualization for comparative analysis
-
Distribution & Deployment
- Self-contained executable releases
- Cross-platform packaging
- Installer creation and distribution
Future Vision
-
Advanced Analysis Tools
- Spectral centroid and bandwidth analysis
- Stereo width measurements
- Transient detection and analysis
- Harmonic distortion detection
-
Professional Features
- EBU R128 compliance checking
- Custom target curves
- Professional reporting formats
- Multi-format export capabilities
-
VST Plugin Development
- Real-time analysis during mixing/mastering
- Integration with DAWs
- Live feedback during production
Development Notes
Dependencies
- librosa: Audio analysis and feature extraction
- numpy: Numerical computations
- matplotlib: Plotting and visualization
- mutagen: Audio metadata extraction
- PyQt5: GUI framework
Architecture Considerations
- Current code mixes analysis and visualization - consider separation
- File path handling needs improvement for cross-platform compatibility
- Error handling should be enhanced for production use
- Consider moving from PyQt5 to PyQt6 or PySide for better licensing
Testing Requirements
- Unit tests for audio analysis functions
- GUI component testing
- File format compatibility testing
- Performance testing with large audio files
Usage
Current Usage
- Run
python main.pyto launch the GUI application - Use "Open Audio File..." button or drag-and-drop audio files for analysis
- Adjust font settings using the Font Settings panel
- View real-time analysis results with embedded matplotlib plots
- Select different analyzed files from the file list to compare results
Legacy Usage (Batch Mode)
- Add audio file paths to
files.txt - Run
python master_core.pyfor batch analysis
Planned Usage Enhancements
- Interactive plot manipulation and style customization
- LUFS and advanced metric analysis
- Audio file comparison features
- Self-contained executable releases