packages feed

monatone-0.2.1.1: CHANGELOG.md

# Changelog for `monatone`

## [0.2.1.1] - 2025-12-10

### Fixed
- Added *.m4a to extra-source-files to include M4A test fixture in sdist tarball

## [0.2.1.0] - 2025-12-10

### Fixed
- Fixed Hackage description formatting to display properly with multiline text
- Escaped forward slashes in format names to prevent markdown italicization
- Fixed M4A round-trip test to properly skip when fixture unavailable
- Checked in test fixtures (MP3, FLAC) to support Nix builds without ffmpeg

### Changed
- Tests no longer require ffmpeg at build time (only for regenerating fixtures)

## [0.2.0.0] - 2025-12-10

### Added
- **M4A/AAC/ALAC Support**: Complete read/write support for M4A audio files
  - Full metadata parsing with iTunes-style tags (©nam, ©ART, aART, etc.)
  - Audio properties extraction (duration, sample rate, channels, bit depth)
  - AAC and Apple Lossless (ALAC) codec detection and parsing
  - Album art extraction (JPEG, PNG, BMP)
  - Track/disc number parsing with iTunes binary format
  - Complete metadata writing with atom reconstruction
  - **Freeform atom support** for MusicBrainz-style fields:
    - Record label (LABEL)
    - Catalog number (CATALOGNUMBER)
    - Barcode (BARCODE)
    - Release country (MusicBrainz Album Release Country)
    - All MusicBrainz IDs (recording, release, artist, album artist, release group, work, disc)
    - Acoustid fingerprint and ID
  - Integration with unified Writer API
  - Comprehensive test coverage

### Technical Details
- Pure Haskell MP4 atom parser with hierarchical structure support
- Efficient streaming implementation (no full file loading)
- Support for both 32-bit and 64-bit atom sizes
- Version-aware parsing (mvhd v0/v1, etc.)
- Safe file writing with temporary file approach
- Freeform (----) atom parsing and writing for custom metadata
- Zero compiler warnings

## [0.1.0.0] - Initial Release

### Added
- FLAC read/write support with Vorbis comments
- MP3 read/write support with ID3v1, ID3v2.3, and ID3v2.4 tags
- OGG/Vorbis and Opus basic support
- Album art handling
- Pure Haskell implementation