|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.05.2012, 21:24 | #11 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
ну вот код, который пищит 1000Hz в течении 30 мс, а потом 970 мс молчит, и так 3 раза
Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
13.05.2012, 00:16 | #12 |
Форумчанин
Регистрация: 07.04.2009
Сообщений: 112
|
На Delphi 7 выдает ошибку сразу после проигрывания 3 раз..(так и не понял почему, наверно с блоками в памяти что то не так) но смысл я понял. Кстати процедура Sleep дает очень большую погрешность. С длительность самого сигнала разобрался, только вот теперь не соображу как с длительностью между сигналами разобраться, откуда пауза в 970 Мсек? и что то мне Sleep этот... можно как нибудь без него? (Если например надо жать на кнопку быстро несколько раз и чтоб с каждым нажатием пикало 30 Мсек и не было после паузы) Мне уже за использование доп пауз выговор сделали:-)
|
13.05.2012, 00:31 | #13 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> На Delphi 7 выдает ошибку
хм, странно. Но это в любом случае просто шаблон, чтобы показать принцип, а не законченная программа. > откуда пауза в 970 Мсек? 1000 - 30 = 970 у нас 30 мс сигнала, остальное тишина. Буфер second не просто так назван ) Да, если поиграть с константами freq и time можно получить "больше" звука и на другой частоте. > процедура Sleep дает очень большую погрешность > и что то мне Sleep этот... можно как нибудь без него? Sleep в данном случае исключительно для того, чтобы консольное приложение сразу не закрылось. Его можно поменять на Read() или что угодно другое. К генерации звука это никакого отношения не имеет.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
13.05.2012, 00:39 | #14 |
Форумчанин
Регистрация: 07.04.2009
Сообщений: 112
|
|
13.05.2012, 00:42 | #15 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Код:
Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
13.05.2012, 08:23 | #16 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
13.05.2012, 10:12 | #17 |
Форумчанин
Регистрация: 07.04.2009
Сообщений: 112
|
Я пробовал именно так и вообще без цикла до того как спросил, не пищит совсем.. Когда For i:=0 to 1 и более пищит но от 2 раз... хрень какая то...
Последний раз редактировалось JekaDefer; 13.05.2012 в 10:18. |
13.05.2012, 10:13 | #18 |
Форумчанин
Регистрация: 07.04.2009
Сообщений: 112
|
|
13.05.2012, 10:53 | #19 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Цитата:
Реально нужно создать два буфера, один будет проигрываться, а другой в это время заполняться новыми данными. И так по кругу до бесконечности. Код, заполняющий буфер, нужно запускать в отдельном потоке по event, сообщающем об исчерпании буфера (его генерит звуковая карта). Длительность пауз задается ТОЧНО ТАК ЖЕ, как и длительность звука. Если Вам нужно, чтобы звук зависел от нажатия на клавиши, при обработке клавиатуры просто устанавливаете флажки, которые затем используются кодом, заполняющим буфер. |
|
13.05.2012, 13:09 | #20 |
Форумчанин
Регистрация: 07.04.2009
Сообщений: 112
|
Код:
Последний раз редактировалось JekaDefer; 13.05.2012 в 13:13. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с выводом времени работы программы | murzilka6002 | Общие вопросы C/C++ | 0 | 13.12.2011 23:17 |
Нужно разобраться с выводом текущего времени | ExDeGarse | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 21.06.2011 15:52 |
проблема с выводом | -=Andriushka=- | Помощь студентам | 0 | 13.04.2011 21:46 |
Программа для воспроизведения тонового звука через промежуток времени | Vl-sn | Помощь студентам | 9 | 12.03.2010 20:27 |
Промежутки времени | SatiriK(rus) | SQL, базы данных | 4 | 19.11.2008 00:37 |