«Testigo inesperado: Void» error en el procesamiento de la IDE causada por el bucle for, independientemente de su posición?

Actualmente estoy tratando de código de un simple retraso de audio sketch en el procesamiento de la IDE. Sigo recibiendo un «testigo inesperado: Void» error señalado en mi Void Setup() función. Si yo comente el contenido de este bucle for:

for (int i = 0; i < output.length; i++)  
{  
    output[i] = (audioData[i]+audioData[i-44100];  
}

a continuación, este error no aparece. Este error se produce independientemente de la función que he puesto este lazo en, y he tratado de codificación en formas alternativas. No hubo suerte.

Aquí está el código de la ficha que me da problemas:

AudioThread audioThread;
//we'll use this to store the audio data we read from the audio file
float[] audioData;
float[] delayData;
//we'll use this to remember our position in the audio data array
float readHead;
float readHeadDelay;

void setup() {
    size(500, 400, P2D);
    //the audio file we want to play, which should be in the data dir
    String audioFilename = "myk_hats_dub1.wav";

    //read the audio data into a float array using the AudioFileIn class
    audioData = new AudioFileIn(audioFilename, this).getSampleData();
    delayData = new AudioFileIn(audioFilename, this).getSampleData();

    //print how many samples we read
    println("Read " + audioData.length + " samples");
    //set the read head to zero, the first sample
    readHead = 0;
    readHeadDelay = 44100;
    //start up the audio thread
    audioThread = new AudioThread();
    audioThread.start();
}

void draw() {
    background(255);
    fill(0);
}

//this function gets called when you press the escape key in the sketch
void stop() {
    //tell the audio to stop
    audioThread.quit();
    //call the version of stop defined in our parent class, in case it does
    //anything vital
    super.stop();
}

//this gets called by the audio thread when it wants some audio
//we should fill the sent buffer with the audio we want to send to the
//audio output
void generateAudioOut(float[] buffer) {

    for (int i = 0; i < buffer.length; i++) {

        //copy data from the audio we read from the file (audioData)
        //into the buffer that gets sent to the sound card
        buffer[i] = audioData[(int) readHead];

        //add a sample from the other array
        buffer[i] += delayData[(int) readHeadDelay];
        //scale it so it does not go over 1.0
        buffer[i] *= 0.5;

        //move the read head along one, resetting to zero
        //if it goes to the end of the audioData array
        readHead++;
        readHeadDelay++;
        if (readHead >= audioData.length) {
            readHead = 0;
        }
        if (readHeadDelay >= delayData.length) {
            readHeadDelay = 0;
        }
    }

}

alguien puede ayudar?

3 Kommentare

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea