Skip to main content

Module audio

Module audio 

Source
Expand description

SyncTERM’s audio APCs (ESC _ SyncTERM:A;... ESC \), as CTerm documents them: 256 slots of sound (16-bit stereo at 44.1 kHz) filled from files in the cache or sent inline (WAV, AIFF, VOC and Ogg Opus are decoded here), or synthesized; and 16 channels the BBS queues them on, with fades, loops, crossfades and volume. Synchronet’s doors play their sound effects and music this way.

The mixing is the front end’s: queued sound goes out as AudioOps. What the BBS asks about (is a channel playing?) is answered from the lengths of what was queued.

Structs§

Audio
Sound
A sound in a slot or on a channel. Its length is known at once; its frames once they’re decoded, which for the slow formats (Opus, Vorbis, FLAC) happens on a thread of its own, so the screen doesn’t wait.

Enums§

AudioOp
What the front end’s mixer is to do.

Constants§

BASE_DB
APC channels start at -12 dB.
CHANNELS
FIRST_APC_CHANNEL
The first channel the BBS may queue sound on; 0 is ANSI music, 1 sound effects (RIP), which are the terminal’s own.
RATE
The sample rate of slots and channels.
SLOTS

Functions§

decode
A sound file, as stereo frames at RATE: WAV, AIFF and VOC at once, Ogg (Opus or Vorbis), FLAC and MP3 on a thread (their length read first).
format_supported
Whether a libsndfile format (major pm, subtype ps) is one BadTerm decodes.
parse_id
Parse a number as the doc allows: decimal or 0x hex.
raw8
Raw signed 8-bit mono at rate: an Amiga sample with no header.

Type Aliases§

Pcm
Interleaved stereo frames (left, right) at RATE.