I’m still working on improving Unix Frotz, particularly getting audio output working correctly. One Mark McCurry partially fixed a problem that caused distortions and crashes when an AIFF sound-effect was played when an OGG or MOD sound was also playing. There are no more crashes, but there’s still trouble with playing OGG and AIFF together. To conclusively nail this, the entire audio subsystem needs to be rewritten. I was very haphazard in thread coding there. Mark is much better than I am at audio programming. He’ll do the rewrite, but not for free. I’d like to start a Kickstarter to raise the $600 required. Is anyone here interested in pitching in for this?
As a regular user of Unix Frotz I would like to contribute to an improved audio output!
I have three Linux boxes (all Ubuntu) and just one Windows machine, so I am interested in seeing this succeed (not that I have played many games with sound, but it is right that it should work) and would contribute something to a Kickstarter project with this aim.
isn’t it not ideal to just play pure OGG of AIFF instead both? Call me a Scrooge with ram management… And pardon my ignorance, but it just seems a bit defeating the purpose of playing two different audio files of differently encoded versions, if there is already ogg in it, if not AIFF. It just seems abit beating the dead horse a bit too much.
The Blorb standard calls for OGG and AIFF, so that’s what I’m using. In practice, I use OGG for background music and AIFF for sound-effects.
Interpreters need to support existing storyfiles even if that’s not ideal.
If the issue is purely about playing different formats and multiple files of the same format work fine, could you just put all the sound resources in the blorb through a converter when it is first loaded?
I’m not clear on what you’re suggesting. You can certainly put all your audio stuff into OGG if that’s what you want to do
I mean that when it opens up the blorb file for the first time it could convert any AIFF files to OGG, storing them in a temp folder (does it already extract the resources to a temp folder? If not there would be a little bit of complexity setting that up.) If the problem is purely about different formats then this could be a simpler way to handle it as the main sound system wouldn’t have to be changed. But if the sound system sometimes struggles with multiple files of the same format then it wouldn’t be enough.
That seems more complex than necessary. The libraries I’m using extract data from the Blorb file on the fly. The problems I’m having with playback have to do with my inexperience with properly dealing with audio data.
If you’re not against using a C++ library, you might want to look at a lightweight wrapper lib I wrote in the past that takes care of resampling, mixing and playing back any kind of audio file:
This is a code-dump, not a high-quality library, but you should be able to copy it into your code base and use it.
Sounds like a win to me RealNC, but I cannot speak for DavidG on his behalf, but I gonna see if Frotz has a source I can compile with your code, if that is alright with you as well. I am certain if ZILF follows ZIL I could use the sound files with my ZIL source in a future storyfile, possibly even Castle Macbeth to give it the right effect for the comedy parts.
I specifically decided against SDL and friends because it’s rather resource-heavy.
You can opt to only use the audio part of SDL. I don’t use the rest. The footprint of a minimal “play this audio file” executable that only uses SDL’s audio is pretty much non-existent.