У меня есть приложение Python, над которым я работаю, которое генерирует музыку в режиме реального времени из партитур композиторов.Это работает, смешивая образцы в соответствии с правилами, написанными композитором, вводя элементы случайности.
Важно, что все это происходит в режиме реального времени.Файлы WAV / OGG / MP3 не создаются.
Во время разработки я использовал PyGame и PyDub для создания музыки, смешивая 24 канала аудиосэмплов в один выход.Вывод во время разработки воспроизводился через Pygame Mixer прямо на аудиоустройстве по умолчанию, поэтому я слушал музыку на наушниках по мере разработки.
Теперь, однако, я хочу поместить все это в онлайн-приложениеи подавать аудио через Интернет.Когда пользователь попадает на домашнюю страницу, я хочу, чтобы он слышал музыку, передаваемую на его машину.
Вопрос: как лучше это сделать?
Во время разработки я предполагал, что наВ последнюю минуту я мог заменить свое аудиоустройство чем-то, что принимало поток аудиосигнала, подаваемый на него, и перенаправляло его на порт или что-то подобное, чтобы в встроенную на домашнюю страницу проигрыватель мог указывать этот порт и воспроизводить звук, исходящий с него.
Однако теперь, когда я дошел до этого момента, меня начинает осознавать, что я так и не понял, как работает звук, когда он подается таким образом.
Как упоминалось ранее, нет возможности экспортировать файл и затем указывать плеер на URL - музыка потенциально бесконечна.
Есть какие-нибудь подсказки?Я много искал через Google, но все, что я получил, это, например, кусочки об использовании «аудиосервера» для доставки mp3-файлов.Я чувствую, что просто неправильно понимаю основные понятия здесь и не задаю правильные вопросы.
В своих снах я просто добавляю что-то подобное в мой код:
- install snappy_library.py, который создает виртуальный аудиодрайвер.
- говорит snappy_library перенаправлять любыеАудио отправлено в PORT nnnn
- , скажите Pygame использовать snappy_library в качестве аудиоустройства.
- retire
Заранее благодарим за любые указатели / настройки контекста / примеры.