Five12

prev  |  up  |  next

Numerology 2 Documentation


Synchronization & ReWire

When two musicians play together, it is important that they have some reference point for musical tempo so that they play 'in time' with each other. This reference point could be a conductor or a drummer, or within a small group of skilled musicians, just by listening to each other play.

Similarly, when you use Numerology in a studio context with other devices (or software programs) that generate music in an automated fashion (rather than being directly played by a person), you generally need to provide some sort of timing reference so that everything plays in time together, this is called synchronization. Numerology implements three different protocols it can use to synchronize with other devices, they are:

  • ReWire
  • MIDI Clock
  • MIDI Time Code (MTC)

ReWire is a protocol developed by Propellerhead Software that enables one program (the slave, or device) to operate in a tightly-coupled manner to implement synchronization and some other features. Rewire provides several very nice features:

  • Highly accurate synchronization.
  • Shared transport functions, including tempo.
  • Audio streaming from the slave program to the master.

Another feature of ReWire is that is very easy to setup. Typically all that is required is that the master program be started before the slave program.

Both MIDI Clock and MTC use streams of MIDI messages from one device (the master) to another (the slave), transmitted over a physical MIDI cable or through a virtual MIDI connection running on a computer. The most flexible and widely supported of the two is MIDI Clock, but there are some special features of MTC that make it preferable in some circumstances. Numerology can act as either a master or a slave when using MIDI Clock or MTC.

Choosing which protocol to use for synchronizing Numerology with other devices is very dependent on the details of your studio setup, so you may need to perform some tests to determine which approach works best for you. Here are some basic guidelines to help you get started:

  • Your first choice should always be ReWire. It offers accurate sync and audio streaming with essentially zero configuration. Just start your ReWire "host" app first, then start Numerology. As of version 2.1, Numerology fully supports running Audio Units in ReWire mode, including AU edit windows. The only downside to this approach is that Numerology's audio input does not yet work in this mode, but hopefully will soon. In addition, Numerology 2.1's ReWire implementation has been expanded to include 32 channels of audio streaming, and much reduced CPU overhead relative to running standalone.

  • If you are running Numerology on a separate machine from your synchronization master, or if you need to use audio input in Numerology, then consider using MTC or MIDI Clock.

When using either of the two MIDI protocols, Numerology can be the master or the slave. If you have already been working with one of the all-encompassing virtual studio applications on the market, you will probably be inclined to use it as the master. Numerology should work fine in this manner, but you should also consider using Numerology as the master as well. Due to all the variables involved with modern computer software, including software releases, operating system releases, how heavily-loaded the CPU is, and so on, you may find that you get better results using Numerology as the master.

When choosing between MIDI Clock and MTC, MIDI Clock should be the first option to consider, as it is the most widely supported. You should consider using MTC when:

  • You are working with a long composition, greater than about 25 minutes.
  • You are working in an environment where your sync master does not have a distinct tempo, such as when a video editing program.

AN IMPORTANT NOTE:

If you are using a version of Mac OS X prior to 10.5.6, there is a bug in the CoreAudio libraries that prevents Numerology from responding to MIDI Song Position Pointer messages properly. This bug affects the ability of Numerology to locate to specific positions within a composition when synchronized to another source. If you are using a version of OS X prior to 10.5.6, you should consider either upgrading, or using MTC whenever you are working on a composition where you need to be able to start playback from any location other than the beginning of a composition.

Inter-Application MIDI

Before we get into the details of how you configure Numerology to synchronize with other programs, we should mention the two options you have for transmitting MIDI messages between Numerology and other music applications on your computer. These notes apply whether you are running Numerology standalone or in ReWire mode.

The first of these methods is via some virtual MIDI ports that Numerology creates when it starts up. You may have already used these to transmit MIDI from Numerology to other programs. There are four input ports (Numerology In 1-4) and four output ports (Numerology Out 1-4). You can use these to transmit sync as well as other MIDI messages, such as Note On & Off, CC, and so on. However, in order to simplify your setup, we recommend that you use separate ports for transmitting sync vs. other MIDI data.

Another option for transmitting MIDI to other applications are OS X's IAC Busses. These are general purpose MIDI communication ports that you can create via the Audio MIDI Setup application, which is in the Utilities folder of your Applications folder. IAC Busses work just as well as Numerology's virtual MIDI ports, and have something of an advantage in that once you create them, they are always around.

Here are the steps to create an IAC Bus:

  • In the finder, go to Applications/Utilities, and start "Audio MIDI Setup".

  • Click on the "MIDI Devices" tab.

  • Double-click on the "IAC Driver" icon.

  • Make sure that "Device is online" is checked.

  • If you do not see an area labelled "Ports", click the "More Information" button.

  • You will now see a list of IAC ports. You can create new ports, rename them, or delete them. If you like, you might want to create an IAC port dedicated to transmitting sync, named something like "IAC-MIDI Sync".

Now that we know how to transmit MIDI from one app to another, we can continue with our discussion of synchronization.

MIDI Clock

MIDI Clock is a simple but effective protocol used by almost every MIDI device that has any kind of tempo setting or transport, from synthesizers with arpeggiators, to stand-alone drum machines, to complex Digital Audio Workstation (DAW) software programs. It consists of a small set of command messages, and one primary clock message, a simple 'tick'. The command messages correspond closely to the usual set of transport controls: Start, stop, continue. There is also a locate message, called a Song Position Pointer (SPP). It can be used for the master to inform the slave that it should start or continue playback from a specific musical time. SPP messages are relatively coarse: they have just a bit higher resolution than a sixteenth note.

The tick messages used by MIDI clock don't have any timing or tempo information within them, they just indicate the passage of musical time. They happen relatively quickly: 24 times a beat.

MIDI Clock can be transmitted over MIDI cables, between two software programs running on the same computer, or even over a network connection between two computers.

When two or more devices are synchronized using MIDI Clock, one is always the master, which generates the clock messages, and all the others are slaves-- they listen to the messages, and synchronize their playback to match.

When using MIDI Clock, you need to decide which device will be the master, and how you will transmit its sync signal to the other devices. There are also a few settings to make. The general process is:

  • Choose which device will be the master.

  • Make settings on the master device to transmit MIDI Clock, such as turning it on, deciding what MIDI destination to transmit sync over, and possibly setting a mode switch that affects how sync messages are generated.

  • Make settings on the slave device(s) to receive MIDI clock, including activation of sync reception, and setting the proper MIDI Source to listen for sync settings on.

Once your settings have been made, you can to start the transport on the master device. When you do so, the transport of the slave device should also start and play in time with the master.

The following appendix shows you how to synchronize Numerology with another software program, in this case Ableton Live with Numerology as the slave:

Appendix: How To Sync Numerology to Ableton Live via MIDI Clock.

MIDI Time Code : MTC

MTC is somewhat similar to MIDI Clock, but instead of being a protocol based on musical time, MTC is based on real time-- minutes and seconds. This is because MTC is a MIDI implementation for STMPTE sync, a protocol commonly used in the broadcast industry, where there are many sources (such as video, and recordings of audio dialog) that do not have a musical tempo.

There are some very important differences between MTC and MIDI Clock:

  • Instead of tempo-based musical 'tick' messages, MTC transmits a continuous stream of "time" messages expressed as four numbers: hours, minutes, seconds and frames. This makes MTC very suitable for synchronization in the context of a longer composition (greater than about 25 minutes).
  • MTC does not transmit tempo : you have to set the tempo on each device separately.
  • Compared to MIDI clock, there are some format parameters that have to be setup on both the master and the slave. If these parameters are not set properly, MTC will not work.

The first extra setting you need to make is for the SMTE format. The SMPTE format refers to the internal structure of the timing messages that MTC uses, and are expressed as "frames per second", sometimes with odd labels, like "drop" and "non-drop". You don't need to know what these mean, just that the settings have to be exactly the same for both the MTC master and the MTC slave. The SMPTE formats currently supported by Numerology are: "24 fps", "25 fps", "30 fps non-drop" and "30 fps drop-frame". When in doubt, we recommend using 30 fps non-drop as your SMPTE format.

The next setting to be aware of is SMPTE start time, which sets the absolute time that the series of MTC messages will start at. This is a value expressed as four numbers: Hours, Minutes, Seconds, and Frames. Numerology currently only supports a start time of 00:00:00:00, so you have to make sure that the other device is set to this as well. Many MTC devices (such as Final Cut Pro) assume a start time of 1:00:00:00, but can be modified to any desired start time.

Appendix: How to sync Numerology to Apple Logic using MTC

Appendix: How to sync Numerology to Cubase using MTC

ReWire

ReWire is a special kind of plug-in architecture, it allows one or more 'slave' apps to have very accurate sync with a host. This is accomplished by splitting the slave app into two parts: a 'device' that runs within the host app (like a VST or AU plugin), and a 'panel' app that runs separately and provides the UI. The panel app is always the same as the 'standalone' version of the app, it just runs in a special mode. Applications can support running as master apps (all major DAW apps), or 'slave' apps only (Numerology, Reason), or both (Ableton Live).

Numerology 2 is supported in ReWire slave mode to work with Ableton Live, Apple Logic, MOTU Digital Performer and Steinberg Cubase. It will probably work fine with other ReWire master applications, but those configurations have not been tested as thoroughly as the applications listed here.

To start off, we recommend that you download and install the latest ReWire driver from Propellerheads.se: http://www.propellerheads.se (Click downloads, then, "ReWire" (at the very bottom)) As of this writing the current version of ReWire is 1.7.

When you install Numerology, the installer will also install the Numerology ReWire driver by default. It is very important that you always have the same versions of both the Numerology ReWire Driver and the Numerology application installed. If you have any doubt, just re-install both.

If you want to later un-install the Numerology ReWire driver, just delete the file NumerologyReWireDevice.plugin from /Library/Application Support/Propellerhead Software/ReWire.

Now you can get started. Startup your desired ReWire master app, then startup Numerology. You have to start the master app first, otherwise Numerology will startup in standalone mode. After it has started, Numerology should show a "ReWire Mode" indicator on the transport bar.

In order for Numerology to run properly in ReWire mode, it needs to have it's audio output assigned to a track in the host app, even if you are just using Numerology for MIDI. To do this, just create a new track in your host program, and set Numerology as it's audio input. In Logic and Digital Performer, create an aux track. In Ableton Live you can use any audio track. This ensures that Numerology gets the steady stream of 'render' calls that it needs to operate.

Also, if you are using Logic as the ReWire master, be sure to set its "ReWire behavior" preference (in Logic's Audio prefs, in Devices / Core Audio) to "Live Mode (Higher CPU Load)" to get the best MIDI timing performance.

AudioUnits and ReWire

New in version 2.1, Numerology can host AudioUnits in ReWire mode. The only difference with running them in Numerology standalone, is that when you open the edit window for an AU, the window actually opens in the ReWire host program, so you'll need to switch apps to operate them.

Audio Streaming

Also new in version 2.1, Numerology can now stream up to 32 channels of audio to the ReWire host. The audio outputs appear as 16 stereo pairs in Numerology's audio output menus. These outputs have no extra overhead, and very little when you do use them.

MIDI in ReWire Mode

When running in ReWire mode, Numerology's main outputs are piped into the ReWire master program, which you can 'tap' by selecting "Numerology" as the audio input for a track. Transmission of MIDI from Numerology to the host app works just as it does in standalone mode: via Numerology's virtual MIDI ports, or an IAC buss.

You may find that MIDI transmitted from Numerology to the host app may be a bit delayed relative to other tracks or instruments. If so, you can easily adjust for this by adding a sample-accurate delay to the non-Numerology tracks in the host app's project. Both the BufferDelay and the Latency Fixer plugins from www.expert-sleepers.co.uk can accomplish this. A delay time equal to one or two audio buffers in length generally does the trick.


Next : Remote Control


© 2008-2009 Five12 Inc. All Rights Reserved.   prev  |  up  |  next