данные extAudioFile ... я получаю правильные вещи? - PullRequest
1 голос
/ 11 сентября 2010

Я использую приложение EXTAudioFileReadTest, представленное в документации Core Audio SDK, и пытаюсь получить все значения с плавающей запятой из буфера mData, чтобы можно было рисовать с ними осциллограмму.

В настоящее времяЯ печатаю значения с плавающей запятой для одного канала, и это то, что я получаю в консоли:

2010-09-10 19: 22: 43.360 ExtAudioFileReadTest [71828: a0f] 0.127136
2010-09-10 19: 22: 43.360 ExtAudioFileReadTest [71828: a0f] -0.057033
2010-09-10 19: 22: 43.360 ExtAudioFileReadTest [71828: a0f] -0.146455
2010-09-10 19:22: 43.360 ExtAudioFileReadTest [71828: a0f] 0.090759
2010-09-10 19: 22: 43.360 ExtAudioFileReadTest [71828: a0f] 0.240837
2010-09-10 19: 22: 43.360 ExtAudioFileReadTest [71828 - a]0.072719
2010-09-10 19: 22: 43.361 ExtAudioFileReadTest [71828: a0f] -0.258782
2010-09-10 19: 22: 43.361 ExtAudioFileReadTest [71828: a0f] -0.063972
2010-09-10 19: 22: 43.361 ExtAudioFileReadTest [71828: a0f] 0.088692
2010-09-10 19: 22: 43.361 ExtAudioFileReadTest [71828: a0f] 0.153571
2010-09-10 19: 22: 43.361 ExtAudioFileReadTest [71828: a0f] 0.080644
2010-09-10 19: 22: 43.383 ExtAudioFileReadTest [71828: a0f] -0.087060
2010-09-10 19: 22: 43.383 ExtAudioFileReadTest [71828: a0f] 0.196455
2010-09-10 19: 22: 43.383 ExtAudioFileReadTest [71828: a0f] 0.167777
2010-09-10 19: 22: 43.383 ExtAudioFileReadTest [71828: a0f] -0.192430
2010-09-10 19: 22: 43.383 ExtAudioFileReadTest [71828: a0f] -0.209936
2010-09-10 19:22:43.383 ExtAudioFileReadTest [71828: a0f] 0.012049
2010-09-10 19: 22: 43.383 ExtAudioFileReadTest [71828: a0f] 0.110493
2010-09-10 19: 22: 43.384 ExtAudioFileReadTest [71828: a0f 10,10 10 0,10] 0,10* 2010-09-10 19: 22: 43.384 ExtAudioFileReadTest [71828: a0f] 0.016413
2010-09-10 19: 22: 43.384 ExtAudioFileReadTest [71828: a0f] -0.056843
2010-09-10 19:22: 43.384 ExtAudioFileReadTest [71828: a0f] 0.206117
2010-09-10 19: 22: 43.384 ExtAudioFileReadTest [71828: a0f] 0.020673
2010-09-10 19: 22: 43.384 ExtAudioFileReadTest [71828: a0f] -0.561129
2010-09-10 19: 22: 43.384 ExtAudioFileReadTest [71828: a0f] -0.184265
2010-09-10 19: 22: 43.384 ExtAudioFileReadTest[71828: a0f] 0.620910
2010-09-10 19: 22: 43.385 ExtAudioFileReadTest [71828: a0f] 0.309018
2010-09-10 19: 22: 43.385 ExtAudioFileReadTest [71828: a0f] -0.371634
2010-09-10 19: 22: 43.385 ExtAudioFileReadTest [71828: a0f] -0.238362
2010-09-10 19: 22: 43.385 ExtAudioFileReadTest [71828: a0f] 0.125136
2010-09-10 19:22:43.385 ExtAudioFileReadTest [71828: a0f] 0.139757
2010-09-10 19: 22: 43.385 ExtAudioFileReadTest [71828: a0f] -0.023419
2010-09-10 19: 22: 43.385 ExtAudioFileReadTest [71828042: 0f]
2010-09-10 19: 22: 43.385 ExtAudioFileReadTest [71828: a0f] 0.041068
2010-09-10 19: 22: 43.386 ExtAudioFileReadTest [71828: a0f] 0.252621
2010-09-10 19:22: 43.386 ExtAudioFileReadTest [71828: a0f] -0.002240
2010-09-10 19: 22: 43.386 ExtAudioFileReadTest [71828: a0f] -0.261686
2010-09-10 19: 22: 43.386 ExtAudioFileReadTest [71828: a0f] -0.105053
2010-09-10 19: 22: 43.386 ExtAudioFileReadTest [71828: a0f] 0.072798
2010-09-10 19: 22: 43.386 ExtAudioFileReadTest[71828: a0f] 0.141572
2010-09-10 19: 22: 43.386 ExtAudioFileReadTest [71828: a0f] 0.110190

Полагаю, я в замешательстве .... Как я ожидал найтинекоторый тип выборки напряжения, а не число от -1 до 1. Что на самом деле означают эти значения?Что было бы хорошей формулой для преобразования этих значений в некоторый верхний / нижний предел, который будет между 0 и 1?

Заранее спасибо.Я искал повсюду и не могу найти эту информацию нигде ... особенно в документации.

Ответы [ 2 ]

2 голосов
/ 11 сентября 2010

это нормально.

общее представление с плавающей запятой сэмплов звука, модулированных из [-1 ... 1];где значения -1 и 1 представляют одну выборку при 0 дБFS.

непрерывный поток значений с плавающей запятой '0.0' представляет тихий сигнал.

сигнал без смещения постоянного тока будет иметь равныйвес в положительном и отрицательном доменах.

, если вы хотите преобразовать эти значения в [0 ... 1], используйте формулу:

result = (0.5 * inputSample) + 0.5;

, но вам, возможно, придетсяиспользуйте более сложный алгоритм, если сигнал выходит за пределы [-1 ... 1].

в большинстве случаев вы должны держать его в [-1 ... 1], если хотите сохранить его с плавающей запятой.

0 голосов
/ 11 сентября 2010

Я думаю, я понял это.Я только что изобразил эти моменты в Excel, и это похоже на форму волны.Я не осознавал, что это тоже дает отрицательные напряжения ... но это имеет смысл.

...