FamiStudio
FamiStudio copied to clipboard
Ability to select audio driver
Hi ! I think it will be awesome for people who want to make Live performances, because now it has very big latency I want to use ASIO instead of Default Windows Audio Driver
Hi!
Somebody else mentioned this to me, cant remember who. I would need your help a bit on this. Im not an audio guru. Does ASIO appear as an extra audio device in Windows? How does it work? I think FamiStudio just pick whatever the default is at the moment.
Just as a test, can you confirm that FamiStudio still works correctly if you make you ASIO device the default? (Is that even possible?) :)
-Mat
ASIO is not an audio device, it is an Audio Driver I think it will help you: https://www.codeproject.com/Articles/24536/Low-Latency-Audio-using-ASIO-Drivers-in-NET
Ok thanks.
Ill do some reading when I have time, but I wont lie, this is quite low priority to me. Live performances are quite far from the goal of this tool, which is to make music for the NES. :)
-Mat
Lower latency playback is important to me as well. ASIO is the usual solution for low latency audio in Windows. I've set it up dozens of times working with DAWs and VSTs. Jack is the usual solution for low latency in Linux.
http://www.asio4all.org/ provides a generic ASIO device interface in Windows with just about any sound card, including integrated chipset sound cards. It's a major improvement on latency on all hardware I've used it with.
I think usb audio interfaces have asio support built into their standard drivers, maybe? Not 100% certain but the interfaces seem identical from memory.
I notice you're using PortAudio for sound in OSX. It looks like PortAudio also supports ASIO on Windows and Jack on Linux. I just tried FamiStudio on OSX and the latency is much better there.
The latency on Windows and MacOS should be identical. If its not the case, check your setup and eliminate sources of latency. If you are still using Win7/Win8, then I cant help you unfortunately, but Windows 10 out of the box should have acceptable latency, even without ASIO.
Also, just to clarify, this feature require more than just swapping the backend.
The NES emulation right now runs at 60FPS (50 FPS on PAL), so this mean we get audio samples in bunches of 1/60th of a second. This is not small enough for low-latency which ideally should have much smaller audio buffers (<10ms maybe?). This mean you will also have to run the NES sound engine at a higher frequency (240Hz for example, if you update in 1/4th frame increments). Also, you will need to change a bit the way FamiStudio synchronizes with the emulation, since right now, FamiStudio assumes audio buffers are consumed in increments of one frame, and this dictate the overall timing of the app.
-Mat