The Siemens Gigaset Polyphonic Ringtone PSF File Format

Way back in July, I wrote my Siemens Gigasets & Inability To Create Ringtones post. I know I'm not the only one still upset that it's so hard to convert ringtones into the mystery Siemens format, because I can see from my query logs how people are coming to the page, entering things like "psf ringtones siements." In a bit of good news, I heard from an anonymous reader who passed along the specs. They want the info out in public in hopes that someone can use it to make a converter. So here you go -- and if anyone does make a converter, please let me know! Here's what he sent:

Notes

  • This format was extracted from five known PSF files from Siemens and tested on S44 model
     
  • The MIDI families used is the device seem to be standard (for example: 0xA - drums)

General Issues

  • Any PSF file is a set of 16-bit words. These words must be written to the file in reversed bytes order. For example, if one has 0xDCBA, then the file contains 0xBADC. In the description I shall use notation 0xDCBA.
     
  • I shall use the following notation for 16-bit fields FEDCBA9876543210 where 0 stands for less significant bit and F stands for most significant bit.
     
  • PSF file consists of the header and the body. The body follows the header immediately.

Header Structure

  • 0xF010: 1 word (signature)
     
  • Tracks_number: 1 word. (not more then 512)
     
  • Tempo: 1 word.
     
  • Instruments used : Tracks_number words. Each word has format 0x00YZ, where Y stands for a family, and Z stands for the device inside the family. Thus, not more than 16 families each containing 16 devices can be used. Each family or device can be used several times in any order.
     
  • Tracks_offsets: Tracks_number words. Offsets must be calculated from the end of the header. Thus, the first offset always equals 0x0000.

Body Stucture

  • The body contains Tracks_number records, following each other immediately. Zero word must be written after the last record, i.e. 0x0000 : word (End_Of_File).

Record Structure

  • Start_record: 1 word. This is a bit field. Bits FEDCBA987 contain the record subsequent number (from 0). Bits 3210 (i.e. the lowest tetrade) contain track volume. Zero value corresponds to the highest volume. All other bits must be zero.
     
  • Sounds and pauses: arbitrary number of words. Each word is a bit field. The sound word has the following structure. Bits 3210 (i.e. the lowest tetrade) contain note. The following coding scheme is used:

    C_PSF=0x0F, CIS_PSF=0x01, D_PSF=0x02, DIS_PSF=0x03, E_PSF=0x05, F_PSF=0x06, FIS_PSF=0x07, G_PSF=0x09, GIS_PSF=0x0A, A_PSF=0x0B, AIS_PSF=0x0D, H_PSF=0x0E
     

    • Bits 987654 contain sound duration. Thus, it is measured in 1/64
       
    • Bits CBA contain octave number. The following coding scheme is used

      BIG_OCTAVE=2, SMALL_OCTAVE=3, FIRST_OCTAVE=4, SECOND_OCTAVE=5, THIRD_OCTAVE=6, FOURTH_OCTAVE=7
       
    • Bits FED must be zero
       
    • The pause word has the following structure
      • Bits 3210 (i.e. the lowest tetrade) contain 0x0C.
      • Bits 987654 contain pause duration
         
    • All other bits must be zero
       
  • 0x4000 : word (End_record).

Significant Note

  • Each track has to start with some pause, at least 1/64 (i.e. word 0x001C)
By Danny Sullivan on Mar. 31, 2006 | Permalink
See related posts in: Gadgets

Next Post: SES & SEW "Feeding" Off JupiterResearch
Previous Post: Another Reason To Hate British Airways
All Posts: Daggle Archives
Posts By Category: Daggle Categories
Return To: Daggle Home Page

Comments

Want to comment? If you are signed into TypeKey, you'll see a form below. No form? Click on the sign-in link below, and you can sign-in or sign-up for a free account. Sorry you have to use TypeKey, but I use it to avoid comment spam. All comments currently appear automatically after posting.

Leave a comment

Subscribe!
Subscribe Via Web Feed
Subscribe with Google
Add to My Yahoo!
Subscribe with Bloglines
Add to netvibes
Subscribe with Live.com
Subscribe in NewsGator Online
Subscribe in Rojo

Add to My AOL

Get new entries via email. Enter your address below:


follow dannysullivan at http://twitter.com
Search