- fixed master volume
- added osc jitter to blep waveform saw, square and tri
This commit is contained in:
@@ -610,10 +610,24 @@ void JaySynthAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer
|
||||
}
|
||||
|
||||
for (i=0; i <numSamples; i++)
|
||||
{
|
||||
buf1[i] = (float)(buf[0][i]*limiter_gain[i]);
|
||||
}
|
||||
|
||||
for (i=0; i <numSamples; i++)
|
||||
{
|
||||
buf2[i] = (float)(buf[1][i]*limiter_gain[i]);
|
||||
}
|
||||
#else
|
||||
for (i=0; i <numSamples; i++)
|
||||
{
|
||||
buf1[i] = (float)(buf[0][i]);
|
||||
}
|
||||
|
||||
for (i=0; i <numSamples; i++)
|
||||
{
|
||||
buf2[i] = (float)(buf[1][i]);
|
||||
}
|
||||
#endif
|
||||
|
||||
// In case we have more outputs than inputs, we'll clear any output
|
||||
|
||||
+32
-8
@@ -91,7 +91,31 @@ synth_float_t IP_Process(blit_t *pObj, synth_float_t *pLUT, synth_float_t m)
|
||||
}
|
||||
return y;
|
||||
}
|
||||
|
||||
|
||||
void BLIT_process_misc(blit_t *pObj)
|
||||
{
|
||||
if (pObj->misc_process_downsammple_counter)
|
||||
{
|
||||
pObj->misc_process_downsammple_counter--;
|
||||
return;
|
||||
}
|
||||
|
||||
pObj->misc_process_downsammple_counter = BLIT_MISC_PROCESS_DOWN_SAMPLE;
|
||||
|
||||
const synth_float_t alpha = BLIT_JITTER_ERROR*BLIT_MISC_PROCESS_DOWN_SAMPLE;
|
||||
synth_float_t pm = Noise_Uniform(&pObj->pCom->noise, 1, 0);
|
||||
|
||||
if (pm > 0)
|
||||
{
|
||||
pObj->jitter += alpha;
|
||||
}
|
||||
else
|
||||
{
|
||||
pObj->jitter -= alpha;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void BLIT_freq_update(blit_t *pObj, synth_float_t scale)
|
||||
{
|
||||
synth_float_t p;
|
||||
@@ -99,7 +123,7 @@ void BLIT_freq_update(blit_t *pObj, synth_float_t scale)
|
||||
pObj->freq_update_req = 0;
|
||||
|
||||
// p = pObj->fs/(pObj->f*scale*pObj->fm);
|
||||
p = pObj->fs/(scale*pObj->fm);
|
||||
p = pObj->fs/(scale * pObj->fm * (1 + pObj->jitter));
|
||||
|
||||
pObj->dx = (synth_float_t)1.0/p;
|
||||
pObj->m = umin(BLIT_NUM_HARM_MAX-1, (UINT32)((synth_float_t)SYNTH_BANDWIDTH*2.0*(int)((p/2)) + 0));
|
||||
@@ -259,7 +283,8 @@ void BLIT_Reset(blit_t *pObj, synth_float_t phase)
|
||||
pObj->fm = 1;
|
||||
pObj->pwm = 0;
|
||||
pObj->pulse_offset = 0; // ToDo: Adjust according to phase
|
||||
pObj->pm_filtered = 0;
|
||||
pObj->jitter = 0;
|
||||
pObj->misc_process_downsammple_counter = BLIT_MISC_PROCESS_DOWN_SAMPLE;
|
||||
}
|
||||
|
||||
void BLIT_Start(blit_t *pObj)
|
||||
@@ -284,13 +309,10 @@ void BLIT_Process_SAW_Vector(blit_t *pObj, synth_float_t *pPitch, synth_float_t
|
||||
if (pSyncOut)
|
||||
memset(pSyncOut, 0, len*sizeof(synth_float_t));
|
||||
|
||||
synth_float_t alpha = 0.001;
|
||||
synth_float_t pm = Noise_Gaussian(&pObj->pCom->noise, 0.01, 0);
|
||||
pObj->pm_filtered = pObj->pm_filtered*(1.0 - alpha) + pm*alpha;
|
||||
|
||||
// Create output
|
||||
for (i=0; i< len; i++)
|
||||
{
|
||||
BLIT_process_misc(pObj);
|
||||
if (pObj->freq_update_req)
|
||||
{
|
||||
BLIT_freq_update(pObj, pPitch[i]);
|
||||
@@ -303,7 +325,7 @@ void BLIT_Process_SAW_Vector(blit_t *pObj, synth_float_t *pPitch, synth_float_t
|
||||
{
|
||||
pObj->fm = (synth_float_t)pow((synth_float_t)2, pCV_fm[i]);
|
||||
}
|
||||
BLIT_freq_update(pObj, pPitch[i] * (1+pObj->pm_filtered));
|
||||
BLIT_freq_update(pObj, pPitch[i]);
|
||||
}
|
||||
|
||||
m = pObj->m;
|
||||
@@ -334,6 +356,7 @@ void BLIT_Process_SQR_Vector(blit_t *pObj, synth_float_t *pPitch, synth_float_t
|
||||
// Create output
|
||||
for (i=0; i< len; i++)
|
||||
{
|
||||
BLIT_process_misc(pObj);
|
||||
if (pObj->freq_update_req)
|
||||
{
|
||||
BLIT_freq_update(pObj, pPitch[i]);
|
||||
@@ -403,6 +426,7 @@ void BLIT_Process_TRI_Vector(blit_t *pObj, synth_float_t *pPitch, synth_float_t
|
||||
|
||||
for (i=0; i< len; i++)
|
||||
{
|
||||
BLIT_process_misc(pObj);
|
||||
if (pObj->freq_update_req)
|
||||
{
|
||||
BLIT_freq_update(pObj, pPitch[i]);
|
||||
|
||||
+6
-3
@@ -6,7 +6,10 @@
|
||||
#include "synth_defs.h"
|
||||
#include "noise.h"
|
||||
#include "synth_types.h"
|
||||
|
||||
|
||||
#define BLIT_MISC_PROCESS_DOWN_SAMPLE 2
|
||||
#define BLIT_JITTER_ERROR 0.0000001
|
||||
|
||||
// --------------------------------------------------------------
|
||||
// Types
|
||||
// --------------------------------------------------------------
|
||||
@@ -30,8 +33,8 @@ typedef struct _sblit_t
|
||||
synth_float_t tri_x, tri_sum;
|
||||
UINT32 m, tri_pol, sqr_pol1, sqr_pol2;
|
||||
UINT32 freq_update_req, bufsize;
|
||||
synth_float_t pm_filtered;
|
||||
|
||||
synth_float_t jitter;
|
||||
UINT32 misc_process_downsammple_counter;
|
||||
} blit_t;
|
||||
|
||||
// --------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user