Suggestions for 3.9

Started by AstralSoup Design,

piovrauz

Oh, last one was by myself...
Will ask another one then. ;)
I'd like an option to not clean the played song list if a stream resetsby itself.
(so I don't lose the list if say, the wifi dsconnects)
Would this be possible?

Ian @ un4seen

I'm not sure about displaying the logarithmic volume setting as a percentage (it'll be a low number for most of the slider range), but here's an update that should retain the Message info window's "Recent tracks" list when reconnecting to the server...

   www.un4seen.com/stuff/xmplay.exe

I presume that is the sort of thing you had in mind? :)

piovrauz

Yes, I was talking about the list displayed in Message info window.
Thanks a lot, tested and works beautifully.

I noticed the pre-amp gets reset after a disconnection: would it be possible to have it remember the last value?
I ask because I had it to a low setting, and when it restarted... I jumped!

Regarding the volume as a percentage, scrap that, I realized what I had in mind is nonsensical.
You not being sure about it amde me realize my error.

brycco

Suggestion: Re-order plugin priorities in options list
----------------------------------------------------------
Back when I had an unholy amount of winamp plugins, I would name them differently to change the order they appear in the plugin list, and xmplay would always use the one above it first

With that little trick, I could use two separate versions of the in_v2m.dll plugin, and if the first, newer plugin failed, it would normally get caught by the second older plugin.

Now I don't have any winamp plugins - and the trick doesn't work for xmp plugins, but it seems to load xmp-libxmp before xmp-openmpt, which I think is a better plugin for similar formats.

Instead of having to set filetype priorities on openmpt - why not allow the option to re-order the list, so that xmp-openmpt is loaded before xmp-libxmp.

Also, yes I know that libxmp has an option to disable specific formats, but that is just a coincidence, and sometimes a plugin wont have that. The ability to make all of openmpt (or any other plugin) a higher priority than libxmp has a lot of value and give finer control over what plugins are used and when.

NiZero

Hello to all and thank to creators of XMPlay for great player ever! :)

I have 2 suggestions:
1. «Toggle separate/unseparate song» option instead two menu options.
2. 10 or more band equalizer (actually, I need 20 Hz most of all).

guest

Suggestion: adjustable gap of silence inserted between tracks in playlist.

MachineGhost

I noticed an interesting issue today.  I have an Internet radio station at the end of a playlist of ReplayGained WAVs (ripped CD's).  Normally, I keep the "Reset on new track" turned off and XMPlay's Amplification to a fixed -8.6dB to prevent clipping on the radio station, which is not ideal for listening the WAVs.

However, sometimes I forget to refix the Amplification back to -8.6dB after listening to the WAVs when back on the radio station.  As you would expect, forgetting to do this results in the volume being louder via the external amplifier (EA) with the volume control in the sweet spot for the ReplayGained WAV's.  This morning, I noticed that the radio seemed fuller despite just being louder, so I experimented with turning the EA volume control down and the Amplification up to 0dB vs the Amplification at -8.6dB with the EA in its usual position.  The sound is definitely fuller and richer with Amplification at 0dB.

Thinking about this for awhile, I realized the core problem is Amplification/ReplayGain must be devolving the bit depth as Windows software volume controls do (which should always be set at 100%).  It is not actually adjusting the hardware level of the speaker output.  This is far from ideal from a high fidelity perspective and it annoys me I have missing fidelity for purposes of ReplayGain.  So I think the solution to this problem is to add an option to the DSP menu similar to what's in WASAPI where you can "Control device volume" and have Amplification/ReplayGain operate on the device volume directly and preserve the bit depth.

Comments?

piovrauz

"The sound is definitely fuller and richer with Amplification at 0dB" --> That's what one would expect since there's no attenuation; -8.6dB is more than enough to make quiet sound unaudible.
It's also worth considering that louder sound feels "better", which is why some think cranking up the amp volume leads to better sound. The loudness war ruined so many things.

saga

Congratulations, you have experienced the loudness war. Louder sounds better.
A simple attenuation like that of XMPlay's replaygain implementation or the Windows mixer is nothing more than that - it's attenuation. -8.6dB loses you about one to two bits of information, but even that's not very much. In particular, if you set XMPlay's output to something higher than 16 bit, you don't actually lose any practical information.

piovrauz

Considering earing gets worse with age, I'd say most ppl won't even notice a lossy compression past 30 anyway.
But it seems some think they can even ear ultrasounds (well, they do sell those thousands priced headphones...)

Ian @ un4seen

Quote from: piovrauzI noticed the pre-amp gets reset after a disconnection: would it be possible to have it remember the last value?

Yep, here's an update that should preserve the amp/dsp settings when reconnecting...

   www.un4seen.com/stuff/xmplay.exe

Quote from: bryccoSuggestion: Re-order plugin priorities in options list
----------------------------------------------------------
Back when I had an unholy amount of winamp plugins, I would name them differently to change the order they appear in the plugin list, and xmplay would always use the one above it first

With that little trick, I could use two separate versions of the in_v2m.dll plugin, and if the first, newer plugin failed, it would normally get caught by the second older plugin.

Now I don't have any winamp plugins - and the trick doesn't work for xmp plugins, but it seems to load xmp-libxmp before xmp-openmpt, which I think is a better plugin for similar formats.

Instead of having to set filetype priorities on openmpt - why not allow the option to re-order the list, so that xmp-openmpt is loaded before xmp-libxmp.

Also, yes I know that libxmp has an option to disable specific formats, but that is just a coincidence, and sometimes a plugin wont have that. The ability to make all of openmpt (or any other plugin) a higher priority than libxmp has a lot of value and give finer control over what plugins are used and when.

How many formats are there that you would like the openmpt plugin to handle instead of the libxmp plugin? Although perhaps not as convenient as reordering the plugins, you can enter the file formats that you would prefer the openmpt plugin to handle in its "Priority filetypes" box. That also has the advantage of overriding XMPlay's built-in decoders (which aren't included in the plugins list), eg. if you enter "xm" then the openmpt plugin (rather than XMPlay's own XM processing) will be used to play XM files.

Quote from: NiZero1. «Toggle separate/unseparate song» option instead two menu options.

With the update above, if you add a "SeparateToggle=1" line to your XMPLAY.INI file, the "Separate subsongs" option will work as a toggle.

Quote from: NiZero2. 10 or more band equalizer (actually, I need 20 Hz most of all).

There isn't much scope to expand the built-in EQ because it is part of the skins, but a larger and/or more flexible EQ option (eg. parametric EQ) could be implemented as a DSP plugin. There may be existing Winamp DSP plugins for that that can be used with XMPlay. A native plugin would be best for sound quality though, as the sample data can stay floating-point then. If anyone's interested in doing that, the plugin SDK is available on the XMPlay webpage.

Quote from: guestSuggestion: adjustable gap of silence inserted between tracks in playlist.

Would the gap involve outputting silent sample data or not outputting anything? And would it also apply between subsongs?

Quote from: sagaA simple attenuation like that of XMPlay's replaygain implementation or the Windows mixer is nothing more than that - it's attenuation. -8.6dB loses you about one to two bits of information, but even that's not very much. In particular, if you set XMPlay's output to something higher than 16 bit, you don't actually lose any practical information.

As well as that, the soundcard's output should also be set above 16-bit (eg. 24-bit) via the Sound control panel to take advantage of the higher than 16-bit setting in XMPlay.

guest

Quote
QuoteSuggestion: adjustable gap of silence inserted between tracks in playlist.

Would the gap involve outputting silent sample data or not outputting anything? And would it also apply between subsongs?

This can be done as pause between tracks or as silent track (hidden in playlist or not) between tracks.
Optionally, also between subsongs.

MachineGhost

Hmm, I'm familiar with the Loudness Wars, but I don't see how that is applicable to the issue I raised.  Brickwalling/overcompressing would not extend the dynamic range merely by increasing the volume as I noticed and commented upon (specifically, there was more bass coming in with 0dB Amp than -8.6dB Amp, despite the equivalent volume level coming out of the external amplifier).  I do have the device output set to native 24bit, 48kHz so if any bits are loss by decreasing software volume, why is the fidelity loss noticeable?

In other words, I would get a better experience turning down the external amplifier by the equivalent of -8.6dB using 0dB Amp/100% device output than relying on -8.6dB Amp/100% device output.  The reason this is a problem is because I don't want to be always changing either the external amplifier volume or the device output volume by hand to do what ReplayGain does (which varies tremendously!) and without relying on software volume/bit degradation.  Just make the Amp bypass software volume and work directly on the device output.  Is this really that much of a difficult request?  ???

Dotpitch

Quote from: MachineGhost... (specifically, there was more bass coming in with 0dB Amp than -8.6dB Amp, despite the equivalent volume level coming out of the external amplifier).
Now that you state "more bass", I'm interested. You don't need golden ears to hear the bass level increase, so it can certainly be a real effect. However, I don't expect losing 1 or 2 bits is going to radically change the output/perception of bass. Could you verify this with XMPlay's WAV Writer? Write two files with the different amp settings and look at their spectra using an audio editor.

Btw, what output are you using? Default, or DS/ASIO/WASAPI?

saga

Quote from: MachineGhostHmm, I'm familiar with the Loudness Wars, but I don't see how that is applicable to the issue I raised.  Brickwalling/overcompressing would not extend the dynamic range merely by increasing the volume as I noticed and commented upon (specifically, there was more bass coming in with 0dB Amp than -8.6dB Amp, despite the equivalent volume level coming out of the external amplifier).
You are correct that this has nothing directly to do with brickwalling. However, the theory behind it is the same: Most people perceive loud music as better. This is the reason why the music industry compresses their music to death, and it's the same reason why playing the same song a bit louder will often sound "better", even if it's exactly the same quality from a theoretical point of view.

piovrauz

There's also the matter of what chip his soundacard is using: is it a builtin (realteck :P) card? A separate one? Is it internal? Usb?
Just saying.

piovrauz

Btw, I checked and the preamp setting is kept after a disconnect, just  perfect.
Thanks a lot.

garson

Quote from: Ian @ un4seenWith the update above, if you add a "SeparateToggle=1" line to your XMPLAY.INI file, the "Separate subsongs" option will work as a toggle.
I've downloaded latest 3.8.1.10 and added SeparateToggle=1 in XMPLAY.INI file but I'm still having Separate/Unseparate subsongs options.  ???

piovrauz

Quote from: garson
Quote from: Ian @ un4seenWith the update above, if you add a "SeparateToggle=1" line to your XMPLAY.INI file, the "Separate subsongs" option will work as a toggle.
I've downloaded latest 3.8.1.10 and added SeparateToggle=1 in XMPLAY.INI file but I'm still having Separate/Unseparate subsongs options.  ???

I can confirm it.

MachineGhost

Quote from: Dotpitch
Quote from: MachineGhost... (specifically, there was more bass coming in with 0dB Amp than -8.6dB Amp, despite the equivalent volume level coming out of the external amplifier).
Now that you state "more bass", I'm interested. You don't need golden ears to hear the bass level increase, so it can certainly be a real effect. However, I don't expect losing 1 or 2 bits is going to radically change the output/perception of bass. Could you verify this with XMPlay's WAV Writer? Write two files with the different amp settings and look at their spectra using an audio editor.

Btw, what output are you using? Default, or DS/ASIO/WASAPI?

I don't visually see any difference other than amplitude.  I'm forced to use default so I can use the soundcard's equalizer (XMplay has funky, non-standard frequency bands).



I have two working theories right now.  One, the "bit depth" of AAC streaming media is so poor, it can't handle a -8.6dB amp.  Or two, since a -8.6dB amp looks to be around a 50% reduction in amplitude, there's not enough power available for the external amplifier to amp the signal back to 0dB. 

I'm thinking another solution for this issue is to have an option to reset the amp on a new song when looping on streaming media.  -8.6dB for whatever song it was to avoid clipping is on just really bad normalization for the station.

BTW, can someone remind me of how this audio clipping works?  Is it context dependent on the capabilities of your hardware output device's dynamic range?  I'm not actually sure how a song can be sent out so overamplified that it needs a 50% reduction to prevent clipping.