What is MIDIloop?

MIDIloop is an application for recording and playing back MIDI information.

Unlike a normal MIDI sequencer, MIDIloop is designed to record short loops of automation data in real-time and send them to a host application in sync with music or an external MIDI clock.

It is designed for VJ’s who increasingly need to control multiple screens and more parameters than a single pair of hands could deal with.

It may also be useful for real-time music performances.

MIDIloop is currently for Windows only.

Current Status: Alpha

This is alpha software, which means that it doesn’t have all the features planned for the final version (if there ever is such a thing in software development!)

It may also contain bugs and should be tested thoroughly on your system before you attempt to use it live.

Please report any problems.  If we don’t hear from you we may not fix them.

If MIDIloop crashes it will attempt to create a debug report. Please send them to us!


Install the Microsoft Visual C++ 2008 Redistributable Package (x86) from Microsoft

Download the latest version:

Download MidiLoop 0.1.3

Extract the ZIP file

Run setup.exe and follow the instructions

External Requirements

MIDIloop doesn’t require you to install any other software but you may find the following useful:

MIDI Yoke: Creates multiple MIDI loop-back devices.  If you want to use MIDIloop with a VJ or music package on the same PC, you’ll need this.

Getting Started

Put some music on, preferably something with a solid beat.

Run MIDIloop, either from the icon on your desktop or your start menu.

The main window should appear shortly after.

Please note that you can drag any of the windows around and position them within the window as you like.

There are several sub-windows:

Tempo Window

MIDIloop Tempo Window

This window controls the internal clock of MIDIloop.

The Clock

By default it starts at 60 BPM (beats per minute).  You can set a new tempo by pressing the BEAT button in time with the music you want to sync with.  At the bottom of the main window, on the status bar, you’ll see a read-out that looks like this:

BPM: 60.00 – NEW: 60.0 – BEAT: 2.12

BPM is the current tempo of the internal clock.  As you press the BEAT button you will see the NEW value changing.  This is the tempo that MIDIloop has calculated from the speed that you are tapping the BEAT button.  To get an accurate tempo match you’ll need to press the BEAT button several times, preferably for 16 beats or more.

The BEAT read-out is the current bar position, a bar being 4 beats (comprised of 24 MIDI frames, which is the fractional part of the BEAT read-out).

Once you are satisfied you have matched the required tempo accurately, press The One button on the first beat of the bar of the music you are listening to.  When you press The One you will see the BEAT read-out on the status bar reset back to 1.00, the first beat of the bar.

The internal clock will now be synchronised with the music you are listening to.

Even though we’ve worked hard to make the internal timing of MIDIloop as accurate as possible, you will experience the beat drifting over time.  By pressing The One again you can resynchronise the internal clock.

MIDI Clock Output

You can synchronise other software to MIDIloop if they can receive MIDI clock messages.  At the top of the Tempo window there is a radio button called Output and a list of the available MIDI output devices on your system.

By checking the box next to the device names you will select which ones MIDIloop will send MIDI clock signals to.

IMPORTANT: MIDIloop won’t actually send the MIDI clock unless the Send MIDI Clock checkbox, at the bottom of the Tempo window, is also ticked.

MIDI Clock Input

Alternatively, MIDIloop can sync to another application that is sending MIDI clock information.  Choose the Input radio button and choose the MIDI input device to listen to.  If MIDIloop is receiving MIDI clock signals you will see the NEW read-out on the status bar being updated.  You will still need to click The One to activate and sync to the new tempo.

MIDI Input and Output Windows

MIDIloop Device Window

These two windows show the MIDI input and output devices in your system.  They operate identically so we’ll cover both here.

You will see there are two main entries: Devices and Controllers


Devices are the MIDI devices currently attached to your PC.  By clicking on the [+] symbol you’ll see the names of the devices.

By default, all the input devices are disabled.  To enable one, right-click on its name name and choose Enable.  You should see its name change colour from grey to black, meaning the device is now open.

If you have a MIDI controller attached to your system, and that input is enabled, try moving some of the controllers.  With a bit of luck you should see them appearing under the device.

Each device has 16 channels, and each channel has 128 controls.

The MIDI Output window shows all the channels and all the controls of all output devices found.

Input Controllers

Controllers are hardware or software MIDI controllers that you want to use with MIDIloop.  You can add a new controller by right-clicking on the Controllers label and choosing Add Controller…  Enter a name and click OK.

By default your new controller isn’t mapped to any actual MIDI device so right-click on the controllers name and choose Set MIDI Device…  A list of input or output devices will appear.  Choose the one which your controller is attached to.

MIDIloop allows you to group the controls of your controller either by MIDI channel, if your controller supports output on more than one channel, and/or by groups.  To create a channel or group, right-click on the controller’s name and choose Add Channel…  A new channel will appear under the controller.  You can rename and delete it by right-clicking on it.

Again, this channel group isn’t attached to any real channel at the moment (denoted by the (0) which is the MIDI channel number).  Right-click on the channel name and choose Set MIDI Channel…  A list of the 16 MIDI channels will appear (along with 0 to unassign it), choose the one that your control is sending data on.

Now your group/channel is set-up.  You can now assign controls to it.  Move the MIDI control on your controller and you should see its name turn bold under the Devices list.  This is a visual clue to help you find the right control.  Right-click on the control and a menu should appear allowing you to add this control to your newly created controller.  If it doesn’t appear, you need to check you have assigned the correct device to your controller and also the correct channel number to your group.

You can create multiple groups with the same channel to group together MIDI controls together into a logical structure that maps closely to your physical controller.

Output Controllers

Exactly the same process applies to the MIDI output window, although in this case you’ll have to find the correct control number manually.

The Mystery Blank Window

This will be where you can save and load loops.  It doesn’t do anything with the current release.

The Loop Window

MIDIloop Loop Window

Finally we get to the main loop window.  There are 8 loops, all running simultaneously.

The key to understanding the loop window is by looking at a single loop and knowing that it is orientated from top to bottom.

The text at the top is the input control.  You can drag the control from the MIDI Input window and drop it over the text to set the input.

The top control with the white bar moving across it is the current loop preview.

Below that we have several controls that we explain shortly.

Below that is the output loop display.  This is the data that’s actually being sent to the MIDI output.

Below that is the output control.  It works just like the input control but you drag controls from the MIDI Output window and drop them here.

Recording a loop

Drag an input control from the MIDI Input window and drop it on the input control above one of the loops.  You should see the text change from NO DEVICE/NO CHANNEL to the name of your input control.

Clicking the Clear button to the left of the input/output control will clear the current input/output control.

The white bar that is moving across the loop is the current play-head.

In the current release, everything is synchronised to the beginning of the bar.  When you click on the record button (Rec) MIDIloop won’t actually start recording until the beginning of the next bar, when the white bar snaps to the left of the loop.

Press Rec and start moving your controller.  When the play-head hits the beginning of the next bar it the loop will start recording and the output will look like this:


IMPORTANT: in the current release MIDIloop will record the same loop up to 4 times and then produce a smooth average of the 4 ‘takes’.

If you want to stop recording before the 4 takes are complete, press the Rec button again.

IMPORTANT: MIDIloop will only record complete takes.  If you press the Rec button before the end of the first take the resulting loop will be empty.

Once the loop is finished recording its colour will turn green.

Playing a loop

The loop is running, but only in preview.  To actually send it to the output you need to drop it by clicking on the Drop button under the preview.

Once the play-head starts on the next bar the loop will start to appear in the output loop in green indicating the loop is now playing.

Drag a MIDI Output to the output control to send the output loop to an actual control.

Clearing a loop

Clicking on the Clear button under the preview loop will clear the current loop from the output.  As with the other buttons, the loop will be cleared when the play-head starts on the next bar.

Modifying loop recording

By right-clicking on the preview loop you will get a pop-up menu with the following options:

Auto-Drop: as soon as the loop has finished recording, it will be dropped to the output immediately (or on the next bar if you stopped recording manually)

Interpolation: change the processing of the input data. Linear will smooth the incoming data, None will use the raw information.

Record Loop Count: Sets the number of takes this loop will record. If you record more than one, MIDIloop will average out the values, creating a smoother loop.

Working with multiple loops

You can also record multiple loops simultaneously.  Just click on their Rec buttons during the same bar and they will start recording at the same time.

The Drop and Clear buttons to the left of the loops will drop and clear all the loops on that row.

Using these buttons you can line up several new loops and cue them all at the same time.

Changing the beat count

By default, all the loops are running for 4 bars.  You can adjust this by changing the value in the box above the output loop.  Initially this only changes the rate of the preview window.  To apply the new number of beats to the output you need to drop it by clicking the Drop button.

Mapping MIDI Controls

It can be a chore to operate all those controls with the mouse.  MIDIloop is able to map MIDI input controls to its buttons.

To map a MIDI control to a button, drag it from the MIDI Input window and drop it on the button that you want to control.

IMPORTANT: in the current version not all the buttons work with MIDI!

HINT: You will get more accurate tempo detection by attaching a MIDI control to the BEAT and The One buttons.


If you’ve made it this far you now know everything about the current release of MIDIloop!

We wanted to release this early version to get feedback from users before implementing a lot of functionality that isn’t actually useful.

We hope you will be excited about the possibilities MIDIloop offers.  Please let us know your feedback!

5 thoughts on “MidiLoop”

  1. Hi there, I want to use this software with a midi keyboard. but only the knobs are recognized and not the keynotes.. I use a E-Mu Xboard49. Any known problems or something i overlooked perhaps? Any help would be appreciated. Thnx!


  2. I just downloaded and tested MIDIloop with an up to date Windows 10 and it worked straight away! Make sure you install the Microsoft MSVC as per the instructions

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.