Neume Notation Project

Louis W. G. Barton


µ Algebraic Specification for the Editor


 Notes:

 (a) Notation: '*' = need to decompose.

 (b) Known problems:
	(i) Scaling of score dimensions retroactively by user, with
		cascade to subtypes.
	(ii) Solving problem of parallel control of display_space(score)
		and print_space(score).


font () ->> entity
	name (font) -> string
	filename (font) -> string
 [subtypes:]
	char_set (font) ->> postscript_char


postscript_char () ->> entity
	number (postscript_char) -> integer [0 <= i <= 255]
	name (postscript_char) -> string


editing_window () ->> entity
	h_res (editing_window) -> integer [0 < i]
	v_res (editing_window) -> integer [0 < i]
 *	grid (editing_window) -> integer x integer
	show_grid (editing_window) -> boolean
	color_avail (editing_window) -> boolean
 [subtypes:]
	grid (editing_window) -> grid
	scores (editing_window) -> score


grid () ->> entity
	columns (grid) -> integer
	rows (grid) -> integer
 [subtypes:]
	coordinates (grid) ->> x_y_coordinate


x_y_coordinate () ->> entity
	x_pos (x_y_coordinate) -> integer [in grid; 0 < i]
	y_pos (x_y_ccordinate) -> integer [in grid; 0 < i]


score () ->> entity
 *	display_space (score) -> number [w/ default value]
 *	print_space (score) -> number [w/ default value]
	heading (score) -> text
	brightness (score) -> number
		[sets bright or dim display, w/ default]
 [default settings for staves:]
 *	def_spacing (score) -> mono | proportional
		[horiz. placement of notes; default=mono]
	def_lines (score) -> integer
		[lines per staff; i >= 0]
	def_leading (score) -> number
		[vertical space between lines; w/ default value]
	def_thickness (score) -> number
		[thickness of lines; w/ default value]
	def_color (score) -> color
		[color of lines; default=black]
	def_length (score) -> number
		[length of lines, constrained by
		display_space(score) and
		print_space(score); default=full]
 [default settings for notes:]
	def_size (score) -> number  [char size]
	def_weight (score) -> number  [char weight]
	def_color (score) -> number  [char color]
 [subtypes:]
	text (score) ->> text
	mss (score) ->> manuscript


measure () ->> entity
	number (measure) -> integer [i > 0, auto-numbered]
	symbol (measure) -> postscript_char  [measure delineator]
	leading (measure) -> number [delineator hspace; default]
	thickness (measure) -> number [delineator weight; default]
	color (measure) -> color [default=black]
	height (measure) -> number
		[constrained by display_space(score)
		and print_space(score); default=span manuscripts]


text () ->> entity
	font (text) -> font
	size (text) -> number
	color (text) -> color
 *	snap_lr (text) -> snap | free
 *	snap_ud (text) -> snap | free
	position (text) -> x_y_coordinate
		[in display/print space, start position]
 [subtypes:]
	text (text) ->> postscript_char


manuscript () ->> entity
	number (manuscript) -> number
		[unique in score; determines order of stacking]
	source (manuscript) -> text
		[textual identification of the manuscript;
		include optional hyperlinks]
 [manuscript settings for staves:]
	ms_leading (manuscript) -> number
		["0" = default to def_lines(score)]
	ms_thickness (manuscript) -> number
		["0" = default to def_thickness(score)]
	ms_color (manuscript) -> color
		["0" = default to def_color(score)]
	ms_length (manuscript) -> number
		["0" = default to def_length(score)]
 [subtypes:]
	staves (manuscript) ->> staff


staff () ->> entity
	signature (staff) -> postscript_char
	indent (staff) -> number
		[constrained by display_space/print_space(score);
		default=0]
 [subtypes:]
	lines (staff) ->> line
	notes (staff) ->> note


line () ->> entity
	leading (line) -> number
		["0" = default to ms_lines(manuscript)]
	thickness (line) -> number
		["0" = default to ms_thickness(manuscript)]
	color (line) -> color
		["0" = default to ms_color(manuscript)]
	length (line) -> number
		["0" = default to ms_length(manuscript)]


note () ->> entity
	snap_lr (note) -> boolean
	snap_ud (note) -> boolean
	position (note) -> x_y_coordinate
	character (note) -> compound note or postscript_char
	size (note) -> number  [char size]
	weight (note) -> number [char weight]
	color (note) -> color


measure (manuscript) ->> measure(score(manuscript))




Back to Home

Revision: 13 December 1999
Copyright (c) 1997, 1998, 1999, Louis W. G. Barton