2 / 1 / 1
Регистрация: 23.11.2017
Сообщений: 100
|
|
1 | |
Программирование музыки на QBasic20.05.2019, 21:45. Показов 2897. Ответов 4
Давно ищу корректную запись какого-либо выражения или оператора, чтобы запрограммировать музыку в виде аккордов. Т.е. проиграть монофоническую (одноголосную) мелодию особых проблем не вызывает, а полифоническую создать не получается. Уже пробовал оператор MB, но он также считывает ноты подряд. Хотя, может я не так записал...
Кто компетентен в данном вопросе отпишитесь пожалуйста. Буду очень благодарен. Правда меня терзают смутные сомнения, что QBasic как раз таки и ограничен на монофонии... И да, если знаете, то как в 80-х писали музыку для игр, скажем, для Марио. Там очень гармоничные аккорды. Хотелось бы узнать какими средствами музыка писалась тогда. Очень уж меня манит к древним, никому не нужным и забытым, компьютерным технологиям. Нравится, не поделаешь ничего... Спасибо, что уделили внимание данной теме.
0
|
20.05.2019, 21:45 | |
Ответы с готовыми решениями:
4
программирование в qbasic Задачи на программирование на языке QBasic Конфигурация системника под программирование и создание музыки(бюджет 35-40) Программирование одномерных массивов. Программирование двумерных массивов. Программирование динамических массивов VBA |
21.05.2019, 13:33 | 3 |
Сообщение было отмечено AlexKreep как решение
Решение
Под DOS на QB одним оператором вы этого точно не добьётесь.
Самое простое это Adlib, чтобы им воспользоваться придётся изучить его регистры и теорию синтеза звука. Это не даст возможность воспроизвести цифровой звук, но полифония для муз. целей в том или ином виде будет. Далее идёт Sound Blaster DSP, 8 бит реализуется относительно несложно, SB DSP реализуется через перехват таймера, требует настройки размера буфера на каждой машине индивидуально. Далее идёт SB Pro, работает через DMA, далее SB 16 - через 2 DMA, требует проверки возможности инициализации DMA каналов, что требует знания об Interrupt Akknowledge порте (нужно всё это инициализировать и прогнать по возможным DMA, при этом возможно зависание и нужно учитывать ребуты). Это много времени и написание своего микшера конечно же. Всё это можно подглядеть в библиотеке Ивана Бродского на TurboPascal, лучше источник найти сложно. Adlib можете подсмотреть у бисквита, а также в Паскалевском SWAG-е, если кто-нибудь конечно ещё знает что это такое. Ещё можно выводить примерно 8-10 битный звук со SPEAKER-a через ШИМ(либо перепрограммирование таймера, либо только передний план и отключение прерываний). А также в своё время был популярен COVOX на LPT, кодится очень просто, но опять же передний план. Если вы пишете музыку на секвенсорах, то рекомендовал бы работать через простейший формат *.WAV, даунгрейд стилистику при этом можно сэмулировать соответствующими плагинами чипов YM: https://www.youtube.com/watch?v=Wyp2ueTSxrY Таким образом можно писать проги под Windows например на PureBasic или FreeBasic. У первого есть нормальные встроенные средства. Ко второму можно припаять несколько библиотек: - FBSound - Squall Можно использовать любой другой BASIC и написать простой микшер самостоятельно через MME, для этого потребуется изучить стек сообщений Windows, потоки и спецификацию WinAPI для Multimedia(MME). На вашем месте с DOS бы возиться не стал, потеряете кучу времени с сомнительным результатом. Взять FreeBasic и FBSound - довольно простой вариант для любителя, но не агитирую, можно брать любое рабочее на любом ЯП.
1
|
2 / 1 / 1
Регистрация: 23.11.2017
Сообщений: 100
|
|
21.05.2019, 15:44 [ТС] | 4 |
У меня QBasic не для DOS. Он уже адаптирован для работы на Win7 64x.
0
|
21.05.2019, 16:05 | 5 |
QBasic'а не для DOS не бывает. Сформулируйте какой у вас компилятор.
Если QB64 то он имеет функционал для работы со звуком, уже упоминал про это: https://qb64.org/wiki/SNDOPEN Литература по теме в целом: Sound Blaster: http://homepages.cae.wisc.edu/... 16doc.html Adlib: http://pmg.org.ru/gamedev/adlib.htm MME: https://docs.microsoft.com/ru-... -reference DirectSound: http://www.codenet.ru/progr/directx/dxsound.php
1
|
21.05.2019, 16:05 | |
21.05.2019, 16:05 | |
Помогаю со студенческими работами здесь
5
Выбор кафедры в дальнейшей жизни: прикладное программирование VS системное программирование Хочу изучать программирование какой язык программирование выбрать ? Программирование функций, Программирование процедур, рекурсивную подпрограммa QBasic Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |