Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Музыкальный тюнер на python, Что для этого нужно 
:(
    Опции темы
FreeArcher
Дата 22.12.2012, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 26.12.2005

Репутация: нет
Всего: нет



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

Технически нужна программа, которая определяет несущую частоту в Гц звука поступающего на линейный или микрофонный вход и сравнивающая её с эталоном.

Подскажите есть ли какие-то библиотеки позволяющие реализовать это?
PM MAIL WWW   Вверх
FreeArcher
Дата 22.12.2012, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 26.12.2005

Репутация: нет
Всего: нет



Вот что нарыл:
Цитата

Применяется частотный анализ (основанный на преобразовании Фурье или Wavelet и др). Музыкальный звук в частотной области представляет собой набор пиков. Первый пик на самой нижней (базовой) частоте, а остальные — на кратных ей частотах. В простейшем случае алгоритм таков:

1) Записываем кусок звукового сигнала
2) Вычисляем спектральную плотность мощности (СПМ) методом Уолша (Welch) или другим.
3) Ищем на СПМ первый пик, берем его частоту.
4) Вычисляем номер ноты по формуле:
N = 12*log2(f/440), где f — частота, в Гц, где находится первый пик
номер ноты получается в полутонах относительно ля первой октавы (эта нота имеет частоту 440Гц, отсюда и константа в формуле).


Но наверняка же должны быть уже готовые библиотеки?
PM MAIL WWW   Вверх
bilbobagginz
Дата 22.12.2012, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 6
Всего: 317



FreeArcher, я не знаю действительно ли нет готовых решений
проблемы могут быть в процессе попытки ответить на вопрос: "какая из частот - та, которую мне надо настраивать?"
Н-кратные гармоники могут звучать сильнее чем основная (т.к. в гитаре есть более 1-й струны, и они резонируют друг об дружку)
я бы сделал частотный анализ, выбрал бы 2-3 самые доминантные частоты, и из них каким-то эвристическим методом проверил кто из них звук правильной струны.

насчет библиотек, есть готовые FFT библиотеки для анализа в частотном пространстве,  а для скачивания данных рекомендую работать с pulseaudio или jack (alsa, неудобный API), или на худой конец OSS.

Добавлено через 2 минуты и 29 секунд
http://stackoverflow.com/questions/9456037...quency-analysis

Это сообщение отредактировал(а) bilbobagginz - 22.12.2012, 15:50


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
FreeArcher
Дата 22.12.2012, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 26.12.2005

Репутация: нет
Всего: нет



bilbobagginz, спасибо тюнер fmit стоит, но не удалось заставить его работать, он через alsa или jack. первое как я понял уже нет, а с jack та ещё морока. Ну может правда стоит разобраться с готовыми решениями.

Что то я не понял , если речь об этом
http://structure.usc.edu/numarray/node65.html
то FFT это анализ массива, а ведь нужно работать со звуком, с потоком или wav файлом?
PM MAIL WWW   Вверх
bilbobagginz
Дата 28.12.2012, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 6
Всего: 317



Цитата(FreeArcher @  22.12.2012,  15:25 Найти цитируемый пост)
то FFT это анализ массива, а ведь нужно работать со звуком, с потоком или wav файлом? 

нужно работать в корреткной кодировке сигнала, в результте которой "кусок звукового потока" есть "блок" или "массив".
ессно параметры dFFT надо подстроить под кодировку


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0632 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.