What’s in a Yamaha style file?

Styles are the useful automatic accompaniments available on Yamaha PSR keyboards. The keyboard contains a basic set of internal styles and it is possible (with some effort) to install a few more by reading style files (FileName.STY, FileName.PRS,…). Tens of thousands of style files are available for download on the Internet. With the The Accompaniment Machine (AMac), you can instantly include any of these styles in your performances, even if you keyboard doesn’t have a built-in style capability.

We created several internal utilities to help us in the development of AMac. Style Dissector answers the basic question: What’s in a style file? The program reads the arcane bits in older (SFF1) and newer (SFF2) styles files and translates the information to plain English. It displays the listing in the scrollable program window (Fig. 1) or writes the information to a text file.

Style Dissector screenshot

Figure 1. Style Dissector screenshot.

There’s a lot of information in a style file, much of it useful. A complete description of the SFF1 file format is given in P. Wierzba and M. Bedesem, Style Files – Introduction and Details. A style file is divided into sections, divisions with different types of information: MIDI, CASM, OTS, MDB and MH. Only the MIDI section is required. The other sections were added over time. I won’t attempt to give a full account of the style format — I’ll just touch on some basic information.

MIDI SECTION
The MIDI section is straightforward. It has the format of a standard MIDI file with the addition of markers (non-MIDI events) to delineate the various style components: Main A, Main B, Intro A, Ending A,…. A sample of Style Dissector output for the MIDI section is shown at the end of the article. If you play a style file on MiniMIDI Player, it runs through the components in the order they appear in the file and ignores the markers. A dedicated style player makes use of the marker information (for example, to determine whether to repeat a component or play it once). A standard style file follows two well-defined conventions:

Rule 1. Only upper MIDI channels are used for the style, leaving the lower channels free for melody voices. The channels have the following functions:

  • 9: Subrythm — this channel is usually used for supplemental percussion instruments, although it could be defined for a pitch instrument. For percussion sounds, the style file must include program information to set the channel as a drum set. In this case, note values are interpreted as percussion sounds rather than pitches.
  • 10: Rhythm — the MIDI convention is that channel 10 is used only for percussion and is always associated with a drum set.
  • 11: Bass notes — instruments like a string bass or tuba.
  • 12: Chord (1) — polyphonic instruments to create harmony, like a guitar or piano.
  • 13: Chord (2) — a second polyphonic instrument.
  • 14: Pad — usually a floating voice like strings or a choir.
  • 15: Phrase (1) — a melody instrument, usually in introductions and endings.
  • 16: Phrase (2) — a second melody instrument.

Rule 2. The pitch instruments should play in the key of C and suggest a CMaj7 chord.

Style replication is easy for files that follow this convention. A computer program or keyboard processor need only play or repeat MIDI components as necessary, making a couple changes in response to keys pressed below the split point:

  • Change selected notes in the chord channels to change the chord type (major, minor, diminished,…).
  • Add or subtract an offset for all notes in channels 11-16 to change the chord base.

Styles that follow this convention have a good sound when played with MiniMIDI Player. On the hand, you may find some style files that sound strange. Which brings us to the next section.

CASM SECTION
It’s symbolic that nobody seems to know what the letters CASM stand for (try an Internet search and see if you do better than I did). This section allows style creators to bend the rules. The most important information is channel redirection. Notes and controls in the MIDI section may apply to any MIDI channel, but must be redirected to the standard channels. With extensive redirection, the MIDI information sounds bad if played literally. There is also fine tuning information for chords and many other details on playing logic.

OTS SECTION
The letters OTS stand for One-Touch Setting, detailed MIDI sequences to be played in response to one-touch keys on some keyboards. The information is machine-specific and irrelevant to KBD-Infinity, so it is not included in the output from Style Dissector.

MDB SECTION
The letters MDB stand for Music DataBase. The text information tells which song (or songs) may be appropriate for the style. The information coordinates with the Music Finder feature on some Yamaha keyboards. If there is an MDB section, the information is included in the Style Dissector output.

MH SECTION
Nobody seems to know what purpose (if any) this section has. Needless to say, it is not included in the Style Dissector output.

Sample of Style Dissector output

---------------------------------
          MIDI SECTION           
---------------------------------

HEADER CHUNK
  Chunk length: 6
  Midi file type: 0
  Number of tracks in file: 1
  Pulses per quarter note: 240
TRACK 000 CHUNK
  Chunk length: 10835
   Time   Byte        Data
(pulse)   offset
-------------------------------------------------------------------------------------
      0     000017    Non-MIDI event, time sig: 4/4 Notes/click: 24 Clock/quat: 4
      0     00001F    Non-MIDI event, tempo change: 750000 microseconds/quarter note
      0     000026    Non-MIDI event, copyright: www.1manband.nl

      0     000039    Non-MIDI event, marker: SFF1
      0     000041    Non-MIDI event, sequence/track name: 50ballad

      0     00004D    Non-MIDI event, marker: SInt
      0     000055    System exclusive message: 5 bytes
      0     00005D    System exclusive message: 8 bytes
      0     000068    Control change, channel 0A    Effects 3 Depth:   00
      ...

    960     0000DB    Non-MIDI event, marker: Main A
      0     0000E5    Note on, channel 0A    Note: Maracas   Velocity: 44
      0     0000E9    Note on, channel 0C    Note: C2   Velocity: 58

Footnotes

[1] This site has no affiliation with the Yamaha Corporation.

[2] Find out more about KBD-Infinity: Home page.

[3] If you have comments, please contact us at info@kbd-infinity.com.

 

7 comments to What’s in a Yamaha style file?

  • fernando

    Salve,lo so che sono fuori tema ma provo lo stesso a chiederle un aiuto relativo alla mia yamaha psr s550 per la quale non riesco a caricare suoni scaricati da internet. Se lei mi puo dare un suggerimento la ringrazierei tantissimo.

    • humphriess

      Sorry, we aren’t familiar with that keyboard. Suggest you contact your keyboard dealer or Yamaha support.

  • Robin Degen

    Is the sourcecode to this application available? I’m interested in the .sty file format and how to read them to write my own style player.

  • Anonymous

    @Robin, what style player do you use?

  • Ed Sheeran

    I just could not depart your web site before report that I really valued the information on Yamaha styles.