Цитата Сообщение от Alex Rider Посмотреть сообщение
Я почитал код Play'а, и теперь уверенно могу присоединиться к тем, кто отговаривает Олега его использовать.
Господа, спасибо за активное обсуждение. Уточню задачу. Я портирую игру Dark Woods с QuickBasic 4.5 для DOS. Всего в игре 7 звуковых схем:

Код:
' QB4.5
PLAY "o0l50c"
PLAY "MBo4l64fgbbcc"
PLAY "MBo5l64cdefgabo6l64cdefgab"
PLAY "MBo0l64bagfedc"
PLAY "MBo3l64cdefgbg"
PLAY "MBo1l64cdefgabo2cdefgabo3cdefgabo4cdefgabo5l5cl20cco4l8bagbl5a"
PLAY "MBo0l15ffgfg+fg+a"
Стоит задача с минимальной сложностью, но с максимальной точностью воспроизвести подобие этих звуков на AY. Соответственно по аналогии я вспомнил про PLAY из Basic128. Полагаю, блокируемость звуков в проигрывателе ПЗУ не станет серьёзным препятствием. Ведь там скорее всего используется банальная задержка. Переписать это на прерывания, да и всё.

Для SDL-версии игры я вырезал эти звуки прямо из DosBox (Ctrl+F6 и потом - звук в wav-формате в папке DOSBox\capture). Но у меня не получается вырезать звук без пауз в начале и конце (не получается вырезать паузы до микросекунд с точностью), а даже маленькая пауза уже портит картинку игры со звуком. Есть программы для обработки звуков, которые сами ищут паузы (например, mp3DirectCut), но они заточены всё-таки не для этого.

Усложним вопрос. Какой библиотекой можно генерировать AY-подобные звуки для Windows/Linux (SDL)? Сейчас для вывода wav использую SDL_mixer.dll

Обидно, что код самой игры без UPX'а весит 30 кб, а с SDL_mixer и wav'ками получается около 500 кб.