|On this page|
The MIDI In CHOP receives midi events from midi devices connected to the serial port, reads midi events internal to the workstation (i.e. the built-in software synth), and interprets musical scores in midi files. midi data can be recorded in real time or recorded to the Houdini timeline play bar’s time. Supported midi events are:
Note On, Note Off
Control Change (midi controller devices)
Timer Events including beat pulses
Start, Stop, Continue
Song Position Pointer
System Exclusive Messages
midi events arriving on separate midi channels may be recorded on separate CHOP channels. Also, any number of midi CHOP can read from the same or different sources. When Houdini receives a midi Start, Stop or Continue event, it affects the Playbar.
The values of the midi inputs are saved into the Houdini .hip file, and are restored when the file is reloaded. The physical controllers may be in a different position when the .hip is restarted, causing the values to jump when the controllers are moved. This is unavoidable.
MIDI Interface to listen to: hardware port, internal, file.
The name of the MIDI file to read, if reading a file.
Read Entire MIDI File
Read the whole file versus using the Start/End.
The MIDI channel(s) to read from (1-16). The input streams from multiple channels will be combined into one if no Channel Prefix is given.
When acquiring multiple MIDI channels, the channels can be merged or kept separate. If this field is not blank (try "ch"), one set of CHOP channels is made per MIDI channel: all CHOP channels will be prefixed with this string and MIDI channel number.
Echo Messages to Textport
Logs all input MIDI messages to the textport.
Selects one of four record methods:
Only the most recent value is output at frame
Like Single Frame, at the current frame.
Current Time Slice
MIDI output for the current time slice.
MIDI output for the whole range.
A button used to manually start and stop recording.
Resets the CHOP output channels to be
1 sample long.
To read note events put a channel base name. (try
The notes to record. Ranges (try
41-60) can be used.
Notes can be recorded into one channel or each note number can have their own channel (Single Channels).
The velocity can be recorded as part of the note (Note Amplitude), as a different channel (Separate Channels), or not at all (Off).
The base name of velocity-only channels. (try
The base name of the polyphonic aftertouch channels.
The name of the channel pressure channel(s).
Note velocity, pressure & aftertouch can be normalized.
Pitch Wheel Name
The name of the pitch wheel channel.
To read controller events, put a base name. (try
There are 128 controllers available. You can specify controllers by index or choose one from the list.
The index range of the controllers. (try
Selects either 7 (most common) or 14 bit controllers.
Controller values can be normalized to simple ranges.
Allows cyclic controllers to extend beyond MIDI limits.
The name of the program change channels(s).
Timer Pulse Name
The name of a channel that pulses on MIDI beats.
Timer Ramp Name
Name of channel that ramps
1 between MIDI beats.
Name of channels with start/period values of beats.
Ticks per Beat
The number of timer pulses per MIDI beat.
Bar Ramp Name
Name of channel that ramps
1 between MIDI bars.
Name of channels with start/period values of the bar.
Series of hexadecimal bytes describing the Bar message.
Song Pos Name
The name of the song position pointer channel.
Channel Name 1-12
Output channel name for each System Exclusive message
Series of hexadecimal bytes describing SysEx message. (* = dont care, V = value 0-127, v = value 0-1 range)
Some of these parameters may not be available on all CHOP nodes.
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:
Matches a single channel name.
chan3 tx ty tz
Matches four channel names, separated by spaces.
Matches each channel that starts with
Matches each channel that has
foot in it.
? matches a single character.
t? matches two-character channels starting with t.
Matches number ranges giving
[xyz]matches three characters, giving channels
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.
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).
When you change the Units parameter, it does not convert the existing parameters to the new units.
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.
Causes the memory consumed by a CHOP to be released after it is cooked and the data passed to the next CHOP.
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
You can leave the Export Prefix blank, but then your CHOP track names need to be absolute paths, such as
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.
The following examples include this node.