diff --git a/audioconverter.cpp b/audioconverter.cpp index d25f3f5..58fd58f 100644 --- a/audioconverter.cpp +++ b/audioconverter.cpp @@ -158,7 +158,12 @@ bool audioConverter::convert(audioPacket audio) { audio.amplitudePeak = samplesF.array().abs().maxCoeff(); - audio.amplitudeRMS = samplesF.array().abs().mean(); + //audio.amplitudeRMS = samplesF.array().abs().mean(); // zero for tx audio + //audio.amplitudeRMS = samplesF.norm() / sqrt(samplesF.size()); // too high values. Zero for tx audio. + //audio.amplitudeRMS = samplesF.squaredNorm(); // tx not zero. Values higher than peak sometimes + //audio.amplitudeRMS = samplesF.norm(); // too small values. also too small on TX + //audio.amplitudeRMS = samplesF.blueNorm(); // scale same as norm, too small. + // Set the volume samplesF *= audio.volume; diff --git a/meter.cpp b/meter.cpp index 34dfa01..0c25677 100644 --- a/meter.cpp +++ b/meter.cpp @@ -378,12 +378,25 @@ void meter::drawScale_dBFs(QPainter *qp) //qp->setFont(QFont("Arial", fontSize)); peakRedLevel = 193; - qp->drawText(20+mXstart,scaleTextYstart, QString("-15")); + qp->drawText(20+mXstart-5,scaleTextYstart, QString("-15")); qp->drawText(38+mXstart,scaleTextYstart, QString("-12")); qp->drawText(71+mXstart,scaleTextYstart, QString("-9")); qp->drawText(124+mXstart,scaleTextYstart, QString("-6")); qp->drawText(193+mXstart,scaleTextYstart, QString("-3")); - qp->drawText(255+mXstart,scaleTextYstart, QString("0dB")); + qp->drawText(255+mXstart,scaleTextYstart, QString("0")); + + // Low ticks: + qp->setPen(lowLineColor); + qp->drawLine(20+mXstart,scaleTextYstart, 20+mXstart, scaleTextYstart+5); + qp->drawLine(38+mXstart,scaleTextYstart, 38+mXstart, scaleTextYstart+5); + qp->drawLine(71+mXstart,scaleTextYstart, 71+mXstart, scaleTextYstart+5); + qp->drawLine(124+mXstart,scaleTextYstart, 124+mXstart, scaleTextYstart+5); + + + // High ticks: + qp->setPen(highLineColor); + qp->drawLine(193+mXstart,scaleTextYstart, 193+mXstart, scaleTextYstart+5); + qp->drawLine(255+mXstart,scaleTextYstart, 255+mXstart, scaleTextYstart+5); // Now the lines: qp->setPen(lowLineColor); diff --git a/udphandler.cpp b/udphandler.cpp index f075d6b..a666b90 100644 --- a/udphandler.cpp +++ b/udphandler.cpp @@ -152,7 +152,7 @@ void udpHandler::getRxLevels(quint16 amplitudePeak, quint16 amplitudeRMS,quint16 audioLevelsRxPeak[(audioLevelsRxPosition)%audioLevelBufferSize] = amplitudePeak; audioLevelsRxRMS[(audioLevelsRxPosition)%audioLevelBufferSize] = amplitudeRMS; - if((audioLevelsRxPosition)%3 == 0) + if((audioLevelsRxPosition)%4 == 0) { // calculate mean and emit signal unsigned char meanPeak = findMax(audioLevelsRxPeak); @@ -175,7 +175,7 @@ void udpHandler::getTxLevels(quint16 amplitudePeak, quint16 amplitudeRMS ,quint1 audioLevelsTxPeak[(audioLevelsTxPosition)%audioLevelBufferSize] = amplitudePeak; audioLevelsTxRMS[(audioLevelsTxPosition)%audioLevelBufferSize] = amplitudeRMS; - if((audioLevelsTxPosition)%3 == 0) + if((audioLevelsTxPosition)%4 == 0) { // calculate mean and emit signal unsigned char meanPeak = findMax(audioLevelsTxPeak); diff --git a/udphandler.h b/udphandler.h index 74cca92..157006e 100644 --- a/udphandler.h +++ b/udphandler.h @@ -29,7 +29,7 @@ #include "udpcivdata.h" #include "udpaudio.h" -#define audioLevelBufferSize (3) +#define audioLevelBufferSize (4) // Class to handle the connection/disconnection of the radio. class udpHandler: public udpBase diff --git a/wfmain.cpp b/wfmain.cpp index 5a5ce6b..b7bcb69 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -623,7 +623,9 @@ void wfmain::receiveStatusUpdate(networkStatus status) void wfmain::receiveNetworkAudioLevels(networkAudioLevels l) { + /* meterKind m2mtr = ui->meter2Widget->getMeterType(); + if(m2mtr == meterAudio) { if(amTransmitting) @@ -641,20 +643,21 @@ void wfmain::receiveNetworkAudioLevels(networkAudioLevels l) if(l.haveRxLevels) ui->meter2Widget->setLevels(l.rxAudioRMS, l.rxAudioPeak); } + */ + - /* meterKind m = meterNone; if(l.haveRxLevels) { m = meterRxAudio; - receiveMeter(m, l.rxAudioRMS); + receiveMeter(m, l.rxAudioPeak); } if(l.haveTxLevels) { m = meterTxMod; - receiveMeter(m, l.txAudioRMS); + receiveMeter(m, l.txAudioPeak); } - */ + } void wfmain::setupPlots()