1
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.
2
Lossless / Other Codecs / Re: Monkey's Audio 11.00 (MULTI-THREADED ENCODING / DECODING)
Last post by genuine -These stages should already be present in HALAC. The remaining tiny time can be spent on other details. And a maximum of 5% speed loss required for these will not leave HALAC behind in any way. It tries to combine reasonable compression ratio with excellent speed balance. Maybe we will see more in the future. There hasn't been much movement or innovation in lossless audio for more than 20 years. At least we should thank HALAC for this.
I also now made tests with lossy audios produced with lossyWav (my favorite). However, Monkeys gave much worse results than the others. Even though I tried different parameters, the results did not change much.
3
3rd Party Plugins - (fb2k) / Re: ReplayGain DSP - Alternative ReplayGain implementation by Case
Last post by Mekoz -New version released with the promised change. Fast DSP reset will no longer be a problem.Brilliant news and a quick turn around, thanks for your continued support.
I just want to mention the reason why i was using Fast DSP reset. My headphone dsp chain introduced some lag/latency which made skipping tracks a pain due to it taking longer than normal to switch.
4
Lossless / Other Codecs / Re: Monkey's Audio 11.00 (MULTI-THREADED ENCODING / DECODING)
Last post by Porcus -FLAC: designed for low decoding footprint, asymmetric in the sense that you can throw a lot of juice at the encoder (and initially you even had to, it wasn't that fast encoding), and what you got was a better predictor but essentially the same decoding.
Monkey's: designed for heavier compression, and symmetric. Think: an algorithm where decoding just does the encoding steps in reverse, better compression required a heavier algorithm for both.
Indeed, up to TAK we (at least I) thought it wasn't possible to get any such compression figures in a lightweight-decoding codec.
HALAC was designed to out-do FLAC at speed. And not only "FLAC": the fastest FLAC modes. You have a motorbike vs a truck, they both move from A to B but they serve different purposes. Don't complain that the bike takes less cargo and the truck is heavier.
And more. I might get some timeline wrong, but at least at some point in time:
FLAC: an audio compressor. Accepting WAVE and AIFF, but not getting you the file back, only the audio. Non-audio chunks support came much later and is only supported by the reference encoder.
Monkey's: a file compressor. Had a big picture in your WAVE file (not common then!)? Monkey's would store it, and you would get back not only the audio, but the same file bit by bit.
FLAC: out on Sourceforge, free(speech) software, free spec'ed format, enormous flexibility in what the encoded bitstream could look like.
Monkey's: full control over the bitstream, a Monkey's "high" file from 2006 is bit by bit the same as now up to the tags section.
FLAC: command-line tool for inclusion in other software
Monkey's: GUI, drag and drop and click convert
5
3rd Party Plugins - (fb2k) / Re: foo_vis_vumeter
Last post by boxerfan88 -Let me re-check why my 2.1 VU is showing lower value compared with my 2.0 VU. Hmm....
Hmm ... does the info below explain why my 2.1 VU is showing lower than 2.0 VU ...?
Quote from: ChatGPT
That's correct! If you mix down from **L+R to C** and then attempt to upmix from **C to L+R**, you **won't get back the original level**. Here's why:
### Mixing down L+R to C:
When you mix down the left (L) and right (R) channels to the center (C) using the formula:
\[
C = \frac{L + R}{2}
\]
You're averaging the two channels, which means the center channel (C) will have less energy than the sum of L and R. Specifically, if the left and right channels are at the same level, the center channel will have 6 dB less power than the original L+R sum because you're averaging the signal.
### Upmixing from C to L+R:
When you try to upmix from C to L+R with:
\[
L = C \times 0.5
\]
\[
R = C \times 0.5
\]
You're simply splitting the center signal evenly between the left and right channels. Since you averaged the L+R to create C initially, you're now redistributing that average back into the left and right channels, which results in a signal that’s at a lower level than the original L+R mix.
### Why this happens:
- **Loss in level during mixdown**: When you mix down L+R to C, you average the two channels, which results in a lower overall level.
- **Loss in level during upmix**: When you upmix C to L+R, you're redistributing the lower-level center signal back into both channels.
### The result:
When you mix down L+R to C and then upmix from C to L+R, you'll have a **reduced level** compared to the original L+R mix. Specifically, the upmixed signal will be approximately **6 dB quieter** than the original, assuming you used the simple upmixing formula (with equal distribution).
### How to avoid this:
If you need to preserve the original levels, you could modify the upmixing formula by compensating for the loss. For example, you could use:
\[
L = C \times \sqrt{2}
\]
\[
R = C \times \sqrt{2}
\]
This would restore the signal to its original level when upmixing. However, this might result in a slight imbalance depending on the exact method used for mixing down.
In practice, the exact compensation method can depend on the specific application and desired result, but the general rule is: **mixing down L+R to C reduces the level, and upmixing doesn't fully recover it unless you apply some compensation.**
6
Lossless / Other Codecs / Re: Monkey's Audio 11.00 (MULTI-THREADED ENCODING / DECODING)
Last post by genuine -However, when it comes to speed, HALAC produces really annoying results

Windows10 X64, Intel Core i5-2300
12 tracks, 44.1, 16 bit, stereo (585,144,122 bytes)
Quote
MAC 11.0 normal -threads=1 -> 394,231,260
Encoding 21.910 s, Decoding 22.489 s
MAC 11.0 normal -threads=8 -> 394,231,260
Encoding 6.439 s, Decoding 7.149 s
Quote
HALAC 0.3.8 -normal -> 404,597,742
Encoding 3.150 s, Decoding 4.239 s
HALAC 0.3.8 -normal -mt=8 -> 404,597,742
Encoding 1.758 s, Decoding 1.999 s
7
3rd Party Plugins - (fb2k) / Re: Library Tree Discussion
Last post by M40 -8
Lossless / Other Codecs / Re: Monkey's Audio 11.00 (MULTI-THREADED ENCODING / DECODING)
Last post by MonkeysAudio -Monkey's Audio 10.96: 9.94, 9.50
Monkey's Audio 11.00: 2.45, 2.52
So around 4x faster with my machine.
9
Lossless / Other Codecs / Monkey's Audio 11.00 (MULTI-THREADED ENCODING / DECODING)
Last post by MonkeysAudio -I'm releasing a new Monkey's Audio 11.00 with multi-threaded encoding and decoding.
Robert Kausch worked unbelievable magic again! He had baked this a while back and I prodded him a little and he helped get it totally ready to release!
Encoding or decoding a big file is many times faster. It uses the same concurrency settings previously, but uses more threads when doing less files than threads.
Here's a a build and SDK you could test:
https://www.monkeysaudio.com/files/MAC_1100.exe
https://www.monkeysaudio.com/files/MAC_1100_x64.exe
https://www.monkeysaudio.com/files/MAC_1100_SDK.zip
History:
NEW: Added multi-threaded encoding and decoding (thanks Robert Kausch!) (uses the same setting for concurrent files but when processing less files than threads it will increase the number of threads -- so one big CUE file will be much faster).
Changed: Bumped the interface version because the number of threads was added.
NEW: When compressing from the command line, specify something like -threads=16 after the compression level to set the number of threads. (example: MAC.exe "C:\1.wav" "C:\1.ape" -c2000 -threads=16 -t "Artist=Abba")
NEW: When decompressing from the command line, specify something like -threads=16 after the decompress flag to set the number of threads. (example: MAC.exe "C:\1.ape" "C:\1.wav" -d -threads=16")
NEW: When verifying from the command line, specify something like -threads=16 after the verify flag to set the number of threads. (example: MAC.exe "C:\1.ape" -v -threads=16")
Changed: Renewed the code signing certificate for another year.
Changed: Updated to Visual Studio 17.13.5.
Fixed: The installer made an extra entry in the uninstall section of the registry with the start menu folder but now it is with the other uninstall data.
Fixed: The path combobox did not allow entering a path longer than the combobox (it wasn't scrolling).
NEW: Added a thanks to Robert Kausch in the About box for all his genius (32-bit float, multi-threading, etc.).
Testing and any feedback appreciated.
10
General Audio / Re: Live stream format with proper metadata & embededd album covers
Last post by zeremy -
Options looked into so far:
- MP3, AAC with icy-metadata
Very limited metadata capabilities, there does not appear to be any official specification of the icy-metadata protocol despite being in mainstream use for over 20 years. No metadata beyond artist - title, no proper delimiting of these two, unspecified character encoding (though everyone seems to have finally agreed to send UTF-8 by now). Some radio stations even transmit album cover picture links.- Ogg Vorbis
Historically the first format to get of this stuff right, by sending new Vorbis stream headers with each new song. Sadly seems to be dying out.- Opus
Technically possible to send live info as with Vorbis, but nobody seems to do actually it?- FLAC
Live metadata capability missing, libFLAC won't decode concatenated FLAC files with new metadata.- Ogg FLAC
Live metadata capability missing, libFLAC won't decode concatenated Ogg FLAC files with new metadata.
EDIT: libFLAC 1.5.0 can decode chained Ogg streams, this looks like the most promising option so far.
Certain radio station uses Ogg FLAC with icy-metadata, which is a horrible idea but works.
Below is my test icecast broadcast server , using a combination of foobar2000, virtual cable, liquidsoap and icecast.
http://zeremy.serv00.net:8200/status.xsl
Both opus and flac streams are chained, have metadata and include a cover_url tag witha link of the artwork for remote downloading by the client.
I use a Jscript3 panel in foobar2000 to grab either $info(cover_url) or %cover_url% link to display the artwork.
The problem is that most clients don't support chained ogg, foobar2000 and aimp though work fine.
Relative discussions I had
https://github.com/savonet/liquidsoap/discussions/3990
https://github.com/AzuraCast/AzuraCast/issues/7240
If wanted I could provide more details of the setup.