Hi
Is the IOIH Control sending pay-load yet? I can connect, but receive only zeros... :-(
Hi
Is the IOIH Control sending pay-load yet? I can connect, but receive only zeros... :-(
3 * TIO1608 + AIC-128 + X-Touch + Dante -> AES + DADC-144DT
SATlive is my measurement software
DIN 15905-5 (German SPL Limit)
The IOIH is currently only working with the Montarbo prototype boxes which never reached the market.
Bob L
Hi Bob
Thanks for your answer.
I've set up a TCP server listening on the port specified in the ioih setup.
It seems that SAC likes it an reports a successful connection.
I also see data coming in every time I change a setting in the IOIH control.
But ... all data seem to be zeros.
So I think there are three possiblities.
First SAC does not send real data, second I'm doing something wrong, third SAC needs a certain reply during connection to set up correct data format to send.
Why I'm asking for that? Currently I'm finishing the Dante(R) version of my gain - control SAC plugin. It is working, but I'd prefer using a control interface integrated into SAC.
Tomy
3 * TIO1608 + AIC-128 + X-Touch + Dante -> AES + DADC-144DT
SATlive is my measurement software
DIN 15905-5 (German SPL Limit)
Here is the protocol developed with Montarbo... it worked very well.
Bob L
SAC I/O Interface Hardware (IOIH) Control Protocol
An I/O interface hardware box designed to be compatible with SAC control must present itself on the SAC ethernet standard network as an IP address and/or computer name. The address, and/or name should be adjustable and be able to be set in the box itself. The I/O port that it uses for communication over the network should also be adjustable and settable within the box. This can easily be done within a webpage style setup page reachable from any browser on the network by linking directly to the box base IP address. Other box specific parameters may be set in the same manner or with physical hardware controls on the box.
The I/O box ethernet control port is used by SAC to adjust settings for mic preamp variables.
The network communication is done using standard TCP/IP ethernet packets. SAC will open a socket to connect to the box over the specified I/O port and then begin its dialog for controlling the mic pre hardware itself. If multiple boxes can be cascaded for more channels, then the master box should handle all network communication and be able to slave the other boxes internally. SAC will only open one IOIH port to the master box and expect the master box to pass on proper channel data to the appropriate box.
The protocol is simple and all data is passed as Intel Little Endian format; a set of small packets of data formatted as follows:
DWORD (4 Bytes) - Command ID
DWORD (4 Bytes) - Parameter Byte count of the data values that follow
DWORD (4 Bytes) - Channel Number (Starts at 0)
DWORD (4 Bytes) - Data Value
The format can easily be expanded to handle label strings and other variations in the future where the actual data value might become a string of char bytes or other data. The overall format of the packet stays the same with the Parameter Byte count representing the number of characters in the string or number of bytes of data, instead of a single DWORD value.
The Command IDs currently supported are:
#define IOIH_CTRL_SET_MIC_GAIN 50000
Values from +10db to +65db
#define IOIH_CTRL_SET_LINE_GAIN 50001
Values from 0db to +20db
#define IOIH_CTRL_SET_MIC_LINE 50002
Value 0 = MIC and 1 = LINE
#define IOIH_CTRL_SET_48V 50003
Value 0 = 48V Off and 1 = 48V On
#define IOIH_CTRL_SET_PAD 50004
Value 0 = Pad OFF and 1 = Pad ON
#define IOIH_CTRL_CAPTURE_BLOCK_CMDS 50005
Parameter Byte Count Set To Zero
No Other Parameters Follow
#define IOIH_CTRL_EXECUTE_BLOCK_CMDS 50006
Parameter Byte Count Set To Zero
No Other Parameters Follow
Any box specific commands used for internal programming of the box should begin at 50100 or higher, or develop your own internal protocol that does not interfere with the SAC defined control protocol.
As new commands are added to the protocol in the future, the current code should be capable of properly skipping unknown commands. Read the Command_ID***8230; if your code does not recognize it, then read the parameter count value and skip that number of bytes and begin reading the next command.
The Block Commands are sent in front of and after a block of back to back commands that will need to process as quickly as possible, for instance when the hardware is initialized at the start of the program, or when a mix session is opened or when a scene is recalled that changes many controls at once. If your hardware is capable of instant command processing with no appreciable latency involved between commands, then you can skip over the Block ID commands and simply execute the block of commands as they come in one after the other. Otherwise, capture the following block of commands and then execute them all at once after the Block Execute command is received. Please do what is necessary to keep the actual latency of command execution as low as possible.
Examples of the base commands:
Set Mic Gain For Chan 1 To 20db:
DWORD (50000)
DWORD (08)
DWORD (00)
DWORD (20)
Set Mic Gain For Chan 3 To 40db:
DWORD (50000)
DWORD (08)
DWORD (02)
DWORD (40)
Set Line Gain For Chan 1 To 4db:
DWORD (50001)
DWORD (08)
DWORD (00)
DWORD (04)
Set Chan 6 To Line Mode:
DWORD (50002)
DWORD (08)
DWORD (05)
DWORD (01)
Set Chan 1 To Mic Mode:
DWORD (50002)
DWORD (08)
DWORD (00)
DWORD (00)
Set Chan 10 48V Phantom ON:
DWORD (50003)
DWORD (08)
DWORD (09)
DWORD (01)
Set Chan 3 Pad ON:
DWORD (50004)
DWORD (08)
DWORD (02)
DWORD (01)
Start A Block Of Commands:
DWORD (50005)
DWORD (00)
Command
Data
Command
Data
Command
Data
End And Execute The Last Block Of Commands:
DWORD (50006)
DWORD (00)
Peter Olsen
Hardware: Asus Prime Z690-P D4, Intel Core i5-12600K, 8 GB ram, 500GB NVMe SSD, 2 RayDAT, 2 DSB2408 preamp/converters.
OS: Windows 10. Buffer: 1X32.
Hi
@Bob THANK YOU!!!!
@Peter O: I've just asked Yamaha support for that information. But I had to sign a contract that I must not communicate the specification.
Tomy
3 * TIO1608 + AIC-128 + X-Touch + Dante -> AES + DADC-144DT
SATlive is my measurement software
DIN 15905-5 (German SPL Limit)
Proof of concept... :-)
3 * TIO1608 + AIC-128 + X-Touch + Dante -> AES + DADC-144DT
SATlive is my measurement software
DIN 15905-5 (German SPL Limit)
Nice :-)
Peter Olsen
Hardware: Asus Prime Z690-P D4, Intel Core i5-12600K, 8 GB ram, 500GB NVMe SSD, 2 RayDAT, 2 DSB2408 preamp/converters.
OS: Windows 10. Buffer: 1X32.
Connect With Us