On this page |
The MIDI Out CHOP sends MIDI events to any available MIDI devices. These devices can be other software programs (midisynth) or devices attached to the serial ports. Channels are used to control the sending of the MIDI events. The channels are evaluated over the last time slice (from the last framebar position to the current).
An event is sent every time a channel changes its value during this slice. All timing is preserved, as long as the framebar is running in realtime. Channels are mapped to events by their name. Events like notes, controllers and velocities must be followed by the note/controller number (n65, c7).
If the number is left off a note event, the note number is the value of the channel. Other events, which are sent to the entire channel, do not need a trailing number (pc, pw). The channel prefix can be used to identify the MIDI channel the event should be sent on (i.e. "ch1n45" assigns that Houdini channel to note 45 messages on MIDI channel 1).
Parameters
Dest
MIDI Destination
Where the MIDI events are sent to.
MIDI File
The filename of the output MIDI file.
Write MIDI File
Writes all the data to a MIDI file.
MIDI Channels
The MIDI channel(s) to output to. If a channel prefix is not given, all channels will receive the same events.
Channel Prefix
The prefix string that all input channels must have in order
to extract the channel number from their name (ie.
ch1note44
, with a channel prefix of ch
).
Echo Messages To Textport
If enabled, all MIDI events are logged in the textport as they occur.
Output
Pre-Queue Time
MIDI events are generated and queued this amount of time ahead of the current frame.
Delay Time
All events will be played later by this amount of time.
Max Jump Time
If the Frame Bar increases by this amount or more since the last cook, MIDI events in that interval will be skipped.
Recovery Method
If Houdini could not cook in time to generate the next MIDI events, it recovers by one of three methods. Missed events are skipped, delayed or output immediately.
Automatic Note
'All Note Off' events can be sent upon the start Off and/or end of the output.
All Notes Off
Sends an All Notes Off message to all MIDI channels.
Note
Note Name
The base name of the note channels.
If input channels have a number after the name, it is assumed to be the note number. If not, the channel value is assumed to contain the note number.
Velocity Name
The base name of the velocity channels.
Aftertouch Name
The name of the aftertouch channel.
Pressure Name
The name of the channel pressure channel.
Normalize
Channel values in the range 0-1
are mapped to 0-127
.
Pitch Wheel Name
The name of the pitch wheel channel.
Control
Controller Name
The base name of the controller channels.
Controller Format
Sends 7 or 14 bit controller events.
Normalize
Maps channel values from different ranges to 0-127
.
Program Change
The name of the program change channel.
Sys
Bar Ramp Name
Clock ticks frequency is determined by the period of the
ramp. The ramp must be 0
to 1
.
Ticks Per Bar
The number of clock ticks per ramp.
Send Start/Stop/Continue Events
Sends the appropriate events when the framebar starts or stops.
Common
Some of these parameters may not be available on all CHOP nodes.
Scope
To determine which channels get affected, some CHOPs have a scope string. Patterns can be used in the scope, for example *
(match all), and ?
(match single character).
The following are examples of possible channel name matching options:
chan2
Matches a single channel name.
chan3 tx ty tz
Matches four channel names, separated by spaces.
chan*
Matches each channel that starts with chan
.
*foot*
Matches each channel that has foot
in it.
t?
The ?
matches a single character. t?
matches two-character channels starting with t.
r[xyz]
Matches channels rx
, ry
and rz
.
blend[3-7:2]
Matches number ranges giving blend3
, blend5
, and blend7
.
blend[2-3,5,13]
Matches channels blend2
, blend3
, blend5
, blend13
.
t[xyz]
[xyz]
matches three characters, giving channels tx
, ty
and tz
.
Sample Rate Match
The Sample Rate Match Options handle cases where multiple input CHOPs’ sample rates are different.
Resample At First Input’s Rate
Use rate of first input to resample others.
Resample At Maximum Rate
Resample to highest sample rate.
Resample At Minimum Rate
Resample to the lowest sample rate.
Error if Rates Differ
Does not accept conflicting sample rates.
Units
The units for which time parameters are specified.
For example, you can specify the amount of time a lag should last for in seconds (default), frames (at the Houdini FPS), or samples (in the CHOP’s sample rate).
Note
When you change the Units parameter, it does not convert the existing parameters to the new units.
Time Slice
Time Slicing is a feature which boosts cooking performance and reduces memory usage. Traditionally, CHOPs calculate the channel over its entire frame range. If the channel does need to be evaluated every frame, then cooking the entire range of the channel is unnecessary. It is more efficient to calculate only the fraction of the channel that is needed. This fraction is known as a Time Slice.
Unload
Causes the memory consumed by a CHOP to be released after it is cooked and the data passed to the next CHOP.
Export Prefix
The Export prefix is prepended to CHOP channel names to determine where to export to.
For example, if the CHOP channel was named geo1:tx
, and the prefix was /obj
, the channel would be exported to /obj/geo1/tx
.
Note
You can leave the Export Prefix blank, but then your CHOP track names need to be absolute paths, such as obj:geo1:tx
.
Graph Color
Every CHOP has this option. Each CHOP gets a default color assigned for display in the Graph port, but you can override the color in the Common page under Graph Color. There are 36 RGB color combinations in the Palette.
Graph Color Step
When the graph displays the animation curves and a CHOP has two or more channels, this defines the difference in color from one channel to the next, giving a rainbow spectrum of colors.
Examples
Keyboard Example for MIDI Out channel node
This example demonstrates how to write MIDI data using the MIDI Out CHOP, and read it in using the MIDI In CHOP. The MIDI that is written out is based on geometry, and the MIDI that is read in is controlling other geometry.
The following examples include this node.
See also |