# 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