На данный момент мне удалось заставить работать БПФ, чтобы я мог определить частоту основного тона (Гц), а затем, используя алгоритм и таблицу ниже, я могу определить октаву (со 2-й по 6-ю) и ноту (от C до B) для сыгранной ноты.
Следующий шаг — определить струну, чтобы я мог определить лад.

Я думал об этом, и теоретически я могу с этим работать, я буду знать, когда пользователь играет правильную ноту, но игра может быть «взломана», потому что, просто используя Гц, игра становится не может определить, сыграна ли нота на правильной струне. Например, 5-я струна + 1-й лад = C4 261,63 Гц равно 6-я струна + 5-й лад = C4 261,63 Гц.
Шансы на то, что пользователь сыграет ноту на неправильной строке и сделает это правильно, невелики, но я думаю, что было бы очень полезно знать строку, чтобы я мог предоставить пользователям обратную связь об ошибках, когда они играют неправильную строку (например, вам следует идти вверх или вниз по строке).
Знаете ли вы, что я могу сделать, чтобы обнаружить нить? Заранее спасибо

[edit]
Гитара и струны, которые мы используем влияние на тембр, поэтому анализ тембра кажется непростым способом обнаружения струн:
"Вариации тембра на вашей гитаре производятся огромное количество факторов: конструкция и положение звукоснимателя, естественные резонансы и демпфирование вашей гитары из-за используемой древесины (это другой сорт древесины!), ее конструкция и форма, толщина и возраст ваших струн, ваша техника игры, где вы нервничаете и дергаете за струну, и так далее."
Подробнее здесь: https://stackoverflow.com/questions/186 ... ric-guitar