• ChickenLadyLovesLife@lemmy.world
    link
    fedilink
    English
    arrow-up
    25
    ·
    9 hours ago

    As a programmer, it’s pretty wild how much of Windows under the hood has remained completely unchanged. I started writing software synthesizer applications back in the late '90s, using a part of the Win95 API called “winOutX”. The functions are kind of clunky to use but they allow you to programmatically create your own audio buffer arrays filled with whatever sounds you’re up to creating and dump them into the playback stream for seamless audio. This shit has remained in place, working pretty much perfectly, for the last 30 years. It was even there in WinCE/Windows Mobile, which allowed me to write software synthesis applications for early smartphones circa 2005. And it’s still all there today.

    I like to rip on MS as much as the next guy (not least for them completely dropping the fucking ball as far as smartphones were concerned), but sometimes their incredibly long-term conservatism can work to your benefit.

    • CeeBee_Eh@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      7 hours ago

      It sounds like the app you wrote is doing 99% of the work. And I’m guessing it was written in C, which means it’s an x86 binary and could theoretically run on any x86 system.

      Modern Windows actually has a lot of problems running older software. In some cases, the only way to get those applications working again is using Wine on Linux.

      • ChickenLadyLovesLife@lemmy.world
        link
        fedilink
        English
        arrow-up
        11
        ·
        7 hours ago

        It was originally written as a C DLL utilized by a Visual Basic front end. The C DLL used the Win95 API, though, so it wouldn’t have worked on anything but Windows 95 and onwards. I subsequently ported the entire thing to C# but still using the same API to do the actual playing of the audio (I experimented with using DirectSound instead but that was really not appropriate for an application doing its own audio mixing). Now I’m working on an iOS version and I couldn’t give two fucks about Windows at this point.

        • CeeBee_Eh@lemmy.world
          link
          fedilink
          arrow-up
          3
          ·
          6 hours ago

          it wouldn’t have worked on anything but Windows 95 and onwards

          I know what you mean. All I was saying is that the binary would execute on an x86 processor regardless of the OS. Now the OS knowing what to do with it is another matter.

          This is actually what Wine does, it’s a translation layer that intercepts the Win APIs and converts it to a Linux API and vice versa. The actual binary runs on the processor just the same.

          • ChickenLadyLovesLife@lemmy.world
            link
            fedilink
            English
            arrow-up
            3
            ·
            4 hours ago

            I wonder if my old app circa 2000 would actually run on Linux/Wine. One of my projects for this winter is to install Linux on one of my Windows laptops. I’ll have to give the old app a try.