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
3rd Party Plugins - (fb2k) / Re: [fb2k v2] SQL Tree (foo_uie_sql_tree)
Last post by chrisdukes -
fbuser, you literally replied while I was writing this new post; awkward timing, but deeply appreciated none-the-less.  I made a bunch of changes since my last one, but I'm going to read your reply and see what changes I should make.

Multi-Genre Examples:
Code: [Select]
Track #1 Genre - Soundtrack; Score; Anime; Electronic
Track #2 Genre - Soundtrack; Score; Anime; Rock
Track #3 Genre - Soundtrack; Score; Movie; Jazz
Track #4 Genre - Soundtrack; Stage & Screen; Soul; Funk
Track #5 Genre - Soundtrack; Stage & Screen; Rock; Progressive

Ideally, it should look like this:
Code: [Select]
--Stage & Screen

The album sub-nodes would follow their respective genres.  Also, I have a genre field without split values and I have a genre_mv field with split multivalue tag checked.

If I use GROUP BY at the end of the query, it kind of looks like what I want (see screenshot) but I know I can't use GROUP BY because it will only return a single album for each genre_mv.

Code: [Select]
       [original album],
       [album artist],

FROM MediaLibrary
WHERE genre LIKE '%Score%' OR genre LIKE '%Stage & Screen%'

ORDER BY genre_mv

Code: [Select]
        WHEN genre LIKE '%Score%' THEN 'Score'
        WHEN genre LIKE '%Stage & Screen%' THEN 'Stage & Screen'
        END AS Category1,
        WHEN genre LIKE '%Score%' AND genre_mv IN ('Anime', 'Movie', 'Musical', 'Television', 'Video Game') THEN genre_mv
        WHEN genre LIKE '%Stage & Screen%' AND genre_mv NOT IN ('Soundtrack', 'Score', 'Stage & Screen') THEN genre_mv
        END AS Category2,

FROM tabletest
GROUP BY Category1, Category2;

I still a have a lot to learn about SQL so thanks for any help!
3rd Party Plugins - (fb2k) / Re: [fb2k v2] SQL Tree (foo_uie_sql_tree)
Last post by fbuser -
Using multivalue splitting is the wrong approach here as it duplicates the rows of the result which leads to having an own node for each value of the column.

Instead you should first define a function to convert the multivalue column to a JSON array in the SQLite console:
Code: [Select]
SELECT define('mv2json','''["''||replace(coalesce(:v,''''),'' · '',''","'')||''"]''');

This function is persistent and therefore needs to be created only once. In case you defined an own multivalue separator for your genre column you need to replace this
Code: [Select]
... '' · '' ...

by this
Code: [Select]
... ''<your multivalue separator>'' ...

Afterwards you can define your query like this:

Code: [Select]
WITH Genres AS (
  SELECT mv2json(genre) genres
  FROM MediaLibrary
FROM Genres

Add as many columns as you need to cover the maximum numbers of values in your genre tag.

Finally, tick "Omit <null>" in the advanced tab.

I did not test it in detail, but it should work like this.
Lossless / Other Codecs / Re: FSLAC: A FLAC Backward-Compatible Free Semi-Lossless Audio Coder (NMR)
Last post by Kraeved -
The difference in size between FSLAC -2 and -3 never ceases to amaze me. But the hand still reaches for -3, because its spectrogram is almost indistinguishable from the original, which welcomes further lossy compression for the portable player. Of course, the spectrogram is not everything, you need to check with your ears, but it would still be unpleasant to upgrade the hardware tomorrow and discover that the -2 collection has flaws. Curiously, achieving the same visual indistinguishability with Wavpack in hybrid mode is not easy, it stubbornly retains some content (quantization noise, I guess) in the upper segment.

Boris Blank - Vertigo heroes (Part I) @ 48 kHz 24 bit
Code: [Select]
 9 651 738 =  345 kbps = out.fslac2.flac
11 655 366 =  416 kbps = out.b4x.wv
14 237 225 =  508 kbps = out.lossywav-high.flac
17 705 218 =  632 kbps = out.fslac3.flac
47 354 972 = 1691 kbps = out.flac
64 512 068 = out.wav

Diary of dreams - Viva la Bestia @ 44.1 kHz 24 bit
Code: [Select]
11 883 904 =  309 kbps = out.fslac2.flac
14 424 398 =  375 kbpx = out.b4x.wv
18 684 292 =  486 kbps = out.lossywav-high.flac
21 878 177 =  569 kbpx = out.fslac3.flac
63 806 211 = 1660 kbps = out.flac
81 359 276 = out.wav
Audio Hardware / Re: Electrostatic speaker myths
Last post by ktf -
Is there anyone present here who would take a stab at "debunking" this supposed critical weakness of cones, and thus advantage of ESLs?
Sure. I'll start with a simple omission in one of the statements:

"Interestingly and importantly, the way an ESL converts an audio signal to sound is the exact inverse of how a recording microphone converts sound into an audio signal. In a microphone, pressure creates voltage, and in an ESL, voltage creates pressure. This contributes to the exceptional accuracy of ESLs. It is not the case for cone speakers, where electrical current supplies non-linear force to a multiple spring-mass-damper system.
This ignores that electrostatic speaker membranes are usually rather large. Microphone membranes are often less than a centimeter (roughly half an inch) in diameter, and with larger membranes one often sees a roll-off in the high frequencies. The size of the membrane matters, so one cannot say an ESL is a direct inversion of a microphone.

More in general: Sure, electrodynamic speakers are not perfect. Tuning a mass-spring-damper system is a compromise, that is correct. But in return, electrostatic speakers are large and thus deviate from the ideal point-source. The lack of a crossover actually works against electrostatics in this respect: the higher the frequency, the more the size of the driver matters. So, a two-way speaker system can use a small element to come as close as possible to a point source for those high frequencies that need it the most, while using a larger driver for low frequencies that have long enough wavelengths for the size not to matter too much.

As with most technologies, there is compromise. Just because one technology outperforms the other in one aspect doesn't mean it is better, as it might be flawed in another.

Finally: Almost all nearfield studio monitors, which are built for the sound production with the highest accuracy, are electrodynamic, not electrostatic. That is not a coincidence. You could also say: the recording you're listening too has probably been approved by the musician while listening to an electrodynamic speaker. There is no reason to assume electrostatic loudspeakers will be closer to the artists intent if that artist worked on the recording using electrodynamic speakers.
Audio Hardware / Re: Electrostatic speaker myths
Last post by magicgoose -
What counts as loss of information? How much of it is too much?
If there is an imperfection that can be near perfectly negated by some equalization, is that also loss of information?
I would trust measurements more than intuitive reasoning. Are there any such measurements to back up this argument?
3rd Party Plugins - (fb2k) / Re: Text Display (foo_textdisplay)
Last post by marc2k3 -
If you tag your files with musicbrainz picard and enable whatever the settings are for performers/instruments, text display can display the contents of those tags.

Large caveat: fb2k doesn't support the TCMP/IPLS id3 frames Picard writes so if you have lots of mp3 files, you can kind of forget about that.

Online information can be fetched by this script for Spider Monkey Panel..

It's has zillions of options to play around with.

I have a component (JScript Panel 3 in signature) which is much more threadbare on the option front. But it is available for 64bit for those who are interested in that.

Some example scripts:

Lossless / Other Codecs / Re: HALAC (High Availability Lossless Audio Compression)
Last post by Hakan Abbas -
@Kraeved Codecs developed by certain teams (Google, Cloudinary, Apple, AOM), such as WebP, AVIF, HEIF and JXL, work by choosing according to the processor architecture (SSE, AVX, AVX2). Of course, this option could have been added, but it was slightly behind in the order of priority. Because it really wasn't easy for me (speed/ratio/memory/mt) to cope with such powerful image codecs.

HALIC can run a little faster when compiled in AVX2 mode. However, despite the request, I did not do this in order to support slightly older architectures. I thought AVX (2011) would be enough. But until now, such a request had come from outside of you. However, it only takes me a few minutes to prepare a version for older processors. You can access the SSE2 version I compiled for HALIC from the link below.

HALIC is by far the best Lossless Image Codec according to "F_Score (universal score)".
F_Score = C+2·D+(S+F)/10⁶
"Here, C and D are respectively the total compression and decompression execution time (in seconds), S is the total compressed size in bytes, and F is the submission packet size."