Hello PyTone Team,
many thanks for this fine piece of software. It did a good job on some of my parties already. I start PyTone using a thin client on a server. It is configured to use two internal players with the drivers oss and esd, so i can hear the main player on the server, connected to the amplifier and the second player on the thin client, using a headphone (really cool, no one has this, even the win guys :-).
In some cases, when the server is under load, the sound stutters a bit. Setting realtime priority to PyTone did not really help, as well as with the throttleoutput parameter. Now i would give arts/jack a try, but i did not get PyTone to use the arts driver. "artsd" is running and works with other players, but Pytone throws this error message:
Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/pytone/pytone.py", line 136, in ? playerids = [services.player.initplayer("main", config.player.main), File "/usr/lib/python2.4/site-packages/pytone/services/player.py", line 67, in initplayer raise RuntimeError("Cannot initialize %s player: type=internal, device=%s" % (id, config.device)) RuntimeError: Cannot initialize main player: type=internal, device=/dev/dsp
Can any one explain how to use PyTone with the arts driver (maybe special parameters to artsd) or has a tip for the stuttering sound?
Many Thanks Andreas
In some cases, when the server is under load, the sound stutters a bit. Setting realtime priority to PyTone did not really help, as well as with the throttleoutput parameter. Now i would give arts/jack a try, but i did not get PyTone to use the arts driver. "artsd" is running and works with other players, but Pytone throws this error message:
What version are you using? The latest versions have some areas that have been optimized to help prevent dropouts.
Are you using a low-latency kernel with all the suggestions from the low latency audio FAQ?
IMHO using arts or jack won't go anywhere to solve your stuttering problem. Arts is only going to make that much more additional work for the server. Jack is designed to do low latency, no dropout audio but its focus is multiple clients. In the single client case jack offers few benefits. In all cases the _client_ has to produce that audio in a timely manner or no audio server will help.
The issue is that PyTone has some areas where it's blocking the audio generating thread for too long. Finding this is non-trivial as PyTone is heavily multi-threaded.
It would help if you can come up with the a set of circumstances that can duplicate the dropouts.
Anyone know if running PyTone under an Oprofile kernel would help to sort this out? I'm not sure what level of info it can get from Python threads.
-- Richard A. Smith