• Audio
  • Audio in analog ouputs

Hi! I want to play 6 tracks in 6 different analog outputs at the same time and i I am having problems establishing what I want to reproduce in each output in the code. I was doing it modifying the audio output like this:

		    for (unsigned int n = 0; n < context->audioFrames; ++n) {
		

			    outAudio[0] = gSampleBuffers[Wav1][0][gReadPointer0];
				gReadPointer0++;
				outAudio[1] = gSampleBuffers[Wav2][1][gReadPointer1];
				gReadPointer0++;   
			    if (gReadPointer0 >= gSampleBuffers[Wav1][0].size()) {
  
			                    gReadPointer0 = 0;
			            }
	            if (gReadPointer1 >= gSampleBuffers[Wav2][0].size()) {

	                    gReadPointer1 = 0;
	            }
				// Salida a los canales de audio
				for (unsigned int i = 0; i < context->audioOutChannels; ++i) {
				    audioWrite(context, n, i, outAudio[i]); // Copiar las muestras a los canales de salida
				
					        // Salida canales ANALÓGICOS
				    if (n%audioAnalogRate==0){ 
				    	float outAnalog=(outAudio[i]*analogAmp)+analogAmp;  
						analogWriteOnce(context,n/2,i,outAnalog);
				    }	
				}
				
		}

In this way i can only have two different tracks because i only have 2 audio outputs. If someone could give me a hand.

    Anaaa080

     				    if (n%audioAnalogRate==0){ 
     				    	float outAnalog=(outAudio[i]*analogAmp)+analogAmp;  
     						analogWriteOnce(context,n/2,i,outAnalog);
     				    }

    this should be in a dedicated loop for analog channels where you don't read from outAudio[i] but outAudio[i + context->audioOutChannels]. E.g.:

    				// Salida a los canales de audio
    				for (unsigned int i = 0; i < context->audioOutChannels; ++i) {
    				    audioWrite(context, n, i, outAudio[i]); // Copiar las muestras a los canales de salida
    				}
    				// Salida canales ANALÓGICOS
    				for (unsigned int i = 0; i < context->analogOutChannels; ++i) {
    				    if (n%audioAnalogRate==0){ 
    				    	float outAnalog=(outAudio[i + context->audioOutChannels]*analogAmp)+analogAmp;  
    						analogWriteOnce(context,n/2,i,outAnalog);
    				    }