Five12

prev  |  up  |  next

Numerology 2 Documentation


Signals : Audio, MIDI, CV and Clock


In the previous chapter, you learned the basics about working with individual Numerology modules. In this chapter, you will learn about how modules communicate with each other.

The idea of modularity for a music-making system dates back to the early sixties, when two brilliant engineers, Robert Moog and Don Buchla, working independently, started building small electronic components for generating and manipulating electronically-generated sound. One of the key design breakthroughs they made was the ability to use a type of electronic signal, called a Control Voltage, to transmit musically useful signals between modules. These CV connections could be used to set the pitch of sound-generating oscillators, to adjust the sound level of an audio signal, or trigger other modules to generate more CV signals. In general, they could control or modify just about anything. The ability of the user to setup how these signals were routed from one module to another, and to modify the CV signals directly, gave these systems an immense amount of flexibility.

This is the same paradigm that Numerology has taken: A system of modules that generate and modify various types of signals, enabling them to work in conjunction with each other to create music. Some of Numerology's modules, such the Note Sequencers, are highly useful as self-contained, independent entities that can be used by themselves. Other modules, such as the CV and Gate Sequencers, must be used in conjunction with other modules to do anything useful. This is done by adding them to a stack, then making connections between them.

If you have never worked with a modular system before, this can seem very daunting, but that does not have to be the case. By looking at some examples, and doing a little experimentation here and there, you can quickly learn how to build stacks with several modules connected together. This is where Numerology becomes the most powerful, when you learn to leverage it's modularity to build your own customized musical machines.

Types Of Communication

All communication between Numerology modules happens either one of two ways:

  • By data streams transmitted over 'connections' made on the Routing panel of each stack. This is directly analogous to the cable routings on an analog modular synthesizer: these connections, and the flexibility they allow is what makes Numerology modular.

  • Via Parameter Modulation messages transmitted directly from one module to any other module. This technique extends the modulation options available to you to include almost any parameter on any module. This feature is analogous to the automation features you see in many "virtual studio" applications.

Parameter modulation will be covered in a later chapter, the rest of this chapter is all about data streams.

Streams Vs. Signals

Throughout this manual, you will see the terms "Signal" and "Stream" used nearly interchangeably, but there is a bit of a distinction that should be made. In general, the term stream is used to denote a continuous series of data values, typically numeric:

1.0, 3.14, 0.999, 1.66, 0.0, and so on.

A stream may also consist of MIDI messages. Here is a very abstract representation of a few:

[Note On: C3], [Note Off: C3], [Note On: D3], [Note Off: D3],

The term signal is used when we want to imply some higher-level meaning on a stream. For instance, in the next section you will read an expanded version of this simple definition:

A CV stream is a series of floating-point numbers, a gate signal is a CV stream composed of values that are either 0.0 and 1.0. The "gate" is on if the value is 1.0, it is off if the value is 0.0.

So a gate signal can be seen both in a generic sense (a stream of numbers) and in a specific sense (a signal with alternating 'on' and 'off' values.

Audio Rate vs. Control Rate

One more pair of terms we should cover are audio rate and control rate. When a computer digitizes audio, it does so by recording, or sampling the instantaneous value of an audio signal several thousand times a second. That rate is referred to as the audio sampling rate, and is most commonly 44,100 times a second (a.k.a Hertz, or Hz). So for every second's worth of audio in computer memory, there are 44,100 numeric values, all in a row. Each processing algorithm that is run on that second of audio has to run for each sample, 44,100 times. This is why audio processing in a computer can be so CPU intensive.

To keep the CPU load under control, it is common for music software to use a lower sampling rate when working with control signals. These signals, which are the computer equivalent of the CV signals described before, typically don't move as quickly as audio signals, so they can be accurately represented with fewer numbers. This rate is known as the control rate. Numerology takes this approach for it's CV signals: it processes them at some integer fraction of the audio rate. This fraction can be set in Numerology's preferences and ranges from 1/4 of the audio rate to 1/32 of the audio rate.

Four Types Of Streams

There are four types of data streams available in Numerology: CV, Clock, Audio and MIDI.

Control Value (CV)

These streams are almost always referred to with the abbreviation "CV". The term CV is inherited from the domain of analog modular synthesizers, where it stands for "Control Voltage". Numerology's Control Value signals are used just like the Control Voltage signals in analog modular synthesizers: to specify the pitch of notes, start and stop them, and modify the timbre of generated sounds.

In Numerology, a CV stream is a control rate series of floating point numbers. Although they are general purpose, and can be used for many things, there are several specific sub-types that are most commonly used:

Gate : A gate signal is a CV stream that is usually always of one of two values: 0.0 or 1.0. When the value is 0.0, the gate is "on", when the value is 0.0, the gate is "off". Gate signals are most commonly used to trigger notes: When the gate signal goes from off to on, a note is started, when the signal goes from on to off, the note is stopped. Gates can also used in other situations where an on/off behavior is needed.

The Numerology Gate Sequencer exclusively generates values of this type, but a gate signal can also be derived from any CV stream by the following simple rule: If the value is > 0.0, the gate is on, if the value is <= 0.0 the gate is off. Any module with a Gate input port will interpret incoming values with this rule, so if you want to use an arbitrary CV stream as a gate signal, there is no need for an explicit conversion.

Trigger : A trigger is a Gate signal where we are only interested in the start phase : the transition from off to on. Several modules have trigger inputs that can be used to start things (such as Envelopes or Sequencers), and sometimes also stop them. As with a gate signal, any CV signal can be treated as trigger with a simple rule: when the value goes from <= 0.0 to > 0.0, the trigger is, well, triggered.

Modulation : A modulation signal is a CV stream that can have any value range, and is intended to be used to modulate some parameter. Sometimes the value range is generated to match exactly with the legal value ranges for the target parameter, but more often, one of two generic value ranges is used. These generic value ranges are 0.0 to 1.0 (often notated as: [0.0, 1.0]) and -1.0 to 1.0.

Pitch Interval : Other than within the context of a MIDI message, Numerology rarely works with absolute pitch values (either Note Number or Frequency). What is much more commonly used are pitch intervals in semitones. Typical value ranges are [-12, +12], [-24, +24], and [-48, +48], which you will see in several sequencer modules. This is a critical difference between Numerology and most other sequencing environment, and it makes it possible to combine several pitch interval sources in musically useful ways. For example, you can have one sequencer generating semitone values every eighth note for melody, and another generating generating values only every bar, for chord changes. If those two streams are routed into a NoteGen module, they will be added together, then added to a base octave and key value specified in the module, and optionally quantized. With this setup, you can build and manipulate your melody and chord changes sequences independently.

Clock

Numerology clock streams are a control-rate series of high-resolution (64-bit) floating-point values that represent the absolute time in beats of the master clock. They are very similar to CV streams, but use higher resolution numbers so they can accurately specify time with a very high resolution. If you were to look at a series of clock values, they might look like this:

1.000, 1.005, 1.010, 1.015, 1.020, 1.025....

Each value represents, at one instant, the current musical time in beats.

Imagine making a film of a conductor in front of an orchestra, then examining each frame, one by one. Each frame would represent an instance in time slightly beyond the previous one. Some frames would exactly indicate a beat (say, beat 4), while others would represent some time in-between beats. This is what the clock signal does: it represents the continuously moving time of your project in beats at a high resolution.

Within Numerology, clock signals need to be routed to every sequencer, as well as any other module that needs to know about musical time. The sequencers use that signal to play at an appropriate tempo. If you have ever played in an orchestra, you have learned how to watch the conductor and anticipate each beat so you can time your playing accordingly. In the same way, Numerology's sequencer modules watch the incoming clock stream so they know when to play.

Audio

As with all other audio applications, audio streams in Numerology are a series of 32-bit floating-point values, at the audio rate, that normally range from -1.0 to 1.0 -- anything outside that range will normally clip when sent to your audio hardware.

All audio streams in Numerology are currently stereo: one channel for the left speaker, one channel for the right speaker. This is by far the most common format generated by synthesizer and samplers. If you will be working with monophonic sources, such as microphones, guitars and such, you can use the MonoExtraction module to extract either the left or right channels for further processing.

In the future, direct support for monophonic and multi-channel audio streams is planned.

MIDI Streams and High Resolution MIDI

Numerology has extensive support for generating, routing and processing MIDI. MIDI streams in Numerology are a series of MIDI message objects that are processed at the same control rate as CV and Clock streams.

The internal format of Numerology's MIDI messages are slightly different than the traditional MIDI format. Instead of using 7-bit integer values for many quantities (such as note number, velocity, and control value), Numerology uses floating point numbers, sometimes with custom ranges. The extra resolution and normalized value ranges make it much easier to process these values.

Here is a summary of the differences between Numerology's MIDI messages and traditional MIDI messages:

Note On & Note Off
  • Note Numbers are specified as floating-point values from 0.0 to 127.0.
  • Velocity values range from 0.0 to 1.0 (instead of 0 to 127).
PitchWheel
  • Pitch bend values range from -1.0 to 1.0.
CC, RPN, NRPN
  • Controller numbers are specified as usual.
  • Controller values range from 0.0 to 1.0.
Aftertouch, Channel Pressure
  • Like controller values, they range from 0.0 to 1.0.
Program Change
  • No differences.

Numerology uses this extended format internally for all MIDI messages, and only converts them to the standard MIDI ranges just before they are transmitted outside the program, such as to a hardware MIDI driver, another software application, or an Audio Unit plugin.


Next : Routing


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