A pure-Python inspector, editor, and forensic tool for audio files and synth/DAW presets: read the metadata, decode the format structure byte by byte, flag anomalies, repair broken containers, and identify how a file was made.
Reads BPM, key, duration, tags, and format info from WAV, AIFF, MP3, FLAC, OGG, Opus, M4A, MIDI, and Serum presets. Also structurally decodes Bitwig (.bwpreset/.bwclip), Native Instruments (Massive/Absynth/Kontakt/NKS/KORE), Vital, NCW, SoundFont (SF2/SF3), tracker modules (MOD/XM/IT), MP4, VST FXP, ReCycle RX2, and RMID containers via inspect. Beyond reading: repair and validate fix and check container structure (stale sizes, offset tables, counts, pad bytes) without touching a byte of audio, and audit gives a forensic verdict (structure, integrity, hidden data, and the writing tool). One pure-Python dependency (mutagen); the native inspect walkers need nothing. Optional librosa analysis for BPM/key detection and ML feature extraction.
Also ships per-library SQLite indexes (acidcat index) tracked in a small global registry, plus an MCP server (acidcat-mcp) so an LLM can query your whole collection across libraries by bpm, key, tags, or full-text.
WhatChord is an interactive chord identification, key detection, and harmony exploration app. Identify voicings from live Bluetooth or USB MIDI input or manual note entry, follow the key as you play, then explore chords, scales, keyboard patterns, and harmonic context. It is optimized for speed, accuracy, and musician-expected naming, favoring stable, conventional interpretations over simple note-matching.
foo_musical_key is a foobar2000 component that detects the musical key of selected tracks with libkeyfinder or by ear via a MIDI piano keyboard interface, writes the result to foobar2000’s metadata database, and can write the key tag back into the source audio file.
The component adds a Musical Key Analyser context-menu group and ships as a standard .fb2k-component package for foobar2000 users.
Features:
Detect musical keys automatically for one or many selected tracks (libkeyfinder).
Detect the key of a single track manually by playing notes on your keyboard (MIDI out, Windows default GS synth).
Run automatic analysis in a background worker with foobar2000 progress UI.
Write detected keys to foobar2000’s metadata DB without touching the file.
Write the key tag from the DB into the audio file on disk (separate action).
Choose one of three output notations:
Standard (C, Am, Dbm)
Camelot (8B, 8A)
Open Key (1d, 1m)
Configurable tag name (default: Initial Key).
Build x86 and x64 binaries and package them into one .fb2k-component.
Tksolfege is an ear training program for learning to recognize chords, intervals, perform rhythm dictation, solfege dictation and singing solfege sequences. The program requires Tcl/Tk 8.4, however the Windows executable has Tcl/Tk builtin.
Features:
The program contains ear training exercises for the identification of chords, musical intervals, key signatures, musical scales, and cadences.
Vinyl sounds better, looks better, feels better and even smells better. But digital does have its benefits, musical metadata is one of them. Having the key, tempo and other musical metadata for your records at a glance would be useful. Disconest uses The Echonest music database to find information about releases registered on Discogs.
As of November 2024 Spotify removed access to api endpoints used by Disconest and many other indie apps. Without these apis Disconests functionality is limited. See the Spotify Developer blog for more details.
Upload your audio files to find the key and tempo of the tracks in your library. This is a tool for DJs interested in harmonic mixing, producers looking to remix songs, and anyone trying to understand their music a little better.
KeyFinder is an open source key detection tool, for DJs interested in harmonic and tonal mixing. It’s intended to be very focused: no library management, no track suggestions, no media player. Just a fast, efficient workflow tool. It supports a huge range of codecs thanks to LibAV, and writes to metadata tags using TagLib.