audio_to_midi_melodia extracts melodies from audio files and converts them into MIDI format. The project addresses the challenge of separating the melodic line from polyphonic audio. It leverages the Melodia algorithm for f0 estimation and a custom note segmentation routine for creating quantized MIDI notes. The script provides flexibility through command-line arguments for tempo and smoothing.
This project provides a relatively simple implementation of melody extraction and note segmentation. The clear separation of these two steps is a notable design choice. The inclusion of JAMS output provides an alternative format for note representation. The project includes detailed installation instructions, addressing platform-specific challenges.
- Melody Extraction: Utilizes the Melodia algorithm for fundamental frequency estimation.
- Note Segmentation: Converts continuous f0 to quantized notes with start and end times.
- JAMS Output: Saves output in JAMS format alongside MIDI.
- Command-Line Interface: Offers command-line arguments for tempo, smoothing, and JAMS output.
- Dependency Management: Includes a
requirements.txtfile for easy dependency installation. - Platform Specific Installation: Provides detailed guidance for Windows users to install dependencies.
- Usage Example: Demonstrates how to run the script with various parameters.
The project appears to be in a maintained but not actively developed state. The last commit was in 2020, and the issue tracker indicates community engagement when proposing feature additions. Documentation is available, mainly in the README, and installation instructions are included. The reliance on specific Python and dependency versions suggests a degree of stability but also potential compatibility concerns.
This project is useful for musicians, audio researchers, and developers who need to programmatically extract melodic information from audio. It offers a straightforward way to convert audio recordings into MIDI files for further manipulation or analysis. Compared to manual transcription, this approach offers significant time savings and automation capabilities.
