Loop Midi For Mac

  

Compatible to network-MIDI included in Apple OS-X and iOS 4.2. LoopMIDI Virtual loopback MIDI-cable for Windows 7 up to Windows 10, 32 and 64 bit. VirtualMIDI Virtual MIDI driver for Windows 7 up to Windows 10, 32 and 64 bit with the ability to dynamically create and destroy freely nameable MIDI-ports. New feature of version 1.6: 'enable/disable loop back' With the 'Loop back' checkbox you can define how your MIDI messages are routed. If you disable loop back only application hosted on another computer will receive MIDI. This is the prefered way when you start a simple setup. Compatible to network-MIDI included in Apple OS-X and iOS 4.2. LoopMIDI Virtual loopback MIDI-cable for Windows 7 up to Windows 10, 32 and 64 bit. VirtualMIDI Virtual MIDI driver for Windows 7 up to Windows 10, 32 and 64 bit with the ability to dynamically create and destroy freely nameable MIDI-ports. ‎Built for Live performance and hands free use, Quantiloop recreates the simplicity of a hardware loop pedal in an iOS app. Attach a MIDI foot controller and control it the way you want. No MIDI controller at hand; just preset your loop length, enable auto–record or a count–in and your loops will aut. LoopBeAudio is a virtual audio device to transfer audio between computer programs, digitally, without any quality loss. Configure up to 24 audio channels, a sample rate from 8000 Hz to 384000 Hz with a bit depth from 8 bit to 32 bit. Build a virtual 7.1 surround device, even though you don't have the built-in hardware.

Last modified: Jan 19, 2021 @ 9:36 am

Update 13-Sept-2019: the information in this post (originally from Sept 2016) is still relevant for OSX 10.14. Reference to a new, easy-to-use software MIDI keyboard (MidiKeys) has been added.

Note: this page describes setup for OS X 10.11-10.14. Some older versions like 10.10 and 10.9 are essentially the same where MIDI is concerned, but your millage may vary if you have a vastly older OS versions (namely those older than 10.6).

Although a basic MIDI setup on Mac OS X is typically easier than on Windows (to go beyond the default Windows synth anyway), it still requires some work. Here I will try to give a comprehensive overview of what you need to work with MIDI on Mac, particularly for interactive MIDI applications. I am also focusing on free setup, so the instructions on this page do not involve spending money to get things working.

In brief, to work with MIDI you need two things at a minimum:

  1. Virtual MIDI ports (many devices create these automatically, but some programs do not)
  2. A synthesizer

You may also want a way to get MIDI input without extra hardware. All of these topics are covered here.

Loop Midi Mac Os

First though, let’s talk about exactly what MIDI is. Some of this general information on MIDI is the same as on my Working with MIDI on Windows page. If you know about MIDI already, feel free to skip right to the section on Virtual MIDI ports.

MIDI stands for Musical Instrument Digital Interface. It is a protocol for communicating information between various devices and it has been around for over 30 years. For various reasons, many people new to MIDI struggle with what exactly it is and, therefore, often misunderstand what it and programs using it can and cannot do. Here are some quick facts that are often stumbling points for people that are new to working with MIDI and audio, each of which will be addressed in more detail later:

  • MIDI is a way of communicating between devices with certain message formats. For example, a MIDI controller can communicate to another device, perhaps a synthesizer, when a pitch should start and when it should end—much like the information communicated by a note on a paper score. In fact, a MIDI file is actually pretty close to a paper score in terms of the types of information it captures.
  • MIDI is not sound! You cannot “hear” MIDI any more than you can “hear” a paper score
    by itself. MIDI controllers do not create sound by themselves. Things that make sound from MIDI must interpret what they are told via the MIDI protocol. These devices are synthesizers, and they interact with audio devices to create sound.
  • Generally, your on-board sound chip and many external soundcards know nothing special
    about MIDI and they are not MIDI synthesizers. If you buy a brand new laptop, its sound chip will not deal with MIDI messages and is not a MIDI synthesizer.

Note that a “MIDI device” does not have to be a piece of hardware. There are plenty of software “MIDI devices” that can be called as such simply because they show up in device lists just like hardware devices.

1.1 MIDI Messages

MIDI information is broken into messages, which are sent over some communication medium. Messages can refer to “programs” or patches (think of it as an instrument name), channels, pitches, and so on. Channels can be thought of like staffs on a digital music score. Some examples of MIDI messages include:

  • Note on: start playing a particular pitch on a particular channel at a particular volume.
  • Note off: stop playing a particular pitch on a particular channel.
  • Program change: assign a new instrument to a channel.

Once again, these messages must be interpreted by a synthesizer in order to create sound. Sometimes MIDI messages are also called MIDI events.

MIDI-related programs that do not show up in the device manager when running are not MIDI
devices.

1.2 Controllers vs. Synthesizers

The difference between a MIDI controller and synthesizer is quite simple:

  • A MIDI Controller is a device that allows a human to push some buttons or keys and generate MIDI messages or events. In: human ineraction. Out: MIDI messages. There is no sound involved.
  • A MIDI synthesizer is a device that receives MIDI messages and produces sound. In: MIDI messages. Out: sound via an audio device or audio jack.

In a hardware-only setup, a MIDI controller (like a keyboard) would be physically connected to a MIDI synthesizer, to which speakers or headphones would then be connected. Perhaps some of the sound vs. MIDI confusion that the music community experiences is due to the fact that may keyboards actually include both of these elements: they are all-in-one MIDI controllers and synthesizers. However, any such device that features both “MIDI in” and “MIDI out” ports can usually be used as one or the other independently.

There is also a third category of devices that simply re-rout and/or re-interpret MIDI messages. As hardware, these devices are usually peripherals used to do specialized tasks like duplicating a stream of MIDI messages, merging MIDI message streams, or allowing a foot pedal to send messages down a regular MIDI cable (foot pedals meant for use with MIDI equipment typically have 1/4-inch TS or TRS plugs and send control voltage that has to be interpreted by something as a series of MIDI messages). Software also exists to re-rout, merge, and split MIDI messages.

Note: many common cases of using MIDI on Mac do NOT require setting up new virtual MIDI ports. Many devices (software and hardware) create their own ports. However, if you need to relay messages between two or more programs that do NOT create their own ports, you will need to follow the steps in this section.

A virtual MIDI port is a piece of software that runs in the background to send/receive MIDI messages from other programs or hardware devices. Virtual MIDI ports allow communication between MIDI-related programs that are not perceived by the operating system as MIDI devices. In other words, these programs might be able to send and receive MIDI messages, but they can’t “see” each other directly—but they will both be able to see a virtual MIDI port and can, therefore, use it to communicate. Hardware ports can be used similarly, although it often requires using a MIDI cable to create an ungainly self-loop (connecting a device’s output to its own input).

OS X comes with the ability to set up new virtual MIDI ports. Typically there are none by default and you have to add them manually. Here’s how to get to the screen where you can configure your ports:

  1. Open up Finder and click on “Applications.”
  2. Search for “Audio MIDI Setup” – you should see a little keyboard icon show up. Double click on it.
  3. If you are lucky, you will get 2-3 windows that open up and one of them will be called “MIDI Studio.” If you don’t see that window, go up to the top left of the screen and go to
    Audio MIDI Setup > Preferences and make sure the box called “MIDI Window” is ticked.
  4. Once you have MIDI Studio open, double-click on “IAC Driver.”
  5. There should be a list called “Ports.” If this is empty, you don’t have any ports set up. To add a new port, click the “+” button. This port will now always be there (potentially unless you upgrade your OS version – then you might need to go through these steps again).
  6. You can manage the ports you have as you need new ones or if you want to remove some later. Typically it’s good to have at least 2 ports at any given time. You can give your ports meaningful names if you want by double-clicking the name of the port.

WARNING: you should never send to and receive from the same port within the same program. Doing so creates a feedback loop of never-ending messages. This is one of the reasons it’s good to have two different ports available when you are experimenting with hooking MIDI-based programs together. Some situations require even more ports to avoid feedback loops, but two is good enough for most cases.

As described above, a synthesizer is the thing that actually makes sound for you. Both hardware and software synthesizers exist. For Macs, typically the easiest solution is SimpleSynth. You can download and install this program and keep it running in the background at all times. This will give you a basic set of standard MIDI sounds. SimplySynth creates its own virtual MIDI port while it is running. If you have no other ports set up, it will be the default output device. You can also set SimpleSynth to take input from other ports or input devices.

If you want to use sound font (SF2) files, another great option is Sforzando. This program behaves much like SimpleSynth and is very easy to configure, but you need to already have some SF2 files to use with it. So, if you currently have some virtual instruments in SF2 format and want to use them, give Sforzando a try. Like SimpleSynth, Sforzando creates its own virtual MIDI port while it is running, but it can also take input from other ports/devices.

IMPORTANT: Make sure you start SimpleSynth/Sforzando first, before opening any other MIDI software! If you already had other programs open, close them and re-open them after starting the synthesizer.

To turn MIDI messages into sound, you need to get them from the source producing them to the synthesizer that will interpret them. The producing program may be a MIDI file player, a physical MIDI controller, or a software MIDI controller.

SimpleSynth happens to come with its own virtual MIDI port functionality. You can change which port SimpleSynth listens to for MIDI messages. Regardless of which port you use, you want the following configuration overall:

Program making MIDI messages –> a particular port –> SimpleSynth

Your message-producing program should send to the same port that SimpleSynth is set to receive from. If you have multiple programs creating MIDI messages, you can set all of them to send to the same port that SimpleSynth is listening to.

If you have a situation where you are taking MIDI input from one device, processing it with some other program, and then outputing new messages to a synthesizer, you MUST have two different ports involved:

MIDI message generator –> Port1 –> SomeOtherProgram –> Port2 –> SimpleSynth

If you try to use just a single port, you’ll get a feedback loop.

Loop Midi For Mac

Most USB hardware MIDI controllers make their own port show up on the system when plugged in. In these cases, you can have a somewhat simpler setup:

HardwareNamePort –> SomeOtherProgram –> SomeVirtualPort -> SimpleSynth

Sometimes it’s nice to be able to get MIDI input without having a physical MIDI controller to plug into your computer. For these situations, I recommend MidiKeys (simplest option) or Virtual Midi Piano Keyboard (VMPK). To send MIDI messages from these programs to others, you need a virtual MIDI port set up as described in previous sections.

Using MidiKeys
The nice thing about MidiKeys is that you just need to fire it up before the program that will be accepting MIDI messages from it. The downside is that you must do Ctrl+Click > Open the first time you run it (later versions of OS X aren’t friendly to 3rd party apps opening with double-click the first time) and the the keyboard mapping is a little funky. Still, it is by far the simplest solution for getting a keyboard-based MIDI controller on OS X. It can send to either its own port or any other port registered with the operating system at the time.

Using VMPK
Make sure you have virtual MIDI ports set up as needed BEFORE starting up VMPK. VMPK also acts as its own synthesizer, so if you want it to act purely as a controller then you need to configure it as follows:

  1. Go to Edit > MIDI Connections
  2. Tick “Enable MIDI Thru on MIDI Output”
  3. Tick “Show Advanced Connections”
  4. Set the MIDI OUT Driver to be “CoreMIDI”
  5. Set the Output MIDI Connection to be your desired virtual port. Note: if you don’t tick “show advanced connections,” you may not see the ports you’re looking for.

If you want to set VMPK to only play when clicking instead of making sound whenever the mouse passes over the keyboard, you can do the following:

  1. Go to vmpk > Preferences
  2. Untick “Enable Touch Screen Input”

I recommend two approaches for playing MIDI files if you don’t care where the MIDI messages are sent:

  1. MuseScore – useful for making scores and playing simple MIDI files. Note: it is primarily intended for MIDI files that have very “clean” timing (in other words, not files recorded from live human input).

If you want to play a MIDI file and customize the output device, most programs available on Mac seem to cost money. At present I don’t have a good alternative to recommend. When I find one, I will update this page accordingly.

Loopmidi For Mac

rtpMIDI
Network MIDI driver for Windows 7 up to Windows 10, 32 and 64 bit. Compatible to network-MIDI included in Apple OS-X and iOS 4.2

loopMIDI
Virtual loopback MIDI-cable for Windows 7 up to Windows 10, 32 and 64 bit.

virtualMIDI
Virtual MIDI driver for Windows 7 up to Windows 10, 32 and 64 bit with the ability to dynamically create and destroy freely nameable MIDI-ports.

libRtpMidi
Portable implementation of RTP-MIDI and Apple network-MIDI session protocol, compatible to Windows, Linux, macOS, iOS and embedded systems.

Loop Midi For Mac

usbMIDIDriver
Multiclient USB MIDI driver for Windows 7 up to Windows 10, 32 and 64 bit.

virtualKeys
Tool to display a virtual keyboard to send & receive Note-On and Off events.

graphicalAnalyzer
Graphical 128-band octave-based spectrum-analyzer using MME and ASIO.

zeroconfServiceBrowser
Tool to enumerate network-services which are advertised using Apple Bonjour™ / multicast DNS.

ASIO2KS
Generic ASIO-driver for WDM-kernel-streaming capable soundcards.

midipad
Multitouch wireless MIDI-controller app for Apple iPad.

rtpMIDI-MM
Wireless network MIDI-gateway app working with Line 6 MIDI Mobilizer interface, running on iPod Touch, iPhone and iPad.

Over the years I have also contributed to a few open-source projects:

Wireshark
A multiplatform tool for sniffing & analyzing network-traffic.

WiX Toolset
A toolset to create powerful Windows installers.

Free Midi For Mac

JUCE
A multiplatform library for Audio & MIDI software.

All of the software downloadable on this site is free for private, non-commercial use. If you find the software useful, you can show your appreciation via the PayPal-button on the about-page of each program.

Loopmidi For Mac

The software referenced here may not be distributed via any means without prior written consent by the author. If you have commercial interest in any of the software, please let me know via email…