Playing ChordLoop through your own instrument
Setting up MIDI out — Windows and macOS · about ten minutes, once
ChordLoop's band is a sampled piano and a synth, and they are deliberately modest: the whole app is about a megabyte so it opens on a phone in a rehearsal room. If you already own a piano you like better — a Keyscape, a Pianoteq, an organ, a pad, anything that loads in a DAW — you can have the loop played on that instead. ChordLoop stays the sequencer and your own instrument makes the sound.
The one thing to know before you start. A web page cannot invent a MIDI port. The browser API ChordLoop uses can list the ports that already exist on your machine and send notes to one, and that is the whole of what it can do — there is no call for a page to appear to your DAW as a MIDI device. So a port has to exist first, and on Windows that means installing one. This is a limit of the platform rather than something ChordLoop is failing to do, and it applies to every web app equally.
What you need
- A browser that supports Web MIDI — Chrome, Edge or Opera, on desktop or Android. Safari and Firefox do not implement it at all, and the app will tell you so.
- A DAW or plugin host, with the instrument you want to hear.
- A virtual MIDI port, which is the piece of plumbing that carries notes from one application on your computer to another. macOS ships one; Windows does not.
Step 1 — a virtual MIDI port
macOS: already there, just switch it on
The IAC Driver is part of the operating system, so there is nothing to download. Open Audio MIDI Setup (it is in Applications → Utilities), then Window → Show MIDI Studio. Double-click IAC Driver and tick Device is online. That is the whole of it — the bus that appears is the port both ChordLoop and your DAW will use.
Windows: one small free program
Windows has never had a built-in virtual MIDI port in its classic MIDI stack, so one has to be added. The standard answer is loopMIDI, by Tobias Erichsen — it is free, about a megabyte, and does nothing but create ports and sit in the tray.
tobias-erichsen.de/software/loopmidi.html
That is a third-party program by somebody unconnected with ChordLoop, linked to its own official page rather than to a file, so you can read what it is and get it from its author first-hand. We have no affiliation with it and get nothing from your using it. It is suggested because it is the one nearly everybody doing this on Windows uses, not because it is the only one — LoopBe1 and rtpMIDI do the same job, and if your audio interface has physical MIDI sockets you can skip the software entirely by running a DIN cable from its MIDI Out back into its own MIDI In.
Install it, open it, type a name into the box at the bottom — ChordLoop is a sensible one — and press +. Leave it running in the tray.
Create the port before you launch your DAW. Most DAWs read the list of MIDI devices once, at startup, and never look again. A port made afterwards simply is not there as far as they are concerned, and this is the single most common reason the next step appears not to work.
Step 2 — point ChordLoop at the port
In the app, open the Sound menu and press External instrument (MIDI out). Press Connect to MIDI, allow MIDI access when the browser asks, and choose your port from the list.
Two things worth knowing about what ChordLoop sends:
- Chords go out on channel 1 and the bass on channel 2, so they can be two different instruments. Both are configurable in the same panel, and setting them both to 1 is a fine way to start.
- The drums stay here unless you ask for them. Tick Send the drums too and they go out on channel 10, General MIDI's drum channel, so a kit opens as a kit. Left off they are synthesised inside ChordLoop, and a DAW track waiting for them will wait for ever.
- Whatever stays here can be held back. Your DAW's buffer makes everything it plays late, so the click — and the kit, when it is not going out — arrives first, and one rhythm section in two places is worse than either on its own. The Delay what plays here slider closes that gap. Set it by ear: raise it until the click lands with the chords.
The checkbox marked Also play through this device keeps the browser's own band playing alongside, which is useful while you are setting up and usually not what you want afterwards.
Step 3 — the DAW
The shape is the same everywhere. Four things have to be true:
- an instrument track with a plugin actually loaded on it;
- the track's MIDI input set to the virtual port;
- input monitoring switched on for that track — not just record-arm;
- the input not filtered to a single MIDI channel, or set to channel 1 if it is, since that is where the chords are.
Studio One
Studio One does not offer raw MIDI ports on a track's input list — they have to be declared first. Go to Studio One → Options → External Devices → Add…, choose New Keyboard, give it a name, set Receive From to your virtual port, and leave the MIDI channel filter on All. The device then appears in the input dropdown of any instrument track.
Ableton Live
Preferences → Link/Tempo/MIDI, find the port under MIDI Ports and switch its Track input on. Then set a MIDI track's MIDI From to that port and arm it.
Logic Pro, Reaper, Cubase, Bitwig
These pick up a virtual port automatically. Create an instrument track, load the plugin, arm the track for recording, and the notes arrive. In Reaper, check the track's input is set to the port rather than to All MIDI Inputs if anything else is connected.
When there is still no sound
Work down this list — each step tells you which half of the chain to stop looking at.
The port is not in ChordLoop's list
It was not created, or it was created after the browser tab was opened. Press Refresh devices; failing that, reload the tab. Check loopMIDI is actually running in the tray, or that the IAC Driver is ticked online.
The port is there, but nothing reaches the DAW
Restart the DAW — it almost certainly read its device list before the port existed. If it still cannot see it, the port was declared but not enabled: in Ableton the Track switch, in Studio One the External Devices entry.
The MIDI indicator flickers but no audio meter moves
The notes are arriving and nothing is sounding them. Either the track has no instrument loaded, or input monitoring is off — a track's MIDI input indicator lights whether or not the plugin is being fed, which is exactly what makes this one hard to spot.
The audio meter moves but you hear nothing
The instrument is playing, so the problem is downstream of it. Check the track's output is going to your main bus and that the main bus is mapped to the physical outputs of your interface. Then check nothing else is soloed.
And then check whether your DAW is letting go of the audio device. Most DAWs have a setting that releases the audio interface whenever they are not the active window — it is there so you can watch a video without quitting them — and it is a trap for exactly this workflow, because pressing Play in ChordLoop means the browser has focus and the DAW is in the background. The meters go on moving and the audio stops reaching the interface. In Studio One it is Options → Audio Setup → Release Audio Device in Background; in Cubase, Release Driver when Application is in Background; in Reaper, Close audio device when stopped and application is inactive. Turn it off.
Windows and ASIO: the browser and the DAW want the same interface
ASIO is exclusive by design — it is what makes it low-latency — and this setup has two programs wanting your interface at once, because ChordLoop needs an audio device of its own for its clock even when you are not listening to it. Depending on the driver, they share it, or one of them quietly gets nothing.
Try the free thing first. On Windows, Settings → System → Sound → Volume mixer gives each running application its own output device — set your browser's to the onboard output, or anything that is not the interface your DAW is using, then fully quit and relaunch both, because Windows does not reliably release an endpoint when you reassign an application that is already running. The MIDI between them is unaffected either way: MIDI and audio are separate paths. Where this works you keep your interface's own driver and its latency, which is the best outcome available.
Where it does not, the answer is a universal ASIO driver. Some drivers will not start at all while anything else holds the hardware, whatever you point the browser at. FlexASIO replaces your interface's ASIO driver with one built over PortAudio, which can sit on WASAPI in shared mode — and shared mode is exactly the thing that lets two programs hold one interface at once. Free and open source:
Third-party and unaffiliated with ChordLoop, linked to its own project page. This is the route somebody with a guitar interface and Studio One arrived at after the volume-mixer fix above did nothing for them, which is why both are written down here rather than only the tidy one.
Shared mode costs latency, and some of it is tunable. FlexASIO reads
FlexASIO.toml from your user folder — create it if it is not there — and
suggestedLatencySeconds = 0.0 under [output] asks the backend
for the smallest buffer it will give rather than its comfortable default, which is
usually the biggest single win. Lower bufferSizeSamples (480 is 10 ms at
48 kHz) until you hear crackling, then go back one step. Leave
wasapiExclusiveMode false: exclusive mode is faster and puts you straight
back where you started.
Expect the number to be larger than it feels like it should be. One measured setup — FlexASIO on WASAPI shared mode, into Studio One — landed between 140 and 160 ms, which is most of a beat at 100bpm and nowhere near a rounding error. That is worth saying because the instinct is to try 10 or 20, hear no change, and conclude the control does nothing.
Then check whether what is left actually costs you anything. It is a constant offset on the whole band rather than drift, you are following that band rather than lining it up against something else, and a guitar going through hardware never touches the buffer at all.
One test tells you which half is broken. Close the browser, draw a few notes into a clip on that instrument track, and press play in the DAW. If you hear it, the track is fine and the problem is the two programs sharing an interface — work through the two fixes above. If you still hear nothing, ChordLoop is not involved at all: it is the track's own output routing, or which physical outputs your main bus is mapped to.
Worth checking on an interface with more outputs than it has sockets: your main bus has to be mapped to the pair that actually reaches the speakers. Several interfaces expose extra playback channels that go nowhere until they are routed in the hardware's own settings, and a main bus pointed at those gives you meters and silence.
Notes hang on after you press stop
ChordLoop sends an all-notes-off on both channels when the loop stops, so this normally resolves itself. If a note is stuck, most DAWs have a panic or reset control.
If you would rather not install anything
The MIDI export in the Export panel is the same loop as a file. Drag it onto an instrument track and you have the chords, the bass and the drums as notes you can re-voice, edit and keep — built from the same arrangement the app plays, not a second one written to look similar. What you give up is the live link: your DAW is then the thing looping it, so ChordLoop's diagrams no longer follow along as it goes round.
Still stuck?
Say what you see at which step and we will work it out: [email protected].