Module libif:audiolib
}}} - RMoX audio library
RMoX audio library. This file (libif/audiolib.occ) contains various procedures that can be used by kernel and application code inside RMoX for simple audio functions. This includes reading .wav files and suchlike.
For dynamically loaded code: #INCLUDE "audiolib.inc"
#INCLUDE "audiolib_if.inc"
For statically linked code: #INCLUDE "audiolib.inc"
#USE "libif/audiolib"
Index
-
Process
audio.connect.mixer.device- Connect to an audio mixer device -
Process
audio.connect.stream.device- Connect to an audio stream device -
Process
audio.init.buffer.silent- Generates a silent waveform pattern -
Process
audio.init.buffer.triwave- Generates a triangular waveform of the specified frequency -
Process
audio.resolve.mixer.device- Resolves a MOBILE.CHAN to a specific CT.AUDIO.MIXER device type -
Process
audio.resolve.stream.device- Resolves a MOBILE.CHAN to a specific CT.AUDIO.STREAM device type -
Process
audio.riff.headers- Read RIFF chunk descriptors from a file -
Process
audio.riff.read.chunk.data- Read the contents of a single RIFF chunk -
Process
audio.riff.read.chunks- Read specific RIFF chunk descriptors from a file -
Process
audio.wave.file.info- Read WAVE file parameters (sample rate, channels, etc.) from file handle -
Process
audio.wave.file.reader- Read WAVE file, info and data -
Process
audio.wave.path.info- Read WAVE file parameters (sample rate, channels, etc.) from named file -
Process
audio.wave.path.infodata- Read WAVE file parameters (sample rate, channels, etc.) and sample data from named file -
Process
audio.wave.path.reader- Read a wave file information and data
Declarations
audiolib.occ:84Process audio.riff.headers
PROC audio.riff.headers (CT.FILE! file, CHAN P.RIFF.CHUNK.OUT out!)
Read RIFF chunk descriptors from a file. This outputs 'chunk' descriptors followed by an 'end' marker when the end-of-file is reached.
Parameters:
CT.FILE! |
file |
Handle on RIFF file. |
CHAN P.RIFF.CHUNK.OUT |
out |
Output channel. |
audiolib.occ:166Process audio.riff.read.chunks
PROC audio.riff.read.chunks (CT.FILE! file, VAL [4]BYTE chkid, RESULT MOBILE []RIFF.CHUNK.INFO data, RESULT INT result)
Read specific RIFF chunk descriptors from a file.
Parameters:
CT.FILE! |
file |
Open file handle. |
VAL [4]BYTE |
chkid |
Chunk ID to look for (4 bytes). |
RESULT MOBILE []RIFF.CHUNK.INFO |
data |
Returned mobile array of matching chunk descriptors. |
RESULT INT |
result |
Indicates success or failure. |
audiolib.occ:234Process audio.riff.read.chunk.data
PROC audio.riff.read.chunk.data (CT.FILE! file, VAL RIFF.CHUNK.INFO chunk, VAL BOOL include.header, RESULT MOBILE []BYTE data, RESULT INT result)
Read the contents of a single RIFF chunk.
Parameters:
CT.FILE! |
file |
Open file handle. |
VAL RIFF.CHUNK.INFO |
chunk |
Chunk contents to read. |
VAL BOOL |
include.header |
Whether to include the 8-byte RIFF chunk header. |
RESULT MOBILE []BYTE |
data |
Returned data. |
RESULT INT |
result |
Indicates success or failure. |
audiolib.occ:278Process audio.wave.file.info
PROC audio.wave.file.info (CT.FILE! file, RESULT WAV.INFO winfo, RESULT INT result)
Read WAVE file parameters (sample rate, channels, etc.) from file handle.
Parameters:
CT.FILE! |
file |
Open file handle. |
RESULT WAV.INFO |
winfo |
Returned .wav file information. |
RESULT INT |
result |
Indicates success or failure. |
audiolib.occ:370Process audio.wave.file.reader
PROC audio.wave.file.reader (CT.FILE! file, VAL INT blk.size, CHAN P.WAVEREADER.OUT out!)
Read WAVE file, info and data.
Parameters:
CT.FILE! |
file |
Open file handle. |
VAL INT |
blk.size |
Block size for chunks read. |
CHAN P.WAVEREADER.OUT |
out |
Channel where data is sent. |
audiolib.occ:449Process audio.wave.path.info
PROC audio.wave.path.info (VAL []BYTE path, SHARED CT.KERNEL! krnl, RESULT WAV.INFO winfo, RESULT INT result)
Read WAVE file parameters (sample rate, channels, etc.) from named file.
Parameters:
VAL []BYTE |
path |
Path to file. |
SHARED CT.KERNEL! |
krnl |
Link to kernel. |
RESULT WAV.INFO |
winfo |
.wav file information. |
RESULT INT |
result |
Error status, winfo only defined if ERR.SUCCESS. |
audiolib.occ:477Process audio.wave.path.infodata
PROC audio.wave.path.infodata (VAL []BYTE path, SHARED CT.KERNEL! krnl, RESULT WAV.INFO winfo, RESULT MOBILE []BYTE data, RESULT INT result)
Read WAVE file parameters (sample rate, channels, etc.) and sample data from named file. Note: this is not a good idea for large files.
Parameters:
VAL []BYTE |
path |
Path to file. |
SHARED CT.KERNEL! |
krnl |
Link to kernel. |
RESULT WAV.INFO |
winfo |
.wav file information. |
RESULT MOBILE []BYTE |
data |
.wav file sample data. |
RESULT INT |
result |
Error status, winfo only defined if ERR.SUCCESS. |
audiolib.occ:538Process audio.wave.path.reader
PROC audio.wave.path.reader (VAL []BYTE path, SHARED CT.KERNEL! krnl, VAL INT blk.size, CHAN P.WAVEREADER.OUT out!)
Read a wave file information and data. This is a handy way of extracting .wav file contents in a piecemeal way. The info tag is output first, along with a WAV.INFO structure, followed by any number of data tags (whose maximum size is limited to the specified blk.size), and finally an end tag.
Parameters:
VAL []BYTE |
path |
Path to file to read. |
SHARED CT.KERNEL! |
krnl |
Link to kernel. |
VAL INT |
blk.size |
Maximum data block size. |
CHAN P.WAVEREADER.OUT |
out |
Channel where info and data-blocks are sent. |
audiolib.occ:602Process audio.init.buffer.triwave
PROC audio.init.buffer.triwave ([]BYTE buffer, VAL AUDIO.FMT format, VAL INT rate, freq.1, freq.2)
Generates a triangular waveform of the specified frequency. This is useful for generating test waveforms. The format parameter gives the encoding and number of channels (only PCM 8-bit and 16-bit, 1 or 2 channels supported). For mono (single channel) samples, only the first frequency (freq.1) is used.
Parameters:
audiolib.occ:695Process audio.init.buffer.silent
PROC audio.init.buffer.silent ([]BYTE buffer, VAL AUDIO.FMT format)
Generates a silent waveform pattern.
Parameters:
audiolib.occ:727Process audio.resolve.mixer.device
PROC audio.resolve.mixer.device (BOOL ok, MOBILE.CHAN mc, RESULT CT.AUDIO.MIXER! mix)
Resolves a MOBILE.CHAN to a specific CT.AUDIO.MIXER device type. Always leaves the resulting channel defined (even if duff connections).
Parameters:
BOOL |
ok |
Test and set success. |
MOBILE.CHAN |
mc |
MOBILE.CHAN to resolve. |
RESULT CT.AUDIO.MIXER! |
mix |
Returned mixer device. |
audiolib.occ:761Process audio.resolve.stream.device
PROC audio.resolve.stream.device (BOOL ok, MOBILE.CHAN mc, RESULT CT.AUDIO.STREAM! stream)
Resolves a MOBILE.CHAN to a specific CT.AUDIO.STREAM device type. Always leaves the resulting channel defined (even if duff connections).
Parameters:
BOOL |
ok |
Test and set success. |
MOBILE.CHAN |
mc |
MOBILE.CHAN to resolve. |
RESULT CT.AUDIO.STREAM! |
stream |
Returned stream device. |
audiolib.occ:797Process audio.connect.mixer.device
PROC audio.connect.mixer.device (BOOL ok, SHARED CT.KERNEL! to.kernel, VAL []BYTE device, RESULT CT.AUDIO.MIXER! mix)
Connect to an audio mixer device.
Parameters:
BOOL |
ok |
Test and set success. |
SHARED CT.KERNEL! |
to.kernel |
Link to kernel. |
VAL []BYTE |
device |
Device name (fully formed, e.g. "audio.blaster0.mixer0"). |
RESULT CT.AUDIO.MIXER! |
mix |
Returned mixer device. |
audiolib.occ:900Process audio.connect.stream.device
PROC audio.connect.stream.device (BOOL ok, SHARED CT.KERNEL! to.kernel, VAL []BYTE device, RESULT CT.AUDIO.STREAM! stream)
Connect to an audio stream device.
Parameters:
BOOL |
ok |
Test and set success. |
SHARED CT.KERNEL! |
to.kernel |
Link to kernel. |
VAL []BYTE |
device |
Device name (fully formed, e.g. "audio.blaster0.mixer0"). |
RESULT CT.AUDIO.STREAM! |
stream |
Returned stream device. |