Arbitrary (irrational) resampling app to change pitch of music file. As a side effect, music duration or tempo is also changed.
Meant to be used to a semitone or a whole tone pitch increase/decrease. Typical use case is correction of the pitch of old recordings, something like increase by 2% (on this case, specify 1.02 x on the app).
Supported sound file format : FLAC
Windows 10 x64 : https://sourceforge.net/projects/playpcmwin/files/others/WWArbitraryResampler103.zip/download
Windows 10 x64
Direct3D 12 Feature Level 11_1 is used. Also optional double-precision operation feature (D3D12_FEATURE_DATA_D3D12_OPTIONS.DoublePrecisionFloatShaderOps) is required to run the resample shader.
Nvidia or AMD dedicated GPU or integrated graphics units may work.
Check your processor's feature level and double-precision capability:
https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units
https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units
https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units
MIT License.
libFLAC: BSD License.
Download WWArbitraryResampler102.zip and Extract all.
Delete downloaded zip file and its extracted files.
Run WWArbitraryResampler on extracted folder.
Select GPU adapter. This app uses GPU to compute arbitrary resampling.
Select Input and Output File (only FLAC is supported)
Set pitch scaling value.
Press Start to convert.
Input data: 44.1kHz 16bit 2ch, duration 3 min 25 sec FLAC file.
Processing type: Increase pitch by a semitone.
GPU | processing time | speed ratio to playback speed |
---|---|---|
Nvidia Titan V | 1 min 0 sec | 3.42 x |
AMD Radeon HD 7950 | 5 min 56 sec | 0.576 x |
Nvidia GeForce RTX 3090 | 6 min 29 sec | 0.527 x |
Nvidia GeForce RTX 2080 Ti | 9 min 18 sec | 0.367 x |
Nvidia GeForce GTX 1080 | 13 min 17 sec | 0.257 x |
Intel i7-8700K UHD Graphics 630 | 1 hour 14 min 58 sec | 0.0456 x |
Nvidia Titan Black | Does not work because it is Feature Level 11_0 card. | - |
This program uses double-precision arithmetic on compute shader, therefore double-precision processing performance is important!
WWArbitraryResampler inputPath gpuId pitchScale outputPath
https://sourceforge.net/p/playpcmwin/code/HEAD/tree/PlayPcmWin/WWArbitraryResampler/
https://sourceforge.net/p/playpcmwin/code/HEAD/tree/PlayPcmWin/WWDirectCompute12Cs/
https://sourceforge.net/p/playpcmwin/code/HEAD/tree/PlayPcmWin/WWDirectCompute12DLL/
Design target of the sample rate conversion quality is Audio CD quality.
Sinc function convolution is performed using 64-bit floating point. convolution length (tap size) is 65535.
Input flac bit depth is 16bit or 24bit. Output flac bit depth is 24bit.
When pitch is increased, output sample rate is doubled to avoid to use low-pass filter, which is neccessary when output signal may contain higher frequency than Nyquist frequency.
Version 1.0.3
Version 1.0.2
Version 1.0.1
Version 1.0.0