Revision 1.0 - February 8, 2015
Introduction
GeekPerfect is an audio playback application for Mac computers that supports multiple audio file formats, up to and including Direct-Stream Digital (DSD).
In order to use GeekPerfect with the Geek Out and Geek Pulse digital-to-analog converters (DACs) to play music on Mac computers, it must be configured to send the appropriate signal data.
This document provides the steps necessary to setup GeekPerfect in Mac OS X Mavericks, configure the Geek Out/Geek Pulse as the output device, and configure DSD playback.
This document assumes the Geek Out/Geek Pulse output device is connected and powered on.
Getting Started
After purchasing and downloading GeekPerfect, the executable file will need to be extracted from the zip file. Once the executable file is extracted it can be run from the Downloads folder, or moved to the Applications folder and run from there. There is no installation required.
GeekPerfect sports a very simple, unobtrusive interface. When it is running, a black GeekPerfect icon will be present in the top right corner of the screen, near the date and time (shown here to the left of the Volume icon). This icon is referred to as the Menu Bar Icon.
GeekPerfect comes pre-configured with sensible defaults for most users. To start using GeekPerfect, run the program, click on the Menu Bar Icon, and select Preferences. From there the Audio Output Device to be used can be selected from the drop-down. Note that any external audio output devices that have been disconnected or switched off may not appear in the list. Re-connect the device, switch it on, then close and re-open the Preferences menu.
When playing music in iTunes, GeekPerfect takes control of the audio playback. While GeekPerfect is playing music, it assumes exclusive ownership of the output device it is using (known as "hog" mode). This means that other apps will not be able to output sound through that device until GeekPerfect releases control. When GeekPerfect has taken control of an output device, its Menu Bar Icon changes to green. To release control, stop iTunes, or stop or disable GeekPerfect from the context menu accessed from the Menu Bar Icon.
iTunes is still used to control all aspects of playback such as playing, pausing, or moving the track position slider forward and backward.
A quirk of iTunes is that although it internally has three states: “playing”, “paused”, and “stopped”, its main playback control only permits toggling between the “playing” and “paused” states. It only enters the “stopped” state when it reaches the end of a playlist, or when it is forced into the “stopped” state by going to the Controls menu and clicking Stop (or clicking Stop in the GeekPerfect drop-down menu). This is important to remember, as GeekPerfect will continue to “hog” the Audio Output Device if iTunes is left in the “paused” state, preventing other Apps from accessing it. You can verify this by observing that GeekPerfect’s Menu Bar Icon is still green.
Menu Bar Icon
The GeekPerfect Menu Bar Icon has two functions. It shows the state of GeekPerfect (black=inactive, green=playing, grey=disabled), and it opens the drop-down menu when clicked, allowing access to various features:
• The top line shows the status of GeekPerfect. It will either display “Stopped”, or “Playing” followed by the audio format currently being played.
• About opens a window showing assorted information about GeekPerfect, including the Version Number.
• Create Hybrid Files... opens the Hybrid file creator dialog used to convert (and import into iTunes if selected) DSD files so they can be played in iTunes.
• Check For Updates... communicates with the GeekPerfect Server to determine whether any updates are available, and if so, it can download and install them. This functionality requires an active Internet connection.
• Launch iTunes and Quit iTunes allow you to manually launch and quit iTunes.
• Stop causes both iTunes and GeekPerfect to enter the “stopped” state. iTunes will stop playing the current track, and GeekPerfect will relinquish control of the audio output device.
• Disable GeekPerfect and Enable GeekPerfect will disable and re-enable GeekPerfect. Disabling GeekPerfect will invoke the Stop command.
• The Volume control slider adjusts the volume of the active Audio Output Device, such as the Built-In Output or an external DAC. Not all devices support volume control. Test to confirm whether the Volume control is active for the output device, or if it is greyed out/non-responsive.
• Preferences... opens the GeekPerfect Preferences window. More detail on these options is provided below.
• Device Info... opens the Device Information window. This generates system information that can be very useful to support in the event there is a problem to report. Be sure to always include the Device Information report when reporting a problem to support.
• Quit GeekPerfect closes GeekPerfect and stops any playback.
Preferences...
GeekPerfect comes with a variety of options that allow the audio to be optimized for the output device. As GeekPerfect is designed primarily to be an audiophile music player, some of these options allow choices to be made between the best sound quality, the overall effectiveness of the integration with iTunes, and stability.
The options available in the GeekPerfect Preferences window are General, Sound, iTunes, DSD, and Advanced. The various settings available under each are described below.
General
The Audio Output Device is the device that GeekPerfect will use to play all audio. This setting will override any selections made in the OS X System Preferences or Audio MIDI Setup. During playback the selected Audio Output Device is put in “hog” mode, sometimes known as exclusive mode, which blocks other apps (including OS X) from accessing it. This is evident when the Menu Bar Icon is green.
Integer Mode is considered by many audiophiles to be the most sonically accurate playback mode and is supported in OS X 10.9 (Mavericks) and OS X 10.10 (Yosemite). Whenever Integer Mode is available it is highly recommended to enable it as it generally improves sound quality.
If the combination of OS X and external DAC being used supports Integer Mode, the Device Capability section in the General tab will display a check box where you can enable it. If either OS X or your DAC does not support Integer Mode, the check box will be greyed out.
If OS X supports Integer Mode and there is static or persistent clicks instead of music, disable Integer Mode and contact support. Please be sure to collect the output of the Device Info report prior to disabling Integer Mode and provide it in the support request.
The Memory Buffer (MB) option controls how much system RAM GeekPerfect sets aside to store decoded and processed music in memory for playback. The default value of 256MB is sufficient for most CD quality music, while 512MB is recommended.
Generally the Memory Buffer (MB) value should not be greater than one quarter of the total amount of RAM in the system. However, there is little practical benefit to allocating more than 1024MB.
Sound
SRC stands for Sample Rate Conversion. A sample rate converter is an algorithm used to change the sampling rate of music. Some audiophiles believe upsampling (converting to a higher sampling rate) can improve sound quality. This option controls which algorithm will be used for both upsampling and downsampling (converting to a lower sampling rate).
GeekPerfect will also use the selected algorithm to downsample any high-resolution tracks that cannot be played at their native sample rate if the selected output device does not support it.
It is highly recommended that the SoX VHQ Intermediate algorithm be used as it provides a good balance for output with minimal resource overhead.
Upsampling controls whether GeekPerfect will increase the sample rate of the music being played, and to what extent. If the option to Upsample by powers of two is selected, GeekPerfect will only double, quadruple, etc ... the sample rate.
It is recommended that files not be upsampled unless listening tests have been performed to determine the results are preferred. If so, the SRC will generally perform better when using Upsample by powers of two.
Dithering is an optimized mathematical process used to achieve the best results when performing a sample rate conversion.
It is recommended that Triangular High Pass Dither be used, as it is mathematically optimal for best results.
If there is a reason to limit the sample rate value sent to the Audio Output Device to a value lower than the maximum value supported, it is set in the Max Sample Rate drop-down. If not, it is recommended to set it to Maximum Supported.
If there is a reason to limit the maximum bit depth sent to the audio output device to a value lower than the maximum value supported, it is set in the Max Bit Depth drop-down. If not, it is recommended to set it to Automatic (Optimal). However, Maximum may be a better choice if the iTunes (software) volume slider is used often.
The device buffer referenced in the Use Maximum Device Buffer Size setting is not the same as the audio buffer configured by the Memory Buffer (MB) setting. The output device driver configures the size of the device buffer to be used for sending data to the Audio Output Device.
It is recommended that Use Maximum Device Buffer Size not be enabled. When selected, this will configure GeekPerfect to send as much data to the DAC as possible all the time. This tends to cause more issues, particularly when Integer Mode is used. It is provided here only as a diagnostic tool to be used under the direction of Support.
The Default to Inverted Polarity setting is provided as some music systems are able to detect and reveal subtle sonic differences when the music is played with the correct absolute polarity. Many audio components reverse the polarity of the signal as it passes through them and this setting reverses the polarity of every track, compensating for such behavior in the downstream electronics.
This effect is usually very difficult to detect, and it is recommended that Default to Inverted Polarity not be enabled if you are not very familiar with the concepts behind it.
GeekPerfect implements Gapless Playback by pre-loading the next track to be played into a second memory buffer while the first is playing. This way, switching between tracks is instantaneous. If Gapless Playback is not required, or there are issues with files not playing correctly, enable Disable Gapless Playback and GeekPerfect will no longer attempt to pre-load the next track into memory.
Additionally, there is a known problem when using iTunes Shuffle mode. iTunes always reports to GeekPerfect that Shuffle mode is off, regardless of the actual setting, and this inevitably causes GeekPerfect to queue the wrong track for gapless playback. It is recommended that Disable Gapless Playback be enabled whenever iTunes is in Shuffle mode.
iTunes
The Start iTunes on Startup setting allows iTunes to be automatically launched whenever GeekPerfect is launched. It is recommended that this option be enabled, as it will save time in launching both applications.
The Minimize iTunes Interaction option reduces CPU use in GeekPerfect and iTunes by reducing interaction between the two applications. When enabled, GeekPerfect takes control of the iTunes track progress bar, and only updates it once per second.
It is recommended that Minimize iTunes Interaction be enabled as it can subtly improve sound quality.
iTunes Response Speed controls how often GeekPerfect checks iTunes status. This determines how quickly or slowly GeekPerfect responds to changes such as track pausing, or dragging of the track progress bar. Faster response speed increases CPU use, and may have an adverse affect on sound quality. This option is disabled when Minimize iTunes Interaction is enabled.
GeekPerfect relies on iTunes for information on what track to play next, in order to manage gapless playback. Sometimes iTunes provides incorrect information to GeekPerfect, and the wrong track is queued up and played. When GeekPerfect tries to recover it can cause stuttering, and gaps in gapless playback. Enabling Default to Fixed Indexing relies on an undocumented feature of iTunes that indexes the contents of the whole music library, which helps with this issue.
It is recommended that Default to Fixed Indexing be enabled to help mitigate potential playback issues.
GeekPerfect can only play audio output through an exposed device, such as those listed in Audio Midi Setup. As of OS X 10.8 (Mountain Lion) AirPlay is now an exposed device that GeekPerfect can access.
When GeekPerfect is playing a track, iTunes is also playing the track in the background. The iTunes playback is directed to an unused output device, but the sound is muted. Which unused output device is selected is determined by OS X, and depends on how the system is configured. If OS X selects the AirPlay device, this can unexpectedly turn on or mute connected AirPlay devices.
Enabling Stop iTunes using AirPlay Devices will help prevent some of these issues, however it is recommended that it stay disabled, unless there are AirPlay devices in use.
DSD
Enable DSD will configure GeekPerfect to play DSD audio files natively. If DSD playback is not required it should never be enabled.
Enabling DSD will display a confirmation window with a warning that certain conditions must be met before selecting DSD playback to be enabled.
The most important condition is the presence of a DSD-compatible DAC that is connected to the computer and powered on.
Once DSD is fully enabled it will ask for confirmation that the previously configured Audio Output Device is DSD-compatible. Once confirmed, the DAC and its DSD playback capabilities will be displayed in the DSD Device Window.
PLEASE NOTE: There is currently no way for OS X or GeekPerfect to automatically detect whether or not an Audio Output Device supports DSD playback. It is the responsibility of the user to confirm the capabilities of the DAC to be used. If a non-compatible device is used for playback it can generate a very loud hiss that can conceivably cause equipment damage, or damage the hearing of a listener using headphones.
Under no circumstances will LH Labs be held liable for any such consequences.
By default iTunes does not recognize DSD files and cannot import or play them. In order for GeekPerfect to play DSD files they must be converted to a format that is recognized by iTunes. The Create Hybrid Files… option in the Menu Bar Icon drop-down is used to create these files.
Please refer to the Hybrid-DSD Files section below for more detail on how to create the necessary files.
Advanced
The I/O Procedure Duration option operates at the connection between the GeekPerfect sound engine and OS X.
Changes in this setting can potentially provide improved sound quality in high-resolution audio systems, but could also cause sound corruption, and other issues. Thorough testing needs to be done to determine the best value to use. While testing, be sure the computer is only being used for audio playback in order to achieve the best results.
To test, the slider should only be moved one tick to the left and evaluated for improvements in sound quality, and monitored for any issues with GeekPerfect operation. Each time the slider the slider is moved, playback will have to be stopped and restarted to initiate the change.
Hybrid-DSD Files
Software such as iTunes does not support importing or playback of DSD files. To get around this limitation Hybrid-DSD files are used.
Hybrid-DSD files are a special file type that was designed to look like normal Apple Lossless files, and comprise a PCM version of the DSD original. Because they are normal Apple Lossless files they can be imported into iTunes, and will play normally whether or not GeekPerfect is present. However, they also contain the original DSD data hidden inside of them, which GeekPerfect is capable of reading and playing. If DSD support is enabled, and if the selected Audio Output Device supports DSD, then GeekPerfect will automatically play the DSD content of a Hybrid-DSD file. Otherwise it will play the PCM content.
Hybrid-DSD files created by GeekPerfect are given a file name in the form of "filename.DSDh.m4a" where "filename" is taken from the original DSD file. The ".DSDh" is inserted to help identify Hybrid-DSD files from others. It has no other purpose, and can be removed manually if preferred. Additionally, Hybrid-DSD files are created with the statement "Hybrid File created by GeekPerfect" added to the comments section of the file's metadata, along with "DSD64" or "DSD128" depending on the format of the DSD content. This is for convenience only, and permits the iTunes Smart Playlist feature to identify and manage Hybrid-DSD files. These comments may be removed, which will not affect playback in any way.
When creating a Hybrid-DSD file, GeekPerfect will only create PCM content at 16-bits with a sample rate of 44.1kHz, but the DSD content is always stored at its native sample rate.
Hybrid-DSD File Creation
To create Hybrid-DSD files, select Create Hybrid Files... from the GeekPerfect Menu Bar Icon drop-down menu. A dialog window with a checkbox labeled Import into iTunes, along with a + button is displayed.
To create Hybrid-DSD files, click on the + sign, and navigate to the folder containing the DSD files you wish to convert. Select the file (or multiple files) you wish to convert and click Open.
The conversion(s) will commence immediately, and a progress bar will be displayed for each file. Depending on the number of CPUs present, multiple files will begin to convert simultaneously. If the conversion was terminated prematurely or failed, an error message will appear in red below the progress bar. At the right of each progress bar is an X icon. Clicking on this icon will terminate a conversion in progress, or will remove the progress bar of a completed conversion from the window.
During the conversion a new file is created leaving the original DSD file intact. GeekPerfect will place the new Hybrid-DSD files in the same location as the original DSD files. If a file of the same name already exists in that folder, GeekPerfect will not attempt a conversion, the progress bar will remain empty, and an error message stating “Output file exists” will be displayed.
If Import into iTunes is enabled, the new Hybrid-DSD file will be automatically imported into iTunes. If iTunes has been configured to manage its own Music Library, and copy all tracks to the iTunes Media Folder as part of the import process, there will be duplicates of the Hybrid-DSD files stored on the hard drive.
Once all files are imported into iTunes, it is highly recommended to delete the Hybrid-DSD files from their location in the folder with the original DSD files.
Converting DSD files to PCM is a mathematically intense process and can be very time-consuming. The time required to create a Hybrid-DSD file can be upwards of 25% of the duration of the track, depending on the power and number of CPUs available.
While conversions are in progress, other tasks will have a lower priority and will likely become less responsive. Do not use GeekPerfect for playback at the same time as clicks, pops, and pauses in playback are likely to occur.
Support
If there are any issues completing any of the steps in this document, understanding any of the concepts, or with audio playback, please open a support ticket through the LH Labs support page at: