2016-07-04 3 views
4

У меня есть приложение для обработки сигналов на основе API для веб-аудио, и я должен перенести его в iOS с помощью системы AudioKit (на основе EZAudio).iOS Значения AudioKit/EZAudio FFT

Мне нужен только FrequencyDomain, который содержит числа между 0-255 в API веб-аудио.

Но в AudioKit AKFFTTap fftData дает мне обратно поплавки от -6 до 6, а иногда < 1000.

Вот что я уже пробовал на КСН:

процесс инициализации ...

let mic = AKMicrophone() 
let fftTap = AKFFTTap.init(mic) 

запрос ...

return fftTap.fftData 

на веб ауд IO API: INIT ...

var analyser = audioContext.createAnalyser(); 

запрос ...

let freqDomain = new Uint8Array(analyser.frequencyBinCount); 
analyser.getByteFrequencyData(freqDomain); 
return freqDomain 

Как я могу получить обратно те же данные?

ответ

3

В вашей сети есть две вещи, которые отличаются от AKFFTap ... Во-первых, он возвращает массив размером 256. Вероятно, это означает, что захваченный bufferSize имеет 512 выборок. Вы можете решить эту проблему с помощью этого пользовательского AKFFTTap:

https://gist.github.com/denisb411/3e832a592ff8b79cca2afdbed432a0d0

Во-вторых, кажется, что так, что WebAudio читает бинарный файл образцов различны. Я предлагаю вам использовать Float32 в Интернете, поскольку AudioKit использует этот формат. Ссылка для this для получения дополнительной информации.

Смежные вопросы