данные extAudioFile я получаю правильный материал?

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

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

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

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

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


person Corey    schedule 10.09.2010    source источник
comment
В зависимости от того, как звук был преобразован в формат с плавающей запятой, диапазон выборки может отличаться от [-1, 1]. В частности, в OS X звук с плавающей запятой обычно (хотя и не всегда) находится в диапазоне [-1, 1]. Например, при использовании Apple AudioConverter для 16-битного аудио минимальный образец -32768 преобразуется в -1, а максимальный образец 32767 преобразуется в (32767/32768) ≈ 0,999969.   -  person sundsx    schedule 04.04.2013


Ответы (2)


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

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

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

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

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

result = (0.5 * inputSample) + 0.5;

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

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

person justin    schedule 11.09.2010
comment
@Justin - надеюсь, вы не слишком стары, чтобы спрашивать в этой теме, но что делать со значениями с плавающей запятой -1 .. 1? Что они представляют? Не лучше ли преобразовать их все в диапазон 0..1, чтобы нарисовать осциллограмму? У меня есть 2 канала звука и усредненные каналы 1 и 2, поэтому я могу использовать их для рисования формы сигнала, однако я не уверен, что вы имеете в виду, когда значения -1 и 1 представляют один образец при 0 дБ полной шкалы. У меня первые 20 кадров в среднем ниже 0, отрицательные значения. - person sbooth; 13.09.2010
comment
@user773578 user773578 ну, они, вероятно, заслуживают своих вопросов. соответствующее обсуждение: stackoverflow.com/questions/4849076/ короткие ответы: 1) амплитуда выборки ПКМ 2) не обязательно. в моей реализации требуется несколько преобразований, чтобы преобразовать сигнал в форму волны на экране (см. ссылку) 3) если вы подаете аппаратные сэмплы, 0dBFS - это максимальное значение выходного семпла, которое он будет представлять. кроме того, вы обрезаете вывод (значительно упрощенный в вводных терминах). - person user773578; 22.07.2012
comment
это только еще больше меня смущает, так как я не знаю всей истории - person justin; 22.07.2012
comment
@ user773578 хорошо. тема действительно не вписывается в поля комментариев. если поиск не помогает, не стесняйтесь создавать новые вопросы. - person user773578; 22.07.2012
comment
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:2-10: 43.360 EltaudioFilereadtest [71828: A0F] -0.146455
2010-09-10 19: 22: 43.360 EltaudioFilereadtest [71828: A0F] 0,090759
2010-09-10 19: 22: 43.360 EltaudioFilereadtest [71828: A0F] 0.240837 < br> 2010-09-10 19:22:43.360 ExtAudioFileReadTest[71828:a0f] -0.072719
2010-09-10 19:22:43.361 ExtAudioFileReadTest[71828:a0f] -0.258782
2010-09 9 :22:43.361 ExtAudioFileReadTest[71828:a0f] -0,063972
10 сентября 2010 г. 19:22:43.361 ExtAudioFileReadTest[71828:a0f] 0,088692
10 сентября 2010 г. 19:22:43.361leExtAudioFileReadTest[71828:a0f] ] 0.153571
10.09.2010 19:22:43.361 ExtAudioFileReadTest[71828:a0f] 0.080644
10.09.2010 19:22:43.383 ExtAudioFileReadTest[71828:0-09f] -0.087060 10 19:22:43.383 ExtAudioFileReadTest[71828:a0f] 0.196455
10.09.2010 19:22:43.383 ExtAudioFileReadTest[71828:a0f] 0.167777
10.09.2010 19:23:4 ExtA udioFileReadTest[71828:a0f] -0,192430
10 сентября 2010 г. 19:22:43.383 ExtAudioFileReadTest[71828:a0f] -0,209936
10 сентября 2010 г. 19:22:43.383 ExtAudioFileReadTest:204. br> 2010-09-10 19:22:43.383 ExtAudioFileReadTest[71828:a0f] 0.110493
2010-09-10 19:22:43.384 ExtAudioFileReadTest[71828:a0f] 0.150715
2-09-10:2010 : 43.384 EltaudioFilereadtest [71828: A0F] 0.016413
2010-09-10 19: 22:23-09-10 19: 22: 43.384 EltaudioFilereadtest [71828: A0F] -0.056843
2010-09-10 19: 22: 43.384 EltaudioFilereadtest [71828: A0F] 0.206117
10.09.2010 19:22:43.384 ExtAudioFileReadTest[71828:a0f] 0.020673
10.09.2010 19:22:43.384 ExtAudioFileReadTest[71828:a0f] -0.561129
09.09.2010 :22:43.384 ExtAudioFileReadTest[71828:a0f] -0,184265
10 сентября 2010 г. 19:22:43.384 ExtAudioFileReadTest[71828:a0f] 0,620910
10 сентября 2010 г. 19:22:43.38 ExtAudioFileReadTest[71828:a0f] ] 0,309018
10 сентября 2010 г. 19:22:43,385 ExtAudioFileReadTest[71828:a0f] -0,371634
10 сентября 2010 г. 19:22:43,385 -0.238362
10.09.2010 19:22:43.385 ExtAudioFileReadTest[71828:a0f] 0.125136
10.09.2010 19:22:43.385 ExtAudioFileReadTest[71828:a0f] 0-9-9000
19:22:43.385 ExtAudioFileReadTest[71828:a0f] -0,023419
10 сентября 2010 г. 19:22:43.385 ExtAudioFileReadTest[71828:a0f] -0,142903
10 сентября 2010 г. 19:22:43.385 ExtAudioFileReadTest[71828:a0f] -0,142903
10 сентября 2010 г. :a0f] 0.041068
10-09-2010 19:22:43.386 ExtAudioFileReadTest[71828:a0f] 0.252621
10-09-2010 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
0.105053
10 19: 22: 43.386 EltaudioFilereadtest [71828: A0F] 0.072798
2010-09-10 19: 22: 43.386 EltaudioFilereadtest [71828: A0F] 0.141572
2010-09-10 19: 22: 43.386 EltaudioFilereadtest [71828: a0f] 0,110190
- person justin; 23.07.2012

Привет, Кори, вы сделали один шаг вперед, чтобы я уважал то, чего я хотел бы достичь в своем проекте: можете ли вы поделиться кодом, который выводит плавающее значение ExtAudioFileReadTest? Благодарность

person Corey    schedule 10.09.2010