Quote:
Проблема в том, что паузы для нот нужно заполнять полезными действиями движка, например, отрисовкой графики. Если ноты будут иметь очень широкий диапазон, то нужно будет придумывать дополнительные методы синхронизации, чтобы не было сильной зависимости между музыкой и быстротой игрового процесса. Не скажу, что это не возможно, но трудновато.
Возможно как минимум 2 подхода и я не совсем понял, о каком из них идет речь:
1. Простой вариант - ноты коротенькие, паузы между нотами заполнены полезными действиями (рисуем на экране и т.п.), желательно чтобы паузы были небольшие, чем меньше тем лучше. Скорее всего паузы между нотами не удастся сделать совсем маленькими и музыка будет отрывистой, типа как в jet set и подобных. Зато при этом используются стандартные звуковые процедуры.
2. Сложный вариант - разделяем задание периода колебаний и их длительности на 2 части - постоянную, в которую можем делать какие-то полезные действия (опять же рисовать и т.п.) и довесок, который будет подстраивать период по конкретную ноту. Fine Tuned Beep как раз несложно переделать в такой вариант, но в целом такой подход слишком сложен.
UPD: Вот еще вариант:
3. Можно играть не отдельные ноты а "звуковой файл". Либо клипировать wav до 1 бита, и выдавать эти биты через равные промежутки в бипер или даже использовать ШИМ. Плюс этих подходов в том, что легче добиться равномерного хода игрового процесса. Минус огромный - нужна куча памяти. На Львове, насколько помню, есть пример воспроизведения музыки на заставке в таком варианте - то ли ROCKMAN то ли ROCKчто-то. Там вроде 16 Кб или больше ушло под короткий фрагмент.