Zaphod's Guide to safely consuming foo_pggb_rt (PGGB-RT foobar Component)

"Time is an illusion. Lunchtime doubly so."

Overview

foo_pggb_rt - A PGGB-RT based component for foobar2000 64 bit (Windows v2.0 beta 29 or higher), that upsamples or downsamples your audio tracks in near real-time fashion using near ideal resampling. We are able to do this by using multi-core hardware acceleration in PGGB-RT SDK (developed in collaboration with ADVANPIX). We say 'near real-time' because near ideal resampling requires a finite time. Depending on the length of your track the options you choose, the very first track will take anywhere from a few seconds to a few ten seconds to start. The subsequent tracks would play in a gap-less fashion

Note: foo_pggb_rt requires AVX2 instruction support from the CPU, if your CPU is older than 2013, it will most likely not work.

Tip: PGGB.IT! Version 5.1.2 from Audiowise is a light-weight file remastering application with even more features, and it allows you to save resampled files.

In comparison to PGGB 256 and PGGB-IT! (offline remastering), foo_pggb_rt trades off features for processing speed. Both foo_pggb_rt and PGGB 256 use the same algorithms for 64 bit precision. While foo_pggb_rt is limited in precision to 64 bits, PGGB 256 and PGGB-IT! offer precisions up to 256 bits and also better quality noise shapers at higher precisions.

foo_pggb_rt is very simple to use. Once you have installed and configured foo_pggb_rt, select one or more tracks in your playlist, and just play. right-click and choose 'Enable PGGB-RT', then just hit play. To stop resampling, right-click and choose 'Play normally (disable PGGB-RT)'. foo_pggb_rt is well integrated with Foobar, seek, pause, play etc will work normally. Optionally you can configure foo_pggb_rt to use Replay-gain information. You can also configure foo_pggb_rt to bypass volume control of Foobar and instead use PGGB-RT's noise shaped digital volume control. Consider PGGB-IT! or PGGB 256 for offline resampling if you prefer to batch process or if you wish to process DSD.


Getting Started

There are a few steps before you can start gargle-blasting tunes from Foobar2000 using foo_pggb_rt

  1. If you do not have Foobar2000 64bit installed, please grab the latest 64bit version from here .
  2. [Optional, not required] Download Foobar ASIO component from here Install the component following these simple instructions.
  3. You may also need x64 VC++ redistributable (if it is not installed), if the component does not work, grab and install from here.
  4. Download latest foo_pggb_rt component from here Install the component following these simple instructions. Once installed, in Foobar, the components should show under File->Preferences->components as below:

  5. To Configure PGGB-RT, File->preferences->Tools->PGGB-RT and you will see configuration options. Please refer to Configuration. foo_pggb_rt is free but does not do DSD and batch processing files is better done using off-line converters. If you are interested in offline conversions, please go to here.

  6. In Foobar, go to File->Preferences->Playback and make sure you set ReplayGain processing to none:

  7. This is optional but ASIO is recommended if your DAC supports ASIO driver. Go to: File->Preferences->output to choose your ASIO device to play back.

  8. If you are new to Foobar, to add albums go to Library->configure to add the location of your music files. Go to File->display->Default user interface->Quick setup->Main layout->'Albumlist + tabbed'. Now you should see albums, you can right on a album in the album list, then send it to a play list. You can also drag files onto a playlist. Once you have a playlist, right click and Choose 'Enable PGGB-RT'
  9. Enable: You can select all tracks and mark them or you can select a subset and mark them. Once marked, hitting play will process them using PGGB-RT before playing.
  10. Disable: To disable playing with PGGB-RT, right click on the track(s) and choose 'Play normally (disable PGGB-RT)'
  11. Convert: Use Foobar's inbuilt 'convert' feature to convert and save selected tracks using PGGB-RT. Set 'Maximize Quality' for best results as it does not affect size. Please make sure the output bit-depth you set in PGGB-RT settings matches the output bit-depth of the converted file format you choose. Do not use 32-bit float as output format when output depth is set to 32-bit in PGGB-RT as it results in the conversion of 32bit fixed point to 32bit floats and leads to loss of precision. Wav format is also not recommended if resulting files are larger than 4GB.

Configuration

foo_pggb_rt is already tuned to provide optimal results with very little tweaking needed. In short it is in auto-pilot mode. Go to File->PReferences->tools->PGGB-RT to change the settings.

Settings highlighted by the green box are determined by your DAC and your PC

  1. Sample Rate: Choose a sample rate family that matches the maximum output rate supported by your DAC.
  2. Bit Depth: If your DAC supports 32 bits, then 32 bits is the best option. If your DAC is a 24 bit DAC, dithering or noise shaping is recommended to reduce correlated quantization noise. Bit depths of 16 bits through 32 are an available to help you choose the right bit depth that is optimal for your DAC. For example, some R2R DACs may have a higher settling time for very high sample rates (1Mhz or more), in these cases, choosing lower bit depths may help.
  3. Noise Shapers: Noise shaping helps attain high small signal accuracy in the audible range. The algorithm is based on the bit depth, sample rate you have chosen, and noise filter settings. The noise shaping is very effective in removing quantization noise. Removal of quantization noise results in a very lifelike sound.
    • ‘NS: Optimal’-- PGGB will choose the optimal noise shaping algorithm to remove quantization noise from the audible range if left in ‘Auto ’ (recommended).
    • ‘NS: Extended’ -- Reserve this for your 'problem' tracks that have high background noise or are from old analog transfers that otherwise sound harsh. Use this in combination with HF: Aggressive filter when available.
    • ‘Off (dither)’ -- Choose if you want to bypass adaptive noise shaping and apply dither only (not recommended).
  4. Workers: foo_pggb_rt improves processing speeds by distributing the workload over multiple worker threads. It uses a heuristic based on the available RAM and logical cores to choose the optimal number of worker threads for each track. However, there are other factors (such as heat dissipation and fan noise) that PGGB is not aware. Here, you may use your judgment to cap the maximum number of worker threads. By default, this is the number of logical cores. If you set it to 1 there is no parallism and it may be beneficial to choose this option on a resource constrained PC for processing 176.4k or higher tracks including DXD.
  5. Gain: foo_pggb_rt already scales your tracks to avoid inter-sample-overs to prevent any clipping, it also scales your tracks to maximize headroom when applying EQ. Optionally, You can configure foo_pggb_rt to bypass volume control ('Volume') and ReplayGain ('ReplayGain', 'both') of Foobar and instead use PGGB-RT's noise shaped digital volume control and also apply automatic level adjustment based on ReplayGain when ReplayGain for the track is available.

  6. Processing: foo_pggb_rt can be setup to Maximize speed or maximize quality. Choose 'Maximize Speed' to minimize startup delay and to avoid any gaps between tracks. Choose 'Maximize Quality' if you wish to for the best quality resampling but you are ok with longer start up delays.

Preferences

Settings highlighted by the blue box can be chosen based on your preferences, though the default settings should work best for the majority.

Preferences (NS/HF Filter)
  1. Automatic: We highly recommend leaving it on the ‘Automatic’ preset. The ‘Automatic’ preset will choose the optimal Noise Shaping (NS) and High Frequency Noise Filter (HF Filter) settings for each of your tracks. The relavent settings are disabled as they are already chosen for you.
  2. Manual: The ‘Manual’ preset gives you full control over Noise Shaper (NS) and High Frequency (HF) Noise Filter settings. There is no one-size-fits-all for these settings as the optimal choices for both Noise Shaping and HF Filter choices depend on the music track; more specifically the sample rate of your music track. This is the reason why the settings are split into three categories based on Input Rate. For more information, please refer to Preferences section of PGGB 256 guide.
    • 1fS PCM: 44.1kHz and 48kHz - these have music content till 22 - 24kHz but nothing beyond that.
    • 2fS PCM: 88.2kHz and 96kHz Hi-res tracks - these typically have music content till 40kHz but not significant noise beyond 40kHz.
    • ≥ 4fS PCM: 176.4kHz, 192kHz, DXD (352.8kHz) and higher - these typically have music content till 40kHz but may also contain significant noise beyond 40kHz

Difference between foo_pggb_rt and PGGB Offline

Both foo_pggb_rt and PGGB-Offline (PGGB-IT!, PGGB 256) use the same algorithms for resampling, equalization and noise shaping, resulting the same quality of remastered tracks at 64 bit precision.

  • The main difference between the two is that foo_pggb_rt is limited to 64 bit precision while PGGB-offline supports up to 256 bit precision.
  • foo_pggb_rt does not support batch processing.
  • foo_pggb_rt currently does not support DSD to PCM conversion.

Our recommendation is to use PGGB 256 or PGGB-IT! if you want to remaster DSD. We also recommend PGGB 256 or PGGB-IT! if you own a lot of DXD content with tracks that exceed 10 minutes.


Equalization (PGGB-EQ)

foo_pggb_rt supports EQ, but EQ requires installing PGGB 256 either licensed or trial version is fine. Then it is as simple as importing the EQ filters as described in the PGGB-EQ section of PGGB 256 guide. and then turning Equalization 'On'.


Between foo_pggb_rt and Your DAC

Digital processing within PGGB has been done with the utmost care. When playing back PGGB remastered tracks, a bit perfect transmission to your DAC will yield the best results and when possible, your DAC must be configured to do the least processing.

Setting up your DAC:

  • A direct connection (or the equivalent) to your DAC from the end point is ideal (i.e., not using any upsamplers). Use of re-clockers or regens that do not alter the bits are OK
  • Set foo_pggb_rt output rate to the maximum input PCM rate your DAC supports.
  • Set foo_pggb_rt output bit depth to the native bit depth of your DAC (not the maximum allowed by the Audio driver). In the case of some R2R DACs, the optimal bit depth may depend on the sample rate.
  • If your DAC has the option, set your DAC to NOS mode.
A note about software volume control:

Software volume control may look innocuous, what possible harm could come from converting to 64 bit doubles and changing the level? PGGB’s noise shaper all but eliminates additional quantization noise in the audible range. Any sort of processing such as volume control leads to 64 bit conversion and then truncation back to your DAC’s bit depth (16, 24 or 32). This conversion adds quantization noise back into the track that PGGB worked hard to remove.

Sometimes your DAC does not provide volume control and/or you may prefer to use software volume control.

  • Enable Noise shaping in foo_pggb_rt configuration menu and choose either 'Volume' or ''Both' in the Volume dropdown. foo_pggb_rt will take over foobar's volume control and remastered tracks will play in bit perfect mode.

System Requirements

foo_pggb_rt requires 64-bit Windows 10 PC. On Windows, a minimum of 8GB RAM and 4 core processor is recommended. More cores and faster processor and more RAM give you flexibility in being able to use more Taps.Faster processor also helps to reduce the startup delay on the very first track in your playlist.

Note: foo_pggb_rt requires AVX2 instruction support from the CPU, if your CPU is older than 2013, it will most likely not work.

foo_pggb_rt scales to use all the processor cores when more memory is available and CPU load can reach max TDP. Be sure that your PC has the cooling necessary to handle the heat especially if you have overclocked or run in turbo mode.


Licensing

foo_pggb_rt is free, however it does not handle DSD, nor can it operate at precisions higher than 64 bit. For offline upsampling, consider our offline resampler.


Inter-Sample-Overs

During reconstruction of the music signal after upsampling, the new samples can have values greater than 1.0 these are generally referred to as inter-sample-overs. Inter-sample overs will cause clipping and can be unpleasant. foo_pggb_rt detects inter-sample overs and applies just enough attenuation to avoid clipping.


So long and thanks for all the fish

.·´¯·.´¯·.¸.ZB.´¯·.¸¸.·´¯·.¸><(((º>