Menus
The menu bar belongs to the operating system - on macOS it sits at the top of the screen, where the first menu is the application menu named MusicStation; on Windows and Linux the same groups form an ordinary menu bar inside the window. MusicStation rebuilds the menu whenever the interface language changes, so every entry follows the language at once, without a restart.
Two kinds of entries exist:
- Application entries - About MusicStation, What's New, Settings…, Keyboard Shortcuts…, Context Help, MusicStation Manual and the four entries of the Project menu. Their clicks are carried out in the window.
- Predefined entries - Undo, Redo, Cut, Copy, Paste, Select All, Toggle Full Screen, Minimize, Zoom and Quit MusicStation. They are standard items of the window system: it runs them itself on the focused control or on the window, and their accelerators come from the system as well.
Accelerators are written with the macOS symbols (⌘ Command, ⇧ Shift, ⌃ Control, ⌥ Option). On Windows and Linux the same bindings use Ctrl instead of ⌘ unless an entry says otherwise; Redo is Ctrl+Y there. The menu groups in display order are MusicStation, Project, Edit, View, Window and Help.
About MusicStation
The first entry of the MusicStation menu. It opens the About dialog with the product name, the version of the running build, the build commit, the control-protocol version and the release-note history of every bundled version (see About and What's New). It has no accelerator. While the "What's New" dialog is open, opening About replaces it - the notes count as seen either way.
What's New
Opens the release notes of the running version: what is new, what was improved and what was fixed. MusicStation shows this dialog on its own once after an update; this entry opens it again at any time. Closing it marks the notes as seen, so the same version does not open them again on the next start. Accelerator: ⌘⇧W (Ctrl+Shift+W).
Settings…
Reveals the settings column of the window and hands the keyboard focus to it; it does not open a dialog. The entry scrolls the column into view and its focus ring is shown. Accelerator: ⌘, . Settings… is the menu route to the settings section on the left of the window (see Settings).
Keyboard Shortcuts…
Reveals the Keyboard shortcuts section at the end of the settings column and hands it the keyboard: the section is scrolled into view, its focus ring is shown, and every shortcut of the window can be changed there (see Keyboard shortcuts). Like Settings… the entry opens no dialog - the editor is part of the window, and playback keeps running while you remap a key. The entry has no accelerator of its own: an accelerator the operating system resolves could not be remapped in the editor, so this one entry is picked with the pointer or with the keyboard navigation only.
Quit MusicStation
Closes the window and ends MusicStation. It is a predefined item of the window system and therefore follows the platform's convention - on macOS the entry sits in the MusicStation menu with the accelerator ⌘Q, on Windows and Linux the same entry is the last item of the application menu. The application asks no questions before it closes; unsaved work is not kept.
Open…
Asks for a project file with the shell's native open dialog and applies the document at that path to the whole session. The engine replaces the session with the document: every slot the document does not list is cleared - a clip that is sounding stops, without a fade. For the slots it does list, the engine first asks for the size of every distinct source file the document references, and for nothing else (no sample is read, no file is hashed). A slot whose source file is unchanged - the same path and the same size as when it was last read - keeps the clip it has, and its file is not read again. A slot whose file changed size is cleared and decoded again with the bounds of a clip load. A slot whose file is gone cannot be read at all: it stays empty, the open reports it as a failed load, and the loader is never asked for it. The rest of the project is applied either way. It is the same rule a restore follows, and the answer therefore follows once the apply settled, which may take a moment for a large project with changed files. A source file that was replaced by another file of exactly the same size counts as unchanged - that is the price of not reading every source on every open.
The project name appears in the header afterwards, and the unsaved marker stays away while the engine
reports the state as matching its file. A cancelled dialog changes nothing.
If the state differs from its own file - the header shows the unsaved marker - the window asks
before the dialog opens (see Unsaved changes); the answer Save writes the
current state first and opens the other project only once the engine acknowledged the write.
Accelerator: ⌘O (Ctrl+O).
Save
Writes the current state to the file the project already has. A state that has no file yet asks for one first, exactly like Save As…. The engine writes the whole document - the clips with the paths they were loaded from, their loop flags, the tempo, the launch quantisation and the track colours - and reports the path and the format version it wrote.
What a project file is. A project is one file, <name>.mshproj, and it holds exactly the state of
the session: the clips with the path of the audio file each one plays and their loop flags, the tempo,
the launch quantisation and the 16 track colours. The audio files themselves are only referenced,
never copied into the project - so the project stays a few kilobytes however long your recordings are,
and your files stay where you keep them. Because only the path is stored, a file you move or delete is
not found again at that place: its slot stays empty when the project is opened, and the open reports it
(see Open…). The version history lives beside the project file, in the
directory <name>.mshproj.history/ - an index plus one complete document per version (see
Version history). A project written by an older MusicStation is read without losing
anything: it is migrated to the current format while it is read, and the file on disk is only rewritten
in the current format by the next save.
The unsaved marker in the header disappears as soon as the engine reports the state as matching its
file. With the preference Snapshot on save engaged, the save also
stores a snapshot in the version history of the project - the engine records the document it wrote as
the automatic version labelled Snapshot on save, which the History
panel then lists as its newest entry. With the preference off, saving writes
the file and no snapshot. A write the engine cannot carry out - a folder that does not exist, a failing
disk - is answered as an error and changes nothing, so the unsaved marker stays where it is.
Two refusals happen before anything is written. Both change nothing at all - no file, no project, no version - and the reason is shown where the project surface reports a failed command: as the sentence in the header of the History panel.
- A target file from a newer MusicStation. If the file at the target path is a project document that states a format version above the one this build writes, the save is refused instead of overwriting it: this build cannot represent that document and would destroy it by rewriting it. Save As… onto another file is the way out - the newer project stays as it is.
- A snapshot that could not be kept. With Snapshot on save engaged the save owes a version in the version history of the target file. If that history exists and cannot be read - a newer MusicStation wrote it, or its index is damaged - the save is refused, because the snapshot it promised could not be recorded. Save As… onto another file, or switching that preference off for a state that needs no history, is the way out.
A save that did write is never refused afterwards: if the disk cannot take the file of the version, the project file is still written, the save is acknowledged and no new version appears - the version is simply missing, and the engine notes it in its error log. Accelerator: ⌘S (Ctrl+S).
Save As…
Always asks for the target file, suggests the name the project has plus the extension .mshproj (or
the word Untitled for a state that was never saved) and writes the state there. The chosen file
becomes the project's file: the header shows its base name from then on, and the next
Save writes to it without asking again. Cancelling the dialog changes nothing,
and the stored versions of the previous project stay in their own file, where they belong.
Save As… is subject to the same two guards as Save, applied to the target you pick: a file that holds a project document from a newer MusicStation is never overwritten, and with the preference Snapshot on save engaged a version history of the target that cannot be read is refused before anything is written. Both refusals change nothing - the picked file keeps its content, the stored versions stay where they are, and the header keeps naming the project it named before - so another target, or switching the preference off for a state that needs no history, is the way out. Accelerator: ⌘⇧S (Ctrl+Shift+S).
Version History
Reveals the History panel of the window and hands it the keyboard: the panel carries the version timeline of the project - the stored snapshots, their names, notes and dates, and the gestures that create, rename, delete, compare and restore one (see Version history). How it is revealed depends on the workspace you are on: the workspace in effect wins, so a panel it already shows is merely scrolled into view and focused, and one it keeps closed is shown again. Only when the workspace you are on does not know the panel at all does the window look for a workspace of your own that holds it and apply that one - the shipped placement of the built-in Recording and Mix workspaces is a default, not your decision, and is never a reason to rearrange the window. Without such a workspace the panel is shown into the left region of the workspace you are working in, exactly like an entry of the Panels menu. The entry has no accelerator and no version list of its own - it is the reveal gesture of the panel.
Unsaved changes
The question the window asks before another project replaces a state that differs from its file - the
Open… gesture of a project whose header shows the unsaved marker. Its title is
Unsaved changes, and it names the project: The project {name} has unsaved changes. Save them
before opening another project? A state that has no file yet is named Untitled.
Three answers: Save writes the current state first and opens the other project only once the engine acknowledged the write - a save the user cancelled or the engine rejected drops the open instead of losing the changes. Discard opens the other project without writing anything, so the unsaved changes are gone. Cancel does nothing at all. Escape and a click on the area around the dialog are the Cancel answer: a project is never replaced without the user saying so, and a click next to the dialog is not an answer. The dialog is modal, keeps the keyboard to itself and follows a language switch while it is open.
Undo
A predefined item of the window system: the operating system sends the undo to the control that holds the keyboard focus. In this build the interface's own editing commands do not exist yet, so the entry acts on a focused text field - for example the Tempo or the Accent colour field - and is without effect when no such control has the focus. Accelerator: ⌘Z (Ctrl+Z).
Redo
The counterpart of Undo, also a predefined item: it repeats the step that was undone on the focused control. Accelerator: ⇧⌘Z on macOS, Ctrl+Y on Windows and Linux.
Cut
A predefined item of the window system: it removes the selected content of the focused control and puts it on the clipboard, for example the text of the Tempo field. Accelerator: ⌘X (Ctrl+X).
Copy
A predefined item: it copies the selected content of the focused control to the clipboard without changing it. Accelerator: ⌘C (Ctrl+C).
Paste
A predefined item: it inserts the content of the clipboard at the cursor of the focused control - the value of the Accent colour field is committed by leaving it or pressing Enter. Accelerator: ⌘V (Ctrl+V).
Select All
A predefined item: it selects everything in the focused control, so the next Copy or Cut applies to all of it. Accelerator: ⌘A (Ctrl+A).
Toggle Full Screen
Switches the window between full screen and its previous size. It is a predefined item of the window system and therefore follows the platform; on macOS the accelerator is ⌃⌘F. Full screen changes nothing about playback: audio and the transport keep running while the window is resized.
Workspace
The submenu View ▸ Workspace lists the workspaces of the workspace document - the four shipped ones and the ones you saved yourself - and applies one on a press; the fixed entry inside it, Manage Workspaces…, opens the workspace manager. The header of the window carries the same list as the Workspace button next to the Panels menu. The submenu, its entries and the manager are documented in the Workspace chapter.
Panels
The submenu View ▸ Panels opens and closes the panels of the window: one entry per panel this build renders, in the order Browser, Inspector, Session, Settings, History, with a check mark while the workspace in effect shows that panel. It is the menu-bar twin of the Panels menu of the header, and it is documented in the Workspace chapter.
Minimize
Puts the window into the Dock (macOS) or the task bar (Windows/Linux). It is a predefined item of the window system, so it carries the platform's own accelerator (⌘M on macOS). Playback continues while the window is minimised.
Zoom
The entry that changes the window size. MusicStation's own caption Zoom stands on every platform; behind it the window system performs its usual action, which enlarges the window to its preferred size and back again on macOS and maximises or restores it on Windows and Linux. It is a predefined item and has no accelerator. Like every window action it does not touch the audio.
Context Help
The same action as the F1 key: it opens the manual section of the control under the pointer, or of the focused control when the pointer is not over one. The page opens in the language the interface is running in (see Help). Accelerator: ⌘⇧/ - that is ⌘? on most keyboard layouts; Ctrl+Shift+/ on Windows and Linux.
MusicStation Manual
Opens the manual at its contents page in the current interface language, so you can browse the chapters from the page list on the left of the help panel - the same page the Contents button of the help panel returns to (see Contents and Help). The entry has no accelerator.
Workflow: look something up in the manual
- For one control: hover it and press F1, or use Help ▸ Context Help (see Context Help).
- For a chapter: open Help ▸ MusicStation Manual and pick a page from the list (see MusicStation Manual).
- Read on, follow the links inside the page, and close the panel with Escape or the Close help button.
- To see what changed since your last update, open MusicStation ▸ What's New (see What's New).