Zaphod's Guide to Safely Consuming PGGB Plus

"What is this? Some sort of galactic hyperhearse?"

Overview

PGGB is an offline PCM remastering tool for upsampling or downsampling audio files, with algorithms optimized to maximize reconstruction accuracy to near theoretical limits*. PGGB can apply EQ filters in a transparent fashion. PGGB saves the converted files in .wav or .dsf format by default, or in .wv (WavPack) or .flac (FLAC) format if the user chooses. Image and cover information within the metadata are transferred when possible. All PCM and DSD rates are supported. PGGB will convert to PCM or DSD with an optimal choice of filters.

Starting with 'The Reference Edition' PGGB now provides you with tools to analyze its objective performances.

*PGGB Plus use a proprietary method different from conventional approaches. PGGB is non apodizing and it does not use windowed sinc functions either, or long filters either. The best way to look at the current approach used by PGGB is that it considers the track as a whole. If no HF filters are enabled (which is the default for CD and 2fS rates), PGGB keeps all of the original samples intact, then creates intermediate samples all at once by time shifting all of the original samples. Our method approaches the theoretical limit of reconstruction accuracy possible for a track of given length and sample rate. This is more accurate than using pure Whittaker-Shannon coefficients with windowing. As the sample rate increases, and the track length increases, our method approaches the mathematical equivalence of using pure sinc based interpolation. The higher the reconstruction accuracy, the more transparent the sound. What this means to you is better depth and layering, improved resolution, a cleaner leading edge, and more accurate timbre.

The ‘Plus’ in PGGB Plus stands for ‘PCM plus DSD, with up to 256 bits of precision’. PGGB implements high precision computing for the entire processing that includes resampling, noise shaping, DSD modulators and EQ. This allows you to optionally choose higher precision computing including quad precision 128 bit (Insane) and octuple precision 256 bits (Ludicrous). Higher precision results in better sound quality due to improved reconstruction accuracy and noise shaping performance.

PGGB will process all files in the input folder and all folders in the input folders recursively. For example, if you have a music folder 'C:\Music' and the folder contains albums organized in multiple folders like C:\Music\Album-1, C:\Music\Album-2. It will process any music file with extensions (.wav, .flac ,aif, .aiif, .m4a, .dsf) in both C:\Music and also the Album-1 and Album-2 folders. The upsampled files will be found in output folder and they will be organized in the same way in sub-folders. PGGB also copies jpg, png and pdf files to the destination folders.

It is very simple to use. Once you have chosen the input and output folders (both are required), press ‘Process’ to start processing. Use Pause to pause processing and ‘Stop’ to stop processing. Stop and Pause may take a few seconds to a few minutes depending on what PGGB is processing. Once the processing has started, you may also add new folders inside the input folder. PGGB will discover them and will process them too after it has completed the current set of folders. Processing can be done in three modes. Selecting ‘Create New’ will create a new album folder if the album already exists in the output folder. ‘Skip’ will skip previously processed tracks if they are present in the output folder and ‘Overwrite’ will overwrite the existing tracks. You may add multiple input folders using the ‘Add’ button, you may also remove an input folder by selecting it and pressing ‘Remove’.

Advanced: If PGGB finds 'pggb_to_process.txt' in the input folder, it will process the list of folders in the text file (recursively), in addition to any folders in the input folder. By default, it will create a folder with the name of the parent folder. If it finds ‘FQN’ in the first line of the text file, it will replicate the full folder structure (Excluding the drive letter) in the output folder.

On Windows, The very first time PGGB runs it may request permission for firewall. Please accept the request as PGGB needs it to manage parallel threads and in the case of a trial license, it needs to connect to a time server.


The PGGB Philosophy (Three Pronged Approach)

PGGB DSD and PGGB PCM resampling is built on the same principles:

  1. Algorithm: PGGB maximizes reconstruction accuracy by utilizing all information in the source track and upsampling to the required output rate. For PCM, the maximum output rate was up to 64fS. In the case of DSD, the maximum output rate can be 128fS, 256fS, 512fS, or 1024fS. Therefore, the upsampling algorithms remain the same for both PCM and DSD, but the output rate for DSD is significantly higher.
  2. Precision: PGGB maximizes reconstruction accuracy using high precision. PGGB PCM supports 64/128/256 bit precision as higher precision helps improve reconstruction accuracy in the audible range. The reconstruction accuracy in the audible range is only limited by bit depth and sample rate. For PCM, for bit depths higher than 16 bits and sample rates higher than 8fS, 256bit precision helps to deliver the highest reconstruction accuracy in the audible range. For DSD, things are not as straight forward. Since DSD has a bit depth of 1, the amount of information that can be retained in the audible range depends on the DSD rate and also the order of modulator. Higher order modulators help retain more information in the audible range by reducing the quantization noise aggressively; higher DSD rates also provide a larger bandwidth to push the quantization noise out. So, the choice of precision becomes a function of the output sample rate and also the modulator order. There is no point in using higher precision for reconstruction if that information cannot be retained. Which is why for DSD, PGGB DSD uses adaptive precision. From our analysis, 128bit precision works best for DSD rates.
  3. Modulators and Noise Shapers: PGGB minimizing the quantization noise in audible range. In the case of PGGB PCM, PGGB uses noise shapers to keep the quantization noise in the audible range as low as possible. The noise floor is limited by the precision used for computing and also the quality of the noise shaper. For 64bit precision, the limit is about -320dB. If a noise shaper is capable of achieving a quantization noise floor that is lower than -320dB for the given bit depth and sample rate, then it makes to go for higher precision which is 128bit. The limit for noise floor for 128bit (quad precision) is about -690dB. If this noise floor can be breached, only then does 256bit computing makes sense. For PCM, the noise shapers PGGB uses can achieve a quantization noise floor as low as -750dB in the audible range, which is why PGGB provides the option of 256bit precision. For PGGB DSD, for DSD 256 and higher, the -320dB limit for 64bit computing is easily breached and for DSD rates 512 and 1024, the quantization noise in the audible range is -400dB or lower with 9th order modulators, which justifies the use of 128bit precision.

There is a *cheesy* cake analogy we like:

  • Algorithm: Determines the quality of the cake by evaluating the reconstruction algorithms and predicting intermediate samples.
  • Precision: Represents the fine/preciseness in reconstructing. It's like the icing on the cake; if the cake is bad, a good icing does no good!
  • Noise shaping/Modulators: Decides how much of the icing (precision) you get to keep.

Additionally, since not all DACs/Players support 48k DSD rates, an inter-rate conversion option has been added. This allows conversion of a 48kHz/96kHz/192kHz source track to DSD rates that are multiples of 44.1kHz. This conversion is done transparently, PCM conversions will also benefit from this, especially for DACs capped at a maximum 44.1kHz rate.


PGGB and DSD

Though PGGB started as a PCM only remastering tool, we knew all along that the same principles can be applied to upsampling to DSD too. The higher DSD rates (typically DSD128 or more) allow for higher reconstruction accuracy than PCM as it allows us to add even more intermediate samples at a higher accuracy than the DAC can in comparison to PCM. DSD also passes through some DACs with less processing than PCM and in the case of DACs that support pure DSD, they pass untouched all the way till analog conversion. Which is why we have been working on DSD upsampling algorithms for a while now.

Then why did PGGB not include DSD upsampling from the beginning?

There are multiple reasons for this:

  • Need for efficient upsampling algorithms: While the highest PCM rates DACs accepts are limited to 16 or 32 times the base sampling rate (768kHz or 1.536MHz), DSD rates can be 32 to 64 times higher than the highest PCM rates a DAC can accept. Scaling PGGB algorithms to take the same no compromise approach and extending it to DSD rates was challenging both in terms of processing time and memory requirements.
  • Very high quantization noise associated with single bit DSD: PGGB aims to achieve a very high time domain reconstruction accuracy and also small signal accuracy in the audible range. This is important for transient reproduction and conveying depth and realism. While with PGGB we have achieved this with PCM upsampling, designing DSD modulators that could deliver the same level of small signal accuracy and keep the quantization noise in the audible range below -300dB required significant research.

With optimization of reconstruction algorithms to scale to DSD rates, and after developing high precision modulators that are capable of maintaining a very high small signal amplitude and phase accuracy, we finally felt comfortable releasing PGGB that is capable of DSD upsampling.


Configuration

Quick Start DSD Configuration (as easy as 1, 2, 3 ...)

1. Choose DSD Rate

We suggest starting with the highest DSD rate your DAC will allow and then work your way down to lower rates to determine the sweet spot for your DAC and system (interms of quality vs processing speed). PGGB DSD supports DSD rates up to 1024, offering a choice between single-stage and two-stage processing for each rate. Single-stage processing is more memory-intensive and takes longer, but it achieves the highest reconstruction accuracy. Conversely, two-stage processing involves an initial upsampling to at least a 16fS rate (quickest processing speed, excellent sound quality) up to the DSD rate (512fS, 1024fS etc., slowest processing speed, best sound quality). This has no effect on the final file size. Multiple options are available for two-stage processing.

As a general guideline, if the speed of your system is satisfactory at a specific PCM rate, for example '16fS at 256-bit precision', and you wish to convert to DSD512 rates, choosing a two-stage DSD conversion with the first stage rate at double the PCM rate will yield a similar conversion speed 16 x 2 = 32 (i.e., 'DSD512: 32fS X 16')

Note: If you use Roon to play back PGGB DSD files, please be aware, Roon does not support DSD1024.

2. Choose DSD Modulator

We suggest starting with the highest order modulator that is available for the DSD rate you choose. There are a choice of three DSD modulators, the 9th order modulator is available only DSD rates 512 and 1024. 7th and 5th order modulators are available for all rates. The higher order modulators have lower noise floor in the audible range compared to the lower order modulators for the same rate, but the higher order modulators take slightly longer to process. The modulators are rate adaptive, i.e. optimized for a given rate to achieve the lowest quantization noise in the audible range while keeping the slope of the noise profile gentle. You can find more about the modulators in the DSD Modulator Performance section.

3. Choose DSD Rate Family

PGGB DSD supports inter-rate conversion, allowing you to convert between 44.1kHz and 48kHz base rate families. If both your DAC and Player support 48kHz DSD rates, you can choose 'Auto' for the output rate family. Else choose 'Always output 44.1kHz rates' (which is the default).

Note: If you use Roon to play back PGGB DSD files, Roon does not support 48kHz DSD rates. You will have to choose 'Always output 44.1kHz rates'

You are all set, other settings can be left in their default state. Press 'Process' to start processing!.

4. Choose page file (Mac only)

If you are on a Mac, there is now an option for Mac to allow creation of page files. For DSD It is important that you select this option, then you can browse to the folder where you want the page files. 512GB or more free space is recommended for DSD. This option provides you with more control over paging when you do not have enough RAM and DSD conversion requires a lot of RAM. You can find more about this in the Page File (Mac) section.

Note: If you do not browse and select the folder for paging, then paging will not be done! By default, if you hit the browse button it should go to your HomeFolder/PGGB/cache

Dac and System

PGGB is already tuned to provide optimal results with very little tweaking needed. In short it is in auto-pilot mode. Go to ‘configure’ tab to change the settings.

Output DSD
DSD Image
Choose output rates
PCM Image
Output PCM
PCM Image

Settings for the dropdowns on the left are determined by your DAC and your PC

  1. Output Sample Rate: Choose a sample-rate family that matches the maximum output rate supported by your DAC. You can choose between PCM or DSD output rates.
    • PCM: Go to the PCM section of the dropdown and choose the highest PCM rate your DAC will accept
    • DSD: Go to the highest DSD rate section your DAC will accept (DSD128, DSD256, DSD512 or DSD1024), then choose between single and two stage processing.
      • Single stage processing: Single stage processing will be more memory intensive and take longer to process but will provide the best reconstruction accuracy.
      • Two stage processing: Two stage processing will first upsample to 16fS rate or higher and then use a simpler algorithm to do the second stage processing to the final DSD rate. Two stage processing will be less memory intensive and faster, the higher the rate of the first stage, the better the reconstruction accuracy. There will be multiple options for two stage processing.
  2. Output Rate Family: Both DSD and PCM output rates support inter-rate conversion, i.e., it will be possible to convert between 44.1kHz and 48kHz base rate families.
    • Auto: The output rate will be a multiple of the base sampling rate of the source track.
    • Always output 44.1kHz rates: The output rate will always be a multiple of 44.1kHz, even if the source track has a base sampling rate of 48kHz. This is useful if your DAC or Player does not support 48kHz DSD rates. It is also useful if the highest PCM or DSD rate supported by your DAC is a multiple of 44.1kHz rate. Please note, inter-rate conversion requires additional processing time but memory requirements do not change much.
    • Always output 48kHz rates: The output will always be a multiple of 48kHz, even if the source track is has a base sampling rate of 44.1kHz. This is useful if your DAC always internally converts to a multiple of 48kHz rate or if your DAC performs best at the highest 48kHz rate for PCM or DSD. Please note, inter-rate conversion requires additional processing time but memory requirements do not change much.
  3. Output Bit Depth: Setting the output bit depth will depend on your DAC and if you wish to process further.
    • PCM direct to DAC: If your DAC supports 32 bits, then 32 bits is the best option. Bit depths of 12 through 32 are 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.
    • PCM for further processing: If you wish to do further processing (such as EQ or dither), then 64 bit doubles may be a good option too but do be aware, it will double the storage requirements. Alternately, choose 32bit output with noise shaping.
    • DSD: Since DSD is a single bit stream, bit depth options are not available and that is normal.
  4. Noise shaping/Modulators: Noise shapers and modulators help attain high small signal accuracy in the audible range by minimizing quantization noise. Removal of quantization noise results in a very lifelike sound by retaining higher precision in the audible range. Depending on the output type (PCM or DSD), you can choose between noise shapers or DSD modulators.
    • Adaptive DSD Modulator: There are a choice of 3 DSD modulators (9th, 7th and 5th order). The 9th order modulator is available only DSD rates 512 and 1024. The higher order modulators have lower noise floor in the audible range compared to the lower order modulators for the same rate, but the higher order modulators will take slightly longer to process. The modulators are rate adaptive, i.e. optimized for a given rate to achieve the lowest quantization noise in the audible range while keeping the slope of the noise shaper gentle. It is recommended to choose the highest order modulator available for the output DSD rate. In the rare occasion of an audible noise when using higher order modulator, you may choose a lower order modulator.
    • Adaptive Noise shaping (PCM): PGGB employs Adaptive noise shaping algorithms for PCM that are individually tailored for the bit depth, sample rate you have chosen, and noise filter settings.
      • 'NS: Optimal’-- PGGB will choose the optimal noise shaping algorithm to remove quantization noise from the audible range if left in ‘Auto ’ (recommended).
      • ‘NS: Alternate’ -- Is a slightly different flavor of the optimal noise shaper, with a different noise shaping profile. It results in a slightly different portrayal of transients and high frequencies (available only for 256 bit precision).
      • ‘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.
      • ‘Dither only’ -- Choose if you want to bypass adaptive noise shaping and apply dither only (not recommended).
  5. Precision: For DSD, the precision is adaptive based on the modulator and output DSD rate, so the precision slider is disabled. For PCM, you can choose the precision you want PGGB to use for all of its processing and EQ. Normal (64 bit) processing is the default, it is the fastest and least memory intensive. If you desire even higher accuracy, you may choose to do the processing at an Insane 128 bit precision, or a Ludicrous 256 bit precision. The higher precision improves reconstruction accuracy and noise shaping performance, and leads to better sound quality. It comes at the cost of increased processing time and increased memory usage. Also refer system requirements section for memory requirements.

  6. Gain (dB): If you wish to use PGGB for off-line volume control, you may set the gain. The gain setting has now moved to ‘Gain and Silence’ tab. If you set a negative gain, the negative gain is applied to the tracks after all processing is done. If you choose ‘Peak Normalize’, the peak of the track is set to a fixed negative gain after all processing is done. If left at auto, no gain is applied unless an inter-sample-over is encountered (refer Inter-Sample-Overs section).



  7. Memory Optimization: If you check the 'Optimize paging for PCM', it will let you process longer tracks by optimizing paging without incurring much of a performance hit due to paging. If the processing won't fit fully in memory, then PGGB will process one channel at a time, to anticipate any possible clipping, PGGB reduces gain preemptively by 1dB. If you are concerned that the gain may change on a long movement that was split into tracks, we suggest setting a fixed negative gain of 1dB or more. In rare cases where high CPU usage causes thermal instability, there is also an option to force PGGB to process one channel at a time even when there is enough memory to process both left and right channels simultaneously. Checking 'Reduce contention' allows PGGB to reduce NVME contention, especially when using a single NVME drive for paging, this reduces the NVME read/writes from saturating and improves speed. For Macs, it is now possible to set page file location, you can choose up to two paging locations. Refer Page File (Mac) section for more information.

Preferences (Filter Presets)

Settings on the right can be chosen based on your preferences.

  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 relevant 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:
    • 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
    • DSD: DSD64, DSD128, DSD256, DSD512 and DSD1024 – these have significant noise beyond 40kHz.

Filter Options

NS / HF Filter: This drop-down lets you choose Noise shaper (NS) and High Frequency Noise Filter (HF Filter) for each of the ‘Input Rate’ type. The HF Filter can be turned on or off using the ‘HF Filter On’ check box. The Noise Shaper is off if ‘Dither Only’ is chosen in the Configuration for Adaptive Noise Shaping.

Note1: HF Filter is always on for DSD to avoid damaging sensitive audio equipment. HF Filter is always off for 44.1kHz or 48kHz tracks because they do not contain HF noise beyond 22kHz or 24kHz.

Note2: Noise Shaper and HF Filter work in tandem. The valid combinations are listed in the table below and * indicates the recommended setting.

Noise Shapers

The choices for Noise Shaper type depends on chosen configuration in ‘Adaptive Noise Shaping’ settings:

  1. SDM: When the output rate is DSD, the noise shaper is SDM (Sigma Delta Modulator) that is optimized for the DSD rate.
  2. Fixed: The noise shaper has been optimized for the audible range and very low noise floor extends at least to 40kHz (as low as -740dB for 256 bit precision) extends at least to 40kHz.
  3. Normal: Noise shaper minimizes quantization noise in the audible (Normal) range (as low as -540dB for 128 bit precision and -360 for 64 bit precision). Results in the least noise in the audible range. It has been described as sounding 'clean' during subjective listening tests.
  4. Extended: Noise shaper minimizes quantization noise beyond the audible (Extended) range (as low as -540dB for 128 bit precision and -360 for 64 bit precision). It has slightly higher noise in the audible range, but the noise floor remains low for an extended high frequency range. It has been described as sounding 'airy' during subjective listening tests.
  5. Dither (Set ‘Dither Only’ in Configuration): No noise shaping is done, only a Gaussian dither is applied, not recommended for output rates higher than 352.8kHz.

Here is an annotated example comparing the different noise shaper options (you can also access this plot by pressing the ‘?’ button on top of the noise shaper plot preview button).

HF Noise Filters

There are three choices for HF Filter, the HF Filtering process is designed to be transparent but effective in removing HF noise:

  1. Aggressive: Filters aggressively to remove noise beyond the audible range. The tradeoff here is real music beyond the audible range is also filtered in addition to any noise. It has been described as sounding 'smooth' during subjective listening tests.
  2. Minimal: Filters minimally to remove noise beyond the audible range. While it keeps most of the music beyond the audible range, not all noise is removed. It has been described as sounding 'lively' during subjective listening tests.
  3. Off (Uncheck ‘HF Filter On’): HF Filter is off, and no filtering is done to remove noise beyond the audible range. Leaving it off, especially for 4fS or higher rates can introduce harshness or fatigue. HF Filter is always on for DSD as DSD contains significant HF noise and can damage sensitive audio equipment.

It is common for higher sample rate material to have significant out of band quantization noise introduced by ADC (i.e., Analog to Digital Converters used during the original recording or digital transfer); this is especially true with DXD and DSD, but listening test and analysis show even material at 88.1kHz and above can benefit from noise filtering. Beyond the audible range, there reaches a point where it becomes increasingly hard to differentiate between quantization and other noise and the music signal. This can be recording dependent and makes it harder to choose the noise filter. The new noise filter used in PGGB tries to simplify and remove some of the guesswork. The Automatic setting will work best in most cases. This is all about balancing the signal-to-noise ratio at frequencies beyond the audible range. As more filtering is done (Aggressive setting), the sound is cleaner but may sound smoother or a little less open. With less filtering (Minimal setting), it will sound airy and lively but can come at the cost of added noise or harshness. These are still very subtle changes to help you fine tune to your system and preferences.

Here is an annotated example comparing the different HF Filtering options (you can also access this plot by pressing the ‘?’ button to the right of last plot preview button under preferences section of the configuration tab).


Plot Preview Objective Metrics

For those who are interested, PGGB allows you to plot noise shaping, modulator performance and remastering performance (upsampling, downs sampling or conversion to DSD to PCM), so you need not take our word for it and check the performance metrics yourself.

Click on the plot button next to ‘Adaptive Noise Shaping’ (highlighted in orange) to preview how the noise shaper or modulator performs with small signals for your current settings (precision, output sample rate, bit depth and the choice of the noise shaper). Click on any of the plot buttons in the ‘Preferences’ section (highlighted in green) to preview the remastering performance in frequency domain for your current settings and 1fS, 2fS,4fS or DSD 64 input test signal (band limited white noise).

Right click on the plot preview button to see more options. You can export plot and save them as images. If you right click any of the plot preview buttons under the preferences section, you can also chose any of your tracks and preview how frequency spectrum of your track will look after remastering using your current settings (only the first 5 seconds are analyzed).

Plot Preview NS performance

Here is an annotated example of the plot preview of noise shaper performance (you can also access this plot by pressing the ‘?’ button to the left of the noise shaper plot preview button.)

Plot Preview of upsampling

Here is an annotated example of the plot preview of remastering performance of 1fS CD rate test signal (you can also access this plot by pressing the ‘?’ below the last plot preview button under preferences in the configuration tab). Though the example below shows PCM upsampling, the same plot preview is available for upsampling to DSD too.

Plot Preview NS options

Here is an annotated example comparing the different noise shaper options (you can also access this plot by pressing the ‘?’ button on top of the noise shaper plot preview button).

Plot Preview NS options

Here is an annotated example comparing the different noise shaper options (you can also access this plot by pressing the ‘?’ button on top of the noise shaper plot preview button).

Plot Preview DSD Modulator Performance

For those who are interested, PGGB now allows you to plot DSD modulator performance too, so you need not take our word for it and check the performance metrics yourself.

Select the desired DSD rate, click on the plot button next to ‘Adaptive DSD Modulator’ to preview how the DSD modulator performs with small signals for your current settings (output sample and the choice of modulator). Click on any of the plot buttons in the ‘Preferences’ section (highlighted in green) to preview the remastering performance in frequency domain for your current settings and 1fS, 2fS,4fS or DSD 64 input test signal (band limited white noise).

To help you compare, we have have provided the modulator performance in two forms. 1. DSD modulators available for given DSD rates (DSD128, DSD256, DSD512 and DSD1024) and 2. DSD modulators grouped by their order (5th, 7th and 9th order).

DSD Modulator Performance by DSD Rate

Below we have plotted the small signal performance for all the DSD modulators available for given DSD rates (DSD128, DSD256, DSD512 and DSD1024). higher order modulators have lower noise floor in the audible range compared to the lower order modulators for the same rate (the noise floor is reduces by about 50dB when the order increases by 2), but the higher order modulators will take slightly longer to process and have a steeper slope. The modulators are rate adaptive, i.e. optimized for a given rate to achieve the lowest quantization noise in the audible range while keeping the slope of the noise shaper gentle. It is recommended to choose the highest order modulator available for the output DSD rate. In the rare occasion of an audible noise when using higher order modulator because of ineffective filtering by the DAC or interaction with downstream components, you may choose a lower order modulator.

Modulators for DSD128

There are two modulator options for DSD128, 5th and 7th order. The quantization noise in the audible range remains below -200dB for the 5th order modulator. The 7th order modulator reduces the quantization noise in the audible band by 50dB compared to the 5th order modulator

Modulators for DSD256

There are a choice of two modulators for DSD256, 5th and 7th order. The quantization noise in the audible range remains below -200dB. The 7th order modulator reduces the quantization noise in the audible band by 50dB compared to the 5th order modulator and it can almost resolve a -301dB signal at 6kHz.

Modulators for DSD512

There are a choice of three modulators for DSD512, 5th, 7th and 9th order. The higher DSD rate allowed us to create a stable 9th order DSD modulator and reduce the quantization noise to levels not typically associated with DSD. We have truly reimagined DSD for you with the 9th order modulator at DSD512 rates, we expect it to be the most widely used option.

The quantization noise in most of the audible range remains below -280dB for the 5th order modulator. The 7th order modulator reduces the quantization noise in the audible band further by 60dB to -340dB compared to the 5th order modulator and it can easily resolve a -301dB signal at 6kHz. The 9th order modulator improves it further and keeps the quantization noise below 380dB for most of the audible range and can easily resolve signals smaller than -301dB in the audible range.

Modulators for DSD1024

There are a choice of three modulators for DSD1024, 5th, 7th and 9th order. Similar to DSD512, The higher DSD rate allowed us to create a stable 9th order DSD modulator and reduce the quantization noise even lower than what 9th order modulators for DSD512 could (by about 50dB). DSD1024 with 9th order modulators provides you with the best PGGB has to offer both in terms of reconstruction accuracy and ultra low quantization noise in the audible range, if your DAC supports the rate.

The quantization noise in most of the audible range remains below -300dB for the 5th order modulator. The 7th order modulator reduces the quantization noise in the audible band further by 70dB to -370dB compared to the 5th order modulator and it can easily resolve a -301dB signal at 6kHz. The 9th order modulator improves it further and keeps the quantization noise below -425dB for most of the audible range and can easily resolve signals smaller than -301dB in the audible range.

DSD Modulator Performance by Order

Below we have plotted the small signal performance for a given order (5th, 7th and 9th) for different DSD rates. For the same order, higher DSD rates allows more aggressive noise shaping. As a result, the quantization noise in the audible range decreases by about 50dB with each doubling of the DSD rate. Higher DSD rates also allowed us to create stable higher order modulators. The 5th and 7th order modulators are available for all DSD rates but the 9th order modulators are available only for DSD512 and DSD1024 rates.

While choosing the highest DSD rate your DAC allows may seem to be the obvious choice to get the best reconstruction accuracy and the lowest quantization noise, the tradeoff is longer processing times and possibly increased phase noise or distortion (which are DAC specific). We recommend that you first try the highest DSD rate your DAC supports and then also try the next lower rate and decides what best works for your DAC and listening preferences.

5th Order Modulators

5th order modulators are available for all DSD rates, but we have only plotted for DSD256, DSD512 and DSD1024. You can refer here for DSD128. 5th order modulators are the least aggressive and have the gentlest slope and are also the fastest in terms of processing time. The gentle slope means, the DAC's HF filters need to work less hard removing the HF noise, especially suitable when the DAC lacks good filtering of ultrasonics and the downstream components such as amps are very sensitive to ultrasonic noise. The tradeoff is they are not as good as removing quantization noise from the audible range when compared to 7th or 9th order modulators.

The quantization noise in most of the audible range remains below -250dB for the 5th order DSD256 modulator. The 5th order DSD512 modulator reduces the quantization noise in the audible band by another 25dB and the quantization noise remains below -280dB in the audible range. The 5th order DSD1024 modulator reduces the quantization noise in the audible band by another 30dB and the quantization noise remains below -300dB in the audible range.

7th Order Modulators

7th order modulators are available for all DSD rates, but we have only plotted for DSD256, DSD512 and DSD1024. You can refer here for DSD128. 7th order modulators are the 'Goldilocks' of PGGB modulators, they are better at removing quantization noise from the audible range (compared to 5th order modulators) without being too aggressive and are faster than 9th order modulators in terms of processing time. If processing time or ultrasonic noise is not a concern for your setup, it is still recommended to choose 9th order modulators.

The quantization noise in most of the audible range remains below -325dB for the 7th order DSD256 modulator and it can almost resolve a -301dB 6kHz signal. The 7th order DSD512 modulator reduces the quantization noise in the audible band by another . 25dB and the quantization noise remains below -350dB in the audible range. The 7th order DSD1024 modulator reduces the quantization noise in the audible band by another 30dB and the quantization noise remains below -380dB in the audible range.

9th Order Modulators

9th order modulators are available for DSD512 and DSD1024 only. 9th order modulators provide the best noise shaping performance in terms of removing quantization noise from the audible range. 9th order modulators with DSD512 or DSD1024 rates allows you to experience the best PGGB has to offer. The tradeoff is slower processing speed and on some cases decreased performance due to ineffective filtering by the DAC.

The quantization noise in most of the audible range remains below -380dB for the 9th order DSD512 modulator. The 9th order DSD1024 modulator reduces the quantization noise in the audible band by another 45dB and the quantization noise remains below -425dB in the audible range. The 9th order modulators can easily resolve a 6kHz -301dB signal.

Large signal stability

While our focus is on designing noise shapers and modulators with small signal accuracy in mind, we take stability seriously. We make sure our modulators offer the same level of performance with signals near full scale. Below is an example of our 7th order modulator with a 1kHz signal at -6dB.

Even with large signals, the quantization noise in most of the audible range remains below -325dB for the 7th order DSD256 modulator and it can almost resolve a -301dB 6kHz signal. The 7th order DSD512 modulator reduces the quantization noise in the audible band by another. 25dB and the quantization noise remains below -350dB in the audible range. The 7th order DSD1024 modulator reduces the quantization noise in the audible band by another 30dB and the quantization noise remains below -380dB in the audible range. You will see our modulator performance remains similar to what they are with small signals here.

Plot Preview HF Filter Options

Here is an annotated example comparing the different HF Filtering options (you can also access this plot by pressing the ‘?’ button to the right of last plot preview button under preferences section of the configuration tab).


Load or Save Settings

If you own multiple DACS or if you wish to process your library with different settings, you can create multiple settings. To create new settings, enter the name of the setting you wish to create and press Save. To overwrite the existing setting, select the setting from the drop-down, make the setting changes and press Save. You can also remove existing settings; just choose the setting you wish to remove and press Remove.

Note: Default setting cannot be removed but can be overwritten.


Gain,Trim and Silence

If you are someone who thinks your tracks do not meet the required peak level, dynamic range DR, and acceptable silence at the beginning and end of a music track, this section is for you. That is why we have added the “Secondary Mastering” functionality, which allows you to bring all your tracks to a single loud peak level, a distinct beginning and end of the track, and set a uniform silence interval between tracks.

Peak normalization

This functionality allows you to set the final volume of a track based on the peak level after performing oversampling and optionally EQ. The peak level of recordings can be different even within an album, not to mention across different artists. Peak normalization ensures similar volume of all audio recordings, set to a given value. Even if this is a set of albums from different artists and different DR ranges, then objectively the entire set of tracks will play at approximately the same RMS volume too. Additional peak normalization avoids secondary overloads that may occur when further processing happens in your DAC. The recommended value is "-3dBFS" or change it to an appropriate level if you are using PGGB for volume control instead of preamp.

Trim silence (PCM only)

Sometimes due to sloppy mastering in recording studios, tracks often have some unintended digital silence (blank samples) at the beginning and end of the track, as well as very quiet background levels until the music itself begin. Sometimes the value of silence and background noise at the beginning of a track may occur for a few seconds and not be the same at the end of the track. During these periods, you hear digital silence or a subtle background noise. If necessary, you can completely trim digital silence, as well as background noise at the beginning and end of the track. This functionality will allow you to listen only to music, without gaps. The recommended value is “Threshold -60/-70” dBFS.

Add silence (PCM only)

After trimming digital silence and background noise, you may find your tracks play one after another without a pause (this may be preferable on gap-less albums or some long classical movements, so please use your judgment). To correct this situation, you can choose to add additional silence to the beginning and end of the track, but this time the digital silence period is fixed. This will allow you to have a consistent and noticeable pause between the tracks being played. The additional silences at the start and tail of the track may also allows you to avoid the beginning and end of the track being "swallowed" when played on some players. The recommended value is 1 second.

Here is the summary of recommended settings


PGGB-EQ

PGGB supports EQ. You can access EQ configuration through the ‘PGGB-EQ’ tab. The interface is quite simple. You can import both convolution EQ filters (.wav) or parametric EQ filters (.txt)

Bring your own EQ

PGGB uses the concept of ‘Bring your own EQ’:

  • DRC: If you are interested in Digital Room Correction (DRC), PGGB is not a substitute for measurement software. You would use your favorite measurement software to create the convolution filter. Alternately you can also enlist the services of someone who can help you with measurements and EQ. The filters need to be stereo in .wav format.
  • Headphones: You have a few choices
    • If you have your own headphone EQ filters, you can import them.
    • You can use the Auto EQ project, choose your headphone, choose ‘EqualizerAPO ParametricEq’ as the EQ app, then download the .txt file for import int o PGGB EQ.
    • Alternately you can use the Auto EQ project to find your headphone and import the 48kHz or 44.1kHz Minimum phase wav file.
    • Download headphone EQs from here. This list will expand as we get more feedback and submissions.

Filter Type: Two ways to import and apply EQ

Applying EQ is a simple mathematical operation. However, the quality of your filters affects the quality of the resulting remastered track. Ideally, applying equalization should impart tonal changes only, with no degradation in other qualities like dynamics, transparency, depth, and resolution. For the best results, we recommend using linear phase.

PGGB Optimized: PGGB-EQ provides an option to import your EQ filter and apply them during the remastering process in a transparent fashion. PGGB does not resample your filters for different input rates, but instead creates new filters from scratch from the imported filters and applies them in a way that retains transparency and only alters the tonal balance when you choose 'Linearize phase for EQ' option.

Note: An option to use your EQ filters as-is will be implemented in the future, but it is not currently implemented.

When you have an option to use both convolution filters and parametric filters, we recommend that you import parametric filters.

Import Parametric EQ Filters (REW, Equalizer APO): PGGB now allows you to import parametric EQ filters. You can create parametric EQ filters in REW and export them as unformatted text, or you can create the parametric EQ filters in Equalizer APO or you can use autoeq.app and export the filters for Equalizer APO Parametric EQ. You can also choose a simple space delimited format such as below, first line #pggb, followed by Fc, Gain, Q values (peak filters only, use space not commas).

Once you have the exported .txt files, you can import them in PGGB EQ. If you wish to apply the same EQ for both the left and right channel, or want to import the left channel EQ, use ‘Choose Left or Single Filter (.txt)’ button to browse to the file. The Import button will now be enabled. If you wish to use a different EQ for the right channel, then use ‘Choose Right Filter (.txt)’ to browse to the right channel filter. You can then proceed to import the filters by pressing ‘Import Filters (s)’ button. The import of the parametric EQ filters will happen quickly (a few seconds). The supported filter types are listed below.

Please note: When exporting filters from autoeq.app and choosing 'Equalizer APO Parametric EQ', it will say LSC and HSC for Low Shelf and High Shelf filters, LSC and HSC, they are equivalent to LSQ and HSQ. In the next update we will make sure LSC is accepted too.

Import Convolution EQ Filters (.wav, .pggbeq): Use ‘Choose Stereo or Mono Filter (.wav, .pggbeq)’ button to browse to your convolution filter file in .wav format or as .pggbeq (if it is one you downloaded from our website).If the convolution filter is mono, then the same EQ will be applied to both left and right channels. The import button will now be enabled. You can then proceed to import the filters by pressing ‘Import Filters (s)’ button. The import process can take a minute to several minutes, because PGGB is generating a new set of filters. The process will be longer for 256 bit precision and can take several minutes when ‘Increase LF fit’ is checked.

Note: You will need to re-import filters for every precision you choose (i.e., Insane, Ridiculous etc.) or if your output sample rate changes or you decide to choose ‘Increase LF fit’.

Enable or Disable EQ and Status

Once you import EQ filters, you have the option to turn EQ on or off using the Enable EQ switch. A status lamp shows current status of EQ . The status lamp is always available on all tabs on the bottom right corner. When the status light is green, it implies filters have been successfully imported and EQ is enabled. Please refer to the legend below for all possible EQ status indications.

Select Frequency Range

This setting is applicable only if you choose to import convolution EQ filters. Sometimes, you may prefer to apply EQ only to a range of frequencies. You can choose the start and end frequency over which you want EQ to be applied. In most cases, you can leave this setting at the default values if you have already created your EQ filters only for the desired range of frequencies.

If your EQ involves significant low frequency correction (below 100Hz), you may choose ‘Increase LF fit’ checkbox. Choosing this option will increase the time taken for importing your filter and it will also increase the time taken for EQ to be applied during processing of your tracks.


Combining Tracks

Longer tracks benefit from better reconstruction accuracy when remastered using PGGB. Depending on how tracks were indexed, it is possible that some albums (especially long classical works) may have been cut into multiple tracks even though they were a single long recording. In these cases, to take advantage of longer track lengths that would have been available had the tracks not been cut, PGGB allows you to treat contiguous groups of tracks as one. Please be aware that PGGB currently does not split the tracks back to the original track numbering after processing.

To allow PGGB to combine tracks, you will need to create a text file named ‘combine.json’ in the album folder containing the tracks to be combined. Insert a single line in the combine.json containing a comma separated list of track number ranges within double quotes, enclosed in []. In the example below, tracks 1-6 will be combined into one track and tracks 7-16 into another.

For Combine to work, there are a few requirements
  1. The sets of tracks being combined cannot have overlaps
  2. The tracks should have the track numbers in their metadata

Status

The status window at the bottom provides useful information about the current state of PGGB. This includes error messages, displays values when you change a setting, the current file it is processing etc. When PGGB is processing files, the status window may be a bit slow to refresh. This is normal. PGGB also displays detailed messages in a command window and logs them too. Progress bars show Batch, Album and Track level progress.


Log files

The output log file can be found by typing ‘%HOMEPATH%\PGGB’ in the Windows Explorer Address Bar. Album level logs can be found in remastered output folders. . On Mac Go to Home (cmd-shift-H)\PGGB.


Between PGGB 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 PGGB output rate to the maximum input PCM or DSD rate your DAC supports.
  • In the case of PCM, set PGGB 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 for PCM and pure DSD for DSD output.
Your playback software:

Any playback software you use should not do any processing of the PGGB remastered tracks. This includes volume control, dither, noise shaping, further upsampling, bit depth conversion (padding is OK). I.e., PGGB remastered tracks should be transmitted to your DAC bit for bit without any change for the best results.

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 shapers and modulators all but eliminates 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) in the case of PCM and remodulation in the case of DSD. 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. You have couple of choices:

  • For PCM:
    • Best option: Set PGGB to Remaster output as 64 bit, the downside is large file size. Use software volume control and output at desired bit-depth. Enable Noise shaping or dither if your playback software supports it
    • Alternate option: Enable noise shaping in PGGB and output in 32 bit format. Use software volume control and output at desired bit-depth. Enable Noise shaping or dither if your playback software supports it
    • Another option (use with caution): This is a good option if you do not use the volume knob much and generally leave it at a fixed level (like say -3dB). Enable noise shaping in PGGB, and set the gain slider to the reduced gain (same as what you would set in your player such as HQP) and gargle-blast your tracks. During playback, disable noise shaping or dither in your playback back software but start with a reduced level (first set the volume to where you will normally set it in your player) and gradually bring it up to 0dB or max.
  • For DSD:
    • Best option (use with caution): This is a good option if you do not use the volume knob much and generally leave it at a fixed level (like say -3dB). Set gain slider to the reduced gain (same as what you would set in your player ) and gargle-blast your tracks. During playback, start with a reduced level (first set the volume to where you will normally set it in your player) and gradually bring it up to 0dB or max, then disable all processing or enable direct SDM depending on your player.
    • Alternate option: Enable volume control in your player and choose the best modulator for the DSD rate that your player offers.

Folder Paths and Permissions

Please make sure you have Read permission to the input folder and read/write permission to the output folder. In addition to this, PGGB needs write permission to:

    Windows
  • The APPDATA folder. PGGB installs the license and also saves the configuration in this folder. Typically, this is C:\Users\[user name]\AppData\Roaming\PGGB or you can access it by typing %appdata%\PGGB in the Windows Explorer Address Bar.
  • The HOMEPATH folder. PGGB writes logs into this folder in addition to writing logs into output folder. Typically, this is C:\Users\[user name]\PGGB or you can access it by typing %homepath%\PGGB in the Windows Explorer Address Bar.
    Mac
  • PGGB installs the license and also saves the configuration in /Users/[user name]/PGGB
  • PGGB writes logs (in addition to writing logs into output folder) to /Users/[user name]/PGGB
  • PGGB will attempt to write tags such as Title and Artist to the files that it creates. The presence of extended characters (characters such as à and ë) in the path or file name of the source files can cause the tag writer PGGB uses to fail to write any tags (especially on Mac). We recommend using a bulk renaming utility to replace extended characters. Here is a good option to automate bulk replacement: A Better Finder Rename


System Requirements

DAC

  • High rate PCM and DSD: DACs that support PCM rates of 705.6/768kHz or higher and DACs that support DSD rates DSD256 or higher will benefit most from PGGB remastered tracks.
  • PCM NOS: DACs that do little to no processing (such as R2R DACs that can be run in NOS mode) and DACs whose oversampling filter can be turned off will benefit significantly from PGGB PCM remastered tracks.
  • Pure DSD: DSD DACs that have a pure DSD mode that can be enabled will benefit significantly from PGGB PCM remastered tracks.
  • On DACs that support up to DXD rates and DSD128, remastering CD quality tracks using PGGB to DXD rate (352.8kHz) and DSD128 is likely to be beneficial too.
  • If you have a DAC that supports PCM only, then you can use PGGB to remaster DSD to the highest rate supported by your DAC with excellent results.
  • If you have a DAC that supports only 96kHz or 192kHz, you can use PGGB to remaster DSD or DXD files to rates that are supported by your DAC.

System, OS and Memory

PGGB requires 64-bit Windows 10/11 PC or Mac (Mojave or higher). A minimum of 32GB RAM, 8 core processor and 256GB of free space on a fast internal NVME drive is recommended. The hardware requirement is just a rough guideline as the actual requirement will depend on your music library, the output sample rate you wish to use and the processing efficiency you desire. More Memory allows improved speed as PGGB can keep all the data in memory for processing. More cores allows PGGB to use parallel processing for improved speed, and faster processor (frequency in GHz) provides PGGB with more processing speed. On windows, if you see your CPU utilization is not above 70%, you will have to run PGGB as a administrator so Windows provides PGGB with a higher priority.

  • For PCM conversions: If your library consists of tracks that do not exceed about 12 minutes of length, you may find 16GB RAM and a 4-core processor sufficient for quad precision (128bits), a fast SSD drive for paging (minimum of 128GB is recommended). The requirements double for octuple precision (256bits). If your intent is to convert 10s or 100s of albums, a 8 core processor, 64GB RAM and and 512GB of free space for paging would be sufficient for most conversions.
  • For DSD conversions: A minimum of 32GB RAM and 512GB of free space for paging is recommended for DSD rates up to DSD512 and the requirements double for DSD1024 rate. If your intent is to convert 10s or 100s of albums, a 16 core processor, 128GB of RAM and 1TB of free space would be sufficient for most conversions.
To know exactly how much free space you need, you can refer to the Calculating Free Space You Need section.

Note: PGGB requires Internet access during installation. It also needs Internet access for the trial version. On the first run, PGGB will request firewall permission to enable parallel processing. PGGB is mostly harmless, we do not use or share your personal information nor do we use the idle CPU cycles to mine Ethereum.

Compared to previous versions of PGGB, PGGB Plus is more memory efficient. One could do a lot more with 16GB RAM than previously possible. This is because of the completely revamped memory handling and paging optimization implemented in PGGB Plus.

PGGB uses adaptive algorithms that do not compromise on the quality of reconstruction to fit in available RAM, the reconstruction quality at a given precision does not change, instead PGGB adapts the processing pipeline to fit in memory and optimizes paging to accommodate the data that does not fit in memory. This means that PGGB will trade some speed (i.e., runs slightly slower, to make sure the data being processed fits in memory).

What this means is, you could do a lot more with 16GB RAM and PGGB than previously possible. But there is still a limit to how much can be made it fit in RAM. At the minimum one needs enough RAM to hold the input data. So, this memory requirement depends on a few factors:

  • Length of the track you are processing
  • Output rate (which depends on your DAC and settings, if you are upsampling to PCM or DSD)
  • Precision (64, 128 or 256 bit)
  • Input rate of the track (CD vs Hi-Res vs DSD etc). While there is a slight uptick in memory requirement for increasing PCM rates, for DSD, the memory requirement does not change with increased rate. It depends only on the output rate you choose and track length. In other words, a 10minute DSD 64 track would need the same amount of memory as DSD256 as long as you are choosing the same output sample rate and also bit precision.


More on Memory and Speed (Why is PGGB so demanding?)

PGGB philosophy is to use all the information in the track to upsample to the final rate and do so at high precision. This comes at a cost, both memory and computation time. No shortcuts or cutting corners.

  • Speed: To reduce computation time PGGB uses multi-core parallel processing and also hyper threading. So you directly benefit by having a CPU with multiple cores (almost linear relation with speed). You also benefit from having a high clock rate that is not thermally throttled, as the higher CPU clock also translates linearly to speed. I use a slightly over clocked AMD server that averages 4GHz with 24 cores (x2 hyper threaded). I use ALO cooling.
  • Memory: Since PGGB uses all of the track, it needs to hold everything in memory till it is finally written to the output file, there re no shortcuts. We found any block processing (i.e., splitting and processing parts of a track) compromises SQ.

The CPU requirement is simple enough. Something to note, the modulators and noise shapers cannot be made parallel beyond a point, so while the upsampling benefits from more cores, modulator and noise shaper speedup stops beyond say 24 cores and CPU speed helps more. The time for modulation or noise shaping is about 40 - 50% of the total time for processing the track.

The memory requirement is best explained working backwards from the output track. Say you wish to upsample your library to 512DSD, let us say an average track in your library is 6 minutes long. A 6 minute DSD512 track is about 2GB in size. But each sample occupies only a single bit in a DSD512 track. Before they were written to the file, PGGB had these also stored in memory that required 2GB or RAM.

The DSD modulator is responsible for converting PCM to DSD. It is easier to think of DSD as 1-bit PCM but a very high rate PCM. So, before it entered the DSD modulator, the 2GB DSD track was a PCM track of the same 512fs rate (512 DSD is 512 x CD rate). But PCM is not single bit, if we were doing computations with say 32 bit PCM, before conversion to DSD, the 2GB DSD would have needed 32 x 2 = 64GB of RAM as each bit in DSD is now 32 PCM bits.

64bit floating point is the minimum a software upsampler should use, so at the minimum the 2GB DSD track was 64bit PCM at the same rate, which means it would have needed 128GB of memory! PGGB does not do 64bit for DSD, it does adaptive precision and the precision used is typically 128bit. So the 2GB DSD512 was 2 x 128 = 256GB 128bit PCM before it entered the modulator! That is how much memory you will need to just to hold the high rate high precision PCM. But as you may have guessed, it is simply not practical to expect 256GB of RAM just to process 6 minutes of tracks to DSD512. By the way, if you wanted to do DSD1024, then that doubles the size to 512GB.

The way PGGB gets around this pesky memory issue is:

  • It processes one channel at a time: the fastest processing is achieved when the entire track fits in available RAM. 256GB would be needed, for example, to process a 6 minute track at DSD512 in a single stage. If that much is available, then PGGB will process the entire track with both channels (left and right) processed simultaneously. If not, PGGB will then switch to processing just one channel at a time. Virtual memory will be used if there isn’t enough memory to hold one channel.
  • It uses virtual memory: Virtual memory is your RAM + page files (or swap space in Mac/linux). When a OS does not have enough RAM, it borrows some space from the disk and treats it as extended RAM. Different OS have different ways of doing this. Windows provides users full control, you can go to settings and set the virtual memory and choose more than one internal disk and also set min and max for each of the disks. Then Windows will auto-magically just use free space on the disk when it needs more memory and creates page files that grows. Since these drives are for use as extended RAM, fast NVME drives are the best and there is some advantage in using more than one to distribute the load (but not necessary). It need not be the OS drive and it needs to have free space. Going back to the 2GB DSD512 example, it is ideal to have 128 GB RAM so that a single channel of an average track just fits in RAM and that will work fast, but when there needs to be more (say you do a DSD1024) or you are processing 12 minute track, then you need the page file to stop PGGB from running out of memory. In Mac, there is zero control, but PGGB implements a way to allow paging similar to what Windows does.
  • Intelligent paging: Paging helps PGGB keep chugging along without running out of memory, but frequent disk access can really slow down processing as disk access is orders of magnitude slower than RAM, if not done properly, CPU utilization will drop and most of the time will be spent just reading from and writing to disk, when more than 50% of the required memory is not in RAM. We have implemented algorithms where PGGB always has what it needs close by in RAM and what it has done with or what it will need in future is in page file. The OS does the rest. As a result of this optimization, even though the RAM is much less than total required memory, paging does not affect performance much.
In summary, when it comes to memory, more is better, but PGGB is designed to work with what you have. There are three scenarios as they relate to processing efficiency:

  • Best: 2 channel mode - both channels are able to be processed simultaneously because there is enough RAM available to hold the entire track.
  • Better: 1 channel mode - each channel is able to processed sequentially using only available RAM as there is enough RAM available to hold each channel.
  • Good: 1 channel mode with virtual memory - PGGB borrows some space from the disk and combines it with available physical ram to increase the memory available to PGGB.


Virtual Memory (Windows only)

It is best to set the virtual memory (both the initial size and the maximum size) to the same value and equal. 128 GB or more is recommended for PCM and 512GB or more for DSD. To know exactly how much free space you need, you can refer to the Calculating Free Space You Need section. Choose the fastest internal drive for setting the virtual memory. Make sure the drive has free space greater than the virtual memory size you set. For all other dries set 'No paging file'. Restart your PC once you have set the virtual memory. After restart, check if the drive you set virtual memory for has a 'pagefile.sys' file with the size close to the virtual memory size.

Note 1: Please make sure you have free space that is comfortably greater than the the virtual memory you allocated on the drive.

Note 2: Windows optimization programs such as Audiophile Optimizer or Process Lasso will interfere with the normal operation of PGGB. Please make sure programs that could throttle paging, memory and CPU usage are either deactivated or uninstalled.

To set virtual memory, use the system property command-let. Go to start menu and start typing ‘advanced’ and select "View Advanced System Settings." Then click Advanced-> Performance Settings. This will open the Performance Options dialog. Click on Advanced tab, then click the ‘Change’ button under ‘Virtual memory’. Finally, in the Virtual memory dialog, uncheck ‘automatically manage paging file’ and enter a value greater than 128000 under Maximum size in Mb. Virtual memory availability and drives are system dependent. Below is just one example.


Page File (Mac only)

There is now an option for Mac to allow creation of page files, once this option checkbox is selected, you can browse to the folder where you want the page files. 128 GB or more free space is recommended for PCM and 512GB or more for DSD. To know exactly how much free space you need, you can refer to the Calculating Free Space You Need section. This option provides you with more control over paging when you do not have enough RAM. On a Mac, you are not limited to the internal drive, a fast NVME Thunderbolt external drive is also an option (or use Thunderbolt enclosures such as this or this). You can now choose up to two paging locations, it is important that both are on different drives and they are fast NVME drives. If you want to know more about why PGGB is so demanding, please refer to the section on memory and speed.

If you check the 'Optimize paging for PCM', it will let you process longer tracks without hitting RAM limit. If the processing won't fit fully in memory, then PGGB will process one channel at a time, to anticipate any possible clipping, PGGB reduces gain preemptively by 1dB. If you are concerned that the gain may change on a long movement that was split into tracks, we suggest setting a fixed negative gain of 1dB or more. Checking 'Reduce contention' allows PGGB to reduce NVME contention and improves speed when paging.

Note: If you do not browse and select the folder for paging, then paging will not be done! By default, if you hit the browse button it should go to your HomeFolder/PGGB/cache


Calculating Free Space You Need for Paging/Virtual Memory

Please use the calculator below to find out the maximum free space you will need (for paging on Mac and virtual memory on Windows) to be able to remaster to PCM or DSD based on the upsampling factor.

Calculate Free Space Needed

It is possible to calculate the maximum free space you will need by yourself with the logic outlined below.

  • For PCM (after enabling memory optimization): Here the upsampling factor is 4fS, 8fS, 16fS etc.
    • For 64 bit precision: Space needed in GB = (longest track length in minutes) * (upsampling factor) * (0.028) - (physical memory)/2
    • For 128 bit precision: Space needed in GB = (longest track length in minutes) * (upsampling factor) * (0.055) - (physical memory)/2
    • For 256 bit precision: Space needed in GB = (longest track length in minutes) * (upsampling factor) * (0.140) - (physical memory)/2
    • Example PCM, 16fS, 128bit precision: If you have 32GB of RAM, for a 24 minute track to be converted to 16fS (705/768kHz) PCM at 256 bit precision, you would need 24 * 16 * 0.140 - 32/2 = 54 - 16 = 38GB of free space for 64 bit precision.
  • For DSD: Here the upsampling factor is the upsampling factor of first stage of DSD conversion. For a single stage conversion like DSD512:512fS x 1, it is the same as the DSD rate. For two stage conversions such as DSD512:128fS x 4, it is the first stage rate which is 128.
    • Adaptive precision: Space needed in GB = (longest track length in minutes) * (upsampling factor) * (0.055) - (physical memory)/2
    • Example DSD512: 512fS x 1 single stage: If you have 64GB of RAM, for a 12 minute track to be converted to DSD512: 512fS x 1, you would need 12 * 512 * 0.055 - 64/2 = 338 - 32 = 306GB of free space.
    • Example DSD512: 32fS x 16 two stage: If you have 64GB of RAM, for a 12 minute track to be converted to DSD512: 32fS x 16, you would need 12 * 32 * 0.055 - 64/2 = 21 - 32 = -11GB, will likely fit in RAM. As you can see, two stage processing needs a lot less memory but the downside is, the reconstruction accuracy is not as good as single stage processing.


Calculating Storage Space You Need For Your PGGB Albums

Use the calculator below to find out how much storage space you will need for your albums after converting them using PGGB.

PGGB Library Storage Space Calculator

Storage needed: 0 GB

Licensing

PGGB requires a license and PGGB license is tied to your Hardware ID. You will also need to provide your name and email address to get a PGGB license. Your Hardware ID will be displayed if you go to the ‘About’ tab. Use 'Ctrl + C' or 'Cmd + C' to copy your Hardware Id and paste it in the email. Refer here to get a license.

When you install PGGB for the first time and it does not find a valid license, it will run in trial mode. If you need to reinstall a license or you have upgraded your license, use the ‘I’ button next to ‘License’ to do so. Hardware-id is tied to the PC you run it on. The license is non-transferable. When your Hardware-id changes, you may request a new license. PGGB is not for commercial use unless you have purchased a commercial license. There are three levels of license:

License type Description Installs Validity Upgrades and support Cost
Free trial Fully functional, processing stops after 5 tracks for 64 bits and stops after 2 tracks for 256 bits. You can restart app and process again Single PC/Mac 30 days 30 days Free
Personal: Perpetual (Max) Fully functional, for non commercial use. Enables up to 256 bit processing and supports conversion to DSD rates up to DSD1024 with no limitations. Single PC/Mac Perpetual 1 year email support. Free upgrades for at least 1 year** $1050*
Personal: Perpetual (Plus) Fully functional, for non commercial use. Enables up to 128 bit processing and supports conversion to DSD rates up to DSD256 with no limitations. 256 bit processing and conversion to DSD rates higher than DSD256 are limited to 2 tracks at at time. Single Mac
PC license - through Audiowise
Perpetual 1 year email support. Free upgrades for at least 1 year** $350*
Personal: Upgrade to (Max) Fully functional, for non commercial use. Upgrade Perpetual (Plus) licenses to perpetual (Max). Enables up to 256 bit processing and supports conversion to DSD rates up to DSD1024 with no limitations. Single PC/Mac Perpetual 1 year email support. Free upgrades for at least 1 year** $700*
Commercial Fully functional, advanced settings, for both personal and commercial use Multiple users/PCs/Macs Perpetual Contact Us Contact Us

*   All sales are final, no refunds will be offered once a license has been generated and emailed. Please use the trial license to fully evaluate PGGB before buying a license.
** Upgrades only, valid only if you already purchased a PGGB Perpetual (Plus) license.
*** Upgrades only, valid only if you already purchased a PGGB Perpetual (128) or PGGB-AP license.

Current PGGB (128) customers have two choices:

  1. Stay on your current license. You'll continue to enjoy 128-bit processing, and revamped algorithms and also be able to process DSD rates up to DSD256
  2. Upgrade to Perpetual (Max). You'll get the best possible SQ and be able to process DSD rates up to DSD1024

Current PGGB-AP customers have two choices:

  1. Stay on your current license. You'll still get a significant bump in SQ due to the 128-bit processing, and revamped algorithms and also be able to process DSD rates up to DSD256
  2. Upgrade to Perpetual (Max). You'll get the best possible SQ and be able to process DSD rates up to DSD1024


Hidden Menu (#42)

You can activate the hidden menu by using the key combination ‘Ctrl+4’, you can exit the hidden menu by using the key combination ‘Ctrl+2’. If the keys do not work, just click on the cocktail picture to reveal the hidden menu. The hidden menu provides five options:

  1. Logging: Choose the level of logging you prefer, with -2 being near silent to 2 that is extremely chatty.
  2. Workers: PGGB defaults to the number of logical cores under 'Auto' which is double the number of physical cores*. PGGB 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 parallelism (not recommended).

    *Apple silicon (M1/M2/M3) - Apple silicon does not allow hyper-threading, if you are using a M1/M2/M3 Mac, please change the number of worker from auto to match the number of physical cores (typically half of what PGGB reports as Auto)
  3. Mode: PGGB can run under two modes
    • Processing: PGGB processes and upsamples files, this is the default mode.
    • Analysis: PGGB does no processing but instead prints statistics on how the tracks will be processed.
  4. WavPack or FLAC: Off by default. When set, it will output file as FLAC instead of Wav if two conditions are met - Sample rate is 8fS(DXD) or less and bit depth is 24 bits or less. For all other rates and bit depths, it will output lossless WavPack compressed files (.wv).
  5. Add PGGB to album tag: Optionally adds suffix to album tag, '[PGGB][bitdepth-sample rate]' for example [PGGB][24-705.6]. It does not affect album discovery, but makes it easier to know instantly and to search for gargle-blasted albums.
  6. Remove PGGB file suffix: Optionally remove ‘(… PGGB)’ descriptor at the end of processed tracks.
  7. XDMS mode: If set, PGGB splits remastered files into 1.25GB parts for playback on Taiko Audio’s XDMS player.

Note: PGGB remembers all your current settings on the next start, except the processing mode. This is intentional as you may forget the processing mode was set to analysis.


Inter-Sample-Overs

During reconstruction of the music signal after upsampling, the new samples can have values greater than 1.0, which are generally referred to as inter-sample-overs. Inter-sample overs will cause clipping and can be unpleasant. When gain is set to Auto as shown above, PGGB detects inter-sample overs and applies just enough attenuation to avoid clipping.


This SOFTWARE PRODUCT is provided by THE PROVIDER "as is" and "with all faults." THE PROVIDER makes no representations or warranties of any kind concerning the safety, suitability, lack of viruses, inaccuracies, typographical errors, or other harmful components of this SOFTWARE PRODUCT. There are inherent dangers in the use of any software, and you are solely responsible for determining whether this SOFTWARE PRODUCT is compatible with your equipment and other software installed on your equipment. You are also solely responsible for the protection of your equipment and backup of your data, and THE PROVIDER will not be liable for any damages you may suffer in connection with using, modifying, or distributing this SOFTWARE PRODUCT.


So long and thanks for all the fish

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