The MIDI In CHOP reads Note events, Controller events, Program Change events, and Timing events from both midi devices and files.
For a quick start, see: User Guide > CHOPs > Using MIDI in Houdini.
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:
A button used to manually start and stop recording.
Resets the CHOP output channels to be
To read note events put a channel base name. (try
The notes to record. Ranges (try
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
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
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 avaiable 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
The following are examples of possible channel name matching options:
|Sample Rate Match|
The Sample Rate Match Options handle cases where multiple input CHOPs’ sample rates are different.
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
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.