Как мы делали Guitar Tuner / Блог компании e- Legion Ltd. В теории это реализуется достаточно просто: звук — это колебание, колебание имеет частоту, частота колебания — это нота. Есть в математике такая замечательная вещь, как преобразование Фурье. Это преобразование даёт частотный спектр аналогового сигнала. То есть любой сигнал можно представить как сумму синусоидальных кривых разной частоты и разной амплитуды. Таким образом, если сигнал сам по себе является синусоидой, то в разложении по частотам у него будет только один член, то есть в сигнале будет присутствовать одна частота. Если сигнал сложный, то и спектр сложный. Музыкальные инструменты играют какую- то определённую ноту и одновременно множество призвуков (обертонов), что значит, что спектр имеет сложную структуру, однако играемая нота (частота) в спектре имеет наибольшую амплитуду. Как правило имеется также некоторое число гармоник в сигнале, то есть частот, кратных основной (удвоенная, утроенная, т. Таким образом, для определения звучащей на гитаре ноты необходимо снять с микрофона телефона звуковой поток, взять от него Фурье- образ, найти частоту с наибольшей амплитудой, провести соответствие частоты и ноты. Проблемы. На каждом из этапов нас поджидали неприятности. Кроме последнего, разумеется, где таблицы соответствий известны, да и несложно вычислимы из известной частоты 4. Гц для ноты ля 1- ой октавы, а также известного соотношения между частотами одной ноты соседних октав (в 2 раза) и известного количества нот в октаве. Во- первых, в те давние времена первой версии Android OS, не существовало открытого Java API для работы со звуковым потоком с микрофона. Был API для воспроизведения звука, но не для считывания потока с микрофона. Однако существовал Native- код Speech Recongnition системы, которая работала со снимаемым звуковым потоком. В итоге в качестве хака была написана обёртка для работы с этими Native- потоками. Как потом оказалось, это откликнулось весьма печальными результатами. Но об этом позже. Следующим этапом было получение Фурье- образа сигнала. Естественно, был использован алгоритм быстрого преобразования Фурье (БПФ). Мы сразу же задумались, что это, как самая вычислительно сложная задача, будет самым узким местом в производительности тюнера. Естественным решением было бы написать эту часть на C, а не на Java, но мы решили сравнить оба решения. Реализовав Cooley–Tukey версию алгоритма БПФ на Java и на C мы провели небольшой benchmark и увидели, что разница во времени была почти на два порядка! Отличный и бесплатный аналог программы Guitar Pro. Поддерживает целый ряд форматов, среди которых gtp2,3,4,5 и PowerTab. Кто выиграл, очевидно. Однако нам удалось улучшить результаты Java версии почти на порядок, заменив работу с комплексными числами как с объектами Complex на простые пары чисел. В итоге результат Java- версии стал достаточно быстрым, и мы решили использовать его, дабы избежать использование лишнего native- кода (в общем- то менее портабельного). Далее начались самые интересные проблемы. Взглянув на спектральные картинки, мы увидели вовсе не то, чего ожидали. Вместо большой амплитуды основной частоты и сильно меньших амплитуд кратных гармоник, мы увидели едва заметную основную частоту и амплитуды гармоник, подчиняющиеся непонятным нам законам. После долгих попыток понять зависимости, представшие перед нами, в итоге мы свалили всё на Speech Recongnition. Мол, это он выделяет те частоты, которые превалируют в человеческой речи. Решения. Так как альтернативного источника для чтения потока у нас тогда не было, нужно было как- то выкручиваться. Пришлось отказаться от начальной цели сделать универсальный тюнер, а вместо этого делать тюнер для предзабитых наборов инструментов: шести- и семиструнных гитар, четырёх- , пяти- , шестиструнных бас- гитар и прочего. Мидлет разработал Майкл Кон (Michael Kohn) - программист с музыкальными способностями. Творение Майкла занимает . Тюнер для гитары Guitar Tuna включает в себя множество других полезных функций: Интуитивно понятная визуальная обратная связь Автоматический режим (автоматически. Добавить комментарий. Похожие загрузки. Гитарный тюнер. Музыка и аудио. Музыка » Музыкальные инструменты. Настраивай гитару с твоего компьютера. Хочешь настроить твою гитару? Иными словами, пользователь тюнера, перед тем как издавать звук на инструменте, сам выбирает ту струну, которую он хочет настроить, а потом только играет. Таким образом, мы уже знаем ту референтную частоту, которую в идеале нужно получить. А зная из спектральной картины сигнала одну из гармоник искомой ноты, мы можем (делением) узнать отклонение реально основной частоты от референтной. Иными словами, частота с максимальной амплитудой в «испорченном» speech recogniser'ом сигнале целочисленно делится на искомую частоту, получается номер гармоники. Далее, делением вычисляется действительно основная частота звучащей ноты, вычисляется разность между искомой и звучащей частотами, нормируется на длину отображаемой шкалы, отображается пользователю. Позднее появился API для работы с аудио потоком с микрофона, и тюнер был переделан с его использованием, но в данный момент на его поддержку нетресурсов, поэтому он находится не в идеальном состоянии. Несмотря на это, им активно пользуются более 5. Android- пользователей. Такая вот поучительная история. Скачать бесплатно Guitar Tuner: Простой стандартный гитарный тюнер Полезная программа для настройки гитары Есть 4 типа гитары множество режимов тюнинга После настройки можно сделать запись звука струны на гитаре и провести сравнение для Java. У нас на сайте вы можете Скачать бесплатно Java игры, приложения, Guitar Tuner 1 Фев 17 Скачать бесплатно приложения и программы для Java. Обычно гитарные тюнеры, которые можно найти в интернете, основаны на записи или тонах, генерируемых приложением. Теперь у вас будет такой тюнер, и вам не придется ничего покупать. Guitar Tuner Java Applet – это совершенно бесплатное мультиплатформовое. Клуб смартфонов и телефонов Nokia, Скачать Guitar Tuner v.1.3.1 для Symbian ^3, 9.4 / Бесплатные программы для смартфонов Nokia, программы для. Игра Змейка Конструктор тем Нарезка mp3 Java-книги Конструктор обоев WP7 тайл генератор Сертификаты Опросы. С AP Tuner ты сможешь настраивать гитару, бас, скрипку и виолончель. Надеюсь полученная информация пригодится вам в дальнейшем. С удовольствием отвечу на все вопросы.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |