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.
'The Reference Edition' of PGGB (v6) 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 double-double 107 bit, 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) and you may drag and rop the folders into PGGB UI too. Press ‘Start’ 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. You may add multiple input folders using the ‘Add Folder’ button or dropping them into the 'Input' box, you may also remove an input folder by selecting one or more and pressing ‘Remove Folders’. You may also drag one or more folders out of the Input box to remove them. Use the checkbox next to each folder to enable or disable the folder for processing
Status bar: The status bar displayed at the bottom of PGGB window is information rich. The right side of the status bar is dedicated to showing the current configuration you are using. The left side of the status bar is dedicated to showing the current activity. When you are processing tracks, the left side of the status bar shows information regarding the track you are processing and also CPU and memory information. Once the processing is done, it shows you how many tracks were successfully processed and also if any were skipped or failed to process.
Output Folder: This is where the processed files will be saved. You can either browse to or drag and rop a folder of your choice.
Temp Folder: PGGB sometimes needs to create temporary files. By default, it will use the system temp folder. You may change this to a folder of your choice.
Write Mode: Writing 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.
Output File Format: PGGB will save the processed files in the format you choose. For PCM you have the choice of WAV, FLAC and WavPack. If your player is capable of playing RF64 files, you may choose 'Wav (RF64)', else we recommend 'Wav (4GB)'. 'Wav (RF64)' does not have the 4GB limit of Wav files, so larger files will not be split if you use RF64. If you want to enable lossless compression then choose FLAC or WavPack. For DSD you have the choice of DSF and WavPack. The default is Wav (4GB) for PCM and DSF for DSD.
File Suffix: PGGB will add a suffix to the processed files that will describe the processing that was done. If you do not want the processed files to have a suffix, you may choose 'None'.
Album Tag: To easily identify PGGB processed files using the meta data, PGGb adds [PGGB] to the album tag by default. You can choose 'None' if you do not want PGGB to alter the album tag.
Folder Suffix: PGGB by default create folders with the same name as your album folders when writing to the output folder. You could optionally add a suffix that will be added to the album folders.
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 the first line in pggb_to_process.txt is 'fqn' (stands for fully-qualified-name), then PGGB will replicate the entire input folder structure inside 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 for trial license.
The PGGB Philosophy (Three Pronged Approach)
PGGB DSD and PGGB PCM resampling is built on the same principles:
- 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.
- Precision: PGGB maximizes reconstruction accuracy using high precision. PGGB PCM supports 64/107/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.
- 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 enable 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.
Settings for the dropdowns on the left are determined by your DAC and your PC
- Choose A DAC: Here you have the option of customizing the settings by choosing 'Your DAC' and configuring the rest of the settings or load one of our presets if it matches your DAC. If you load one of our DAC presets, all the DAC Dependent Settings are fixed and not changeable.
- Output Mode: Choose between DSD or PCM output, if you choose one of our DAC presets, it will automatically choose the best output mode for the DAC, but feel free to switch.
- PCM / DSD Output tabs: If you select PCM or DSD output tab under the DAC selection, it will automatically change the output mode.
- 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.
- 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 such as Roon. It is rarely needed for PCM. 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.
- 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.
- 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 for 8fS or higher rates).
- 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 Chill 107 bit precision an Insane 128 bit precision, or a Ludicrous
256 bit precision. 107 bit and 128 bit precisions have very similar memory requirements but 107bit processing is about
2.2x faster than 128 bit processing with only a slight loss in accuracy. 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.
- Gain: The gain setting has now moved
to ‘Gain’ tab on the right side of the Configure tab. There are four choices for how you want to apply gain. The default option is 'Auto (avoids clipping)'. If left at auto, no gain is applied
unless an
inter-sample-over is encountered (refer Inter-Sample-Overs
section). If you wish to use PGGB as a software pre-amp with a fixed gain for off-line volume control, choose 'Fixed (software pre-amp)' and set the
set a negative gain, this
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. Finally if you do not want PGGB to alter the gain in any way, choose 'None (allow clipping)'.
- Memory Optimization: This setting can be found on the right side of configure tab above Manage Configurations. 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.
Filter Preferences
Below the DAC Dependent Settings, you can find Filter Preferences. Here you have two options: Automatic and Manual.
-
Automatic: We highly recommend leaving it on the ‘Automatic’ preset. The
‘Automatic’ preset will choose the optimal
High Frequency Noise Filter (HF Filter) settings for
each of your tracks. The relevant settings
are disabled as they are already chosen for you.
-
Manual: The ‘Manual’ preset gives you full control over the High Frequency (HF) Noise Filter
settings. There is no one-size-fits-all for these settings as the optimal
choices for 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.
Noise Shapers
The choices for Noise Shaper type depends on chosen configuration in ‘Adaptive Noise Shaping’ settings:
- SDM: When the output rate is DSD, the noise shaper is SDM (Sigma Delta Modulator) that is optimized for the DSD rate.
- 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.
- Normal: Noise shaper minimizes quantization noise in the audible (Normal) range (as low as -540dB for 128 bit precision, -500dB for 107 bits 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.
- Extended: Noise shaper minimizes quantization noise beyond the audible (Extended) range (as low as -540dB for 128 bit precision. -500dB for 107 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.
- 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 (In PGGB v6 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:
- 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.
- 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.
- Off: 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 (In PGGB v6 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 (PGGB v6 only)
For those who are interested, PGGB v6 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 configurations, you can create multiple configurations. To create new configurations, enter the name of the configuration you wish to create and press Save. To overwrite the existing configuration, select the configuration from the drop-down, make the configuration changes and press Save. You can also remove existing configurations; just choose the configuration you wish to remove and press Remove. You can also export configurations to create a backup or to share with others. You can import configurations provided to you by others or from your own exported configurations.
Note: Default setting cannot be removed but can be overwritten.
Peak Normalize, Trim and Add 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
Peak Normalize is one of the options for Applying Gain under the Gain tab. 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 Input Only)
This setting can found under 'Trim silence' tab. 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 Output Only)
This setting can found under 'Add Silence' tab. 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.
PGGB-EQ
PGGB supports EQ. You can access EQ configuration through the 'EQ’ tab on the right side once ou are on Configure tab. The interface is quite simple. You can import convolution EQ filters (.wav) or you can import parametric EQ filters (.txt) directly.
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.
Convolution EQ: PGGB 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. Use the 'Import (.wav)' button to browse to your stereo or mono convolution filter file in .wav format. If the convolution filter is mono, then the same EQ will be applied to both left and right channels.
Import Convolution EQ directly
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.
Import Parametric EQ Directly
Import Parametric EQ Filters (REW, Equalizer APO): PGGB v7 allows you to import parametric EQ directly. 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.
Enable or Disable EQ and Status
Once you import EQ filters, you have the option to turn EQ on or off using the 'Enable Equalization' check box. 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. Red indicates that EQ is disabled, and no EQ will be applied. Purple indicates that EQ is enabled but the filters are not imported. The status light will also show a tooltip for possible EQ status indications.
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. For Combine to work, there are two requirements
- The sets of tracks being combined cannot have overlaps
- The tracks should have the track numbers in their metadata
Simple Combining of Tracks
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. You need not list all tracks, just the ranges you want to combine.
Combine Tracks in Multi-Disc Album
Some times the tracks in a single album folder are from multiple discs and you may want to combine tracks within each disc. In this case, you can create a text file named ‘combine.json’ in the album folder containing the tracks to be combined. But the format is slightly different. The format is shown below, here we are combining tracks from disc 2 and disc 3 but not from disc 1. An additional requirement is that the meta data of the tracks contains the disc number. If no disc number is found, PGGB will assume all of the tracks are from the same disc.
Status
Status bar: The status bar displayed at the bottom of PGGB window is information rich. The right side of the status bar is dedicated to showing the current configuration you are using. The left side of the status bar is dedicated to showing the current activity. When you are processing tracks, the left side of the status bar shows information regarding the track you are processing and also CPU and memory information. Once the processing is done, it shows you how many tracks were successfully processed and also if any were skipped or failed to process.
Progress bars: Progress bars on the right side of the 'Process' tab show Batch, Album and Track level progress including the current rack and album being processed.
Log files
Album level logs can be found in remastered output folders. But be sure to turn on logging under under the 'Processing' section of 'Process' tab.
We recommend setting the log level to Summary or Simple for most users. If you are having issues, you can set the log level to Verbose or Debug and send us the logs.
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 and temp folders.
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 double-double (107 bit) or 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.
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, 107, 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.
- 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.
Control when paging starts:
You can control when paging starts by setting the swappiness value using 'swappiness.txt' file. The swappiness value is a number between 0 and 100 that tells PGGB when to start paging, as opposed to using RAM. Swappiness values of 0 or 1 will make PGGB to start paging immediately, while a swappiness value of 100 will make PGGB to try to use RAM as much as possible. The default swappiness value is 50, i.e., PGGB will start paging when the memory it needs exceeds 50% of RAM. You can change the swappiness value by creating a file named 'swappiness.txt' in the same folder as the first page file location. The file should contain a single number between 0 and 100. If the file is not present, the default value of 50 will be used. Set the value to 20 if you find PGGB stops processing even though you have enough RAM space for paging. You can use the sample file we have here . Smaller swappiness values will make PGGB to start paging sooner, reduce memory pressure and improve stability, but it will also slow down the processing because less RAM is used. Larger swappiness values will allow PGGB to use more RAM and less paging, it will be faster, but it may cause the OS to stop PGGB from completing the processing.
Note: By default, if you hitthe 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
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
Licensing
PGGB requires a license and the license is tied to your Hardware ID. You will need to provide your name, email address, Hardware ID and mention if it is Mac or Windows to request a PGGB license. Install PGGB first (follow these instructions). Once you have installed successfully, your PC/Mac Hardware ID will be displayed if you go to 'Configure' Tab-> ‘About’ tab of PGGB. Click on the 'Hardware ID' link, it will copy the Hardware ID to the clipboard, paste it in the email to us. Use this Hardware ID to request a license. We will email you a license file.
When you install PGGB for the first time and it does not find a valid license, it will run in trial mode for the first 30 days, then convert to Lite. Once you have obtained a license file, use the 'Activate' button to browse to the license file. Once the license is installed, it displays the duration and type of the license (either perpetual or with a time limit). Hardware-id is tied to the PC/Mac you run it on. The license is non-transferable to anyone other than you. When your Hardware-id changes, you may request for a new license. If you need to move PGGB to a different PC or Mac, you will need to first deactivate your current license, provide us with the deactivation code, then need to 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 2 tracks for 128 and 256 bit precision PCM output and for all DSD output. You can restart app and process again. | PC/Mac | Converts to Perpetual (Lite) after 30 days | 30 days email support, through forums after that | Free |
Personal: Perpetual (Lite) | For non commercial use. Enables up to 107 bit precision processing for PCM output with no limitations. 128 bit or higher precision processing for PCM output is disabled and DSD ouptut is disabled. | PC/Mac | Perpetual | Support trough forums | <Free |
Personal: Perpetual (Max) | Fully functional, for non commercial use. Enables up to 256 bit processing for PCM output and supports conversion to DSD rates up to DSD1024 with no limitations. | Single PC/Mac | Perpetual | 1 year email support, then through the forums. Free upgrades for at least 1 year** | $1050* |
Personal: Perpetual (Plus) | Fully functional, for non commercial use. Enables up to 128 bit processing for PCM output 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 PC/Mac | Perpetual | 1 year email support, then through the forums. 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 for PCM output and supports conversion to DSD rates up to DSD1024 with no limitations. | Single PC/Mac | Perpetual | 1 year email support, then through the forums. 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:
- 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
- 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:
- 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
- Upgrade to Perpetual (Max). You'll get the best possible SQ and be able to process DSD rates up to DSD1024
Processing options
We have abandoned the hidden menu in favor of a more user-friendly interface. The Processing section allows you to Start/Pause/Stop the current processing. In addition to that, it provides three options:
- 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 provides statistics on how the tracks will be processed. This is useful to find out if there are any problems with your tracks or if you have enough virtual memory set for all your tracks.
- Workers: PGGB defaults to the number of logical cores under 'Auto' . 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).
- Logging: Choose the level of logging you prefer, with None being silent and Debug being very chatty. We recommend leaving it at Summary or Simple. Use Verbose or Debug if you run into issues and email us the logs.
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.