/observado

A GUI tool for chord detection with no guarantee of accuracy.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Observado

Introduction

This is a simple GUI tool for chord detection developed from the example in librosa.sequence.viterbi_discriminative, with the ability to detect some seventh chords by using the k-NN algorithm.

The main idea is using the k-NN algorithm to tell some triads and sevenths chords apart after the result of librosa.sequence.viterbi_discriminative. Chroma features of audio files generated by MIDI chord templates are used as the dataset.

This is only a project for my coursework which does not guarantee the accuracy. It would be better not to use it to do chord detection in practice.

Requirements

  • Timidity++
  • Qt

Python

  • joblib
  • librosa
  • matplotlib
  • numpy
  • pandas
  • scikit_learn
  • scipy
  • tqdm

Setup

First, install Python requirements.

pip install -r requirements.txt

Then generate data. It may take a while.

cd observado/
python generate.py

You may directly use main.py, or build the GUI tool with CMake.