Как я визуализирую аудиоданные?

Мне бы очень хотелось знать, что вы можете использовать Ctrl C вместо Esc для выхода из режима вставки. Для меня это было настоящим повышением производительности.

11
задан Glorfindel 24 March 2019 в 08:59
поделиться

2 ответа

Скорее всего, у вас будет более 1 отсчета для каждого пикселя. Для каждой группы образцов, сопоставленной с одним пикселем, вы можете нарисовать (вертикальный) отрезок линии от минимального значения в группе образцов до максимального значения. Поскольку DrawLine не может нарисовать один пиксель, возникает небольшая проблема, когда минимальное и максимальное значения совпадают. В этом случае вы можете скопировать однопиксельное изображение в желаемую позицию, как в приведенном ниже коде:

double samplesPerPixel = (double)L / _width;
double firstSample = 0;
int endSample = firstSample + L - 1;
for (short pixel = 0; pixel < _width; pixel++)
{
    int lastSample = __min(endSample, (int)(firstSample + samplesPerPixel));
    double Y = _data[channel][(int)firstSample];
    double minY = Y;
    double maxY = Y;
    for (int sample = (int)firstSample + 1; sample <= lastSample; sample++)
    {
        Y = _data[channel][sample];
        minY = __min(Y, minY);
        maxY = __max(Y, maxY);
    }
    x = pixel + _offsetx;
    y1 = Value2Pixel(minY);
    y2 = Value2Pixel(maxY);
    if (y1 == y2)
    {
        g->DrawImageUnscaled(bm, x, y1);
    }
    else
    {
        g->DrawLine(pen, x, y1, x, y2);
    }
    firstSample += samplesPerPixel;
}

Обратите внимание, что Value2Pixel масштабирует значение выборки до значения пикселя (в направлении y).

2
ответ дан 3 December 2019 в 12:17
поделиться

Возможно, вы захотите изучить R язык для этого. У меня нет большого опыта с этим, но он в основном используется в сценариях статистического анализа / визуализации. Я был бы удивлен, если бы у них не было какой-либо функции сглаживания, чтобы избавиться от крайностей, как вы упомянули.

И у вас не должно возникнуть проблем с импортом в него данных. Вы можете не только читать плоские текстовые файлы, но и легко расширять его с помощью C, так что, вероятно, есть и какой-то интерфейс C #.

0
ответ дан 3 December 2019 в 12:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: