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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2011, 12:31   #1
Серего
 
Регистрация: 05.01.2011
Сообщений: 5
По умолчанию Тюнер для музыкальных инструментов.

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

Это мне нужно для курсовой работы, поэтому варианты: скачать готовое не прокатят, нужно писать самому.
Вот работа: rghost.ru/9730361

Прошу совета опытных людей, так как сам с частотами сталкиваюсь впервые.
В одном из топиков читал, что вычислять нужно по формуле:
f = ((N/n) *fd) /2. (N-кол-во отсчетов, n — число переходов через 0)

объясните, пожалуйста, подробнее что тут к чему
Серего вне форума Ответить с цитированием
Старый 07.06.2011, 13:01   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
скачать готовое не прокатят
Качают готовое не для того чтобы бездумно впарить это самое "готовое" преподу, а для того чтобы проанализировать "готовое", разобраться в алгоритме и на основе полученных знаний сделать собственную реализацию алгориьтма.
mss вне форума Ответить с цитированием
Старый 08.06.2011, 08:50   #3
Krendel'
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 36
По умолчанию

можно сделать финт ушами) зная максимальную частоту спектра, разделить ее на количество пикселей ширины картинки, потом, зная расстояние от левого края картинки до курсора, "как бы узнать" частоту "под курсором"

Код:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
   kp:=Round(max/image1.Picture.Width);
   ost:=Image1.Picture.Width+mouse.CursorPos.x;
   kurs:=kp*ost-3195;  
   Edit1.Text:=IntToStr(kurs)+' Гц';
end;
kp - количество "частот" на пиксель картинки
max - частота дискретизации/2 - максимальная частота
ost - расстояние от левого края картинки до курсора
kurs - типа указателя - "какая частота под курсором"; вычитаю 3195 - т.к. mouse.CursorPos.x возвращает значение относительно всего экрана, а не картинки, поэтому приходится подгонять) но если сдвинуть окно программы, то и координаты опять изменятся)
Krendel' вне форума Ответить с цитированием
Старый 08.06.2011, 09:38   #4
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Цитата:
Сообщение от Krendel' Посмотреть сообщение
kurs - типа указателя - "какая частота под курсором"; вычитаю 3195 - т.к. mouse.CursorPos.x возвращает значение относительно всего экрана, а не картинки, поэтому приходится подгонять) но если сдвинуть окно программы, то и координаты опять изменятся)
для этого есть
Код:
pos:= ScreenToClient(mouse.cursorpos);
ZuBy вне форума Ответить с цитированием
Старый 08.06.2011, 14:00   #5
Krendel'
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 36
По умолчанию

ZuBy, большое спасибо!! +1!
Krendel' вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тюнер для гитары в делфи. (Считывать с микрофона звук и выводить какой частоты этот звук). Серего Мультимедиа в Delphi 8 12.01.2011 14:39
Панель инструментов для картинок в IE ! chepuxa Софт 0 04.10.2009 12:10
Подскажите есть ли компоненты панелей инструментов как в Microsoft Office2007 для Delphi? Paul Hindenburg Компоненты Delphi 4 16.03.2009 08:07
Выбор инструментов для создания интерфейса к БД Repz БД в Delphi 3 12.05.2008 13:32