# Changelog

All notable changes to the AbletonMCP-AI project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added
- FASE 5: DJ Arrangement advanced tools (T067, T072-T077)
  - `set_loop_markers()` - Loop markers for DJ navigation
  - `apply_filter_sweep()` - Filter automation for transitions
  - `apply_reverb_tail_automation()` - Reverb automation for breaks
  - `apply_pitch_riser()` - Pitch automation risers
  - `apply_micro_timing_push()` - Groove timing micro-adjustments
  - `apply_groove_template()` - Genre-specific groove templates
  - `inject_transition_fx_detailed()` - Advanced transition FX
- FASE 7: Self-AI & Learning tools (T091-T100)
  - `rate_generation()` - User rating system for generations
  - `get_generation_stats()` - Trend analysis from ratings
  - `generate_dj_set()` - Multi-track DJ set generation
  - `analyze_trends_library()` - Hot zone detection
  - `auto_improve_set()` - Auto-regeneration of low-score sections

## [0.8.0] - 2026-03-29

### Added
- FASE 3: Human Feel & Dynamics (T040-T050)
  - `apply_clip_fades()` - Fade automation (T041)
  - `write_volume_automation()` - Volume curves: linear, exponential, s_curve, punch (T042)
  - `apply_sidechain_pump()` - Sidechain compressor configuration (T045)
  - `inject_pattern_fills()` - Drum fills: snare rolls, flams, tom fills (T048)
  - `humanize_set()` - Global humanization with intensity control (T050)
- FASE 4: Key Compatibility & Tonal (T051-T062)
  - `audio_key_compatibility.py` - Full KEY_COMPATIBILITY_MATRIX with Circle of Fifths
  - `analyze_key_compatibility()` - Harmonic compatibility scoring (T053)
  - `suggest_key_change()` - Key modulation suggestions (T054)
  - `validate_sample_key()` - Sample tonal validation (T055)
  - `analyze_spectral_fit()` - Spectral role matching (T057)
- FASE 6: Mastering & QA (T078-T090)
  - `calibrate_gain_staging()` - Auto gain calibration by bus targets (T079)
  - `run_mix_quality_check()` - LUFS, peaks, L/R balance analysis (T085)
  - `export_stem_mixdown()` - 24-bit/44.1kHz stem export (T087)
  - `StemExporter` class with Beatport metadata

### Changed
- Enhanced `server.py` with 71 total MCP tools
- Improved key compatibility checking in sample selection
- Updated IMPLEMENTATION_REPORT.md with 76/110 tasks complete (69%)

## [0.7.0] - 2026-03-28

### Added
- FASE 2: Coherence & Palette System (T025-T039)
  - `_select_anchor_folders()` - Palette anchor selection by freshness (T025)
  - `_get_palette_bonus()` - 1.4x/1.2x/0.9x palette scoring (T026)
  - `set_palette_lock()` - Manual palette override (T028)
  - `get_coverage_wheel_report()` - Folder usage heatmap (T032)
  - `collection_coverage.json` persistence (T029)
  - `WildCardMatcher` for flexible pattern matching (T033-T034)
  - `SectionCastingEngine` for role variants by section (T035-T037)
  - `SampleFingerprint` class for tonal fingerprinting (T038-T039)
- FASE 1: Sample Intelligence (T011-T024)
  - `limit=50` in semantic search (T011)
  - `session_seed` for reproducible shuffling (T012)
  - Bucket sampling: max 15 files per folder (T013)
  - `sample_fatigue.json` persistence with 1.0→0.75→0.50→0.20 decay (T021-T022)
  - `reset_sample_fatigue()` and `get_sample_fatigue_report()` tools (T023-T024)
- T101-T106: Infrastructure fixes
  - `bus_routing_fix.py` - Bus routing diagnostics
  - `validation_system_fix.py` - Set validation with auto-fixes

### Changed
- Server architecture now supports 8-phase pipeline
- Sample selection now uses multi-factor scoring

## [0.6.0] - 2026-03-27

### Added
- FASE 0: Foundation & Stability (T001-T010)
  - Project migration to ProgramData
  - MCPError, ValidationError, TimeoutError exception hierarchy
  - End-to-end pipeline for track generation
- Initial audio engines:
  - `HumanFeelEngine` - Timing and velocity humanization
  - `SoundscapeEngine` - Ambience and FX
  - `DJArrangementEngine` - DJ-compatible structures
  - `MasterChain` - Mastering devices
  - `AutoPrompter` - AI self-prompting

### Changed
- Restructured project for MCP Server + Remote Script architecture

## [0.5.0] - 2026-03-26

### Added
- Basic sample index with vector embeddings
- `generate_track()` and `generate_song()` MCP tools
- Genre support: Techno, House, Tech-House, Deep House, Trance
- BPM auto-detection for genres

### Fixed
- Sample path resolution on Windows
- Unicode handling in sample names

## [0.4.0] - 2026-03-25

### Added
- Reference audio analysis (`analyze_reference_track()`)
- Key detection using librosa
- Spectral analysis (centroid, bandwidth)
- Audio resampling for FX generation

### Changed
- Improved sample matching algorithm

## [0.3.0] - 2026-03-24

### Added
- MIDI pattern generation for drums, bass, chords
- Clip creation in Arrangement View
- Scene-based structure generation
- Basic volume/pan/send controls

## [0.2.0] - 2026-03-23

### Added
- Ableton Live TCP connection
- Basic MCP server with FastMCP
- Track creation and management
- Initial Remote Script structure

## [0.1.0] - 2026-03-22

### Added
- Project initialization
- Basic file structure
- Sample scanning and indexing
- README and documentation
