-
Notifications
You must be signed in to change notification settings - Fork 7
Interface 1
This document describes the interface of the abc2svg core version 1
(abc2svg-1.js).
The abc2svg core may be included in html/xhtml documents by:
<script src="http://moinejf.free.fr/js/abc2svg-1.js" type="text/javascript"></script>
Before any first or new ABC to SVG translation, an instance of the class
Abc
must be created:
var abc = new Abc(user)
The user
argument of this function is a javascript Object which must
or may contain:
-
img_out (optional):
Callback function which is called when a new SVG image has been generated.This function receives one argument, a string, which is usually a SVG image.
It may be absent when no graphic generation is needed as, for example, for playing only. -
errbld (mandatory if no errmsg):
Callback function which is called when some error has been found during the ABC parsing or the SVG generation.This function receives 5 arguments:
-
severity_level (integer)
Level of the message which may be:-
0
: warning -
1
: error - other value: fatal error
-
-
message (String)
Text of the error. -
file_name (String):
The name of the abc file, used for reporting. The file name may beundefined
. -
line_number and column_number (integer):
Position of the error in the ABC source.
This information may not be known in which case line_number isundefined
.
The line and column numbers start from 0.
-
-
errmsg (mandatory if no errbld)
Callback function which is called when some error has been found during the ABC parsing or the SVG generation.This function receives 3 arguments:
-
message
Text of the error.
Generally, this text includes a reference of the error in the ABC source format:
-
message
file_name ":" line_number ":" column_number " " error_message
- *line\_number* and *column\_number*
Position of the error in the ABC source, same as the
corresponding argument in `errbld()`.
-
read_file (mandatory)
Callback function which is called to read a file.This function receives one argument, the name of the file as a string.
It must return the file content as a string.
It is called when a%%abc-include
command has been found in the ABC source. -
anno_start (optional)
Callback function for setting ABC references in the SVG images.This function is called just before the generation of a music element.
It receives 7 arguments:-
music_type
It is one ofannot
,bar
,clef
,gchord
,grace
,key
,meter
,note
,part
,rest
,tempo
. -
start_offset
Offset of the music element in the ABC source. -
stop_offset
Offset of the end of music element in the ABC source. -
x, y, w, h
Coordinates of a rectangle which covers the music element.
-
-
anno_stop (optional)
Callback function for setting ABC references in the SVG images.This function is called just after the generation of a music element. It receives the same 7 arguments as the callback function anno_start.
-
get_abcmodel (optional)
Callback function to get the internal representation of the music just before SVG generation.This function receives 4 arguments:
-
tsfirst (object)
First musical symbol in the time sequence.
The symbols are double-linked by time byts_next
/ts_prev
.
The start of a new sequence is marked byseqst
. -
voice_tb (array of objects)
Voice table.
The first symbol of a voice issym
.
The symbols are double-linked in a voice bynext
/prev
. -
music_types (array of strings) Array giving the symbol type from integer value of the symbol attribute
type
. -
info (object)
Text of the information fields (T:, M:, Q:, P:...).
A newline (\n) separates the appended values.
The returned representation is destroyed by the generation, so, either
- use it immediately before returning from the function, or
- unset the
user.img_out
function.
-
-
imagesize (string)
Define the SVG image size.When
imagesize
is not set, the size of the SVG images is the one of a sheet, as defined by %%pagewidth.
Whenimagesize
is defined, it must containwidth="image_width" height="image_height"
, image_width and image_height being any value accepted in the<svg>
tag. -
page_format (boolean)
Group the SVG images into non-page-breakable blocks.When
page_format
is not set, only the SVG images are generated. With XHTML output, the images go to the right of the previous ones (inlined images).
Whenpage_format
is set, the images are grouped in<div>
containers with a class "nobrk", and a class "newpage" in case of %%newpage.
ABC to SVG translation is done calling the Abc method tosvg
:
abc.tosvg(file_name, ABC_source, start_offset, end_offset)
-
file_name
is the name of the ABC source. It is used for information only in error messages. -
ABC_source
is the ABC source as a (UTF-16) string with the'\n' (\u000a)
as the end of line marker. -
start_offset, end_offset
are the character offsets of the ABC sequence in the ABC_source.
They are optional and their default values are0
andABC_source.length
abc.tosvg
may be called many times in which case the values set by
previous calls are kept.
The ABC source must contain full tunes, i.e. a same tune cannot be
continued by a second call to tosvg
.
-
blk_flush:
function to terminate a block of images.In case of fatal error during the SVG generation, this function may be called in the error callback function to output the last SVG elements.
bkl_flush
takes no argument. -
out_svg:
function to add text in the current SVG imageIt may be used only in the callback functions.
This function expects one mandatory argument:- text (string) Text to be added.
-
sx:
function to convert the x coordinateThis function expects one mandatory argument:
-
x (number)
Local x.
sx
returns thex
coordinate in the current SVG container. -
x (number)
-
sy:
function to convert the y coordinateThis function expects one mandatory argument:
-
y: (number)
Local y.
sy
returns they
coordinate in the current SVG container. -
y: (number)
-
out_sxsy:
function to output x,y coordinatesIt may be used only in the callback functions.
This function expects 3 mandatory arguments:-
x (number)
x offset -
separator (string)
text between x and y in the SVG element -
y (number)
y offset
-
-
sh:
function to convert a heightThis function expects one mandatory argument:
-
h (number)
Local height.
sh
returns the height in the current SVG container. -
h (number)
-
ax: function to convert the x coordinate
-
ay: function to convert the y coordinate
-
ah: function to convert a height
The last 3 functions return values relative to the global SVG container.
They may be used in place ofsx
,sy
andsh
when elements must be globally added (byout_svg
).
When%%pagescale
is 1 (default), there is no global container (the coordinates are the ones of the SVG image).
When this is not the case, a global <g> container is added, with the class "g".
The global variable abc2svg
is an object which contains:
-
version
current version of abc2svg -
vdate
date of the distribution of current version