Added tic marks, removed audio RMS calculation for now at least.

monitor
Elliott Liggett 2022-08-24 21:52:36 -07:00
rodzic 9623226b0c
commit 0f226fdca5
5 zmienionych plików z 31 dodań i 10 usunięć

Wyświetl plik

@ -158,7 +158,12 @@ bool audioConverter::convert(audioPacket audio)
{ {
audio.amplitudePeak = samplesF.array().abs().maxCoeff(); 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 // Set the volume
samplesF *= audio.volume; samplesF *= audio.volume;

Wyświetl plik

@ -378,12 +378,25 @@ void meter::drawScale_dBFs(QPainter *qp)
//qp->setFont(QFont("Arial", fontSize)); //qp->setFont(QFont("Arial", fontSize));
peakRedLevel = 193; 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(38+mXstart,scaleTextYstart, QString("-12"));
qp->drawText(71+mXstart,scaleTextYstart, QString("-9")); qp->drawText(71+mXstart,scaleTextYstart, QString("-9"));
qp->drawText(124+mXstart,scaleTextYstart, QString("-6")); qp->drawText(124+mXstart,scaleTextYstart, QString("-6"));
qp->drawText(193+mXstart,scaleTextYstart, QString("-3")); 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: // Now the lines:
qp->setPen(lowLineColor); qp->setPen(lowLineColor);

Wyświetl plik

@ -152,7 +152,7 @@ void udpHandler::getRxLevels(quint16 amplitudePeak, quint16 amplitudeRMS,quint16
audioLevelsRxPeak[(audioLevelsRxPosition)%audioLevelBufferSize] = amplitudePeak; audioLevelsRxPeak[(audioLevelsRxPosition)%audioLevelBufferSize] = amplitudePeak;
audioLevelsRxRMS[(audioLevelsRxPosition)%audioLevelBufferSize] = amplitudeRMS; audioLevelsRxRMS[(audioLevelsRxPosition)%audioLevelBufferSize] = amplitudeRMS;
if((audioLevelsRxPosition)%3 == 0) if((audioLevelsRxPosition)%4 == 0)
{ {
// calculate mean and emit signal // calculate mean and emit signal
unsigned char meanPeak = findMax(audioLevelsRxPeak); unsigned char meanPeak = findMax(audioLevelsRxPeak);
@ -175,7 +175,7 @@ void udpHandler::getTxLevels(quint16 amplitudePeak, quint16 amplitudeRMS ,quint1
audioLevelsTxPeak[(audioLevelsTxPosition)%audioLevelBufferSize] = amplitudePeak; audioLevelsTxPeak[(audioLevelsTxPosition)%audioLevelBufferSize] = amplitudePeak;
audioLevelsTxRMS[(audioLevelsTxPosition)%audioLevelBufferSize] = amplitudeRMS; audioLevelsTxRMS[(audioLevelsTxPosition)%audioLevelBufferSize] = amplitudeRMS;
if((audioLevelsTxPosition)%3 == 0) if((audioLevelsTxPosition)%4 == 0)
{ {
// calculate mean and emit signal // calculate mean and emit signal
unsigned char meanPeak = findMax(audioLevelsTxPeak); unsigned char meanPeak = findMax(audioLevelsTxPeak);

Wyświetl plik

@ -29,7 +29,7 @@
#include "udpcivdata.h" #include "udpcivdata.h"
#include "udpaudio.h" #include "udpaudio.h"
#define audioLevelBufferSize (3) #define audioLevelBufferSize (4)
// Class to handle the connection/disconnection of the radio. // Class to handle the connection/disconnection of the radio.
class udpHandler: public udpBase class udpHandler: public udpBase

Wyświetl plik

@ -623,7 +623,9 @@ void wfmain::receiveStatusUpdate(networkStatus status)
void wfmain::receiveNetworkAudioLevels(networkAudioLevels l) void wfmain::receiveNetworkAudioLevels(networkAudioLevels l)
{ {
/*
meterKind m2mtr = ui->meter2Widget->getMeterType(); meterKind m2mtr = ui->meter2Widget->getMeterType();
if(m2mtr == meterAudio) if(m2mtr == meterAudio)
{ {
if(amTransmitting) if(amTransmitting)
@ -641,20 +643,21 @@ void wfmain::receiveNetworkAudioLevels(networkAudioLevels l)
if(l.haveRxLevels) if(l.haveRxLevels)
ui->meter2Widget->setLevels(l.rxAudioRMS, l.rxAudioPeak); ui->meter2Widget->setLevels(l.rxAudioRMS, l.rxAudioPeak);
} }
*/
/*
meterKind m = meterNone; meterKind m = meterNone;
if(l.haveRxLevels) if(l.haveRxLevels)
{ {
m = meterRxAudio; m = meterRxAudio;
receiveMeter(m, l.rxAudioRMS); receiveMeter(m, l.rxAudioPeak);
} }
if(l.haveTxLevels) if(l.haveTxLevels)
{ {
m = meterTxMod; m = meterTxMod;
receiveMeter(m, l.txAudioRMS); receiveMeter(m, l.txAudioPeak);
} }
*/
} }
void wfmain::setupPlots() void wfmain::setupPlots()