< Previous | Contents | Next >

MIDI Extractor

The MIDI Extractor modifier provides the ability to modify the value of a control using the values stored in a MIDI file. This modifier relies on some knowledge of MIDI, which is beyond the scope of this manual.

The value produced by the modifier is extracted from the MIDI event selected in the Mode menu. Each mode can be trimmed so that only specific messages for that event are processed—for example, only some notes are processed, while others are ignored. The value of the event can be further scaled or modified by additional factors, such as Scale, Velocity, Attack, and Decay.

It can be applied by right-clicking a parameter and selecting Modify With > MIDI Extractor.


Inspector


image

image

The MIDI Extractor modifier Controls tab


Controls Tab

The Controls tab is used to load the MIDI file, modify its timing, and determine which MIDI messages and events trigger changes in the Fusion parameter.

MIDI File

This browser control is used to specify the MIDI file that is used as the input for the modifier.

Time Scale

Time Scale is used to specify the relationship between time as the MIDI file defines it and time as Fusion defines it. A value of 1.0 plays the MIDI events at normal speed, 2.0 plays at double speed, and so on.

Time Offset

Time Offset adjusts the sync between the MIDI file’s timing and Fusion’s timing. If there is an unexpected delay, or if the MIDI file should start partway into or before some animation in Fusion, this control can be used to offset the MIDI data as required.

Result Offset, Result Scale

These sliders adjust the range of values produced by the modifier. By default, values between 0 and 1 (or -1 and 1 for PitchBend mode) are generated. This does not always suit the node/parameter, and scale can be used to make this range larger (such as * 0.0 - 2.0). Offset is used to provide some constant value as a base.

Result Curve

The Result Curve can also be used to adjust the output. However, this adjusts the curve of the result. By default, for any input MIDI data, the results fall linearly between 0.1 and 1.0 (for example, a velocity 127 note generates 1.0, whereas 63 generates approximately 0.5).

The Result Curve applies a gamma-like curve so that middle values can produce higher or lower results while still maintaining the full scale.

Mode

This menu provides Beat, Note, Control Change, Poly AfterTouch, Channel AfterTouch, or Pitch Bend, indicating from which MIDI event the values are being read. Beat mode is slightly different in that it produces regular pulses based on the tempo of the MIDI file (including any tempo maps).

The Beat mode does not use any specific messages; it bases its event timing on the tempo map contained in the MIDI file.

Combine Events

image

This menu selects what happens when multiple events occur at the same time. In Notes mode, this can happen easily. For other events, this can happen if Multiple Channels are selected.

Use this to take the result from the most recent event to occur, the oldest event still happening, the highest or lowest valued event, the average, sum, or the median of all events currently occurring.

Beat (Quarters) (Beat Mode Only)

This defines how often a beat occurs when in Beat mode. This is in quarter notes, so a value of 1.0 gives a beat every quarter.

Note Range (Note and Poly Aftertouch Modes Only)

This defines what range of notes causes a value to be generated. For example, use this to pick out the kick drum from a GM drum track by setting the note range between 35–36.

Pitch Scale (Note Mode Only)

Pitch Scale defines how much the result changes with pitch. A value of 1.0 causes the result to vary from 0.0 to 1.0 over the entire range.

Velocity Scale (Note Mode Only)

This defines how much the result changes with velocity. A value of 1.0 causes the result to vary from

0.0 to 1.0 over the entire range. This is added to the result from Pitch Scale for the final result.

Control Number (Control Change Mode Only)

This specifies the MIDI controller number from which to extract events.

Envelope Controls (Note and Beat Modes Only)

These define an Envelope to follow for values before, during, and after the note or beat. Pre-Attack Time defines how long before the event it starts ramping up to the pre-attack level. Attack is the Time/Level to ramp to once the event has occurred, followed by the Decay ramp and Sustain, until the event stops. This stage is for Notes only. Beats have an instantaneous duration, so it goes straight to Release. Release is the ramp-down time after the event finishes. When trying to do a Beat, set Release to some value, or there likely will not be much of a beat.

These values can be used to follow actual sounds in the MIDI sequence or just to create interesting effects. All time values used in the MIDI Extractor are in seconds.


image

The MIDI Extractor modifier Channels tab


Channels Tab

image

The Channels tab is used to select the Channels used in the modifier.

Channels

image

ABOUT MIDI

A single MIDI interface allows 16 channels. Typically, these are assigned to different instruments within a device or different devices. Usually, MIDI data is 7 bits, ranging from 0–127. In Fusion, this is represented as a value between 0–1 to be more consistent with how data is handled in Fusion.

There are numerous different MIDI messages and events, but the ones that are particularly useful with this modifier are detailed below.


MIDI MESSAGES

Note On: This indicates that a note (on a specific channel) is being turned on, has a pitch (0–127, with middle C being 60) and a Velocity (0–127, representing how fast the key or strings or whatever was hit).

ABOUT MIDI

A single MIDI interface allows 16 channels. Typically, these are assigned to different instruments within a device or different devices. Usually, MIDI data is 7 bits, ranging from 0–127. In Fusion, this is represented as a value between 0–1 to be more consistent with how data is handled in Fusion.

There are numerous different MIDI messages and events, but the ones that are particularly useful with this modifier are detailed below.


MIDI MESSAGES

Note On: This indicates that a note (on a specific channel) is being turned on, has a pitch (0–127, with middle C being 60) and a Velocity (0–127, representing how fast the key or strings or whatever was hit).

ABOUT MIDI

A single MIDI interface allows 16 channels. Typically, these are assigned to different instruments within a device or different devices. Usually, MIDI data is 7 bits, ranging from 0–127. In Fusion, this is represented as a value between 0–1 to be more consistent with how data is handled in Fusion.

There are numerous different MIDI messages and events, but the ones that are particularly useful with this modifier are detailed below.


MIDI MESSAGES

Note On: This indicates that a note (on a specific channel) is being turned on, has a pitch (0–127, with middle C being 60) and a Velocity (0–127, representing how fast the key or strings or whatever was hit).

Channels checkboxes select which of the 16 channels in the MIDI file are actually considered for events. This is a good way to single out a specific instrument from an arrangement.


image


Note Off: This indicates that a note (on a specific channel) is being turned off, has a pitch (0–127, with middle C being 60) and a Velocity (0–127, representing how fast the key or strings or whatever was released).

Control Change: This message indicates that some controller has changed. There are 128 controllers (0–127), each of which has data from 0–127. Controllers are used to set parameters such as Volume, Pan, amount of Reverb or Chorus, and generic things like foot controllers or breath controllers.

MIDI EVENTS

Channel Aftertouch: This event defines that pressure is being applied to the keys (or strings or whatever) during a note. This represents general, overall pressure for this channel, so it simply uses a pressure value (0–127).

Poly Aftertouch: This event defines that pressure is being applied to the keys (or strings or whatever) during a note. It is specific to each particular note and therefore contains a note number as well as a pressure value (0–127).

PITCH BEND

The Pitch Bend controller generally specifies the degree of pitch bending or variation applied to the note. Because pitch bend values are transmitted as a 14-bit values, this control has a range between -1 and 1 and a correspondingly finer degree of resolution.


Note Off: This indicates that a note (on a specific channel) is being turned off, has a pitch (0–127, with middle C being 60) and a Velocity (0–127, representing how fast the key or strings or whatever was released).

Control Change: This message indicates that some controller has changed. There are 128 controllers (0–127), each of which has data from 0–127. Controllers are used to set parameters such as Volume, Pan, amount of Reverb or Chorus, and generic things like foot controllers or breath controllers.

MIDI EVENTS

Channel Aftertouch: This event defines that pressure is being applied to the keys (or strings or whatever) during a note. This represents general, overall pressure for this channel, so it simply uses a pressure value (0–127).

Poly Aftertouch: This event defines that pressure is being applied to the keys (or strings or whatever) during a note. It is specific to each particular note and therefore contains a note number as well as a pressure value (0–127).

PITCH BEND

The Pitch Bend controller generally specifies the degree of pitch bending or variation applied to the note. Because pitch bend values are transmitted as a 14-bit values, this control has a range between -1 and 1 and a correspondingly finer degree of resolution.


Note Off: This indicates that a note (on a specific channel) is being turned off, has a pitch (0–127, with middle C being 60) and a Velocity (0–127, representing how fast the key or strings or whatever was released).

Control Change: This message indicates that some controller has changed. There are 128 controllers (0–127), each of which has data from 0–127. Controllers are used to set parameters such as Volume, Pan, amount of Reverb or Chorus, and generic things like foot controllers or breath controllers.

MIDI EVENTS

Channel Aftertouch: This event defines that pressure is being applied to the keys (or strings or whatever) during a note. This represents general, overall pressure for this channel, so it simply uses a pressure value (0–127).

Poly Aftertouch: This event defines that pressure is being applied to the keys (or strings or whatever) during a note. It is specific to each particular note and therefore contains a note number as well as a pressure value (0–127).

PITCH BEND

The Pitch Bend controller generally specifies the degree of pitch bending or variation applied to the note. Because pitch bend values are transmitted as a 14-bit values, this control has a range between -1 and 1 and a correspondingly finer degree of resolution.