Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2009, 11:21   #1
nolz
Пользователь
 
Регистрация: 30.08.2009
Сообщений: 35
По умолчанию Настройка гитары

Хочу написать программу для настройки гитары через мирофон.
Приблизительно это должно выглядеть так: для первой струны частота должна быть 329.63Гц, подносим микрофон к гитаре и дёргаем первую струну, а программа показывает в какую сторону количество Гц откланилось от нужного числа, и на сколько откланилось, и так подтягивая или отпуская струну подгоняешь под нужную частоту, так же и для второй струны только там частота должна быть 246.9гц, и тд..
Вот даже не знаю с чего начать, если у кого есть идеи поделитесь)
nolz вне форума Ответить с цитированием
Старый 04.09.2009, 11:32   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Запиши в файлы "чистый" звук, затем попробуй сравнивать "чистые" файлы, с "грязными" еще можно попробовать сделать частотный эквалайзер, и сравнивать прямые. А еще смотри тут и тут.
Еще может помочь этот код. Продолжение кода.
Еще можно использовать AudioLab пример тут

А вообще это не очень хорошая затея. Редко когда получается записать звук без "примесей". Даже два раза цепнув одну струну ты не получишь абсолютно одинаковый звук. В программе придется ставить ограничитель точности для сравнения.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 04.09.2009 в 11:40. Причина: Подумал маленько
Alex Cones вне форума Ответить с цитированием
Старый 04.09.2009, 11:46   #3
nolz
Пользователь
 
Регистрация: 30.08.2009
Сообщений: 35
По умолчанию

Я думаю ничего записывать не надо, мне кажется что программа должна показывать кол-во герц, которые издаёт сруна, а там дальше должно идти сравнение чистоты струны с числом 329 к примеру, и показывать что, в какую сторону и на сколько герц не так.
Вся проблема, что я понятия не имею как перевести звук в частоту, сейчас пробую разобраться в выше предложенных ссылках.
nolz вне форума Ответить с цитированием
Старый 04.09.2009, 11:48   #4
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Значит тут придется искать количество колебаний\сек. Скорее всего придется использовать сторонние компоненты. 99%, что придется.


Цитата:
сруна
Гы-гы!
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 04.09.2009, 12:57   #5
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Нужно получить "сырой" звук и анализировать спектр. С нуля это сложно, куча математики и всяких свёрток, преобразования Фурье
Цитата:
Как вычислить и отобразить спектр сигнала?
Взять нужный отрезок сигнала длины 2m; если нужный отрезок короче – дополнить его нулями.
Если нужно – домножить сигнал на весовое окно, плавно спадающее к краям. Обычно это улучшает свойства спектра.
Вычислить FFT.
Перевести комплексные коэффициенты в полярную форму: получить амплитуды.
Отобразить график зависимости амплитуды от частоты.
В библиотеке BASS или BASS_FX вроде есть функции, возвращающие FFT - фактически готовый набор данных частота/амплитуда, по ним можно построить приблизительно такой график

(эквалайзер из FL Studio )
пыщь
JTG вне форума Ответить с цитированием
Старый 04.09.2009, 13:01   #6
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
если нужный отрезок короче – дополнить его нулями.
Тогда придется работать по %-там. Например на 95% совпадение с волной 649 Гц, на 35% Совпадение с 640 Гц. и т.д.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 04.09.2009, 13:41   #7
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Даже чистая синусоида в 440 Гц будет выглядеть в спектре приблизительно так
Код:

                         |
                         |
                         |
                         |
                 |       |
                 |       |
                 |       |
         |       |       |
_|_______|_______|_______|_...
100     200     300    400
Это называется гармоники, в звуке гитарной струны их будет намного больше, реальная частота соответствует самому высокому пику, нули в конце сигнала не должны влиять на спектр, вот:
пыщь

Последний раз редактировалось JTG; 04.09.2009 в 13:43.
JTG вне форума Ответить с цитированием
Старый 04.09.2009, 15:27   #8
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Гитара настраивается по первой струне. Первая струна настраивается по камертону, остальные по ней. Если человек на слух не может настроить гитару ему нечего с ней вообще делать, как можно играть не имея слуха? имхо
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 04.09.2009, 16:01   #9
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Ну форум программистов как-никак. Я вообще без камертона настраиваю, потом с программным тюнером сравниваю - всё время оказывается на полтона выше/ниже. А с камертоном полная лажа получается - его "бздынь" и гитарное "брынь" для меня абсолютно разные звуки, как их высоту на слух можно сравнить - никогда не понимал. Электронный, который пищит, тем более. Хотя вполне сносно играю
пыщь

Последний раз редактировалось JTG; 04.09.2009 в 16:05.
JTG вне форума Ответить с цитированием
Старый 04.09.2009, 19:27   #10
nolz
Пользователь
 
Регистрация: 30.08.2009
Сообщений: 35
По умолчанию

Цитата:
В библиотеке BASS или BASS_FX вроде есть функции, возвращающие FFT - фактически готовый набор данных частота/амплитуда, по ним можно построить приблизительно такой график
Библиотеки встроенные или их надо где то отдельно скачивать?

Цитата:
Гитара настраивается по первой струне. Первая струна настраивается по камертону, остальные по ней. Если человек на слух не может настроить гитару ему нечего с ней вообще делать, как можно играть не имея слуха? имхо
Я умею настраивать по слуху, но мне интересно как пишутся тюнер программы которые позволяют настраивать гитару через микрофон. Да и тем более что плохого в настройке гитары через такую программу, у меня настраивать гитару на слух занимает, примерно полчаса, а через программу, минуты за две, так что когда у меня всё нужное под рукой, я лучше через программу настрою.
nolz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Настройка COM порта zombi Win Api 1 05.11.2008 19:02
Настройка интернета GAGARIN-NEW Компьютерное железо 0 08.10.2008 21:19
Настройка печати Максим_Леонидович Компоненты Delphi 3 26.09.2008 20:45
Настройка модема Aleksandr Компьютерное железо 0 11.09.2008 14:19
Настройка Delphi Xenofibrius Общие вопросы Delphi 2 21.04.2008 12:40