This is a very early preview. Windows MIDI Sequencer is new, and parts of it are still being built. Things will change, and some things don’t work yet. Save often, and keep a copy of any sequence you care about. If something goes wrong, or you’d like something changed, tell us on GitHub.
This page covers information about a Windows MIDI Services feature and application that will be released to consumers in 2027. It’s currently available for developers.
Windows MIDI Sequencer puts MIDI on a timeline, so you can build a song and play it back to your devices. Each track plays to one device. You can draw notes, set steps in a pattern, let a generator make a part for you, or record what you play. A clip launcher plays clips and scenes live, the way a groove box does.
It’s made for MIDI 2.0. Notes keep their full detail, such as 16-bit velocity, and devices that speak MIDI 2.0 get MIDI 2.0. Devices that only speak MIDI 1.0 still play everything they can.
It doesn’t record or play audio. To play sounds, it uses a synth or a device: the General MIDI Synth built into Windows, a hardware instrument, or a software instrument in another app.

To play a different device, select the track’s name to open Track setup, and pick the device there. To play an app on the same PC, such as a DAW, pick Default App Loopback (A), and set the app to listen to Default App Loopback (B).
To look around first, select File, then Open sample.
Each track plays to one device, on one group and channel. Track setup picks them. While it’s open, it shows the track you selected last, by its name or one of its clips. As is keeps each note on the channel it was recorded or drawn on. When a device has a timing offset set in MIDI Settings, the sequence sends to it a little early or late to line it up. You can turn that off in Clock and sync.
Devices show the picture and description you gave them in MIDI Settings, in the device lists, on each track and in Studio setup. A device without a picture shows one for how it’s connected, such as USB or Bluetooth. On a device with more than one port, such as a MIDI interface, a track shows the name of the port it plays to.
To see what Windows MIDI Services knows about a device, select ⓘ next to it in Track setup or in Studio setup. That shows its groups and whether each one speaks MIDI 2.0 or MIDI 1.0, how early the sequencer sends to it, how often automation goes to it, and what in the sequence uses it. To change a device’s name, picture, description, offset or automation interval, use MIDI Settings.
Folders keep tracks together. Muting or soloing a folder mutes or solos everything in it. Right-click a track for more, such as Pin, which keeps a track above everything that scrolls.
To move a track, drag it by its name. Drop it on a folder to put it inside, or between two rows to put it there. To work on several tracks at once, hold Ctrl and select each one, or hold Shift and select the last one to get every track in between. Drag any of them and they all move, in the same order.
To give a track a color that isn’t in the list, select + after the colors in Track setup, or right-click the track and select Color, then Custom color…. It’s the same color picker as the one for the window’s color.
To combine two tracks, right-click the one to fold in and select Merge into, then the track to keep. The track you keep keeps its device, channel, sound and color. Its clips stay as they are. Where both tracks play at the same time, what they play becomes one clip, and the same note playing twice at once becomes one longer note. Launcher slots are combined the same way, and automation lanes the kept track doesn’t already have move across with everything else.
Most synths have many sounds, such as a piano, strings or a drum kit. A track can pick one of them for you each time playback starts. Select the track’s name to open Track setup, then select Sound under Start-up messages to open the Patch Browser.
The track sends its sound as a program change, with its bank when you chose one, before anything else it sends when playback starts. Start-up messages lists anything else the track sends, in words.
Double-click the edge beside the track names or the launcher, or the bottom edge of a track, to put it back the way it started. Track heights are saved with the sequence. The other sizes are saved with the app, so every sequence opens the same way.
The bar under the timeline shows the whole sequence: a line for each track where its clips are, and the sections by name. The frame on it is what the timeline shows.
The switch at the bar’s left end changes it to a plain scroll bar. Right-click the bar to choose that, or to put it above the ruler instead. Both choices are also under Appearance.
Select Appearance (the gear at the top right) and pick a style. Each one comes in light and dark, following the theme you choose there.
If you pick a window color of your own, Tactile, Aluminum and Vellum take it into the material itself, so they don’t use the backdrop.
There are three kinds of clips:
Right-click the timeline or an empty launcher slot to make any of them. The generators are under New generator.
To move a clip, drag it to another time, another track, or another launcher slot. Hold Ctrl as you let go to place it again instead of moving it. Both spots then play the same clip, so a change to one changes both. Drag a clip from the launcher onto the timeline, or from the timeline into a launcher slot, to place it there too. Hold Shift while you drag to keep the clip on its own track, so it moves only in time, or between that track’s launcher slots.
To cut a clip in two, select the razor (the scissors above the tracks), then select the clip where you want the cut. The cut lands on the grid. Press Esc or select the scissors again to put the razor away. You can also right-click a clip and select Split here. To join clips, select one, hold Ctrl and select the others on the same track, then right-click and select Merge clips. They become one clip, with the same gaps between them.
To make a clip longer or shorter, drag its right end. What happens depends on whether the clip loops. A Linear clip gets longer, with empty bars to draw in, or shorter. A clip set to Loop repeats to fill the space you drag out. To choose, right-click the clip and select Loop or Linear. You can also select the length (like 4 bars) at the top of the clip editor, which has the Loop switch and lets you type an exact length in bars and beats. New notes clips on the timeline start out linear, and clips you make in the launcher start out looping. If a linear clip plays in more than one place, the sequencer asks whether to change only the one you dragged or every place it plays. Changing only one makes it a separate copy, with “(copy)” added to its name. It loses the link mark that shared clips show, so changing it no longer changes the others.
The bar above the piano roll has tools that change notes for you. They change the notes you selected. If you didn’t select any, they change the whole clip. The bar says how many notes are selected, so you always know which it will be. Right-click empty space in the piano roll, or a selected note, to get the same tools there. Right-clicking a note that isn’t selected still deletes it.
Tools with settings open a small panel on the right. The piano roll shows what the tool will do as you change the settings, and nothing changes until you select Apply. Every tool is one step to undo.
To draw velocities as a straight line, hold Ctrl and drag across the velocity lane under the roll. The selected notes under the line, or every note under it when none are selected, take their velocity from the line.
When two notes with the same number overlap on one channel, the bar shows a warning you can select to fix them. Most instruments stop the sound at the first note off, so the second note gets cut short.
Not sure where to start? Templates, at the top of a pattern, has starter patterns, like the presets on a drum machine.
Point at a template to see the tempo the style is usually played at. Using a template doesn’t change your sequence’s tempo.
If the pattern already has steps, the sequencer asks what to do. Replace swaps them for the template. Merge keeps your steps and adds the template’s. Each drum goes on the lane that already plays it, and a drum you don’t have gets a new lane. Where you both have a step, the template’s step is used. Either way, Undo puts the pattern back the way it was.
The drum templates use the General MIDI drum notes. They sound right on the General MIDI Synth built into Windows, and on most drum machines, when the track plays on channel 10.
To hear each step as you add it, leave Hear steps (the speaker button at the top of a pattern) on. When you turn a step on, its sound plays, so you know which drum a lane plays before you start the sequence. In a melodic pattern, the up and down arrow keys play a step’s new note too. Turn the button off to add steps quietly. The sequencer remembers your choice.
To change a number such as Steps or Swing, type it, or click in the box and then scroll or use the up and down arrow keys. With touch or a pen, up and down buttons appear beside the box when you tap it.
A generator shows all of its settings in the editor. Select Type to change what kind of generator it is.
The melodies have a Key and range. Pick the key and the scale, or Song key to follow the Key and chords row (see Following the key and chords), and drag either end of the lit part of the keyboard to set the range, or drag its middle to move it. Scroll over the keyboard to move the range an octave. A chance melody and Learn can also keep to a Max interval, and Resolve to root.
Life, Learn, Words, Evolve, the infinity series, L-systems, and change ringing also have a Velocity section. Its chips pick how loud each note plays. Each generator’s own ideas come first, such as By age for Life (new cells loudest), By surprise for Learn, As spoken for Words, and Handstroke/backstroke for change ringing. Steady, On the beat, Swell, and Random work for all of them. After Learn learns from a clip, As learned plays the clip’s loud and soft notes. The drawing shows this pass’s notes over the range they play in. Drag the top or bottom edge of the band, or drag its middle to move it, or scroll over it to move it 10%.
Learn, Life, Life drums, Evolve, and change ringing can Listen to another clip or a whole track, even one that’s a generator. Pick it from the list, and they learn from it straight away: Learn learns its melody, Life drops a pass of its notes onto the board as new cells, Evolve starts from it and gets a Similarity slider, and change ringing rings its most played notes as its bells. Turn on Keep listening, and each pass hears what the source played during the pass before, so it changes as the source does. A clip is heard as if both started together, and a track is heard where the listener plays. Two clips can even listen to each other, each a pass behind.
A generator plays the same notes on every pass, unless you set Each pass to Changes. The ones that grow, learn, and spell start out changing. The Seed is where its chances start. The same seed always plays the same way. You can type words as the seed, such as “Midnight drive,” and the same words play the same way on any PC. To hear something different, select the button next to the seed to pick a new one.
A Strum generator plays chords the way a player strums them. Make one from New generator. It’s in the Plays along group, with the arpeggiator.
Make notes turns the Strum into ordinary notes you can edit, one clip for each place it plays. A Strum that plays the keys you hold has nothing to keep until you play; Record or Capture keeps what it plays.
Select R on the tracks you want to record into, then select Record. A track records from the device set in its Track setup. To play into it from the screen, Record from MIDI Keyboard opens Windows MIDI Keyboard, already set up to play into the track. If the device the track plays to lists its sounds, MIDI Keyboard shows that list, so you can pick a sound by name.
A track also records what it plays from the launcher: clips you launch on it, and a generator’s notes as it makes them. They’re merged with what comes in from its device into one new clip on the timeline, so you can play the launcher live and keep the performance. A track doesn’t need a device to record from for that. What it plays from its timeline isn’t recorded again, since it’s already there.
If you played something good without recording, select Capture. It makes a clip from what you just played on the armed tracks.
Automation lanes change a controller, pitch bend, pressure or program over time. Right-click a track and select Add automation…, then draw on the new lane. Drag a point to move it, and double-click a point to delete it. Hold Shift while you drag a point to keep its value, so it moves only in time.
A ramp goes to a device in small steps, no more often than the automation interval set for that device in MIDI Settings, or every 10 ms when it has none. That keeps a slow device, or an old MIDI cable, from falling behind. When a device has its own interval, its lanes say so.
The Tempo and meter track holds the tempo map. Click its tempo line to add a tempo change, and drag a change to move it or to make it faster or slower. Hold Shift while you drag to keep its tempo and move it only in time. Double-click a change to delete it. A tempo change can jump or ramp to the next one, and the meter can change at the start of any bar.
To see every meter change at a glance, right-click Tempo and meter and select Show Meter row. The Meter row sits right under it, with a flag at each bar where the meter changes, such as 7/8. Its header shows the meter at the playhead and how many changes there are.
Moving or removing a meter change moves the bar lines, not the notes. Notes keep their time, so a note can land on a different beat. Meter changes after the one you moved stay on the same bar numbers. To hide the row, right-click it and select Hide Meter row.
Tags mark parts of the song, like the verse and the chorus. They sit along the top of Tempo and meter. Double-click there to add one. Drag a tag to move it, and right-click it to rename it, change its color or delete it. To change where the loop starts and ends, drag its edges on the ruler, or drag the middle to move the whole loop.

Select MIDI Mixer to show a strip for each track where the editor goes. It doesn’t mix sound. It sends MIDI to each track’s device, and the device changes its own volume and the rest. Each strip has the controls almost every synth responds to: volume, pan, expression, reverb and chorus. In MIDI, these are controllers 7, 10, 11, 91 and 93. You don’t need to know those numbers to use them.
A control shows where a lane has it at the playhead, so you can watch it move as the sequence plays. A faded control means the track hasn’t set that value yet, so it shows where most synths start. M and S mute and solo the track, the same as in the track list.
To move a knob or the fader, drag it up or down, or use the mouse wheel. Hold Shift to move it in smaller steps. Double-click a control to put it back where most synths start. With the keyboard, press Tab to get to a control, then use the arrow keys.

A sequence can have a lyrics track. Select File, then Lyrics…, and type the words.
When you type the words, put a hyphen between the syllables of a word, like hap-py birth-day. A space goes between words, each line of the song goes on its own line, and a blank line goes between verses. An underscore (_) holds a syllable over more than one note. Each syllable goes on the next note of the track that sings. If you change words that are already placed, the ones that were there keep their times.
Lyrics in a Standard MIDI File come in when you import it, including karaoke files (.kar). Exporting a Standard MIDI File writes them out again. While the sequence plays, the track that sings sends the words to its device as MIDI 2.0 lyric messages, if the device speaks MIDI 2.0. To use the lyrics in a music player or for subtitles, select File, then Export, then LRC lyrics….
A sequence can have a Key and chords row, for writing down the song’s key and its chords. Select File, then Key and chords, or right-click Tempo and meter and select Show Key and chords. The row starts in C major.
Not sure what comes next? The row can help. Its suggestions come from simple music theory rules, not AI, so the same chord always gets the same suggestions.
Each of these is one step to undo.
To hear the chords, right-click the row and turn on Play chords. They play as the sequence plays, a little softer than your tracks, on Default output in Settings. Until you pick a device there, that’s the General MIDI Synth, so there’s nothing to set up. Play chords is a setting for the app, not for one sequence.
The keys and chords are saved in the sequence file.
Generators and clips can follow the song’s key, so a key change carries the whole song with it.
A clip that follows the song’s key has a small note mark on the timeline, so it’s clear why it plays different notes in different places.
An AI assistant can write the chords and the sections for a whole song with you. Right-click the Key and chords row and select Ask an AI assistant….
The assistant writes the key, the chords and the sections, nothing else. Each section becomes a tag on Tempo and meter, colored by its kind, such as Verse or Chorus. To hear the chords, turn on Play chords, or set generators to Song key. Windows MIDI Sequencer never sends anything to an assistant itself. If you’d rather not see it, turn off AI assistant in Settings. Assistants follow the guide for AI assistants.
When the sequence has a key, the piano roll can show it:
Both use the key where the clip is first placed. Turn them on or off in the clip editor’s header.
Not sure what key a part is in? Right-click a notes clip or a melodic pattern on the timeline and point to Find key. You see the three keys its notes most likely belong to, the most likely first. It works out which notes sound longest and matches them to the typical shape of each key. Pick one to put it on the Key and chords row where the clip starts. Nothing changes unless you pick one.
To turn the chords into notes you can edit, right-click the row and select Copy chords to new track. You get a new track on Default output with one clip that holds every chord, each for its length, around middle C with the bass note an octave below. After that it’s ordinary notes: changing a chord later doesn’t change the clip.
Exporting a Standard MIDI File writes each key on the row as a key signature. That kind of file only knows major and minor keys, so a mode such as D Dorian is written as the key signature it shares (no sharps or flats, so it reads back as A minor). Chords aren’t written, because a Standard MIDI File has no standard way to hold them. Importing a file brings its key signatures in as keys.
The launcher plays clips without following the timeline. Select Launcher to show it. Select the triangle at a clip’s top left to play it on its track, and select it again to stop it. Select the rest of the clip to open it in the editor; it keeps playing, or not, as it was. Double-click an empty slot to make a clip there. A track playing a launched clip shows Playing a launched clip across its timeline. That stays after you stop, so the next Play carries on with what each track was playing. Select Back to timeline to go back to the timeline, whether or not the sequence is playing. Launch sets when a launched clip starts: now, or at the next sixteenth note, beat, bar, or more.
Some devices need more than notes. A drum machine or an arpeggiator can follow the sequence’s MIDI clock, and some devices start and stop with it. Studio setup lists every device and group the sequence plays to or records from, so you can choose that after you’ve made your tracks, instead of before. Open it from the File menu, by selecting the number of devices in the status bar, or from Clock and sync.
For each device and group, choose whether the sequencer uses it. A group that only sends, such as a keyboard’s, has only Record from. One that only receives, such as a synth’s, has only Play to.
Then choose what else each group it plays to gets. All of these start off, so a device gets only notes until you turn them on. Only turn on what a device uses. The General MIDI Synth never gets them: it plays the notes it’s sent and doesn’t use the clock.
To see what a group sends, select the eye on its row. That opens Windows MIDI Monitor on that device and group. MIDI Monitor only listens, so it sends the device nothing.
These choices belong to the PC, not the sequence, so every sequence that uses a device gives it the same. To send the clock to a device no track plays to, such as a drum machine that plays its own pattern, select Add device, pick the device, and turn on what it should get. Other MIDI devices on this PC lists every other device, so you can look at what any of them is, or watch what it sends.
Some devices, such as some Arduino projects, stop working when an app sends them a message they don’t expect. Some apps send every device a question when they start, such as MIDI-CI Discovery or a MIDI Identity Request, to find out what it is.
The sequencer doesn’t ask a device what it is on its own. It opens only the devices the sequence uses, and sends a device nothing until you play, try a sound or move a mixer control. It asks a device for its sound names over MIDI-CI only when you select Ask … for its sound names in a track’s Sound. If a device still has trouble, turn off Play to for its group, and the sequencer leaves it alone. It won’t even ask that group for its sound names.
Windows MIDI Keyboard is different. When it opens on a device, it asks the device for its sound names with MIDI-CI. The sequencer opens MIDI Keyboard from Preview in MIDI Keyboard, Record from MIDI Keyboard and the editor’s MIDI Keyboard button. It won’t open it on a group whose Play to is off, or ask that group for sound names.
Clock and sync opens from the clock button next to the tempo. It can follow another device’s MIDI clock instead of the sequence’s own tempo, and send MIDI Time Code for video and lighting gear. What each device gets of the sequence’s own clock is chosen in Studio setup.
Remote control… on the File menu makes a MIDI endpoint for the sequencer, called MIDI Sequencer. A controller, another app, or a MIDI Glass layout can send to it to play, stop, launch clips and scenes, and mute, solo or arm tracks. The sequencer sends back what’s playing, so a surface can light up. That dialog can also make a Windows MIDI Glass layout for the sequence.
File, then Import, brings in:
.mid or .kar), with each of its tracks as a track. Its lyrics and copyright notice come too, and its key signatures become keys on the Key and chords row when the row doesn’t have any yet..midi2)..dawproject), which many DAWs can save. You pick a device for each of its instrument tracks.midi console (.csv), with a track for each group.File, then Export, writes a Standard MIDI File, a MIDI 2.0 clip file for each track, a DAWproject file, or the lyrics as an LRC file. Each format has room for some things and not others. For example, DAWproject has no place for lyrics, and a Standard MIDI File carries MIDI 1.0. The sequence file always keeps everything.
File, then Sequence details…, says who made the sequence and how. It’s the same information Windows MIDI Glass and Windows MIDI Patchbay save with what you make: your name, your company or group, your website, and a license. It’s what you say about your work. Windows doesn’t check it.
Copyright is the notice that Standard MIDI Files, clip files and DAWproject files carry.
Source starts with a suggestion based on the clips. A sequence of recorded clips suggests Recorded, and a mix of kinds suggests Mixed. If any part was made with generative AI, choose an option that says so.
Clip sources lists every clip and how it began: recorded, drawn, generated, or imported. An imported clip keeps the name of its file and the file’s copyright notice, which matters before you share or sell music that uses someone else’s work.
Sequences are saved as .midisequence files in Documents › MIDI Sequences. A sequence that has been saved once saves itself again as you work, and when you close it. To save only when you choose Save, turn off Save automatically in the settings (the gear at the top right); then closing asks about unsaved changes. A file from a newer version of the app opens, but it can’t be saved over, because it might hold settings this version doesn’t know about. Use Save as… to keep a copy.
To open a sequence you’ve used before, select File, then Open recent…, or press Ctrl+Shift+O. It lists the last 100 sequences you opened or saved, newest first. Type in the box at the top to find one by its name or folder.
The list and your pins are kept for your Windows account on this PC, not in the sequence files. Sharing a sequence doesn’t share them.
This preview doesn’t have everything. These are known gaps:
This app was coded by AI using GitHub Copilot, guided by Pete Brown.