NOW LOADING

Windows MIDI Sequencer


Arrange, record and play MIDI 2.0 music on a timeline, with a clip launcher for playing live

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.

Quick start

The Windows MIDI Sequencer main window with the sample sequence open, and numbered callouts on the File menu button, the transport buttons, the position and tempo display, the Launch, Snap, Capture and Panic controls, Undo and Redo, the track list, the clip launcher, the timeline, the editor, and the status bar

  1. The File menu has New sequence, Open, Open recent, Save, Import and Export, and a sample sequence to look around in. It also has Lyrics…, Sequence details…, Studio setup…, and Remote control….
  2. The transport buttons go to the start, play, stop, record, loop and play the metronome. Space plays and stops. To set where the loop goes, drag along the ruler above the timeline.
  3. The position and tempo display shows where the playhead is, in bars and in time, and the tempo and meter. Select the tempo to change it. Internal clock opens Clock and sync, where the sequence can follow another device’s clock or send MIDI Time Code.
  4. Launch sets when a clip you launch starts playing, such as at the next bar. Snap sets the grid that clips and notes snap to. Capture makes a clip from what you just played on the armed tracks, even if you weren’t recording. Panic, in red, stops playback and every note on every device. It’s a one-time action, not a mute switch.
  5. Undo and Redo go back and forward through your changes. The chip at the end says whether the sequence is saved.
  6. The tracks. Each track plays to one device. Select a track to set it up. M, S and R mute it, solo it, and arm it to record. Folders hold tracks, and the Tempo and meter track at the top holds tempo changes and tags that mark parts of the song.
  7. The clip launcher plays clips live. Each column is a scene. Select the triangle at a clip’s top left to start it on its track, or a scene at the top to start every clip in its column at once. When there are more scenes than fit, scroll over the scene names, or hold Shift and scroll over the clips, to see the rest.
  8. The timeline is the song from start to end. Each block is a clip. A clip can loop, and one clip can be placed in many spots, so a change to it changes every copy.
  9. The editor shows the selected clip: a piano roll for notes, a grid of steps for a pattern, or the settings for a generator.
  10. The status bar shows whether the MIDI service is running, which clock the sequence follows, and how many devices it plays to. Select the number of devices to open Studio setup.

Make your first sequence

  1. Open Windows MIDI Sequencer. A new sequence has one track that plays to the General MIDI Synth built into Windows.
  2. Double-click the track’s row on the timeline. A new clip appears there and opens in the editor.
  3. Double-click in the piano roll to add a note. Drag a note to move it, or drag its end to make it longer.
  4. Press Space to play, and Space again to stop.
  5. Select File, then Save. Sequences are saved in Documents › MIDI Sequences.

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.

Tracks and devices

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.

Choose each track’s sound

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.

  • Turn on Sound. Then pick a sound from the list, or type its program number. Some devices also need a bank. The device’s manual says which.
  • Choosing a sound sends it to the device right away, so you can hear it. Cancel puts the old one back.
  • The list shows only names the sequencer knows the device has. The General MIDI Synth built into Windows gets the General MIDI names, or its drum kits on channel 10. Another device gets no list until it shares its own names, since it may have other sounds at those numbers; pick its sounds by number from its manual.
  • A device that speaks MIDI-CI may share its own names for its sounds. To get them, select Ask … for its sound names. The sequencer asks only when you select that, and never asks a group whose Play to is off in Studio setup.
  • When the sounds come in categories, such as the device’s own or General MIDI’s families, All categories beside the search box shows one at a time.

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.

Make room for what you’re working on

  • The track names. Drag the edge between the track names and the timeline to make the names wider or narrower.
  • The launcher. Drag the edge between the timeline and the launcher to give either one more room.
  • The editor. Drag the top edge of the editor to make it taller or shorter.
  • One track. Drag the bottom edge of a track to make it taller or shorter. Tempo and meter works the same way.
  • Compact tracks. Right-click a track and select Compact to make it one line tall, so more tracks fit. If you selected several tracks, they all change. Select it again to put them back.

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.

Move around and zoom

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.

  • To move, drag the frame, or select anywhere beside it to go there. Shift + mouse wheel scrolls through time too.
  • To zoom, drag either end of the frame. You can also press Ctrl and turn the mouse wheel, or pinch on a touchpad or a touch screen, to zoom where you point. Dragging the frame up or down zooms too.
  • The keys at the bar’s right end zoom out, zoom in, and fit the whole sequence. On the timeline, Ctrl+plus and Ctrl+minus zoom, Ctrl+0 fits the sequence, and Ctrl+Shift+0 fits the selected clip.
  • Double-click the frame to see the whole sequence, and again to go back.

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.

Choose a style

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.

  • Night drive is the Sequencer’s own look. It sits on the window’s backdrop: solid, Mica or acrylic.
  • Tactile is one warm gray material, with keys and clips pressed out of it and soft shadows.
  • Aluminum is machined metal plates under a dark strip, with graphite pads and backlit readouts.
  • Vellum is paper and ink: hairlines instead of boxes, one vermilion accent, and clips as watercolor washes.

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.

Clips, patterns and generators

There are three kinds of clips:

  • Notes clips hold notes you draw, type, record or import. The piano roll edits them. B turns on drawing, and Q moves notes onto the grid. Hold Shift while you drag notes to move them in time without changing their pitch. Select Other tracks to see, faintly in their own colors, the notes the other unmuted tracks are playing at the same time. Solo doesn’t hide them.
  • Pattern clips are step sequences, for drums or for melodies. Each lane has its own number of steps, so lanes can drift against each other and come back together. Steps can have a chance, or play only on some passes. Swing pushes every second step later. To change the order of the lanes, drag a lane by its name. Make notes turns a pattern into a notes clip that plays the same thing.
  • Generator clips make their notes as they play. A Euclidean rhythm spreads hits as evenly as it can over a number of steps. A Chance melody picks notes from a scale. An Arpeggiator plays the notes you hold, or another track’s notes, one after another. A Strum strums the chords on the Key and chords row, or another track’s, the way a guitar, a ukulele or a piano plays them. Eight more grow, learn, and spell their notes: Life, Life drums, Learn, Words, Evolve, the Infinity series, L-system, and Change ringing.

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.

Change many notes at once

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.

  • Select picks notes for the other tools: the top note of each chord (usually the melody), the bottom note (usually the bass), every second note, notes on or off the beat, notes in a range of velocities, or notes outside the song’s key. Move to a new track puts the selected notes in a new clip on a new track that plays to the same device, so you can split a piano part into melody and chords.
  • Timing has Quantize, with a strength setting that tightens the timing but keeps some of the feel, and swing. Humanize adds small changes so a part drawn on the grid sounds played. It changes notes on the beat less than notes between beats. Groove from another clip copies the timing and accents of one clip onto another. Speed up or slow down pushes notes closer together or further apart as they go. Ratchet turns each note into fast repeats, for drum rolls.
  • Length has Legato, which makes each note last until the next one starts, plus a fixed length and a percent of each note’s length. Clean up fixes notes that overlap the same note, removes duplicates, and removes very short notes.
  • Pitch has semitone and octave steps, and steps by notes of the song’s key, so a melody stays in key. Fit to the chords moves notes that clash with the chord on the Key and chords row. Voicing changes chords: inversions, close and open voicings, drop 2 and drop 3, an extra octave below, and Smooth voice leading, which picks the inversion of each chord that moves the least from the one before. Mirror turns a melody upside down, and Reverse plays it backward.
  • Velocity sets, raises, ramps, accents or randomizes velocity. The same panel works for release velocity and for each note’s chance of playing.
  • Strum, under Timing, spreads the notes of each chord a few milliseconds apart, like a hand across strings. Pick a shape and drag the curve, or type the time. Choose the direction (or down on the beat and up off it), which note lands on the beat, and whether the bass stays on the beat. Each note’s end stays where it was. Strumming again replaces the last strum, and Remove strum puts the notes back where they were. You can also select Strum in the bar and drag on a chord: drag right and the strum’s last note follows the pointer, drag up to strum up, and let go to keep it.
  • Glide and Vibrato, under Pitch, bend each note on its own with MIDI 2.0 per-note pitch bend. Glide slides each note in from the pitch of the note before it. Vibrato makes long notes waver after a moment. Only a MIDI 2.0 instrument hears them. Set the bend range to match your instrument, or send it. Remove glide and vibrato takes them away.

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.

Start a pattern from a template

Not sure where to start? Templates, at the top of a pattern, has starter patterns, like the presets on a drum machine.

  • For a drum pattern: drum machine classics (four on the floor, rock, disco, funk, shuffle, and breakbeat), electronic styles (house, techno, electro, UK garage, drum and bass, and dubstep), hip hop (boom bap, lo-fi, trap, and drill), and Latin, Caribbean, and African rhythms (reggaeton, Afrobeats, bossa nova, reggae one drop, and son clave).
  • For a melodic pattern: basslines (acid techno, acid house, rolling techno, offbeat house, disco octaves, synthwave, funk, electro, trance gallop, UK garage, dub, trap 808, walking bass, and minimal techno) and sequences (a Berlin school sequence and an up and down arpeggio). Pick a key first, under Key. The sequencer remembers it until you close the window.

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.

Hear the steps

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.

Generators

A generator shows all of its settings in the editor. Select Type to change what kind of generator it is.

  • A Euclidean rhythm draws its rings. Each dot is a step, and the lit dots are the hits. Drag around a ring to turn it, so its hits start later. Scroll over a ring to add or take away hits. The table next to it sets each ring’s note, hits (Pulses), steps, turn (Rotate), velocity and chance. Preview (2 bars) shows two bars of the result.
  • A chance melody shows its first four passes, with new notes outlined, so you can see how much changes each time round.
  • An arpeggiator sets where its notes come from (notes you hold, another track, or the chords on the Key and chords row), the order it plays them in, how fast it goes (Rate), and how many octaves it climbs.
  • A Strum is described in Strum below.
  • Life plays the Game of Life on a board with a column for each step and a row for each note of the key. Draw the first pass’s cells on the board, or start with a scatter or a shape such as a glider. Each pass is the next generation: a cell with two or three neighbors lives on, and an empty cell with three is born. The edges wrap, so a glider that walks off the end of the bar comes back in at the start. Select any pass under the board to see it, and Set as start to begin there.
  • Life drums does the same with a row for each drum. Select a drum’s name on the board to change it.
  • Learn learns which note tends to follow which (a Markov chain) from a tune, a clip you pick, or words you type, then makes up new melodies in that style, in the key you choose. Memory sets how many notes back it remembers. The drawing shows the moves it learned, with this pass’s lit. It learns only from what you give it.
  • Words spells what you type as a melody. The letters climb the scale, a space rests, a period ends on the root, a question ends on the fifth, and capitals are louder. You hear the changes as you type.
  • Evolve makes eight changed copies of each pass and plays the one that best fits the rules you weight, such as small steps or a motif that comes back. The drawing shows the copies and which one won, and the line under it shows the score climbing.
  • The infinity series plays Per Nørgård’s endless melody, which contains itself: every fourth note is the whole series again. Add voices to hear it against itself at half speed.
  • An L-system grows a drawing from a short rule, like a plant, and the melody follows the drawing up and down. Pick a shape, or open Rules to write your own.
  • Change ringing rings bells the way bell towers do, in a new order every row, with methods such as Plain Bob and Grandsire. The drawing is the method’s blue line.

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.

Strum

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.

  • Chords from. It plays the chord on the Key and chords row at each moment, the chord another track is playing, or the keys you hold on the track’s source as you play. With Latch, it keeps strumming the last keys you held.
  • Instrument. It turns each chord into a shape a real instrument plays. Guitar uses standard tuning and the lowest shape on the neck a hand can hold, with strings it can’t use muted below the bass, so C is the open C chord and F is the barre chord. Ukulele uses all four strings, and a down stroke starts on the high G string, as on a real ukulele. Piano puts the bass in the left hand and the chord in the right. Harp plays every note of the chord over about three octaves, as a harp with its pedals set to the chord. As written plays the chord’s notes as they are. For a guitar or a ukulele, Capo plays the shapes as if a capo were on that fret, and Neck position keeps the shapes near a fret, so higher numbers give barre chords up the neck.
  • Pattern. A letter for each step: D strums down and U up (the top strings only, as a real up stroke does), d and u are softer, x is a muted stroke, R is a flamenco rasgueado (fingers flicked down one after another), T is tremolo (fast strokes that fill the step), B plucks the bass with the thumb (between the two lowest strings by turns, as in Travis picking), 1 to 4 pluck a string counted from the top, P plucks the bass and the top string together, G and g are a glissando up and down every string, and - lets the strings ring. Start from a style fills in a pattern: folk, pop, ballad, muted chucks, reggae, funk, tremolo, rasgueado, a build-up, Travis picking, a fingerpicked arpeggio, and a harp glissando.
  • Strum shape. How the time between the notes of a strum changes. Speeding up sounds most like a hand. Drag the curve sideways to change how long a strum takes; the shape stays the same. The time is in milliseconds, so a strum sounds the same at any tempo. Pick Ticks if you want strums to get shorter as the tempo goes up.
  • On the beat. Players start a strum a little early so its middle lands on the beat. Pick First note, Middle of the strum, or Last note.
  • Feel. Louder first strings leans each strum louder at one end. Loose hand adds small changes from stroke to stroke, so it doesn’t sound like a machine. Let strings ring keeps each string sounding until something stops it. Keep the bass on the beat strums everything but the lowest note.
  • Muted strokes play short and quiet, which works on any instrument. If your instrument has a muted sound on a key switch, pick Key switch and enter its keys. The Strum plays the mute key before a muted stroke and the open key before the next open one. On an instrument without them, those keys play as notes.

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.

Recording

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 and tempo

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.

  • To add a meter change, double-click the row near the bar where it should start.
  • To change a meter, double-click its flag, or right-click it.
  • To move a meter change, drag its flag to another bar. The first meter starts the song, so it can’t move.
  • To remove a meter change, select its flag and press Delete, or right-click it.

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.

The MIDI Mixer

The MIDI Mixer, with a strip for each track. Each strip has small knobs for expression, reverb and chorus, a larger pan knob, a tall volume fader with a scale and a meter beside it, M, S and W buttons, and the track's name on its color at the bottom

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.

  • Moving a control sends the change to the track’s device right away, so you hear it. A device with an automation interval in MIDI Settings gets moves no more often than that, and always gets the last one.
  • The change is kept, too. If the track has an automation lane for that control, the change sets the lane’s point at the playhead. If it doesn’t, it becomes the value the track sends when it starts playing.
  • While the sequence plays, a lane keeps playing what it has. So a change to a control that has a lane is only heard, not kept, unless W is on.
  • To record your moves, select W on a strip, then play the sequence and move the controls. Your moves are written into the track’s automation lane for that control. If the track doesn’t have one, it gets one.

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.

  • Pan says where the sound sits: L for left, C for center, or R for right, and how far. L24 is 24 steps left of center. The pan knob lights up from the middle, and a screen reader says “left 24” or “center”.
  • The fader’s scale runs from 0 to 127. The mark at 100 is where most synths start.
  • The meter beside the fader shows how hard the track’s notes are playing while the sequence plays. A note lights it from when the note starts until it’s let go. It can’t show how long the sound keeps ringing after that, because the device doesn’t tell the sequencer.
  • The track’s name, at the bottom of its strip, is on the track’s color. Select it to select the track. The selected track’s strip has an outline.

Lyrics

The Lyrics row under Tempo and meter, with numbered callouts on the Lyrics header, the lines of lyrics on the timeline, and the box near the bottom that shows the line being sung

A sequence can have a lyrics track. Select File, then Lyrics…, and type the words.

  1. The Lyrics row sits under Tempo and meter. It shows how many syllables there are, and which track sings them. Select the pencil to change the words.
  2. On the timeline, each line starts where it’s sung. Zoom in to see each syllable.
  3. While the sequence plays, a box near the bottom shows the line being sung, with the words sung so far in color, and the next line under it.

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….

Key and chords

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.

  • Keys run along the top of the row, each one until the next. Double-click a key to change its root and scale. To change key part way through the song, right-click the row and select Add key change. When you change a key’s root, turn on Transpose chords to move the chords in that key along with it.
  • Chords sit under the keys. Double-click an empty spot to add a chord there, a bar long, on the key’s root. Double-click a chord to change its root, its type and its bass note. More types are under More. For a chord like C/E, pick the bass note under Bass.
  • Chords work like clips. Drag one to move it, and drag its right end to make it longer or shorter. A chord dropped over others shortens them, or splits one it lands inside. Press Delete to remove the selected chord or key. Everything can be undone.
  • Under each chord’s name is its place in the key, as a Roman numeral, like ii7 or V7, when there’s room. A chord with notes from outside the key has a star and a warm outline. That isn’t a mistake, just something worth seeing. To hide the numerals, right-click the row and turn off Roman numerals, or turn it off in Settings.
  • To hide the row, right-click it and select Hide. The keys and chords stay in the sequence, and come back when you show the row again.

Help picking chords

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.

  • Next chord. Double-click a chord. The top of the picker shows four or five chords that often come after the one before it, most likely first. Select one to use it. Near the end of a four or eight-bar phrase, the chords that sound like an ending move to the front.
  • More chords. Under those are a few chords with more color, like chords borrowed from the minor key when you’re in a major key. A star means a chord has notes from outside the key. That’s fine; it adds color.
  • Progressions. Pick a well-known progression, like I–V–vi–IV or a 12-bar blues, pick how many chords go in a bar, and select Fill. It goes on the row from the chord you double-clicked, in the key there, and replaces the chords it covers.
  • Suggest. Select the light bulb on the row’s header, or right-click the row and select Suggest chords. It fills the empty bars after the selected chord, or from the playhead, up to the next chord. When there’s no chord after, it fills to the end of the four-bar phrase. Select it again to keep going.

Each of these is one step to undo.

Hearing the chords

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.

Following the key and chords

Generators and clips can follow the song’s key, so a key change carries the whole song with it.

  • Generators. In a generator’s Key and range, pick Song key at the top of the key list. It plays in the key on the Key and chords row, and takes the scale from there too, wherever the key changes. New generators start on Song key when the sequence has a key. Where the row has no key, a generator plays in the key it had before.
  • Chord tones. Turn this on in a generator’s key settings, and the notes that start on a beat move to the nearest note of the chord playing then. The rest stay in the scale, so the melody fits the chords without sounding stiff.
  • The arpeggiator can play the chords on the row. Under where its notes come from, pick Key and chords row.
  • A Strum plays the chords on the row unless you pick another track. Change a chord on the row and the strummed part changes with it.
  • Notes clips and melodic patterns. Turn on Follow key in the clip editor’s header. The notes are taken as written in the key where the clip is first placed. Wherever the song is in a different key, they move by scale steps to fit it: E in C major plays as F♯ in D major, and as E♭ in C minor. Notes never change to fit chords. New melodic patterns follow the key when the sequence has one. Notes clips don’t, until you turn it on.
  • Drum patterns, Euclidean rhythms and Life drums never follow. Drums don’t have a key.

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.

Ask an AI assistant

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….

  1. Select Copy, and paste the prompt into the AI assistant you use, such as a chat in your web browser. It asks you about the style, the song’s sections and how long they are, the key, and how rich the chords should be, one question at a time.
  2. When it gives you the song, copy its whole answer and paste it into Answer. Select Check. You see what’s in it (“8 sections, 64 bars, 31 chords, 1 key change”), or exactly what’s wrong, so you can ask the assistant to fix it.
  3. Pick where it goes: in place of the keys, chords and tags there now, or from the bar at the playhead. Then select Apply. It’s one step to undo.

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.

Help while writing notes

When the sequence has a key, the piano roll can show it:

  • Scale highlight (on to start with) makes the rows of notes in the song’s key lighter and the rest darker. Under each chord on the Key and chords row, the rows of that chord’s notes are tinted, so you can see which notes fit right there.
  • Scale snap (off to start with) puts notes you draw or drag onto notes in the key. Hold Alt for any note.

Both use the key where the clip is first placed. Turn them on or off in the clip editor’s header.

Find the key

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.

Chords to notes

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.

Keys in Standard MIDI Files

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 clip launcher

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.

Studio setup

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.

  • Play to sends the group its notes and anything else it gets. Turn it off, and the sequencer sends nothing to that group, not even the clock. A device the sequencer uses for nothing else isn’t even opened.
  • Record from listens to what the group sends. Turn it off, and the sequencer ignores that group, including its clock.

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.

  • Clock sends MIDI clock, so the device keeps time with the sequence.
  • Start/Stop starts, stops and continues the device with the sequence.
  • Song position tells the device where playback starts, so it starts in the same place.
  • Tempo sends the tempo itself, as a MIDI 2.0 message, so the device knows a new tempo before the clock shows it. A group that speaks MIDI 1.0 can’t take it, so its box is off.
  • Offset sends the clock a little later or earlier, to line up a device that runs slow or quick.

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.

A device that stops working when an app talks to it

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, sync and remote control

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.

Importing and exporting

File, then Import, brings in:

  • A Standard MIDI File (.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.
  • A MIDI 2.0 clip file (.midi2).
  • A DAWproject file (.dawproject), which many DAWs can save. You pick a device for each of its instrument tracks.
  • A capture from Windows MIDI Monitor or the midi console (.csv), with a track for each group.
  • Messages copied in Windows MIDI Monitor. Ctrl+V pastes them as a clip on the selected track.

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.

About this sequence

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.

Your sequence files

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.

  • Select the pin beside a sequence to keep it at the top of the list, so it never drops off. You can pin up to 100.
  • × takes a sequence off the list. It doesn’t delete the file.
  • A sequence that was moved, renamed or deleted shows Not found. Open it from its new place with Open…, and it’s back on the list.

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.

Not built yet

This preview doesn’t have everything. These are known gaps:

  • Automation lanes inside a clip play, but you can’t draw them yet.
  • Pattern steps can’t change a controller or other settings yet, only notes.
  • Lyrics don’t have ruby (the small reading text used with Japanese), or two languages at once. Lyrics in an imported MIDI 2.0 clip file play, but they don’t show in the Lyrics row.
  • DAWproject export leaves out per-note expressions and polyphonic pressure.
  • The clip editor and a generator’s drawing show the notes as written. Where a clip follows the song’s key, it plays them moved to fit, which the editor doesn’t show yet.

Learn more

App provenance

This app was coded by AI using GitHub Copilot, guided by Pete Brown.

Didn't find what you were looking for?

Windows MIDI Services is an open source project with all source available on GitHub. We have a great community on Discord as well. Between GitHub and Discord, you should find the information you are looking for.