So I programmed the AHI device interface to play a 16 bit stereo sound. Of about 500KB in length. I found it ended too quickly. I enabled debug output. The device writes were truncated to 8KB.
I checked all the docs and I can see nothing mentioned about any limits on device writes. Given it clearly cut back the writes without even returning an error you'd think this would be mentioned somewhere! :-?
When closing AHI device with debug output on I noticed this message. Does anyone know what it means?
Warning: Expected I/O request 0x00000000.
According to the AHI device source in Device/device.c it stores a pointer to the AHIRequest in a private pointer inside the AHIRequest on open. Then prints the above message if it differs on closing.
I'm working on a MIDI step sequencer. I'm using the timer device and a usual Wait() loop. But sometimes the delay is too long and the playback has a small glitch even if I'll set the task priority to 2-10. Currently I'm using the UNIT_MICROHZ because it gave me the best result. I was trying to adjust the delay value depending on how long it took between IO calls but that didn't help good enough eventually.
Can I use interrupts somehow ? And if so then how ?
I tried to use realtime library also but didn't get it to do anything.
I want to develope a sound datatype to play 32 bit 7.1 (8 channels) PCM sounds (WAV or AIFF storage container), to take advantage of HDAudio where supported (X1000 and other possible sound cards).
The target is what is covered by the latest public SDK (currently 53.24).
My questions are:
1) Is playback of such sounds supported? How about streaming?
2) Can a generic sound datatype output audio through AHI directly?
3) Do source code examples exist?
generally speaking it seems to me that development of drivers for OS4 is not supported / documented / encouraged at all (correct me if I am wrong).
My current focus is on how to develope an AHI audio driver from the ground up.
First of all I would like to understand how / when the driver is loaded and executed and how the work flow of a generic one looks like.
Every contribution is more than welcome as usual thanks ;)
I've just written an AAC encoder plugin for ADRipper. It can encode either as a raw stream of data, or with an ADTS header (the latter can be played fine in WinAmp, WMP or Media Player Classic; no support in Amiga players yet, I'm afraid).
What I'd now like to do is mux the AAC data into an M4A container, to make the file more usable. I know I can use FFMPEG but it's terrible overkill for such a small task, and the resulting plugin size would be enormous. Would anybody know of a more "lightweight" way to mux AAC into M4A?
how to play wav files or mp3 files asynchronously?
I tried Thomas code that play wave files via Datatypes object, but the program execution stops until the full wave is played, then continue.
Moreover, would be nice to know how to play files such mp3 or ogg.