2011-03-24 7 views
0

私は現在、処理IDEで簡単なオーディオ遅延スケッチをコーディングしようとしています。私はVoid Setup()関数で "予期しないトークン:Void"エラーを指摘し続ける。このforループの内容をコメントアウトすると:位置に関係なくforループによって引き起こされたIDEの処理で「予期しないトークン:無効」エラーが発生しましたか?

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

このエラーは表示されません。このエラーは、このループを挿入する関数に関係なく発生し、別の方法でコーディングしてみました。運がない。ここで

は私に迷惑を与えているタブのためのコードです:

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; 
     } 
    } 

} 

誰でも助けることができますか?

答えて

2

おそらく、 ')'で角括弧を閉じるのを忘れましたか?

あなたが与えたコードにループが表示されません。

0

未開封の(があります。

1
output[i] = (audioData[i]+audioData[i-44100]; 
      ^

(を参照してください。それは行く必要があります:)

関連する問題