Added: lowpass the output values
This commit is contained in:
parent
d872a79a27
commit
19cbbee526
2 changed files with 12 additions and 2 deletions
|
@ -39,6 +39,7 @@ CBitVis::CBitVis(int argc, char *argv[])
|
||||||
m_buf = NULL;
|
m_buf = NULL;
|
||||||
m_bufsize = 0;
|
m_bufsize = 0;
|
||||||
m_fftbuf = NULL;
|
m_fftbuf = NULL;
|
||||||
|
m_displaybuf = NULL;
|
||||||
m_samplecounter = 0;
|
m_samplecounter = 0;
|
||||||
m_nrffts = 0;
|
m_nrffts = 0;
|
||||||
}
|
}
|
||||||
|
@ -180,6 +181,7 @@ void CBitVis::ProcessAudio()
|
||||||
{
|
{
|
||||||
const int bins = 1024;
|
const int bins = 1024;
|
||||||
const int lines = 46;
|
const int lines = 46;
|
||||||
|
const float decay = 0.5;
|
||||||
int samplerate;
|
int samplerate;
|
||||||
int samples;
|
int samples;
|
||||||
if ((samples = m_jackclient.GetAudio(m_buf, m_bufsize, samplerate)) > 0)
|
if ((samples = m_jackclient.GetAudio(m_buf, m_bufsize, samplerate)) > 0)
|
||||||
|
@ -191,6 +193,12 @@ void CBitVis::ProcessAudio()
|
||||||
memset(m_fftbuf, 0, bins * sizeof(float));
|
memset(m_fftbuf, 0, bins * sizeof(float));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!m_displaybuf)
|
||||||
|
{
|
||||||
|
m_displaybuf = new float[lines];
|
||||||
|
memset(m_displaybuf, 0, lines * sizeof(float));
|
||||||
|
}
|
||||||
|
|
||||||
int additions = 0;
|
int additions = 0;
|
||||||
for (int i = 1; i < lines; i++)
|
for (int i = 1; i < lines; i++)
|
||||||
additions += i;
|
additions += i;
|
||||||
|
@ -214,7 +222,7 @@ void CBitVis::ProcessAudio()
|
||||||
m_fftbuf[j] += cabsf(m_fft.m_outbuf[j]) / m_fft.m_bufsize;
|
m_fftbuf[j] += cabsf(m_fft.m_outbuf[j]) / m_fft.m_bufsize;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_samplecounter % (samplerate / 20) == 0)
|
if (m_samplecounter % (samplerate / 30) == 0)
|
||||||
{
|
{
|
||||||
m_fft.ApplyWindow();
|
m_fft.ApplyWindow();
|
||||||
fftwf_execute(m_fft.m_plan);
|
fftwf_execute(m_fft.m_plan);
|
||||||
|
@ -232,7 +240,8 @@ void CBitVis::ProcessAudio()
|
||||||
for (int k = bin; k < bin + nrbins; k++)
|
for (int k = bin; k < bin + nrbins; k++)
|
||||||
outval += m_fftbuf[k] / m_nrffts;
|
outval += m_fftbuf[k] / m_nrffts;
|
||||||
|
|
||||||
out += string(Clamp(Round32(outval * 300.0f), 1, 100), '|');
|
m_displaybuf[j] = m_displaybuf[j] * decay + outval * (1.0f - decay);
|
||||||
|
out += string(Clamp(Round32(m_displaybuf[j] * 300.0f), 1, 100), '|');
|
||||||
out += '\n';
|
out += '\n';
|
||||||
|
|
||||||
start = next;
|
start = next;
|
||||||
|
|
|
@ -40,6 +40,7 @@ class CBitVis
|
||||||
float* m_buf;
|
float* m_buf;
|
||||||
int m_bufsize;
|
int m_bufsize;
|
||||||
float* m_fftbuf;
|
float* m_fftbuf;
|
||||||
|
float* m_displaybuf;
|
||||||
int m_samplecounter;
|
int m_samplecounter;
|
||||||
int m_nrffts;
|
int m_nrffts;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue