Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
Я портирую игру 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 Qbasic и конвертирования этого в какой-нибудь формат с последующим воспроизведением на AY.

Какой целевой язык? Допускается ли реализация функции "Play" на ассемблере?
Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
Для SDL-версии игры я вырезал эти звуки прямо из DosBox (Ctrl+F6 и потом - звук в wav-формате в папке DOSBox\capture). Но у меня не получается вырезать звук без пауз в начале и конце (не получается вырезать паузы до микросекунд с точностью)
А вот это непонятно. Любой звуковой редактор должен решать эту проблему при условии, что из DosBox получается нормальный wav. Никаких форматов mp3 - компрессия должна выполняться после, а не до обработки.

Микросекундная точность для звука - это в принципе недостижимо, т.к. на частоте дискретизации 44100Гц промежуток времени между соседними отсчетами составляет ~23мкс. Кроме того, человек даже такую задержку не заметит на слух. Задержки в 20-50 миллисекунд (это в 1000 раз больше, чем микросекунды) на слух никак не будут восприняты. Когда я совмещал видеоряд и звук в тех случаях, когда синхронизация между ними была нарушена, точности даже в 100мс (1мс=1000мкс) хватало, и разницы никак не было заметно.
Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
Усложним вопрос. Какой библиотекой можно генерировать AY-подобные звуки для Windows/Linux (SDL)?
Я бы делал свою, основанную на эмуляции AY или Atari Pokey (как автор mzpokeysnd.c я бы скорее всего выбрал второй вариант). Дело в том, что генерация прямоугольных звуковых сигналов - это нетривиальная задача. Чтобы обеспечить высокое качество звука, необходимо привлекать цифровые фильтры и некоторые особые, нестандартные их реализации.