Cavatina is a font family for quickly writing musical notation. It focuses on speed of input and portability and is primarly suited for quick drafting of ideas or music teaching. The fonts can be used in any text editor that supports advanced font features or included as a webfont in a browser.

The idea behind Cavatina is that you don’t necessarily need a heavy-weight music notation program to draft musical ideas. Instead, music is typed in as normal text based on a specific keyboard scheme.

The Cavatina project is open source and free under the MIT license. You can grab a copy of the fonts and related tools from the GitHub releases page.

Cavatina works with the latest versions of Firefox, Chrome and Opera, so make sure to use one of those browsers to read this documentation.

Learning Cavatina

For learning how to write music with Cavatina you have a few options, although it is strongly recommended that you do read the sections The Basics and The Musical Note beforehand. You can

The Basics

The order in which you type in music in Cavatina matters. You write sequentially from left to right, as in written language. But music is similar to written language in many other ways: chords are like words, bar-lines are like punctuation marks, accidentals are like diacritical marks and the staff lines are the space character. That is exactly how you should think when writing with Cavatina.

There are only three basic rules to keep in mind when writing with Cavatina:

  1. Hitting space extends the staff for starting a new note or chord.

  2. Notes within a chord are typed in from low to high.

  3. Note modifiers are written directly after the corresponding note.

The rest of learning Cavatina is really only memorizing the location on the keyboard of each musical symbol.

The Musical Note

The location of each note on the keyboard is motivated by the fact that the lowest row of characters just above the space bar has exactly seven letters: the seven pitches of a diatonic scale.


It is easy to learn where this seven notes are due to their physical location on the keyboard.

Most musicians aren’t happy with just seven notes. Following the idea above, we get a new octave for each of the four rows of the keyboard above the space bar, with the top row having three additional notes, like this:

Each column of keyboard keys maps to the same note in different octaves.

If you have used other notation software, you are probably used to look for the C key if you want to write a C, and so on. This is not very efficient, because sadly these letters aren’t ordered in a row. When writing notes with Cavatina, once you get your fingers placed in the right position, you don’t need to look back down at the keyboard.

Note length

So far we have 31 notes (covering a bit more than four octaves). Each of these characters has its lowercase and uppercase variant, which correspond to the note in 8th and 4th length accordingly. Switching to the bold weight of Cavatina, you get 16th-notes in the lowercase and 8th-notes in the uppercase characters.

Use a keyboard shortcut to switch to the bold weight (on an interface in English use Ctrl/Cmd+B).
Sample Input Note length

Regular style





Bold style





Example 1. Note length
Input Output

, a A a A,

, a A a~ A~,

Appart from that, Cavatina has a special key that serves as a modifier key: the `/~ key. We are going to call ` the inverter and ~ the time character, the latter of which, among other things, extends the duration of notes. Every time you hit the time character after a note, the note’s length doubles. You can do this up to a maximum of twice per note, i.e. for a whole note you would need to type a 4th-note followed by two times ~.

Example 2. Note prolongation
Input Output

, f F f~ f~~ F~ F~~,

, f F f~ f~~ F~ F~~,

For dotted notes you use < after the note.

To draw a tie after a note append an L.

Note orientation

The stem of a note can be inverted. This is done with the inverter `. A note can only be inverted once (which doesn’t stop you from un-inverting).

To invert the stem of a chord you invert the first note of the chord. If the next note in the chord would collide in its default orientation, then it is automatically inverted. Otherwise keep inverting until you obtain the desired result. This is useful for separating voices within one chord.

Example 3. Note orientation
Input Output

, f f` j j`, afj a`fj a`f`j a`f`j`,

, f f` j j`, afj a`fj a`f`j a`f`j`,


Rests are accessed via the ]/} key. Their duration is changed the same way as for notes. Optionally, you can write the same rest twice and the length will increase accordingly.

Example 4. Rests
Input Output

, ] } ]] }} ]~ ]~~ }~ }~~,

, ] } ]] }} ]~ ]~~ }~ }~~,

Note beams

To beam two 8th or 16th notes, write two dots .. after the second note. Both notes need to have the same orientation before they can be beamed. Only pairs of notes can be beamed together.

Example 5. Note beams
Input Output

, dh sj.. d`h` s`..j d`h s`..j`..,

, dh sj.. d`h` s`..j d`h s`..j`..,

Staff and Barlines

When you hit the spacebar you draw a new staff block. Before any note or chord, you have to draw a new staff block to make room for a note or a chord.

The barlines are mapped as follows:

Musical symbol Raw input

simple barline


double barline


final barline


repeat barline (start)


repeat barline (end)


Cavatina is not made to do minor adjustments to the layout, but if you consider it necessary, you can gain control over horizontal spacing by using the half space / and the quarter space //.

Example 6. Barlines
Input Output

, ,, . ; :

, ,, . ; :


Cavatina supports three different clefs:

Musical symbol Raw input




_+ or +_



The input of the notes is invariant of the signature; it doesn’t depend on the current clef.

Example 7. Clefs
Input Output

,+ f f,_ f f,+_ f f,

,+ f f,_ f f,+_ f f,

Time Signatures

Time signatures have to be written after clefs (and key signatures) or barlines. To start a time signature enter the time key ~. After that you just write the upper and lower numeral successively.

To write the common time or cut time symbols, enter c or C after the time key.

A space is automatically attached after a time signature, so that you don’t have to open a new staff block yourself.

Example 8. Time signatures
Input Output

,~34 ,~1216 ,_---~34 ,~c ,

,~34 ,~1216 ,_---~34 ,~c ,

Accidentals and Key Signatures

Musical symbol Raw input






-= or =-

double flat


double sharp


To write a key signature you simply type in the sharps/flats successively after a clef.

Example 9. Key signatures
Input Output

_----- D G,_+== ADG

_----- D G,_+== ADG


Musical symbol Raw input











All articulations are written after the lowest note of a chord, except the fermata, which is written after the highest note.

Example 10. Articulations
Input Output

  A' A" A'' A"" A>

A' A" A'' A"" A>


Dynamics are aligned with respect to the note to which they are applied. Therefore, if you are writing a chord with some dynamics marking, you should write that marking just after the first (lowest) note of the chord.

Table 1. Note dynamics
Musical symbol Raw input







mezzo piano


mezzo forte









||\ or \\|


\\\| or |||\ or \\` or ||`

Table 2. Phrasal dynamics
Musical symbol Raw input





Example 11. Dynamics
Input Output

  d\fh h`||er M\\| Dl 

d\fh h`||er M\\| Dl


Musical symbol Raw input



inv. mordent






inv. turn




Note that, intuitively enough, ornaments are inverted with the inverter key `.

To extend the trill or the arpeggio repeat that same character. The arpeggio is written at the end of a chord.

Example 12. Ornaments
Input Output

D[ D{ D[` D{` D[[ D[[[[

D[ D{ D[` D{` D[[ D[[[[

Repetition markings

Apart from the repeat barlines ;/:, you can use the following repetition markings:

Musical symbol Raw input

1st repetition


2nd repetition


end marking


The end marking is necessary for the MusicXML/MIDI converter to detect the range of the repetition sections.

Musical symbol Raw input









Writing coda or segno right after D.C. or D.S. will append the words “al Coda” and “al Fine” accordingly.

Example 13. Repetition Markings
Input Output

, D F G Do, D F D Go`:oo D S A }.

, D F G Do, D F D Go`:oo D S A }.

Other Notation

Octave markings are used in a similar manner as repetition markings and always after the highest note in a chord.

Musical symbol Raw input



8va (2)


end 8va


The triplet is written before the chord sequence. Use tight spacing to fit the notes under the mark: enter three quarter-spaces /// between the notes.

Musical symbol Raw input



Pedal markings are lower markings and as such they have to be applied to the first note of a chord.

Musical symbol Raw input



release pedal


Staff Systems

To create systems of multiple staves you can extend barlines to join with the upper staff. To draw a grand staff, first enter a newline followed by a single barline , to start a new staff. To draw the brace connecting with the upper staff, type in \\. Then continue with the clef and key signature as you would normally do. To connect the subsequent barlines, write a single \ after them.

Musical symbol Raw input



long barlines

,\ or .\ etc.

Example 14. Staff systems
Input Output

,+--- DFJ DGJ J s d>..,
,\\ _--- A D } MJ ,\

,+--- DFJ DGJ J s d>.. ,\\_--- A D } MJ ,\