7 Best Free Virtual Instruments – VST/AU Plugins for Mac & PC Virtual instruments are software emulations of traditional instruments or hardware electronic musical instruments. There is a staggering range of virtual instruments available nowadays, covering multi-timbral rompler modules to dedicated emulations of guitars, basses, drums. Maybe you just got your MIDI keyboard. Or maybe you’ve had it for a while. Either way, you might be looking for things to do with your MIDI keyboard. When it comes right down to it, it’s an amazing, versatile tool, and it’s more than just a piano or synthesizer. It can literally be used 15 Best Free Midi Keyboard Software 2021 – Windows PC, Mac, iPhone & Android Read More ». When you are searching for some of the most popular software that can work proficiently then you can type in Google “notation software MAC”, “midi creation software”, “midi composer software”, “free midi notation software”, “free midi editor”, ‘midi editor online”, “best midi editor” and “mini editor no sound”. 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.
Audio MIDI Setup User Guide
If you use MIDI devices or a MIDI interface connected to your Mac, you can use Audio MIDI Setup to describe the configuration of your MIDI devices. There’s a default configuration already created, but you can set up your own.
You can use this configuration information for apps that work with MIDI, such as sequencers, to control your MIDI devices.
Note: Make sure your MIDI devices are connected to your Mac. If you’re using an interface device, connect any other MIDI devices you’re using to the interface. Also check that any software provided by the manufacturer of the MIDI devices has been installed. For more information, see the documentation that came with your devices.
View a MIDI configuration
In the Audio MIDI Setup app on your Mac, choose Window > Show MIDI Studio.
In the MIDI Studio window, click the Choose MIDI Configuration pop-up menu (it may show Default), then choose the configuration you want to view.
In the toolbar, click the following buttons to change how the configuration is shown:
Show Icon View : Devices in the configuration are shown as icons. If a device isn’t connected, its icon is dimmed. To view information about a device, such as channel properties and ports, and to add or remove ports, double-click the device’s icon.
Show List View : Devices in the configuration are shown in a list, organized by type (such as Interface or External Device). If a device isn’t connected, it’s dimmed. To filter which devices are shown, click the Show pop-up menu, then choose an option (such as Online or Connected). To view information about a device, double-click the device. To view its ports, or to connect or disconnect devices, click the device’s disclosure triangle.
Create a MIDI configuration
In the Audio MIDI Setup app on your Mac, choose Window > Show MIDI Studio.
In the MIDI Studio window, click the Choose MIDI Configuration pop-up menu (it may show Default), then choose New Configuration.
Enter a name for the new configuration, then click OK.
To add a new external MIDI device, click the Add button in the MIDI Studio toolbar.
To set properties and add or remove ports for the MIDI device, double-click the device, or select it, then click the Device Info button in the toolbar.
In the Properties window, do any of the following:
Describe the device: Enter a name for the MIDI device; the name appears in apps you use with the device. If you know the manufacturer and model, you can enter those.
Change the device icon: Click the MIDI device’s icon to open the Icon Browser, select a different icon to represent the device, then click the new icon to close the Icon Browser.
Change the device color: Click the color well, select a different color to use for the MIDI device, then close the Colors window.
Set the device channels and other properties: Click Properties, then click the channels to use for transmitting and receiving audio. To deselect a channel, click it again. Also select whether to use the MIDI Beat Clock, the MIDI Time Code, or both, then select other features.
Add or remove ports: Click Ports, click the Add button below the list of ports, then specify the MIDI In and MIDI Out connectors for the port. To delete a port, select it in the list, then click the Remove button .
Select MIDI-CI profiles for interface devices: If an interface device supports MIDI-CI, click MIDI-CI to see the profiles available on each channel. To turn a profile on or off, select or deselect its checkbox.
Click Apply.
Repeat steps 4 through 7 for each MIDI device you want to include in the configuration.
In the MIDI Studio window, specify the connection between MIDI devices:
In Icon View , drag the In or Out connectors at the top of a device icon to the corresponding connector on another device icon.
In List View , click a device’s disclosure triangle, click the Port disclosure triangle, click the Add Connection icon, then use the pop-up menus to specify the connections.
If you have a MIDI interface connected to the USB port on your Mac, it should appear in the MIDI Studio window. If it doesn’t, see If a connected MIDI device isn’t shown.
You can’t specify a “MIDI thru” connection between two MIDI devices. To indicate a MIDI thru connection, connect the two MIDI devices to the same port of the MIDI interface device.
Edit a MIDI configuration
In the Audio MIDI Setup app on your Mac, choose Window > Show MIDI Studio.
In the MIDI Studio window, click the Choose MIDI Configuration pop-up menu (it may show Default), then choose Edit Configurations.
Select a configuration, then click Duplicate, Rename, or Delete.
When you’re finished making changes, click Done.
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:
- Virtual MIDI ports (many devices create these automatically, but some programs do not)
- A synthesizer
You may also want a way to get MIDI input without extra hardware. All of these topics are covered here.
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:
- Open up Finder and click on “Applications.”
- Search for “Audio MIDI Setup” – you should see a little keyboard icon show up. Double click on it.
- 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. - Once you have MIDI Studio open, double-click on “IAC Driver.”
- 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).
- 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.
Music Software For Midi Keyboard
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.
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:
- Go to Edit > MIDI Connections
- Tick “Enable MIDI Thru on MIDI Output”
- Tick “Show Advanced Connections”
- Set the MIDI OUT Driver to be “CoreMIDI”
- 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:
- Go to vmpk > Preferences
- Untick “Enable Touch Screen Input”
I recommend two approaches for playing MIDI files if you don’t care where the MIDI messages are sent:
- 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).
Midi Editing Software Free Mac
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.