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.
Wait until you hear about SDL. I have two music apps on my Android phone that also work the same on the three desktop platforms. And one of them, Sunvox, also existed twenty years ago on Palm and WinCE. The UI’s reaction to my actions in both apps is so snappy it’s unsettling after using other apps.
The downside is that all the dialogs and controls are drawn by the apps and SDL, with their peculiar interaction. Though there’s some leeway to that, like calling the system’s file picker.
Sunvox is a masterpiece. Perfect for small size audio. It’s strange that it isn’t more widely used in game development or even webpages. Not just because of small sizes, but because it’s also possible to interact with the music, while it’s being generated. I have no idea of how to classify this as a piece of software but it’s mind boggling powerfull and it still runs perfectly on any potato.
It would be nice to have better recording options than using the sampler, but I guess that defies the purpose of it.
It’s a tracker combined with a modular synth in the style of Max/MSP, but also with a sequencer. Modular stuff in this vein is generally fit for live fiddling, like Reactable for example.
Unfortunately, I have a better experience with trackers in Renoise, which has dozens of decent samples out of the box, through which I can click and listen; and its effects like distortion are also much more pronounced. Sunvox seems more tailored to ‘beep boop’ synth sounds, and I’m not good with those.
would be nice to have better recording options than using the sampler
Ironically the other SDL music app, Caustic 3, has functionality for recording sounds and even a built-in audio editor. It’s a very neat mobile DAW, but alas it’s not being developed anymore — and its longstanding problem of only having two effects per instrument won’t be fixed.
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.
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.
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.
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.
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.
Wait until you hear about SDL. I have two music apps on my Android phone that also work the same on the three desktop platforms. And one of them, Sunvox, also existed twenty years ago on Palm and WinCE. The UI’s reaction to my actions in both apps is so snappy it’s unsettling after using other apps.
The downside is that all the dialogs and controls are drawn by the apps and SDL, with their peculiar interaction. Though there’s some leeway to that, like calling the system’s file picker.
Sunvox is a masterpiece. Perfect for small size audio. It’s strange that it isn’t more widely used in game development or even webpages. Not just because of small sizes, but because it’s also possible to interact with the music, while it’s being generated. I have no idea of how to classify this as a piece of software but it’s mind boggling powerfull and it still runs perfectly on any potato.
It would be nice to have better recording options than using the sampler, but I guess that defies the purpose of it.
It’s a tracker combined with a modular synth in the style of Max/MSP, but also with a sequencer. Modular stuff in this vein is generally fit for live fiddling, like Reactable for example.
Unfortunately, I have a better experience with trackers in Renoise, which has dozens of decent samples out of the box, through which I can click and listen; and its effects like distortion are also much more pronounced. Sunvox seems more tailored to ‘beep boop’ synth sounds, and I’m not good with those.
Ironically the other SDL music app, Caustic 3, has functionality for recording sounds and even a built-in audio editor. It’s a very neat mobile DAW, but alas it’s not being developed anymore — and its longstanding problem of only having two effects per instrument won’t be fixed.
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.
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.
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.
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.