= Investigating audio problems = == Overview == To pinpoint the issue further, it first must be determined if the audio problems are on the guest or on the host side. For the host side there are a variety of so-called host audio drivers (backends) which are needed in order to support the host operating system playing back and recording audio from / to the guest (VM). '''Tip of the day''': Best is to copy & paste the following commands to avoid typing errors. == Dumping audio output == Dumping guest audio output as .WAV (wave) files to the host is available since '''!VirtualBox 5.2'''. For older !VirtualBox versions an instrumented (debug) build must be used (will be given on request). To enable dumping guest audio output, do the following: 1. Make sure that the affected VM is not running anymore. 2. Run {{{ VBoxManage setextradata "VBoxInternal2/Audio/Debug/Enabled" "true" }}} 3. Start the affected VM again. Now, when performing any audio output on the guest (playback), there will be separate .WAV files created in the host's temporary directory. For Windows hosts this by default is '''C:\Windows\Temp''' or '''C:\Users\\AppData\Local\Temp'''. For Linux / Solaris / MacOS hosts this by default is '''/tmp/'''. When in doubt, have a look at the '''$TMP''' or '''$TMPDIR''' environment variables respectively. The created .WAV files then can be played back with any regular media player on the host, e.g. VLC, MPlayer or Windows Media Player. === Diagnosis === ||= '''Playback in running VM''' =||= '''Dumped file(s)''' =||= '''Diagnosis''' =|| || Distorted || OK || Host driver (backend) problem || || OK || Distorted || Host mixing problem || || Distorted || Distorted || Device emulation problem || == Enable extended logging == '''Note: These steps are only for !VirtualBox older than 5.2. Newer versions perform those steps automatically.''' As always when it comes to diagnosing problems with !VirtualBox the appropriate VBox.log is useful to have. To gather more verbose information about the actual audio state, please do the following: 1. On '''Windows''' * Shut down all VM instances and !VirtualBox programs, including VBoxSVC.[[br]][[br]] * Run {{{ setx VBOX_RELEASE_LOG "drv_host_audio.e.l.l2.l3.f+drv_audio.e.l.l2.l3.f+audio_mixer.e.l.l2.l3.f+dev_hda_codec.e.l.l2.l3.f+dev_hda.e.l.l2.l3.f+dev_ac97.e.l.l2.l3.f" /M }}} on an Administrator command prompt to set this on a system-wide level (required).[[br]][[br]] * Close the Administrator terminal * Open a new terminal as '''regular user'''[[br]][[br]] * verify that the changes were applied correctly be running {{{ echo %VBOX_RELEASE_LOG% }}} * Start the !VirtualBox Manager. 2. On '''Linux/OS X/Solaris''', stop the !VirtualBox manager and restart it by running the following from a terminal: {{{ VBOX_RELEASE_LOG=drv_host_audio.e.l.l2.l3.f+drv_audio.e.l.l2.l3.f+audio_mixer.e.l.l2.l3.f+dev_hda_codec.e.l.l2.l3.f+dev_hda.e.l.l2.l3.f+dev_ac97.e.l.l2.l3.f VirtualBox }}} 3. Start the machine you want to diagnose audio for. 4. Perform and reproduce the audio operation. == Ok, all done! What now? == '''Important''': The newly created VBox.log log file must contain the line {{{ Audio: Verbose logging enabled }}} Please collect the VBox.log from the host, pack it (ZIP, RAR) into an archive and submit that archive as part of a new or existing bug report at our [https://www.virtualbox.org/wiki/Bugtracker public bug tracker]. '''Note:''' Without the log file we cannot diagnose your issue, so please make sure to always attach that. Thank you.