Files
uj-mastering-master/CLAUDE.md
T
Mikkeli Matlock 9e65e721d4 Update project roadmap and documentation
- 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>
2025-08-22 00:26:27 +09:00

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
  • AudioFile class 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)

  1. 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)

  1. Enhanced Metrics

    • LUFS loudness measurement implementation
    • Dynamic range measurement (DR meter)
    • Peak-to-average ratio analysis
    • Frequency spectrum analysis
  2. 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
  3. Advanced GUI Controls

    • Plot style customization interface
    • Real-time axis range selection
    • Interactive plot manipulation tools

Mid-Long term (Not Urgent)

  1. 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
  2. Distribution & Deployment

    • Self-contained executable releases
    • Cross-platform packaging
    • Installer creation and distribution

Future Vision

  1. Advanced Analysis Tools

    • Spectral centroid and bandwidth analysis
    • Stereo width measurements
    • Transient detection and analysis
    • Harmonic distortion detection
  2. Professional Features

    • EBU R128 compliance checking
    • Custom target curves
    • Professional reporting formats
    • Multi-format export capabilities
  3. 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

  1. Run python main.py to launch the GUI application
  2. Use "Open Audio File..." button or drag-and-drop audio files for analysis
  3. Adjust font settings using the Font Settings panel
  4. View real-time analysis results with embedded matplotlib plots
  5. Select different analyzed files from the file list to compare results

Legacy Usage (Batch Mode)

  1. Add audio file paths to files.txt
  2. Run python master_core.py for batch analysis

Planned Usage Enhancements

  1. Interactive plot manipulation and style customization
  2. LUFS and advanced metric analysis
  3. Audio file comparison features
  4. Self-contained executable releases