Звуковое программирование старой школы на Python

Давным-давно в далекой галактике существовали микрокомпьютеры, работающие на Бейсике и имеющие простые звуковые команды, которые заставляли машину издавать звуковые сигналы и шипеть всевозможными странными и чудесными способами.

Помимо того, что он издавал отличные звуки, он также был очень полезен в качестве инструмента обучения, потому что вы могли слышать результаты своего кода.

Я хотел бы иметь звуковую функциональность таких машин, как BBC Micro с ее командой «конверт», но без использования эмулятора и изучения или повторного изучения всех особенностей различных диалектов Бейсика.

Я также хотел бы избежать необходимости создавать файлы midi или wav, но хотел бы создавать звуки непосредственно с кодом. Я пробовал winsound.Beep, но примерно через 4 ноты время между нотами кажется случайным, а также функциональность ничто по сравнению даже с чем-то вроде спектра ZX.

Кто-нибудь знает, как это сделать с Python?


person Robin Andrews    schedule 28.08.2015    source источник
comment
Вы пытались использовать escape-код системного звонка (хотя он имеет только один тон)?   -  person muddyfish    schedule 28.08.2015
comment
Этот предыдущий вопрос похож на то, что вы имеете в виду? stackoverflow.com/q/956720/5066845   -  person Steven Correia    schedule 28.08.2015
comment
Системный звонок кажется самой сутью монотонности, разве он не может как-то изменить высоту звука?   -  person Robin Andrews    schedule 28.08.2015
comment
По ссылке Скоррейя, к сожалению, это не то, что мне нужно. Я хочу избежать чтения/записи файлов и создавать интересные звуки непосредственно из работающего кода.   -  person Robin Andrews    schedule 28.08.2015
comment
Хотя он только одноканальный, winsound.Beep ДОЛЖЕН делать свое дело, но при воспроизведении последовательности нот синхронизация отключена, и ноты пропускаются по-разному каждый раз при запуске одного и того же кода. Кто-нибудь знает, как это исправить? На данный момент мне ближе всего пикнон, найденный на этой странице: pedrokroger.net/pascals-triangle- звук   -  person Robin Andrews    schedule 28.08.2015


Ответы (2)


Я думаю, что пакет audiop наиболее близок к тому, что вы собираетесь получить в python у вас было в старые добрые времена. Это довольно низкий уровень, но в этом суть. Вы можете использовать это как строительные блоки для создания своей собственной библиотеки ретро-звуков.

person ThatAintWorking    schedule 31.08.2015
comment
Звучит неплохо, хотя я надеялся, что звук поможет мне выучить Python, а также развлечься. Похоже, веселья придется подождать, если только кто-то еще не проделал эту работу. Кто-то на моем МООК добился хороших результатов: codeskulptor.org/#user40_PTiKkUrfBd8jmqn.py< /а> - person Robin Andrews; 02.09.2015
comment
Выучить язык Python можно за день. Самое интересное — это изучение библиотек, таких как эта. - person ThatAintWorking; 02.09.2015

Я написал Введение в Python и NumPy где вы научитесь создавать синусоидальный тон и воспроизводить его непосредственно с помощью Python.

Это не очень красиво, но, вероятно, это поможет вам начать.

person Matthias    schedule 16.09.2015