информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыЗа кого нас держат?Портрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Logitech готовится закрыть очередную... 
 Серьёзная атака на инфраструктуру... 
 Microsoft призналась в сознательном... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Помню на спектруме этим баловались 20.12.02 17:05  Число просмотров: 1511
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Sound(x);
> Включает генератор меандра, выход которого присоединен к
> внутреннему динамику.
> Delay(y);
> Звдержка по времени, аргумент милисекунды.
> Есть еще Nosound(); выключение динамика.
> Генератор один и умеет он воспроизводить звук только одной
> частоты.
> Это однозначный ответ.
> Аккорд можно воспроизвести через звуковую плату, если она
> есть в компьютере. Только вот программировать ее
> значительно тяжелее.
> Есть еще один выход - вручную дергать динамик, но
> воспроизвести нормальный звук еще тяжелее, чем через
> звуковую плату.

Да уж. При этом на спекке умельцы даже громкостью управляли, основываясь на том, что звук включается не ступенькой хевисайдовской, а некоторой гладкой кривой (для простоты брали просто наклонную прямую). И если вырубить динамик до того, как звук достиг максимума, он также плавно пойдет на спад. При удачно подобранных временных задержках вместо меандра получим пилу произвольной громкости и почти произвольной частоты (при увеличении громкости понижается доступная частота).

А по поводу аккорда. При сложении трех функций с периодами (для меандра это как раз и будет частота) f1, f2, f3 получится функция (сложнее меандра) с периодом f1*f2*f3. Вот ее то тебе и надо выводить на динамик. Самому щас выводить лень. Для этого случая можно даже без особых знаний математики с помощью рисунков все нужное найти. Только самому этим заниматься решительно лениво

Только вопрос. Зачем тебе бипер? :-)

> Есть выход достаточно простой - спаять ковокс - ЦАП для
> принтер порта. У меня дома валяяется - могу подарить.
<programming>
[Pascal] Как на паскале запрограммировать аккорд? 20.12.02 15:09  
Автор: VeloCiRaptor Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Sound(x);Delay(y); играют одну ноту в один момент.
Мне надо в один момент играть до четырех нот.
Я пробовал через "моментальное перепрыгивание" с ноты на ноту,
но получается лажа.
А вот досовские геймы отлично утверждают, что аккорды идут не только в потоках и такое как-то да и возможно.
Если кто знает, как это осуществить, напишите.
Буду рад получить даже асм-вставки.
Никак - ([pascal] как на паскале запрограммировать аккорд?) 20.12.02 16:28  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
Sound(x);
Включает генератор меандра, выход которого присоединен к внутреннему динамику.
Delay(y);
Звдержка по времени, аргумент милисекунды.
Есть еще Nosound(); выключение динамика.
Генератор один и умеет он воспроизводить звук только одной частоты.
Это однозначный ответ.
Аккорд можно воспроизвести через звуковую плату, если она есть в компьютере. Только вот программировать ее значительно тяжелее.
Есть еще один выход - вручную дергать динамик, но воспроизвести нормальный звук еще тяжелее, чем через звуковую плату.
Есть выход достаточно простой - спаять ковокс - ЦАП для принтер порта. У меня дома валяяется - могу подарить.
Помню на спектруме этим баловались 20.12.02 17:05  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Sound(x);
> Включает генератор меандра, выход которого присоединен к
> внутреннему динамику.
> Delay(y);
> Звдержка по времени, аргумент милисекунды.
> Есть еще Nosound(); выключение динамика.
> Генератор один и умеет он воспроизводить звук только одной
> частоты.
> Это однозначный ответ.
> Аккорд можно воспроизвести через звуковую плату, если она
> есть в компьютере. Только вот программировать ее
> значительно тяжелее.
> Есть еще один выход - вручную дергать динамик, но
> воспроизвести нормальный звук еще тяжелее, чем через
> звуковую плату.

Да уж. При этом на спекке умельцы даже громкостью управляли, основываясь на том, что звук включается не ступенькой хевисайдовской, а некоторой гладкой кривой (для простоты брали просто наклонную прямую). И если вырубить динамик до того, как звук достиг максимума, он также плавно пойдет на спад. При удачно подобранных временных задержках вместо меандра получим пилу произвольной громкости и почти произвольной частоты (при увеличении громкости понижается доступная частота).

А по поводу аккорда. При сложении трех функций с периодами (для меандра это как раз и будет частота) f1, f2, f3 получится функция (сложнее меандра) с периодом f1*f2*f3. Вот ее то тебе и надо выводить на динамик. Самому щас выводить лень. Для этого случая можно даже без особых знаний математики с помощью рисунков все нужное найти. Только самому этим заниматься решительно лениво

Только вопрос. Зачем тебе бипер? :-)

> Есть выход достаточно простой - спаять ковокс - ЦАП для
> принтер порта. У меня дома валяяется - могу подарить.
Помню был даже third-party аудиодрайвер для Win9x, который выводил звук на спикер… ;-) Хрипел жутко и тормозил систему во время проигрывания ;-) 21.12.02 10:19  
Автор: HandleX <Александр Майборода> Статус: The Elderman
Отредактировано 21.12.02 10:21  Количество правок: 1
<"чистая" ссылка>
[Pascal] А бипер все-таки нужен 21.12.02 12:03  
Автор: VeloCiRaptor Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Паять я ничего не буду, а звук я бы хотел поместить на IBM 80286 без звуковухи. Точно помню что там играло аккорды на бипере(по крайней мере оно так слышалось).
Да и задача интерестная(хотя и не актуальная).
[Pascal] http://www.vcl.ru/html/dos/appar/ch5.htm#ch5_5 — там всё есть. In-line assembler паскаля тоже будет к месту. 22.12.02 22:46  
Автор: HandleX <Александр Майборода> Статус: The Elderman
<"чистая" ссылка>
[Pascal] Ну там асм код мне понятен 23.12.02 17:47  
Автор: VeloCiRaptor Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Единственный вопрос:
Будет ли это пахать под Borland Pascal 7 ?
Так как статья написана для си (об этом мне свидетельствуют инклюды)
А в си я страшный ломак(как не прискорбно).
[Pascal] Под ДОС будет, куда денется... Вообще это ссылка для железячников, и на асме виден принип, какие порты нужно программить и как, чтобы получить звук. Удачи! 24.12.02 07:16  
Автор: HandleX <Александр Майборода> Статус: The Elderman
Отредактировано 24.12.02 12:19  Количество правок: 1
<"чистая" ссылка>
[Pascal] А 61h стандартный регистр? 24.12.02 10:00  
Автор: VeloCiRaptor Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Или мне придется "вымучить" бипер на новый?
Я с асм делал вставки только стандартных, чтоб не только на моей АйБиЭмке работало.
Ну, если сам не хочешь найти ответ на свой вопрос, пусть Билл Гейтс тебе поможет (внутри) ;-))) 05.01.03 05:21  
Автор: HandleX <Александр Майборода> Статус: The Elderman
<"чистая" ссылка>
Открываем менеджер устройств в винде. Находим в системных устройствах эдакую штуку под названием «System Speaker». Открываем вкладку ресурсы... Сморим: I/O Range — 0061-0061. Облегчённо вздыхаем. И программируем, программируем, программируем! ;-)))))))))))))
1






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2019 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach