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
MP3 / Re: Low bitrate MP3 (+ unsupported bitrates)
Last post by Kraeved -
@Klymins, when people ask about extremely uncommon things without giving a use case where such things would seem appropriate, there is a temptation to assume that the person is solving an XY problem, e.g. how to hammer nails with a microscope. Could you explain why a specific bitrate, CBR mode and mono sound are important to you?

Take, for example, the point-n-click adventure game Broken Sword (1996), where the audio is mostly stored as 11025 Hz 16 bit mono. I'm going to compress a fragment, which contains speech and music, using Fraunhofer 3.1 (CBR), GXLame 5.3 (CBR & VBR), Helix 5.2.3 (VBR with forced resampling to 22.05 kHz), and Vorbis Aotuv 6.03 (VBR).

Code: [Select]
$ mp3enc.exe -br 24000 -esr 11025  -if history.wav -of history.frau.11khz.cbr.br24000.mp3
$ gxlame.exe -b 24 -h history.wav history.gxlame.11khz.cbr.b24h.mp3
$ gxlame.exe -V# -h history.wav history.gxlame.11khz.vbr.v#h.mp3 (# = 24, 32, 40)
$ hmp3.exe -V24 history.wav history.helix.22khz.vbr.V24.mp3
$ oggenc2.exe history.wav -q # -o history.aotuv.11khz.vbr.q#.ogg (# = -1, 0, 1)

  Bytes    Kbps   Filename                      
 -------- ------ -------------------------------
  34 913   17     history.aotuv.vbr.q-1.ogg     
  37 599   18     history.gxlame.vbr.v24h.mp3   
  41 814   20     history.gxlame.vbr.v32h.mp3   
  47 330   22     history.gxlame.vbr.v40h.mp3   
  50 173   24     history.aotuv.vbr.q0.ogg      
  50 648   24     history.gxlame.cbr.b24h.mp3   
  51 095   24     history.frau.cbr.br24000.mp3 
  51 584   25     history.helix.vbr.V24.mp3     
  56 562   27     history.aotuv.vbr.q1.ogg
2
MP3 - General / Re: Resurrecting/Preserving the Helix MP3 encoder
Last post by Kraeved -
Rescue rangers, we have a situation related to the CBR mode with a low bitrate. Unlike LAME, the -B flag of Helix sets the value for each channel, so to get 320 kbps, we enter 160, respectively, to get 24 kbps, I entered 12. But this time the encoding did not go as expected.

Code: [Select]
$ hmp3 -B12 gudki.11khz.mono.wav gudki.11khz.mono.mp3

pcm file:  channels = 1  bits = 16,  rate = 11025  type = 1
 Layer III   MONO   22050Hz   12kbps

-------------------------------------------------------------------------------
      Frames  |     Bytes In  /  Bytes Out | Progress | Current/Average Bitrate
         621  |        352800 /      24293 |   100%   |  11.88 /  12.00 Kbps
-------------------------------------------------------------------------------
 Compress Ratio 6.885771%


$ hmp3 -B12 gudki.22khz.mono.wav gudki.22khz.mono.mp3

 pcm file:  channels = 1  bits = 16,  rate = 22050  type = 1
 Layer III   MONO   22050Hz   12kbps

-------------------------------------------------------------------------------
      Frames  |     Bytes In  /  Bytes Out | Progress | Current/Average Bitrate
         621  |        705600 /      24293 |   100%   |  11.88 /  12.00 Kbps
-------------------------------------------------------------------------------
 Compress Ratio 3.442885%


$ hmp3 -B12 gudki.22khz.stereo.wav gudki.22khz.stereo.mp3

 pcm file:  channels = 2  bits = 16,  rate = 22050  type = 1
 Layer III   mode 1 STEREO  IS-3   22050Hz   24kbps

-------------------------------------------------------------------------------
      Frames  |     Bytes In  /  Bytes Out | Progress | Current/Average Bitrate
         622  |       1411200 /      48744 |   100%   |  23.80 /  24.00 Kbps
-------------------------------------------------------------------------------
 Compress Ratio 3.454082%


$ hmp3 -B12 gudki.44khz.stereo.wav gudki.44khz.stereo.mp3

 pcm file:  channels = 2  bits = 16,  rate = 44100  type = 1
 ENCODER INIT FAIL

a) gudki.11khz.mono.mp3 and gudki.22khz.mono.mp3 are malformed files (24 293 bytes), apps refuse to open them
b) gudki.22khz.stereo.mp3 is the only file here that is both encoded as expected (24 kbps) and playable
c) gudki.44khz.stereo.wav is not encoded with this setting at all, but the error message is quite vague

6
3rd Party Plugins - (fb2k) / Re: Playback Statistics Questions
Last post by dix-hill -
Thanks for the detailed reply!

3. Yes, most likely it overwrites tags, since they have to be updated with every play. However you should be able to import tags to database first, on the right-click tracks > Playback Statistics menu. Then your tag ratings would also be in the database and get written back to tags. (Test it first on one track to be safe)

Apologies, I wasn't clear.  I meant to ask if this will replace all of my existing ratings with nothing when I select Automatically Synchronize File Tags.  Meaning, will all of the ratings I already added be replaced with an empty value?

7
Ogg Vorbis - Tech / Re: Vorbis 1.3.7 aoTuV and Lancer patches
Last post by Kraeved -
There is something wrong about Lancer mod 2021-05-11 hosted on RareWares. It is unable to correctly encode WAV when its sampling rate is less or equal to 11025 Hz: SSE2 version outputs silence, SSE3 outputs heavily distorted sound. All other Vorbis encoders (original, Aotuv, Venc aka Aotuv 2021-03-20, FFMPEG's libvorbis) do the job as expected.

P.S. Also, Lancer mod section on the website is missing its own anchor, <a name="oggenc-aotuv"> is used instead.

Code: [Select]
$ mediainfo in.wav

General
Complete name                            : in.wav
Format                                   : Wave
Format settings                          : PcmWaveformat
File size                                : 361 KiB
Duration                                 : 16 s 780 ms
Overall bit rate mode                    : Constant
Overall bit rate                         : 176 kb/s

Audio
Format                                   : PCM
Format settings                          : Little / Signed
Codec ID                                 : 1
Duration                                 : 16 s 780 ms
Bit rate mode                            : Constant
Bit rate                                 : 176.4 kb/s
Channel(s)                               : 1 channel
Sampling rate                            : 11.025 kHz
Bit depth                                : 16 bits
Stream size                              : 361 KiB (100%)


$ oggenc2 in.wav -q 1 out.ogg


  Bytes    Filename                 
 -------- --------------------------
  46 825   out.original.generic.ogg 
  51 187   out.original.x64.ogg     
  51 301   out.ffmpeg7.x64.ogg      
  51 301   out.ffmpeg7.x86.ogg      
  52 409   out.aotuv.generic.ogg    
  55 291   out.lancer.sse3.ogg      
  56 562   out.aotuv.x64.ogg        
  56 655   out.lancer.sse2.ogg      
  56 670   out.venc.x64.ogg         
  56 674   out.venc.x86.ogg
8
3rd Party Plugins - (fb2k) / Re: [fb2k v2] SQL Tree (foo_uie_sql_tree)
Last post by fbuser -
Ok, now the problem is clear. There is no row having he value "composers (67)" in BadFieldTable. With the following query and batch it should work:

Query:
Code: [Select]
SELECT
  Node1
FROM BadFieldTable
ORDER BY Node1, album, discnumber, tracknumber COLLATE NaturalNoCase

Batch:
Code: [Select]
DROP TABLE IF EXISTS BadFieldTable;
CREATE TABLE BadFieldTable AS
WITH BadFields AS (
  SELECT
     composers,
     composersort,
     composersortorder,
     conductor,
     album,
     discnumber,
     tracknumber,
     path,
     subsong
 FROM MediaLibrary
 WHERE coalesce(composers, composersort, composersortorder, conductor) IS NOT NULL
)
SELECT
  fieldname || ' (' || count(fieldname) OVER(PARTITION BY fieldname) || ')' Node1,
  *
FROM (
  SELECT
    'composers' fieldname,
    *
  FROM BadFields
  WHERE composers IS NOT NULL
  UNION ALL
  SELECT
    'composersort',
    *
  FROM BadFields
  WHERE composersort IS NOT NULL
  UNION ALL
  SELECT 'composersortorder',
    *
  FROM BadFields
  WHERE composersortorder IS NOT NULL
  UNION ALL
  SELECT 'conductor',
    *
  FROM BadFields
  WHERE conductor IS NOT NULL
);

Unrelated Topic: In Playback Statistics, do I have to use Automatically Synchronize File Tags to use Played Count in SQL Tree?
No, but as there are no real tags then you need to define the provided information as TFExpression columns in foo_sqlite.
9
3rd Party Plugins - (fb2k) / Re: foo_vis_spectrum_analyzer
Last post by TF3RDL -
Feature request for Peakmeter part (and to the extent, spectrum/spectrogram visualization): A feature to display Mid/Side representations of all stereo/surround pairs like this

This can be useful for letting me know if the particular song have phase-related/mono-compatibility issues, even though foobar2000 is not a DAW obviously