Documentation

Everything the plugin does, and how it decides what to play.

Formats & hosts

Freally MIDI Master is a CLAP plugin. VST3 and AU are projected from it rather than implemented separately, which is what makes it loadable in hosts that do not speak CLAP.

Host Format Status
Ableton Live 12 VST3 Loads and generates
FL Studio CLAP Loads and generates
Reaper · Bitwig · Logic CLAP / VST3 / AU Not yet tested
No DAW Standalone Runs in its own window

The plugin writes notes onto the track you inserted it on and makes the sound itself — the drums through its kit, and each melodic part through its own instrument. You do not have to route it anywhere to hear it.

Installing

⛔ Downloads open at 1.0. There is no installer, no beta and no preview build before then — a plugin that half-works inside somebody's session is worse than one that is not there, so it ships when the QA matrix is green on every host and every OS.

Where the formats live, once 1.0 lands:

OS CLAP VST3
Windows %COMMONPROGRAMFILES%\CLAP %COMMONPROGRAMFILES%\VST3
macOS ~/Library/Audio/Plug-Ins/CLAP ~/Library/Audio/Plug-Ins/VST3
Linux ~/.clap ~/.vst3

The core loop

  1. Pick someone. Type a name into the roster box — artists and genres alike.
  2. Generate. The pattern is built for your project's tempo and key.
  3. Hear it. Press play in your DAW — the notes are already on the track.
  4. Reroll or keep. Every generation carries a seed you can copy back.

The roster

Most MIDI generators think in genres. "Trap" is not "Metro Boomin," and no mainstream tool has heard of OsamaSon. Freally MIDI Master thinks in artists — each one a set of hand-authored style parameters describing hat-roll grammar, 808 slide behaviour, swing, register and section layout.

You find them with one type-to-autocomplete box. Start typing and it narrows as you go — across the mainstream roster, the underground roster, aliases, and typos. Stop halfway and click away and it takes the best match, so you can never be left with nothing chosen. Press the arrow instead and it shows you everything.

The same box lists artists and genres together, each row saying which it is, so you never have to know in advance whether "UK Drill" is a person or a style. Pick one and its details appear directly underneath — era, the genres it works in, the tempo range and key it tends toward, its moods by name, and which parts it writes and which it does not — before you press Generate. Genres are a browse filter, not the unit of generation — though a genre is itself a real style model and generates in its own right.

That last line matters more than it looks. An artist who does not write countermelodies answers that tab with silence, correctly — they do not write them, so nothing is invented for them. Before the pane said so, the only way to find out was to press Generate and stare at an empty roll.

Artist names are descriptive style references only. Nothing in the dataset is copied MIDI, sampled audio, or a transcription of anyone's record.

Moods

An artist is not one sound. Beside the artist is a mood — trap's dark, bounce, melodic and minimal; boom bap's dusty, jazzy and hard; phonk's cowbell, memphis and brazilian. Leave it on Any and each press walks that artist's range; pin one and stay there.

A mood is the same author writing a different kind of record, which is how producers describe their own catalogue. It is applied before any generator runs, so every part honours it — there is no way for the drums to be in one mood and the melody in another.

An artist only offers moods that artist actually does. Moods are inherited down the same lineage as everything else, so there is no path by which one artist's mood could be offered on another. Ask for one a style does not have and it says so by name rather than quietly generating something else.

Your own style, and training it

Original Workflow sits at the top of the left rail, above everything. Start from any artist or genre, adjust the tempo range, swing, hat density, melody density and scales, and save it under your own name. It appears in the roster marked Yours and generates, locks, re-rolls and exports exactly like a shipped artist — because it is the same kind of thing, in the same format.

It inherits everything you did not change, including improvements the artist you based it on gets in a later release. A new style opens seeded from the beat on screen rather than from a blank form.

Star the takes you like as you go. At thirty kept, Train fits a style to them — how many onsets a bar, what register, what shape the line made — and writes those ranges back as an ordinary style model. Your own .mid files can be training material too.

"Trained" means fitted, and there is no machine learning anywhere in it. Nothing is learned from anybody else's music, nothing leaves your machine, and a fit that would only repeat itself is refused with a reason rather than saved. The floor of thirty exists so a style encodes your taste rather than one seed's opinion.

Your samples are only copied if you say so. A style can keep the one-shots you assigned, so they still play after you move or delete the originals. That means a second copy on your drive, so the editor tells you how many files and how many megabytes before anything happens — and the box is unticked. Saving a style copies nothing on its own.

The drum pads

Eight pads sit across the top of the stage, above the piano roll. Each one is a drum lane: its name, what is currently on it, and a dot saying whether you can hear it — green for audible, red for muted.

Press a pad to mute or unmute it. Press Play in its top centre to hear that one sound on its own. Drag a sample onto it from the browser to put your own one-shot there, or double-click to pick a file. The shuffle button re-rolls that pad from the folder you are browsing, and the ✕ puts the built-in sound back.

Every pad's lane name is itself a picker — swap any of the eight for any of the thirty-seven lanes the plugin has. Two pads may share a lane, so you can layer a snare; a third is refused. Your layout is remembered per artist, so coming back to a style you built restores the pads exactly as you left them, with the samples you assigned.

The sample browser

It opens on Categories — one row per place, each saying how much is in it, and you go into them. Instruments and the four Factory Expansions are the shelves of the built-in library; Drum Packs holds the eleven shipped kits and their 407 one-shots; Factory Packs holds the 5,085 MIDI loops, by pack. Under those sit + Add Folder and the folders you have added, by name.

The number on a row is the whole shelf, not what survived the filters, so it does not move when you press a chip. The rows read in alphabetical order in whichever of the eighteen languages you are using. A folder whose drive is unplugged keeps its place and is marked Unavailable in words rather than only in a colour, and it stays removable — a producer who unplugged their sample disk has not left the library.

Inside a place, the arrows above the list walk the folders and the breadcrumb jumps straight to a level. Your library comes back next time you open the app, with or without a project.

The arrow keys walk it. ↑ and ↓ move between rows. On a folder, → opens it and ← shuts it — and on an already-shut folder ← shuts the branch it sits in, so it is a way back out. On a file, those same two keys play it forwards and backwards. Auditioning never starts or stops the transport.

Star anything — a sample, a one-shot or a MIDI file. The star sits to the left of the name: an outline until you press it, then solid yellow. Starred files gather in a list under the tree, and clicking one opens every folder between the root and that file to reveal it. If its folder is no longer one you have added, it opens the file's location in Windows Explorer or Finder instead — so a favourite is reachable whatever your library has moved on to. Unstarring forgets it.

The browser can take the whole rail when you need the depth, and hand it back. Audio and MIDI are kept apart on purpose: a .mid has no waveform to draw and cannot be dropped on a drum pad, and the pad refuses it before you let go rather than failing afterwards.

It holds a real library. A folder with two thousand files in it opens as fast as one with four, because only the rows you can actually see are drawn — scroll and the rest arrive as you reach them. Type in the filter box and the tree narrows to what matches, keeping the folders that lead to it; type a folder's name and you get everything under it. The line beneath the box says which folders were searched, and it means it: the plugin reads one folder at a time, so the filter reaches the ones you have opened and no further. A box that implied otherwise would be lying about what it looked at.

Unplug the drive a library folder lives on and its tab says so, with a Check again beside it. The folder is not dropped from your library — plug the drive back in, press it, and the tree is there. Before this, such a folder simply refused to open, which looks exactly like an empty one.

Dropping a MIDI file in

Hear it first. Select a .mid and the panel lists what is inside it; press Play and it sounds — through a plain built-in instrument rather than whichever artist you happen to have selected, so the same file sounds the same tomorrow. Drum lanes come through as hits rather than as pitches, because a drum lane's note number says which pad fires, not how low it is. It is built on the first press, not when you click the file, so walking a folder of loops with ↓ costs nothing. It never touches your project's transport.

Drag a .mid from the browser onto a generator and its notes land there. Drop it on the Song tab instead and the whole file arrives as an arrangement — sections across the top, parts down the side — and clicking any cell opens that clip in its generator, exactly as drilling into a generated song does. Nothing you already have is overwritten until you choose a cell.

A layered file is separated into bass, melody, countermelody, chords and drums, and every part says why it was routed where it was — "on the GM drum channel", "chords — notes overlap", "lowest voice", "from the file name". A wrong guess is one click to redirect rather than something you discover two bars in.

Name your files and it will listen. A file called …-Bass.mid or …Drums.mid is taken at its word, because that is you saying what it is rather than the plugin guessing. This matters more than it sounds: an 808's MIDI note says which key fires the sample, not how low it sounds, so a bassline routinely sits in melody register and no measurement can tell it from a slow lead. The one thing that can is the name you gave it.

Imported clips adopt your session's tempo. Most exported MIDI carries no tempo at all — the number in the filename is not in the data — and the plugin will not claim one it did not read.

The generators

Five part generators, plus Song Mode. Song Mode is not a sixth generator — it lays out an arrangement and fills the other five in.

Tab What it makes
Drums Kick, snare and off-snare, clap, closed and open hats with roll grammar, ride, crash, tom, rim, snap, perc, shaker, tambourine, cowbell and woodblock — plus the sliding sub. Which of them an artist uses is part of that artist.
Melody Phrase structures — riff loop, question/answer, call/response, long arc — with chord-tone bias on strong beats and per-genre devices
Countermelody Octave echo, bell echo, arpeggio, answer lick and sustained pad, placed in the melody's gaps
Bassline The low end, locked to the drums' sub behaviour
Chords Progressions in the session's key and scale
Song An arrangement that fills the five above in — a mode, not a generator

All five generate, and all five are editable. Drums has a pad grid; melody, countermelody, bassline and chords have a piano roll. A style whose 808 is its bassline says so rather than doubling it with a second low end.

Pitches are chosen as scale degrees and only then turned into MIDI notes, so staying in key is structural rather than filtered for afterwards.

Song Mode

Press Generate on the Song tab and you get a whole arrangement: one of the artist's own song forms, a clip per part per section, and the transitions that make it read as a record — the beat or two of silence before a hook lands, a back-half switch-up, an outro that fades.

A section plays a looping clip. A sixteen-bar verse is a four-bar loop played four times, which is what every DAW's arrangement view draws. Sections of the same kind share one clip, because verse 1 and verse 2 are the same beat — the switch-up exists precisely because that is the rule.

What you can do How
Resize, clone, delete, copy/cut/paste clips Drag either edge, double-click a section header, and the ordinary shortcuts
Re-roll one section R, or the dice on the section header. Locked clips are left alone
Lock a clip, a row or a whole section The padlock on the cell, the part row, or the section header
Hear one cell on its own The headphones on the clip. The view says so while it lasts
Open a clip in its editor Double-click it. Your edits write back into the arrangement
Loop a section, mute or solo a part The repeat icon on the header; the speaker and S on the row
Choose which of the artist's forms to build The picker in the structure row. Absent means they choose
Export One multi-track .mid, or one file per part into a folder

Mute and solo are preview controls. They change what you hear and never the song or the exported file — the same distinction the per-lane audio mute draws. Toggling one mid-playback keeps the marker where it is, so you can check a transition without losing your place in the record.

The transport plays whichever tab you are looking at. There is one schedule: the Song tab puts the whole arrangement on it, and going back to a generator tab hands it back that tab's clip. So the marker you can see is always the one that is moving.

A re-roll stays inside the record. It keeps the mode the song was generated in, the tempo and key it was generated at, and any swing you pinned — and it leaves every other section, including a clone of the one you re-rolled, exactly as it was.

Stems come out as MIDI or as audio, per part or per lane. The audio half used to be impossible and the reason was measured rather than assumed: the shipped kit had no voice for the four melodic parts, so rendering them would have written four silent .wavs and called them stems. The kit covers every generated lane now, and your own one-shots cover the rest. A whole song still writes one .mid per part — rendering minutes of audio needs progress you can watch and a cancel you can press, which is a different job from rendering a four-bar loop.

You can drag a part straight onto a DAW track. Every generated part has a MIDI and an Audio handle in the right rail; turn on Per lane and the drum part becomes one handle per lane, so just the hats can go out on their own. The whole arrangement drags too, as MIDI. Files arrive named trap - Snare - 140 BPM - C# Minor, and the clip's own notes ride on the cursor so you can see what you picked up. Windows only so far — an HTML5 drag inside a plugin's webview is not an operating-system file drag, so each platform needs its own native drag source. macOS and Linux keep Export until theirs is written, and show no drag handle rather than one that drops nothing.

Where a dropped file lives. Dragging spools the file to your temp folder and hands your DAW the path. A dropped .mid is copied into your project by every DAW, so those are cleaned up after a week; a dropped .wav is referenced by path, so those are never deleted — use your DAW's Collect All and Save to keep one for good.

The instrument

It makes the sound as well as the notes. A polyphonic synthesiser with a factory library of 225 instruments across 69 genres, and each of the four melodic generators plays its own — so assigning a different sound to Melody, Countermelody, Bassline and Chords gives you four voices at once, not one shared between them.

Nothing here is a sample library. Every sound is generated from a small address — an instrument, a genre, a variation, an articulation and a tone — so the whole library is a handful of integers in your project file rather than gigabytes on your disk. Thirteen synthesis engines sit behind it: a violin is a bowed-string model and a Rhodes is a physical piano model, which is why their controls behave differently from a pad's.

Every address is a different sound. The twenty-four variations of one instrument in one genre tour that instrument's own range — how long a bar rings, how hard a hammer strikes, where a string is plucked — rather than rolling dice twenty-four times, and the genre reaches the model itself rather than a filter after it: a trap 808 rings and slides where a house kick is tight, and a jazz piano is softer-hammered than a metal one. All 2,729,088 are checked, by rendering them.

The SYNTH tab

The filter, both envelopes, the effects and the master controls for whichever generator you are shaping. The four buttons at the top choose which one — the SYNTH tab is the only tab that is not itself a part, so it has to ask.

Inside a shelf of instruments

Open Instruments or one of the four Factory Expansions and you browse that shelf by genre and family — the genres read alphabetically and the list opens on Trap. It is paged: one genre with no family filter is 5,400 rows. The shelf narrows the list, so opening Factory Expansion 2 and then Keys shows that pack’s Keys instruments and not every Keys instrument in the product.

Clicking a row plays it and nothing more. The clip you hear is the instrument at the note it sounds most like itself on, drawn as a waveform in the preview player under the browser, with a playhead and a running time. ↑ and ↓ walk the list and play whatever they land on, so you can hear your way through a family without touching the mouse.

Putting one on a generator is a separate press — the Use in… button under the list, or Ctrl/⌘ + ▶, both of which land on the tab you are looking at. Choosing an instrument clears the reverb, drive, gain and envelope the previous one was wearing, so what the generator plays is what the preview played. You should not have to reach for a knob to get the sound you just heard.

Drums go to drums and instruments go to generators. A stock instrument is a synth patch and a drum lane plays one-shots, so the shortcut refuses the pairing rather than doing something surprising with it. Ctrl + ◀ plays a sample backwards in the preview and will not put it into a generator that way — reversing a note is the piano roll's job.

The keyboard

Toggle it from any tab. Click and drag across the keys — how high up the key you press sets the velocity — or use the typing bed. The typing bed stands down while a text field has focus, so searching for an artist does not play notes at you.

Moving the octave or the range sends an all-notes-off, so a held note cannot be stranded by the keys under it changing.

Playing it in from hardware

Settings → MIDI input. A channel filter (or all channels, which is the default), transpose in semitones, an octave shift that stacks with it, the pitch-bend range, and a velocity curve — below the middle a light touch comes out louder, above it you have to press harder.

A note transposed past the ends of the keyboard is dropped, not wrapped. A wrapped note is a wrong note, and nothing on screen would tell you it happened.

Notes you play in are yours. They are never analysed, never become part of a style, and never train anything — the same rule a MIDI file you import lives under.

The knobs on the generator page

Reverb, delay, drive, volume and pan for the part you are looking at, with the same numbers in the per-part editor in the right-hand rail. They are one set of controls shown twice, not two that have to be kept in step.

Volume, pan and the envelope belong to the lane, so they work whether that part is playing a factory instrument or a one-shot of your own. Reverb, delay and drive are applied to the instrument's own effects, so they appear only when a factory sound is loaded — over your own sample there would be nothing for them to reach, and a control that changes nothing is worse than one that is not there.

Saving a sound

Shape an instrument, then save it under a category and a name you choose. They are listed under those categories on the SYNTH tab.

A sound is not a preset. A preset in the right-hand rail is a saved session — an artist, a seed and any pins. A sound is an instrument. They are kept in separate places and never appear in one list.

PACK — the sample rack

Pick a genre and an instrument, choose how many, and Generate. Up to 25 one-shots are rendered offline, each trimmed and fade-shaped so it does not click, with anything that came out near-silent thrown away before it reaches the rack.

Play any slot to hear it. Swap re-rolls one slot without touching the others, × removes one, and Export writes whatever is left — with an optional normalize. The render happens in the background with a progress bar and a Cancel, so your DAW's window never stops drawing.

Bounced audio

Settings → MIDI input, below the input settings — both are about what crosses between this plugin and your own gear. WAV or AIFF, 16-bit, 24-bit or 32-bit float, at 44.1, 48, 88.2, 96, 176.4 or 192 kHz.

Choice When
WAV 16-bit The default, and what this plugin has always written.
WAV 24-bit What most producers expect from a bounce. Six more dB of usable range.
WAV 32-bit float Keeps anything that went past full scale, so a hot bounce can still be pulled back down.
AIFF 16 or 24-bit For a workflow that wants it. Integer only — AIFF has no float form here.

A loop you drag into your DAW is always a 16-bit WAV, whatever this is set to. A dragged loop has to carry its own tempo so it lands warped to the right speed instead of your project's, and only a WAV can hold that. This setting is for files you save, where you chose the destination.

Getting it into your DAW

Three roads, and which one you want depends on what you are doing. The plugin plays on its own track, drags files out, or exports them to a folder.

1. Just play it

The plugin emits MIDI onto the track it is on, and it also makes the sound itself — the drums through its kit and each melodic part through its own instrument. Press play in your DAW and you hear the beat without routing anything.

If you would rather your own instrument played the notes, route the plugin's MIDI output to it the way your host does that, and turn the part's own sound off by leaving no instrument assigned to it.

2. Drag a clip out

Grab a part chip and drag it onto a track. You get a .mid by default, or audio if you switch the chip. Dragging the whole arrangement gives one file per part.

Dragging is Windows only for now. On macOS and Linux the chips do not offer it, because a control that cannot work is worse than one that is not there. Use Export instead — it produces the same files.

A dragged audio loop carries its own tempo, so it lands warped to the speed it was made at rather than to your project's. That is a WAV thing specifically, which is why a dragged loop is always a 16-bit WAV whatever the export format is set to.

3. Export to a folder

Choose a folder and get one file per part — MIDI, or audio in whichever format you set. This is the road that works on every platform, and the one to use for a whole arrangement.

Per host

Host Format to install Details
Ableton Live 12 VST3 Live does not read CLAP. Drop a .mid onto a MIDI track; Live makes one clip per track from a multi-track file.
FL Studio 21.2+ CLAP (or VST3) Reads CLAP natively. A multi-track .mid lands on the playlist as separate channels.
Reaper CLAP or VST3 Takes both. Reaper asks how to import a multi-track file rather than guessing.
Bitwig CLAP CLAP is its native format.
Logic Pro AU macOS only. Logic reads neither CLAP nor VST3.

Two of these rows are verified and three are not. Ableton Live 12 and FL Studio have been loaded and generated in; Reaper, Bitwig and Logic have not been opened yet, so their rows describe what each host documents rather than what anyone has watched happen. When one of them is run, docs/daw-matrix.md is where the result goes.

Tempo, key & auto-sync

The plugin reads the host's tempo and time signature every block. Trap authored at 140 comes out at 92 in a 92 BPM project — because a clip generated at the artist's tempo does not fit the song you asked for.

Precedence

  1. Your pin wins. Pin a tempo in the session chips and it beats everything.
  2. Then the host. With auto-sync on, the DAW's tempo is used.
  3. Then the artist. With auto-sync off, the model's own authored tempo stands.

A pin is held inside the range the artist works in. The BPM box stops at the range shown in the panel — drag or type past it and it settles at the edge — and switching to an artist who cannot reach your pin brings it to their nearest tempo rather than generating something they never play. Typing is only corrected when you leave the box, so 1 on the way to 140 is not rewritten under your cursor. The host is never held to it: a project's tempo is the project's.

The scale chip offers the scales that artist writes in. A mode is what carries their character, so a scale picked on one artist is handed back to the model when you move to another who does not use it. The key chip is deliberately not restricted — a key is transposition, the same music at another pitch.

Auto-sync is a session setting saved with your project — three states, not two. Turning it off is how you reach the artist's authored tempo from inside a running project.

Seeds & reproducibility

Every generation has a seed. The same seed, artist and session always produce a byte-identical pattern — on any machine, on any day. Copy the seed from the chip, paste it back, and the beat returns.

Leave the seed box empty to get a fresh one each time; the chip then shows the seed that was actually used, so you can copy a generation you liked even though you never typed a number.

Determinism is enforced by the test suite, not merely intended — it is also why a saved project can restore a beat without storing a single note.

Presets

A preset is a named session — artist, seed, bars and pins. Factory presets are compiled into the binary; your own are written to the platform's per-user data directory, so they outlive any one project.

No factory preset pins a tempo. A pin is an instruction from the user, and a shipped file is not the user — a factory preset that pinned one would override your DAW the moment you loaded it.

The pattern library

Name a pattern you like and it is there next time — in any song, in any DAW. Each one is its own JSON file in the platform's per-user data directory, so a bad save costs one loop rather than the shelf, and you can back them up, sync them, or hand one to someone else by copying a file.

A saved pattern is notes, not sound. The kit is deliberately not stored, which is what makes “use it with any sounds you want” true rather than a claim: load the pattern, swap the kit, and the same performance plays through different samples. It is also how a pattern survives a crash — a plugin lives in someone else's process and dies with it.

This is not a preset and not the project. A preset is a starting point and stores no notes at all, because the engine regenerates them; the project remembers this song. A saved pattern is the take you kept.

Your takes, and locking a drum

Every generation of the session is kept, from the first, counted separately per generator. ◀ and ▶ walk them, and stepping back brings the whole setup: the artist, the mood, the seed, the bars and the pins — not just the number.

The readout shows the tempo and key that were actually used, which is not always what you pinned: a beat made while your DAW sat at 92 was made at 92, and tempo changes the notes.

And it outlives the session. Click the take counter — the “3 / 40” between the arrows — and every generation you have ever made is there, grouped by artist, each row saying how long it is, how fast, and when you made it. Pick one and it comes back. The arrows answer “back one”; this is for the beat from Tuesday night whose seed you never wrote down.

It is kept per user rather than in the project — where you have been generating is a fact about you, not something to ship inside a song sent to a label — and it survives an update. Each artist keeps its own run of takes, so an evening spent on one cannot push out the ones you saved from another. Clear it whenever you like: it is a record of what you have been making, and being able to empty it is not a convenience.

⚠ Choosing a take restores it, the same as the arrows do — so anything you have drawn by hand on the current clip is replaced. It is not a preview.

Lock a lane and a re-roll cannot touch it. Click the padlock on any drum row, or press L with the row focused, and Generate rebuilds everything else around it note for note. A lock changes nothing about what is exported.

Session state

The plugin saves your artist, seed, bars, pins and window size into the DAW's own project file. Reopen the song and the session comes back. There is no file to manage and no path to choose.

The pattern itself is not stored — the inputs are, and the engine is deterministic, so restoring is a regeneration. That is why a saved project costs bytes instead of hundreds of kilobytes of notes.

Keyboard shortcuts

Every shortcut the plugin and the standalone have, grouped the way the in-app panel groups them. Press Shift + ? in the app to see the same list with your own remappings, which this page cannot know about.

Where a row shows Ctrl / ⌘, that means Ctrl (Windows/Linux) or ⌘ (macOS).

Keys Action
Transport
Space Play or pause
F9 Start or stop recording
F10 Metronome on or off
K Show or hide the right rail
E Swap between the file explorer and the roster
Shift + ? or F1 Show this panel
View and layout
V Show or hide a panel
Shift + V Focus mode - rails and tabs away
Generate
Enter Search the roster
G Generate this part
Shift + G Generate every part
1 – 6 Pick a generator
R Re-roll the selected clip
L Hold this drum across a re-roll
← / → Step through your takes
Editing
Ctrl / ⌘ + A Select all
Ctrl / ⌘ + C Copy
Ctrl / ⌘ + X Cut
Ctrl / ⌘ + V Paste
Ctrl / ⌘ + Z Undo
Ctrl / ⌘ + Shift + Z or Ctrl / ⌘ + Y Redo
Ctrl / ⌘ + D Duplicate
Delete Delete
Esc Deselect
Notes
↑ / ↓ Transpose a semitone
Ctrl / ⌘ + ↑ / ↓ Transpose an octave
← / → Nudge in time
* Stretch to double length
/ Compress to half length
Ctrl / ⌘ + R Reverse the selected note
Drum grid
Ctrl / ⌘ + 3 Triplet in this cell
Ctrl / ⌘ + 5 Quintuplet in this cell
Ctrl / ⌘ + 7 Septuplet in this cell
Alt + click Copy bar 1 over this bar
Shift + drag Drag a box to select cells
Ctrl / ⌘ + click Add a cell to the selection
Right click Roll palette for this cell
Right click + drag Wipe every cell dragged over
Sample browser
← / → Play the sample backwards / forwards

Undo is unlimited within a session and covers the artist, seed, bars, pins, each generation and the arrangement — one stack, whichever tab you are on. Inside a text field your system's own undo takes the shortcut, so the seed box can still un-type a character.

The standalone

The same plugin, in its own window, with no DAW involved — useful for trying things quickly and for machines where you are not producing.

It cannot sync to your DAW, and it never will — there is no host, so there is nothing to sync to. A fixed tempo can be set on the command line, which exercises the same path, but real host tempo, meter and playhead need a real host.

And it reports no project tempo unless you ask for one. Without --tempo there is no project, so nothing overrides the artist: pick a model and you hear it at the tempo it was authored at. Pass --tempo and that fixed value behaves exactly as a host's would.

Privacy & the network

No accounts. No telemetry. Nothing about you, your projects or your output is transmitted. Generation, playback, import and export are entirely local.

The plugin makes no outbound connections at all. The two that used to exist — a launch-time update check and an opt-in crash report — belonged to the desktop app and were removed with it. A plugin is installed and updated by whoever installs plugins, and no HTTP client is compiled into it. Two build gates check this on every commit rather than trusting the claim: one reads the dependency graph and fails if an HTTP client is linked at all, the other drives the real interface through a generation and fails if the browser attempts a single request off the machine.

The web app is delivered over the network; what you make is not. A page has to be fetched — the app itself, and the style data it generates from. That is the whole of it. Generation runs on your own machine, in your own browser; your beats, your seeds and anything you import stay there and are never uploaded. After one visit the tab works with the network switched off.

Collaboration is the one exception, and only if you use it. Rooms connect your machine directly to the people you invite. If you save someone as a buddy, a small service can tell you when they are online — and it is told nothing worth knowing: a key that changes every few minutes, and an address encrypted to a secret only the two of you hold. It cannot read it, cannot list who is there, and cannot work out who knows whom. Turn it off, or never save a buddy, and you paste a code instead. The collaboration service is reached by a separate program, never by the plugin your DAW loads, which is what keeps the sentence above true.

Crash reports are written to a folder on your own disk and are never sent anywhere. They exist so you have something to attach to a bug report if you choose to — nothing reads that folder but you.

Questions people actually ask

Every answer here is a restatement of something already written down in the licence, the name disclaimer or the credits. Nothing on this page is a new promise.

Is this AI?

No, and not in the weak sense of "we do not call it that". There is no machine learning anywhere in the product — no model, no training data, no inference, no neural network of any kind. The engine reads a set of hand-written numbers and rules and builds a pattern from a seeded random generator. You can read those numbers: they are plain JSON, and every one of them is a tempo range, a swing percentage, a note density, a roll grammar or a chord tendency.

So how can it sound like a specific artist?

Because a producer's habits are describable. How often the hats double up, where the snare lands, whether the 808 slides and how far, which chord families turn up and which never do — that is written out by hand, from published interviews, technique articles and listening. It is the same kind of document as a drum lesson that teaches you a shuffle, and it works for the same reason.

Are the artists involved? Did they approve this?

No. No artist, producer, label or publisher named in this software has endorsed, sponsored, approved, reviewed or is affiliated with it in any way. Their names appear as descriptive references to a recognisable style and nothing else — the same way a chord chart might be labelled "bossa nova". No name is used as a brand or as a badge of origin for this software or for anything it generates.

Does it contain their music?

No. A style model holds no MIDI, no audio, no transcription of any recording and no melodic or lyrical content from any song. There is no feature that recreates a specific track, and there never will be — that is a permanent design decision rather than something not built yet.

Can I release what I make? Can I sell it?

Yes. What the generator writes is original by construction: it was assembled from rules and a number, with no recording anywhere in the chain, so there is nothing in it that came from somebody else's work. You own your output and you do not owe anything to anyone for it — see the licence below for the exact wording.

The ordinary caveat applies and has nothing to do with this software: if you drop a sample you do not have the rights to onto a pad, that sample is still not yours. The notes are yours; a recording you imported is whatever it already was.

What if it accidentally writes a melody that already exists?

It screens for that. Every melody and countermelody is fingerprinted by its shape — the run of intervals and the gaps between them — and checked against a table of well-known melodies before you hear it. A match is thrown away and drawn again.

Being straight about what that covers. The table holds public-domain melodies — traditional, hymn and classical — because building it from anything else would mean this software carrying somebody else's notes, which is the one thing it must never do. So the screen catches an accidental quotation of a famous tune, which is worth catching. It is not the reason your output is original. That is everything in the two answers above.

Does it phone home?

No. See Privacy & the network above for the full answer, including the two things that do touch a network and why: fetching the web app, and collaboration if you choose to use it.

Where did the drum loops and the one-shots come from?

Both are ours. The 5,085 shipped MIDI loops were written by this product's own generators from its own style models — no loop was extracted from anybody's audio or MIDI. The preview one-shots are synthesized from oscillators and filtered noise, so there is no recorded material in them at all and no third-party licence attached to them.

Can I use it offline?

The plugin and the standalone never needed a network in the first place. The web app fetches itself once and then works with the network switched off.

Reporting a bug

There is no reporter that phones home, and there never will be. What there is instead is a folder: when either half of the plugin falls over, it writes what happened to your own disk, and you decide whether to send it.

OS Where the reports are
Windows %APPDATA%\Freally MIDI Master\crashes\
macOS ~/Library/Application Support/Freally MIDI Master/crashes/
Linux $XDG_DATA_HOME/freally-midi-master/crashes/, or ~/.local/share/freally-midi-master/crashes/

The filename says which half went: -panic is the audio engine with a backtrace, -page is the interface, and on Windows -fault is a hardware fault such as an access violation. The newest twenty are kept, so the folder never grows without limit and you can attach the lot to a bug report.

If the interface is what broke, you will see a panel with a way back into your session rather than a dead rectangle — the arrangement lives outside the part that crashed, so pressing the button redraws your own work. Report it anyway; the log is already on disk.

So: when you report it, say which host, which format (CLAP or VST3) and which OS version, and attach the newest file from the folder above. If the crash took the whole DAW down, attach the log your DAW wrote as well — when the host dies there may be no window of ours left to write from.

Licence

Proprietary, All Rights Reserved; the source code is private. You may not redistribute it or ship derivatives. It is not open source.

The music you make with it is yours, with no royalty and no attribution requirement.