[notation image]
notation
Each subelement of a notations element is stored as a record in the notation table. The parent notations element data is in table notations. This many-to-one relationship uses foreign key notations_id in the notation table.
notation is a single-inheritance table with discriminator field notation_type. The notation_type discriminator values are:
  • tied
  • slur
  • tuplet
  • glissando
  • slide
  • ornaments
  • technicals
  • articulations
  • dynamics
  • fermata
  • arpeggiate
  • non arpeggiate
  • accidental mark
  • other notation
Since many different object types are stored in the notation table, each notation type individually only uses some fields for their records. Notable data definitions are below:
  • The number attribute value is in field notation_number
  • dashedFormatting group attributes, if present, are stored in a joined dashed_formatting table
  • bezier group attributes, if present, are stored in a joined bezier table
  • A tuplet notation has two tuplet_portion records, one for the tuplet-actual element, and the other for the tuplet-normal element. These join on music_data foreign keys tuplet_actual_id and tuplet_normal_id, respectively
  • A slide element with bend-sound attributes have those values stored in the bend_sound table, foreign key bend_sound_id
  • When an accidental mark record has level-display group attributes defined, those values are stored in table level_display and joined on field level_display_id
  • An ornaments discriminator value record is a list of ornaments whose individual ornament records are in the ornament table, foreign key ornaments_id. An ornaments list record can also have a list of accidental marks, whose individual records themselves are a notation type. These records are in the notation table with a discriminator value of accidental mark. The foreign key self-join to the parent ornaments list record in the notation table is ornaments_id.
  • A technicals discriminator value represents a list of technicals whose individual technical records are in the technical table, foreign key technicals_id
  • An articulations discriminator value represents a list of articulations whose individual articulation records are in the articulation table, foreign key articulations_id
  • dynamics is implemented as a direction type, so when a dynamics element is a subelement of a notations element, the data is stored in the direction_type table and joined from notations using foreign key dynamics_id
  • A list of fermata can belong to a barline, which is a music_data record. The foreign key in notation to the music_data record is barline_id.