Можно ли (и как) определить порядковый номер аудиофайла AIFF?

Я работаю с Audio Importer в JAVA (используется в барабанном секвенсоре), и у меня возникла следующая проблема с импортом файлов AIFF:

У меня есть 2 файла AIFF одного типа (24 бит, 44100 кГц, моно), один создается на Mac, другой - с помощью wavelab на компьютере с Windows. Оба файла несжатые PCM, оба формата FORM == AIFF.

AIFF от Mac - BigEndian (как и должно быть), AIFF от Wavelab (windows) - LittleEndian.

Оба файла могут правильно воспроизводиться в Wavelab (Windows), а также в Quicktime (Windows). Как эти инструменты могут определить порядок этих файлов? В любом случае это должно быть возможно, иначе хотя бы один из файлов будет звучать как шум (это то, что происходит в моем приложении).

Есть ли какая-то скрытая информация в заголовке файла или какой-либо другой способ определения порядка следования файла AIFF? Какие-либо предложения?

большое спасибо

1 ответ

Решение

Быстрый поиск в Google говорит, что файлы AIFF имеют большой порядок байтов.

Однако, согласно Википедии, существует другой формат, называемый AIFF-C, который сжимает данные. В наши дни Apple использует метод с прямым порядком байтов и создал поддельный метод сжатия с именем sowt, который по сути означает "без сжатия, но с прямым порядком байтов". Возможно, вам придется проверить это.

Кроме того, обычный AIFF не предоставляет возможности проверки порядка байтов. Стандартный AIFF, закодированный в порядке с прямым порядком байтов, кажется, нарушает спецификацию.

Другие вопросы по тегам