a9a4b1725c
- Added CLAUDE.md with detailed project documentation and roadmap - Enhanced README.md with usage section for command line and GUI modes - Updated with Claude Code credit - Improved master_core.py with better song name handling and BPM display 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
4.3 KiB
4.3 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 support)
- Power Visualization: Generates colorized power magnitude graphs over time
- Metadata Extraction: Reads ID3 tags from MP3 files for better file identification
- GUI Foundation: Basic PyQt5 drag-and-drop interface (work in progress)
Technical Stack
- Audio Processing: librosa, numpy
- Visualization: matplotlib with custom colormaps
- GUI Framework: PyQt5 (drag-and-drop functionality)
- Metadata: mutagen for MP3 tag reading
Key Components
master_core.py
AudioFileclass: Main audio processing class- Loads audio files and extracts basic metrics (max/avg amplitude, BPM)
get_energy_levels_over_time(): Calculates RMS power over rolling windowsplot_energy_levels_over_time(): Creates colorized power graphs with automatic headroom detection
analyze_track_librosa(): Legacy analysis function (dBFS calculations)- File processing from
files.txtconfiguration
main.py
- PyQt5 drag-and-drop interface
- Currently displays file paths but doesn't integrate with analysis functions
- Placeholder for GUI integration
files.txt
- Configuration file listing audio files to analyze
- Supports comments (
;and#prefixed lines) - Currently contains various music file paths
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 ID3 tags
Known Issues
- GUI integration incomplete (drag-drop doesn't trigger analysis)
- MP3 tag reading temporarily disabled in some parts
- No interactive features yet implemented
Future Development Plans
Short-term Goals
-
Complete GUI Integration
- Connect drag-drop functionality to analysis pipeline
- Real-time graph display in GUI window
- File browser for batch processing
-
Enhanced Metrics
- Dynamic range measurement (DR meter)
- Peak-to-average ratio analysis
- Frequency spectrum analysis
- Loudness standards compliance (LUFS)
-
Interactive Features
- Zoom/pan on power graphs
- Playback controls with visual cursor
- Export analysis results to CSV/JSON
Medium-term Goals
-
Advanced Analysis Tools
- Spectral centroid and bandwidth analysis
- Stereo width measurements
- Transient detection and analysis
- Harmonic distortion detection
-
Comparison Features
- Side-by-side track comparison
- Reference track overlay
- Mastering version A/B testing
-
Batch Processing
- Folder-based analysis
- Automated report generation
- Progress tracking for large collections
Long-term Vision
-
VST Plugin Development
- Real-time analysis during mixing/mastering
- Integration with DAWs
- Live feedback during production
-
Professional Features
- EBU R128 compliance checking
- Custom target curves
- Professional reporting formats
- Multi-format export capabilities
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
- Add audio file paths to
files.txt - Run
python master_core.pyfor batch analysis - Run
python main.pyfor GUI (incomplete)
Planned Usage
- Drag and drop audio files into GUI
- Real-time analysis with interactive graphs
- Export reports and comparisons
- VST plugin for DAW integration