All Projects → Zeugma440 → Atldotnet

Zeugma440 / Atldotnet

Licence: mit
Fully managed, portable and easy-to-use C# library to read and edit audio data and metadata (tags) from various audio formats, playlists and CUE sheets

Projects that are alternatives of or similar to Atldotnet

Music Metadata
Stream and file based music metadata parser for node. Supporting a wide range of audio and tag formats.
Stars: ✭ 455 (+152.78%)
Mutual labels:  wav, metadata, audio, mp3, mp4, flac, tags
Audioplayer
Audio Player for Nextcloud and ownCloud
Stars: ✭ 179 (-0.56%)
Mutual labels:  wav, audio, mp3, mp4, flac, playlist
Av Converter
[av-converter.com] Audio and Video Converter, and YouTube downloader. Convert to MP3, MP4, AAC, FLAC, AC3, WAV, etc.
Stars: ✭ 97 (-46.11%)
Mutual labels:  wav, audio, mp3, mp4, aac, flac
Mediafile
A unified reader of metadata from audio & video files.
Stars: ✭ 138 (-23.33%)
Mutual labels:  wav, audio, mp3, mp4, aac, flac
Music Metadata Browser
Browser version of music-metadata parser Supporting a wide range of audio and tag formats.
Stars: ✭ 105 (-41.67%)
Mutual labels:  wav, metadata, audio, mp3, flac, tags
Symphonia
Pure Rust multimedia format demuxing, tag reading, and audio decoding library
Stars: ✭ 191 (+6.11%)
Mutual labels:  wav, audio, mp3, mp4, aac, flac
loudgain
ReplayGain 2.0 loudness normalizer based on the EBU R128/ITU BS.1770 standard (-18 LUFS, FLAC, Ogg, MP2, MP3, MP4, M4A, AAC, ALAC, Opus, ASF, WMA, WAV, AIFF, WavPack, APE)
Stars: ✭ 127 (-29.44%)
Mutual labels:  mp4, mp3, aac, wav, flac
audio-metadata
A library for reading and, in the future, writing audio metadata. https://audio-metadata.readthedocs.io/
Stars: ✭ 41 (-77.22%)
Mutual labels:  metadata, mp4, mp3, wav, flac
Audio Steganography Algorithms
A Library of Audio Steganography & Watermarking Algorithms
Stars: ✭ 146 (-18.89%)
Mutual labels:  wav, audio, mp3, aac, flac
Ni Media
NI Media is a C++ library for reading and writing audio streams.
Stars: ✭ 158 (-12.22%)
Mutual labels:  wav, audio, mp3, mp4, flac
Flacon
Audio File Encoder. Extracts audio tracks from an audio CD image to separate tracks.
Stars: ✭ 252 (+40%)
Mutual labels:  wav, audio, mp3, aac, flac
audio-tag-analyzer
Extracts metadata music metadata found in audio files
Stars: ✭ 18 (-90%)
Mutual labels:  metadata, tags, mp3, flac
aplay-
a simple BitPerfect player
Stars: ✭ 23 (-87.22%)
Mutual labels:  mp4, mp3, aac, flac
slibs
Single file libraries for C/C++
Stars: ✭ 80 (-55.56%)
Mutual labels:  mp4, mp3, aac, flac
Youtube-DL-GUI
Graphical User Interace built around youtube-dl CLI
Stars: ✭ 38 (-78.89%)
Mutual labels:  mp3, aac, wav, flac
Libnyquist
🎤 Cross platform C++11 library for decoding audio (mp3, wav, ogg, opus, flac, etc)
Stars: ✭ 311 (+72.78%)
Mutual labels:  wav, audio, mp3, flac
Freac
The fre:ac audio converter project
Stars: ✭ 518 (+187.78%)
Mutual labels:  audio, mp3, aac, flac
Miniaudio
Single file audio playback and capture library written in C.
Stars: ✭ 1,889 (+949.44%)
Mutual labels:  wav, audio, mp3, flac
nipper
🌶 💽 Nipper - Youtube playlist (& video) ripper
Stars: ✭ 23 (-87.22%)
Mutual labels:  mp4, tags, mp3, aac
Axiom
An FFmpeg GUI for Windows
Stars: ✭ 560 (+211.11%)
Mutual labels:  audio, mp3, mp4, flac

Audio Tools Library (ATL) for .NET NetCore NetStandard Net Framework

Latest stable version : NuGet

Optimized with : BenchmarkDotNet and CodeTrack

Current status

Build status codecov Quality Gate Status

What is ATL .NET ?

This library is aimed at giving .NET developers a managed, portable and easy-to-use library to read and write metadata from digital audio files and playlists with one single unified API, whatever the underlying format.

using ATL.AudioData;

Track theTrack = new Track(audioFilePath);

// Works the same way on any supported format (MP3, FLAC, WMA, SPC...)
System.Console.WriteLine("Title : " + theTrack.Title);
System.Console.WriteLine("Duration (ms) : " + theTrack.DurationMs);

theTrack.Composer = "Oscar Wilde (アイドル)"; // Support for "exotic" charsets
theTrack.AdditionalFields["customField"] = "fancyValue"; // Support for custom fields
theTrack.Save();

You'll find more working code on the Code snippets section of the Documentation, including what you need to manage embedded pictures (e.g. cover), chapters , lyrics and playlists

What is NOT ATL .NET ?

Audio Tools Library .NET is not

  • a standalone application : it is a library aimed at being used by developers to build software

  • an audio music player : it gives access to various properties and metadata (see below for the comprehensive list), but does not process audio data into an audible signal

Why open source ?

ATL has been open source since its creation. The original ATL 2.3 source written in Pascal language is still out there on Sourceforge !

By publicly sharing the result of their work, the MAC team has helped many developers to gain tremendous time in creating audio tools.

As a fellow audiophile and developer, I'm proudly extending and improving their initial contribution to the open source community.

Why would I want to use ATL while TagLib is out there ?

  • ATL has a full C# implementation and does not use any dependency, which makes portability trivial if your app is already based on .NET or Mono frameworks

  • ATL features a flexible logging system which allows you to catch and record audio file reading/writing incidents into your app

  • ATL supports more audio formats than TagLib, including video game audio formats (SPC, PSF, VGM, GYM)

  • ATL supports chapters natively

  • ATL supports lyrics natively

  • ATL supports BEXT, LIST INFO and iXML metadata in RIFF / WAV files

  • ATL supports Playlists and Cuesheets

How to use it ? Which platforms and .NET/Mono versions does ATL run on ?

The ATL library runs on .NET Core 2.0+ / .NET Standard 2.0+ / .NET Framework 4.5+ / Mono 2.0+

ATL unit tests run on .NET Framework 4.5+

The library and its tests have been maintained on Visual Studio Express 2012, 2015, 2017 Community and 2019 Community

Please refer to the Code snippets section of the Documentation for quick usage

What kind of data can ATL actually read ? From which formats ?

SUPPORTED AUDIO FORMATS AND TAGGING STANDARDS

NB1 : Empty cells mean "not applicable for this audio format"

NB2 : All metadata is read according to Unicode/UTF-8 encoding when applicable, which means any "foreign" character (japanese, chinese, cyrillic...) will be recognized and displayed properly

R= Read / W= Write

Audio format Extensions ID3v1.0-1.1 support ID3v2.2-2.4 support (1) APEtag 1.0-2.0 support Format-specific tagging support
Advanced Audio Coding, Apple Lossless (ALAC) .AAC, .MP4, .M4A, .M4B R/W R/W R/W R/W
Apple Core Audio .CAF (5)
Audible .AAX, .AA R/W R/W R/W R/W
Audio Interchange File Format .AIF, .AIFF, .AIFC R/W R/W
Digital Theatre System .DTS
Direct Stream Digital .DSD, .DSF R/W
Dolby Digital .AC3 R/W
Extended Module .XM R/W (2)
Free Lossless Audio Codec .FLAC R/W R/W
Genesis YM2612 .GYM R/W
Impulse Tracker .IT R/W (2)
Musical Instruments Digital Interface .MID, .MIDI R/W (3)
Monkey's Audio .APE R/W R/W R/W
MPEG Audio Layer .MP1, .MP2, .MP3 R/W R/W R/W
MusePack / MPEGplus .MPC, .MP+ R/W R/W R/W
Noisetracker/Soundtracker/Protracker .MOD R/W (2)
OGG : Vorbis, Opus .OGG, .OPUS R/W
OptimFROG .OFR, .OFS R/W R/W R/W
Portable Sound Format .PSF, .PSF1, .PSF2, .MINIPSF, .MINIPSF1, .MINIPSF2, .SSF, .MINISSF, .DSF, .MINIDSF, .GSF, .MINIGSF, .QSF, .MINISQF R/W
ScreamTracker .S3M R/W (2)
SPC700 (Super Nintendo Sound files) .SPC R/W
Toms' losslesss Audio Kompressor .TAK R/W
True Audio .TTA R/W R/W R/W
TwinVQ .VQF R/W
PCM (uncompressed audio) .WAV, .BWAV, .BWF R/W R/W R/W (4)
Video Game Music (SEGA systems sound files) .VGM, .VGZ R/W
WavPack .WV R/W
Windows Media Audio/Advanced Systems Format .WMA, .ASF R/W

(1) : ATL reads ID3v2.2, ID3v2.3 and ID3v2.4 tags, but only writes ID3v2.3 tags and ID3v2.4 tags

(2) : all sample names appear on the track's Comment field. Track title only is editable

(3) : MIDI meta events appear on the track's Comment field

(4) : Support for BEXT, LIST INFO and iXML chunks

(5) : Reads audio properties only, due to the rarity of sample CAF files tagged with actual metadata

DETECTED FIELDS

  • Audio properties (from audio data) : Bitrate, Sample rate, Duration, VBR, Codec family, Channels count and arrangement
  • Standard Metadata (from tags) : Title, Artist, Album Artist, Composer, Conductor, Description, Comment, Genre, Track number, Total tracks, Disc number, Total discs, Recording Year and Date, Album, Rating, Publisher, Publishing Date, Copyright, Original album, Original artist, Embedded pictures, Chapters, Unsynchronized and synchronized Lyrics
  • Custom Metadata : any other field that might be in the tag is readable and editable by ATL

SUPPORTED PLAYLISTS FORMATS

  • Read and write : ASX, B4S, M3U, M3U8, PLS, SMIL (including WPL and ZPL), XSPF
  • Read-only : FPL

See detailed compatibility table here

SUPPORTED CUESHEETS FORMATS

CUE

What is the roadmap of ATL.NET ?

  • Support for Broadcast wave metadata : aXML and XMP
  • Support for other audio file formats : Speex, Theora
  • Connectors to other library file formats (e.g. iTunes)

NB : Any user request that can be granted quickly will take priority over the roadmap

Does ATL.NET include code authored by other people ?

ATL.NET is based on :

  • Audio Tools Library 2.3 by Jurgen Faul, Mattias Dahlberg, Gambit, MaDah and Erik Stenborg (code ported from Pascal to C# and refactored)

  • MIDI class 1.5 by Valentin Schmidt & Michael Mlivoncic (code ported from PHP to C# and refactored)

Special thanks for their contributions to...

leglubert, tarrats, DividedSE, audiamus

Find this library useful? ❤️

Support it by joining stargazers for this repository. ⭐️

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].