Previous | Up | Home | Next

Physical Structures

A NIFF file is divided into two sections - the Setup Section, containing general information that applies to the whole score, and the Data Section, containing the music symbols and layout information. The Data Section is discussed in some detail here. The structures in the Setup Section are described later under Setup Section Structures. The topic of the relationships between individual music symbols in the Data Section is treated in Chapter 2, Symbol Relationships.


The music symbols in the Data Section are stored in page-ordered format. The format has a hierarchical structure, where pages contain systems, systems contain staves, and staves contain time-slices and individual music symbols. Within each level, data are supplied generally in a left to right, top to bottom order, except as discussed in Chapter 2, Symbol Relationships. Text and graphics can be included at any level of the hierarchy, according to the type of object to which they logically belong.

Lists and Chunks.

Pages, systems, and staves are all represented by lists composed of a header chunk followed by other component chunks that belong at the same hierarchical level. To save space, the time-slice has not been defined as a list chunk with a header and component chunks. Instead, the Time-Slice chunk functions as a sort of header to the group of symbol chunks which follow it. Every symbol within a Staff list, except for text or graphics immediately following the Staff Header chunk, is logically associated with the Time-Slice chunk that most closely precedes it.

A Staff list may contain music symbols belonging to more than one part. When more than one part is present on the staff, the part must be uniquely identified for every symbol. When only one part is present in a particular Staff list, its Part ID is identified in the Staff Header chunk instead of on the individual symbols.

Simulated Part Ordering, and Spacing By Part.

A special case of the page-ordered data structure is known as "simulated part ordering." In this structure, there is only one system on one "very wide" page that extends from the start to the end of the score, with each part appearing on its own staff or staves. This special type of file contains a single Page list whose Page Header chunk has zero Width and Height tags.

The simulated part ordering structure is designed to accommodate non-page-oriented programs and programs which offer the user the option to strip page layout data when writing NIFF files. The music symbols of a one-staff part would all be stored contiguously in a single Staff list. Multiple-staff parts such as piano or organ would be split apart into two or more Staff lists.

Another special type of file structure is "spacing by part." In this scheme used by some notation programs, the symbols of each part are assigned horizontal placement values independently of the other parts, as though the file contained a set of part scores instead of one ensemble score. This could be used in a file with page ordering or simulated part ordering. A file recorded with this scheme is identified by the presence of the Spacing By Part tag on the NIFF Information chunk in the Setup Section. Reading programs unable to make use of this spacing should ignore all horizontal placement values, using its own spacing defaults instead.

Notes and Stems.

A musical note is normally composed of at least two chunks - a Stem chunk and a Notehead chunk. It can be viewed as a degenerate case of a chord. A full chord is represented by a Stem chunk and several Notehead chunks, each of which represents a single notehead. There is no requirement that a Stem be followed by any Noteheads.

Previous | Up | Home | Next