perplexity-cli
🧠 A simple command-line client for the Perplexity API. Ask questions and receive answers directly from the terminal! 🚀🚀🚀
A beautiful program for analyzing audio quality — detects fake lossless, clipping, MQA, and AI-generated audio; include…
Audit Your Audio with Confidence
🛡️ Official downloads only: audioauditor.org or GitHub. Any other source is unofficial and may contain malware.
AudioAuditor is a feature-rich audio analysis app for Windows that analyzes your audio files to detect fake lossless, verify true quality, identify clipping, detect MQA encoding, detect AI-generated audio, estimate effective frequency cutoffs, and much more — all wrapped in a sleek, themeable interface with a built-in audio player, equalizer, spatial audio, spectrogram viewer, and real-time visualizer.
Whether you're an audiophile verifying your FLAC collection, a music producer checking masters, or just curious about the true quality of your library, AudioAuditor gives you the data you need at a glance.
| Lossless | Lossy | Other |
|---|---|---|
| FLAC | MP3 | DSF (DSD) |
| WAV | AAC | DFF (DSD) |
| AIFF / AIF | OGG | |
| APE | OPUS | |
| WV (WavPack) | WMA | |
| ALAC | M4A |
Cross-platform note (CLI): On Windows every format above is supported. On the Linux/macOS CLI builds, decoding uses fully-managed decoders — FLAC, WAV, AIFF, OGG/Vorbis, Opus, and MP3/MP2 analyze everywhere. Formats that rely on Windows Media Foundation (AAC/M4A, WMA, ALAC, TTA, Musepack) still have their metadata read but skip spectral analysis on Linux/macOS. The Windows desktop app and Windows CLI support them all. (This will be worked on in a future version)
.lrc files, or enable auto-save%APPDATA%\AudioAuditor\ so the smoothness survives app restarts.lrc files, LrcLib, Netease Music, and Musixmatch. Lyrics auto-scroll and highlight the current line; click any line to seek directly to that timestamp. Cycle through providers with the source button. Drag-and-drop .lrc files onto the panel to load them instantly(Explicit)/[Clean]/(Radio Edit), ID3v2 iTunesAdvisory, MP4 rtng) and ranks lyric search candidates so explicit tracks don't get clean lyrics (and vice-versa). A "Wrong version?" button in the lyrics header toggles Explicit↔Clean and re-fetches*****/#####, AudioAuditor automatically tries the next provider for a clean copy0) through the default soft glow up to a large bloom (2.0); the breathing pulse respects the scale and the setting persists{artist}, {title}, {track}, etc.) with collision detection and optional folder organizationArtist - Title or Title - Artist using tag metadata, with collision checks and safe filename cleanup.m3u, .m3u8, and .pls playlist files; resolves relative and absolute paths.cue files; parses track boundaries and adds virtual entries with full analysis[Bitrate] or [Real Bitrate] to filenames instantlyAudioAuditor's AI detection tries its best to use verifiable evidence - However that being said, these results can be inacurate, regardless please do not use these finding to defame or harrass anyone :)
The AI column shows a three-state verdict — Yes / Possible / No — derived from the averaged confidence across whichever detectors are enabled (watermark, spectral/experimental, SH Labs). Thresholds: ≥70% → Yes, 35–70% → Possible, <35% → No. The confidence percentage is shown beneath the verdict, and rows are highlighted accordingly (Possible = amber, Yes = orange/red).
Row highlighting: Possible = amber, Yes = orange/red, No = neutral.
| Method | What It Checks |
|---|---|
| Metadata Tags | ID3v2, Vorbis, APE, M4A tags for AI service markers (TXXX frames, comments, encoder fields, free-form atoms) |
| Raw Byte Patterns | First 128KB, middle 32KB, and last 128KB of the file for embedded identifiers |
| C2PA / Content Credentials | JUMBF box markers, claim manifests, and provenance data |
| AI Watermarks | AudioSeal, SynthID, and WavMark watermark identifiers |
| Confidence Scoring | Strong markers (named services) score higher than generic phrases; minimum 0.4 threshold required |
| False-Positive Filtering | Files produced by known DAWs (Audacity, FL Studio, Ableton, etc.) or encoders (LAME, FFmpeg, etc.) have weak generic markers filtered out |
| SH Labs API (Opt-in) | Cloud-based AI speech detection via SH Labs; requires privacy consent and is rate-limited |
Five export formats, all matching the current DataGrid column layout:
| Format | Description |
|---|---|
| Excel (.xlsx) | Styled workbook with colored status cells, auto-fit columns, frozen header row |
| CSV (.csv) | Standard comma-separated values with proper escaping |
| Text (.txt) | Formatted report with box-drawing characters, per-file details, and summary statistics |
| PDF (.pdf) | Multi-page PDF with monospaced text layout |
| Word (.docx) | Minimal OOXML document with bold headers and summary |
All columns exported including: Status, Title, Artist, File Name, File Path, Sample Rate, Bit Depth, Channels, Duration, File Size, Reported Bitrate, Actual Bitrate, Format, Max Frequency, Clipping, Clipping %, BPM, Replay Gain, Dynamic Range, MQA, MQA Encoder, AI Detection, Fake Stereo, Silence, Date Modified, Date Created, True Peak, LUFS, Rip Quality.
10 carefully crafted themes with full UI consistency:
| Theme | Description |
|---|---|
| Dark | Classic dark mode with subtle grey tones |
| Ocean | Deep navy blues inspired by the sea |
| Light | Clean light mode with crisp contrast |
| Amethyst | Rich purple tones |
| Dreamsicle | Warm orange and cream |
| Goldenrod | Bright golden yellows |
| Emerald | Lush greens |
| Blurple | Saturated blue-purple (Discord-inspired) |
| Crimson | Bold reds and deep darks |
| Brown | Warm chocolate tones |
Each theme covers window backgrounds, panels, toolbars, headers, DataGrid rows (alternating colors and hover states), scrollbars, buttons, inputs, borders, context menus, dropdown menus, title bar caption color (via Windows DWM), and playbar waveform colors.
Custom Themes — Build your own theme in Settings → Appearance: name it, set the palette, and watch a live preview update as you drag the controls. Saved custom themes persist and appear alongside the built-ins in the theme picker, and can be re-edited or deleted (built-ins can't).
AudioAuditor.exe or use Windows "Open with… → AudioAuditor" to load audio files, archives, playlists, or folders; if the app is already running, the items are forwarded to the existing window instead of being lostOn first launch (or after a version update), a Feature Config Overlay appears letting you enable or disable every analysis feature — Silence Detection, Fake Stereo, Dynamic Range, True Peak, LUFS, Clipping, MQA, AI Detection (default & experimental), and SH Labs API. Disabled features are skipped during analysis and their columns are hidden from the results grid. You can reopen this overlay any time from Settings → Columns & Features.
AudioAuditor CLI is a standalone command-line tool with full feature parity to the GUI. It ships as a single self-contained .exe — no .NET runtime or dependencies required.
Interactive Mode — Launch with no arguments (or double-click the exe) to enter a persistent REPL session with colored prompts, cd/ls/clear navigation, and drag-and-drop path support:
audioauditor> scan "D:\Music\album"
audioauditor> info song.flac
audioauditor> export "D:\Music" -o results.csv
Commands:
| Command | Description |
|---|---|
analyze <path> |
Scan files/folders for fake lossless, clipping, MQA, AI, and more |
info <file> |
Detailed single-file analysis (True Peak, LUFS, DR, Rip Quality, SH Labs) |
export <path> -o <file> |
Analyze and export to CSV, TXT, PDF, XLSX, or DOCX |
metadata show|set|strip|remove-cover <file> |
View, edit, strip, or remove cover art from audio metadata tags |
spectrogram <path> |
Generate spectrogram PNG images |
Interactive Mode Commands:
Launch with no arguments (or double-click the exe) to enter a persistent REPL session:
| Command | Alias | Description |
|---|---|---|
scan <path> |
analyze |
Scan files or folders for quality |
info <file> |
— | Detailed analysis of a single file |
export <path> -o <file> |
— | Analyze and export results |
metadata <action> <file> |
meta, tags |
View, edit, or strip metadata |
spectrogram <path> |
spectro |
Generate spectrogram PNG(s) |
config |
— | Guided config file editor (show / edit / reset / path) |
cd [dir] |
— | Change working directory; prints current if no arg |
ls / dir |
— | List files with color coding (green = audio, yellow = archive, cyan = dirs) |
clear / cls |
— | Clear terminal screen |
version |
— | Show version, runtime, and OS info |
help / ? |
— | Show available commands |
exit / quit / q |
— | Exit interactive mode |
Tip: In interactive mode, you can type or paste any valid file/folder path directly and it will automatically run
analyzeon it.
Global Flags:
--cpu <mode> CPU preset: auto, low, medium, high, max (scales to your hardware)
--memory <mb> Memory limit in MB or preset: auto, low, medium, high, very-high, max
--no-color Disable colored output (also respects NO_COLOR env variable)
--no-fun Disable scanning word animations, tips, and completion messages
--eta Show estimated time remaining during scan (default: off)
--no-update-check Skip the background update check on startup
--version, -V Show version, runtime, and OS information
--help, -h Show usage help
Analysis Flags (analyze):
--verbose, -v Detailed per-file output
--json Machine-readable JSON output (20+ fields per file)
--fast Skip DR, True Peak, LUFS, Rip Quality for speed
--experimental-ai Enable spectral AI detection
--rip-quality Enable rip/encode quality detection
--shlabs Enable SH Labs AI detection
--no-clipping Disable clipping detection
--no-mqa Disable MQA detection
--no-silence Disable silence detection
--no-fake-stereo Disable fake stereo detection
--no-dynamic-range Disable dynamic range measurement
--no-true-peak Disable true peak measurement
--no-lufs Disable LUFS measurement
--no-bpm Disable BPM detection
--no-tips Suppress tip messages during analysis
--status <filter> Show only: real, fake, unknown, corrupt, optimized
--threads <n> Max parallel threads (default: half logical cores)
--recursive, -r Recurse into subdirectories (default for folders)
--no-recursive Do not recurse into subdirectories
--no-config Skip loading the config file for this run
Export Flags (export):
-o, --output <file> Output file path (required)
--format <fmt> Force export format: csv, txt, pdf, xlsx, docx
--status <s> Filter results: real, fake, unknown, corrupt, optimized
--threads, --cpu, --memory, --recursive, --no-recursive Same as analyze
Metadata Flags (metadata set):
--title <text> Set track title
--artist <text> Set artist
--album <text> Set album
--album-artist <text> Set album artist
--year <n> Set release year
--track <n> Set track number
--track-count <n> Set total tracks
--disc <n> Set disc number
--disc-count <n> Set total discs
--genre <text> Set genre
--bpm <n> Set BPM
--composer <text> Set composer
--conductor <text> Set conductor
--grouping <text> Set grouping
--copyright <text> Set copyright
--comment <text> Set comment
--lyrics <text> Set lyrics
--cover <image-path> Set album cover from image file (PNG/JPEG/BMP/GIF)
--dry-run Preview changes without writing (single file or batch)
Batch metadata editing:
metadata set <folder>applies the specified tags to all audio files inside the folder. Respects--recursive/--no-recursive.
Spectrogram Flags (spectrogram):
--linear Use linear frequency scale instead of logarithmic
--difference Render Left–Right channel difference instead of mono
--width <px> Image width, 200–8000 (default: 1200)
--height <px> Image height, 100–4000 (default: 400)
--all Generate for all files in a folder
Stdin Pipe Support — Pipe paths directly into the CLI: echo "D:\Music" | audioauditorCLI analyze (capped at 50,000 paths). Both analyze and export accept piped input.
Config File — Place default flags in %APPDATA%\AudioAuditor\cli-config.txt (one flag per line) and they'll be applied automatically on every run. Run config in interactive mode for a guided setup wizard.
Interactive Scan Controls — During a scan, press keys without Enter:
p — Toggle pause/resumer — Resume explicitlyq or s — Stop/cancel earlyPause states are shown in the progress bar: [PAUSED], [FINISHING IN-FLIGHT...] (while draining workers), or [STOPPING...]. Progress uses ANSI cursor positioning to redraw in-place; falls back to \r overwrite on legacy terminals.
Archive Auto-Extraction — Dropping or passing archive files (.zip, .rar, .7z, .tar, .tgz) automatically extracts them to a temp folder, scans the contents, and cleans up afterward. Protected against ZIP-slip attacks; capped at 50,000 entries and 5 GB total size.
Scan Cache — Results are cached to scan_cache.json and reused on subsequent runs if the file size and modification time match, making re-scans of unchanged libraries nearly instant.
When scanning, the CLI isn't just a boring progress bar:
--no-fun.· → ✦ → ✧ → ★) next to the progress bar. Changes color to indicate state: cyan = running, yellow = paused, red = stopping.--no-tips or --no-fun.--no-fun.--eta to see a live estimated time remaining. Calculated from a rolling 30-second completion window with exponential smoothing. Formats as ETA <10s, ETA 45s, or ETA 2m 15s. Default is off to keep the output clean.AI Detection Parity — analyze, export, info, and --json output now include the same three-state AI verdict (Yes / Possible / No) and confidence score shown in the GUI. info <file> adds a leading AI Detection: {Verdict} ({Confidence}% confidence) line above the per-detector breakdown; --json adds aiVerdict and aiConfidence fields.
git clone https://github.com/Angel2mp3/AudioAuditor.git cd AudioAuditor dotnet build
dotnet run --project AudioQualityChecker.csproj
Or open Audio Quality Checker.sln in Visual Studio 2022+ and press F5.
.zip, .rar, .7z, .tar, .tgz) anywhere on the window. Archives are auto-extracted, scanned, and cleaned up| Shortcut | Action |
|---|---|
Space |
Play / Pause |
Enter |
Play selected file |
Delete |
Remove selected file from list |
Ctrl+F |
Focus the search bar |
Escape (in search box) |
Clear search and refocus grid |
← / → |
Seek backward / forward 5 seconds |
↑ / ↓ |
Volume up / down |
M |
Mute toggle |
| Media Play/Pause | Play / Pause |
| Media Next | Next track |
| Media Previous | Previous track (restart if >3s in, go back if <3s) |
| Media Stop | Stop playback |
[Bitrate] / [Real Bitrate]), Copy to Folder, Move to Folder, Save to Playlist, Batch Rename, Find Duplicates.zip, .rar, .7z, .tar, .tgz files directly and they'll be auto-extracted, scanned, and cleaned up| Section | Options |
|---|---|
| Appearance | Color Theme (10 themes + Custom Theme editor), Playbar Theme (11 + Follow Theme), Visualizer Theme, Rainbow Visualizer Bars, Color Match, Full Volume Visualizer, Reduce Motion, Now Playing visuals & background mode, Now Playing "Look Up This Song" services, optional toolbar buttons |
| Playback | Auto-Play Next, Audio Normalization, Crossfade (1–15s), Crossfade on Manual Skip, Gapless Playback, Spatial Audio, Loop Mode, Lyrics Auto-Save |
| Analysis | Toggle individual detectors (Silence, Fake Stereo, DR, True Peak, LUFS, Clipping, MQA, AI, BPM, Rip Quality), Silence Threshold, Edge Skip Zone, Frequency Cutoff Allow, Always Full Analysis |
| Visualizer | Mode selection (6 modes), Auto-Cycle toggle with speed (5–60s), Custom cycle mode list, Independent theme, Full Volume rendering |
| Cache & Files | Scan Cache, Quick Rename Patterns, Default Folders, Focus Newly Added Songs, Session Restore, Battery Saver (master + per-area), Clear Favorites, Clear Cache, Reset Layout |
| Export | Default export format (CSV, TXT, PDF, XLSX, DOCX) |
| Integrations | Multi-service scrobbling (Last.fm, Libre.fm, ListenBrainz, Maloja) with thresholds, blacklist & pause, Discord Rich Presence, Offline Mode, AcoustID Fingerprinting |
| Performance | CPU usage limit — Auto, Low, Medium, High, Maximum; Memory limit — Auto, Low, Medium, High, Very High, Maximum; Hardware acceleration (Auto / Force software) |
AudioAuditor is designed with privacy in mind:
| Data | File | Location |
|---|---|---|
| Theme preference | theme.txt |
%AppData%\AudioAuditor\ |
| Settings & options | options.txt |
%AppData%\AudioAuditor\ |
| Analysis result cache | scan_cache.json |
%AppData%\AudioAuditor\ |
| Favorites | favorites.json |
%AppData%\AudioAuditor\ |
| Custom themes | custom-themes.json |
%AppData%\AudioAuditor\ |
| EQ profiles | eq-profiles.json |
%AppData%\AudioAuditor\ |
| Now Playing layout profiles | np-layout-profiles.json |
%AppData%\AudioAuditor\ |
| Album-art color cache (opt-in disk persist) | np_color_cache.json |
%AppData%\AudioAuditor\ |
| Listening stats (Wrapped — opt-in) | stats.json |
%AppData%\AudioAuditor\ |
| Session restore & crash recovery | last_session.json, recovery_pending.json |
%AppData%\AudioAuditor\ |
| Anonymous install ID (SH Labs opt-in only) | install_id.txt |
%AppData%\AudioAuditor\ |
| Scrobble credentials (Last.fm / Libre.fm / ListenBrainz / Maloja) | session.dat (DPAPI-encrypted) |
Documents\AudioAuditor\ |
| SH Labs result cache (opt-in only) | shlabs_cache.dat |
Documents\AudioAuditor\ |
| SH Labs rate-limit counters (opt-in only) | shlabs_usage.dat |
Documents\AudioAuditor\ |
| Analyzed file data | Memory only | Not persisted — cleared on exit |
| Audio queue | Memory only | Not persisted — cleared on exit |
| Spectrograms | Memory only | Only saved if user explicitly exports |
options.txt stores theme names, boolean flags, service slot names, custom URLs/icons, EQ gains, scrobble thresholds, the per-song scrobble blacklist, and performance limits — no sensitive data. Scrobble credentials for all four services (Last.fm, Libre.fm, ListenBrainz, Maloja) are stored separately and encrypted with Windows DPAPI in session.dat in your Documents folder. All three SH Labs files are only created if you opt in to SH Labs detection; the install ID is a random GUID (not derived from any machine info) used solely for rate limiting (15/day, 100/month).
Network calls — AudioAuditor makes network requests only in these specific situations:
| Trigger | Destination |
|---|---|
| Click a music service search button | The configured service (Spotify, Tidal, etc.) |
| Discord Rich Presence enabled | Discord IPC (local process only) |
| Scrobbling enabled (per service) | Last.fm / Libre.fm / ListenBrainz / your Maloja server |
| SH Labs AI detection (opt-in) | Cloudflare Worker proxy — no raw audio leaves your device |
| AcoustID fingerprinting (user-initiated) | api.acoustid.org + musicbrainz.org |
| Update check (opt-in, silent on startup) | api.github.com — version number only |
The codebase is organized into three shipped projects — the WPF desktop app, a
platform-independent AudioAuditor.Core engine, and a cross-platform CLI — with large
classes split into focused partial files (shown below as Name(.Aspect/.Aspect).cs).
AudioAuditor/
├── App.xaml / App.xaml.cs # WPF entry point — single-instance + GPU/render-mode bootstrap
├── GlobalUsings.cs # Shared global using directives
├── AudioQualityChecker.csproj # WPF desktop app (Windows)
├── Audio Quality Checker.sln # Solution
├── CHANGELOG.md · LICENSE (Apache-2.0)
│
├── AudioAuditor.Core/ # Platform-independent engine — shared by the app and CLI
│ ├── Models/ # AudioFileInfo, CustomThemeDefinition, NpLayoutProfile
│ ├── Abstractions/ # Settings interfaces (decouple Core from the WPF app)
│ └── Services/
│ ├── AudioAnalyzer(.Quality/.Loudness/.BpmDetector/.Optimizer/.FullFilePass).cs # analysis engine (partials)
│ ├── AudioAnalyzerEngine.cs # FFT / spectral DSP
│ ├── AiWatermarkDetector.cs · ExperimentalAiDetector.cs · SHLabsDetectionService.cs # AI detection
│ ├── MqaDetector.cs · AcoustIdService.cs · FlacReader.cs · AudioFormatReaders.cs
│ ├── LyricService.cs · MetadataEnrichmentService.cs · ExportService.cs · Equalizer.cs
│ ├── SpatialAudioProcessor.cs · CueSheetParser.cs · ShuffleEngine.cs · SmartRenameService.cs
│ ├── FavoritesService.cs · ScanCacheService.cs · IntegrityVerifier.cs · UpdateChecker.cs
│ └── Scrobbling/ # IScrobbler + Last.fm / Libre.fm / ListenBrainz / Maloja + ScrobbleManager
│
├── Services/ # Desktop-only services (WPF)
│ ├── AudioPlayer(.Crossfade/.Gapless).cs # NAudio playback (partials)
│ ├── ThemeManager(.Brushes/.NowPlaying/.Persistence/.Scrobbling/.Visualizer/.Performance).cs # theme engine (partials)
│ ├── AnimationPolicy.cs # Reduce Motion / Battery Saver gate
│ ├── SpectrogramGenerator.cs · MiniVisualizerRenderer.cs · SmtcService.cs
│ ├── DiscordRichPresenceService.cs · TranslateService.cs · EqProfileManager.cs
│ └── SessionRestoreService.cs · LocalCrashLogger.cs · LocalStatsCollector.cs · CustomThemeStore.cs
│
├── Windows/ # WPF windows & UI (partial-class heavy)
│ ├── MainWindow(.Spectrogram/.Waveform/.MusicServiceSearch/.Overlays/.TitleBar/.Tray/.Wrapped).cs
│ ├── Np*.cs # Now Playing — NpCore, NpColors(.Animations/.GlowPulse/.Underwater),
│ │ # NpLyrics, NpEqualizer, NpSearch, NpScrobbleWidget, NpLayout, …
│ ├── SettingsWindow(.Performance/.NowPlaying/.Scrobbling/.NpServices/.CustomThemeEditor).cs
│ ├── NowPlayingWindow · MiniPlayerWindow · CreditsWindow · WelcomeDialog
│ └── Spectrogram / Waveform / Metadata / BatchRename / Duplicate / Queue dialogs
│
├── AudioAuditorCLI/ # Cross-platform CLI (Windows / Linux / macOS)
│ └── Program(.Commands/.ConsoleUI/.Interactive).cs # analyze, export, metadata, info, spectrogram, interactive
│
├── Converters/StatusConverters.cs # XAML value converters (status, bitrate, MQA, AI colors)
├── installer/AudioAuditor.iss # Inno Setup installer script
├── Third.Party.Notices/ # Bundled open-source license texts
└── Resources/ # App icon + service logos
Explore all 137 source files across 10 architectural layers in an interactive graph — click any node to see what it does, or take the guided tour.
| Technology | Version | Usage |
|---|---|---|
| .NET 8 | 8.0 | Application runtime and SDK |
| WPF | — | Windows Presentation Foundation UI framework |
| NAudio | 2.2.1 | Audio playback, decoding, FFT analysis, BiQuadFilter EQ, crossfade, sample provider pipeline |
| NAudio.Vorbis | 1.5.0 | Ogg Vorbis decoding via NAudio |
| Concentus.OggFile | 1.0.6 | Managed Opus audio decoding |
| TagLibSharp | 2.3.0 | Audio metadata and tag reading (artist, title, bitrate, sample rate, BPM, Replay Gain, AI detection) |
| ClosedXML | 0.104.2 | Excel XLSX export with styled cells and formatting |
| SharpCompress | 0.38.0 | Archive extraction support |
| SkiaSharp | 2.88.9 | Cross-platform 2D graphics for CLI spectrogram PNG generation |
| DiscordRichPresence | 1.2.1.24 | Discord Rich Presence client for playback status |
| Last.fm / Libre.fm / ListenBrainz / Maloja | — | Multi-service scrobbling and Now Playing updates |
| AcoustID / Chromaprint | — | Audio fingerprinting via fpcalc + MusicBrainz lookup |
| Windows DWM API | — | Native title bar color theming via DwmSetWindowAttribute |
| Windows SMTC | — | System Media Transport Controls for media overlay integration |
AudioAuditor is built and maintained in my free time. If you find it useful, consider supporting development so I can keep adding features, improving performance, and squashing bugs.
AudioAuditor is currently developed by a single maintainer in their free time. Contributions, suggestions, and feedback are always welcome!
If you'd like to contribute, feel free to open an issue or submit a pull request.
Getting Started:
git checkout -b feature/my-feature)git commit -am 'Add my feature')git push origin feature/my-feature)| Library | License | Usage |
|---|---|---|
| NAudio by Mark Heath | MIT | Audio playback, waveform reading, sample provider pipeline, FFT analysis, crossfade mixing, and all audio I/O |
| NAudio.Vorbis by Andrew Ward | MIT | OGG Vorbis audio file decoding and playback support |
| NLayer by Mark Heath & Andrew Ward | MIT | Pure-managed MP3/MPEG decoder — enables MP3 analysis on Linux/macOS (and as a Windows fallback) |
| Concentus & Concentus.OggFile by Logan Stromberg | MIT/BSD | Pure managed Opus audio decoding for .opus file support |
| TagLibSharp by Mono Project | LGPL-2.1 | Reading and writing audio metadata tags across all supported formats (ID3v2, Xiph Comment, APEv2, M4A atoms) |
| ClosedXML by ClosedXML Contributors | MIT | Excel workbook generation with styled cells, headers, and auto-fit columns |
| discord-rpc-csharp by Lachee | MIT | Discord Rich Presence client for showing playback status |
| SkiaSharp by Microsoft / Mono | MIT | Spectrogram PNG generation in the CLI |
| SharpCompress by Adam Hathcock | MIT | Archive extraction support (ZIP, RAR, 7Z, TAR) |
| System.Security.Cryptography.ProtectedData by Microsoft | MIT | Windows DPAPI credential protection for scrobble session storage (Last.fm, Libre.fm, ListenBrainz, Maloja) |
| Technology | By | Usage |
|---|---|---|
| .NET 8 | Microsoft | Application runtime |
| WPF | Microsoft | UI framework — all windows, controls, data binding, styling, and rendering |
AudioFileReader, WaveOutEvent, BufferedWaveProvider, MixingSampleProvider, FFT windowing, and MediaFoundationReader usage patternsDWMWA_USE_IMMERSIVE_DARK_MODE and DWMWA_CAPTION_COLOR title bar customizationThis project is licensed under the Apache License 2.0.
Trademark & Brand Notice: The AudioAuditor name, logo, website (audioauditor.org), domain, and all associated brand assets are not covered by the Apache 2.0 license and are not part of the open-source grant. They remain the exclusive property of the project owner. You may not use the name, logo, or brand assets without explicit written permission.
Built with ❤️ by Angel for audiophiles who care about quality
more like this
🧠 A simple command-line client for the Perplexity API. Ask questions and receive answers directly from the terminal! 🚀🚀🚀
Generate stunning audio waveforms with Svelte 5 and Canvas. Transform an array of peak data into beautifully rendered,…
search projects, people, and tags