- Notifications
You must be signed in to change notification settings - Fork7
A cross-platform, multi-format audio conversion and tagging suite
License
jherby2k/AudioWorks
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A cross-platform, multi-format audio conversion and tagging suite for .NET and PowerShell. Formats currently supported are MP3, MP4 AAC, FLAC, Apple Lossless (ALAC), Opus, Ogg Vorbis and Wave.
Main Branch | Dev branch |
---|---|
PowerShell:
$flacFiles=Get-AudioFile'<path to an album>\*.flac'# Export the files to Opus format, organized into directories and named according to metadata$files|Export-AudioFile"Opus"-Path"C:\Output\{Album} by {Artist}"-Name"{TrackNumber} - {Title}"-SignalType Speech-BitRate32-Force
C#:
varflacFiles=newDirectoryInfo("<path to an album>").GetFiles("*.flac").Select(file=>newTaggedAudioFile(file.FullName));// Export the files to Opus format, organized into directories and named according to metadatavaropusEncoder=newAudioFileEncoder("Opus"){EncodedDirectoryName=@"C:\Output\{Album} by {Artist}",EncodedFileName="{TrackNumber} - {Title}",Overwrite=true,Settings=new(){["SignalType"]="Speech",["BitRate"]=32}};awaitopusEncoder.EncodeAsync(flacFiles);
PowerShell:
$flacFiles=Get-AudioFile'<path to an album>\*.flac'# Add ReplayGain tags, analyzing the files as a single album$flacFiles|Measure-AudioFile-Analyzer ReplayGain# Set the artist as well, then persist the new tags to disk$flacFiles|Set-AudioMetadata-Artist"Iron Butterfly"$flacFiles|Save-AudioMetadata
C#:
varflacFiles=newDirectoryInfo("<path to an album>").GetFiles("*.flac").Select(file=>newTaggedAudioFile(file.FullName));// Add ReplayGain tags, analyzing the files as a single albumvarreplayGainAnalyzer=newAudioFileAnalyzer("ReplayGain");awaitreplayGainAnalyzer.AnalyzeAsync(flacFiles);// Set the artist as well, then persist the new tags to diskforeach(varflacFileinflacFiles){flacFile.Metadata.Artist="Iron Butterfly";flacFile.SaveMetadata();}
AudioWorks runs on Windows, MacOS, and Linux.You will needPowerShell 7.4+. "Windows PowerShell" (aka PowerShell 5.1) which is included with Windows, is no longer supported.
- For AAC and Apple Lossless (ALAC) support,you need Apple's Core Audio library
- Install all dependencies with
apt install libflac12t64 libmp3lame0 libvorbisenc2 libopusenc0 libebur128-1
A standard installation should only be missing libopusenc and libebur128.
The AudioWorks PowerShell module can found onthe PowerShell Gallery.
Keep the module up to date withUpdate-Module -Name AudioWorks.Commands
.
The .NET API is available viaNuGet.
This project wouldn't be possible without the work of these other fine projects and organizations:
- Hydrogen Audio Forums, a scientifically-minded community of digital audio enthusiasts.
- The LAME Project, maintainers of the high-quality MP3 encoder.
- The Xiph.Org Foundation, maintainers of Opus, Ogg Vorbis and FLAC (the Free Lossless Audio Codec).
- libebur128, a library implementing the EBU R.128 loudness standard.
- QAAC, a command-line front-end for Apple's AAC and Apple Lossless encoders.
About
A cross-platform, multi-format audio conversion and tagging suite