|
|
Возраст: 35 C нами с 04.02.2005 Репутация: 121.3
|
|
На днях написал простенький тюнер для гитары. Он еще совсем не претендует на законченный продукт: просто хотелось бы узнать, будет ли он работать у кого-нибудь кроме меня, а если не заработает, то почему :-)
Установка
В приложенном архиве — исходный код, пока без autotools, так что просто наберите make для компиляции. Вам понадобится библиотека FFTW и ядро Linux с поддержкой ALSA.
Запуск
Прежде всего подключите электрогитару/микрофон/и т.п. к звуковой карте. С помощью микшера (напр., alsamixer) выберете нужное устройство в качестве источника записи (capture) и убедитесь, что оно не заглушено; отрегулируйте громкость записи.
Запустите ./tune. Программа попытается открыть первую доступную звуковую карту. В случае неудачи попробуйте явно указать звуковое устройство при помощи параметра -c, например:
Список доступных устройств можно получить при помощи команды
Использование
После запуска программы дождитесь сообщения о готовности и приступайте к настройке инструмента. Дернув струну, вы должны увидеть примерно следующий вывод программы:
Буква в первой колонке обозначает ноту, к которой наиболее близок полученный сигнал. Число во второй колонке — отклонение полученного сигнала от эталона в процентах полутона. Подкручивая колки, постарайтесь приблизить ноту, издаваемую струной, к эталону ;-). На всякий случай напомню стандартную настройку шестиструнной гитары (от высокой ноты к низкой): E B G D A E.
Если программе не удастся обнаружить сигнал, вы увидите надпись "Silence..." с постепенно нарастающим количеством точек.
Выход из программы осуществляется варварским способом — по нажатию CTRL-C ;-)
Недоработки и ограничения
Программа в любом случае открывает карту с частотой дискретизации, равной 44100 герцам, в 16-битном стерео-режиме. На данный момент эти параметры нельзя поменять ;-)
В качестве звуковой подсистемы поддерживается только ALSA.
Не гарантирована работа на x86_64 ;-)
Я очень надеюсь, что signed short и signed long на x86_64 занимают 2 и 4 байта соответственно :). Если это не так, подкрутите typedef'ы в самом начале файла tuner.cpp :)
Нет обработчика SIGINT ;-)
et cetera, et cetera
Если не работает,
(а скорее всего так и будет :-) ), просьба сообщить здесь или любым другим доступным способом, включив в сообщение вывод программы/компилятора.
А если вдруг работает,
тем более просьба сообщить ;-)
|
guitar-tuner-0.0.0.tar.gz - 4.92 Kб
Скачиваний: 46
|
|
|
|
|
|
|
|