Yamaha SMAF

From Legacy Portable Computing Wiki

Yamaha Synthetic Music mobile Application Format, abbreviated as SMAF, is a file format featured on phones and other portable devices using Yamaha's SMAF sound chips. Its file extension is .mmf.

SMAF was first introduced in 1999 alongside the MA-1 sound chip, which had four 2-op FM channels. This chip was succeeded by the MA-2 the following year, which added more FM channels and one ADPCM channel. Subsequent chips added even more FM and ADPCM channels; the MA-7, released in 2005 as the last SMAF chip, introduced digital sound processor effects such as reverb and chorus.

The format and the sound chips were successful, being featured in hundreds of phones throughout the 2000s, primarily to play ringtones as well as game audio, MMS greetings and other content. It was the last time FM-based sound chips were used on a large scale; prior to this, FM synths were commonly found in game consoles, PC sound cards and music keyboards.

SMAF sound chips

Model Capabilities Description
MA-1 4 channel 2-op FM Released in 1999
MA-2 16 channel 2-op FM or 8 channel 4-op FM with 1 ADPCM channel Released in 2000, FM synth has 8 waveforms
MA-3 32 channel 2-op FM or 16 channel 4-op FM with 8 (AD)PCM channels Released in 2001, FM synth has 32 waveforms (3 user defined)
MA-5 32 channel 2-op FM or 16 channel 4-op FM with 32 (AD)PCM channels Released in 2003, same MA-3 FM synth with speech synth and filter
MA-7 128 channel FM+PCM(?) with DSP effects and 16kb SRAM Released in 2005, DSP FX includes reverb/chorus/etc

[1]

Data structure

All MMF files have an eight byte header of 4D 4D 4D 44 in hex or "MMMD" in ASCII. The following data chunks are present in these files:

File Chunk

This represents the entire file. A two byte cyclic redundancy check (CRC) is present after the body of the File Chunk; this is used to check if the File Chunk has been altered.

Contents Info Chunk

This stores info about the contents of the file: Contents Class (may include parameters such as vendor ID), Contents Type (its intended usage, such as ringtones or karaoke), Contents Code Type (character set), Copy Status (save and copy permissions), and Copy Counts.

Optional Data Chunk

This stores info such as the genre, song title, artist and composer of the file.

Score Track Chunk

This stores sequence data to be played by the sound chip. Properties include:

Property Required? Description
Format Type Yes This specifies the format, which can be either:
- Handyphone Standard
- Mobile Standard (Compressed)
- Mobile Standard (Uncompressed).
Sequence Type Yes This specifies whether the sequence is a single stream of data, or data from multiple phrases.
TimeBase_D Yes This specifies the sequence duration.
TimeBase_G Yes This specifies the sequence gate time.
Channel Status Yes This stores channel status info, including if LED/vibration data is synchronized with sequence data.
Seek & Phrase Info Chunk No This specifies playback info, such as start/stop points, loop points and phrase lists.
Setup Data Chunk No This specifies voice and effect setting data.
Sequence Data Chunk Yes This stores the sequence data.
Stream PCM Data Chunk No This stores waveform data for Stream PCM playback.
HV Data Chunk No This stores HV playback info in sequence data, such as HV script, voice parameter, and setup info.

PCM Audio Track Chunk

This stores the PCM data used within the file, if present. Properties include:

Property Required? Description
Format Type Yes This specifies the format, which can be either:
- Handyphone Standard
- Mobile Standard (Compressed)
- Mobile Standard (Uncompressed).
Sequence Type Yes This specifies whether the sequence is a single stream of data, or data from multiple phrases.
Wave Type Yes This defines the format of the Wave Data Chunk with the following properties:
- Channel
- Format
- Sampling Frequency
- Base Bits
TimeBase_D Yes This specifies the sequence duration.
TimeBase_G Yes This specifies the sequence gate time.
Channel Status Yes This stores channel status info, including if LED/vibration data is synchronized with sequence data.
Seek & Phrase Info Chunk No This specifies playback info, such as start/stop points, loop points and phrase lists.
Setup Data Chunk No This specifies voice and effect setting data.
Sequence Data Chunk Yes This stores the sequence data.
Wave Data Chunk No This stores waveform data for Stream PCM playback; up to 255 waveforms can be included.

Graphics Track Chunk

This chunk is used for storing graphics that may be displayed. The structure include a Header, Set-up Data Chunk, Sequence Data Chunk, Font Data Chunk and Image Data Chunk; the latter two are optional. The header includes the following properties:

Property Description
Format Type This specifies the format, although only Handyphone Standard is supported.
Player Type This specifies the targeted playback environment, although only Handyphone Standard is supported.
Color Type This specifies the color code system used.
TimeBase This specifies the time used for the graphics.
Option Size This specifies the size of extension data for options that could have been added later.
Option Data This specifies the data unit for Option Size, ranging from 0 to 255 bits.

The Set-Up Data Chunk includes a Display Parameter Definition Chunk, which is used to define parameters of display Event types, as well as a Color Palette Definition Chunk which defines the color palette.

Master Track Chunk

The Master Track represents both music information and the sequences themselves. It consists of a header and a Sequence Data Chunk. The header includes:

Property Description
FormatType This specifies the format.
Sequence Type This specifies the stream sequences and sub-sequences.
TimeBase_D This specifies the duration.
OptionSize This specifies the size of extension data for options that could have been added later.
OptionData This specifies the data unit for Option Size, ranging from 0 to 255 bits.

The Sequence Data Chunk is comprised of Duration, Event and EOS (End of Sequence) properties. Music information events include the following properties:

Property Description
Chord Name This specifies the name of a chord used based on its root note, a sharp or flat symbol (# or b), and the chord type.
Key Signature This specifies the key signature.
Time Signature This specifies the time signature.
Tempo This specifies the length of a beat in microseconds.
Measure Mark This specifies the position of the end of a bar.
Rehearsal Mark This specifies the XF format rehearsal mark.

Tools

This section is incomplete.
Yamaha released a number of tools used for SMAF authoring. These include

  • SMAF Authoring Tool: A tool used to create SMAF files from imported MIDIs.
    • ATS-MA2-SMAF
    • ATS-MA3-SMAF
    • ATS-MA5-SMAF
    • ATS-MA7-SMAF
  • SMAF/Phrase Authoring Tool
    • ATS-SMAFPhraseL1
    • ATS-SMAFPhraseL2
  • SMAF Multimedia Tools
    • SCAS-MA2-SMAF
    • SCAS-MA3-SMAF
    • SCAS-MA5-SMAF
    • SCAS-MA7-SMAF
  • SMAF Sound Decorator (SSD)
  • SMF to SMAF Converter (SSC-MA1)
  • Wave to SMAF Converter (WSC-MA2-SMAF)
  • Wave Sound Decorator (WSD)
  • Master Volume Converter (MVC)
  • SMAF Time Controller (STC)
  • SMF Format Converter (FC10)

Voice libraries

In addition to tools, Yamaha also released voice libraries that could be used in SMAF files. These include:

  • PCM voice library (VLP-MA5)
  • AL voice library (VLA-MA5)
  • FM voice library (VLF-MA3)
  • PCM voice library (VLP-MA3)
  • Voice Library of Decorator (VLD-MA3)
  • Ethnic instrument sound library (VLW-MA3)
  • FM voice library (VLF-MA2)
  • Voice Library of Decorator (VLD-MA2)
  • Stream voice library (SVL-MA2)
  • FM voice phrase library (PLF-L1)

Synchronous Contents Authoring System (SCAS)

Synchronous Contents Authoring System (abbreviated as SCAS) is a specification within SMAF that allows animated sprites and text to be shown with music in SMAF ringtones. It was intended to be used as a format for "animated" ringtones as well as for MMS and email greetings.

Currently, the only phones known to have SCAS content are various Anycall and LG Cyon phones, such as the Samsung SGH-X808. Phones that do not support SCAS will play back only the music content from MMF files with SCAS content.

References

External links