AudioKit - Отрисовка полной формы сигнала из файла

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

Любая помощь будет принята с благодарностью. Даже просто указатель на какой объект я должен посмотреть.


person kernelpanic    schedule 09.10.2017    source источник


Ответы (2)


Вы также можете использовать класс Objective C EZAudioPlot, который находится в AudioKitUI:

let file = EZAudioFile(url: url)
guard let data = file?.getWaveformData() else { return }

let waveform = EZAudioPlot()
addSubview( waveform )
waveform.frame = NSMakeRect(0, 0, 200, 20)
waveform.plotType = EZPlotType.buffer
waveform.shouldFill = true
waveform.shouldMirror = true
waveform.color = NSColor.black
waveform.updateBuffer( data.buffers[0], withBufferSize: data.bufferSize )

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

person Ryan Francesconi    schedule 14.11.2017

здесь есть форма волны, нарисованная в примере игровой площадки для таблиц: http://audiokit.io/playgrounds/Basics/Tables/

В основном:

let file = try AKAudioFile(readFileName: "drumloop.wav")
let fileTable = AKTable(file: file)
...UI set up...
addView(AKTableView(fileTable))
person Aurelius Prochazka    schedule 09.10.2017
comment
каково правильное поведение здесь для двухканального файла? Я заметил, что реализация AKTable захватывает данные только из первого канала. - person hhanesand; 12.10.2017
comment
@hhanesand Вам нужно будет выполнить некоторую предварительную обработку данных файла, чтобы получить два набора данных для каждого канала или суммировать каналы. Целью будет массив чисел с плавающей запятой, которые вы можете загрузить в таблицу для просмотра. Было бы хорошим дополнением к AudioKit, чтобы по умолчанию отображать сумму и иметь определенные параметры представления канала. - person Aurelius Prochazka; 12.10.2017
comment
Не удалось заставить AKTableView работать. Однако EZAudioPlot работает хорошо. - person Alex Chase; 24.03.2018
comment
Привет, что, если я хочу использовать NSData вместо URL-адреса в качестве источника, это возможно? Спасибо! - person Cleversou; 27.02.2020
comment
@Cleversou, если бы я был на вашем месте, я бы записал данные в файл, а затем использовал URL-адрес этого файла. - person James Wolfe; 03.11.2020