mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-11-04 07:12:33 +01:00 
			
		
		
		
	limit voices to working number
This commit is contained in:
		
							parent
							
								
									9632b3379f
								
							
						
					
					
						commit
						dfb401b950
					
				@ -128,14 +128,17 @@ static void end_cb1(DACDriver * dacp, dacsample_t * samples, size_t pos) {
 | 
				
			|||||||
  //}
 | 
					  //}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  uint16_t sample_sum = 0;
 | 
					  uint16_t sample_sum = 0;
 | 
				
			||||||
  for (int i = 0; i < voices; i++) {
 | 
					  int working_voices = voices;
 | 
				
			||||||
 | 
					  if (working_voices > 3)
 | 
				
			||||||
 | 
					    working_voices = 3;
 | 
				
			||||||
 | 
					  for (int i = 0; i < working_voices; i++) {
 | 
				
			||||||
    dac_if[i] = dac_if[i] + ((frequencies[i]*(float)DAC_BUFFER_SIZE)/(float)DAC_SAMPLE_RATE*1.5);
 | 
					    dac_if[i] = dac_if[i] + ((frequencies[i]*(float)DAC_BUFFER_SIZE)/(float)DAC_SAMPLE_RATE*1.5);
 | 
				
			||||||
    while(dac_if[i] >= DAC_BUFFER_SIZE)
 | 
					    while(dac_if[i] >= DAC_BUFFER_SIZE)
 | 
				
			||||||
      dac_if[i] = dac_if[i] - DAC_BUFFER_SIZE;
 | 
					      dac_if[i] = dac_if[i] - DAC_BUFFER_SIZE;
 | 
				
			||||||
    sample_sum += dac_buffer[(uint8_t)round(dac_if[i]) % DAC_BUFFER_SIZE] / voices;
 | 
					    sample_sum += dac_buffer[(uint8_t)round(dac_if[i]) % DAC_BUFFER_SIZE] / working_voices;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (voices > 0) {
 | 
					  if (working_voices > 0) {
 | 
				
			||||||
    samples[0] = sample_sum;
 | 
					    samples[0] = sample_sum;
 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
    samples[0] = DAC_SAMPLE_MAX;
 | 
					    samples[0] = DAC_SAMPLE_MAX;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user