MIDI Library & Live MIDI Capture
Every generation auto-saves with version history, ratings, tags, and search; live MIDI capture turns your own playing into AI context.
DocumentationMIDI Library & Capture
Organization
MIDI Library
Every MIDI clip Aether generates is automatically saved to your local MIDI Library with full metadata. Think of it as a searchable history of every idea you've ever generated. Nothing is lost.
Batches
A batch is one prompt answered several ways, so it is filed as a single card rather than one card per variation. This works the same on both tabs. The card shows how many variations it holds; expand it to see them, each with its own play button and actions menu.
A batch is a group, not a history. Its variations are numbered in the order you asked for them and none is promoted above the others, which is the difference between a batch and the refinement versions described below. The card itself has no play button for the same reason: there is no single clip for it to play.
Ideas & Version History
Refinements stay together, on either tab. When you keep refining a generation in the same chat, Aether saves each take as a new version under a single library entry (an "idea") instead of scattering near-duplicate clips. The row shows the latest version and says which one it is; any entry with more than one version gets a disclosure arrow you can expand to browse the full history and reload an earlier version. Each version row has its own actions menu (its "…" button or a right-click): Add to Chat, Show in Finder, or Delete just that version.
Library Features
- ●Auto-save: every generation is saved as a .mid file the moment it's created
- ●Star ratings: rate clips from 0 to 5 stars with an interactive hover preview
- ●Tags: add custom tags to any clip for organization
- ●Search: matches the clip name and the prompt that generated it, so you can find an idea by what you asked for even if you never named it
- ●Tag filter: narrow the list to a single tag
- ●Sort: by date (newest/oldest), name, rating, or duration
- ●Rating filter: show only clips above a certain star rating
- ●Type filter: show everything, only melodic clips, or only beats. It follows the tab you are on, so Drums opens on your beats and Melodic on your melodic clips
Beats in the Library
The Library sits on the Drums tab as well as Melodic, and every beat you generate is saved to it exactly as a melodic generation is. A batch is one card with a row per variation. Each card carries a small Drums or Melodic chip so the two are never confused, and the Type filter above the list narrows to either.
A beat remembers the MIDI map it was written under. Open it later and it is labelled by that map as it stands now, so renaming a map or moving one of its notes carries through to everything saved under it. If you delete the map, the beat still opens, labelled the way it was saved, and Aether tells you the map is gone rather than guessing.
Opening a beat takes you to the Drums tab. Beats cannot be loaded into the piano roll: their note numbers are drum pad positions rather than pitches, so Aether declines and says where the clip belongs instead.
Add to chat does work on a beat. It becomes the reference for your next drum prompt, the same slot a dropped MIDI file fills, replacing whatever was there rather than stacking. The clip is not loaded and the lanes do not move. Add one from the Melodic tab and Aether says so in a notification, since the confirmation otherwise lands in a chat that tab cannot see.
Per-Clip Actions
Play is always available on every row. The rest of the actions appear when you select a clip, and each button has a tooltip explaining what it does.
| Action | Description |
|---|---|
| Play | The ▶ button at the left of every row plays the clip from the beginning. It is always there, on earlier versions too, whether or not the row is selected |
| Load | Click a clip to load it into the piano roll for preview and editing. Double-clicking loads it and starts playback |
| Add to Chat | Load the clip into the chat and transport so you can keep refining it with the AI |
| Tag | Add or remove your own tags on the clip |
| Open Folder | Reveal the clip's .mid file on disk. If the file has moved, Aether opens the clips folder instead |
| Rename | Double-click the clip name to rename it inline. This renames the whole idea: the folder, every version's .mid, and its metadata |
| Delete | Remove the clip and its .mid file from disk. Asks you to confirm first, since the file is deleted for good |
Input
Live MIDI Capture
Record MIDI from any connected controller or from your DAW's MIDI routing. Aether captures the incoming notes and automatically analyzes what you played.
Auto-Analysis
After capturing, Aether instantly analyzes your performance and detects:
- ●Key & scale: the most likely key and mode (e.g. "C major", "A minor")
- ●Chord roots: the harmonic content detected from the note data
- ●Texture & style: chordal vs. melodic, with arpeggio and syncopation detection
- ●Density & complexity: notes per second plus a 0 to 1 complexity score
- ●Range: lowest and highest note and the span in semitones
- ●Rhythm: average note spacing and whether the timing is steady
- ●Dynamics: average velocity and note duration
Send to Chat
After capturing, send the recorded MIDI directly to the chat as context. Ask the AI to harmonize it, add accompaniment, extend it, restyle it, or use it as a reference for generating something new.
A capture is chat context rather than a library entry, so it is not auto-saved the way a generation is. Anything you generate from it is saved as usual. If you want to keep the performance itself, use it before starting a New Chat.
If a Recording Is Not Picked Up
A loaded clip takes priority over a pending recording, since it is the material the conversation is already about. If you record while a clip is loaded, Aether tells you once: "Recording not attached, the loaded clip is the active context. Start a New Chat to use the recording." Do that and the capture becomes the context.
Capture also honours the Input Channel setting in Settings → MIDI. If notes are not arriving, check that it is set to All or to the channel your controller actually sends on. Very long, very dense takes can drop events, so record in passes rather than leaving it armed for an entire session.