Skip to main content


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.
Recent Posts
MP3 - General / Re: Resurrecting/Preserving the Helix MP3 encoder
Last post by maikmerten -
Since you have an affected system, care to test the compile I posted today? It ought to at least give a hint where the slowdowns happen.


Code: [Select]
Time used:
main:     195.430800 ms
wav:      5.713400 ms
encode:   9885.130700 ms
xing:     189.984200 ms
file io:  191.137400 ms
print io: 10774.042400 ms
kbhit:    15.513600 ms
real 0m22,051s
user 0m11,398s
sys 0m3,645s

Spending more time on printing stuff than actual encoding?!

edit: And here's with -D flag (don't print progress):

Code: [Select]
Time used:
main:     197.418600 ms
wav:      6.954600 ms
encode:   9804.481700 ms
xing:     189.424400 ms
file io:  200.825100 ms
print io: 0.000000 ms
kbhit:    15.052200 ms
real 0m11,049s
user 0m10,044s
sys 0m0,233s
3rd Party Plugins - (fb2k) / Re: Playlist-Manager-SMP
Last post by regor -

0.16.0 - 2024-04-22

    Playlists maintenance tools: ported the Playlist revive functionality from Playlist Tools, available now at Playlist maintenance tools, for the active playlist. Pressing Shift + L. Click on the menu entry will select the dead items instead of replacing them. For more complex usage, check the other script.
    Importing file: feature similar to the one found at Playlist Tools-SMP, lets you find matches on library using a mask against a text list (for ex. ARTIST - TITLE per line). Additionally, not found items may be replaced with YouTube links. It also works directly on a URL as long as the content is only text. There is an array of configurable query filters to tweak how tracks are preferred (for ex. non live tracks first).
    UI: total track's size is now available as sorting method, tooltip info (next to duration) and display column. Value is calculated at startup for playlist files (and never saved at the playlist file nor cached) or after loading any of them. This calculation is done without an additional performance impact in case playlist caching is already enabled due to specific search settings (for ex. enabling query searching); it may also be forced with a new setting at 'Playlist behavior\Update other Playlists...' submenu. For UI-only playlists, is always calculated at startup independently of any other setting.
    UI: added tip at quick help popup ('?' button) about tooltip font settings.
    Configuration: expanded user configurable file at '[FOOBAR PROFILE FOLDER]\js_data\presets\global\globSettings.json' with a new setting for console logging to file. Disabled by default. Now this is a change from the previous behavior, where console was always logged to 'console.log' file at the [FOOBAR PROFILE FOLDER]. It can now be switched, but since it's probably not useful for most users is disabled by default.


    XSP: smart playlist are now also refreshed when the playlist sources change by drag n' drop, mouse actions, deleted or restored, in addition to changes when they are loaded in UI (introduced at 0.13.0).
    Clone: .xsp playlists and Auto Playlists will now make a copy of the loaded playlist (if possible) when cloning as UI playlist, instead of re-calculating the playlist to create the copy. This ensures the clone has the same sorting than the loaded version.
    UI: changed all builtin tooltips during external drag n' drop to use the native ones (which also span outside the panel).
    UI: all sorting methods now also sort elements by name in case they have the same priority (for ex. all 0-sized playlists sorted alphabetically instead of randomly).
    UI: smoother scroll bar movement when using the mouse and dragging the bar.
    Helpers: most json data files are now saved with Windows EOL for compatibility improvements with Windows text editors.
    Helpers: updated helpers.


    UI: sorting not applying properly to folders when sorting by size or duration.
    UI: wrong offset for first child item within nested folders when the root folder was not shown on the list.
    Drag and drop: conflict drag n' dropping and pressing Ctrl over the "+" button, unintentionally triggering last edited playlist highlighting at the same time (feature introduced at 0.14.0).
    UI: drag and drop and other features requiring a playlist selection did not work properly with selections from other panels which were not using a playlist as source. Issue #81
    Playlist locks: workaround for SMP bug related to playback on locked playlists. It should now work fine, but the 'default action' lock can not be switched anymore. Issue #82

MP3 - General / Re: Resurrecting/Preserving the Helix MP3 encoder
Last post by maikmerten -
For testing, I disabled the usual Spectre/Meltdown CPU security mitigations ("mitigations=off" as Linux boot parameter). This significantly improved performance.

Binary provided by Case *with* security mitigations (see my previous post):
Code: [Select]
real	0m22,239s
user 0m11,178s
sys 0m3,972s

Binary provided by Case *without* CPU security mitigations:
Code: [Select]
real	0m15,819s
user 0m10,493s
sys 0m1,701s

The CPU security mitigations impact the speed of system calls. For me, this indicates that the affected hmp3.exe binaries are somehow unusually syscall-heavy. This would also explain why the system would get "unresponsive", as reported.

(The native 64-bit Linux binary doesn't get faster when disabling the security mitigations.)
MP3 - General / Re: Resurrecting/Preserving the Helix MP3 encoder
Last post by maikmerten -
I don't really think that the architecture of the AMD Zen APUs really is the main problem here. I'm on an AMD Ryzen Pro 4750G (Zen2-based APU), and here's a 64-bit native Linux compile converting a complete CD album (hmp3 -V100 -HF2)

Code: [Select]
real	0m9,241s
user 0m9,057s
sys 0m0,184s

Here's a 64-bit Windows compile provided by Case (the binary posted on 2024-04-21 07:32:57) on Linux, in Wine, same input, same parameters:

Code: [Select]
real	0m22,239s
user 0m11,178s
sys 0m3,972s

Is the Windows version somehow spamming system calls? The process seems to spend considerable time "elsewhere".


For completeness sake: My mingw64 win64-cross compile yields very similar results:

Code: [Select]
real	0m21,472s
user 0m10,772s
sys 0m3,836s