bug 1474470 support convolution of stereo input with a mono impulse response buffer r=padenot

This initial implementation does twice the necessary processing for mono input,
but that will be addressed in bug 1474222.

MozReview-Commit-ID: AZQ7Zb8jEtK

--HG--
extra : rebase_source : 9feeb254217dc4e14b78cb03315fb948e3477a16
This commit is contained in:
Karl Tomlinson 2018-08-16 09:59:05 +12:00
Родитель 2a7d17c9b9
Коммит 7e758c3e77
3 изменённых файлов: 29 добавлений и 44 удалений

Просмотреть файл

@ -126,11 +126,18 @@ void Reverb::initialize(const nsTArray<const float*>& impulseResponseBuffer,
// The reverb can handle a mono impulse response and still do stereo processing
size_t numResponseChannels = impulseResponseBuffer.Length();
m_convolvers.SetCapacity(numResponseChannels);
MOZ_ASSERT(numResponseChannels > 0);
// The number of convolvers required is at least the number of audio
// channels. Even if there is initially only one audio channel, another
// may be added later, and so a second convolver is created now while the
// impulse response is available.
size_t numConvolvers = std::max<size_t>(numResponseChannels, 2);
m_convolvers.SetCapacity(numConvolvers);
int convolverRenderPhase = 0;
for (size_t i = 0; i < numResponseChannels; ++i) {
const float* channel = impulseResponseBuffer[i];
for (size_t i = 0; i < numConvolvers; ++i) {
size_t channelIndex = i < numResponseChannels ? i : 0;
const float* channel = impulseResponseBuffer[channelIndex];
size_t length = impulseResponseBufferLength;
nsAutoPtr<ReverbConvolver> convolver(new ReverbConvolver(channel, length, maxFFTSize, convolverRenderPhase, useBackgroundThreads));
@ -185,19 +192,8 @@ void Reverb::process(const AudioBlock* sourceBus, AudioBlock* destinationBus)
float* destinationChannel = static_cast<float*>(const_cast<void*>(destinationBus->mChannelData[i]));
m_convolvers[i]->process(sourceBusL, destinationChannel);
}
} else if (numInputChannels == 1 && numReverbChannels == 1 && numOutputChannels == 2) {
// 1 -> 1 -> 2
m_convolvers[0]->process(sourceBusL, destinationChannelL);
// simply copy L -> R
float* destinationChannelR = static_cast<float*>(const_cast<void*>(destinationBus->mChannelData[1]));
bool isCopySafe = destinationChannelL && destinationChannelR && size_t(destinationBus->GetDuration()) >= WEBAUDIO_BLOCK_SIZE;
MOZ_ASSERT(isCopySafe);
if (!isCopySafe)
return;
PodCopy(destinationChannelR, destinationChannelL, WEBAUDIO_BLOCK_SIZE);
} else if (numInputChannels == 1 && numReverbChannels == 1 && numOutputChannels == 1) {
// 1 -> 1 -> 1
} else if (numInputChannels == 1 && numOutputChannels == 1) {
// 1 -> 1 -> 1 (Only one of the convolvers is used.)
m_convolvers[0]->process(sourceBusL, destinationChannelL);
} else if (numInputChannels == 2 && numReverbChannels == 4 && numOutputChannels == 2) {
// 2 -> 4 -> 2 ("True" stereo)
@ -236,8 +232,7 @@ void Reverb::process(const AudioBlock* sourceBus, AudioBlock* destinationBus)
AudioBufferAddWithScale(tempChannelL, 1.0f, destinationChannelL, sourceBus->GetDuration());
AudioBufferAddWithScale(tempChannelR, 1.0f, destinationChannelR, sourceBus->GetDuration());
} else {
// Handle gracefully any unexpected / unsupported matrixing
// FIXME: add code for 5.1 support...
MOZ_ASSERT_UNREACHABLE("Unexpected Reverb configuration");
destinationBus->SetNull(destinationBus->GetDuration());
}
}

Просмотреть файл

@ -1,10 +0,0 @@
[convolver-cascade.html]
[X Output of cascaded mono convolvers should have contain at least one value different from 0.]
expected: FAIL
[< [cascade-mono\] 1 out of 1 assertions were failed.]
expected: FAIL
[# AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed.]
expected: FAIL

Просмотреть файл

@ -5,37 +5,37 @@
[< [1-channel input\] 1 out of 2 assertions were failed.]
expected: FAIL
[X 2: Channel 0 expected to be equal to the array [0,0,0.9458408951759338,0.8448333740234375,0.8210252523422241,0.8620985746383667,0.8430315852165222,0.855602502822876,0.7933436632156372,0.9865825176239014,0.3972480297088623,-0.7786127924919128,-0.9223549962043762,-0.7896472215652466,-0.8727429509162903,-0.8325281143188477...\] but differs in 1276 places:\n\tIndex\tActual\t\t\tExpected\n\t[2\]\t0.0000000000000000e+0\t9.4584089517593384e-1\n\t[3\]\t0.0000000000000000e+0\t8.4483337402343750e-1\n\t[4\]\t0.0000000000000000e+0\t8.2102525234222412e-1\n\t[5\]\t0.0000000000000000e+0\t8.6209857463836670e-1\n\t...and 1272 more errors.]
[X 2: Channel 0 expected to be equal to the array [0,0,0.9458408951759338,0.8448333740234375,0.8210252523422241,0.8620985746383667,0.8430315852165222,0.855602502822876,0.7933436632156372,0.9865825176239014,0.3972480297088623,-0.7786127924919128,-0.9223549962043762,-0.7896472215652466,-0.8727429509162903,-0.8325281143188477...\] but differs in 966 places:\n\tIndex\tActual\t\t\tExpected\n\t[0\]\t2.9802322387695313e-8\t0.0000000000000000e+0\n\t[1\]\t-7.4505805969238281e-8\t0.0000000000000000e+0\n\t[2\]\t9.4584077596664429e-1\t9.4584089517593384e-1\n\t[3\]\t8.4483331441879272e-1\t8.4483337402343750e-1\n\t...and 962 more errors.]
expected: FAIL
[X 2: Channel 1 expected to be equal to the array [0,0,0.9918842315673828,0.7683960199356079,0.9083511829376221,0.7684863805770874,0.9814503192901611,0.3193226158618927,-0.9322392344474792,-0.8032255172729492,-0.8812425136566162,-0.7985008358955383,-0.9260328412055969,-0.600982666015625,0.7887306809425354,0.8655399680137634...\] but differs in 1277 places:\n\tIndex\tActual\t\t\tExpected\n\t[2\]\t0.0000000000000000e+0\t9.9188423156738281e-1\n\t[3\]\t0.0000000000000000e+0\t7.6839601993560791e-1\n\t[4\]\t0.0000000000000000e+0\t9.0835118293762207e-1\n\t[5\]\t0.0000000000000000e+0\t7.6848638057708740e-1\n\t...and 1273 more errors.]
[X 2: Channel 1 expected to be equal to the array [0,0,0.9918842315673828,0.7683960199356079,0.9083511829376221,0.7684863805770874,0.9814503192901611,0.3193226158618927,-0.9322392344474792,-0.8032255172729492,-0.8812425136566162,-0.7985008358955383,-0.9260328412055969,-0.600982666015625,0.7887306809425354,0.8655399680137634...\] but differs in 1034 places:\n\tIndex\tActual\t\t\tExpected\n\t[0\]\t-5.9604644775390625e-8\t0.0000000000000000e+0\n\t[1\]\t4.4703483581542969e-8\t0.0000000000000000e+0\n\t[3\]\t7.6839596033096313e-1\t7.6839601993560791e-1\n\t[4\]\t9.0835124254226685e-1\t9.0835118293762207e-1\n\t...and 1030 more errors.]
expected: FAIL
[< [2-channel input\] 2 out of 2 assertions were failed.]
expected: FAIL
[X 3: Channel 0 expected to be equal to the array [0,0,0.9458408951759338,0.8448333740234375,0.8210252523422241,0.8620985746383667,0.8430315852165222,0.855602502822876,0.7933436632156372,0.9865825176239014,0.3972480297088623,-0.7786127924919128,-0.9223549962043762,-0.7896472215652466,-0.8727429509162903,-0.8325281143188477...\] but differs in 1276 places:\n\tIndex\tActual\t\t\tExpected\n\t[2\]\t0.0000000000000000e+0\t9.4584089517593384e-1\n\t[3\]\t0.0000000000000000e+0\t8.4483337402343750e-1\n\t[4\]\t0.0000000000000000e+0\t8.2102525234222412e-1\n\t[5\]\t0.0000000000000000e+0\t8.6209857463836670e-1\n\t...and 1272 more errors.]
[X 3: Channel 0 expected to be equal to the array [0,0,0.9458408951759338,0.8448333740234375,0.8210252523422241,0.8620985746383667,0.8430315852165222,0.855602502822876,0.7933436632156372,0.9865825176239014,0.3972480297088623,-0.7786127924919128,-0.9223549962043762,-0.7896472215652466,-0.8727429509162903,-0.8325281143188477...\] but differs in 966 places:\n\tIndex\tActual\t\t\tExpected\n\t[0\]\t2.9802322387695313e-8\t0.0000000000000000e+0\n\t[1\]\t-7.4505805969238281e-8\t0.0000000000000000e+0\n\t[2\]\t9.4584077596664429e-1\t9.4584089517593384e-1\n\t[3\]\t8.4483331441879272e-1\t8.4483337402343750e-1\n\t...and 962 more errors.]
expected: FAIL
[X 3: Channel 1 expected to be equal to the array [0,0,0.9918842315673828,0.7683960199356079,0.9083511829376221,0.7684863805770874,0.9814503192901611,0.3193226158618927,-0.9322392344474792,-0.8032255172729492,-0.8812425136566162,-0.7985008358955383,-0.9260328412055969,-0.600982666015625,0.7887306809425354,0.8655399680137634...\] but differs in 1277 places:\n\tIndex\tActual\t\t\tExpected\n\t[2\]\t0.0000000000000000e+0\t9.9188423156738281e-1\n\t[3\]\t0.0000000000000000e+0\t7.6839601993560791e-1\n\t[4\]\t0.0000000000000000e+0\t9.0835118293762207e-1\n\t[5\]\t0.0000000000000000e+0\t7.6848638057708740e-1\n\t...and 1273 more errors.]
[X 3: Channel 1 expected to be equal to the array [0,0,0.9918842315673828,0.7683960199356079,0.9083511829376221,0.7684863805770874,0.9814503192901611,0.3193226158618927,-0.9322392344474792,-0.8032255172729492,-0.8812425136566162,-0.7985008358955383,-0.9260328412055969,-0.600982666015625,0.7887306809425354,0.8655399680137634...\] but differs in 1034 places:\n\tIndex\tActual\t\t\tExpected\n\t[0\]\t-5.9604644775390625e-8\t0.0000000000000000e+0\n\t[1\]\t4.4703483581542969e-8\t0.0000000000000000e+0\n\t[3\]\t7.6839596033096313e-1\t7.6839601993560791e-1\n\t[4\]\t9.0835124254226685e-1\t9.0835118293762207e-1\n\t...and 1030 more errors.]
expected: FAIL
[< [3-channel input\] 2 out of 2 assertions were failed.]
expected: FAIL
[X 4: Channel 0 expected to be equal to the array [0,0,0.9706697463989258,0.8062858581542969,0.8572278618812561,0.8353679776191711,0.1815471351146698,-0.06941461563110352,0.0376264750957489,-0.007540702819824219,-0.01803457736968994,0.029624849557876587,-0.021628618240356445,-0.005501270294189453,0.05631396174430847,-0.4426816999912262...\] but differs in 1276 places:\n\tIndex\tActual\t\t\tExpected\n\t[2\]\t0.0000000000000000e+0\t9.7066974639892578e-1\n\t[3\]\t0.0000000000000000e+0\t8.0628585815429688e-1\n\t[4\]\t0.0000000000000000e+0\t8.5722786188125610e-1\n\t[5\]\t0.0000000000000000e+0\t8.3536797761917114e-1\n\t...and 1272 more errors.]
[X 4: Channel 0 expected to be equal to the array [0,0,0.9706697463989258,0.8062858581542969,0.8572278618812561,0.8353679776191711,0.1815471351146698,-0.06941461563110352,0.0376264750957489,-0.007540702819824219,-0.01803457736968994,0.029624849557876587,-0.021628618240356445,-0.005501270294189453,0.05631396174430847,-0.4426816999912262...\] but differs in 1062 places:\n\tIndex\tActual\t\t\tExpected\n\t[0\]\t5.9604644775390625e-8\t0.0000000000000000e+0\n\t[1\]\t-5.2154064178466797e-8\t0.0000000000000000e+0\n\t[3\]\t8.0628573894500732e-1\t8.0628585815429688e-1\n\t[4\]\t8.5722780227661133e-1\t8.5722786188125610e-1\n\t...and 1058 more errors.]
expected: FAIL
[X 4: Channel 1 expected to be equal to the array [0,0,0.9692283868789673,0.8026213049888611,0.8825444579124451,0.18008126318454742,0.027644813060760498,-0.2844730615615845,-0.7766556739807129,-0.037477731704711914,-0.008235335350036621,0.07220342755317688,-0.3337171971797943,-0.7541778683662415,-0.020433425903320312,-0.0313774049282074...\] but differs in 1277 places:\n\tIndex\tActual\t\t\tExpected\n\t[2\]\t0.0000000000000000e+0\t9.6922838687896729e-1\n\t[3\]\t0.0000000000000000e+0\t8.0262130498886108e-1\n\t[4\]\t0.0000000000000000e+0\t8.8254445791244507e-1\n\t[5\]\t0.0000000000000000e+0\t1.8008126318454742e-1\n\t...and 1273 more errors.]
[X 4: Channel 1 expected to be equal to the array [0,0,0.9692283868789673,0.8026213049888611,0.8825444579124451,0.18008126318454742,0.027644813060760498,-0.2844730615615845,-0.7766556739807129,-0.037477731704711914,-0.008235335350036621,0.07220342755317688,-0.3337171971797943,-0.7541778683662415,-0.020433425903320312,-0.0313774049282074...\] but differs in 1029 places:\n\tIndex\tActual\t\t\tExpected\n\t[0\]\t8.9406967163085938e-8\t0.0000000000000000e+0\n\t[1\]\t-4.4703483581542969e-8\t0.0000000000000000e+0\n\t[3\]\t8.0262124538421631e-1\t8.0262130498886108e-1\n\t[4\]\t8.8254427909851074e-1\t8.8254445791244507e-1\n\t...and 1025 more errors.]
expected: FAIL
[< [4-channel input\] 2 out of 2 assertions were failed.]
expected: FAIL
[X 5.1: Channel 0 expected to be equal to the array [0,0,2.2955899238586426,2.0720272064208984,1.532062292098999,0.8335829973220825,-0.21171289682388306,-0.005277678370475769,0.8338430523872375,1.0169568061828613,0.3252672553062439,-0.6764181852340698,-1.054646611213684,-0.5476447343826294,0.25095105171203613,-0.10892623662948608...\] but differs in 1276 places:\n\tIndex\tActual\t\t\tExpected\n\t[2\]\t0.0000000000000000e+0\t2.2955899238586426e+0\n\t[3\]\t0.0000000000000000e+0\t2.0720272064208984e+0\n\t[4\]\t0.0000000000000000e+0\t1.5320622920989990e+0\n\t[5\]\t0.0000000000000000e+0\t8.3358299732208252e-1\n\t...and 1272 more errors.]
[X 5.1: Channel 0 expected to be equal to the array [0,0,2.2955899238586426,2.0720272064208984,1.532062292098999,0.8335829973220825,-0.21171289682388306,-0.005277678370475769,0.8338430523872375,1.0169568061828613,0.3252672553062439,-0.6764181852340698,-1.054646611213684,-0.5476447343826294,0.25095105171203613,-0.10892623662948608...\] but differs in 1004 places:\n\tIndex\tActual\t\t\tExpected\n\t[1\]\t-2.2351741790771484e-7\t0.0000000000000000e+0\n\t[4\]\t1.5320621728897095e+0\t1.5320622920989990e+0\n\t[6\]\t-2.1171277761459351e-1\t-2.1171289682388306e-1\n\t[7\]\t-5.2777901291847229e-3\t-5.2776783704757690e-3\n\t...and 1000 more errors.]
expected: FAIL
[X 5.1: Channel 1 expected to be equal to the array [0,0,2.4002127647399902,1.8464014530181885,1.242234230041504,0.578858494758606,0.3615039587020874,0.16441935300827026,-0.7429117560386658,-1.5301964282989502,-1.898935079574585,-0.7277188301086426,0.01055973768234253,0.7105643153190613,1.7486152648925781,0.26711004972457886...\] but differs in 1277 places:\n\tIndex\tActual\t\t\tExpected\n\t[2\]\t0.0000000000000000e+0\t2.4002127647399902e+0\n\t[3\]\t0.0000000000000000e+0\t1.8464014530181885e+0\n\t[4\]\t0.0000000000000000e+0\t1.2422342300415039e+0\n\t[5\]\t0.0000000000000000e+0\t5.7885849475860596e-1\n\t...and 1273 more errors.]
[X 5.1: Channel 1 expected to be equal to the array [0,0,2.4002127647399902,1.8464014530181885,1.242234230041504,0.578858494758606,0.3615039587020874,0.16441935300827026,-0.7429117560386658,-1.5301964282989502,-1.898935079574585,-0.7277188301086426,0.01055973768234253,0.7105643153190613,1.7486152648925781,0.26711004972457886...\] but differs in 1033 places:\n\tIndex\tActual\t\t\tExpected\n\t[0\]\t2.9802322387695313e-7\t0.0000000000000000e+0\n\t[1\]\t-1.8626451492309570e-8\t0.0000000000000000e+0\n\t[4\]\t1.2422341108322144e+0\t1.2422342300415039e+0\n\t[5\]\t5.7885855436325073e-1\t5.7885849475860596e-1\n\t...and 1029 more errors.]
expected: FAIL
[< [5.1-channel input\] 2 out of 2 assertions were failed.]
@ -47,27 +47,27 @@
[X 1: Channel 1: Expected 0 for all values but found 1279 unexpected values: \n\tIndex\tActual\n\t[1\]\t-2.9802322387695312e-8\n\t[2\]\t0.33110618591308594\n\t[3\]\t0.6248594522476196\n\t[4\]\t0.8481202721595764\n\t...and 1275 more errors.]
expected: FAIL
[X 2: Channel 0 expected to be equal to the array [0,0,0.9458407163619995,0.844833254814148,0.821025013923645,0.8620984554290771,0.8430314660072327,0.8556023836135864,0.7933435440063477,0.9865822792053223,0.39724797010421753,-0.7786126136779785,-0.9223548769950867,-0.7896471619606018,-0.8727428317070007,-0.8325279355049133...\] but differs in 1276 places:\n\tIndex\tActual\t\t\tExpected\n\t[2\]\t0.0000000000000000e+0\t9.4584071636199951e-1\n\t[3\]\t0.0000000000000000e+0\t8.4483325481414795e-1\n\t[4\]\t0.0000000000000000e+0\t8.2102501392364502e-1\n\t[5\]\t0.0000000000000000e+0\t8.6209845542907715e-1\n\t...and 1272 more errors.]
[X 2: Channel 0 expected to be equal to the array [0,0,0.9458407163619995,0.844833254814148,0.821025013923645,0.8620984554290771,0.8430314660072327,0.8556023836135864,0.7933435440063477,0.9865822792053223,0.39724797010421753,-0.7786126136779785,-0.9223548769950867,-0.7896471619606018,-0.8727428317070007,-0.8325279355049133...\] but differs in 993 places:\n\tIndex\tActual\t\t\tExpected\n\t[0\]\t-2.0861625671386719e-7\t0.0000000000000000e+0\n\t[1\]\t-2.9802322387695313e-8\t0.0000000000000000e+0\n\t[2\]\t9.4584059715270996e-1\t9.4584071636199951e-1\n\t[4\]\t8.2102489471435547e-1\t8.2102501392364502e-1\n\t...and 989 more errors.]
expected: FAIL
[X 2: Channel 1 expected to be equal to the array [0,0,0.9918840527534485,0.7683959007263184,0.9083510637283325,0.7684863805770874,0.9814502000808716,0.31932249665260315,-0.9322391152381897,-0.8032253384590149,-0.8812423348426819,-0.7985007762908936,-0.9260326027870178,-0.6009824872016907,0.7887305617332458,0.8655398488044739...\] but differs in 1277 places:\n\tIndex\tActual\t\t\tExpected\n\t[2\]\t0.0000000000000000e+0\t9.9188405275344849e-1\n\t[3\]\t0.0000000000000000e+0\t7.6839590072631836e-1\n\t[4\]\t0.0000000000000000e+0\t9.0835106372833252e-1\n\t[5\]\t0.0000000000000000e+0\t7.6848638057708740e-1\n\t...and 1273 more errors.]
[X 2: Channel 1 expected to be equal to the array [0,0,0.9918840527534485,0.7683959007263184,0.9083510637283325,0.7684863805770874,0.9814502000808716,0.31932249665260315,-0.9322391152381897,-0.8032253384590149,-0.8812423348426819,-0.7985007762908936,-0.9260326027870178,-0.6009824872016907,0.7887305617332458,0.8655398488044739...\] but differs in 1078 places:\n\tIndex\tActual\t\t\tExpected\n\t[0\]\t5.9604644775390625e-8\t0.0000000000000000e+0\n\t[1\]\t2.9802322387695313e-8\t0.0000000000000000e+0\n\t[2\]\t9.9188399314880371e-1\t9.9188405275344849e-1\n\t[3\]\t7.6839596033096313e-1\t7.6839590072631836e-1\n\t...and 1074 more errors.]
expected: FAIL
[X 3: Channel 0 expected to be equal to the array [0,0,0.9458407163619995,0.844833254814148,0.821025013923645,0.8620984554290771,0.8430314660072327,0.8556023836135864,0.7933435440063477,0.9865822792053223,0.39724797010421753,-0.7786126136779785,-0.9223548769950867,-0.7896471619606018,-0.8727428317070007,-0.8325279355049133...\] but differs in 1276 places:\n\tIndex\tActual\t\t\tExpected\n\t[2\]\t0.0000000000000000e+0\t9.4584071636199951e-1\n\t[3\]\t0.0000000000000000e+0\t8.4483325481414795e-1\n\t[4\]\t0.0000000000000000e+0\t8.2102501392364502e-1\n\t[5\]\t0.0000000000000000e+0\t8.6209845542907715e-1\n\t...and 1272 more errors.]
[X 3: Channel 0 expected to be equal to the array [0,0,0.9458407163619995,0.844833254814148,0.821025013923645,0.8620984554290771,0.8430314660072327,0.8556023836135864,0.7933435440063477,0.9865822792053223,0.39724797010421753,-0.7786126136779785,-0.9223548769950867,-0.7896471619606018,-0.8727428317070007,-0.8325279355049133...\] but differs in 993 places:\n\tIndex\tActual\t\t\tExpected\n\t[0\]\t-2.0861625671386719e-7\t0.0000000000000000e+0\n\t[1\]\t-2.9802322387695313e-8\t0.0000000000000000e+0\n\t[2\]\t9.4584059715270996e-1\t9.4584071636199951e-1\n\t[4\]\t8.2102489471435547e-1\t8.2102501392364502e-1\n\t...and 989 more errors.]
expected: FAIL
[X 3: Channel 1 expected to be equal to the array [0,0,0.9918840527534485,0.7683959007263184,0.9083510637283325,0.7684863805770874,0.9814502000808716,0.31932249665260315,-0.9322391152381897,-0.8032253384590149,-0.8812423348426819,-0.7985007762908936,-0.9260326027870178,-0.6009824872016907,0.7887305617332458,0.8655398488044739...\] but differs in 1277 places:\n\tIndex\tActual\t\t\tExpected\n\t[2\]\t0.0000000000000000e+0\t9.9188405275344849e-1\n\t[3\]\t0.0000000000000000e+0\t7.6839590072631836e-1\n\t[4\]\t0.0000000000000000e+0\t9.0835106372833252e-1\n\t[5\]\t0.0000000000000000e+0\t7.6848638057708740e-1\n\t...and 1273 more errors.]
[X 3: Channel 1 expected to be equal to the array [0,0,0.9918840527534485,0.7683959007263184,0.9083510637283325,0.7684863805770874,0.9814502000808716,0.31932249665260315,-0.9322391152381897,-0.8032253384590149,-0.8812423348426819,-0.7985007762908936,-0.9260326027870178,-0.6009824872016907,0.7887305617332458,0.8655398488044739...\] but differs in 1078 places:\n\tIndex\tActual\t\t\tExpected\n\t[0\]\t5.9604644775390625e-8\t0.0000000000000000e+0\n\t[1\]\t2.9802322387695313e-8\t0.0000000000000000e+0\n\t[2\]\t9.9188399314880371e-1\t9.9188405275344849e-1\n\t[3\]\t7.6839596033096313e-1\t7.6839590072631836e-1\n\t...and 1074 more errors.]
expected: FAIL
[X 4: Channel 0 expected to be equal to the array [0,0,0.9706696271896362,0.8062857389450073,0.8572276830673218,0.8353679180145264,0.1815471202135086,-0.06941458582878113,0.03762653470039368,-0.007540762424468994,-0.018034547567367554,0.029624909162521362,-0.021628588438034058,-0.0055013298988342285,0.05631396174430847,-0.44268161058425903...\] but differs in 1276 places:\n\tIndex\tActual\t\t\tExpected\n\t[2\]\t0.0000000000000000e+0\t9.7066962718963623e-1\n\t[3\]\t0.0000000000000000e+0\t8.0628573894500732e-1\n\t[4\]\t0.0000000000000000e+0\t8.5722768306732178e-1\n\t[5\]\t0.0000000000000000e+0\t8.3536791801452637e-1\n\t...and 1272 more errors.]
[X 4: Channel 0 expected to be equal to the array [0,0,0.9706696271896362,0.8062857389450073,0.8572276830673218,0.8353679180145264,0.1815471202135086,-0.06941458582878113,0.03762653470039368,-0.007540762424468994,-0.018034547567367554,0.029624909162521362,-0.021628588438034058,-0.0055013298988342285,0.05631396174430847,-0.44268161058425903...\] but differs in 1059 places:\n\tIndex\tActual\t\t\tExpected\n\t[0\]\t-8.9406967163085938e-8\t0.0000000000000000e+0\n\t[1\]\t8.1956386566162109e-8\t0.0000000000000000e+0\n\t[2\]\t9.7066956758499146e-1\t9.7066962718963623e-1\n\t[3\]\t8.0628561973571777e-1\t8.0628573894500732e-1\n\t...and 1055 more errors.]
expected: FAIL
[X 4: Channel 1 expected to be equal to the array [0,0,0.9692282676696777,0.8026211857795715,0.8825443387031555,0.1800812929868698,0.027644872665405273,-0.28447312116622925,-0.7766556143760681,-0.037477701902389526,-0.008235275745391846,0.07220339775085449,-0.33371710777282715,-0.7541776895523071,-0.0204334557056427,-0.03137746453285217...\] but differs in 1277 places:\n\tIndex\tActual\t\t\tExpected\n\t[2\]\t0.0000000000000000e+0\t9.6922826766967773e-1\n\t[3\]\t0.0000000000000000e+0\t8.0262118577957153e-1\n\t[4\]\t0.0000000000000000e+0\t8.8254433870315552e-1\n\t[5\]\t0.0000000000000000e+0\t1.8008129298686981e-1\n\t...and 1273 more errors.]
[X 4: Channel 1 expected to be equal to the array [0,0,0.9692282676696777,0.8026211857795715,0.8825443387031555,0.1800812929868698,0.027644872665405273,-0.28447312116622925,-0.7766556143760681,-0.037477701902389526,-0.008235275745391846,0.07220339775085449,-0.33371710777282715,-0.7541776895523071,-0.0204334557056427,-0.03137746453285217...\] but differs in 1074 places:\n\tIndex\tActual\t\t\tExpected\n\t[0\]\t2.9802322387695313e-8\t0.0000000000000000e+0\n\t[1\]\t5.2154064178466797e-8\t0.0000000000000000e+0\n\t[2\]\t9.6922832727432251e-1\t9.6922826766967773e-1\n\t[3\]\t8.0262124538421631e-1\t8.0262118577957153e-1\n\t...and 1070 more errors.]
expected: FAIL
[X 5.1: Channel 0 expected to be equal to the array [0,0,2.2955894470214844,2.0720269680023193,1.53206205368042,0.8335828185081482,-0.21171295642852783,-0.005277588963508606,0.8338429927825928,1.0169565677642822,0.3252672255039215,-0.6764179468154907,-1.0546464920043945,-0.5476447343826294,0.25095099210739136,-0.10892611742019653...\] but differs in 1276 places:\n\tIndex\tActual\t\t\tExpected\n\t[2\]\t0.0000000000000000e+0\t2.2955894470214844e+0\n\t[3\]\t0.0000000000000000e+0\t2.0720269680023193e+0\n\t[4\]\t0.0000000000000000e+0\t1.5320620536804199e+0\n\t[5\]\t0.0000000000000000e+0\t8.3358281850814819e-1\n\t...and 1272 more errors.]
[X 5.1: Channel 0 expected to be equal to the array [0,0,2.2955894470214844,2.0720269680023193,1.53206205368042,0.8335828185081482,-0.21171295642852783,-0.005277588963508606,0.8338429927825928,1.0169565677642822,0.3252672255039215,-0.6764179468154907,-1.0546464920043945,-0.5476447343826294,0.25095099210739136,-0.10892611742019653...\] but differs in 1039 places:\n\tIndex\tActual\t\t\tExpected\n\t[0\]\t-2.3841857910156250e-7\t0.0000000000000000e+0\n\t[2\]\t2.2955892086029053e+0\t2.2955894470214844e+0\n\t[4\]\t1.5320619344711304e+0\t1.5320620536804199e+0\n\t[5\]\t8.3358287811279297e-1\t8.3358281850814819e-1\n\t...and 1035 more errors.]
expected: FAIL
[X 5.1: Channel 1 expected to be equal to the array [0,0,2.400212526321411,1.8464009761810303,1.2422339916229248,0.5788586139678955,0.3615038990974426,0.16441935300827026,-0.742911696434021,-1.530196189880371,-1.8989348411560059,-0.7277186512947083,0.010559797286987305,0.7105643153190613,1.748615026473999,0.26711004972457886...\] but differs in 1277 places:\n\tIndex\tActual\t\t\tExpected\n\t[2\]\t0.0000000000000000e+0\t2.4002125263214111e+0\n\t[3\]\t0.0000000000000000e+0\t1.8464009761810303e+0\n\t[4\]\t0.0000000000000000e+0\t1.2422339916229248e+0\n\t[5\]\t0.0000000000000000e+0\t5.7885861396789551e-1\n\t...and 1273 more errors.]
[X 5.1: Channel 1 expected to be equal to the array [0,0,2.400212526321411,1.8464009761810303,1.2422339916229248,0.5788586139678955,0.3615038990974426,0.16441935300827026,-0.742911696434021,-1.530196189880371,-1.8989348411560059,-0.7277186512947083,0.010559797286987305,0.7105643153190613,1.748615026473999,0.26711004972457886...\] but differs in 1050 places:\n\tIndex\tActual\t\t\tExpected\n\t[0\]\t-5.9604644775390625e-8\t0.0000000000000000e+0\n\t[1\]\t7.0780515670776367e-8\t0.0000000000000000e+0\n\t[2\]\t2.4002122879028320e+0\t2.4002125263214111e+0\n\t[3\]\t1.8464007377624512e+0\t1.8464009761810303e+0\n\t...and 1046 more errors.]
expected: FAIL