Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | |
Помню был даже third-party аудиодрайвер для Win9x, который выводил звук на спикер… ;-) Хрипел жутко и тормозил систему во время проигрывания ;-) 21.12.02 10:19 Число просмотров: 2088
Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 21.12.02 10:21 Количество правок: 1
|
|
<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. Облегчённо вздыхаем. И программируем, программируем, программируем! ;-)))))))))))))
|
|
|