mirror of
https://github.com/vale981/openAV-Luppp
synced 2025-03-05 09:01:39 -05:00
-Smoothed DSP level metering UI updates
This commit is contained in:
parent
75d9dc592a
commit
8d2924b9d4
3 changed files with 31 additions and 5 deletions
|
@ -29,11 +29,13 @@ class DBMeter
|
|||
{
|
||||
// range scale from range = -96 -> +10, to 0 -> 1
|
||||
float zeroOneL = (1-(fvbargraph0 / -96.f));
|
||||
fvbargraph0 = -96;
|
||||
return pow(zeroOneL, 4);
|
||||
}
|
||||
float getRightDB()
|
||||
{
|
||||
float zeroOneR = (1-(fvbargraph1 / -96.f));
|
||||
fvbargraph1 = -96;
|
||||
return pow(zeroOneR, 4);
|
||||
}
|
||||
|
||||
|
@ -42,10 +44,12 @@ class DBMeter
|
|||
for (int i = 0; (i < count); i = (i + 1))
|
||||
{
|
||||
fRec0[0] = max((fRec0[1] - fConst0), min(10.f, (20.f * log10f(max(1.58489e-05f, fabsf(*inputL))))));
|
||||
fvbargraph0 = fRec0[0];
|
||||
if ( fvbargraph0 < fRec0[0] )
|
||||
fvbargraph0 = fRec0[0];
|
||||
|
||||
fRec1[0] = max((fRec1[1] - fConst0), min(10.f, (20.f * log10f(max(1.58489e-05f, fabsf(*inputR))))));
|
||||
fvbargraph1 = fRec1[0];
|
||||
if ( fvbargraph1 < fRec1[0] )
|
||||
fvbargraph1 = fRec1[0];
|
||||
|
||||
fRec0[1] = fRec0[0];
|
||||
fRec1[1] = fRec1[0];
|
||||
|
|
22
src/jack.cxx
22
src/jack.cxx
|
@ -19,6 +19,11 @@ Jack::Jack()
|
|||
buffers.nframes = jack_get_buffer_size( client );
|
||||
buffers.samplerate = jack_get_sample_rate( client );
|
||||
|
||||
// UI update
|
||||
uiUpdateConstant = buffers.samplerate / 30;
|
||||
uiUpdateCounter = buffers.samplerate / 30;
|
||||
|
||||
|
||||
masterOutput = jack_port_register( client,
|
||||
"master_out",
|
||||
JACK_DEFAULT_AUDIO_TYPE,
|
||||
|
@ -157,13 +162,26 @@ int Jack::process (jack_nframes_t nframes)
|
|||
{
|
||||
// needs to be setup to handle stereo instead of mono
|
||||
dbMeters.at(n).process( nframes, buffers.audio[Buffers::TRACK_0 + n], buffers.audio[Buffers::TRACK_0 + n]);
|
||||
EventTrackSignalLevel e( n, dbMeters.at(n).getLeftDB(), dbMeters.at(n).getRightDB() );
|
||||
writeToGuiRingbuffer( &e );
|
||||
|
||||
if (uiUpdateCounter > uiUpdateConstant )
|
||||
{
|
||||
EventTrackSignalLevel e( n, dbMeters.at(n).getLeftDB(), dbMeters.at(n).getRightDB() );
|
||||
writeToGuiRingbuffer( &e );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
metronome.process( nframes, &buffers );
|
||||
|
||||
if (uiUpdateCounter > uiUpdateConstant )
|
||||
{
|
||||
uiUpdateCounter = 0;
|
||||
}
|
||||
|
||||
uiUpdateCounter += nframes;
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -64,9 +64,13 @@ class Jack
|
|||
ControllerUpdater controllerUpdater;
|
||||
|
||||
vector<Looper*> loopers;
|
||||
|
||||
vector<DBMeter> dbMeters;
|
||||
|
||||
// UI update variables
|
||||
long uiUpdateCounter;
|
||||
long uiUpdateConstant;
|
||||
|
||||
|
||||
int nframes;
|
||||
int samplerate;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue