Войти
ПрограммированиеФорумЗвук

[OpenAL] Массив отсчёта сигнала

#0
0:47, 25 окт. 2011

Доброго времени суток.

Помогите, пожалуйста, через OAL получить массив отсчёта сигнала...


#1
10:32, 25 окт. 2011

что такое отсчёт сигнала?

#2
10:33, 25 окт. 2011

kolobokspb
> что такое отсчёт сигнала?

что такое сигнал ? :)

#3
15:06, 25 окт. 2011

Я предположил, что OAL хранит нужную мне информацию в массиве, мог ошибиться)


Я использую ALut:
alutLoadWAVFile(ИМЯФайла, ...)

Мне нужно теперь, помимо воспроизведения, получить звук в числовом представлении. Например, я хочу сделать подобие игры Аудиосёрф... С фильтрами низких/высоких частот пока не заморачиваюсь просто хочу иметь все данные, с ними я смогу построить график...

#4
16:13, 25 окт. 2011

DungeonLords
Ну, формат WAV файла очень простой (если без сжатия, обычный PCM). Прочитать вручную не составит труда.

#5
21:22, 26 окт. 2011

Blew_zc
> Ну, формат WAV файла очень простой (если без сжатия, обычный PCM). Прочитать
> вручную не составит труда.
Мне хотелось бы всё же использовать какой-нибудь готовый интерфейс для чтения данных, ведь в планах использовать и mp3, и ogg, и ape. Кстати, очень смущает, что во всех тех русскоязычных статьях, где описан WAV, замалчивается его 24 битное представление. У меня есть 24 битные треки, но какой формат выбрать для их хранения?

P.S. Delphi xe

#6
22:13, 26 окт. 2011

DungeonLords
Для этого не нужно OAL, достаточно прочитать WAV-файл, там простой формат. Другие форматы так же преобразуются в "чисто числовой формат" перед отправкой в звуковое железо. Достаточно сделать интерфейс и реализации для множества форматов. Для готового - см. в сторону FMOD, там вроде бы была возомжность получать "готовое" представление звука, смотрел последний раз примерно 3-4 года назад.

#7
1:10, 27 окт. 2011

Простой, простой... Коллеги, пожалуйста, не лейте воду.

Если вы утверждаете, что сделать анализатор WAV так просто, то вопрос: как его сделать... Гугли на тему, нашёл мало тру инфы... В итоге по табличке начал писать прогу, написал:

procedure TForm1.Button1Click(Sender: TObject);
var byteArray:array [0..3] of Integer;
{Для начала прочитать заголовок}
count : Integer;
begin
Assignfile(F, 'C:\Users\Forcer\Desktop\Анализ аудио\In Delphi\Debug\Win32\TestSound.wav');
Reset(F,4);
BlockRead(F, byteArray, 4, count);

CloseFile(f);
end;
Самый поверхностный вопрос, как преобразовать элементы byteArray в строку? Чтобы сверить if byteArray = 'RIFF'

p.s. Delphi xe

#8
12:08, 27 окт. 2011

DungeonLords
> byteArray в строку
SetString

Правка:
Почему var byteArray:array [0..3] of Integer; ?

ПрограммированиеФорумЗвук

Тема в архиве.