Keyboard Shortcuts Cheat sheet

Most of the keyboard shortcuts are listed in the respective menu items in mei-friend’s menu bar; however, some of them you will only find here.

Getting help

? Open mei-friend documentation
. Open MEI documentation for selected element
Select next note, rest, or mRest
Select previous note, rest, or mRest
Select note, rest, or mRest one layer up
Select note, rest, or mRest one layer down
Select note, rest, mRest in next measure
Selected note, rest, mRest in previous measure
Go to next page (or )
Go to previous page (or )
Go to first page (or END)
Go to last page (or HOME)

Zooming and display

Some zooming keyboard shortcuts apply for the currently active panel (notation panel, editor panel, or the facsimile panel).

+, Zoom notation/encoding/facsimile in or out
Mouse wheel Zoom notation/encoding/facsimile in or out (depending on mouse wheel direction)
0 Zoom notation to 100%
5 Zoom notation to 50%

Selecting elements

Most comfortably, use mouse click and drag to select elements. Please consult Settings->mei-friend->Drag select to choose the element types while drag-selecting. You can use the following shortcuts in combination with click and drag for selecting elements.

click Select multiple notes by mouse click
click Select the chord when clicking onto a note
SPACE Switch focus between notation panel and editor panel

Manipulating elements

X Invert attribute `@place` (dir, dynam, trill, tuplet number, ...), `@curvedir` (slur, tie, ...), `@stem.dir` (note, chord) from above to below or below to above for selected element
X Set att.placement (dir, dynam, trill, ...) to @place="between" and determine staff attribute from staff group of selected element (has to contain exactly two staves)
V Insert vertical group (`@vgrp`) attribute to selected elements with a new value for the displayed page

Deleting elements

BACKSPACE or DELETE Delete selected elements both in encoding and notation. Applies to all control elements, clef change, accid, artic, beam, beamSpan, note, chord, rest, mRest, multiRest. When deleting the last note inside a chord, beam, tuplet, fTrem, bTrem, these parent elements will also get deleted. When deleting an element that is been pointed to by another element (such as by a slur through `@startid` or `@endid`), this pointing element will also be deleted.

Manipulate elements

C Convert selected note(s) to a new chord (having selected notes as children and cue, dur, dots, grace, stem.dir attributes in chord element) and vice versa (remove chord element while copying cue, dur, dots, grace, stem.dir attributes to note elements)
N Convert selected note(s) to rest(s) and vice versa, retaining pitch and octave information (each element receives new xml:id)

Moving elements

Move note, rest, mRest, multiRest chromatically upwards
Move note, rest, mRest, multiRest chromatically downwards
Move note, rest, mRest, multiRest diatonically upwards
Move note, rest, mRest, multiRest diatonically downwards
Move note, rest, mRest, multiRest one octave upwards
Move note, rest, mRest, multiRest one octave downwards
Move note, rest, mRest, multiRest one staff downwards
Move note, rest, mRest, multiRest one staff upwards

Manipulate duration

Increase duration of a note, chord, rest, etc.
Decrease duration of a note, chord, rest, etc.
. Toggle single dotting of a note, chord, rest, etc.

MEI encoding manipulation

Renumber measures (counts successive measures with `@metcon="false"` as one, counts multiple endings with same numbering)
C Remove @accid.ges when @accid is present
R Test renumbering (output to console)
R Execute renumbering
M Add XML ids to MEI (done natively in mei-friend)
M Add XML ids from MEI, except those used for referencing other elements (done natively in mei-friend)
I Ingest facsimile
E Surround selected encoding in the editor with a tag to be specified in context menu (entire current tag selected, if only single cursor position provided)
/ Surround selected encoding in the editor with last tag specified in context menu (entire current tag selected, if only single cursor position provided)

Inserting elements

Key bindings insert elements without placement attribute by default. To insert or invert placement, use X. The elements are inserted using @startid and @endid attributes by default. To insert them with @tstamp and @tstamp2 attributes instead, press together with the keyboard shortcuts listed below. Time stamp insertion is supported for these elements: slur, tie, hairpin, fermata, dir, dynam, pedal, mordent, trill, turn, glissando.

N Insert a note, chord, rest (that is, duplicate (last) selected note, chord, rest. When selection is a layer, append a new quarter-note C4 to that layer)
+ Insert accidental sharp ♯ to currently selected note(s)
= Insert accidental natural ♮ to currently selected note(s)
Insert accidental flat ♭ to currently selected note(s)
T Insert tempo at selected note(s)
I Insert directive at selected note(s)
D Insert dynamics at selected note, with extender if two notes selected
S Insert slur starting/ending on selected notes
T Insert tie starting/ending on selected notes
H Insert crescendo hairpin starting/ending at selected notes
H Insert diminuendo hairpin starting/ending at selected notes
B Insert beam on selected notes/chords sharing identical parent
B Insert beamSpan element on selected elements
U Surround selected elements with a supplied element; responsibility attribute to be selected in settings
U Make artic attribute a separate element and surround it with a supplied element; responsibility attribute to be selected in settings
U Make accid attribute a separate element and surround it with a supplied element; responsibility attribute to be selected in settings
A Insert arpeggio for selected note(s) (with @order="up" per default, with CTRL + A @order="down")
F Insert fermata above selected note
G Insert glissando starting at first, ending at last selected note
P Insert pedal down for (first) selected note (and pedal up for last selected note, if multiple notes are selected)
P Insert pedal up for selected note
L Insert trill to selected note(s)
R Insert turn to selected note(s) (with SHIFT: lower form)
M Insert mordent to selected note(s) (with SHIFT: upper form)
O Insert octave shift above (8va), spanning two selected notes/chords (below with CTRL)
O Insert octave shift above (15va), spanning two selected notes/chords (below with CTRL)
G Insert G clef before selected element
G Insert G clef after selected element
F Insert F clef before selected element
F Insert F clef after selected element
C Insert C clef before selected element
C Insert C clef after selected element

Toggle articulation

S Toggle staccato on note/chord
V Toggle accent on note/chord
E Toggle tenuto on note/chord
O Toggle marcato on note/chord
I Toggle staccatissimo on note/chord
Y Toggle spiccato on note/chord

MIDI playback

SPACE Play/pause (opens player if required)
ESC Stop playback and hide player

URL Parameters

mei-friend may ba called with several parameters passed through the URL in the form of https://mei-friend.mdw.ac.at/?file=fileURL&select=beamId.

file=fileURL Open specified file URL
scale=number Specify scaling of notation (default: 55; min: 10; max: 200)
breaks=none|line|encoded|auto Specify breaks option of Verovio
select=n1,n2,n3&
select=ch1&
select=slur1
Specify selected elements (pass multiple comma-separated xml:ids and/or repeat select parameter); notation and encoding will page-flip and scroll to first selected element; overrides page parameter
page=number Specify a page number to be displayed (depends on breaks settings; overridden by select, see above)
speed=true|false Set speed mode
fork=true|false If a https://raw.githubusercontent.com URL is supplied via the file parameter (see above), direct the user to fork the corresponding repository and open their forked version (logging them in first if necessary)
autoValidate=true|false Activate (default) or deactivate automatic validation upon MEI text input
notationOrientation=top|right|
bottom|left
Set relative position of notation in window
notationProportion=0.5–0.95 Size of notation panel relative to window
facsimileOrientation=top|right|
bottom|left
Set relative position of facsimile relative to notation panel
facsimileProportion=0.5–0.95 Size of facsimile panel relative to notation panel

Examples using URL parameters

Schumann piece with several elements selected in the middle

Beethoven Op.76 containing facsimile elements with measure-wise zones