What is MIME type "audio/s3m"?

A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.

The MIME type audio/s3m designates a module music file format. It stores both digital audio samples and instructions that tell a player how to mix these samples in real time. Unlike typical audio files, it doesnโ€™t hold a full sound recording. Instead, it contains playback commands that work like musical notes and effects.

This format is one of a family of module music types. The same technology appears in similar file types such as MOD, FAR, XM, IT, STM, AMF, MED, WOW, DMF, S3M, 669, MTM, MT2, ULT, and OKT.

For a deeper dive into how module files work, see Module File Formats on Wikipedia.

Associated file extensions

Usage Examples

HTTP Header

When serving content with this MIME type, set the Content-Type header:


    Content-Type: audio/s3m    
  

HTML

In HTML, you can specify the MIME type in various elements:


    <a href="file.dat" type="audio/s3m">Download file</a>    
  

Server-side (Node.js)

Setting the Content-Type header in Node.js:


    const http = require('http');    
    
    http.createServer((req, res) => {    
      res.setHeader('Content-Type', 'audio/s3m');    
      res.end('Content here');    
    }).listen(3000);    
  

Associated file extensions

FAQs

Do web browsers support playing audio/s3m files natively?

No, standard HTML5 <audio> elements do not support the audio/s3m format or other module files like MOD or XM. To play these files on a website, you typically need to use a JavaScript-based module player library, such as libopenmpt compiled to WebAssembly, or convert the file to MP3.

How do I configure Apache or Nginx to serve S3M files correctly?

You must explicitly define the MIME type so browsers handle the file correctly. For Apache, add AddType audio/s3m .s3m to your .htaccess file. For Nginx, add audio/s3m s3m; to your mime.types file or inside the specific server block configuration.

What software can open or edit audio/s3m files?

For playback, versatile media players like VLC Media Player, Winamp, or Foobar2000 can handle S3M files. To edit or view the internal musical patterns, you need tracker software such as OpenMPT (Open ModPlug Tracker) or MilkyTracker.

Why is the audio/s3m file size so much smaller than an MP3?

Unlike MP3 or WAV files which store a continuous recording of sound waves, audio/s3m stores musical notation (notes, pitch, effects) and small audio samples. The player generates the music in real-time based on these instructions, making the file size significantly smaller while retaining high audio quality for the intended instruments.

Can I convert an S3M file to a standard format like MP3?

Yes, you can "render" an S3M file to a standard audio stream using tracker software like OpenMPT. Most modern audio converters (like FFmpeg) also support decoding audio/s3m input and saving it as audio/mpeg (MP3) or audio/wav for better compatibility with mobile devices and standard web players.

Why does my browser download the S3M file instead of playing it?

Since browsers cannot natively play audio/s3m, the default behavior is often to download the file. If the server sends the header Content-Disposition: attachment, the download is forced. Even without that header, the browser will likely download it unless a specific plugin or JavaScript player on the page intercepts the file request.

Is audio/s3m the only MIME type used for tracker modules?

While audio/s3m is specific to Scream Tracker 3 files, you may encounter generic MIME types for similar formats. For example, audio/x-mod or audio/module-x are sometimes used for related extensions like IT or STM, though using the specific subtype is preferred for accuracy.

General FAQ

What is a MIME type?

A MIME (Multipurpose Internet Mail Extensions) type is a standard that indicates the nature and format of a document, file, or assortment of bytes. MIME types are defined and standardized in IETF's RFC 6838.

MIME types are important because they help browsers and servers understand how to process a file. When a browser receives a file from a server, it uses the MIME type to determine how to display or handle the content, whether it's an image to display, a PDF to open in a viewer, or a video to play.

MIME types consist of a type and a subtype, separated by a slash (e.g., text/html, image/jpeg, application/pdf). Some MIME types also include optional parameters.

How do I find the MIME type for a file?

You can check the file extension or use a file identification tool such as file --mime-type on the command line. Many programming languages also provide libraries to detect MIME types.

Why are multiple MIME types listed for one extension?

Different applications and historical conventions may use alternative MIME identifiers for the same kind of file. Showing them all helps ensure compatibility across systems.