6

We have a small number of offices in various locations and we are using Windows only. For a specific use case we are looking for some way to be able to capture in/out audio from the individual PCs. One of the companies we contract regularly told us that they can sell such an custom application that they have built (i.e. not a well known application) in the form of an executable and that it can work in any PC and never will need any sort of update. It is install and forget. I find that hard to believe that I can install a Windows based exe and regardless of Windows version (and upgrades) and hardware combinations this exe will never need any sort of update. Is this theoretically possible or is it a sales pitch? What information should I ask to understand and validate their info?

I am interested only if that is possible in theory as I would expect as e.g. Windows upgrade Win APIs could become deprecated or that there could be certain audio cards that don't support certain APIs

smith
  • 168
  • 5

4 Answers4

4

Short answer: No!

Long answer: An app that works with any version of any operating system and never needs updates? What could possibly go wrong?! Dude, if it looks like a scam, it probably is!

NISMO1968
  • 1,583
0

This sounds a bit questionable. Specifically, this request:

some way to be able to capture in/out audio from the individual PCs

sounds to me like you're asking to be able to capture the sound being output by the computer (i.e. capture what is being sent to the speakers). This brings up some difficulties on older versions of Windows.

WASAPI is the modern Windows API for handing audio, and was introduced in Windows Vista. It has native support for this "Loopback" capture, regardless of drivers. This method should work without problem for the foreseeable future, and many pieces of existing software already implement loopback capture capability using this API. Some examples are OBS and Audacity.

However, on Windows XP and earlier, only the older "Wave Audio" API was available. As far as I'm aware, there is no supported way to get loopback capture using this API, you can only capture from an input device like a microphone. Many sound device vendors (especially Realtek) were nice enough to provide a virtual input device, often called "Stereo Mix" or similar that did this at the driver level, just copying your output back to an input device to enable loopback recording. However, this is driver-dependent, and will only work on some systems.

The alternative option for these old systems is by use of a kernel-mode driver that supplies a virtual audio output device that does the same thing, providing a virtual input device. One such application is Virtual Audio Cable.

In summary:

If your vendor is only promising Vista+ support, then a WASAPI implementation is simple enough that a well-developed and thoroughly tested application could be reasonably bug-free and operate well into the future without updates. However, ask any real developer, and they won't promise "never needs updates", because there are always bugs, unforeseen usage scenarios, etc that will need patches. Even spacecraft NASA launches has remote code update capabilities, because completely bug-free code effectively does not exist.

If your vendor is promising Windows 95+ support, they are suggesting that they can develop a kernel-mode driver competently enough such that updates would never be necessary. While this is theoretically not impossible, the promise sounds very fishy.

CaiB
  • 1
-1

I find that hard to believe that I can install a Windows based exe and regardless of Windows version (and upgrades) and hardware combinations this exe will never need any sort of update.

It's a simple enough utility, so if it's just using the Win32 API it's bound to run on any MS Windows there is and will be (as long as MS doesn't remove the required functions).

Hardware is abstracted to the OS by its driver. The API provides generic access to hardware functions, regardless of the actual hardware.

Is this theoretically possible or is it a sales pitch?

Yes, that's possible.

What information should I ask to understand and validate their info?

Just ask for a demo and test it on any Windows version you can find. Of course, there are quite a few other tools around providing the same functionality.

As a side note, you should be aware of any possible legal ramifications of recording video or audio from your users' workstations (especially without their knowledge or consent), depending on your country's legislation.

Zac67
  • 13,684
-1

In theory, yes, it’s doable, provided that ‘any PC’ ignores systems running versions of Windows from before Windows NT 3.1, those running Windows RT, those using S Mode, and possibly specialized device-specific versions (and of course anything running something other than Windows).

The Win32 API is probably one of the most extreme cases of backwards compatibility in software that exists today. With the exception of some internal implementation details that will not matter to a vast majority of applications, the original API as provided by the first public release of Windows NT 3.1 on 1993-07-27 is still present and essentially unmodified in the latest versions of Windows 11. Anything using only those parts of the API will, if built correctly, run just as well on a system running the original Windows NT 3.1 as it will on a system running Windows 11. The same largely applies for newer versions of the API as well. Essentially every part of the Win32 API that was in NT 4 still works on Windows 11, as does essentially every part that was in Windows 2000, and XP, and Vista, and 7, etc.

As far as hardware, that’s also covered by the OS. Since about Windows NT 4.0 and Windows 98, ‘special’ APIs for specific implementations of a particular type of hardware are generally not a thing on Windows. Back in the days of DOS, or even Windows 1.0 or 2.0, you would indeed often find programs that would talk directly to the driver or even the hardware itself. But it’s long-since been the case that to use an audio device, you talk to the OS itself, which provides an API that abstracts all the standard audio device functionality, and thus you have one consistent interface you use for all audio devices¹.

There are three big caveats to this however:

  • It’s not exactly trivial to program to just the Win32 API. It’s technically doable in this case since the stated app is so absurdly simple, but the Win32 API, and especially the old parts, is quite simply kind of a pain in the arse to work with and not very well designed. It’s also very easy to unintentionally use newer parts of the API unless you really know what you’re doing. Given this, you should be asking for a demo of this program and testing appropriately, and then assuming that it may break in subtle ways that nobody could predict years down the line.
  • Microsoft themselves are not actually that happy with the Win32 API, and have been slowly pushing on and off to force people over to their new UWP APIs since the release of Windows 8. It’s extremely unlikely that they will actually completely remove any time soon (I would put better odds on Windows being officially ported to RISC-V before the Win32 API is removed from Windows), but this is something to keep in mind.
  • While Windows on ARM technically supports x86 Win32 applications, there is a distinct possibility that there may be problems for such applications on Windows on ARM if they need to do real-time data processing (which is arguably needed for a useful audio recorder or player). There’s theoretically an impending shift to ARM as a primary platform for consumer PC hardware on horizon², so this may be worth keeping in mind.

1: Interestingly, the same is actually also true for much of the hardware interface for essentially all internal audio devices in computers that are not add-in cards. Older systems almost exclusively used AC'97 hardware, while new ones use Intel’s HD Audio interface, even for the audio output via HDMI/DP on graphics cards.

2: Given the rather heated disagreement between Qualcomm and ARM Holdings right now, it’s uncertain whether this shift will actually be happening any time soon, but it is still worth keeping in mind since it’s already happening to some extent in workstation systems, and the shift there is being driven by companies other than Qualcomm.