public boolean put_next_sample(int channels, SynthesisFilter filter1, SynthesisFilter filter2)
	  {
	    boolean returnvalue = super.put_next_sample(channels, filter1, filter2);
	    if ((channel2_allocation != 0) && (channels != OutputChannels.LEFT_CHANNEL))
	    {
	  	 float sample = channel2_samples[samplenumber - 1];
	  
	  	 if (groupingtable[1] == null)
	  		sample = (sample + channel2_d[0]) * channel2_c[0];
	  
	  	 if (groupnumber <= 4)
	  		sample *= channel2_scalefactor1;
	  	 else if (groupnumber <= 8)
	  		sample *= channel2_scalefactor2;
	  	 else
	  		sample *= channel2_scalefactor3;
	  	 if (channels == OutputChannels.BOTH_CHANNELS)
	  		filter2.input_sample(sample, subbandnumber);
	  	 else
	  		filter1.input_sample(sample, subbandnumber);
	    }
	  	return returnvalue;
	  }