예제 #1
0
void
AUX_Module::process ( nframes_t nframes )
{
    if ( !bypass() )
    {
        float g = DB_CO( control_input[0].control_value() );
 
        for ( unsigned int i = 0; i < audio_input.size(); ++i )
        {
            if ( audio_input[i].connected() )
                buffer_copy_and_apply_gain( (sample_t*)jack_output[i].buffer( nframes ), (sample_t*)audio_input[i].buffer(), nframes, g );
        }
    }
    else
    {
        for ( unsigned int i = 0; i < audio_input.size(); ++i )
        {
            if ( audio_input[i].connected() )
                buffer_fill_with_silence( (sample_t*)jack_output[i].buffer( nframes ), nframes );
        }
    }
}
예제 #2
0
파일: AUX_Module.C 프로젝트: 0mk/non
void
AUX_Module::process ( nframes_t nframes )
{
    if ( unlikely( bypass() ) )
    {
        for ( unsigned int i = 0; i < audio_input.size(); ++i )
        {
            if ( audio_input[i].connected() )
                buffer_fill_with_silence( (sample_t*)aux_audio_output[i].jack_port()->buffer(nframes), nframes );
        }
    }
    else
    {
        float gt = DB_CO( control_input[0].control_value() );
 
        sample_t gainbuf[nframes];
    
        bool use_gainbuf = smoothing.apply( gainbuf, nframes, gt );

        if ( unlikely( use_gainbuf ) )
        {
            for ( unsigned int i = 0; i < audio_input.size(); ++i )
            {
                if ( audio_input[i].connected() )
                    buffer_copy_and_apply_gain_buffer( (sample_t*)aux_audio_output[i].jack_port()->buffer(nframes), (sample_t*)audio_input[i].buffer(), gainbuf, nframes );
            }

        }
        else
        {
            for ( unsigned int i = 0; i < audio_input.size(); ++i )
            {
                if ( audio_input[i].connected() )
                    buffer_copy_and_apply_gain( (sample_t*)aux_audio_output[i].jack_port()->buffer(nframes), (sample_t*)audio_input[i].buffer(), nframes, gt );
            }
        }
    }
}