RS 232 Interfacing DX1208 Control Protocol V1002
User Manual:
Open the PDF directly: View PDF .
Page Count: 49
Download | ![]() |
Open PDF In Browser | View PDF |
RS-232 Control Protocol (EAWC DX1208) Rev 1.002 – 31 August 2009 http://www.eaw.com LOUD Technologies, Inc. 11/19/2009 Revision History Revision 1.002 Date 08/31/09 1.001 08/13/09 1.000 08/11/09 Description Removed (the previous) Appendix F and edited the ‘Handshaking’ section to reflect the fact that message forwarding has been disabled. Stateless controllers which poll are assumed. Changed ‘library’ to ‘preset’ for clarity and simplicity. Added Preset Load example. Initial import from (EAWC DX Family) Bucket Net Spec. Removed non-RS-232 related messages. Added RS-232 interfacing-specific sections. 2 LOUD Technologies, Inc. 11/19/2009 Table of Contents REVISION HISTORY ................................................................................................................................. 2 TABLE OF CONTENTS ............................................................................................................................. 3 OVERVIEW ................................................................................................................................................. 5 RS-232 ........................................................................................................................................................... 5 HANDSHAKING ......................................................................................................................................... 6 BUCKET NET PROTOCOL ...................................................................................................................... 7 MESSAGE FORMAT ...................................................................................................................................... 7 HEADER FORMAT ........................................................................................................................................ 8 DATA FORMAT ............................................................................................................................................ 8 BUCKET NET MESSAGES ....................................................................................................................... 9 PING (0X00) ...............................................................................................................................................10 STATUS QUERY (0X01) ..............................................................................................................................10 MEMORY READ (0X05) ..............................................................................................................................10 ASSIGN DEVICE INSTANCE (0X06) .............................................................................................................11 WHO IS OUT THERE (0X08)........................................................................................................................11 ASSIGN DEVICE LABEL (0X0F)..................................................................................................................12 PING RESPONSE (0X30) ..............................................................................................................................12 STATUS QUERY RESPONSE (0X31) .............................................................................................................13 Hardware Information...........................................................................................................................13 Device Dependent Information..........................................................................................................13 DX Family Device Dependent Information ...................................................................................13 Boot Status.............................................................................................................................................14 Code Execution Error............................................................................................................................15 Hardware Serial Number ......................................................................................................................17 Communication Status ...........................................................................................................................17 Firmware Version ..................................................................................................................................17 Operational Status .................................................................................................................................18 Debug Log Address ...............................................................................................................................18 Current Time .........................................................................................................................................19 IP Address .............................................................................................................................................19 MEMORY READ RESPONSE (0X35) .............................................................................................................20 WHO IS OUT THERE RESPONSE (0X38) ......................................................................................................20 METERS (0X51) ..........................................................................................................................................21 FAT CHANNEL METERS (0X52) ..................................................................................................................22 PARAMETER EDIT (0X54) ...........................................................................................................................24 Parameter IDs .......................................................................................................................................26 DATA REQUEST (0X5B)..............................................................................................................................27 Meters ....................................................................................................................................................27 Fat Channel Meters ...............................................................................................................................28 Parameter Edit ......................................................................................................................................29 IDENTIFY DEVICE (0X5C) ...........................................................................................................................30 PRESET INFO (0X71) ...................................................................................................................................30 PRESET INFO RESPONSE (0X72)..................................................................................................................31 PRESET STORE (0X73) ................................................................................................................................31 PRESET LOAD (0X74) .................................................................................................................................31 PRESET CLEAR (0X75)................................................................................................................................32 APPENDIX A – DEVICE FAMILY ..........................................................................................................33 3 LOUD Technologies, Inc. 11/19/2009 APPENDIX B – DEVICE INSTANCE ......................................................................................................33 APPENDIX C – CHANNEL/TYPE IDS ...................................................................................................33 APPENDIX D – EFFECT AND PARAMETER IDS ...............................................................................34 EFFECT IDS ................................................................................................................................................34 PARAMETER IDS (BY EFFECT) ....................................................................................................................34 1 - FADER EFFECT ......................................................................................................................................34 2 - MUTE EFFECT........................................................................................................................................34 4 - SETUP EFFECT .......................................................................................................................................34 5 - EQ EFFECT ............................................................................................................................................35 6 - FILTER EFFECT ......................................................................................................................................35 7 - COMPRESSOR EFFECT ............................................................................................................................36 8 - GATE EFFECT ........................................................................................................................................36 11 - DUCKER EFFECT..................................................................................................................................36 12 - DELAY EFFECT ....................................................................................................................................36 17 - SOLO EFFECT.......................................................................................................................................36 25 - MATRIX LEVEL EFFECT .......................................................................................................................37 50 - UNIVERSAL REMOTE EFFECT ..............................................................................................................37 51 - LOGIC INPUT EFFECT ...........................................................................................................................37 53 - LOGIC OUTPUT EFFECT .......................................................................................................................38 69 - MATRIX ENABLE EFFECT ....................................................................................................................38 101 - LABEL EFFECT...................................................................................................................................38 224 - AUTOMIX EFFECT ..............................................................................................................................38 240 - GLOBAL EFFECT ................................................................................................................................39 243 - DUMMY EFFECT ................................................................................................................................39 APPENDIX E – DX FAMILY CONFIGURATION FILES ....................................................................40 APPENDIX F – EXAMPLES .....................................................................................................................42 1 - PING ......................................................................................................................................................42 2 - IDENTIFY DEVICE ..................................................................................................................................43 3 - STATUS QUERY: HARDWARE INFORMATION ........................................................................................43 4 - DATA REQUEST: METERS .....................................................................................................................44 5 - METERS .................................................................................................................................................45 6 - DATA REQUEST: PARAMETER EDIT ......................................................................................................46 7 - PARAMETER EDIT ..................................................................................................................................47 8 - PRESET LOAD ........................................................................................................................................49 4 LOUD Technologies, Inc. 11/19/2009 Overview This document is intended for use in interfacing remote controller hardware with EAWC DX Family installed sound mixers via the rear RS-232 port. It specifies the details of the physical interface, the interface protocol (Bucket Net), and the hierarchy of device parameters, as well as presenting some specific examples of ‘finished’ RS-232 control messages. The bulk of this document is comprised of reduced specification for the Bucket Net protocol, tailored to be specific to the needs of RS-232 controller interfacing. DX Family Devices ‘speak’ Bucket Net over RS-232, USB, and Ethernet. The DX Navigator software GUI for use with DX Family devices can communicate (using Bucket Net) across any (or all) of these communications channels. RS-232 controllers can similarly interface using Bucket Net messaging. This document is intended to be generic to the entire DX Family of devices. Interface designers will need to consult the (parameter) Configuration File specific to the DX Family member their particular controller is intended to connect to in order to access the specific parameter lists for that device. RS-232 DX Family devices utilize a standard RS-232 interface, running at 115200 baud, with 8 data bits, no parity bit, 1 stop bit, and no flow control. Bucket Net messages are composed of 32-bit words. Those words should be broken down into 4 8-bit words for transmission over RS-232 and sent least significant byte (LSB) first. http://www.eaw.com 5 LOUD Technologies, Inc. 11/19/2009 Handshaking DX Family devices do not use flow control to regulate RS-232 communications; there is no hardware handshaking. Additionally, Bucket Net does not specify any particular software handshaking protocol. It is up to developers to insure that they: Provide adequate time for each message to be handled and for any responses to be generated, Handle those responses, Maintain synchronization of parameter data between the controller and device. There are a number of factors which complicate this task: Some Bucket Net messages generate responses, but many do not generate any acknowledgement at all. Some Bucket Net messages can generate multiple responses, and the number of responses, while consistent for any specific message, may be unpredictable until the first time the message is sent. There is no easy way in Bucket Net to ‘get’ a parameter value in order to verify a ‘set’. Note that all messages received on a particular communications channel are serialized by the DX Family device. No valid message directed at the device is dropped, and each message must be handled in sequence before the next can be handled. Specific suggestions for dealing with the points above: ‘Throttling’ parameter changes so that, for instance, slider pulls, don’t generate edits more often than the human eye and/or ear can perceive them (a few Hz), should allow plenty of time for the device to keep up. Waiting for all expected responses to arrive (with a timeout on the order of hundreds of milliseconds) and checking for errors (comm status, code execution, and/or event log) if any is not received. (Although note that errors from all communications interfaces are handled by the same registers.) Sending simple messages which generate a response (e.g. Ping, Status Query) can be used to verify that preceding messages have been received and handled. (Though watch out for invalid or misdirected messages, which will be ignored.) The ‘scratch’ buffer can be used to buffer presets (or potentially other specifically edited parameters) without changing device state. The ‘Dummy’ effect of the Global Type is specifically reserved for host use; its 32 unsigned long global parameters are never touched by the DX Family device, and can be used to ‘mark’ progress, flag the end of multiple responses, etc. http://www.eaw.com 6 LOUD Technologies, Inc. 11/19/2009 Bucket Net Protocol Bucket Net is an extensible messaging protocol intended primarily for use as a control protocol for digital audio devices. It is intended to be independent of any particular communications method, processor, or memory device. Message Format Bucket Net messages consist of a series of 32-bit words; they are of variable length. Each message has a 3 word header segment. Messages may or may not have an additional, message specific, data segment. The data segment, if present, will have a maximum length of 255 32-bit words, for a maximum message length of 258 words. In order to be properly handled, messages should be 32-bit aligned with respect to memory. All messages should consist of an integral number of 32-bit words; pad bytes should be postpended as necessary to satisfy this requirement. Unused bytes and pad bytes should be filled with the hexadecimal value 0xFF. (WARNING: While the value 0xFF is specified by the current and previous versions of the Bucket Net Specification, many Bucket Net implementations seem to expect a fill value of 0x00!) http://www.eaw.com 7 LOUD Technologies, Inc. 11/19/2009 Header Format A Bucket Net message header consists of 3 words, divided into 9 fields (some multibyte): W O R D 0 1 2 3 … LSB 0 SYNC MSGID LO MSGCHKSUM LO (DATA BYTE 0) 1 LENGTH MSGID HI MSGCHKSUM HI (DATA BYTE 1) 2 DESTINST SRCINST HDRCHKSUM LO (…) MSB 3 DESTFAM SRCFAM HDRCHKSUM HI = header segment = data segment SYNC – The byte 0xA5 is used to signify the start of a Bucket Net message. LENGTH – The length (in 32-bit words) of the data segment. DESTINST – The 8-bit instance designation of destination device. DESTFAM – The 8-bit family designation of the destination device. MSGID – The 16-bit message specific message identifier (ID). SRCINST – The 8-bit instance designation of the source device. SRCFAM – The 8-bit family designation of the source device. MSGCHKSUM – The 16-bit message checksum. This checksum is computed by taking the 1’s complement of the sum of the bytes in the data segment. (And so has the value 0xFFFF if ‘LENGTH’ is 0.) HDRCHCKSUM – The 16-bit header checksum. This checksum is computed by taking the 1’s complement of the sum of the other 10 bytes in the header segment (including the message checksum). Note that while the family designation of a particular host or device is fixed, the instance designation may be initialized to 0xFE (BUCKETNET_DEVICE_UNINITIALIZED) and assigned during communications set up. Note further that the value 0xFF (BUCKETNET_DEVICE_GLOBAL) is generally reserved for broadcast use, and thus should not be assigned to a particular instance (or family). All devices should handle a broadcast message. Data Format Whether a particular message has a data segment, and, if so, the contents of that segment, are message ID dependent. Details of specific message IDs and their respective data segments’ formats are presented in the next section. Note the general caution (see ‘Message Format’) that all messages must consist of an integral number of 32-bits words, with pad bytes inserted as necessary. http://www.eaw.com 8 LOUD Technologies, Inc. 11/19/2009 Bucket Net Messages A number of Bucket Net messages (message IDs) have been defined: Message ID Description Ping Status Query Memory Read Assign Device Instance Who Is Out There Assign Device Label Ping Response Status Query Response Memory Read Response Who Is Out There Response Meters Fat Channel Meters Parameter Edit Data Request 0x00 0x01 0x05 0x06 0x08 0x0F 0x30 0x31 0x35 0x38 Query the device for its firmware version information. Query the device for specific status information. Read 32-bit data from memory. Assign a device instance number. Query the device for its serial number. Assign a device (ASCII) label. Requested firmware version info. Requested status info. Requested 32-bit data from memory. Requested serial number. * * * * 0x51 0x52 0x54 0x5B * Requested meter values. * Requested ‘fat channel’ meter values. Sets the specified parameter(s). Request (to set locally) a specified type of data from the (remote) device (e.g. meters, parameter values). Identify Device 0x5C Override the front panel LEDs for device ID purposes. Preset Info 0x71 Request information about a preset. Preset Info Response 0x72 * Requested preset info. Preset Store 0x73 Store the current state to a preset. Preset Load 0x74 Load the current state from a preset. Preset Clear 0x75 Clear a preset.. * DX Family devices generate, but do not handle, this message ID. http://www.eaw.com 9 LOUD Technologies, Inc. 11/19/2009 Ping (0x00) Correctly addressed devices should respond with a Ping Response message. Ping messages have no data segment. Status Query (0x01) Correctly addressed devices should respond with a Status Query Response message. Status Query messages have an optional (16-bit) data segment. If no data segment is present, the default status code for the device should be handled. (DX Family default: 0x00.): LSB 0 3 STATUS_CODE_LO Status Codes 0x0000 0x0004 0x0005 0x0007 0x0009 0x000B 0x000D 0x0011 0x0013 0x0015 1 2 STATUS_CODE_HI MSB 3 Hardware Information Boot Status Code Execution Error Hardware Serial Number Communication Status Firmware Version Operational Status Debug Log Address Current Time IP Address Memory Read (0x05) Correctly addressed devices should respond with a Memory Read Response message. Memory Read messages have a 2 word data segment consisting of a control code and the address of the read (byte addressing is assumed): LSB 0 1 3 CONTROL_CODE_LO … 4 ADDRESS_LO … 2 … … MSB 3 CONTROL_CODE_HI ADDRESS_HI While the control codes are technically the same as those used in Memory Write messages, only the data length field (least significant byte) is applicable to reads. http://www.eaw.com 10 LOUD Technologies, Inc. 11/19/2009 Assign Device Instance (0x06) Assign Device Instance messages have a 3 word data segment: LSB 0 3 DESTINST 4 SERIAL_1 5 SERIAL_5 1 DESTFAM SERIAL_2 SERIAL_6 2 MSB 3 SERIAL_3 SERIAL_7 SERIAL_4 SERIAL_8 If the 64-bit serial number contained in the second and third data words matches the device serial number, or if the serial number 0xFFFFFFFFFFFFFFFF is specified, then the device should update its device family and instance values to match the 8-bit values specified in the first data word (unless the specified value is 0xFF, in which case that field should not be changed). Example: The device instance value 0xFE indicates that the device instance is uninitialized. In order to reset a device to uninitialized state, a data segment of 0xFE, 0xFF, fill, fill, 0xFFFFFFFF, 0xFFFFFFFF should be sent, overwriting the instance to 0xFE, but not changing the family, of any receiving device. Who Is Out There (0x08) Correctly addressed devices should respond with a Who Is Out There Response message. Who Is Out There messages have no data segment. http://www.eaw.com 11 LOUD Technologies, Inc. 11/19/2009 Assign Device Label (0x0F) Assign Device Label messages have an 8 word data segment, consisting of a single, NULL terminated, ASCII character string to be used as a device name or label: LSB 0 3 LABEL_1 4 LABEL_5 5 LABEL_9 6 LABEL_13 7 LABEL_17 8 LABEL_21 9 LABEL_25 10 LABEL_29 1 LABEL_2 LABEL_6 LABEL_10 LABEL_14 LABEL_18 LABEL_22 LABEL_26 LABEL_30 2 LABEL_3 LABEL_7 LABEL_11 LABEL_15 LABEL_19 LABEL_23 LABEL_27 LABEL_31 MSB 3 LABEL_4 LABEL_8 LABEL_12 LABEL_16 LABEL_20 LABEL_24 LABEL_28 LABEL_32 Ping Response (0x30) Generated in response to a Ping message. The data segment of a Ping Response consists of one word: LSB 3 0 OS_BUILDNUMBER OS Build Type Release Type (bits 0-3) OS Type (bits 4-7) MSB 1 OS_BUILDTYPE 2 OS_VERSION_LO 0x00 = Release 0x01 = Development 0x02 = Alpha 0x03 = Beta 0x00 = Boot 0x10 = BIST 0x20 = OS 0x30 = Production Test http://www.eaw.com 12 3 OS_VERSION_HI LOUD Technologies, Inc. 11/19/2009 Status Query Response (0x31) Generated in response to a Status Query message. The data segment of a Status Query Response depends on the status code passed in the original message. The first word of the data segment always echoes this (16-bit) code back; further words are filled based on the code itself: LSB 0 3 STATUS_CODE_LO 4 DATA… 1 2 STATUS_CODE_HI MSB 3 A table of status codes is listed under the Status Query message. Hardware Information The status code specific data of an SQ: Hardware Information response consists of at least 3 data words, possibly more. The required 3 words encode details of the hardware and software model and version numbers. Any further data words are device dependent: 3 4 5 6 7 LSB Status_Code = 0 OS_BUILDNUMBER OS_BUILDTYPE MANUFACTID_LO … DEVICEMEM_LO DEVICEMEM_HI Device dependent… MSB OS_VERSION_LO OS_VERSION_HI … MANUFACTID_HI DEVICEFAM_LO DEVICEFAM_HI Device Dependent Information Model Manufacturer ID Device Family Family Member Information Description DX1208 DX200 0x00000066 0x00000066 0x0002 0x0002 0x0000 0x0001 Device Label Device Label DX Family Device Dependent Information Device Label (ASCII) Description 32 bytes of ASCII character data http://www.eaw.com 13 LOUD Technologies, Inc. 11/19/2009 Boot Status The status code specific data of an SQ: Boot Status response consists of 2 data words. The first concatenates the 16-bit boot status with the 16-bit boot time (see Assign Boot Time). The second indicates the address (in FLASH) of the boot code: 3 4 5 LSB Status_Code = 4 BOOT_STATUS_LO BOOT_STATUS_HI BOOT_TIME_LO BOOT_ADDR_LO … … Boot Status 0 0x8000 0x8001 0x8FFF Boot OK Boot Held Off By Command Boot Held Off By Key Boot Held Off By Failure Boot Address -1 -2 other Address Absent Address Corrupt Boot Address http://www.eaw.com 14 MSB BOOT_TIME_HI BOOT_ADDR_HI LOUD Technologies, Inc. 11/19/2009 Code Execution Error The status code specific data of an SQ: Code Execution response consists a single data word, a (device specific) code representing the most recent error generated by the device: 3 4 LSB Status_Code = 5 ERROR_CODE_LO MSB … … Note that reading the error code also clears the error register. Error Code -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 No Error – TCP Connection Refused No Error – Excess Remotes Ignored No Error – Preset Load No Error – Preset Clear No Error – Preset Store No Error – Logout No Error – Login No Error – Power On No Error – Reply In Place No Error Unknown Error Out of Memory VDK – Out of Threads Login Disabled Bad Password Insufficient Permission Session Timed Out Bucket Overflow Bucket Timeout BucketNet Error BucketNet – Unimplemented Message BucketNet – Unimplemented Option BucketNet – Unimplemented Status Code BucketNet – Unimplemented Request ID BucketNet – Payload Size Mismatch BucketNet – Payload Underflow BucketNet – Payload Overflow BucketNet – Bad Address BucketNet – Bad Data BucketNet – Bad Flags BucketNet – Bad Format BucketNet – Bad Type BucketNet – Bad Instance BucketNet – Bad Effect BucketNet – Bad Parameter BucketNet – Bad Source BucketNet – Bad Destination BucketNet – Checksum Mismatch BucketNet – Multiblock Format Required http://www.eaw.com 15 ERROR_CODE_HI LOUD Technologies, Inc. 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 11/19/2009 FishNet Error FishNet – Unimplemented Message FishNet – Bad Sync FishNet – Bad Source FishNet – Bad Destination FishNet – Bad Length FishNet – Bad ID FishNet – Checksum Mismatch FishNet – NACK Received FishNet – ERROR Received FLASH Erase Error FLASH Write Error FLASH Read Error Invalid FLASH Image SDRAM Error ADI – System Services Init Failure ADI – ISR Init Failure Ethernet Error Ethernet – UDP Error Ethernet – TCP Error Remote Not Responding Remote Dropped RS-485 Transmit Error RS-485 Receive Error RTC Not Ready Error SHARC Not Ready Error SHARC Error S/PDIF Error Transmit Failure UART Error UART RX FIFO Overflow USB RX FIFO Overflow http://www.eaw.com 16 LOUD Technologies, Inc. 11/19/2009 Hardware Serial Number The status code specific data of an SQ: Hardware Serial Number response consists of 2 data words, consisting of the 64-bit device serial number: LSB 3 Status_Code = 7 4 SERIAL_1 5 SERIAL_5 MSB SERIAL_2 SERIAL_6 SERIAL_3 SERIAL_7 SERIAL_4 SERIAL_8 Communication Status The status code specific data of an SQ: Communication Status response consists of a single data word encoding the current status of communications: LSB 3 Status_Code = 9 4 COMM_STATUS MSB Note that reading the communications status also clears any communications error. Communications Status Bit Description* 0 General Error 1 Buffer Overrun Error 2 Checksum Failure *A ‘1’ in the appropriate bit means the error has occurred; ‘0’ means no error. Firmware Version The status code specific data of an SQ: Firmware Version response is of variable length, depending on the status of the various processors running in the DX Family device: LSB 3 Status_Code = 11 4 OS_BUILDNUMBER 5 OS_BUILDNUMBER MSB OS_BUILDTYPE OS_BUILDTYPE OS_VERSION_LO OS_VERSION_HI OS_VERSION_LO OS_VERSION_HI If the device is in boot, only one additional word will be generated, encoding the Blackfin boot firmware version number. If the device is not in boot (in its ‘OS’), and the DSP is not ready (due to error), then only one additional word will be generated, encoding the Blackfin OS firmware version. If the device is not in boot, and the DSP is ready, then two additional words will be generated, encoding first the Blackfin OS firmware version, and then the SHARC DSP firmware version. http://www.eaw.com 17 LOUD Technologies, Inc. 11/19/2009 Operational Status The status code specific data of an SQ: Operational Status response consists of a single data word which encodes the operational status of the SHARC DSP: LSB 3 Status_Code = 13 4 OPS_STATUS_LO MSB … … OPS_STATUS_HI Note that the response to this status code is extremely device specific. SHARC DSP Operational Status Bits 0-1 Ready (10 = ready) 2 DXLink Valid (1 = valid) 3 DXLink Locked (1 = locked) 4 Audio Locked (1 = locked) 5 S/PDIF Reset Request (0 = stop, 1 = run) 6-30 Reserved 31 Error (1 = error) Debug Log Address The status code specific data of an SQ: Debug Log Address response consists of 4 data words, in 2 pairs of 2 words. Each pair communicates the base address and length in bytes of one page of the Event (Debug) Log in FLASH: 3 4 5 6 7 LSB Status_Code = 17 LOG0_ADDR_LO LOG0_BYTES_LO LOG1_ADDR_LO LOG1_BYTES_LO MSB … … … … … … … … LOG0_ADDR_HI LOG0_BYTES_HI LOG1_ADDR_HI LOG1_BYTES_HI The DX Family Event Log is used in a ping-pong fashion: once one page fills, the other is erased and begins to fill, so that there is always one full page of events in the history (once any page has filled). Each ‘line’ of the Event Log represents a single system event: Event Line Format (32-bit) Word 0 1 2 3 4-15 Description Timestamp (see Status Query: Current Time) Firmware Version (see Status Query: Firmware Version) Event Code (see Status Query: Code Execution Error) Event Modifier (Event Code specific) Event Desription (48 character NULL-terminated ASCII string) Uninitialized (erased) FLASH bytes read as 0xFF. Note that the value 0xFFFFFFFF is not a valid Blackfin RTC timestamp. http://www.eaw.com 18 LOUD Technologies, Inc. 11/19/2009 Current Time The status code specific data of an SQ: Current Time response consists of 2 data words; non-DX Family devices may use 3, depending on the value of the first word. LSB 3 Status Code = 19 4 FLAG_1 5 TIME_LO (0-31) (if 64-bit time) 6 TIME_LO (32-63) Flag Bits Bits 0 1-7 MSB … … TIME_HI (0-31) … … TIME_HI (32-63) 0 = Below 50kHz (Time Format = 32-bit) 1 = Above 50kHz (Time Format = 64-bit) Reserved (set to 0) DX Family devices use the Blackfin RTC time format: Blackfin RTC Time Format Bits 0-5 Seconds (0-59) 6-11 Minutes (0-59) 12-16 Hours (0-23) 17-31 Days (0-32767) NOTE: DX Family device times typically represent elapsed time since unit ‘birth’, counting up from 0. They are not set to reflect the accurate time of day. IP Address The status code specific data of an SQ: IP Address response consists of a single data word, the current IP address for the device in 32-bit unsigned integer (network) format: LSB 3 Status Code = 21 4 IP_ADDR_LO MSB … … IP_ADDR_HI Note that reading the IP address of a device which is using dynamic addressing will refresh the dynamic IP address (update the global parameter to match the current system address). http://www.eaw.com 19 LOUD Technologies, Inc. 11/19/2009 Memory Read Response (0x35) Generated in response to a Memory Read message. The data segment of a Memory Read Response consists of one or more words: LSB 0 3 ADDRESS_LO 4 DATA_LO … MORE DATA… 1 … … 2 … … MSB 3 ADDRESS_HI DATA_HI The address field should correspond to the address in the originating Memory Read. The count of (32-bit) data words should correspond to the length specified in the control codes. NOTE: Memory Reads have limited utility with respect to the DX Family. They are used primarily to access the Event Log (see Status Query: Debug Log Address). Most system data and parameters are ‘read’ using either specific Status Query messages or via Data Request messages. Who Is Out There Response (0x38) Generated in response to a Who Is Out There message. The data segment of a Who Is Out There Response consists of 2 words which can be concatenated to form the 64-bit device serial number: LSB 0 3 SERIAL_1 4 SERIAL_5 1 SERIAL_2 SERIAL_6 2 SERIAL_3 SERIAL_7 http://www.eaw.com 20 MSB 3 SERIAL_4 SERIAL_8 LOUD Technologies, Inc. 11/19/2009 Meters (0x51) (Usually) generated in response to a Data Request message. The data segment of a Meter message consists of one or more blocks, each of which in turn consists of at least 2 words. The first word concatenates the 8-bit Meter Type, the 8-bit Meter Flags, and the 8-bit Instance and Type IDs indicating the channel type and number of the first meter value. All subsequent words in the block of data will contain meter values in the format indicated by the flags, beginning with the indicated device Type and Instance and incrementing the instance by one for each new value: 3 4 5 … … … … LSB 0 METER_TYPE METER_VALUE_LO METER_VALUE_LO MORE VALUES… METER_TYPE METER_VALUE_LO MORE VALUES… 1 METER_FLAGS … … 2 PARMID_INST … … MSB 3 PARMID_TYPE METER_VALUE_HI METER_VALUE_HI METER_FLAGS … PARMID_INST … PARMID_TYPE METER_VALUE_HI Meter Type Bits 0-3 Meter Placement 0000 = Pre-DSP (Channel Input) 0001 = Post-DSP (Channel Output) 4-6 Meter Type 000 = Peak 7 Reserved (= 0) Meter Flag Bits 0-2 Meter Data Format 000 = 8-bit signed 001 = 16-bit signed (8.8) 010 = 32-bit float (IEEE float) 3-7 Meter Words This field indicates the number of 32-bit words of meter values in this block. Each word may contain multiple values, depending on the format specified (e.g. up to 4 in the case of an 8-bit format). A value of zero in this field indicates that meter values for all instances of the specified PARMID_TYPE are being supplied. Otherwise the first value begins from the instance specified by PARMID_INST. Example: If PARMID_INST is 0x09, the Meter Data Format requested is an 8-bit format, and Meter Words is 2, then this block of the Meter message contains meter data for channels 9 to 16 of this type. http://www.eaw.com 21 LOUD Technologies, Inc. 11/19/2009 Fat Channel Meters (0x52) (Usually) generated in response to a Data Request message. ‘Fat Channel’ meters are the meters associated with effects (such as gates, automixers, etc.), as opposed to (plain) meters, which are associated with types (channels). The data segment of a Fat Channel Meter message consists of one or more blocks, each of which in turn consists of at least 3 words. The first word concatenates the 8-bit Meter Flags, and the 8-bit Instance, Effect, and Type IDs indicating the channel type and number, as well as the effect, of the first meter value. The second word indicates the particular Meter ID (of the specified effect) of the meter values. All subsequent words in the block of data will contain meter values in the format indicated by the flags, beginning with the indicated device Type, Effect, Meter ID, and Instance and incrementing the instance by one for each new value If Meter ID is wild (0xFF), all Meter IDs of the effect are contained in the message, incrementing from lowest to highest per value. If values for more than one Instance are also required, then all meter IDs for the first instance are sent before the first meter ID of the second instance: 3 4 5 6 … … … .. … LSB 0 METER_FLAGS METERID_LO METER_VALUE_LO METER_VALUE_LO MORE VALUES… METER_FLAGS METERID_LO METER_VALUE_LO MORE VALUES… 1 PARMID_INST … … … 2 PARMID_EFFECT … … … MSB 3 PARMID_TYPE METERID_HI METER_VALUE_HI METER_VALUE_HI PARMID_INST … … PARMID_EFFECT … … PARMID_TYPE METERID_HI METER_VALUE_HI Meter Flag Bits 0-2 Meter Data Format 000 = 8-bit signed 001 = 16-bit signed (8.8) 010 = 32-bit float (IEEE float) 3-7 Meter Words This field indicates the number of 32-bit words of meter values in this block. Each word may contain multiple values, depending on the format specified (e.g. up to 4 in the case of an 8-bit format). A value of zero in this field indicates that meter values for all instances of the specified PARMID_TYPE are being supplied. Otherwise the first value begins from the instance specified by PARMID_INST. http://www.eaw.com 22 LOUD Technologies, Inc. 11/19/2009 Example: Data Request 0x000009a5, 0x0000005b, // data request 0x00000000, // checksum (gets calculated when sent) BNMESSAGE_ID_FATCHANMETERS, // Fat Meter request // Type ID Effect Channel Format Meters // Request ALL Analog Input Comp Input Meters in 32 bit float format (TYPEID_ANALOG_INPUT << 24)+(EFFECTID_COMP<<16)+ (0xFF<<8)+ 0x02, 1, // Request ALL Analog Input Gate Input Meters in 32 bit float format (TYPEID_ANALOG_INPUT << 24)+ (EFFECTID_GATE<<16)+(0xFF<<8)+ 0x02, 3; // Request Analog Input Channel 13 Comp Input Meter in 32 bit float format (TYPEID_ANALOG_INPUT << 24)+(EFFECTID_COMP<<16)+ (0x0D<<8)+ 0x0A, 1; // Request Analog Input Channel 13-24 Comp Input Meter in 32 bit float format (TYPEID_ANALOG_INPUT << 24)+(EFFECTID_COMP<<16)+ (0x0D<<8)+ 0x02, 1; Fat Channel Meters 0x000045A5, 0x0107FFC2, 0xC2B164ED, 0xC2B6057B, 0xC2B42D05, 0xC3107E90, 0x0108FFC2, 0xC2B164ED, 0xC2B6057B, 0xC2B42D05, 0xC3107E90, 0x01070D0A, 0xC2B42D05, 0x01070D62, 0xC2B42D05, 0xC3107E90, 0xFFFF0052, 0x00000001 0xC2B36C43, 0xC2B64B0C, 0xC2B65D94, 0xC3107E90, 0x00000003, 0xC2B36C43, 0xC2B64B0C, 0xC2B65D94, 0xC3107E90, 0x00000001, 0x???????? 0xC2B3FF1E, 0xC2B3D613, 0xC2B47779, 0xC2B38563, 0xC2B4953B, 0xC2B52BED, 0xC2B5C2E7, 0xC2B5AC61, 0xC2B29F2C, 0xC2B14BD4, 0xC3107E90, 0xC2B38771, 0xC2B33307, 0xC2B2C7A0, 0xC3107E90, 0xC2B172A5, 0xC2B3FF1E, 0xC2B3D613, 0xC2B47779, 0xC2B38563, 0xC2B4953B, 0xC2B52BED, 0xC2B5C2E7, 0xC2B5AC61, 0xC2B29F2C, 0xC2B14BD4, 0xC3107E90, 0xC2B38771, 0xC2B33307, 0xC2B2C7A0, 0xC3107E90, 0xC2B172A5, 0x00000001, 0xC2B65D94, 0xC2B47779, 0xC2B5C2E7, 0xC3107E90, 0xC3107E90, 0xC3107E90, 0xC2B38563, 0xC2B5AC61, 0xC2B38771, 0xC2B172A5; http://www.eaw.com 23 LOUD Technologies, Inc. 11/19/2009 Parameter Edit (0x54) Parameter Edit messages may be generated in response to a Data Request message; they are also commonly generated directly in response to user input. The data segment of a Parameter Edit message consists of one or more blocks, each of which in turn consists of at least 3 words. The first 32-bit data word consist of numerous Flags describing the format of the message and its contents; depending on these flags the content of subsequent fields may change. The second 32-bit data word specifies the precise (first) parameter to be edited, using a semihierarchical taxonomy common to all Bucket Net parameters (see below). Subsequent data words depend heavily on the particular Flags. The example below shows the typical format of DX Family Parameter Edits, with one parameter value per word, beginning with the parameter specified in the second word of the block and incrementing thereafter either by instance or parameter according to the Flags; there are two blocks of edits: 3 4 5 6 … X-1 X X+1 X+2 X+3 … X+M LSB 0 FLAGS1 PARMID_PARAM VALUE1_LO VALUE2_LO … VALUEN_LO FLAGS1 PARMID_NUMBER VALUE1_LO VALUE2_LO … VALUEN_LO 1 FLAGS2 PARMID_INST … … 2 FLAGS3 PARMID_EFFECT … … MSB 3 FLAGS4 PARMID_TYPE VALUE1_HI VALUE2_HI … FLAGS2 PARMID_INST … … … FLAGS3 PARMID_EFFECT … … VALUEN_HI FLAGS4 PARMID_TYPE VALUE1_HI VALUE2_HI … … VALUEN_HI http://www.eaw.com 24 LOUD Technologies, Inc. 11/19/2009 FLAGS1 Bits – General Flags 0 Autoincrement Enable 0 = Disabled (Single Parameter Edit) 1 = Enabled (see Autoincrement Type) 1 Reserved (= 0) 2-3 Reserved (= 00) 4 Autoincrement Type 0 = Increment Parameter Number 1 = Increment Instance Number 5-6 Reserved (= 00) 7 Reserved (= 0) FLAGS2 Bits – Data Format 0 Reserved (= 0) 1-5 Data Element Format 00000 = unsigned long (32-bit) 00001 = signed long (32-bit) 00010 = unsigned short (16-bit) 00011 = signed short (16-bit) 00100 = unsigned char (8-bit) 00101 = signed char (8-bit) 00110 = float (32-bit IEEE float) 00111 = double (64-bit IEEE double precision) 01000 = double long (64-bit signed integer) 01001 = fractional data type (16.16) 01001-11111 = Reserved 6-7 Reserved (= 00) FLAGS3 Bits – Target Buffer 0 Target Buffer (to Edit) 0 = Edit Buffer 1 = Scratch Buffer 1-5 Reserved (ignored) 6-7 Reserved (= 00) FLAGS4 – Block Length 0 Block continues to the end of the message. 1-255 Block Words - This field indicates the number of 32-bit words of parameters in this block. Each word may contain multiple values, depending on the format specified (e.g. up to 4 in the case of an 8-bit format). http://www.eaw.com 25 LOUD Technologies, Inc. 11/19/2009 Parameter IDs Parameters in Bucket Net are specified using four values: TYPE EFFECT INSTANCE PARAMETER (NUMBER) The ‘type’ or ‘channel’, e.g. Analog Input, Global, or Logic Output, etc. E.g. Compressor, Gate, EQ, Fader, Logic Input, Label, Global, Mute, etc. ‘Types’ are grouped into multiple instances, e.g. Analog Outputs 1-8; this is the particular instance number. Note that ‘Global’ types have 0 instances. These are the specific parameters of a particular effect, e.g. Gate Attack, Fader Level, Mute Enable, Global Default Preset, etc. The current state of all parameters is maintained in volatile memory (RAM); this memory buffer is referred to as the ‘edit’ buffer. Edits to the edit buffer have an immediate effect on device state. A mirror buffer of the same size is also maintained; this ‘scratch’ buffer can be used to buffer presets or individual parameter data without affecting the current state. Examples: Parameter Edit (Single Block) 0x00000aa5, 0x00000054, 0x00000000, 0x00000c01, 0x01080201, 0x3f800000, 0x430177f8, 0x00000000, 0x42480000, 0xc2700000, 0x3f800000, 0x00000000, 0x00000000 // // // // // // // // // // // // parameter edit checksum (gets calculated when sent) format flag (auto increment – parameter, 32 bit float) starting PID (analog input, gate effect, channel 2, parameter 1) value of PID 0x01080201 value of PID 0x01080202 value of PID 0x01080203 value of PID 0x01080204 value of PID 0x01080205 value of PID 0x01080206 value of PID 0x01080207 value of PID 0x01080208 Parameter Edit (Multiple Block) 0x000007a5, 0x00000054, // parameter edit 0x00000000, // checksum (gets calculated when sent) 0x06000a11, 0x01010101, 0x05ff0ef8, 0x0000fff3, // // // // format flag (auto increment – instance, 8 bit char) starting PID (analog input, fader, channel 1, parameter 1) values of PID 0x01010101 (value of f8) to 0x01010401 (value of 05) values of PID 0x01010501 (value of f3) to 0x01010601 (value of ff) 0x01000000, // format flag (auto increment off, ulong 32 bits) 0x01050107, // starting PID (analog input, eq, channel 1, band 2 enable) 0x00000001, // value of PID 0x01050107 http://www.eaw.com 26 LOUD Technologies, Inc. 11/19/2009 Data Request (0x5B) Correctly addressed devices should respond with the specified message type. Data Request messages have at least 1 word in their data segment. This first word consists of an 8-bit Data Request ID describing the type of data requested; the other 24 bits of the first word, and all subsequent words in the data segment, depend on the data type requested: 3 4 LSB 0 DATAREQ_ID DATA… Data Request Types Request Type Meters Fat Channel Meters Parameter Edit 1 (FLAGS1) DATAREQ_ID 0x51 (81) 0x52 (82) 0x54 (84) 2 (FLAGS2) MSB 3 (FLAGS3) FLAGS1 N/A N/A Source/Destination Buffer Meters The Data Request Type specific data of an DR: Meters consists of 1 data word per request; each request word should generate a new block in the Meters message response. (WARNING: Requesting more meter data than can be fit into the payload of a single Meters message is invalid!) Each data word is formatted exactly as the first data word of a Meters message, except that PARMID_INST is allowed to be wild (0xFF), requesting all instances of the specified type, and Meter Flag Bits 3-7 are modified to accommodate wildcarding: 4 5 … LSB METER_TYPE METER_TYPE MORE REQS… METER_FLAGS METER_FLAGS PARMID_INST PARMID_INST Meter Flag Bits 3-7 Meter Words If PARMID_INST is wild (0xFF) this field is omitted (set to zero); meter data for all instances of the specified type should be returned. Otherwise, this field indicates the number of 32-bit words of meter values in this block, as usual. Each word may contain multiple values, depending on the format specified (e.g. up to 4 in the case of an 8-bit format). http://www.eaw.com 27 MSB PARMID_TYPE PARMID_TYPE LOUD Technologies, Inc. 11/19/2009 Fat Channel Meters The Data Request Type specific data of an DR: Fat Channel Meters consists of 2 data words per request; each request word should generate a new block in the Fat Channel Meters message response. (WARNING: Requesting more fat channel meter data than can be fit into the payload of a single Fat Channel Meters message is invalid!) Each request is formatted exactly as the first two data words of a Fat Channel Meters message, except that PARMID_INST is allowed to be wild (0xFF), requesting all instances of the specified type, and Meter Flag Bits 3-7 are modified to accommodate wildcarding. (Meter ID is allowed to be wild (0xFF) as usual.): 3 4 5 6 … LSB METER_FLAGS METERID_LO METER_FLAGS METERID_LO MORE REQS… PARMID_INST … PARMID_INST … PARMID_EFFECT … PARMID_EFFECT … Meter Flag Bits 3-7 Meter Words If PARMID_INST is wild (0xFF) this field is omitted (set to zero); meter data for all instances of the specified type should be returned. Otherwise, this field indicates the number of 32-bit words of meter values in this block, as usual. Each word may contain multiple values, depending on the format specified (e.g. up to 4 in the case of an 8-bit format). http://www.eaw.com 28 MSB PARMID_TYPE METERID_HI PARMID_TYPE METERID_HI LOUD Technologies, Inc. 11/19/2009 Parameter Edit The Data Request Type specific data of an DR: Parameter Edit consists of 1 data word; only one request is allowed per DR: Parameter Edit. Note, however, that a single Data Request of this type may generate multiple Parameter Edit messages in response, not just one; it is up to the recipient to decide how to package up the data requested. It should be stressed that the response to a DR: Parameter Edit is a Parameter Edit. The FLAGS1 field of the Data Request is used to specify the target buffer both for reading the parameter data on the recipient side and for editing on the requesting side. Requesting to Edit the edit buffer is effectively the same as a ‘Request to Set’, in that it destructively overwrites the current parameter value on the requesting side. Requesting to Edit the scratch buffer, however, can be used to emulate a ‘Get’; the received parameters can be compared to local parameters without altering current state. (Of course the difficulty in this case is getting the desired state into the scratch buffer.): FLAGS1 - Source/Destination Buffer 0 Edit Buffer 1 Scratch Buffer 2-255 Reserved The request is formatted exactly as the second data words of a Parameter Edit message, except that each 8-bit field is allowed to be wild (0xFF), with results as tabulated below: 3 LSB PARMID_PARAM Wildcard Effects Parameter ID Field TYPE PARMID_INST PARMID_EFFECT MSB PARMID_TYPE Effect Edits all parameters of the device. (WARNING: This will include any ‘dummy’ global effect used for handshaking!) Edits all parameters of the specified type. Edits all parameters of the specified effect. EFFECT INSTANCE & PARAMETER INSTANCE Edits all instances of the specified effect parameter. PARAMETER Edits all parameters of the specified effect instance. NOTE: Only the ‘most significant’ wildcard will be applied, except in the case of both Instance and Parameter wildcarding. http://www.eaw.com 29 LOUD Technologies, Inc. 11/19/2009 Identify Device (0x5C) Identify Device messages have a 1 word data segment, indicating the desired response of the front panel I/O LEDs: LSB 0 3 LED_CMD_LO LED Command -1 (= 0xFFFFFFFF) 0 1 – 4294967294 (= N) 1 … 2 … MSB 3 LED_CMD_HI Turn LEDs On (random pattern) Turn LEDs Off Turn LEDs On (random pattern) for N ms, then Turn LEDs Off Preset Info (0x71) Correctly addressed devices should respond with a Preset Info Response message. Preset Info messages have a 1 word data segment. The low 16-bits specify the (Data) Index of the preset to be searched. The 8-bit Library Type field specifies the type of state buffer, which is fixed to ‘preset’ for DX Family devices. The remaining 8-bit field is used to specify the source or destination buffer for Preset Load and Store operations; it is ignored for purposes of the Info message: LSB 0 3 DATA_INDEX_LO 1 DATA_INDEX_HI 2 LIBRARY_TYPE MSB 3 SRC_DEST_BUF DX Family preset indices begin at 0; preset numbers (in DX Navigator) begin at 1. To convert from index to number, simply add 1 (or subtract 1 if going from number to index). Library Type 1 non-1 Preset Reserved Source/Destination Buffer 0 Edit Buffer 1 Scratch Buffer 2-255 Reserved NOTE: Current device state is referred to as the ‘edit’ buffer. Loading to the ‘edit’ buffer changes device state. The ‘scratch’ buffer can be loaded to with affecting device state. http://www.eaw.com 30 LOUD Technologies, Inc. 11/19/2009 Preset Info Response (0x72) Generated in response to a Preset Info message. The data segment of a Preset Info Response consists of 10 words. The first word copies the data segment of the originating Info message The second indicates the initialization status of the specified preset. The remaining 8 words contain a single, NULL terminated, ASCII character string (of up to 32 characters) reflecting the preset’s name or label (which should be NULL if the buffer is uninitialized): LSB 0 3 DATA_INDEX_LO 4 INIT_STATUS 5 LABEL_1 6 LABEL_5 7 LABEL_9 8 LABEL_13 9 LABEL_17 10 LABEL_21 11 LABEL_25 12 LABEL_29 Initialization Status 0 non-1 1 DATA_INDEX_HI 2 LIBRARY_TYPE MSB 3 SRC_DEST_BUF LABEL_2 LABEL_6 LABEL_10 LABEL_14 LABEL_18 LABEL_22 LABEL_26 LABEL_30 LABEL_3 LABEL_7 LABEL_11 LABEL_15 LABEL_19 LABEL_23 LABEL_27 LABEL_31 LABEL_4 LABEL_8 LABEL_12 LABEL_16 LABEL_20 LABEL_24 LABEL_28 LABEL_32 Buffer Uninitialized Buffer Initialized Preset Store (0x73) Preset Store messages have a 1 word data segment. The low 16-bits specify the (Data) Index of the (destination) preset to be written to. The 8-bit Library Type field specifies the type of state buffer. The 8-bit Source Buffer field is used to specify the source buffer to be read from: LSB 0 3 DATA_INDEX_LO 1 DATA_INDEX_HI 2 LIBRARY_TYPE MSB 3 SRC_BUFFER (See the Preset Info message for further detail.) Preset Load (0x74) Preset Load messages have a 1 word data segment. The low 16-bits specify the (Data) Index of the (source) preset to be read from. The 8-bit Library Type field specifies the type of state buffer. The 8-bit Destination Buffer field is used to specify the destination buffer to be written to: LSB 0 3 DATA_INDEX_LO 1 DATA_INDEX_HI 2 LIBRARY_TYPE (See the Preset Info message for further detail.) http://www.eaw.com 31 MSB 3 DEST_BUFFER LOUD Technologies, Inc. 11/19/2009 Preset Clear (0x75) Preset Clear messages have a 1 word data segment. The low 16-bits specify the (Data) Index of the (destination) preset to be cleared. The 8-bit Library Type field specifies the type of state buffer. The remaining 8-bit field is used to specify the source or destination buffer for Preset Load and Store operations; it is ignored for purposes of the Clear message: LSB 0 3 DATA_INDEX_LO 1 DATA_INDEX_HI 2 LIBRARY_TYPE (See the Preset Info message for further detail.) http://www.eaw.com 32 MSB 3 SRC_DEST_BUF LOUD Technologies, Inc. 11/19/2009 Appendix A – Device Family Device ID 0xFF 0x00 0x07 Description Global Device Family PC Host Processor (inc. DX Family) Appendix B – Device Instance Device ID 0xFF 0xFE Description Global Device (Broadcast) Uninitialized Device (Default) Appendix C – Channel/Type IDs Note also that while most channels can have one or more ‘instances’ (e.g. 8 analog inputs or 4 digital inputs), global ‘types’ have zero instances by convention. Channel/Type ID 1 2 3 50 51 53 225 227 240 Description Analog Input Digital Input Analog Output Remote Logic Input Logic Output DXLink Input DXLink Output Global http://www.eaw.com 33 LOUD Technologies, Inc. 11/19/2009 Appendix D – Effect and Parameter IDs Note that not all types (or channels) support all effects. Effect IDs Effect ID 1 2 4 5 6 7 8 11 12 17 25 50 51 53 69 101 224 240 243 Name Fader Mute Setup EQ Filter Compressor Gate Ducker Delay Solo Matrix Level Universal Remote Logic Input Logic Output Matrix Enable Label Automix Global Dummy Comments Mic Pre Parametric EQ High- or Lowpass Filter Alternatively a Limiter or an AGC Alternatively an Expander (‘Global’ effect - zero instances) Host scratchpad (‘Global’ effect - zero instances) Parameter IDs (by Effect) 1 - Fader Effect Parameter # 1 Description Fader Level 2 - Mute Effect Parameter # 1 Description Mute Enable 4 - Setup Effect Parameter # 1 2 3 Description Setup Enable Analog Trim (0, 20, 40, 50, 60 dB) Phantom Power http://www.eaw.com 34 LOUD Technologies, Inc. 11/19/2009 5 - EQ Effect Parameter # 1 2 3 4 5 6 7 8 9 10 11 12...16 17...21 22...26 27...31 32...36 37...41 Description EQ Enable (all bands) EQ Band 1 Enable EQ Band 1 Frequency EQ Band 1 Q EQ Band 1 Gain EQ Band 1 Type (see below) EQ Band 2 Enable EQ Band 2 Frequency EQ Band 2 Q EQ Band 2 Gain EQ Band 2 Type EQ Band 3 Enable, Frequency, Q, Gain, Type EQ Band 4 Enable, Frequency, Q, Gain, Type EQ Band 5 Enable, Frequency, Q, Gain, Type EQ Band 6 Enable, Frequency, Q, Gain, Type EQ Band 7 Enable, Frequency, Q, Gain, Type EQ Band 8 Enable, Frequency, Q, Gain, Type EQ Filter Types 0 1 2 3 4 5 6 Low Pass (2 order Butterworth) nd High Pass (2 order Butterworth) Band Pass (a.k.a. Parametric) nd Low Shelf (2 order) nd High Shelf (2 order) st Low Shelf (1 order) st High Shelf (1 order) nd 6 - Filter Effect Parameter # 1 2 3 4 5 6 7 8 9 Description Filter Enable (all bands) (constant) Highpass Filter Enable Highpass Filter Frequency Highpass Filter Type (see below) Highpass Filter Slope (6, 12, 18, or 24 dB) Lowpass Filter Enable Lowpass Filter Frequency Lowpass Filter Type Lowpass Filter Slope (6, 12, 18, or 24 dB) HPF & LPF Filter Types 0 Butterworth 1 Linkwitz-Riley 2 Bessel http://www.eaw.com 35 LOUD Technologies, Inc. 11/19/2009 7 - Compressor Effect Parameter # 1 2 3 4 5 6 7 8 9 10 11 12 Description Compressor Enable Gain (Makeup) Attack Release Threshold Ratio Knee (constant) Knee Enable (constant) Stereo Link Enable (constant) AGC Enable AGC Threshold AGC Target 8 - Gate Effect Parameter # 1 2 3 4 5 6 7 8 9 Description Gate Enable Attack Hold Release Threshold (Expander) Ratio (constant) (Gate) Range Mode (Gate -> 0 or Expander -> 1) (constant) Stereo Link Enable (constant) 11 - Ducker Effect NOTE: See also the Global effect for more ducker parameters. Parameter # Description 1 Ducker Enable 2 Priority 3 Level Detect 12 - Delay Effect Parameter # 1 2 Description Delay Enable Delay Time 17 - Solo Effect Parameter # 1 Description Solo Assign http://www.eaw.com 36 LOUD Technologies, Inc. 11/19/2009 25 - Matrix Level Effect Parameter # 1 2 3 … 29 Description Matrix Level Out Matrix Level In 1 Matrix Level In 2 … Matrix Level In 28 50 - Universal Remote Effect Parameter # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Description Initialized Present (read only) Enable ID Type I/O 1 LED State (read only) I/O 1 Action I/O 1 Event I/O 1 Select I/O 2 LED State (read only) I/O 2 Action I/O 2 Event I/O 2 Select I/O 3 LED State (read only) I/O 3 Action I/O 3 Event I/O 3 Select I/O 4 LED State (read only) I/O 4 Action I/O 4 Event I/O 4 Select 51 - Logic Input Effect Parameter # 1 2 3 4 5 6 Description Logic In Enable State (read only) Action Active Event Select http://www.eaw.com 37 LOUD Technologies, Inc. 11/19/2009 53 - Logic Output Effect Parameter # 1 2 3 4 5 Description Logic Out Enable State (read only) Active Event Select 69 - Matrix Enable Effect Parameter # 1 2 3 … 29 Description Matrix Enable Out Matrix Enable In 1 Matrix Enable In 2 … Matrix Enable In 28 101 - Label Effect Parameter # 1 2 3 4 5 6 7 8 Description Characters 0-3 Characters 4-7 Characters 8-11 Characters 12-15 Characters 16-19 Characters 20-23 Characters 24-27 Characters 28-31 224 - Automix Effect Parameter # 1 2 3 4 5 … 31 Description Automix Enable Response Ratio Assign In 1 Assign In 2 … Assign In 28 http://www.eaw.com 38 LOUD Technologies, Inc. 11/19/2009 240 - Global Effect NOTE: Global parameters are very device specific! Parameter # Description 1 Ducker Attack 2 Ducker Release 3 Ducker Threshold 4 Ducker Hold 5 Ducker Priority 1 Enable 6 Ducker Priority 1 Depth 7 Ducker Priority 2 Enable 8 Ducker Priority 2 Depth 9 Ducker Priority 3 Enable 10 Ducker Priority 3 Depth 11 Ducker Priority 4 Enable 12 Ducker Priority 4 Depth 13 Global Initialized (system maintained) 14 Preset Initialized (system maintained) 15 Default Preset 16 Login Enable 17 Admin Password Characters 0-3 (write only) 18 Admin Password Characters 4-7 (write only) 19 Admin Password Characters 8-11 (write only) 20 Admin Password Characters 12-15 (write only) 21 User Password Characters 0-3 (write only) 22 User Password Characters 4-7 (write only) 23 User Password Characters 8-11 (write only) 24 User Password Characters 12-15 (write only) 25 Static IP Enable 26 Static IP Address 27 Static IP Subnet Mask 28 Static IP Subnet Gateway 29 DXLink Master 30 DXLink Valid (read only) 31 DXLink Locked (read only) 32 Audio Locked (read only) 33 SHARC Ready (read only) 34 SHARC Error (read only) 35 Dynamic IP Address (read only) 243 - Dummy Effect Parameter # 1 2 … 32 Description Dummy 1 Dummy 2 … Dummy 32 http://www.eaw.com 39 LOUD Technologies, Inc. 11/19/2009 Appendix E – DX Family Configuration Files Each DX Family member (DX1208, DX200) has its own device-specific Configuration spreadsheet. This spreadsheet enumerates all device parameters in tabular format along with important statistics pertaining to each parameter and to various parameter groupings. This section is intended as a ‘key’ to deciphering a DX Family Configuration file. There is a single identifying label at the beginning of a DX Family Configuration, listing the device type and the date of the last file update. The rest of the file consists of a table of parameter information, with one parameter per row. There are twelve columns per row; most parameters have values in only a subset of the columns, as the file is laid out in a hierarchical format, per the Bucket Net Parameter ID hierarchy (see Parameter IDs). Column Heading TYPE INSTANCES Description Type IDs for each device Type (or channel). The number of instances of the specified Type. (‘Global’ effects have 0 instances by convention.) TAPS The number of meter placements available for the specified Type. (See Meters.) EFFECT Effect IDs for each Effect of the specified Type. Note the same effect can be used on multiple Types. WORDS This data is relevant for DSP interfacing only – it has no effect on external communications. FAT The number of fat channel meter IDs available for the specified Effect. (See Fat Channel Meters.) For most effects there are two meter IDs – one for the input signal level and the other for output signal level. However, the Automix effect takes input signals from each input channel, and it thus has many more IDs. PARAMETER Parameter IDs (or numbers) for each Parameter of the specified Effect. All Parameter ID values start at 1 and increment by 1 per parameter. SEGMENT The memory segment in which the value of the specified parameter is stored. (See below.) FORMAT The native format of the specified parameter. This is generally either Boolean, unsigned long integer, or 32-bit floating point, as DX Family device processors are 32-bit processors. (Note that 32bit Boolean values are representing using 32-bit unsigned long integers, so there are really only two formats.) MIN The minimum value of the specified parameter. INIT The initial (or default) value of the specified parameter. MAX The maximum value of the specified parameter. *All IDs are represented by #defined labels (which decode to the integral values specified in Appendices C & D) for readability. The first line of the parameter information specifies a type, its first effect, and the effect’s first parameter. Subsequent lines step through the rest of the effect parameters, one per line (with no gaps – constant parameters are used as placeholders for consecutive parameters which are not implemented or not user configurable on a particular device), until all effect parameters are specified. The next effect begins the next line, continuing until all effects of the type have been specified. The next type then begins the next line, until all types are specified and all device parameters have been accounted for. Note that while the effects and types need not be specified in any particular order, there can only be one occurrence of a particular type per device and only one occurrence of an effect per type. http://www.eaw.com 40 LOUD Technologies, Inc. 11/19/2009 Memory Segments SEGMENT Access 0 constant Description Constant or unused (placeholder) parameters. 1 Edits to these parameters will be ignored; requests will return their default value. Read only system state – not backed up to FLASH. read-only Edits to these parameters will be ignored; requests will return their current value. 2 write-only NOTE: Read-only parameters are generally allowed to change without notice – they must be polled or requested in order to maintain synchronization. Write only password data. Edits to these parameters will succeed; requests, however, will ALWAYS return their default value, even if they have been changed. 3 4 global NOTE: All write-only parameters are also global. Read- and writeable global control parameters. preset Edits to these parameters will affect the current system state, are immediately backed up to FLASH, and persist across power cycles. Read- and writeable preset specific parameters. Edits to these parameters will affect the current system state; unless the system state is backed up to FLASH using a Preset Store message the edits will not survive a power cycle. For user editable parameters (segments 2-4), the last four columns of the parameter information describe the format and limits of the parameter value. Attempts to set a parameter value to below its minimum or above its maximum will fail, causing the entire Parameter Edit message containing the change to be invalidated, and generating an error (see Status Query: Debug Log Address). Note that issuing a Preset Load specifying an uninitialized preset will effectively reset current device state to the default values of all (non-global) parameters. Finally, while the format column specifies the ‘native’ format of each parameter, some format conversion is built in to Bucket Net messaging. In particular, 32-bit floating format is commonly used as a sort of ‘interchange’ format for the purpose of generating autoincrement parameter Parameter Edit messages (possibly is response to a Data Request). When an entire effect instance is being specified using a single autoincrement parameter message, and the formats of the effect parameters are not all the same, it is expedient to avoid the use of multiblock edits by simply converting all the non-floating point parameter values (which are unsigned long integers on DX Family devices) into 32-bit floating point values. (WARNING: This conversion is not always possible without loss of precision or distortion of the parameter value!) DX Family devices may generate such Parameter Edit messages in response to Data Requests; DX Family Parameter Edit handlers will attempt to ‘deconvert’ received floating-point formatted data into its native format. http://www.eaw.com 41 LOUD Technologies, Inc. 11/19/2009 Appendix F – Examples This section is intended to navigate the reader step by step through the process of creating hexadecimal strings suitable for use in RS-232 interfacing for several basic messages. 1 - Ping Ping messages have no data segment, so creating one involves only filling in the proper header fields: Header Field SYNC LENGTH DESTINST Value 0xA5 0x00 (no data segment) A DESTFAM MSGID (16-bit) SRCINST SRCFAM MSGCHKSUM (16-bit) HDRCHKSUM (16-bit) The instance designation of the destination, if known and/or assigned. 0xFF will here will ‘broadcast’ to all instances; 0xFE will specify all uninitialized instances. It is typical to use Assign Device Instance to set the instance number of an uninitialized device instance. 0x07 (DX Family) 0x0000 (Ping message ID) 0x01 (or whatever instance you’d like to be) 0x00 (PC Host – We’re pretending to be a PC!) 0xFFFF (1’s complement of 0x0000, as there is no data segment) B This will depend on the value of A, and is computed by taking the 1’s complement of the sum of the (other) header bytes: 0xA5 + 0x00 + A + 0x07 + 0x00 + 0x00 + 0x01 + 0x00 + 0xFF + 0xFF. Thus, the finished Ping message, transmitted left to right, is: 0xA5, 0x00, A, 0x07, 0x00, 0x00, 0x01, 0x00, 0xFF, 0xFF, B (lo), B (hi) A DX Family device receiving this message should reply with a Ping Response message. http://www.eaw.com 42 LOUD Technologies, Inc. 11/19/2009 2 - Identify Device Identify Device messages do not generate a response; they do, on the other hand, generate visual feedback from the front panel of the connected device. The header of an Identify Device message is composed as shown for the Ping message, with two important differences: message ID and (data segment) length: Header Field LENGTH MSGID (16-bit) MSGCHKSUM (16-bit) Value 0x01 0x005C (Identify Device message ID) C HDRCHKSUM (16-bit) This will depend on the value of the bytes in the data segment. B This will depend on the values of A and C, and is computed by taking the 1’s complement of the sum of the (other) header bytes: 0xA5 + 0x00 + A + 0x07 + 0x00 + 0x5C + 0x01 + 0x00 + C (lo) + C (hi). Identify Device messages have a single data word, specifying the time (in ms) to take control of the front panel LEDs. For purposes of this example, let’s choose 3000 ms (0xBB8), yielding the following message string: 0xA5, 0x01, A, 0x07, 0x5C, 0x00, 0x01, 0x00, C (lo), C (hi), B (lo), B (hi), 0xB8, 0x0B, 0x00, 0x00 3 - Status Query: Hardware Information Status Query messages are used to ascertain all sorts of (non-parameter) system state. There are numerous status codes which can be sent; the response to each code depends on the code itself. The most basic Status Query it the default query, requesting Hardware Information: Header Field LENGTH MSGID (16-bit) Value 0x01 0x0001 (Status Query message ID) Status Queries have an optional data word. If no data segment is present, the default code is assumed. While the default code is Hardware Information, this example will specify the code explicitly anyway, in order to show the ‘full’ format. The code for Hardware Information is 0x0000: 0xA5, 0x01, A, 0x07, 0x01, 0x00, 0x01, 0x00, C (lo), C (hi), B (lo), B (hi), 0x00, 0x00, 0x00 or 0xFF, 0x00 or 0xFF Status codes are 16-bit, but all data segments must be 32-bit aligned. Thus the last two data bytes, should, technically, be ‘fill’ bytes (0xFF). Some Bucket Net capable systems do not appear to be able to handle fill bytes correctly; DX Family devices should. A Status Query Response should be generated in reply to this message. http://www.eaw.com 43 LOUD Technologies, Inc. 11/19/2009 4 - Data Request: Meters Data Request messages come in several flavors: Meters, Fat Channel Meters, and Parameter Edit. As Device Requests are heavily used in interfacing with DX Family devices, examples of both meter and parameter requests are given. Meters requests should generate Meters messages in response. Each data word of a Data Request: Meters will add one block to the response. Let’s create a request for all analog and digital input meter data at the inputs, plus the meters for analog outputs 3 & 4 (at the outputs); this request requires three data words (in addition to the word specifying the type of Data Request): Header Field LENGTH MSGID (16-bit) Value 0x04 0x005B (Data Request message ID) Data Byte 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Name Value Data Request ID N/A N/A N/A Meter Type Meter Flags Instance ID Type ID Meter Type Meter Flags Instance ID Type ID Meter Type Meter Flags 14 15 Instance ID Type ID 0x51 (Meters) 0x00 or 0xFF 0x00 or 0xFF 0x00 or 0xFF 0x00 (pre-DSP, peak) 0x02 (32-bit floating point – native meter format for DX Family) 0xFF (all) 0x01 (Analog Input) 0x00 (pre-DSP, peak) 0x02 (32-bit floating point – native meter format for DX Family) 0xFF (all) 0x02 (Digital Input) 0x01 (post-DSP, peak) 0x12 (32-bit floating point – native meter format for DX Family 0x02 OR’d with two meter words only 0x10) 0x03 (beginning with instance 3) 0x03 (Analog Output) Here’s the resulting message string: 0xA5, 0x04, A, 0x07, 0x5B, 0x00, 0x01, 0x00, C (lo), C (hi), B (lo), B (hi), 0x51, 0x00 or 0xFF, 0x00 or 0xFF, 0x00 or 0xFF, 0x00, 0x02, 0xFF, 0x01, 0x00, 0x02, 0xFF, 0x02, 0x01, 0x12, 0x03, 0x03 The response message will be examined in the next example. http://www.eaw.com 44 LOUD Technologies, Inc. 11/19/2009 5 - Meters Meters messages are not usually generated, as it is not possible to write audio levels directly. However, it is quite common to request meter data, and thus important to be able to parse and handle Meters messages. In the previous example we created a Data Request for all analog and digital input meter data (at the inputs), plus the meter data for (just) analog outputs 3 & 4 (at the outputs). After sending that message, a response like this should be received (suppressing the ‘0x’ prefixes indicating hexadecimal to save space, and using a fixed font for alignment): HEADER: BLOCK1: BLOCK2: BLOCK3: A5 00 56 30 00 E3 01 E3 11 42 13 A8 22 E9 12 E9 01 01 A5 60 01 F6 03 F6 00 01 C2 C0 02 C2 03 C2 51 00 FE 07 98 D8 82 FC 08 6F AA C2 5A B3 A5 C2 59 9B A8 C2 6C 51 A9 C2 AB CF A2 C2 69 79 A6 C2 E3 E9 F6 C2 E3 E9 F6 C2 E3 E9 F6 C2 E3 E9 F6 C2 The first line of the message is its header. Of note: The length of the data segment is 17 words, and this is a Meters message (ID 0x51). (Note also that the sender’s device instance is uninitialized – 0xFE.) The data segment of the message consists of three blocks, each beginning with a data word describing the meter values that follow. The data values themselves are in 32-bit floating point format, and, if decoded, show that not much is plugged in to the inputs of this device (just analog input 5); the output is also in digital silence. As expected, we see blocks of 8 values (analog inputs), 4 values (digital inputs), and 2 values (analog outputs 3 & 4). Decoding the block headers: Block 1 Meter Type Meter Flags Instance ID Type ID Value 0x00 0x42 0x01 0x01 Description pre-DSP, peak 32-bit floating point (0x02) OR’d with 8 words (0x40) Beginning with the first instance… Analog Input Block 2 Meter Type Meter Flags Instance ID Type ID Value 0x00 0x22 0x01 0x02 Description pre-DSP, peak 32-bit floating point (0x02) OR’d with 4 words (0x20) Beginning with the first instance… Digital Input Block 3 Meter Type Meter Flags Instance ID Type ID Value 0x01 0x12 0x03 0x03 Description post-DSP, peak 32-bit floating point (0x02) OR’d with 2 words (0x10) Beginning with the third instance… Analog Output http://www.eaw.com 45 LOUD Technologies, Inc. 11/19/2009 6 - Data Request: Parameter Edit Having generated a meter request in a previous example, now let’s generate a Data Request for parameter data, namely all the parameters of the Gate effect on Analog Input 5: Header Field LENGTH MSGID (16-bit) Data Byte 0 1 2 3 4 5 6 7 Value 0x02 0x005B (Data Request message ID) Name Value Data Request ID Flags 1 N/A N/A Parameter ID Instance ID Effect ID Type ID 0x54 (Parameter Edit) 0x00 (edit buffer) 0x00 or 0xFF 0x00 or 0xFF 0xFF (all) 0x05 (instance 5) 0x08 (Gate) 0x01 (Analog Input) Here’s the resulting message string: 0xA5, 0x02, A, 0x07, 0x5B, 0x00, 0x01, 0x00, C (lo), C (hi), B (lo), B (hi), 0x5C, 0x00, 0x00 or 0xFF, 0x00 or 0xFF, 0xFF, 0x05, 0x08, 0x01 The Parameter Edit message received in response will be examined in the next example. http://www.eaw.com 46 LOUD Technologies, Inc. 11/19/2009 7 - Parameter Edit In this example we will both examine the result of the Data Request: Parameter Edit from the previous example and generate a separate Parameter Edit message. In the previous example, we requested all of the parameter data for the Gate effect on Analog Input 5. The following message was received in reply: HEADER: FLAGS: IDS: VALUES: A5 01 01 00 00 00 0B 0C 05 00 00 00 01 00 08 00 20 00 00 09 01 00 C2 00 54 00 FE 07 10 FB EA FC 00 00 A0 41 00 00 80 3F 00 00 48 43 00 00 70 C2 00 00 48 43 00 00 00 00 The first line of the message is its header. Of note: The length of the data segment is 11 words, and this is a Parameter Edit message (ID 0x54). (Note also that the sender’s device instance is uninitialized – 0xFE.) Next, the flags: Flag General Flags Data Format Target Buffer Block Length Value 0x01 0x0C 0x00 0x09 Description Autoincrement (Parameter) 32-bit floating point Edit Buffer (current state) 9 words Finally, the Parameter IDs specify the first parameter in the of the data values – parameter 1 (0x01) of instance 5 (0x05) of effect 8 (Gate) of type 1 (Analog Input). Each parameter value after the first increments the parameter number, per the flags. The remaining data words are the values of the Gate parameters, from 1 to 9, in floating point format. Two things about this message require special note: Firstly, it is an edit message, and, while we may have requested it, there is no way to tell this particular Parameter Edit from another which the DX Family device may have generated in response to some other (remote) edit. This is not a ‘get’; it is a ‘request to set’. Secondly, the format, as specified in the flags, of ALL of the parameter data in the message is 32bit floating point. Assuming that the connected device is a DX1208, and examining the DX1208 Configuration file, we can see the formats of the Gate parameters. Parameters 1 (Enable), 8 (Mode), and 9 (Stereo Link Enable) are not natively floating point! The DX1208 has converted these values from integer format to floating point format in order to avoid using a multiblock Parameter Edit (or multiple edits) in response to the original Data Request. The local receiver will need to either handle these values as floating point, or to ‘deconvert’ them back to their native format(s). http://www.eaw.com 47 LOUD Technologies, Inc. 11/19/2009 Next, let’s create a Parameter Edit to a single, global parameter. Let’s enable static IP addressing: Header Field LENGTH MSGID (16-bit) Data Byte 0 1 2 3 4 5 6 7 Value 0x03 0x0054 (Parameter Edit message ID) Name Value General Flags Data Format Target Buffer Block Length Parameter ID Instance ID Effect ID Type ID 0x00 (Autoincrement Disabled) 0x00 (unsigned long integer) 0x00 (Edit Buffer) 0x00 (block extends to the end of the message) 0x19 (Static IP Enable) 0x00 (‘Global’ Type – no instances) 0xF0 (Global) 0xF0 (Global) We’re turning on static addressing, so we’ll need to change the (Boolean) value from 0x00000000 to 0x00000001. Here’s the resulting message string: 0xA5, 0x03, A, 0x07, 0x54, 0x00, 0x01, 0x00, C (lo), C (hi), B (lo), B (hi), 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0xF0, 0xF0, 0x01, 0x00, 0x00, 0x00 There is no response to this edit. (Nothing happened? You must be logged in to use a Parameter Edit over communications channels other than RS-232. Are you using RS-232?) http://www.eaw.com 48 LOUD Technologies, Inc. 11/19/2009 8 - Preset Load Once a connection is established, the majority of controller/device messaging is likely to consist of just a few message IDs: Data Requests, Parameter Edits, possibly Meters and/or Fat Channel Meters, and Preset Loads. This example shows how to create the last of these ‘basic’ messages: a Preset Load message. Preset Load messages have a single data word, which specifies both the preset index to load and the buffer to be loaded. RS-232 controllers are unlikely to want to use the ‘scratch’ buffer, which is mostly used for transferring data in and out of the device; in general they want to change device state by loading to the ‘edit’ buffer. For this example, let’s instruct the device to load its current state from preset number 5: Data Byte 0 1 2 3 Name Value Preset Index (lo) Preset Index (hi) Library Type Destination Buffer 0x04 (Preset Index = Preset Number – 1) 0x00 (always, as no DX Family device has this many presets) 0x01 (always – this just means ‘preset’) 0x00 (Edit Buffer – Change current device state!) As with all preset related messaging, see the Preset Info message for further details of the data segment fields. The resulting message string: 0xA5, 0x01, A, 0x07, 0x74, 0x00, 0x01, 0x00, C (lo), C (hi), B (lo), B (hi), 0x04, 0x00, 0x01, 0x00 Preset Load messages do not generate a response. http://www.eaw.com 49
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.6 Linearized : Yes Encryption : Standard V2.3 (128-bit) User Access : Print, Extract, Print high-res Tagged PDF : Yes XMP Toolkit : Adobe XMP Core 4.0-c321 44.398116, Tue Aug 04 2009 14:24:30 Create Date : 2009:11:19 20:32:10Z Creator Tool : Microsoft® Office Word 2007 Modify Date : 2009:11:19 12:38:43-08:00 Metadata Date : 2009:11:19 12:38:43-08:00 Format : application/pdf Creator : Alex Broadhead Title : RS-232 Interfacing Producer : Microsoft® Office Word 2007 Document ID : uuid:b53c16a7-285f-514d-985f-96f56743e509 Instance ID : uuid:ea4c1db6-bc26-fd4d-adb4-911db392c90f Page Count : 49 Language : en-US Author : Alex BroadheadEXIF Metadata provided by EXIF.tools