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.
Recent Posts
1
3rd Party Plugins - (fb2k) / Re: [fb2k v2] SQLite Utilities (foo_sqlite)
Last post by Sue Dunham -
I improved several scripts and thus broke some of them. I did find a fix for the places where it was broken (that I've found, at any rate), but I don't understand why the fix worked and why only some broke in the first place.

All of my queries are separate .sql files stored in a subfolder of the profile directory. Some of those used a nested call of the eval and fileio_read functions to execute other such scripts. I do this to cut down on repetition, especially for long sequences of statements that several queries have in common.

What this used to look like was something like this:

Code: [Select]
[setup stuff]


SELECT eval(fileio_read(fb2k_profile_path()
                     || '\themename\sql\scriptfile.sql'));


[SELECT query to display results in SQLite Console
 | UPDATE query to write data to music file tags]

I wanted to get away from hard-coding the themename directory in each script, since that changes with different themes. So this value became a field in a table, constants, and a view created the full paths with that and other values stored in that table. So the replacement became this:

Code: [Select]
SELECT eval(fileio_read((SELECT sql FROM view_paths)
                     || 'scriptfile.sql'));

Inserting that query in lieu of the string value gave rise to errors from the database being locked. I don't know anything about this issue.

The fix was to take the beginning of the scriptfile.sql out of it and paste it into each calling script right before the eval(fileio_read()) part. What was done for brevity may have been bad for other reasons. These first statements would DROP and CREATE the table that was subsequently used for the [SELECT | UPDATE] that occurred afterward in the main query. It seems that that separation was causing the lock issue, though it was fine before with the string values. The meat of scriptfile.sql is a series of statements manipulating that table, but maybe there's some parent-child threading circumstance I don't grok, or something.

Does that make any sense? How can I understand what happened? My use case is such a mass of bespoke tables and custom metadata tags that I'm hoping this description will suffice.
3
MP3 - General / Re: Resurrecting/Preserving the Helix MP3 encoder
Last post by Kraeved -
Now that we discussed about invalid file state with interrupted encoding I noticed that the Xing header isn't correct in that case. Here's a patch for dev branch to fix that.

I analyzed the incomplete MP3 files created before and after this edit of yours using MP3GuessEnc. It provides a lot of information about the file, but I was disturbed by the line regarding the error in the header. What do you think about it?

Code: [Select]
 $ busybox.exe timeout -s kill 1 .\hmp3chang20240414.exe in.wav chang1.mp3
$ mp3guessenc.exe chang1.mp3
...
0 header errors.

$ busybox.exe timeout -s kill 1 .\hmp3chang20240426.exe in.wav chang2.mp3
$ mp3guessenc.exe chang2.mp3
...
1 header errors.

$ busybox.exe timeout -s kill 1 .\lame3101b3.exe -V0 in.wav lame.mp3
$ mp3guessenc.exe lame.mp3
...
0 header errors.
5
3rd Party Plugins - (fb2k) / Re: OpenMPT Module Decoder
Last post by Sergey77 -
Attached is the glowyness.symmod module.
It can be downloaded from the link: ftp://ftp.modland.com/pub/modules/Symphonie/Mosez/gloomyness.symmod
Pay attention to the pattern structure of this module. Each pair of channels consists of a pair of identical instruments (see picture 1).
If you turn off some duplicate channels using View\OpenMPT control (see picture 2), then the stereo mode will be noticeable by ear.
I believe the reasons for this may be either in the libopenmpt library https://lib.openmpt.org/libopenmpt/ or this is a feature of this module.
For example, some parts of this module corona.symmod ftp://ftp.modland.com/pub/modules/Symphonie/Mosez/corona.symmod are played in stereo mode without turning off the channels.

By the way, it would be great if Peter updated this plugin with a new version of libopenmpt.