Now, FANR is dedicated to research on polyphonic sounds ONLY ! do not expect a user-friendly interface and usage.
For Monophonic cases, look at this new dedicated project: Midingsolo
Summary/Goals
This project aims to do an audio note recognition software for poyphonic sounds
the input is a wave signal captured trough the alsa pcm device and
notes are trown in an Alsa MIDI stream and into the standard output
Limits
- Time resolution vs Frequency resolution:
- In short words: it's impossible to maximize them both.
- When time resolution increase, frequency resolution decrease, and vice versa. The main goal is to maximize time resolution AND keep frequency resolution high has possible to differencing two consecutive half-tones.
- Practical consequences: notes need to be longer enough to be recognized.
- Current performance:
- Monophonic (using a band-filter-like correlation
algorithm):
from latency time resolution
(notes/seconds)tested and stable on A-2 ~225ms ~30 2.6Ghz A3(440hz) ~90ms ~30 2.6Ghz
- Monophonic (using a band-filter-like correlation
algorithm):
- Human voices are badly supported: not for some complexity criteria, but for unprecision of the pitch. A human voice is more easily "false" than an instrument. A better recognition would recognize pitch differences and not absolute pitch, and so be more "human tolerant"
- Drums and percussion are completely unsupported: note recognition uses periodical wave forms recognition, but drums creates more "noise forms" (ouch ouch ...). Drums alter frequency transformation by filling it with a lot of components, so it's difficult to extract components which represent a note.
Current work
- Gauss view
Futur works
- use pitch shifting for better time resolution (if it's really usefull)
- see the TODO file