ReaFruit MIDI Editor ManualReferenceDownload v0.9.6-beta

ReaFruit MIDI Editor

An FL Studio-style piano roll that runs inside REAPER. This manual covers the editor window, its tools, menus and keys. The Reference page covers scripting, the MCP server and the files ReaFruit writes.

ReaFruit editing a lead part, with an automation lane and a pan lane below the grid

Introduction #

ReaFruit is a REAPER extension. It draws a piano roll in the style of FL Studio and edits REAPER's own MIDI items, so every change is a normal REAPER edit with undo, project files and routing untouched. The editor is free. The only paid part is a license for the built-in MCP server, which lets an AI client edit notes.

Each section of this manual says what a feature does and how to reach it: the menu path, the key, the mouse gesture. Keys are the defaults; every one can be rebound, and every mouse gesture can be remapped. Press F1 inside the editor to open this manual at the section for whatever the mouse is over.

Install #

Requirements #

First open #

Download the latest version from the Gumroad page, then copy the extension into REAPER's UserPlugins folder and restart REAPER.

SystemFile
Windows%APPDATA%\REAPER\UserPlugins\reaper_reafruit-x64.dll
macOS~/Library/Application Support/REAPER/UserPlugins/reaper_reafruit.dylib
Linux~/.config/REAPER/UserPlugins/reaper_reafruit.so

On load, the extension writes its scripting helper and example scripts to Scripts/ReaFruit in the REAPER resource folder, and registers its actions. Select a MIDI item and run ReaFruit MIDI Editor: Open/toggle editor from the Actions window.

Updates #

Once a day, when the editor opens, ReaFruit reads the public product page and compares versions. A newer version opens a small window: Download opens the download page, Skip this version stays quiet until the next one, Not now asks again tomorrow, Turn off update checks stops the check. Nothing but a plain page request leaves your computer.

Open the editor #

The three actions #

All three live in REAPER's main action section, so they can take a key, a toolbar button or a mouse modifier.

ActionUse
ReaFruit MIDI Editor: Open/toggle editorOpens the editor on the selected item's MIDI take, or closes it. The action reports its state, so a toolbar button lights while the editor is open.
ReaFruit MIDI Editor: Open editor or media item properties (mouse modifier)Assign it under Preferences › Mouse Modifiers › Media item › double click. MIDI items then open in ReaFruit; other items still get REAPER's item properties.
ReaFruit MIDI Editor: Move window to the mouse cursorBrings a window that was left on an unplugged screen back under the pointer.

The editor follows the selection: pick another MIDI item and the view switches to it. With track-level clips on, every MIDI item on the same track shows as a clip, and notes can be edited across them. The toolbar's right end names the clip in view; it turns orange with "No MIDI take" when nothing is open.

Floating, docked, scaled #

The help key #

F1 opens this manual in your browser at the section for the item under the mouse: a toolbar button, the lane, an open submenu, a window. › Manual opens the first page. The key is the action Open the manual for the item under the mouse in the ReaFruit MIDI Editor section, so it can be rebound like any other.

Address. The key opens the folder the manual was published to. A local copy works too: set the ExtState key docs_url in the FL_PianoRoll section of reaper-extstate.ini to the folder holding index.html, as a web address or a path such as C:\ReaFruit\manual. If no address is set, the key says so.

The editor window #

The editor window with the velocity lane open
  1. Toolbar
  2. Ruler: bar numbers, the loop section, the playhead; the tempo flag lane when shown
  3. Corner cell: note colour and articulation
  4. Piano keys
  5. Note grid
  6. Snap badge
  7. Splitter
  8. Lane stack (velocity shown)
  9. Target name: the clip in view

Layout #

  1. Toolbar. The gear menu, snap and scale, the six tools, the note modes and the box sessions. See Toolbar.
  2. Ruler. Bar numbers that follow REAPER's ruler, the loop section in red, the playhead, and the flag lane for tempo changes when it is switched on.
  3. Corner cell. The note colour and articulation selector. See Colours and articulations.
  4. Piano keys. Preview, select by pitch, rename. A note-name strip appears when the track has note names.
  5. Note grid. Notes, ghost notes, clip bands, chord names, the bass threshold line and the snap badge in the top right corner. Parameter boxes appear in the bottom right.
  6. Splitter. Drag to resize the lane; drag it shut and a thin grab bar remains.
  7. Lane stack. Velocity by default. Up to four lanes, each with its own control. See Lanes.
  8. Target name. The clip in view.

Files dropped anywhere on the window import: see Drag and drop.

Piano keys #

GestureEffect
ClickPreviews the key. Drag glides across keys.
Ctrl + clickSelects every note of that pitch. Shift + Ctrl adds them to the selection.
Ctrl + dragSelects a range of pitches. Shift + Ctrl adds.
Right-clickRenames the key. See Note names.
Wheel, Ctrl + wheelScrolls, zooms vertically.

In Sheet Music Mode the column widens to show clefs, the key signature and the meter.

Waveform background #

The Waveform button at the toolbar's right end draws an audio track's silhouette behind the notes, for transcribing by eye. Its arrow picks the track and adds a Pitch line, the detected pitch drawn over the keys. The same switches sit under › View › Waveform. For an automatic transcription see Audio to MIDI.

There are no scrollbars or zoom buttons. The view moves with the mouse and the keyboard.

GestureEffect
WheelScroll vertically. Shift + wheel scrolls horizontally.
Ctrl + wheelZoom horizontally around the cursor. Ctrl + Shift + wheel zooms vertically.
Middle-dragPan.
PgUp / PgDnZoom in and out on the timeline.
Arrow keysPan the view. Home jumps to the project start.
SpacePlay or stop, even in the middle of a drag.
FScroll with playback. › View › Playhead position chooses whether the playhead stays where it was placed or travels to 25, 40, 50 or 75 % of the view.
Frame rate and other scripts. REAPER runs every deferred script, every extension and ReaImGui's own drawing from one timer, so a faster editor can mean a faster everything. On Windows, › Advanced › Split clock (on by default) draws every second editor frame itself, and the rest of REAPER runs at half the chosen rate: 60 fps leaves other scripts at their normal 30, 90 raises them to 45, 120 to 60 and 180 to 90. With the split clock off, and on macOS and Linux, the whole timer runs at the chosen rate, so 60 fps already doubles every script's tick rate. If another script misbehaves at a high rate, choose 60.

Toolbar #

The toolbar strip
  1. Gear menu
  2. Snap
  3. Scale lock and the root & scale menu
  4. Draw
  5. Paint
  6. Delete
  7. Mute
  8. Slice
  9. Select
  10. Chop
  11. Slide mode and its menu
  12. Vibrato mode
  13. Chord stamp
  14. Humanize
  15. Strum
  16. Quantize
  17. Swing

Hover any item for a one-line tip showing its current key. Items that open a menu carry a small arrow.

Items #

ItemKeyWhat it does
GearOpens the menu: File, Edit, Tools, View, Toolbar, Scripts, Advanced, then Manual, View Shortcuts, Mouse modifiers, License and About. See the gear menu reference.
Sheet musicTabSwitches to Sheet Music Mode. Hidden by default; the key works regardless.
SnapThe grid notes snap to: Line (the visible grid), none, 1/6 to 1/2 step, Step, 1/6 to 1/2 beat, Beat, Bar. Holding Alt while dragging ignores it. See Snap and scale.
ScaleThe icon toggles Scale lock; the arrow picks the root and scale, lists detected scales, ReaScale files and the flat-names option. In the menu, Alt shows each mode's equivalent root.
Draw, Paint, Delete, Mute, Slice, SelectP B D T C EThe six tools.
ChopCtrl+UCuts the selected notes into grid pieces: the current snap, a fixed size, or a ghost track's rhythm. The key chops at the current snap. See Chop.
SlideSSlide mode: new notes bend from the previous pitch. The arrow sets the bend range for this clip, MPE for this track, and the tuning. See Slides and vibrato.
VibratoVVibrato mode: a note's interval is the depth, its length the ramp-up, its velocity the rate.
Chord stampAlt+TDraw whole chords. Opens the stamp's parameter boxes. See Chord stamp.
Humanize, Strum, Quantize, SwingAlt+H Alt+S Alt+Q Alt+Shift+SOpen a parameter box session with a live preview.
Target nameThe clip in view. Orange "No MIDI take" means nothing is open.
WaveformThe icon shows or hides the waveform background; the arrow picks the track and the pitch line.

In Sheet Music Mode the roll-only items step aside and the tool slot becomes the note-entry strip.

Customising #

Tools and modes #

A tool decides what a plain click and drag do on the grid. A mode changes what a drawn note is (a slide, a vibrato, a chord) or adds a way of selecting. Modes stay on across tool changes.

The six tools #

Pick a tool on the toolbar or with its key. The table shows the default gestures; Alt makes any move, clone, insert or resize ignore the snap grid.

ToolClick a noteDrag a noteClick empty gridDrag empty gridDrag a note's edge
Draw PGrab it. Its length, colour and lane values become the defaults for new notes. Shift: adopt those settings without selecting.Move. Shift: clone.Insert a note of the default length, or the stamped chord. Shift: a one-cell note.Move the new note. Shift: set its length, which becomes the default.Resize. Shift: clone.
Paint BAs Draw.As Draw.Insert.Paint a row of notes along the drag.Resize.
Delete DErase the top note under the cursor.Erase every note swept.Erase sweep.Erase sweep.
Mute TMute or unmute it.Mute sweep.Mute sweep.Mute sweep.
Slice CSplit it at the cursor.Draw a cut line; release to slice every note it crosses.Cut line.Cut line.
Select ESelect it. Shift: toggle.Deselect all.Marquee. Shift: add to the selection.

Gestures in every tool #

GestureEffect
Ctrl + click a noteSelect only that note. Shift + Ctrl: toggle it.
Ctrl + dragMarquee. Shift + Ctrl: add to or remove from the selection; the first note touched decides which.
Right-click a noteErase it.
Right-dragErase every note swept. Alt + right-drag: audition line, which plays the notes it crosses.
Double right-clickJump to the ghost clip under the cursor. Held, it mutes the note until released.
Middle-dragPan.
Alt + wheel over a noteVelocity, or a vibrato's rate. Shift + Alt: slide or vibrato tension. Ctrl + Alt: vibrato depth.
Alt + wheel over empty gridNote colour. With the chord stamp on, its inversion. Ctrl + Alt: chord stamp type.
Drag the stretch chipThe small handle at the selection's end stretches the selected notes in time. Alt snaps the end.
Esc during a dragCancels it and puts the notes back.

Chord stamp #

The chord stamp's boxes
  1. Power and close
  2. Chord
  3. Add
  4. Inversion
  5. Bass

Alt+T or the toolbar button. While the stamp is on, Draw and Paint place whole chords: the clicked pitch is the root. Its parameter boxes set the Chord type, Added notes, the Inversion (Auto, or a fixed number up or down) and a Bass note one or more octaves below. The power button on the boxes silences the stamp while they stay open; any edit switches it back on. Over empty grid, Ctrl+Alt + wheel changes the chord type and Alt + wheel the inversion. The snap badge in the grid's corner shows the stamp's state.

Magic lasso #

FL Studio's invisible lasso: with no button held, move the mouse in a loop around notes and they are selected when the loop closes. It is off by default. › Edit › Magic lasso (notes) turns it on for the grid, Magic lasso (velocity lane) for the lane's handles. Hold L to see the path; while L is held the lasso works even with the options off. Shift adds the circled notes to the selection.

Pattern mode #

Hold ` (the key left of 1). Every clip becomes a handle wearing its name; drag the handles to move clips. Release the key to return to notes.

Bass threshold line #

Alt+B or › View › Bass threshold line draws a horizontal line across the grid labelled with its pitch. Notes below the line count as bass notes: when chords are named, a note under the line is the bass of a slash chord rather than a chord tone. Drag the line to move it. Double-click it to turn it off.

Notes #

The note grid with chords, a slide, a vibrato, a muted note, clips and ghost notes
  1. Chord name over the selected chord
  2. Selected notes
  3. Muted note
  4. Slide note
  5. Vibrato note
  6. Clip band and label
  7. Snap badge
  8. Ghost notes from another track
  9. Selection stretch chip

Editing notes #

Deleted notes fade out and new ones ring; › View › Note animations turns that off.

Colours and articulations #

The corner cell with its colour grid open
The corner cell with its colour grid open
The articulation map menu
The articulation map menu

Every note has one of 16 colours, as in FL Studio. The corner cell above the piano keys shows the current colour's number and the articulation mapped to it.

The map submenu also holds the Instrument X link.

Chords #

Slides and vibrato #

The Slide button's menu
The Slide button's menu

Both are drawn as notes and written to the MIDI as pitch bend. S and V switch the modes; only one can be on. With › View › Slide/vibrato curves on, the grid draws the bend each one makes.

Ghost notes #

Other tracks' notes show dimmed behind the clip's own. Alt+V or › View › Ghost notes toggles them; Ghost notes use track colors tints them per track; Ghostable (this clip) decides whether the current clip shows as a ghost in other editors. Double right-click a ghost note to jump to its clip; where ghosts overlap, a list asks which one. Chop can cut notes to a ghost track's rhythm.

Clips #

With › View › Track-level clips on (the default), every MIDI item on the track is a clip in the same view. The grid dims outside the current clip, and each clip has a band with its name. Edits can span clips.

GestureEffect
Drag a clip edgeTrim the clip. Alt ignores the snap.
Double-click a clip edgeGlue the clip to its neighbour.
Drag the labelMove the clip. Shift: drag a pooled copy, which shares its notes. Ctrl: slip the content inside the clip.
Double-click the labelRename.
Right-click the labelMenu: Rename, Copy from another track's pattern, Cut, Copy, Paste in place, Delete, Unpool.
Hold `Pattern mode: every clip is a handle.
Ctrl+G with clips selectedMerge them.

Per-note lane values stay with their notes when clips move or copy; › Advanced › Background helper does that work between frames.

Snap and scale #

The snap menu
The snap menu
The root and scale menu
The root and scale menu

Note names #

The Rename note dialog
The Rename note dialog

› Tools › Note names loads a note-name map onto the track, the same names REAPER's MIDI editor shows: the maps in MIDINoteNames in the resource folder, Load from file…, Save to file…, Rename note… and Clear note names. Right-clicking a piano key renames that key. With names present, the key column grows a strip that shows them; drum maps read as pads.

Ruler and tempo #

The ruler #

Bar numbers follow REAPER's ruler, including a project that starts at a bar other than 1. The loop section shows as a red band.

GestureEffect
ClickMove the edit cursor. Alt ignores the snap.
DragScrub.
Right-dragSet the loop section; drag an edge of it to adjust. A right click inside the loop clears it.
Double-clickClear the loop. Ctrl + double-click adds a tempo change.
Middle-drag, wheelPan, scroll and zoom as on the grid.

Tempo change markers #

The ruler with the tempo flag lane shown
  1. Bar numbers
  2. Tempo change flags with their BPM; the first marker is pinned
The Tempo and Ramp parameter boxes
  1. Tempo in BPM
  2. Ramp on or off
  3. Keep or cancel
Right-click menu of a tempo flag
Right-click menu of a tempo flag

› View › Show tempo change markers (off by default) adds a lane under the bar numbers with the project's tempo map, FL style: a stem and an amber tag at each change showing the BPM, and the meter where it changes. Guide lines run down the grid from each flag. The playhead and the grid follow the tempo map either way.

Lanes #

The velocity lane in value mode
  1. Lane label: click for the lane menu
  2. Handles of the selected notes
  3. One handle per note; click or drag to set values
  4. Corner buttons: Edit as points, add a lane, remove this lane

The lane under the grid edits one control at a time: note velocities, per-note swing, a plugin parameter, a track envelope, a MIDI CC, or the tempo map. A lane works in one of two ways. Value mode draws one handle per note. Points mode draws a free envelope.

The lane stack #

The lane menu #

Click the lane's label.

RowShows
VelocityNote velocities.
SwingA per-note swing override on top of the project's swing.
Last touched FX parameter Alt+AWhatever plugin control you moved last on this track.
Edit as pointsPoints mode for a plugin or envelope lane. CC and tempo lanes are always points.
ShapesThe shape palette.
Track envelopesVolume, Pan, Width, Trim volume.
Project › TempoThe tempo map as points.
MIDI CCThe clip's controller events: the pitch bend, a channel filter, and CC 0 to 127 in groups. A dot marks controllers the clip already uses; "read-only" marks ones the editor writes itself.
one submenu per FXThe plugin's parameters, grouped as the plugin groups them.

Value mode #

One handle per note. For a plugin or envelope control this is per-note automation: the value the control takes when the note plays, which travels with the note when it moves or is copied.

GestureEffect
Click, dragSet the value under the cursor; drag paints across notes.
Ctrl + click / dragSelect the note under the handle; drag selects by value. Shift + Ctrl adds.
Alt + click / dragThe selected notes take the value; drag makes them follow the cursor. With nothing selected, resets.
Right-dragRamp the values along a line.
Ctrl + right-dragScale the selected values; the nearer edge moves.
Alt + right-dragTilt or arch the selected values; the nearer end moves.
Ctrl + Alt + right-dragCompress them toward the top or bottom.
Shift + Alt + right-dragWarp them; the lowest and highest stay.

Points mode #

A MIDI CC lane in points mode
  1. The lane's control: CC1 here
  2. Points; right-click adds one, drag moves it
  3. A segment; drag to bend it

A free envelope, automation-clip style. Right-click adds a point; drag a segment to bend it.

GestureEffect
Right-click empty laneAdd a point. Alt ignores the snap.
Drag a point, right-dragMove it. Shift holds its value.
Click a pointGrab it; an unselected point becomes the selection. Ctrl: select only; Shift + Ctrl: toggle.
Double-click a pointReset it to the control's default.
Drag a segmentBend it. Click or right-click a segment to straighten it.
Ctrl + dragBox-select points. Shift + Ctrl adds. Ctrl + click empty lane deselects.
Right-drag with modifiersThe same scale, tilt, compress and warp transforms as value mode. Shift + Ctrl + Alt stretches the selected points in time.

Point menu (right-click a point): the segment shape into the point (Linear, Square, Slow start or end, Fast start, Fast end, Bezier); Delete point or the selected points; with several selected, Flip values, Mirror values within their range, Reverse in time, Space evenly; and a Value field that accepts dB, %, L/R or the control's own units.

Shapes #

lane menu › Shapes lists the shapes saved in Data\ReaFruit Shapes. Pick one and the pointer carries it: click places it (Alt ignores the snap), drag scales or warps it before it lands, the wheel sets its width in grid cells (Alt: tenths; Ctrl: double or halve), right-drag opens the palette. Save selection as shape… stores the selected points as a new one. Point tool returns to plain editing.

Parameter boxes #

The Humanize session's boxes
  1. Keep or cancel the session
  2. Timing
  3. Velocity, the lane's value
  4. Seed: a die

How they work #

Parameter boxes appear in the grid's bottom right corner, up to nine in a row, whenever a feature has settings to show: a tool session, the chord stamp, the arpeggiator, an import, a script.

Humanize #

Alt+H. Randomises the selected notes. Timing is the largest shift of a start; the second box is the largest change of the lane's current value (velocity by default); Seed is a die: press it, or 3, for a new throw.

Strum #

Alt+S. Rolls each selected chord. Timing spreads the chord's notes in time and its Tension shapes the spread; Velocity ramps the velocities across the chord with its own Tension.

Quantize #

Alt+Q. Strength moves note starts part or all of the way to the grid; Durations keeps the lengths, snaps the ends, or snaps the lengths (2 cycles it); Grid is a snap size or a groove. Ctrl+Q quantises starts fully with no boxes.

Swing #

The swing boxes: Amount, Type, Scope
The swing boxes: Amount, Type, Scope

Alt+Shift+S. Amount in percent; Type is FL Studio's swing curve or a groove file (.rgt) from Data\Grooves, with files that differ only by a percentage folded into one family; Scope applies it to the whole project, this track, or the selection. The swung positions preview on the roll. › Tools › Swing shows the project's amount as a slider and the groove tree; the Swing lane overrides single notes.

Time warp #

Alt+W. One box bends the selected notes' timing over their span: positive values push the notes toward the end, negative toward the start, the first and last staying put. Preview, then Enter.

Arpeggiator #

The arpeggiator's boxes
  1. Power and close
  2. Glue
  3. Pattern
  4. Time
  5. Gate
  6. Range
  7. Repeat

Alt+R or › Tools › Arpeggiator. Per clip, its held chords play as a pattern while the notes stay as drawn. Pattern: Up, Down, Up-down, Up-down ending twice, Up and Down converging, Down and Up converging, Xross, Random. Time 1/4 to 1/32, Gate 25 to 100 %, Range 1 to 4 octaves, Repeat 1× to 4×. The power button switches it off; Glue (Ctrl+Enter) writes the pattern into real notes and switches it off.

Legato #

Ctrl+L extends each selected note to the next note's start. Ctrl+Alt+L, Legato with slides, joins chord changes with MPE slides; › Tools › Legato slides chooses whether the first chord holds or each chord is led into.

Chop #

The toolbar's Chop menu cuts the selected notes into pieces: the current snap, a fixed size from 1/2 bar down, or the rhythm of a ghost track. Ctrl+U chops at the current snap without the menu.

Glue #

Ctrl+G merges selected notes of the same pitch that touch or overlap into one note. With clips selected, it merges the clips.

Sheet Music Mode #

Early work in progress. Sheet Music Mode is the newest part of ReaFruit and still rough. Expect engraving gaps, layout quirks and changes between versions. The notes are the same MIDI either way, so nothing edited here is lost, and the piano roll remains the dependable view.
Sheet Music Mode with note input on
  1. Note-entry strip: input, durations, dot, tie, rest, triplet, insert, accidentals, voices
  2. Clefs, key signature and meter
  3. Input caret
  4. Another track's notes as ghosts
  5. Dynamics row

Tab shows the clip as notation on a grand staff and lets you enter and edit notes MuseScore-style. The same MIDI is edited either way; voices, accidentals, stems, slurs and tuplets are stored as REAPER notation events, so REAPER's own notation editor sees them too.

The view #

Note input #

In Sheet Music Mode the toolbar's tool slot becomes the note-entry strip. N or its first button places the input caret on the staff. Pick a duration, then type pitches.

KeyEffect
7 6 5 4 3 2 1Whole, half, quarter, eighth, 16th, 32nd, 64th. The strip has the same buttons.
A to GEnter that pitch, in the octave nearest the caret, and advance.
Shift + A to GAdd that pitch to the chord just entered.
0A rest.
., +Dot the duration; tie the next note to the last.
Ctrl + 2 to 7Duplet to septuplet of the current duration. The strip's Triplet button is Ctrl+3.
Q / WHalve or double the duration.
RRepeat the last note or chord.
↑ / ↓Move the last note a semitone. Alt+Shift: a scale step. Ctrl: an octave.
← / →Move the caret a note. Ctrl: a measure.
- \ =Flat, natural, sharp. J respells enharmonically.
Ctrl+Alt+1 / 2Voice 1 (stems up) or voice 2 (stems down, its own rests).
Ctrl+Shift+IInsert mode: entering pushes later notes to the right. Ctrl+Delete removes time.
EscLeave note input.

With the transport stopped, notes played on a MIDI keyboard enter at the caret too.

Editing on the staff #

Dynamics and techniques #

The dynamics popup
The dynamics popup
The technique popup
The technique popup

Click the dynamics row under the staves to set a dynamic from that point: pp, p, mp, mf, f or ff. Click the band above the treble staff to set a technique from that point. Both are written to the MIDI and exported to MusicXML.

Articulations on the staff #

The Articulations on the staff window with a string map loaded
  1. The active map
  2. Colour slot: the note colour the row binds
  3. Switch: the keyswitch or CC the map sends for it
  4. Staff symbol: what Sheet Music Mode draws; Auto follows the slot's name
  5. Applies to: single notes for a keyswitch, a span for a CC or plain slot
  6. Label: the text used when the symbol is Text
  7. Apply & save writes the choices into the map; Revert drops them

With an articulation map active, this window gives each colour slot a staff symbol. Open it from › Tools › Articulation › Articulations on the staff… or with Ctrl + click on the corner cell. Each row shows the colour slot, its switch, the staff symbol to draw, whether it applies to the note or to a span, and a label. Apply & save writes the choices into the map, Revert drops them, Map order sorts the rows as the map lists them.

Import and export #

Drag and drop #

Drop a file anywhere on the editor: a MIDI file (.mid, .midi), a MusicXML score (.mxl, .musicxml, .xml), an FL Studio score (.fsc) or an audio file (.wav, .mp3, .flac and the other formats REAPER reads). The same imports sit under › File.

MIDI files #

MusicXML #

The Export selected tracks as MusicXML dialog
The Export selected tracks as MusicXML dialog

FL Studio score #

› File › Import FL Studio score (.fsc)… loads a score saved from FL Studio's piano roll, note colours included.

Audio to MIDI #

› File › Import audio as MIDI… transcribes an audio file into the clip. A popup shows the analysis with a Cancel button; then the result previews with these boxes:

BoxMeaning
ModePoly sustain, Poly decay or Mono. Polyphonic voices land in different colours.
SensitivityHow faint a note still counts.
Shortest note, Shortest glideIn milliseconds: anything shorter is dropped or merged.
GateNotes below this velocity are dropped.
Glides, VibratoWrite pitch movement as slides and vibrato notes.
TempoStretched (the detected tempo becomes the grid) or Real time.
StartFirst note at the clip start, or as played.

› File › Quantize after audio import snaps the result. The waveform background shows the source for comparison.

Hookpad #

Copy chords and melody in Hookpad, then press Ctrl+V in the editor: they paste as notes at the playhead. The editor's own clipboard is used when there is nothing from Hookpad.

Gear menu #

The gear menu
The gear menu

The gear button at the toolbar's left end opens the menu. Rows with a check mark are switches; a right-click applies a row without closing the menu. Keys shown are the defaults.

File #

The File submenu
The File submenu
RowDoes
Import MIDI file (.mid)…Loads a MIDI file into the clip. See MIDI files.
Import MusicXML (.mxl)…Loads a score. See MusicXML.
MusicXML import options ▸Import tempo and time signature; Rename track on part import.
Import FL Studio score (.fsc)…Loads an FL Studio score.
Import audio as MIDI…Transcribes an audio file. See Audio to MIDI.
Quantize after audio importSnaps a transcription to the grid.
Export MIDI file (.mid)…Writes the clip as a MIDI file.
Export MusicXML (.musicxml)…Writes the clip as a score.
Export selected tracks as MusicXML…One score or one file per selected track.
MusicXML export options ▸Piano layout; Leave out slurs; Leave out dynamics; Drop duplicate notes.

Edit #

The Edit submenu
The Edit submenu
RowKeyDoes
Undo, RedoCtrl+Z, Ctrl+YREAPER's undo.
Cut, Copy, Paste, Duplicate, DeleteCtrl+X C V B, DeleteThe selection. Paste lands at the playhead.
Tempo change at cursor…Adds or edits the tempo change at the edit cursor.
Select all, DeselectCtrl+A, Ctrl+D
Magic lasso (notes), Magic lasso (velocity lane)The lasso switches, off by default.
Shift left, Shift rightShift+← / →Nudge the selection one grid step.
Transpose up, down; octave up, downShift+↑ / ↓; Ctrl+↑ / ↓
Preview chords while draggingPlays the chord under a moving note. On by default.

Tools #

The Tools submenu
The Tools submenu
RowKeyDoes
Articulation: … ▸The Instrument X link, the articulation maps (.txt maps, ReaBank banks, none), Label articulation changes, and Articulations on the staff….
Note names: … ▸The note-name maps: the folder's maps, Load from file…, Save to file…, Rename note…, Clear note names.
Swing: … ▸The project's swing amount, the per-track note, Parameter boxes, FL Swing, and the groove files. See Swing.
Arpeggiator: On/Off ▸The pattern, time, gate, range and repeat for this clip. See Arpeggiator.
LegatoCtrl+LExtends notes to the next.
Legato with slidesCtrl+Alt+LJoins chord changes with slides.
Legato slides: … ▸Hold the first chord, or Lead into each chord.
Quantize ▸Alt+Q, Ctrl+QQuantize… with boxes; Quick quantize note starts.
Humanize…, Strum…, Time warp…Alt+H, Alt+S, Alt+WBox sessions. See Parameter boxes.
Chop ▸Ctrl+UCut notes into grid pieces.
GlueCtrl+GMerges notes, or clips.

View #

The View submenu
The View submenu
RowKeyDoes
Scroll with playbackFThe view follows the playhead.
Playhead position ▸Keep where it was placed, or travel to 25, 40, 50 or 75 % of the view.
Smooth scrollingAnimated view moves. On by default.
Parameter boxes: 1× ▸1×, 1.25× or 1.5× boxes.
Ghost notesAlt+VOther tracks' notes, dimmed.
Ghost notes use track colorsTints ghosts per track.
Ghostable (this clip)Whether this clip shows as a ghost elsewhere.
Track-level clipsEvery MIDI item on the track in one view. On by default.
Waveform ▸Pitch line, Show waveform, the audio track.
Slide/vibrato curvesDraws the bend each slide and vibrato makes. On by default.
Bass threshold lineAlt+BSee Bass threshold line.
Show tempo change markersThe flag lane under the ruler. Off by default.
Note animationsFades and rings on edits. On by default.
Sheet music ▸TabSheet music mode; Grand staff for other instruments; Engrave 64th notes; Extend clip while entering.
Frame rate: … ▸REAPER default (about 30 fps), or 60, 90, 120, 150, 180 fps. See Navigation for what the rate does to other scripts.
Prevent dockingKeeps the window floating.

Toolbar #

The Toolbar submenu
The Toolbar submenu
RowDoes
Layout ▸Built-in, or Mirror a REAPER toolbar (Floating toolbar 1 to 16); Customize menus/toolbars… opens REAPER's dialog.
Sheet music, Snap, Scale, Waveform; Draw… Select, Chop; Slide, Vibrato, Chord stamp; Humanize, Strum, Quantize; Swing, Target nameShows or hides each strip item. Greyed while a mirrored layout is in force.
Disable shortcuts of hidden itemsOff by default. On, the key of an item that is not on the strip (hidden, or left out of a mirrored layout) does nothing; the Shortcuts window marks those keys. REAPER-side triggers of the same actions still run.

Scripts #

The Scripts submenu
The Scripts submenu
RowDoes
the scriptsEvery .lua, .eel and .py file in Scripts/ReaFruit, subfolders as submenus; a click runs it. See Scripts.
Run as native MIDI editor script…Runs a script written for REAPER's MIDI editor against this clip.
Key slots ▸Assigns a script to each of eight slots that can take a key.
Open scripts folder, RescanThe folder in the file manager; re-read it.

Advanced #

The Advanced submenu
The Advanced submenu
RowDoes
Background helper (automation follows clips)Keeps per-note lane values with their notes when clips move. On by default.
Split clockWindows: the editor's frame rate runs on its own timer. On by default.
Option+click guardmacOS only: keeps Option-clicks from reaching REAPER's own handlers.
MCP server (LLM access on localhost), MCP port ▸See MCP server and license. Off by default; ports 7323 to 9765.
License…The license window.
Check for updates (daily, when the editor opens), Check for updates nowSee Updates.

Bottom rows #

The About window
The About window
RowKeyDoes
ManualF1Opens this manual. The key opens it at the hovered item's section.
View ShortcutsA window listing every binding as it currently stands, with a button to REAPER's Actions window.
Mouse modifiersThe mouse modifier window.
License…The license window.
AboutVersion and links.

Mouse modifiers #

Every mouse gesture in the editor is a cell in a table: a context (what is under the pointer), an action (which button, click or drag) and a modifier combination pick a behaviour. The tables below are the defaults; the window changes them.

The window #

The Mouse modifiers window
  1. Context
  2. Action
  3. Tool, for the tables that differ per tool
  4. One row per modifier set; click a row to pick a behaviour
  5. Reset this table, or everything

› Mouse modifiers, or the button in the Shortcuts window.

Default tables #

Alt rows are the "ignoring snap" versions of the plain rows unless stated.

Note

ActionPlainShiftCtrlShift+CtrlAltShift+AltCtrl+Alt
Left clickGrab (Draw, Paint); select (Select); erase (Delete); mute (Mute)Adopt settings only (Draw, Paint); toggle (Select)Select onlyToggle
Left dragMove (Draw, Paint); erase, mute or slice sweepCloneMarqueeMarquee add or removeMove, no snapClone, no snap
Right clickEraseNo action
Right dragErase sweepAudition line
Middle dragPan
WheelScrollScroll sidewaysZoomZoom verticallyVelocity (vibrato: rate)TensionVibrato depth

Note edge

Left drag: resize (Draw, Paint); Shift clones; Ctrl marquee; the sweeps for Delete, Mute and Slice.

Piano roll (empty grid)

ActionPlainShiftCtrlShift+CtrlAltCtrl+Alt
Left clickInsert (Draw, Paint); deselect all (Select)Insert a one-cell note (Draw, Paint)Deselect allNo actionInsert, no snap
Left dragMove the new note (Draw); paint (Paint); marquee (Select); the sweepsSet the new note's length; marquee add (Select)MarqueeMarquee add or removeNo snap
Right dragErase sweepAudition line
Right double clickJump to the ghost clip, or hold to muteNo action
Middle dragPan
WheelScrollScroll sidewaysZoomZoom verticallyNote colour (stamp: inversion)Chord stamp type

Selection stretch handle, clip edge, clip label

Ruler and piano keys

Value lane

ActionPlainCtrlShift+CtrlAltShift+AltCtrl+Alt
Left clickSet the valuePick the noteAdd the noteSelected notes take the value
Left dragEdit values (sweep)Marquee by valueMarquee addSelected notes follow
Right dragRampScaleTiltWarpCompress

Automation lane, point and segment (points mode)

Context, actionPlainShiftCtrlShift+CtrlAltShift+AltCtrl+AltShift+Ctrl+Alt
Lane, left click / dragDeselect notesDeselect points / box selectBox select add
Lane, right clickAdd a pointNo actionNo action
Lane, right dragMove the pointMove holding the valueScaleMove holding the valueTiltWarpCompressStretch in time
Point, left clickGrabSelect onlyToggle
Point, left dragMoveMove holding the valueBox selectBox select addNo snap
Point, double clickReset to defaultNo action
Point, right clickPoint menuNo actionNo action
Segment, left clickDeselect pointsStraighten
Segment, left dragBendBox selectBox select addNo action
Segment, right clickStraighten

Right drags on a point or a segment carry the same five transforms as the lane. Middle drag pans everywhere.

Shape tool, sheet, lasso

Keyboard shortcuts #

How bindings work #

The Shortcuts window
The Shortcuts window

Transport and view #

KeyAction
SpacePlay / stop
FScroll with playback
HomeGo to project start
← → ↑ ↓Pan the view
PgUp / PgDnZoom in / out (timeline)
Alt+VToggle ghost notes
Alt+BBass threshold line
Alt+ALane: last touched FX parameter
TabSheet music mode
F1Open the manual for the item under the mouse

Selection and clipboard #

KeyAction
Ctrl+A / Ctrl+DSelect all / deselect
EscClear the selection; with nothing selected, close the editor
Shift+CSelect the notes of the picked colour
Ctrl+C / X / VCopy / cut / paste at the playhead
Ctrl+BDuplicate
Delete, BackspaceDelete the selected notes or points
L (hold)Show the magic lasso's path
` (hold)Pattern mode

Editing #

KeyAction
Ctrl+Z / Ctrl+Y / Ctrl+Shift+ZUndo / redo / redo
Shift+↑ / ↓Transpose a semitone
Ctrl+↑ / ↓Transpose an octave
Shift+← / →Nudge a grid step
Alt+CRecolour with the picked colour
Ctrl+GGlue notes / merge clips
Ctrl+L / Ctrl+Alt+LLegato / legato with slides
Ctrl+UChop to the grid
Ctrl+QQuick quantize note starts
Alt+Q / H / S / WQuantize / Humanize / Strum / Time warp sessions
Alt+Shift+SSwing boxes
Alt+R, Ctrl+EnterArpeggiator boxes; glue the pattern
Alt+TChord stamp boxes

Tools and modes #

KeyAction
P B D T C EDraw, Paint, Delete, Mute, Slice, Select
S / VSlide / vibrato mode

Parameter boxes #

KeyAction
1 to 9Hold with the wheel to change box 1 to 9; a press runs a button box
Enter / EscKeep / cancel a session

Sheet music #

KeyAction
NNote input on / off
7 6 5 4 3 2 1Whole to 64th note
., 0Dotted; rest
Ctrl+2 to 7Duplet to septuplet
Q / WHalve / double the duration
R, JRepeat the last note; respell
↑ / ↓ †, Alt+Shift+↑ / ↓, Ctrl+↑ / ↓ †Pitch a semitone, a scale step, an octave
← / → †, Ctrl+← / →Previous / next note; previous / next measure
- \ =Flat, natural, sharp
Ctrl+Alt+1 / 2Voice 1 / 2
Shift+S / V / N / OStaccato, accent, tenuto, marcato
X, S †Flip stems; slur
Ctrl+Shift+I, Ctrl+DeleteInsert mode; remove time

Sheet note input #

KeyAction
A to G †Enter the pitch
Shift+A to G †Add the pitch to the chord
+ (Shift+= or the keypad)Tie
Esc †Leave note input

Scripts #

ReaFruit adds a ReaScript API (reaper.ReaFruit_*) that reads and writes the open clip's notes, selection, colours, slides, settings and lanes, and can show its own parameter boxes. The functions are documented on the Reference page; this section covers the menu.

The Scripts menu #

Key slots #

› Scripts › Key slots assigns a script to each of eight slots. Each slot is an action, Run script slot N, in the ReaFruit MIDI Editor section, so it can take a key in the Actions window. Slots work with the editor closed too; a script may open it. The Shortcuts window lists the slots with their scripts.

Example scripts #

ScriptDoes
Dump notes to consoleLists the notes with bar and beat, name, articulation and key name.
Select every other noteSelects every other note in time order.
Randomize velocities (boxes)Random velocities within a range, with a die.
Velocity shaper (boxes)A ramp, arch or dip across the selection, with strength, level and spread.
Expression shaper (boxes)Shapes a per-note expression or a MIDI CC curve across the selection.
Humanize timing (boxes)Random timing offsets, starts only or ends too.
Insert chord at mouseA triad at the mouse, scale-aware with Scale lock on. Meant for a key slot.
Slides from overlapsNotes that start over a sounding note on the same channel become slides.
Count notes (EEL2)A minimal EEL2 example.

ReaFruit can mirror a track's notes live into Instrument X and read its articulation list. The link lives under › Tools › Articulation › Instrument X link.

  1. In Instrument X, run the ReaFruit bridge script (ix_bridge.lua, shipped in the tools folder). The status line in the submenu reports when it is seen.
  2. Attach to Instrument X track picks the track there by name; the roster comes from the bridge.
  3. Mirror this track to Instrument X switches the live mirror on. Start offset (QN) shifts the notes; Force push and Force pull resend either way.
  4. Create articulation map from Instrument X turns its articulation list into a map for the colour slots.

MCP server and license #

The extension contains an MCP server, so an AI client on the same computer can read the project, open the editor, select and edit notes, change settings, and write automation. It is off by default, listens only on localhost, and its tools are listed on the Reference page.

Turning the server on #

The license #

The license window
  1. License state
  2. The key
  3. Activate, Re-check, Deactivate

The editor and the scripting API are free. The MCP server's tool calls are the one licensed feature: the first 100 calls are a free trial (status calls do not count), after which a key is needed. A key is a one-time purchase and covers up to five computers.

Glossary #

TermMeaning
ClipA MIDI item on the track, shown as a band in the editor. The current clip is the one the editor was opened on.
Pooled clipA clip that shares its notes with another (REAPER's pooled MIDI); editing one edits both. Unpool separates them.
Ghost noteA note from another track or clip, drawn dimmed for reference.
SlideA note drawn in Slide mode: a pitch bend from the sounding note to the slide's pitch over its length.
VibratoA note drawn in Vibrato mode: its interval is the depth, its length the ramp-up, its velocity the rate.
Stand-inThe MIDI note the editor writes under a slide or vibrato so the host plays the bend; drawn as the curve, not as a note.
Articulation mapA file giving each of the 16 note colours an articulation and its keyswitch.
LaneThe strip under the grid that edits one control: velocity, swing, a plugin parameter, an envelope, a CC, the tempo.
Value mode, points modeA lane with one handle per note, or a lane with a free envelope of points.
Parameter boxA control in the grid's bottom right corner; sessions of them preview an edit live.
SnapThe grid new and moved notes land on. Alt ignores it.
Scale lockKeeps notes on the chosen scale.
Chord stampDrawing whole chords with one click.
MPEMIDI Polyphonic Expression: each note on its own channel, so each can bend on its own.

ReaFruit MIDI Editor v0.9.6-beta · Created by Meistr · Reference