bsvplay — convert BASICA music data to PCM
Contents
Description
bsvplay will convert BASICA binary music data to linear 16-bit raw PCM. Normally, you will be wanting to
pipe it into a raw PCM player like aplay(1) to actually output it to a sound device. Be sure to lower the
volume beforehand to avoid nasty surprises that come with square waves. By default, bsvplay will mix 1:1
square:sine waves to give a medium tone hardness.
Do note that the music data is embedded in BSV/EXE/COM files and needs to be manually located. It is
usually very evident from a regular pattern in hexdumps.
File Format
The BASICA format is defined 6-byte tuples of divisor, duration and pause.
struct bsv_insn {
uint16_t divisor;
uint16_t duration; /* in ticks */
uint16_t af_pause; /* in ticks */
};
where divisor specifies the divisor value that it directly handed to the x86 PC speaker. The following
formula holds:
frequency = 1193181 / divisor;
Name
bsvplay — convert BASICA music data to PCM
Options
-qpart
Part to mix square waves in (default: 1.0)
-ipart
Part to mix sine waves in (default: 1.0). If -q2-i1 is specified for example, the final PCM
output will consist of 2/3*squarepcm + 1/3*sinpcm.
-rrate
PCM sample rate (default: 48000 Hz)
--pianoman
Assume the input is Pianoman MUS.
See Also
aplay(1), qplay(1), hxtools(7) hxtools 2008-02-06 bsvplay(1)
Syntax
bsvplay [-ipart] [-qpart] [-rrate] [file...] |aplay-fdat-c1
