Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: PPHS Resampler plugin (Read 61472 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

PPHS Resampler plugin

Recent 0.8.2 special installer includes a new PPHS resampler DSP.

What does it do and how does it compare to the SSRC one?

c816

PPHS Resampler plugin

Reply #1
Pro:

1) It is WAY faster
2) It can handle any sampling rate conversion
3) It does not have quality issues on some extreme conversions (e.g. 6000Hz->44100Hz) where SSRC breaks
4) It's optimized so there are no *audible* quality issues

Con:

1) The absolute quality is lower

I would recommend it's usage for playback. For processing, the SSRC resampler will be better _if_ it correctly supports the resampling you are doing.

PPHS Resampler plugin

Reply #2
Garf,

Splendid!  Thank you for the information and for the plugin!

c816

 

PPHS Resampler plugin

Reply #3
It seems to me that there is a bug lurking somewhere in the Ultra mode.

0.8.2 crashes while trying to play an MP3 file while FLAC playback seems to be ok.

Non-Ultra mode is working fine.

My DSP order: PPHS -> Volume Control -> Crossfeed -> Advanced Limiter.

Here is a bunch of traces: failure.zip

c816

PPHS Resampler plugin

Reply #4
Your link doesn't work but I can reproduce it.

Edit: It's a bug when diskwriting, I'll fix it, but as I said above, this really shouldn't be used for offline processing. SSRC is better for that.

PPHS Resampler plugin

Reply #5
For me it's a bug when playing with ks/directsound/null output.

Code section of the trace is always the same, here it is:

Illegal operation:
Code: C0000005h, flags: 00000000h, address: 00C01A90h
Access violation, operation: read, address: xxxxxxxxh
Call path:
playback_core_i::g_thread_func=>playback_core_i::thread_func=>dsp::run
This is the first crash logged by this instance.
Code bytes (00C01A90h):
00C01A50h:  3B D8 89 BE 80 00 00 00 DC 6E 78 DD 5E 78 0F 8C
00C01A60h:  B4 FE FF FF 8B F8 8B 44 24 1C 33 D2 85 FF 7E 48
00C01A70h:  8B 4C 24 30 89 4C 24 20 8B 5C 24 18 33 C0 85 DB
00C01A80h:  7E 22 8D 1C FD 00 00 00 00 8B 7E 3C 40 8B 3C 97
00C01A90h:  D9 44 87 FC DD 19 8B 7C 24 18 03 CB 3B C7 7C E9
00C01AA0h:  8B 7C 24 14 8B 4C 24 20 42 83 C1 08 3B D7 89 4C
00C01AB0h:  24 20 7C C4 8B 44 24 1C 3B 44 24 24 0F 8C A5 FD
00C01AC0h:  FF FF 5F 5E 32 C0 5B 8B E5 5D C2 04 00 90 90 90
Stack (0120FD78h):
0120FD58h:  0000040B 00001000 00000000 005A0944
0120FD68h:  00000001 77D45AAC 0000040B 00C71290
0120FD78h:  008CEB88 00C97428 00000000 00000001
0120FD88h:  0000002F 00000002 0040129C 0000002F
0120FD98h:  01210020 0000002F 00CACE50 00000000
0120FDA8h:  01210020 0120FD9C 00437FD7 0120FDE4
0120FDB8h:  00C02426 008CEB88 00E00F68 00000000
0120FDC8h:  00E40994 0040AC79 0120FEFC 00CFF07C
0120FDD8h:  00000000 00000000 00E00F68 0120FE70
0120FDE8h:  0040AAA9 0000003C 0120FEFC 00CFF07C
0120FDF8h:  00000000 0120FE28 00000000 00E40990
0120FE08h:  00420E4E 00000004 0120FE18 00E00F68
0120FE18h:  00000040 00E00F7C 00000001 0120FE44
0120FE28h:  00000000 00000000 0109001F 0000AC44
0120FE38h:  11B13A25 41F6C282 B7CEF0B1 A8EABCEC
0120FE48h:  00420F57 00CACB50 0000002F 00000002
0120FE58h:  00000000 00000000 00000000 00000001
0120FE68h:  0043A03C 0043A028 0120FFA4 0042033D
0120FE78h:  0120FEFC 00CFF07C 00000000 00001000
0120FE88h:  00E40990 00E40990 00439908 0043997C
Registers:
EAX: 00017E01, EBX: 00000010, ECX: 0138E020, EDX: 00000000
ESI: 00C97428, EDI: 00CCD800, EBP: 0120FDB4, ESP: 0120FD78
Crash location: "foo_pphsresample", loaded at 00C00000h - 00C12000h

P.S. The link is working fine here :/

c816

PPHS Resampler plugin

Reply #6
Somehow, I think that link only works if you're logged into that site. Please use the uploads forum in the future.

PPHS Resampler plugin

Reply #7
Thanks, kode54.

Complete crash traces uploaded.

failure.zip

c816


PPHS Resampler plugin

Reply #9
Everything is working fine now!

P.S. On my P4 computer CPU usage even in Ultra mode is about half of the SSRC's fast mode, according to Sysinternals Process Explorer info.

Thank you!

c816


PPHS Resampler plugin

Reply #11
That is irrelevant, because the author has said that his interpretation of the GPL does not allow even dynamic linking with a closed source application, or maybe it's the linking with the BSD SDK. Whatever. Either way, it would be illegal according to its author, unless someone would like to negotiate ($$$) a more flexible license.

Other GPL components get away with it because the respective libraries' authors are more flexible. Whether their interpetation of the GPL is wrong, or whether the GPL does or does not grant them the freedom to allow third parties to use their software as they see fit without negotiating the exact terms of use is beyond meDamn legalese crap.

PPHS may be slightly lower quality than SSRC, depending on the settings. SRC claims to be high quality, and is superior to SSRC in that it supports conversion between arbitrary rates.

Eh, whatever.

PPHS Resampler plugin

Reply #12
Quote
How does the quality of the PPHS resampler compare with libsamplerate?

http://www.mega-nerd.com/SRC/

The same as with SSRC:

1) PPHS is WAAAAY faster
2) There is no audible difference on music
3) The absolute quality is lower

PPHS Resampler plugin

Reply #13
May I know where I can find more information about PPHS? Is it an open source project?

PPHS Resampler plugin

Reply #14
Has PPHS something to do with polyphase?
Isn't polyphase better than SSRC resampling?

PPHS Resampler plugin

Reply #15
Quote
May I know where I can find more information about PPHS? Is it an open source project?

What do you want to know?

It is not open source.

PPHS Resampler plugin

Reply #16
Quote
Has PPHS something to do with polyphase?


You are clever

Quote
Isn't polyphase better than SSRC resampling?


No (what does SSRC do anyway?).

PPHS Resampler plugin

Reply #17
uh, i have a Q. where are these recent special installers that have this plugin. i used garf's link above (thanks garf) but am curious where you're all getting 0.8.2 from..

edit: thanks below


PPHS Resampler plugin

Reply #19
Quote
Quote
May I know where I can find more information about PPHS? Is it an open source project?

What do you want to know?

It is not open source.

I'm just interested in knowing more about how it differs from SSRC and other resamplers, besides being faster and less CPU-intensive...

PPHS Resampler plugin

Reply #20
Quote
I'm just interested in knowing more about how it differs from SSRC and other resamplers, besides being faster and less CPU-intensive...

Sox has polyphase resampling. Perhaps you could find more info from there.

EDIT: More info about polyphase

PPHS Resampler plugin

Reply #21
i think i've found a bug. PPHS resampler 0.5, foobar 0.8.2, from Case's site. only other DSPs in use are Volume and Adv. Limiter. Unicode version.
seeking rapidly (multiple short seeks in quick succession, i use a shortcut key) in a song causes a crash. does not seem to happen with all songs, but happens always with some. would you like a log?

edit: here's a sample:
Code: [Select]
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 01201CD6h
Access violation, operation: read, address: 01751000h
Call path:
playback_core_i::g_thread_func=>playback_core_i::thread_func=>dsp::run

Crash location: "foo_pphsresample", loaded at 01200000h - 01210000h

i'm scared of posting the whole thing 'cos i got into trouble for that once..

PPHS Resampler plugin

Reply #22
sorry

PPHS Resampler plugin

Reply #23
Why are you upsampling at all?
How about trying to ABX the upsampled Version against the non-upsampled one?
"To understand me, you'll have to swallow a world." Or maybe your words.

PPHS Resampler plugin

Reply #24
Quote
i think i've found a bug. PPHS resampler 0.5,

The latest is 0.6, 0.5 indeed had the bug you describe.