Skip to content

Note entry

i enters note input. Insert toggles it both ways, and esc leaves it. The INPUT (i) box in the status bar is the indicator — and a button, if you’d rather click.

While input is on, that box reads out what you are about to write: 1/8 ♪ (4) means an eighth note, and that 4 is the key that selected it.

Key Duration Key Duration
7 whole 3 sixteenth
6 half 2 thirty-second
5 quarter 1 sixty-fourth
4 eighth
The duration palette: whole, half, quarter, eighth, sixteenth, thirty-second, sixty-fourth
The whole palette, whole note to sixty-fourth.

The digit sets the duration for what you write next; it never changes a note that is already there. To change an existing note, use alt + / — see Rhythm.

Durations are matched by physical key position as well as by character, so the number row works on AZERTY without Shift, and the numeric keypad works everywhere.

  • ag writes a note. The octave is guessed from the music around the caret, so scales and stepwise lines stay put instead of jumping.
  • shift + AG adds a note to the one you just entered, building a chord.
  • r writes a rest of the current duration.
A C major chord built from three stacked notes, then a single note
Type c, then shift+E and shift+G.
KeysActionApplies
ssharp ♯any time
vorfflat ♭any time
nnatural ♮any time
shift + sslur (selection) / double sharp 𝄪any time

In input mode use s sharp, v flat, n natural. Outside input mode f also flattens, since no pitch letters are needed there. shift + s writes a double sharp when nothing is selected.

Pressing the same accidental twice removes it; a different one replaces it.

Sharp, flat, natural and double sharp on four notes
Sharp, flat, natural, double sharp.

An accidental on a chord would otherwise sharpen everything. Instead a small picker opens listing the chord’s notes — 1:c4 2:e4 3:g4. Press the note’s letter or its number to apply the accidental to that note alone, esc to cancel.

A chord where only the middle note carries a sharp
One sharp, one note — the rest of the chord untouched.

. adds or removes an augmentation dot (on AZERTY, : is the unshifted key, and the keypad’s . works too). Press it repeatedly for a second dot.

The dot always applies to a real event: the note you just entered, or — once the caret has moved — the note or rest under the caret. It works outside input mode too. The extra time comes out of the rests that follow, and goes back to them when you remove the dot. Notes you enter afterwards inherit the dotted state.

  • Delete turns the caret’s event (or the whole selection) into rests of the same written duration. A chord becomes one rest.
  • Backspace erases backward like a text editor: the previous note becomes a rest and the caret steps onto it. With a selection it behaves like Delete.

Deleting never shortens a measure — it replaces notes with rests, which is what keeps the measure valid.

Writing a note does not push the rest of the measure along. It replaces what is already at the caret:

  • Equal duration — swapped in place.
  • Shorter — the leftover time becomes rests.
  • Longer — the following events are consumed to make room, and battuta refuses loudly if that would cross a beam, a tuplet, or the barline.

The measure’s total never changes, so the document is never briefly invalid and undo always has something exact to return to. (If a longer note is blocked by a beam, battuta un-beams the measure first — see beams are formatting.)

A MIDI keyboard is a first-class input, not an add-on. With input mode on:

  1. Play a note — it is entered at the caret with the current duration.
  2. Hold several keys down together — they build a chord.
  3. Release, and the caret advances.

Devices hot-plug: connect or disconnect while battuta is running and the status bar’s MIDI indicator updates, turning green with a device count. Click it to see what is connected. If you play a note while input mode is off, battuta hints that you should press i.

The desktop app bridges MIDI natively (ALSA on Linux, CoreMIDI on macOS) because WebKit has no Web MIDI API; in Chromium the same pipeline runs on Web MIDI. Every route ends in the same entry code, so behaviour is identical.

KeysActionApplies
itoggle note input (also Insert)any time
renter a restinput mode
1–7duration (7=whole … 1=64th)input mode · physical digit row/numpadfixed
a–genter pitchinput mode · shift+A–G adds chord notesfixed
.augmentation dotany time