Russian Qt Forum

Qt => Мультимедиа => Тема начата: Yegor от Июль 26, 2013, 20:30



Название: Осциллограмма звука
Отправлено: Yegor от Июль 26, 2013, 20:30
Здравствуйте!

У меня есть задача нарисовать осциллограмму звука.
За основу буру пример который находится в examples\multimedia\audioinput.
Там в AudioInfo::writeData получаю сырые байты звука, и сохраняются они по очереди через переменную value.
Я все эти байты складываю в массив.

А теперь как эту звуковую волну из массива нарисовать? И что представляют собой эти сырые байты звука?


Название: Re: Осциллограмма звука
Отправлено: Akon от Июль 27, 2013, 02:35
Вот прямо сейчас звуковую волну и рисую. Вот так, например, выглядит счет 1-2-3. Прикольно, задача обработки звука может превратиться в задачу обработки изображения.

По делу: байты есть значение напряжения сигнала в моменты дискретизации. Например, PCM 8 бит:
мин. значение 0, нулевое 128, макс. - 255. PCM 16 бит имеет другую раскладку.

Вот пара функций для PCM формата, возвращающие знаковые значения отсчетов:
Код:
	static int sampleSignedValue(char value) { return (unsigned char)(value) - 0x80; }
static int sampleSignedValue(short value) { return value; }