You must apply the filter immediately after storing the values of ADC, before any processing:
// Licensed under a Creative Commons Attribution 3.0 Unported License.
// Based on rcarduino.blogspot.com previous work.
//
www.electrosmash.com/pedalshield
int in_ADC0, in_ADC1; //variables for 2 ADCs values (ADC0, ADC1)
int POT0, POT1, POT2, out_DAC0, out_DAC1; //variables for 3 pots (ADC8, ADC9, ADC10)
int LED = 3;
int FOOTSWITCH = 7;
int TOGGLE = 2;
int x_0=0, x_1=0, d_0=0, d_1=0; // NO NEED DOUBLE USE INT AND LONG
long f_0=0, f_1=0;
void setup()
{
//ADC Configuration
ADC->ADC_MR |= 0x80; // DAC in free running mode.
ADC->ADC_CR=2; // Starts ADC conversion.
ADC->ADC_CHER=0x1CC0; // Enable ADC channels 0 and 1.
//DAC Configuration
analogWrite(DAC0,0); // Enables DAC0
analogWrite(DAC1,0); // Enables DAC0
}
void loop()
{
//Read the ADCs
while((ADC->ADC_ISR & 0x1CC0)!=0x1CC0);// wait for ADC 0, 1, 8, 9, 10 conversion complete.
in_ADC0=ADC->ADC_CDR[7]; // read data from ADC0
in_ADC1=ADC->ADC_CDR[6]; // read data from ADC1
POT0=ADC->ADC_CDR[10]; // read data from ADC8
POT1=ADC->ADC_CDR[11]; // read data from ADC9
POT2=ADC->ADC_CDR[12]; // read data from ADC10
//USE IT HERE
x_0 = in_ADC0;
f_0 = ((x_0*13)/100) + ((d_0*87)/100);
d_0 = (int)f_0;
in_ADC0 = (int)f_0;
x_1 = in_ADC1;
f_1 = ((x_1*13)/100) + ((d_1*87)/100);
d_1 = (int)f_1;
in_ADC1 = (int)f_1;
//Add volume feature with POT2
out_DAC0=map(in_ADC0,0,4095,1,POT2);
out_DAC1=map(in_ADC1,0,4095,1,POT2);
//Write the DACs
dacc_set_channel_selection(DACC_INTERFACE, 0); //select DAC channel 0
dacc_write_conversion_data(DACC_INTERFACE, y_0);//write on DAC
dacc_set_channel_selection(DACC_INTERFACE, 1); //select DAC channel 1
// dacc_write_conversion_data(DACC_INTERFACE, out_DAC1);//write on DAC
}