Documentation

FORTE Notation

A manuscript editor with four ways of editing the same piece โ€” Score, Code, Story, Phrase. Every change is reversible. The AI proposes; you accept, edit, or reject.

Opening FORTE

FORTE Notation is at /notation. On mobile, /notation shows your saved-pieces library; tapping a piece opens the editor. On tablet and desktop, /notation opens the editor directly with whatever you were working on last (or the setup wizard if it's a fresh slate).

From the chat surface, any score the assistant produces has an "Open in FORTE" button. That deep-links into the editor with the piece pre-loaded; edits sync back to the chat as a new version when you "Save to chat".

The four editing modes

Every mode operates on the same piece. Switching between them is lossless; you can drag a melody on the staff, flip to Code to type an accidental, then ask Story for a countermelody and Phrase to commit it "at bar 5 beat 1".

Score
Direct manipulation on the engraved staff. Tap or click a notehead to select; drag to move; the bench (mobile) or the inline edit popover (desktop) shows the selected note's attributes. The score is the read surface and the edit surface, depending on context.
Code
ABC source as plain text. CodeMirror with syntax highlighting, autocomplete for headers and accidentals, and a lint pass that flags errors as squigglies. On mobile the system keyboard is replaced with a notation-aware keypad โ€” pitch letters, octave markers, accidentals, durations, bar lines, repeats, and header shortcuts.
Story
Natural-language editing. "Make this sadder." "Add a countermelody in the alto." The model reads the current piece, proposes a diff, and shows it as ghost notes on top of the staff. You accept, modify, or reject.
Phrase
Deterministic command grammar. "At bar 5 beat 1, insert quarter D." "Transpose selection up a third." "Set tempo 96." Parser-driven โ€” no model, no creativity, fully auditable. 78+ tested edit patterns. If the parser doesn't recognise your phrase, you get a hint and a button to send it through Story instead.

The bench and step bar (mobile)

On phones, individual noteheads at engraving size are too small to tap reliably. The Score tab on mobile splits vertically into three regions:

  • Bar minimap at the top โ€” every bar shown as a tappable cell with the duration glyphs as thumbnail.
  • Bench in the middle โ€” the current bar at large scale, with each note as a 44pt+ tap target. Tap to select; long-press to start a range.
  • Step bar at the bottom โ€” pitch picker, duration palette (whole / half / quarter / 8th / 16th / 32nd / rest), accidentals (โ™ฏ โ™ญ โ™ฎ), dot, tie, and delete. Acts on the selected note.

The minimap is the engraving authority (it's an actual abcjs render); the bench prioritises tap precision over engraving fidelity.

Pinch-zoom on the score

Page-level pinch zoom is disabled site-wide (so forms don't accidentally zoom on input focus). The score viewport opts back in: pinch to zoom 0.5ร—โ€“3ร—, two-finger drag to pan. "Reset zoom" is in the More menu.

Setup wizard (new pieces)

On a fresh slate, the setup wizard opens automatically. Three paths:

  • Structured โ€” pick key, time signature, tempo, and ensemble (single voice / SATB / piano grand staff / custom). Generates an empty score with the right voices and clefs.
  • Template โ€” start from a template (a hymn skeleton, a baroque chorale, a baakisimba pattern, a folk melody). The wizard fills in idiomatic placeholders you can edit.
  • Story โ€” describe the piece in natural language. "A short hymn in F major, SATB, with a perfect cadence at the end." The model composes a draft you accept or reject.

Skip the wizard and you get a literal blank slate (one voice, one whole rest). Re-open it from the More menu (mobile) or the TopRail (desktop) any time.

Hum capture

Hum a melody and FORTE transcribes it. Open from the More menu (mobile) or the Toolbelt's Hum gesture (desktop). Tap record, hum your phrase against the selected tempo, tap stop; the system runs on-device pitch detection, quantises against the score's time signature, and proposes a melody. Accept to replace the current voice or insert.

Quality depends on a clean signal. Sing or hum on a single vowel sound ("la-la-la"), keep the recording shorter than 30 seconds, and use a quiet room. Hum is monophonic โ€” it captures one melody line at a time.

Contour sketch

Draw the shape of a melody and FORTE generates pitches that follow it. Open Contour from the More menu, drag your finger across the canvas, and the system picks pitches in the current key that match your contour's ups and downs. Useful when you can hear the shape but not the exact notes.

The Inspector

The Inspector watches your piece and surfaces things to notice:

  • Voice-leading flags โ€” parallel fifths, parallel octaves, voice crossings, leaps that violate common-practice voice-leading rules.
  • Range warnings โ€” notes outside the typical range of the chosen voice/instrument.
  • Comments โ€” your team's comments anchored to specific notes.
  • History โ€” recent actions (undo trail).

The Inspector is informational, not enforced. You can produce whatever you like; the flags help you see when you're breaking a rule on purpose vs by accident.

Voices and mixer

Add voices for SATB, piano grand staff, or any custom ensemble from the Voices panel. Each voice has:

  • Instrument โ€” General MIDI program for playback (voice / piano / strings / etc.). For Ugandan traditional instruments, the system maps to the closest GM patch and uses tuning info from the piece's tuning system field.
  • Clef โ€” treble, bass, alto, tenor, percussion.
  • Tuning system โ€” Western equal temperament, amadinda equidistant, embaire equidistant, adungu diatonic, ennanga pentatonic, or free.
  • Mute / solo / volume โ€” set on the Mixer panel.

Comments and collaboration

Comments are anchored to specific notes. Tap a note in Score mode and choose "Add comment"; the comment travels with the note even if the bar around it changes. Threads support replies and a resolved/open state.

Live collaboration uses Yjs over a Cloudflare Durable Object. Share a draft from the TopRail's share button (desktop) or the More menu (mobile); the recipient gets a link and joins the room with their own coloured cursor. Edits stream in real time; the comments and the Y.Doc stay in sync.

Drafts and library

  • Auto-save โ€” every edit saves to your account's draft store. No save button required. Mobile shows the live status ("autosaving") in the editor header.
  • Forte Drafts page โ€” at /forte-drafts, list of every draft you own with the most recent at top.
  • Sharing โ€” invite collaborators via link; manage permissions on the share modal.
  • Mobile library โ€” at /notation on phones, the saved-pieces grid is the entry point. New piece, recent drafts, sample templates.

Export and import

  • MusicXML โ€” export from the Extras menu. Round-trips to most other notation editors.
  • ABC โ€” copy from the Code mode tab.
  • WAV / MIDI โ€” render the current piece to audio with studio-grade General MIDI samples and download.
  • Scan / OMR โ€” point the Scan tool at a photo of sheet music or a PDF; the OMR pass extracts a draft you can clean up.
  • Import โ€” drag-drop a MusicXML, MIDI, or ABC file onto the editor, or open with the Extras menu's Import option.

Practice from FORTE

Hit the Practice button on the TopRail (desktop) or in the More menu (mobile) to enter Practice (Follow) mode for the current piece. The score listens to you play, advances the playhead in real time, and produces an audit when you're done. See the Practice guide for everything that happens after.

The command palette and Phrase mode

Phrase mode is the deterministic, audited path for editing. You type a command; the parser matches it against 78+ patterns and either applies the edit or asks for clarification.

Examples:

  • at bar 5 beat 1 insert quarter D
  • transpose selection up a third
  • set tempo 96
  • delete bar 7
  • add repeat from bar 1 to bar 4
  • tie notes 3 and 4 in voice 1
  • trill on the 4th note

When the parser falls through (e.g. "make this sound sadder"), Phrase mode offers to send the request through Story mode instead โ€” keeping the deterministic path clean.

Desktop shortcuts

  • โŒ˜K / Ctrl+K โ€” command palette.
  • โŒ˜Z / Ctrl+Z โ€” undo. โŒ˜โ‡งZ redo.
  • 1, 2, 3, 4 โ€” toggle Inspector, Code, Story, Mixer panels.
  • P โ€” toggle Practice.
  • Arrow keys with selection โ€” nudge pitch up/down a step; with shift, by an octave.

Troubleshooting

  • The score won't render. Likely an ABC parse error. Open Code mode; the lint gutter shows the offending line.
  • Playback sounds tinny. The high-quality soundfont is still loading. Wait 5โ€“10 seconds and try again.
  • Hum captured the wrong notes. Re-record in a quieter room, or open Story mode and describe what you actually meant.
  • I lost work. Drafts auto-save. Check /forte-drafts; if it's genuinely missing, email support.
  • Collab cursor lag. Network jitter. The Y.Doc converges once the connection stabilises.