This program is an add-on for Side Effects Software’s Houdini. It reads data from the Pipe Out CHOP (running in network mode), and sends out corresponding Open Sound Control (OSC) messages. There are two main types of output that you can send – single CHOP channel values for the current frame, and an array of all the values in the animation range. The type is determined by the settings of your Pipe Out CHOP.
It would probably be better to have a custom CHOP to do this, but I haven’t done enough with the HDK to know how to do this.
Note: To get OSC messages into Houdini, see the project https://sourceforge.net/projects/houdini-osc/ (which unfortunately doesn’t currently work out of the box for Houdini 10+ or Windows).
Just run the exe file, it’s pretty much automatic. Please let me know if it goes weird or crashes on you!
Currently, Windows with .Net v4. Tested on Houdini 10.734.
I would like to port this to Mono/Linux in future.
Settings are defined in PipeReader.exe.config. Edit this if you wish to change anything, but be careful. The defaults are:
Maximum number of input channels |
1024 |
Incoming host (Houdini) |
localhost |
Incoming port |
5001 |
Destination host (OSC app) |
localhost |
Destination port |
10000 |
OSC Address Prefix |
/houdini-out/ |
Debug output enabled[1] |
True |
Debug port |
4444 |
Mapping overrides |
None |
By default, OSC messages are sent with address “/houdini-out/[CHOP_channel_name]”. You can assign custom destination addresses to channel indices by adding some lines in the config file, along the lines of:
…
<setting name="MappingOverrides" serializeAs="Xml">
<value>
<ArrayOfString
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>0=Volume</string>
<string>1=Pan</string>
</ArrayOfString>
</value>
</setting>
…
IDE is Visual C# Express 2010, and dependencies include the .Net Framework v4 and the Bespoke OSC library.
The format of the Houdini Pipe CHOPs is
described in the official documentation, here: http://www.sidefx.com/docs/houdini10.0/nodes/chop/pipein.
A rough visualisation is given in Figure 1. This program is based on one of
the examples provided in $HH/public/PPD.tar.Z.
Currently, the program outputs OSC messages. However, it should be fairly straight forward to implement alternative output forms, e.g. MIDI.
Figure 1: Protocol at 4-byte token level
[1] If true, duplicate OSC messages are sent to another port (on the same host). Useful for debugging and monitoring.