Я пытаюсь воспроизвести некоторые образцы данных с помощью новых звуковых возможностей Flash Player в режиме реального времени. Я начал с примера, приведенного внизу этой страницы о liveocs, которая, кажется, работает хорошо и играет кристально чистый тон.
Я предполагаю, что два writeFloat
в примере записывают в левый и правый аудиоканалы соответственно и что записываемые данные являются 32-битными (из-за числа с плавающей запятой).
Тем не менее. Кажется, у меня возникают проблемы с преобразованием моих старых 8-битных аудиоданных в формат, понятный для этого интерфейса. При воспроизведении данных семпла я смутно слышу ожидаемый звук, но он сильно искажен. Мои данные сэмплов состоят из необработанных 8-битных сэмплов, которые варьируются от 0..255, где 127 - тишина.
Я пробовал разные формулы преобразования, но мне кажется, что мне не хватает важной информации об этом преобразовании.
Любая помощь с благодарностью.
UPDATE
Правильная формула оказывается:
f = (sample.data.readByte() - 127) / 255