any media players written in assemply language?

Started by mptntguru, November 03, 2017, 19:25:39

Previous topic - Next topic

mptntguru

I am curious if any media players written in assemply language exist. It would be interesting to fully bypass Windows code and have the player directly communicate with audiocard's hardware. Currenly i use foobar 0.8.3 via asio on win7 or via ks on winxp which seems to have the most detailed highs.

Saga Musix

The language a player is written in is completely irrelevant to how directly it can (or can not) access the audio hardware. User-mode programs cannot access hardware directly on a "modern" Windows system (and that includes even the very old Windows XP), not even if they are written in assembly language.
The closest you can get is Kernel Streaming on XP as you mentioned, or WaveRT on Vista and newer (which is the logical continuation of Kernel Streaming).
However, starting from Windows Vista, the Windows audio stack has been improved considerably and whether you use Wave Out, WASAPI or WaveRT will not change the amount of "detailed highs" or whatever you get from the audio, unless you make use of those esoteric "sound improvement" options present in some audio drivers.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

mptntguru

I agree that kernel streaming is the best. I got most visualized listening experience from that combo xp+ks. As for wasapi I have read that only wasapi exclusive has bit-to-bit mode. On XP even with direct sound you get bit-to-bit if all your windows's mixer faders are set to 100%. As for asio though that article has claimed it's also bit-to-bit but I always got impression that it sounds with metallic odour both on xp or later. Asio output's quality definitely depends on asio driver quality and some other factors unknown to me. All said refers to foobar2000.

My magical combo is audigy2 zs's p16v bit-to-bit device + kx driver + foobar 0.8.3. It does something unbelievable. If i have lowest noise in a mix i can notice it only via that combo. I am not sure if it will work with other soundcards. what it does is it kind of makes soundchip or whatever the card has more sensitive or like powered. Sometimes i notice noise from electrical circuits of the mainboard but sound sounds alive and more dynamic.

As for sound of xp vs win7 I have noticed that xp has better noticeable panning and pingpong effects and sound is more distant from you. May be depends on the driver and card in question and not OS but the difference is present and quite noticeable.

Also an interesting fact from my life is that in 1999-2000 I with a couple of mates got almost studio quality recording from the cheapest multimedia microphone on windows 98. I remember the guy was changing drivers one by one (for soundcard or which device?) untill he got a very sensitive input into the mic.

manx

Quote from: mptntguru on November 04, 2017, 00:57:39
I agree that kernel streaming is the best. I got most visualized listening experience from that combo xp+ks. As for wasapi I have read that only wasapi exclusive has bit-to-bit mode. On XP even with direct sound you get bit-to-bit if all your windows's mixer faders are set to 100%. As for asio though that article has claimed it's also bit-to-bit but I always got impression that it sounds with metallic odour both on xp or later. Asio output's quality definitely depends on asio driver quality and some other factors unknown to me. All said refers to foobar2000.

As for sound of xp vs win7 I have noticed that xp has better noticeable panning and pingpong effects and sound is more distant from you. May be depends on the driver and card in question and not OS but the difference is present and quite noticeable.

Please stop reposting and restating unproven and unfounded claims you have heard or read somewhere. Unless you have actually done double-blind listening tests and gotten statistically significant differences between different implementations, ALL your claims are totally useless and will only confuse and irritate other users. All your claims need to be either actually scientifically measured (either by examining the produced sound output mathematically and actually showing differences between players or DAWs, OR by conducting proper double-blind (or similar) listening test to rule out any and all personal confirmation bias and other psychological effects (if you KNOW which software is producing a given sound, your brain WILL FOOL YOU about the perceived quality)). The following words are particularly useless as any kind audio rendering quality assessment in the context given: "most visually listening experience", "bit exact", "metallic odour", "unbelievable", "sensitive", "powered", "dynamic", "better noticeable panning", "magical".
Also, you should seriously not believe or trust random articles (even by so-called "audio professionals") that assess audio output quality without them having done AND PUBLISHED either measurements or blind listening tests results. There is a whole ton of esoteric and unproven (and unprovable) and often simply completely wrong "information" by the "audiophile" community out there.

Now, yes, improperly configured systems, drivers, applications can certainly produce audible differences in sound quality, however it is highly unlikely that you have experienced all those configuration issues.

Quote from: mptntguru on November 04, 2017, 00:57:39
My magical combo is audigy2 zs's p16v bit-to-bit device + kx driver + foobar 0.8.3. It does something unbelievable. If i have lowest noise in a mix i can notice it only via that combo. I am not sure if it will work with other soundcards. what it does is it kind of makes soundchip or whatever the card has more sensitive or like powered.

Now, especially with the Audigy2, there can actually be differences between drivers if one does always run the DSP while the other does not. See https://en.wikipedia.org/wiki/Sound_Blaster_Audigy (the Audigy2 will resample internally to 48kHz if the DSP is enabled (even if it does nothing to the audio signal itself). I expect the kx driver to disable it by default, while the original creative labs driver might have it enabled). However, there is nothing magical about that. In fact, I would consider that a particularly bad soundcard for testing because you can easily run into that quirk. Also, depending on the sound output API (KS, WaveRT, ASIO, WaveOut, DirectSound, ...) that a particular software uses, it could either bypass or not bypass the Audigy2 DSP.

Also, why are you using a severely outdated player version? Foobar2000 is at 1.3.something nowadays.

Quote from: mptntguru on November 04, 2017, 00:57:39
Sometimes i notice noise from electrical circuits of the mainboard but sound sounds alive and more dynamic.

Yes, this can sometimes happen. However, that has nothing to do with any particular driver, or software setting or DAW. It has only to do with the quality of electrical shielding implemented in designing the particular soundcard or onboard sound device. In most cases, it is also orders of magnitude more significant than any difference in samplerate, resampling algorithm, bit depth, dithering. So if your particular soundcard induces electrical crosstalk noises from other components in your system into the output signal, you should seriously consider changing the soundcard (or other system components). Also note the the human brain can (and sometimes even tends to) perceive audio with a certain level and type of background noise as sounding better (again, your brain will happily fool you about basically just everything).

Quote from: mptntguru on November 04, 2017, 00:57:39
Also an interesting fact from my life is that in 1999-2000 I with a couple of mates got almost studio quality recording from the cheapest multimedia microphone on windows 98. I remember the guy was changing drivers one by one (for soundcard or which device?) untill he got a very sensitive input into the mic.

Seriously, you very certainly did not. You probably thought you did because of confirmation bias, placebo effect, post-processing you applied to the signal, or even simply because you got unexpectedly lucky and the cheap mic was actually very good - which all is fine. The soundcard driver has nothing whatsoever to do with the sound quality produced by a particular microphone. Sometimes drivers implement some kind of "enhancing" (whatever that means) effect on the input signal, but that can always be disabled in the settings. Improperly configured microphone preamp in the soundcard driver settings can also cause bad sounding microphone sound.


Things to read up on:
https://en.wikipedia.org/wiki/Blinded_experiment#Double-blind_trials
https://en.wikipedia.org/wiki/ABX_test
https://en.wikipedia.org/wiki/MUSHRA
https://en.wikipedia.org/wiki/Confirmation_bias

mptntguru

I resample to 48000 in foobar so audigy does not resample. Anyway in kxmixer i switch off dsp entirely. sound goes from application directly to hw output.
Everything i wrote to you is confirmed by other soundproducers. So i am not going to make any blind tests. If i hear that something sounds better and I give that song for other people they also say it sounds better. Otherwise such profession as soundproducer would not exist. It's because all people percive frequencies the same way. That's why if asio has metallic odour it has metallic odour and you can ask other people to confirm it. Besides people pointed out presence of metallic odour without me even naming the word "metallic". And those people are not even related to sound production.

Where can i get wavert driver?

Foorbar 0.8.3 was the last version with the first type of engine and gui and it sounds differently from later versions.

Midori Mizuno

QuoteEverything i wrote to you is confirmed by other soundproducers
Who are those "other soundproducers" though? The thing is that many among them don't really understand how digital audio works.
The whole "audiophile" (or rather "pseudoaudiophile" communities, as they should be called properly in this case) basically love to repeat completely unfounded, often emotionally biased opinions without actually understanding the core issues, and tend to tackle the whole topic of sound as if it was some kind of voodoo magic, full of imprecise, ambiguous or just plain dumb terms, that have no objective substance to them.

What is that metallic odour you talk about, for instance, and why would ASIO introduce it to the signal anyway? It shouldn't be performing ANY operations on the data stream it passes, unless you have resampling/16bit resolution forcing options ticked.

QuoteFoorbar 0.8.3 was the last version with the first type of engine and gui and it sounds differently from later versions.
GUI don't process audio, thus they can't have any influence on it, and the audio engine shouldn't be introducing alterations either, before passing the signals to the drivers, unless you're using some internal DSPs, like equalizer or similar stuff. Record raw stream from both program versions with tools like VB Voicemeeter and compare them bit by bit if you want, there shouldn't be any difference between them.

This whole "my X software is more faithful at reproducing the sound than your Y software" just reminded me of how some people engage in similar nonsense disputes, but in the context of DAWs, and a nice article addressing it, written by Image-Line (a very recommended read btw).
https://www.image-line.com/support/FLHelp/html/app_audio.htm
Also the presentation linked at the bottom of it.

mptntguru

I won't debate on this matter and will stick to my point of view. You can compare asio vs ks vs wasapi in one and the same version of foobar if you have any hezitations. And just a pure logic should tell that if they sounded the same there would be only one most common output in foobar like waveout perhaps. But it's not like that which is confirmed by thousands of people. As for asio generally you may not notice that thin metallic odour when not comparing directly to other outputs and besides that odour can be a feature of foobar's asio module and not generally of asio as it is.

mptntguru

By the way does anyone know how to use wavert in foobar? I don't see it in outputs section. I see it only in openmpt.

manx

Quote from: mptntguru on November 04, 2017, 18:08:21
I resample to 48000 in foobar so audigy does not resample.

So any audio signal always goes through the foobar resampler. A severely outdated and ancient version of it. I am not implying that this particular version is buggy or bad or imperfect, but you should seriously consider using the latest version. Software authors do fix bugs over time.


Quote from: mptntguru on November 04, 2017, 18:08:21
So i am not going to make any blind tests.

I have no idea what to say. I have already explained in great detail why this is essential. MiDoRi did so too (go read the linked document).

I have already provided the background information links which go into much further detail than I can do, but I will try to re-state one last time:
People told you why something would supposedly be better than something else. You believed it (for good or bad reasons, does not matter). And now your brain will make it so. Your brain will actively fool you to avoid having to realize that you believed in maybe incorrect facts. It's basic psychology. Happens to everyone, myself included. You must take active action to construct an environment in which the brain does not have the full knowledge of what is happening so that it cannot fool you towards what it wants you to experience. Properly set up blind listening tests is the way to do just that for audio. They will not only help refute your claims (if they turn out wrong), but could also (if your claims are right) actually actively help convince other people that there really are differences caused by software bugs or configuration issues.


Quote from: mptntguru on November 04, 2017, 18:08:21
Where can i get wavert driver?

WaveRT is the native low level sound driver interface implemented in Windows Vista and all later versions. It's always included. When using older Windows XP era WDM drivers in Windows Vista or later (if supported), the WaveRT API is not available (I am not 100% certain on that, I have never used a WDM driver on Vista or later). On Windows XP or earlier, there is no WaveRT, ever.

As far as I know, the KX driver is a WDM driver.


Quote from: mptntguru on November 05, 2017, 00:19:07
By the way does anyone know how to use wavert in foobar? I don't see it in outputs section. I see it only in openmpt.

No idea, ask in a Foobar2000 forum. In general, there is absolutely no need for an audio player to implement WaveRT output though. WASAPI will work just fine for all practical purposes.


Quote from: mptntguru on November 04, 2017, 18:08:21
Foorbar 0.8.3 was the last version with the first type of engine and gui and it sounds differently from later versions.

Unless you prove that claim, it is useless. You MUST either measure it or do a blind listening test.


Quote from: mptntguru on November 05, 2017, 00:17:49
You can compare asio vs ks vs wasapi in one and the same version of foobar if you have any hezitations. And just a pure logic should tell that if they sounded the same there would be only one most common output in foobar like waveout perhaps. But it's not like that which is confirmed by thousands of people.

The thousands of people either have never done a proper listening test (highly likely) or had some stupid configuration error (also not unlikely). If you claim that some software or output method does audibly changing or even outright bad things to the audio signal, YOU are the one who has to prove that, and YOU have to do the listening test to even prove that there is in fact some noticeable problem or bug. Any other method of reporting problems does not scale because you expect the software authors to disprove any and all claim in that case. This does not work because time in the universe (and thus mine as a developer) is finite. Why am I considering any difference in sound in all mentioned cases a problem or bug? Because there is technically absolutely no reason whatsoever why it would sound noticeably different, thus ANY difference automatically is a bug in the software (or a configuration issue on the user side - and there is no way to tell until YOU did the measurements so that we could even at all quantify what we are talking about).


For all these reasons, unless you actually provide any founded measurements or proofs, I will not comment any further on this topic. In fact, I will have to lock this topic in order to stop you from continuing posting wrong, bogus and false claims which do confuse novice users. You are doing active harm here.

Fatarse

I doubt there would be many players written in assembler, not unless you are the Borg!