Article History

57% kleeder

fsound (format)

token - fsound

points - Chipist

file types - .fss

max filesize - 10mb

description -
  1. Tools
  2. Editing the .fss file without using converter tools
  3. Samples
  4. Restrictions on submit
  5. Accepted file format
  6. Playback (for voting)
  7. Render to MP3
  8. Dead links for posterity
fsound is a tool for making one-channel music on Microsoft Windows (and works fine in Wine
) by ant1. It's the Windows port of his old BEEPER.EXE tool, a tool capable of creating one-channel songs for the IBM PC Speaker. What, were you expecting another ZX Spectrum beeper engine?

It's also a ridiculously simple tool (not exactly simple usability-wise), meaning it's basically more accessible and platform-independant than any tool for writing beeper or Channel F tunes. It takes specially formatted text files (*.fss for posterity) as input and spits out 8-bit wav files.

Download here


is a tool by Jangler and improved by kleeder to convert IT modules into fsound FSS files. It supports Tempo Changes, Volume Control and Samples.
You'll need Python 3
to run it. An explanation on how to use it is hidden as a comment at the beginning inside the script itself.

Another tool by kleeder called fSpeed allows you to convert 44100Hz mono channel .wav's into .fss files, which gives the opportunity to let fsound emulate pcm-samples at low quality. The conversion process takes up a lot of time though and the output fss is very big, even for shorter .wav files. If you plan to use it for your BotB entry, keep in mind the size limit of 10mb! It can be downloaded here

shiru also has a flash version at but it may be slightly behind on features.

Another tool by kleeder is randomize_fsound, a program that generates a random .fss file. Is this useful in any way? Who knows! But it exists! Download here

Editing the .fss file without using converter tools

fsound uses a simple, proprietary, MML-like markup language in order to render these PC speaker tunes. Most .fss files can be opened in even the simplest of text editors (though Notepad++
is recommended) and can be generally understood within a matter of minutes. Here's how this markup format works:

The speed amount is placed in the first line - much like other trackers, the bigger the number, the slower the song. Tempo changes later in song need to be indicated by marking the number with a t at the front.

Comments are marked with " > " (spacebars are obligatory). Empty lines are ignored by the converter and ought to be constantly abused for easier navigation.

Notes are specified as:


A note can be any of the following:

a b c d e f g A C D F G x

Uppercase letters indicate a sharp note, whilst x indicates white noise. The octave range goes from 1 to 7 (c1 to b7).

Lengths can be:
  • 1, being a semibreve (whole note).
  • 2, being a minim (half note).
  • 4, being a crotchet (quarter-note).
  • 8, being a quaver (eighth-note).
  • f, being a semiquaver (sixteenth-note).
  • g, being a demisemiquaver (thirty-second-note).
  • t, being a triplet.

Volume ranges from 0 to f. If a note has no volume value, it will use the default volume, which can be set with v followed by 0 to f. The default volume is automatically set to a if none had been set by then.

Rests are specified as r-[length].

Loops within fsound are especially simple: to start a loop, type LS before the portion you want to loop. Then, to end a loop, use Lx, where x is the number of times to play the song. A loop may be played anywhere between 2 to 9 times! CAUTION: Loops within loops are ill-advised, as they do not work and will break your song if you try doing so!

Note seperation can be done via line break or semicolon.

Drum samples are specified as [drum] - [length]. The only drums that are supported are K (kick) and S (snare).

Example Song









fsound uses .raw samples for Kick and Snare Drum, so it's possible to replace these samples with your own. Just make sure to use the same encoding and filename and fsound will be able to render them without problems. There might be OHBs which uses custom samples as their bitpack. Sample support is still very limited, since you're not able to pitch them or use more than two for one file.

Restrictions on submit

Your submitted .fss file has to be in the correct syntax for fSound to convert it into a wav-file.
Not official: If you're using custom samples, put them together with the .fss in a zip-folder and upload the zip! This is NOT allowed on BotB at the moment, but if you wanna share your work somewhere else or if there's a rulechange in the future, uploading the .zip would be recommended.

Accepted file format

.fss are the only file type supported for this format at this moment.

Playback (for voting)

Drag and drop the .fss onto the fSound.exe and wait for the program to process it; once done, a freshly baked .wav file will be ready for you to listen to! Make sure to have the kick.raw and snare.raw files in the same folder as the fSound.exe. If there are special samples provided in the bitpack or if the uploaded file is a zip, make sure to replace the default kick and snare-files with said samples.

Render to MP3

Use fSound to generate the .wav and convert it with a tool of your choice into a .mp3.

Battle Formats