Перейти к содержанию
    

Здравствуйте. Решил научиться программно распознавать ноты на гитарном грифе. Нашел таблицу частот, где по горизонтали - номера ладов, по вертикали- номера струн:

Получается, что частота, например,  330 Гц встречается 5 раз на грифе. Каким образом я могу распознать конкретное место на грифе если они звучат одинаково? 

FretFreq.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, Skryppy said:

распознавать ноты

А что в качестве датчика? Иначе не понятно, как "распознавать"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я взял wav файл и обработал небольшую часть его в матлаб. С помощью алгоритма Герцеля успешно детектирую частоты. Но они звенят на разных струнах одинаково ( открытая первая струна  и вторая струна на 5 ладу равны 330 Герц)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ни разу не спец, но может остальные ноты, соответствующие ладу, искать? Если весь лад поджал, то соседние струны тоже должны колебаться по идее. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот, какое распределение амплитуд время обработки = 1/16 ноты, когда звучит следующая пачка все сдвигается синхронно

Первый момент времени:

Следующий момент 1/16 ноты:

 

IMG_20200514_163730.jpg

IMG_20200514_164005.jpg

Да, было бы хорошо знать как взаимодействуют соседние струны или другой признак, чтобы продетектировать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не спец, но. Без датчика положения руки/прижатия лада мне непонятно, как детектировать, на какому ладу зажата струна. Допустим, полный аккорд можно оценить по комбинации отклика со всех струн, как выше сказали. Но и то - эти отклики будут перекрываться.

Но всё портит возможность сыграть одну струну на любом ладу.

Детектор нот - пожалуйста. Но вот детектор аккордов...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

54 minutes ago, Skryppy said:

Каким образом я могу распознать конкретное место на грифе если они звучат одинаково

Так ищите сразу аккорды, т.е., комбинации найденных нот.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 minutes ago, blackfin said:

Так ищите сразу аккорды, т.е., комбинации найденных нот.

как-бы "аккорд" будет даже на одной струне, за счет гармоник. Да, основная частота будет на толстой и тонкой струнах одинакова, 

но мех. характеристики "резонаторов" разные, соотв-но тембра будут отличаться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 minutes ago, k155la3 said:

как-бы "аккорд" будет даже на одной струне, за счет гармоник.

Я не про гармоники. Я про то, что пальцы на грифе нельзя одномоментно растопырить шире чем на 10 см. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Буду пробовать определять по тембру. Я так понял, что тембр - это набор гармоник - 1,2,3 и т.д., а также их сум и разностей. Завтра попробую сделать бпф и посмотреть на амплитудное распределение всех гармоник, а не только тех, что могут звучать на ладах гитары. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, Skryppy said:

Получается, что частота, например,  330 Гц встречается 5 раз на грифе. Каким образом я могу распознать конкретное место на грифе если они звучат одинаково? 

вы гитару хоть раз сами на слух настраивали?

вторая струна настраивается так, чтобы зажатая на пятом ладу звучала так же как и первая открытая.

третья на 4м ладу как открытая вторая и т.д.

и отличить их не удастся, гармоники там тоже будут сильно похожими.

только, как предложил blackfin, наложить дополнительные ограничения чтобы последовательные/одновременно звучащие ноты были физически рядом на грифе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 minutes ago, Skryppy said:

Буду пробовать определять по тембру. Я так понял, что тембр - это набор гармоник - 1,2,3 и т.д., а также их сум и разностей. Завтра попробую сделать бпф и посмотреть на амплитудное распределение всех гармоник, а не только тех, что могут звучать на ладах гитары. 

Если у Вас не электрогитара, а акуст. звук, или запись, то будет сложно, по причине "послезвука" и резонансов в самом корпусе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Автор топика, изобретаете "Шазам" только с выдачей нот/табулатур сразу?

Just now, k155la3 said:

то будет сложно, по причине "послезвука" и резонансов в самом корпусе.

А если ещё и "дисторшн" сверху...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, Skryppy said:

Буду пробовать определять по тембру.

Тут есть одна тонкость. Есть масса способов звукозвлечения на гитаре, тембр меняется очень сильно. А иногда наоборот, стараются извлекать ноты так, чтобы тембр сильно не менялся. Ну все от художественной задумки зависит.

Для звукоизвлечения медиатором я бы предложил вот какой способ. Там в самый первый момент, когда медиатор проезжает по струне, в звуке есть шумоподобный сигнал, скребок по струне. А первый период уже тонального сигнала начнется с запозданием (пока изгиб струны пролетит к ладу и обратно). По этому запозданию и дальнейшей частоте ноты можно будет оценить номер струны.

 

Это, естественно, только для электрогитары прокатит, если это съем акустической гитары микрофоном, то там все реверберация поломает нафиг.

47 minutes ago, blackfin said:

Я не про гармоники. Я про то, что пальцы на грифе нельзя одномоментно растопырить шире чем на 10 см. 

Есть еще масса возможностей аккордов с открытыми струнами. Например, прижатые пятая и четвертая струна на седьмом и пятом ладу соответственно (а остальные струны нигде не прижаты, открыты, как говорят) - вполне себе ми-минор, а расстояние там будь здоров.

 

В общем случае (разные инструменты, разные музыканты, разные способы звукоизвлечения) задача эта нерешаема. Ну так, чтобы ошибок было минимальное количество. Обычно во всех этих гитарных MIDI-датчиках или съем отдельными датчиками с каждой струны, или вообще сложная конструкция грифа с кучей проводов к ладам, позволяющая определить прижатый лад сразу.

 

Ах да,  вишенкой на тортике еще есть такая шутка, как бэнды. Утягиваешь пальцем струну, чтобы повысить тон звучания. Бывают на целое число полутонов, а бывают и на четверть тона, в блюзе например. Очень распространенная вещь в игре на гитаре.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне просто интересно сделать самому. Я понимаю что есть готовые программы. Я взял файл где звучит одна акустическая гитара. Есть и видео файл, так что я точно знаю какая струна где нажата, но хотелось бы это все объяснить компьютеру. Думаю если что нейросеть попробовать обучить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...