What is OMNL?

OMNL is a paper description language like html. Because it is a ascii text file it can be transferred on every other computer plattform. The files are very small and can be published over the internet.

How does OMNL work?

An OMNL file is made of tags. A typical OMNL tag looks like this:

<omnlPageCounter;00002> This means that this omnl file has two pages.

OMNL Files have two parts: The first part defines the document settings (page borders, used fonts, time signature settings). the second part is a listing of the graphical items (chord symbols, grids, beats, free text). Different document kinds are defined by the omnlWindow tag followed by the window kind. Currently PaperChord knows two window kinds: PaperChordChartWindow and PaperChordGridWindow.

5.3 OMNL Reference

The following tags are used for the document preferences:
<omnlLeftBorder;leftBorder> <omnlLeftBorder;45> <omnlTopBorder;topBorder> <omnlTopBorder;30> <omnlRightBorder;rightBorder> <omnlRightBorder;45> <omnlBottomBorder;bottomBorder> <omnlBottomBorder;40> <omnlBigChordTextFont;bigChordTextFont> <omnlBigChordTextFont;27> <omnlBigChordTextSize;bigChordTextSize> <omnlBigChordTextSize;14> <omnlSmallChordTextFont;smallChordTextFont> <omnlSmallChordTextFont;27> <omnlSmallChordTextSize;smallChordTextSize> <omnlSmallChordTextSize;10> <omnlBoxTextFont;boxTextFont> <omnlBoxTextFont;75> <omnlBoxTextSize;boxTextSize> <omnlBoxTextSize;14> <omnlBoxTextFace;boxTextFace> <omnlBoxTextFace;B> P=plain, B=bold, I=italic, U=underline, O=outline, S=shadow, C=condensed, e=Extended
<omnlDenominatorValue;denominatorValue> <omnlDenominatorValue;4> <omnlNominatorValue;nominatorValue> <omnlNominatorValue;4> <omnlBarsPerLine;barsPerLine> <omnlBarsPerLine;4> <omnlTimeSignatureVisible;timeSignatureVisible> <omnlTimeSignatureVisible;1> <omnlNumberingOn;numberingOn> <omnlNumberingOn;1> <omnlStretchLastLine;numberingOn> <omnlStretchLastLine ;1> <omnlActFont;actFont> <omnlActFont;57> <omnlActSize;actSize> <omnlActSize;12> <omnlActFace;actFace> <omnlActFace;P> <omnlPageCounter;pageCounter> <omnlPageCounter;00002>
Each of the following omnl tags represents a graphic item:
<omnlBar> <omnlBar> <omnlGrid;gridOnPage;gridXPos;gridYPos;gridBigText;gridSmallText;fretPos;fretText> <omnlGrid;1;3;2;C;Maj7;3;3> <omnlTextItem;onPage;theText;font;size;face;whereTextH;whereTextV> <omnlTextItem;1;play softly;76;12;IC;254;394> <omnlBoxText;theBoxText> <omnlBoxText;A> <omnlChordTitle;onBeat;bigText;smallText> <omnlChordTitle;3;D;Min7> <omnlBeat;beatOnBeat> <omnlBeat;2> <omnlDot;dotOnPage;DotKindType;gridDotXPos;gridDotYPos;dotXPos;dotYPos> <omnlDot;2;r;1;1;3;4> DotKindType Definition: c=circleDot, r=rectDot, x=crossDot, e=emptyDot;
<omnlSignRepeatBegin;SignRepeatBeginBE> <omnlSignRepeatBegin;B> <omnlSignRepeatEnd;signRepeatEndBE> <omnlSignRepeatEnd;E> <omnlSignBegin;signBeginBE> <omnlSignBegin;B> <omnlSignEnd;signEndBE> <omnlSignEnd;E> <omnlSignSeparator;signSeparatorBE> <omnlSignSeparator;E>
The first Graphic Item of a window has always to start with the following tag
<omnlWindow;windowType> the following two windowTypes are recognized by PaperChord: PaperChordGrid, PaperChordChar

Can I use OMNL?

OMNL is introduced by PaperChord and currently PaperChord is the only application that can create and use OMNL files.

Every developer is invited to use OMNL and to add new document kinds. You can even create new tags the only restriction is to let me know it if you are using OMNL so I can maintain a complete OMNL reference.

Ideas for new OMNL document kinds are easy to find: a guitar tabulature editor or a classical notation program. OMNL is not restricted to guitarists you can create notation tools for every Instrument.