|
Hi Daniel,
In lugnet.robotics.rcx.java, Daniel Carvalho writes:
> The Sound.playTone method always return immediatly. It seems that it
> only puts the information in a queue, which is then played in
> background.
True
> I could do a call to sleep after the playTone, but the argument should
> be calculated with precision. If i simple use 100 miliseconds there
> would be a delay between the light and the sound:
This does not seem to be a problem with my code;
Motor.A.forward();
for (float x=0; x<1000; x+=0.1f) {
int sx = (int)(Math.sin(x)*100);//calculate sine once
Motor.A.setPower(3+3*sx/100);//avoid negative power
Sound.playTone((int)(1000+sx),10); //duration 100 ms
LCD.showNumber(1000+sx);//show tone
try{Thread.sleep(100);}//wait the 100 ms
catch(InterruptedException e){};
}
The sound, light, and display are pretty much in synch.
> Is there an easier way?
Not that I can see. Good luck.
Roger Glassey
|
|
Message has 1 Reply: | | Re: Sound.playTone
|
| thanks Roger I think if the sirene is kept working for long time, it starts to get out of sync. Probably because the instructions in the for loop also takes some time to execute. I'm away from my rcx for many months and i don't remeber if i took (...) (22 years ago, 22-May-03, to lugnet.robotics.rcx.java)
|
Message is in Reply To:
| | Sound.playTone
|
| hi The Sound.playTone method always return immediatly. It seems that it only puts the information in a queue, which is then played in background. This can be good but can also be a problem to control the program behavior. For instance, i want to (...) (22 years ago, 21-May-03, to lugnet.robotics.rcx.java)
|
3 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|