paddyelm / tone-analysis-api

Library for note registering using a real-tone cable
MIT License
0 stars 0 forks source link

Spike: Goals and plan of this tuner/note recognition #1

Open paddyelm opened 3 months ago

paddyelm commented 3 months ago

Description

The objective is to develop a tuner API capable of more than just tuning a guitar to predetermined settings. It should register a note and indicate its deviation from perfect pitch. This tuning library should be reusable, as it will be required in other applications related to the user's notes, such as recording and collaboration. To minimise latency, it should ideally be located close to the user or at least a portion of it should be.

AC

paddyelm commented 3 months ago

Possible goals

  1. Read notes from a file mp3/wav.
  2. Use the mic to do live note recognition
  3. To be used as a standard tuner for even low tunings
  4. Needs to pick up if the user is pressing the wrong note as in rocksmith a. it needs to direct the user to the correct note3. it needs to be fast enough to be realtime, which might be impossible on a website to api scenario
  5. It is needed to be recorded onto sheet music

Other possiblities

  1. can convert sheet music to real tones.
  2. Understand the key of the song/riff, to try keep the members in key.

additional requirements

  1. test audio for test cases
  2. Might need a chrome/browser plugin to pull in the mic. It might only need a mic request from the users browser.
paddyelm commented 3 months ago

Possible site for sample audio files: https://freesound.org/

paddyelm commented 3 months ago

Promising repo: https://github.com/TheFibonacciEffect/Partitur.

A program to extract Sheet music from an .mp3 or .wav file

A more simple note recognision repo: https://github.com/simo1730/NoteDetector

A simple python script used for note detection from sound files.

Audio analysis tool: https://github.com/librosa/librosa

A python package for music and audio analysis.

Seems like most of the popular ones are in Python. For retime audio, might need to look at the JS in the case of a browser. Unless it is made as a downloadable.