“意外的令牌:无效”无论位置如何,for循环导致处理IDE时出错?
我目前正在尝试在处理 IDE 中编写一个简单的音频延迟草图。我不断收到指向我的 Void Setup() 函数的“意外标记:Void”错误。如果我注释掉这个 for 循环的内容:
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;
}
}
}
有人可以帮忙吗?
I'm currently trying to code a simple audio delay sketch in the processing IDE. I keep getting an "unexpected token: Void" error pointed at my Void Setup() function. If I comment out the contents of this for loop:
for (int i = 0; i < output.length; i++)
{
output[i] = (audioData[i]+audioData[i-44100];
}
then this error does not appear. This error occurs regardless of which function i put this loop in, and I've tried coding it in alternate ways. No luck.
Here's the code for the tab that's giving me trouble:
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;
}
}
}
can anyone help?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
也许您忘记用 ')' 关闭括号?
我在您提供的代码中没有看到循环。
Perhaps you forgot to close the bracket with a ')' ?
I don't see the loop in the code you gave.
看到那个
(
?它需要消失:)See that
(
? It needs to go :)您有一个未封闭的
(
.You have an unclosed
(
.