Audio Configuration
From Performous
Normally Performous detects everything automatically and just works. This process may, however, fail if other applications are keeping your sound card to themselves or if you have strange audio hardware. The first place to try is the Audio Devices screen accessible through the configuration menu. There you can assign different devices to mics and playback.
Contents |
Command line configuration
(For help on versions before 0.6.0, see end of page.) Most people will be able to configure audio through the new Audio Devices screen, but if your devices need more complicated setup, you'll need to configure through command line. The troubleshooting section applies to both cases.
The old --pdev, --mics, --pdvehelp and --michelp parameters have been replaced by --audio and --audiohelp.
Let's try audiohelp, type in: performous --audiohelp
You should get something similar to this:
Performous 0.5.1+ Internationalization: Enabled MIDI I/O: Enabled Webcam support: Enabled MIDI devices: Midi Through Port-0 PortAudio devices: 0 HDA Intel: AD198x Analog (hw:0,0) (2 in, 0 out) 1 pulse (32 in, 32 out) 2 default (32 in, 32 out) 3 /dev/dsp (16 in, 0 out) Example --audio parameters --audio "out=2" # Pick first working two-channel playback device --audio "dev=1 out=2" # Pick device id 1 and assign stereo playback --audio 'dev="HDA Intel" mics=blue,red' # HDA Intel with two mics --audio 'dev=pulse out=2 mics=blue' # PulseAudio with input and output
The audio devices you have available are listed under "PortAudio devices:". Below them are a few examples how to put them into use.
For each device you want to use, you type one --audio parameter. You must always use quotes if there are spaces involved. Notice how single quotes can be used to avoid the need to escape double quotes in argument lists.
Let's now take a look at the keyword=value pairs that can be passed to --audio:
-
dev- This can be either the device id number or part of (or the whole) device string id. You can also leave it out to use the first available device matching your other criteria. -
out- Specify the number of output channels to use. A value of 2 means stereo playback and any other value will probably result in errors. So useout=2for the device you wish to use for playback and leave it out in others. -
mics- This is a list of comma separated values picked from the following:blue,red,green,orange. It assigns microphones to the device's input channels. -
rate- Sample rate in Hz. Default is 48000. - Note that if the device supports it, you can have both input and output at the same device.
Performous has some useful defaults, like "out=2" and "mics=blue", which should pick a mic and speakers for you automatically. Note that specifying your configuration from command line overrides the defaults.
Once you have found a working configuration, go to the configuration menu (accessible through the main menu) and hit Ctrl+S - this saves the config so that you don't need to do it again.
Troubleshooting
- My mics don't work.
- Try different devices as instructed above. Also make sure the mic is not muted or disabled from the system control panel. The mic itself might also have on off-switch. Make sure your mic is alright by trying it in an other app.
- The audio sounds very screwed.
- Increase the Suggested Latency setting from the configuration screen, save and restart Performous and see if that helps.
- Maybe try different sample rate, e.g. 44100 Hz.
- There is a lot of latency / lag.
- Decrease the Suggested Latency setting from the configuration screen, save and restart Performous and see if that helps.
- See the sections below for help on tuning the audio sync in gameplay.
- The game hangs at start (black screen) or with
--audiohelp.- The audio library has trouble aquiring devices. Make sure other apps are not using them, try configuring different device into use, or disable the device that causes trouble (you might get help on identifying it by running
performous --log audio/.*
- The audio library has trouble aquiring devices. Make sure other apps are not using them, try configuring different device into use, or disable the device that causes trouble (you might get help on identifying it by running
- The game crashes/quits after entering new settings in audio devices screen.
- The audio backend library has hanged, it has some trouble closing the devices so Performous detects this and quits. Your new settings are saved beforehand so a simple restart of the program should apply them.
One problem worth a special mention is PulseAudio, an audio server used by modern Linux distros. If you are having any audio issues, try starting Performous with PulseAudio suspended:
pasuspender -- performous
The pasuspender program comes with PulseAudio utilities.
Adjusting audio sync
Usually it takes a fraction of a second for the sound to come out of the speakers after it has been sent out by Performous. Similarly, there's a delay on audio input. Some flat panel displays also introduce rather long delay from when the image is rendered to when it is actually displayed. Performous has to compensate for all these latencies in order to allow smooth gameplay.
A/V synchronization (all modes)
This is the difference between the time it takes for the audio and the video to get out of the system. If the setting is incorrect, notes on screen will pass the black line at an incorrect time.
Adjust with Ctrl+F1 and Ctrl+F2 in singing screen.
Audio roundtrip latency (singing)
This is the time it takes for the audio to go out thru the sound card, to the speakers, and in via the microphone and the sound card back, all around until Performous has detected the tone. If the setting is incorrect, the pitch wave will appear mispositioned on the notes, when the singer matches his timing on what he hears (rather than on the notes seen on screen).
While in singing screen, press Ctrl+S to enter synth mode, which will play the notes using synthesized sine waves. Place the microphone near a speaker and adjust with Ctrl+F3 and Ctrl+F4 until the pitch wave matches the notes.
Audio/controller latency (instruments and dancing)
This setting controls the synchronization between audio output and controller input. The value should be the controller input latency plus the audio output latency. Adjust it with Ctrl+F5 and Ctrl+F6 so that you can hit the notes most precisely by ear (without looking on the screen).
Tips for reducing audio latency
In order to see your singing on screen as realtime as possible, you should try to minimize the audio input latency and the video output latency. The video output latency can be affected by frame rate and by your display, but there is little you can do about it, and also the amount of latency is usually not more than 50 milliseconds at most. The audio input latency is affected by resampling/mixing audio servers such as PulseAudio. Preferrably you should use ALSA or JACK directly with your card, as this will provide the minimum latency.
Using analog connection to your stereo instead of S/PDIF can also often reduce the latency slightly.
Microphone to speakers
Old audio configuration
This section applies to pre-0.6.0 era.
Audio playback (if autodetection fails)
Use --pdev <device string> to set the audio API (alsa, pulse, jack, ...). Some devices also take parameters, e.g. alsa:plughw:0,2 will use driver alsa with ALSA device string "plughw:0,2" (conversion plugin + first sound card and the third subdevice of that). Use --pdevhelp to get the list of available devices and further help.
Microphones (if autodetection fails)
--mics may be used for manual configuration and --michelp displays the list of devices and their usage. You may also specify the mics option multiple times to use more than one sound card, if you have many.
If you don't specify anything, Performous defaults to two microphones and will prefer the SingStar or Rock Band ones, if available.
On Windows the only available driver is pa19, but you can still specify the number of channels (the default is 2) and the sound card to use, e.g. --mics 1@pa19:2 (one mic at sound card 2). Please notice that the most recently plugged device is used automatically, so in most cases no configuration is required.
Windows Vista misdetects SingStar USB microphones as a mono microphone so that only the blue microphone works. You have to change it to stereo (see Advanced tab on the device configuration that you can access by right clicking the volume control icon in systray).
