Releases: Zeugma440/atldotnet
Releases · Zeugma440/atldotnet
Version 2.10
Functional
- Adjustments to
ATL.Playlist
default settings to allow maximum compatibility with music players when writing playlist files. Comprehensive tests have been made on Winamp 5.8, VLC 3.0.6, MusicBee 3.3.7016, AIMP 4.51 (2084), Foobar2000 1.4.4 and iTunes 12.9.4.102.
UsePlaylistIOFactory.GetInstance().GetPlaylistIO
optional parameters to override default settings :
PlaylistFormat.LocationFormatting
allows to format locations according to four different conventions- Filepath
- Winamp URI ("file:" + filepath)
- Microsoft URI ("file://" + filepath)
- RFC URI (URI encoded according to RFC-3986)
PlaylistFormat.FileEncoding
allows to encode the playlist file according to three different conventions- UTF-8 with file Byte order Mark
- UTF-8 without file Byte order Mark
- ANSI (aka Latin-1 aka ISO-8859-1)
Binaries are available from nuGet
Version 2.9
Functional
- New
ATL.Playlist
package that allows playlist writing (except for FPL that will remain read-only because the Foobar2000 team won't publish any spec of their playlist format that keeps evolving - see their FAQ) - Old
ATL.PlaylistReaders
classes are now marked as obsolete
Technical
Format.copyFrom
method restored- New
Track
constructor that allows passing a file path without theTrack
reading the file
Bugfixes
- Tracknumbers containing the
/
ornn/
values are now correctly handled
Binaries are available from nuGet
Version 2.8
Functional
- ID3v2 tags can now be written in ID3v2.3 standard by setting
Settings.ID3v2_tagSubVersion = 3
before saving your tag - ID3v2 chapters : New
Track.ChaptersTableDescription
field to add the descriptive TIT2 subframe to the CTOC frame
Bugfixes
- Using UTF-16 with ID3v2.4 now works properly
- ID3v2 chapters are now properly read by the iOS Apple Podcast App and the Overcast podcast grabber
- Fix anomaly when writing more than one tag in one single
Save
operation
! Interface backward compatibility breakers !
- ChapterInfo.Url type is now
ChapterInfo.UrlInfo
instead ofstring
Binaries are available from nuGet
Version 2.7
Functional
- New attributes
TrackTotal
andDiscTotal
that provide the number of tracks / discs - New options in
Settings
class concerning Track and Disc fields formattingUseLeadingZeroes
: If true, use leading zeroes; number of digits is aligned on TOTAL fields or 2 digits if no total fieldOverrideExistingLeadingZeroesFormat
: If true,UseLeadingZeroes
is always applied regardless of the format of the original file; if false, formatting of the original file prevails
Technical
- ID3v2 : Existing padding doesn't disappear anymore when saving a tag; it evolves along the size of the tag (reduced if size increases, and the other way around)
Bugfixes
- "Total tracks" (resp. "Total discs") fields formatted in the same field of the track (resp. disc) number (e.g "4/7") won't disappear anymore when updading a file
- Existing Track and Disc fields will keep their leading zeroes formatting if
Settings.OverrideExistingLeadingZeroesFormat
is set tofalse
(default) - FLAC : Embedded pictures are now actually saved in FLAC files
- SPC : Fix badly formatted INTEGER or LENGTH fields when adding them to an empty file
- SPC : Fix
tagIO_RW_SPC_Existing
unit test failing when batch-testing under Visual Studio - MP4 : Extended fields can now be written (e.g.
----:com.apple.iTunes:FANCYNAME
) - VQF, Vorbis, ID3v2 :
Year
field is now properly saved
Binaries are available from nuGet
Version 2.6
Functional
- New attribute
ChannelsArrangement Track.ChannelsArrangement
that provides the number of channels and their arrangement (e.g. "Mono (1/0.0)", "Joint Stereo", "Center - Left - Right (3/0.0)"...)
Bugfixes
- A couple edge-cases fixed on Util methods
Binaries are available from nuGet
Version 2.5
Technical
Track
can now be constructed using aStream
that contains your file's raw data. Its MIME-type or file extension has to be provided as well. This is useful when information is already in memory before calling ATL, or if you want to keep control on how the resource is accessed.
Functional
- New attribute
double Track.DurationMs
that provides the duration of the track in milliseconds.int Track.Duration
is maintained for retrocompatibility's sake.
Binaries are available from nuGet
Version 2.4.2
Quickfix release
ID3v2 : Allow saving a field code with more than 4 characters (supported through TXXX extended fields)
Version 2.4.1
Quickfix release : Avoid crashes when parsing a huge album or track number (>65535)
Version 2.4
Technical
- NuGet package is now truly multi-target and supports .NET 3.0, .NET Core 2.0 and .NET Standard 2.0
Functional
- WAV : ID3v2 support (ID3v2 structure embedded as a RIFF chunk)
- WAV : iXML support through AdditionalFields
- WAV : BEXT support through AdditionalFields
- WAV : LIST INFO support through AdditionalFields
Bugfixes
- ID3v2 : Inserting chapters in a chapter-free file now writes a CTOC field in addition to the CHAP fields
- ID3v2 : Fix parsing of TXXX fields with a key but without any value (TXXX...KEY\0\0 and TXXX...KEY\0)
Binaries are available from nuGet
Version 2.3
Functional
- AIFx Comments support (any ANNO chunk will be converted into COMT chunk when updating the file)
- GYM tags now written with proper UTF-8 encoding
- Images embedded in ID3v2 chapters can now be read and written (one image per chapter)
- Gzipped VGM files (.VGZ extension) can now be read
- ID3v2, APEtag, Vorbis, WMA and MP4 Ratings now fully tested, including "half-stars"
Tech stuff
- CueSharp library dropped for custom, straight-to-the-point Cuesheet reader
- Reworked embedded image reading to reduce memory footprint
! Interface backward compatibility breakers !
- Settings.InternalValueSeparator and Settings.DisplayValueSeparator are now chars instead of strings
- TagData.PictureInfo and TagData.MetaFieldInfo are now standalone classes -> PictureInfo and MetaFieldInfo
Bugfixes
- ID3v2 : Fix "Rating" field reading
- AIFx : Fix embedded ID3v2 tag writing (should be located after SSND frame, not before, which is not documented anywhere)
- DSF : Fix embedded ID3v2 tag writing (now updates correctly file size descriptor in header)