Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
2 / 1 / 1
Регистрация: 23.11.2017
Сообщений: 100
1

Программирование музыки на QBasic

20.05.2019, 21:45. Показов 2897. Ответов 4

Author24 — интернет-сервис помощи студентам
Давно ищу корректную запись какого-либо выражения или оператора, чтобы запрограммировать музыку в виде аккордов. Т.е. проиграть монофоническую (одноголосную) мелодию особых проблем не вызывает, а полифоническую создать не получается. Уже пробовал оператор MB, но он также считывает ноты подряд. Хотя, может я не так записал...
Кто компетентен в данном вопросе отпишитесь пожалуйста. Буду очень благодарен.
Правда меня терзают смутные сомнения, что QBasic как раз таки и ограничен на монофонии...
И да, если знаете, то как в 80-х писали музыку для игр, скажем, для Марио. Там очень гармоничные аккорды. Хотелось бы узнать какими средствами музыка писалась тогда. Очень уж меня манит к древним, никому не нужным и забытым, компьютерным технологиям. Нравится, не поделаешь ничего...
Спасибо, что уделили внимание данной теме.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2019, 21:45
Ответы с готовыми решениями:

программирование в qbasic
помогите,пожалуйста, вбить программу в qbasic. У меня не выходит. Либо я неправильно ввожу данные,...

Задачи на программирование на языке QBasic
Здравствуйте дорогие форумчане:) Помогите пожалуйста с решением задач: 1) Дан массив А(5). Найти...

Конфигурация системника под программирование и создание музыки(бюджет 35-40)
Доброго времени суток! Прошу оценить сборку компьютера и дать советы для выбора оптимального...

Программирование одномерных массивов. Программирование двумерных массивов. Программирование динамических массивов VBA
1. Написать процедуру по упорядочению элементов заданного массива В в следующем порядке: сначала...

4
1287 / 880 / 254
Регистрация: 30.06.2015
Сообщений: 4,592
Записей в блоге: 51
21.05.2019, 11:01 2
Цитата Сообщение от AlexKreep Посмотреть сообщение
Правда меня терзают смутные сомнения, что QBasic как раз таки и ограничен на монофонии...
Используйте free basic. Там вам и звуковых либ куча и работать будет на соременых ОС.
Цитата Сообщение от AlexKreep Посмотреть сообщение
И да, если знаете, то как в 80-х писали музыку для игр, скажем, для Марио.
Погуглите "трекерная музыка"
1
5001 / 1673 / 409
Регистрация: 25.04.2010
Сообщений: 4,623
Записей в блоге: 2
21.05.2019, 13:33 3
Лучший ответ Сообщение было отмечено AlexKreep как решение

Решение

Цитата Сообщение от 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
5001 / 1673 / 409
Регистрация: 25.04.2010
Сообщений: 4,623
Записей в блоге: 2
21.05.2019, 16:05 5
Цитата Сообщение от AlexKreep Посмотреть сообщение
У меня QBasic не для DOS. Он уже адаптирован для работы на Win7 64x.
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2019, 16:05
Помогаю со студенческими работами здесь

Выбор кафедры в дальнейшей жизни: прикладное программирование VS системное программирование
Сразу извиняюсь что очень не по теме но всё же лучшего форума для этого вопроса я не нашел. Итак я...

Хочу изучать программирование какой язык программирование выбрать ?
Хочу изучать программирование какой язык (С, С++, С# или Delphi) программирование выбрать ? Цель...

Программирование функций, Программирование процедур, рекурсивную подпрограммa
1 (Программирование функций) Вычислить площадь правильного шестиугольника со стороной a, используя...

QBasic
Ссылки удаленыЧитайте правила - https://www.cyberforum.ru/announcement.php?a=3


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru