Автор |
Сообщение |
|
Дата: 27 Ноя 2008 23:14:57
#
Здравствуйте, люди.
У меня возник такой вопрос: как пишут программы для работы с сигналами (анализаторы, генераторы,запись). Почитав литературу, понял, что на Турбо Паскале и Бейсике зто невыполнимо. Какие языки и алгоритмы используют в таких программах, как SAQ rx и и ей подобных, а также в программах звукозаписи?
|
|
Дата: 27 Ноя 2008 23:38:55 · Поправил: DVE (27 Ноя 2008 23:41:53)
#
Если совсем примитивно - открываете звуковую карту как устройство wave in, настраиваете разрядность и частоту дискретизации. Получаете буфер цифровых данных. Далее уже собственно математическая обработка, Быстрое Преобразование Фурье в простейшем случае, и пр.
Писать можно на любом языке, который обеспечит доступ к ресурсам звуковой карты (хотя если читать только готовые файлы то без разницы, хоть под ДОС на паскале, только смысла уже никакого).
Почитайте например тут - http://www.rsdn.ru/article/multimedia/winsnd.xml
(хотя после Паскаля скорее всего будет ничего непонятно)
PS: Есть исходники программы которая умеет читать и передавать сигналы различных типов:
http://sourceforge.net/projects/pocketdigi |
Реклама Google
|
|
|
Дата: 28 Ноя 2008 02:02:34
#
создатель Турбо Паскаля Делфи и Шарпа один и тот же человек так что паскаль ой как близок к си шарп,и благодаря Андерс Хейльсберг (Anders Hejlsberg) появилось вот это http://sourceforge.net/projects/pocketdigi . Хоть и ругаю дот нет но что тут поделать выбора нима .. |
|
Дата: 28 Ноя 2008 10:28:16
#
WinAPI + MFC/WTL никто не отменял ;) Дотнет пока ИМХО технология достаточно сырая.
|
|
Дата: 28 Ноя 2008 11:04:03
#
А можно примерчик на Делфи, программы,которая снимает сигнал со звуковой карты и обрабатывает наличие сигнала, допустим, 1 кгц в единицу времени т.е. если есть сигнал выдает 1 нет сигнала 0 , если не сложно для скорости 9600 кбит/с.
|
|
Дата: 29 Дек 2008 23:45:09 · Поправил: Люскин (29 Дек 2008 23:45:36)
#
Скачал Делфи 7,начал писать всякие простые программы. Осталось освоить работу со звуком и желательно с графикой, чтобы отображала графики сигналов
|
|
Дата: 30 Дек 2008 10:06:20
#
А почему, собственно на Паскале и С++ такие программы писать нельзя?
|
|
Дата: 30 Дек 2008 18:15:15 · Поправил: Zmej (30 Дек 2008 18:17:46)
#
Fath
А вам интересно сидеть в DOS? К тому же такие штуки могут не заработать в эмуляции доса. Это о паскале... В винде удобнее и проще, т.к. больше готовых компонентов (как си так и делфи).
Ну, а крупные спецЫ могут и на ASM сделать с нуля, работать будет даже на 486, это гарантировано. Но, только каким трудом и ради чего?
|
|
Дата: 30 Дек 2008 18:22:47
#
Могут и на АСМе ,например FAR менеджер написан ,и ниче ,наверное через 100 лет этим фар менагером будут бороздить просторы дисковых пространств .
|
|
Дата: 30 Дек 2008 18:55:52
#
RadioKoteg
Да, ФАР - сила.
Только оболочку написать или с цифровой обработкой на лету работать все-таки вещи довольно разной сложности...
наверное через 100 лет этим фар менагером будут бороздить просторы дисковых пространств .
А в этом сомневаюсь, вымрут такие как мы, а остальные только "проводничками с моими компьютерами" пользуются, даже Тотал не понимают. Деградация шагает семимильными шагами.
|
|
Дата: 30 Дек 2008 19:00:47 · Поправил: antony (30 Дек 2008 19:11:29)
#
А можно примерчик на Делфи, программы,которая снимает сигнал со звуковой карты и обрабатывает наличие сигнала, допустим, 1 кгц в единицу времени т.е. если есть сигнал выдает 1 нет сигнала 0 , если не сложно для скорости 9600 кбит/с.
Скачал Делфи 7,начал писать всякие простые программы. Осталось освоить работу со звуком и желательно с графикой, чтобы отображала графики сигналов
копайте DirectX (DirectSound) портированный на Дельфи
сайт проекта http://www.progdigy.com, но чего-то сейчас лежит (если что то ищите по названию DSPack).
Весь обвес COM-а от мелкомягких там скрыт до обычных вызовов функций классов. Описание берется из MS DX SDK. Реализовано (портировано) не всё, но вполне достаточно. Я ни них видео захват и вывод делал.
рисовать можно как обычным GDI так и GDI+ что намного быстрее, есть тоже на sourceforge портированный в Delphi, но от специфики ATL до конца не скрытый... типа умных указателей.
на DX вывод графиков ручками помрете делать - для дома для семьи.
под Дельфи ещё весьма советую тогда скачать (warez) библиотеку компонент IOcomp - там от "осциллографа" и спидометра до тумблера есть.
второй вариант это различные фри библиотеки и SDK типа lame mp3 |
|
Дата: 30 Дек 2008 19:03:56
#
Да будет вам возле фара с бубном плясать, он нужен когда винда свалилась или когда без её услуг нужно обойтись, а так он и не нуженто особо. В винде всё проще и удобней, ну там за мелочами, а они эти мелочи и не нужны простым юзерам. Да и не всё он может этот фар, каждой софтинке своё дело, вот и всё, у фара свои задачи, типо спешиал.
|
|
Дата: 30 Дек 2008 19:06:50
#
Mesh
В винде всё проще и удобней, ну там за мелочами, а они эти мелочи и не нужны простым юзерам
угу, вот я тест при приеме на работу секретаршей не пройду т.к. понятия не помню (наизусть) все Ctrl Alt и т.д. для работы с Проводником..
Total (Windows) Commander - rulezzz :)
|
|
Дата: 30 Дек 2008 19:11:35
#
antony Угу, да только всё просто как некуда, нужно будет и выучите вы все Ctr Alt и всё остальное, а так есле работадателю ваши знания фара не нужны то и толку от них 0. Можно конешно делать вид что без фара жизни нет, но это ж неправда. :)
|
|
Дата: 30 Дек 2008 19:14:59
#
Mesh
у меня крайняя должность - ведущий инженер программист. начиная с Windows 3.0 эксплорером пользуюсь с грехом пополам ибо скорость операций снижается в 10 раз из-за лишних телодвижений
|
|
Дата: 30 Дек 2008 19:17:41 · Поправил: Zmej (30 Дек 2008 19:24:58)
#
MeshДа будет вам возле фара с бубном плясать, он нужен когда винда свалилась или когда без её услуг нужно обойтись,
А ничего что FAR вполно себе такое 32bit win application?!
Вот даже что он говорит при попытке запуска не из винды: This program cannot be run in DOS mode.
antony
Поддерживаю! Кто говорит что "экспроллер", "мой компьютер" и "пумпочки" с именами дисков на десктопе или в панеле быстрого запуска - это хорошо и удобно никогда не пользовались или не научились пользоваться нортон-подобными оболочками.
Ладно, давайте на этом закругляться. Смотрим на заглавние темы ;)
|
|
Дата: 30 Дек 2008 19:25:57
#
Zmej А ничего что FAR вполно себе такое 32bit win application?! Да ничего абсолютно, где я написал что фар работает на голой тачке? :) antony да ладно вам, гиперболы гиперболой а реалити таковы что есле вы в проводнике не шуршите, то это какой ж вы ведущий инженер программист? Да ладно парни, ну любите фар ну поздравляю! И я им пользуюсь когда надо, но фетиша не далею, гы. Тормозим, а то тема уезжает.
|
|
Дата: 30 Дек 2008 19:36:05
#
Zmej
по теме выше написал
Mesh
я ФАР не пользую, не нравится, только ТС.
плюс если вы пользуете телевизор как посмотреть это одно, а если вы его разрабатываете то это другое и средства иные, так что давайте без
а реалити таковы что есле вы в проводнике не шуршите, то это какой ж вы ведущий инженер программист?
|
|
Дата: 30 Дек 2008 19:40:37 · Поправил: Zmej (30 Дек 2008 19:49:12)
#
Mesh
где я написал что фар работает на голой тачке? :)
А как же это :-) Цитирую: он нужен когда винда свалилась
Когда действительно винда свалилась обычно пользовались дискетой с VC :) А сейчас чем там икспиховеды пользуются не знаю, загрузочными cd-реаниматорами наверно ;)
но фетиша не далею
И зря, нортоноподобные оболочки - это такое же выдающееся достижение программистов, imho, как и радиво вместе с "А.С.-ом" Поповым ;) Хотя, некоторые считают под это дело Маркони, ну и ладно, но мы то знаем кто наш радио АС!
antony
по теме выше написал
Да, но я имел в виду не лично вас, а всех нас, по-оффтопили и хватит, а то вдруг среди читающих есть еще те кто реально может помочь теме, но из-за нашего спора не захотят ввязываться в тему...
|
|
Дата: 30 Дек 2008 19:46:08 · Поправил: antony (30 Дек 2008 19:48:30)
#
Zmej
Когда действительно винда свалилась обычно пользовались дискетой с VC :)
100% ибо 6.22 + дрова + VC на одну влезало. иногда делал с нортоном 3.0 или 4.0 пока NC маленький был
А сейчас чем там икспиховеды пользуются не знаю, загрузочными cd-реаниматорами наверно
LiveCD оди сейчас зовутся с 2000(XPE), Линуксом, диск проверкой под 32-бит аналогом доса в одном флаконе (загрузочном диске).
|
|
Дата: 30 Дек 2008 19:47:35
#
Zmej Цитирую: он нужен когда винда свалилась свалилась не значить умерла насмерть, защищённый режим никто не отменял, а уж тут фар лутчший помошник копатся в больном, диск с какой нить WinPE тож никто не отменял, ну да ладно, мы обо одном и том ж, фару фарово, всему остальному остальное. Но без излешнего помпажа ессно. Я ток об этом. :)
|
|
Дата: 01 Янв 2009 13:46:12
#
Ребята помогите с прогой, скачал компоненты newac для delphi, хочу снимать сигнал микрофона DXAudioIn1 если пускать напрямую на DXAudioOut1(динамик) то идет запаздывание звука, как я понимаю наполняется буфер в самом начале, как сделать, чтоб в реальном режиме работало? Для начала хочу вывести сигнал на компонент ZSpectrView1 (графически отображает сигнал).
|
|
Дата: 01 Янв 2009 15:04:36
#
Вот что получаеться
procedure TForm1.Button1Click(Sender: TObject);
begin
ZSpectrView1.Start;
DXAudioIn1.Flush;
DXAudioIn1.Init;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var buffer: Pointer; size: Cardinal;
begin
ZSpectrView1.Start;
DXAudioIn1.Flush;
DXAudioIn1.Init;
DXAudioIn1.GetData(buffer,size);
ZSpectrView1.BufferSize:=tBufferSizes(size);
ZSpectrView1.Process(buffer);
Application.ProcessMessages; //без этого вообще не изменяется, только когда окно "такскаешь //по экрану", не перерисовывается форма
ZSpectrView1.Refresh;
//ZSpectrView1.Repaint; при этих процедурах тоже самое
//ZSpectrView1.Update; при этих процедурах тоже самое
end;
end.
Но очень тормозит, может кто поможет до ума довести.
|
|
Дата: 01 Янв 2009 15:07:06
#
Таймер срабатывает с частотой 0,1 с если менять значения таймера, то результат тот же.
|
|
Дата: 01 Янв 2009 15:27:49
#
toksin
первое правило для таких дел, не использовать TTimer
а делать самому в отдельном Thread и с QueryPerformanceCounter-ом или скачать аналогичный компонент
|
|
Дата: 01 Янв 2009 17:26:03
#
toksin А вы типо в теме? В чём смысл юзания Application.ProcessMessages; и ZSpectrView1.Refresh; оновремено?
|
|
Дата: 01 Янв 2009 20:33:37
#
Mesh
В данной области я не селен. Я немного БД занимался, немного клиент-сервер и еще некоторые вещи.
Насколько я понимаю, ошибка в работе с ZSpectrView1 т.к. ZSpectrView1.Refresh; ZSpectrView1.Repaint; ZSpectrView1.Update; не обновляют форму, она зависает, как при большем цикле. Application.ProcessMessages; - при зацыкливании, "проталкивает" задачу которая стоит в очереди на выполнение.
antony
Насчет распоточивания, думаю Вы правы, в компоненте идет постоянный опрос данных, значить подвисаний от цыклов не избежать.
|
|
Дата: 01 Янв 2009 22:00:16
#
|
|
Дата: 01 Янв 2009 22:04:39
#
toksin Ну я то тож не в теме, но Насколько я понимаю то Application.ProcessMessages отдаёт управление системе для её нужд, и система отрисовывает в том числе все окна и менюшки которы надо. Поетому вторая строка ZSpectrView1.Refresh; ZSpectrView1.Repaint; ZSpectrView1.Update; просто тупо дублирует сделаное уже системой. Ну так гдето. А вообще после немного БД занимался, немного клиент-сервер и еще некоторые вещи и за цос, это конешно круто. Да и не мешало б почитать чем отличается refresh от repaint и от update, ну собсно как Ильич завещал, ни какие готовые компоненты не заполнют ваккум незнаний, тут самому пахать надо, но мало кто ето любит. Все думают прогу написать это типо, так, кампонентов напихал и оно всё заработало. :)
|
|
Дата: 01 Янв 2009 22:16:51
#
Mesh
У меня метод такой, я сначала, пытаюсь сделать без чтения справок, если нет , значит читаю справку, если не получается, тогда зову младшего брата, он в Делфи просто мастер, но ленивый очень, за бесплатно ничего не хочет делать, когда смотрит шо я мучаюсь, тогда подходит и помогает, но немного, дает информацию порциями.
|
Реклама Google |
|