presentation aes x-170 at ieee 1722.1 face to face robby gurdan and richard foss [email protected]...
TRANSCRIPT
Presentation AES X-170at
IEEE 1722.1 Face to Face
Robby Gurdan and Richard Foss [email protected] [email protected]
10.04.23
5th April 2010
XFN Overview
• IP-based peer to peer protocol
• Addressing of parameters is hierarchical
– Hierarchy reflects structure of device
– Levels in hierarchy are fixed
• Parameters can also be addressed by ID’s
• Parameters can be joined into groups
• ‘Modifiers’ can modify addresses/ values
• Desk Items – graphic display info in device
Page 2 10.04.23 AES X-170 Presentation
XFN Message Structure1
IP header including source and destination IP address
UDP header including source and destination port
XFN header and XFN address block
Page 3 10.04.23 AES X-170 Presentation
Target IP Address (32 bit)
Target XFN Node ID (8 bit)
Sender IP Address (32 bit)
Sender IP address(continued)
Sender XFN Node ID (8 bit)
Sender Parameter ID (32 bit)
Sender Parameter ID (continued)
User Level (8 bit)
Message Type (8 bit)
Sequence ID (32 bit)
Command Executive (8 bit)
Command Qualifier (8 bit)
Address Block (104 bit)
Address Block (continued)
Page 4 10.04.23 AES X-170 Presentation
XFN Message Structure 2
Target IP Address (32 bit)
Target XFN Node ID(8 bit)
Sender IP Address (32 bit)
Sender IP address(continued)
Sender XFN Node ID (8 bit)
Sender Parameter ID (32 bit)
Sender Parameter ID (continued)
User Level (8 bit)
Message Type (8 bit)
Sequence ID (32 bit)
Command Executive (8 bit)
Command Qualifier (8 bit)
Address Block (104 bit)
Address Block (continued)
Page 5 10.04.23 AES X-170 Presentation
XFN Message Structure 2
Target IP Address (32 bit)
Target XFN Node ID (8 bit)
Sender IP Address (32 bit)
Sender IP address(continued)
Sender XFN Node ID (8 bit)
Sender Parameter ID (32 bit)
Sender Parameter ID (continued)
User Level (8 bit)
Message Type (8 bit)
Sequence ID (32 bit)
Command Executive (8 bit)
Command Qualifier (8 bit)
Address Block (104 bit)
Address Block (continued)
Page 6 10.04.23 AES X-170 Presentation
XFN Message Structure 2
Target IP Address (32 bit)
Target XFN Node ID (8 bit)
Sender IP Address (32 bit)
Sender IP address(continued)
Sender XFN Node ID (8 bit)
Sender Parameter ID (32 bit)
Sender Parameter ID (continued)
User Level (8 bit)
Message Type (8 bit)
Sequence ID (32 bit)
Command Executive(8 bit)
Command Qualifier (8 bit)
Address Block (104 bit)
Address Block (continued)
Page 7 10.04.23 AES X-170 Presentation
XFN Message Structure 2
Target IP Address (32 bit)
Target XFN Node ID (8 bit)
Sender IP Address (32 bit)
Sender IP address(continued)
Sender XFN Node ID (8 bit)
Sender Parameter ID (32 bit)
Sender Parameter ID (continued)
User Level (8 bit)
Message Type (8 bit)
Sequence ID (32 bit)
Command Executive (8 bit)
Command Qualifier (8 bit)
Address Block (104 bit)
Address Block (continued)
Page 8 10.04.23 AES X-170 Presentation
XFN Message Structure 2
Target IP Address (32 bit)
Target XFN Node ID (8 bit)
Sender IP Address (32 bit)
Sender IP address(continued)
Sender XFN Node ID (8 bit)
Sender Parameter ID (32 bit)
Sender Parameter ID (continued)
User Level (8 bit)
Message Type (8 bit)
Sequence ID (32 bit)
Command Executive (8 bit)
Command Qualifier (8 bit)
Address Block (104 bit)
Address Block (continued)
Page 9 10.04.23 AES X-170 Presentation
XFN Message Structure 2
Target IP Address (32 bit)
Target XFN Node ID (8 bit)
Sender IP Address (32 bit)
Sender IP address(continued)
Sender XFN Node ID (8 bit)
Sender Parameter ID (32 bit)
Sender Parameter ID (continued)
User Level (8 bit)
Message Type (8 bit)
Sequence ID (32 bit)
Command Executive (8 bit)
Command Qualifier (8 bit)
Address Block (104 bit)
Address Block (continued)
Page 10 10.04.23 AES X-170 Presentation
XFN Message Structure 2
Page 11 10.04.23 AES X-170 Presentation
Command Executive, Command Qualifier
• Command Executive – indicates fundamental nature of command• Examples – GET, SET, ACT, JOIN/UNJOIN, CREATE
• Command Qualifier – refines the command executive• Examples – VAL, VTBL, FLAG, SEC, PUSH, DATA_BLOCK, PTP, MSTSLV, USG
• Example commands:• SET VAL <address of parameter> <Value>
• GET FLAG <address of parameter> - gets the flag field of a parameter
• JOIN PTP <address of parameter1> <Value-address of parameter 2,abs/rel>
• CREATE USG <address of parameter> <Value - address1, address2, …>
Page 12 10.04.23 AES X-170 Presentation
2. Input matrix
3/4. Input channels
5/6. Bus matrix
7. Outputchannels
1. Digital/Analogueinput
8. OutputMatrix
9. Digital/Analogueoutput
The Origins of the Address Block
The 7 levels of the Address Block
Most parameters conform to similar functional groupings:
• 1; Section Block – eg. Input section, Output section
• 2 ; Section Type – eg. Mic input, Line Input, ADAT input
• 3 ; Section Number – eg. Channel number
• 4 ; Parameter Block – eg. Equalizer block
• 5; Parameter Block Index – eg. Equalization sub-grouping (Q, freq)
• 6; Parameter Type – eg. Low frequency, gain, threshold
• 7; Parameter Index – eg. To identify gain parameter number
Page 13 10.04.23 AES X-170 Presentation
XFN Message Structure 3
Command Executive
(8 bit)
Command Qualifier (8 bit)
Section Block(8 bit)
Section Type(8 bit)
Section Number(24 bit)
Parameter Block(8 bit)
Parameter Block Index(24 bit)
Parameter Type(16 bit)
Parameter Type(continued)
Parameter Index(16 bit)
Value Format(8 bit)
Page 14 10.04.23 AES X-170 Presentation
XFN Message Structure 3
Command Executive
(8 bit)
Command Qualifier (8 bit)
Section Block(8 bit)
Section Type(8 bit)
Section Number(24 bit)
Parameter Block(8 bit)
Parameter Block Index(24 bit)
Parameter Type(16 bit)
Parameter Type(continued)
Parameter Index(16 bit)
Value Format(8 bit)
Page 15 10.04.23 AES X-170 Presentation
XFN Message Structure 3
Command Executive
(8 bit)
Command Qualifier (8 bit)
Section Block(8 bit)
Section Type(8 bit)
Section Number(24 bit)
Parameter Block(8 bit)
Parameter Block Index(24 bit)
Parameter Type(16 bit)
Parameter Type(continued)
Parameter Index(16 bit)
Value Format(8 bit)
Page 16 10.04.23 AES X-170 Presentation
XFN Message Structure 3
Command Executive
(8 bit)
Command Qualifier (8 bit)
Section Block(8 bit)
Section Type(8 bit)
Section Number(24 bit)
Parameter Block(8 bit)
Parameter Block Index(24 bit)
Parameter Type(16 bit)
Parameter Type(continued)
Parameter Index(16 bit)
Value Format(8 bit)
Page 17 10.04.23 AES X-170 Presentation
XFN Message Structure 3
Command Executive
(8 bit)
Command Qualifier (8 bit)
Section Block(8 bit)
Section Type(8 bit)
Section Number(24 bit)
Parameter Block(8 bit)
Parameter Block Index(24 bit)
Parameter Type(16 bit)
Parameter Type(continued)
Parameter Index(16 bit)
Value Format(8 bit)
Page 18 10.04.23 AES X-170 Presentation
XFN Message Structure 3
Command Executive
(8 bit)
Command Qualifier (8 bit)
Section Block(8 bit)
Section Type(8 bit)
Section Number(24 bit)
Parameter Block(8 bit)
Parameter Block Index(24 bit)
Parameter Type(16 bit)
Parameter Type(continued)
Parameter Index(16 bit)
Value Format(8 bit)
Page 19 10.04.23 AES X-170 Presentation
XFN Message Structure 3
Command Executive
(8 bit)
Command Qualifier (8 bit)
Section Block(8 bit)
Section Type(8 bit)
Section Number(24 bit)
Parameter Block(8 bit)
Parameter Block Index(24 bit)
Parameter Type(16 bit)
Parameter Type(continued)
Parameter Index(16 bit)
Value Format(8 bit)
Page 20 10.04.23 AES X-170 Presentation
XFN Message Structure 3
Command Executive
(8 bit)
Command Qualifier (8 bit)
Section Block(8 bit)
Section Type(8 bit)
Section Number(24 bit)
Parameter Block(8 bit)
Parameter Block Index(24 bit)
Parameter Type(16 bit)
Parameter Type(continued)
Parameter Index(16 bit)
Value Format(8 bit)
Page 21 10.04.23 AES X-170 Presentation
XFN Message Structure 3
Command Executive
(8 bit)
Command Qualifier (8 bit) SCT_BLOCK_INPUT
ID – 0x01SCT_TYPE_AUDIO
ID – 0xD1
CHANNEL_NUMBERID – 0x100001
PRM_BLK_DIG_AMP ID – 0x11
PRM_BLK_INDEXID – 0x00001
GAINID – 0x201
GAIN(continued)
PRM_INDEXID – 0x0001
8 bit integerID – 0x00
Page 22 10.04.23 AES X-170 Presentation
Motivations for fixed 7 level structure
• Can control any device without discovery
Example – – Small controller in large network of complex pro-audio devices– Address of gain parameter is known for:
• Channel 1• On any device
• Wildcard (all 1’s) can be inserted at any level• Provides single message control over many parameters• Allows for partial discovery
10.04.23 AES X-170 Presentation Page 23
Creating a parameter on a device
10.04.23 AES X-170 Presentation Page 24
X170 Device Applicat
ion
X170 Stack
Callback
Hierarchical tree
Parameter entry structures
Level structures
1. Create level and parameter structures
2. Add to tree
Points to
Parameter Access
10.04.23 AES X-170 Presentation Page 25
X170 Device
0x00020xD1010x100007
X170 Stack
Stored Parameter Values
Callback
Hierarchical tree
Application
.
.
Parameter entry structures
1 – X170 message
2 - Traverse tree
3 – call callback
4 – Access parameter
X-170 Connection Management Concepts
• Ethernet AVB -Multiple channels of audio in ‘streams’• X-170 - view as being clustered into multicore cables, or ‘multicores’
Audio device Audio device
Network cable
Multicore Audio channel
MulticoreOut socket
MulticoreIn socket
Page 26 10.04.23 AES X-170 Presentation
Devices View
This is where you choose the 2 devices that you want to connect with a multicore
Multicore View
This is where you choose the transmitting devices output multicore socket and the receiving device’s input multicore socket
Transmitter View
This is where you indicate how audio inputs to the transmitting device are routed to multicore audio channels
Receiver View
This is where you indicate how multicore channels coming into the receiving device are routed to audio outputs from the device
Control and Monitoring
This is where manufacturer-specific desk items can be displayed
User-tailored Control and Monitoring
This is where the user can construct a tailored control and monitoring surface using controls from more than one device.
The User view of the multicore concept
Page 27 10.04.23 AES X-170 Presentation
GUI Display of X170 Connection Management
1 Devices
2 Multicores
3 Talker
4 Listener
5 Deskitem
6 User
Page 28 10.04.23 AES X-170 Presentation
1 2
3 4
5
6
X-170 parameters for AVB connection management
Each Ethernet AVB device will have:
– Talker Streams – Listener Streams
These Streams can be viewed as multicores
via XFN, it is possible to determine:
– types of Streams an Ethernet AVB device has– properties associated with each stream
Page 29 10.04.23 AES X-170 Presentation
SECBLK XFN_SCT_BLOCK_OUTPUT
SECBLK XFN_SCT_BLOCK_OUTPUT
SECTYPE XFN_SCT_TYPE_STREAM
SECNR Interface No
PBLK XFN_PRM_BLOCK_AVB_MULTICORE
PBLIX Multicore number
PARTP XFN_PTYPE_STREAM_ID
PARIX 1
‘Talker’ parameters
• Multicore number – X-170 identifier for a particular stream• ‘Wildcard’ this level to determine no of talker streams
Page 30 10.04.23 AES X-170 Presentation
SECBLK XFN_SCT_BLOCK_OUTPUT
SECTYPE XFN_SCT_TYPE_STREAM
SECNR Interface No
PBLK XFN_PRM_BLOCK_AVB_MULTICORE
PBLIX Multicore number
PARTP XFN_PTYPE_STREAM_ID
PARIX 1
Stream ID parameter
• Each Talker Stream has a 64-bit Stream ID associated with it.
Page 31 10.04.23 AES X-170 Presentation
Talker Advertise parameter
When doing an XFN GET VALUE on this parameter:
0: The Stream has not been advertised to the Ethernet AVB network1: The Stream has been advertised to the Ethernet AVB network
When doing an XFN SET VALUE on this parameter:
0: If the associated Stream is being advertised, the Talker Advertise will be withdrawn. This will also have the effect of stopping this Stream, if it is currently streaming.
1: If the associated Stream is not being advertised, this will have the effect of advertising the Stream to the network.
PBLIX Multicore numberPARTP XFN_PTYPE_ADVERTISEPARIX 1
Page 32 10.04.23 AES X-170 Presentation
‘Listener’ parameters
• Multicore number – X-170 identifier for a particular stream• ‘Wildcard’ this level to determine no of listener streams
SECBLK XFN_SCT_BLOCK_INPUT
SECTYPE XFN_SCT_TYPE_STREAM
SECNR Interface No
PBLK XFN_PRM_BLOCK_AVB_MULTICORE
PBLIX Multicore number
PARTP Specific parameter type value
PARIX Specific parameter type index
Page 33 10.04.23 AES X-170 Presentation
When doing an XFN GET VALUE request on this parameter:
0: The associated Listener Stream is not receiving stream data from any Talker1: The associated Listener Stream has requested that a Talker stream data towards it
When doing an XFN SET VALUE on this parameter:
0: If the associated Listener Stream has requested attachment to a Talker Stream, the request will be withdrawn. If the Talker has no other Listeners receiving the Stream, it will stop sending out its Stream
1: If there is not currently a request to receive a Stream, a Listener Ready request will be sent out onto the AVB network. The Listener Ready request will contain the Stream ID that is associated with the Listener Stream.
Listener ‘Listen’ parameter
PBLIX Multicore numberPARP XFN_PTYPE_LISTENPARIX 1
Page 34 10.04.23 AES X-170 Presentation
Internal Routings
Level Name Audio input to audio output cross point enable
Section Block XFN_SCT_BLK_INPUT
Section Type XFN_SCT_TYPE_AUDIO
Section Number Integer – audio in number
Parameter Block XFN_PRM_BLOCK_OUTPUT
Param Block Index Integer – audio out number
Parameter Type XFN_CROSSPOINT_ENABLE
Parameter Index 1
Page 35 10.04.23 AES X-170 Presentation
Encapsulation – some of the outputs will be channels within multicores
Establishing and Tearing Down Streams
To establish a Stream connection between an AVB Talker and Listener device, the XFN device making the connection needs to:• Obtain the Stream ID of the required Stream associated with the AVB Talker device
– XFN GET VALUE request on the Stream ID parameter of the Talker’s Stream.
• Set the Stream ID of the required Stream that is associated with the AVB Listener device. – XFN SET VALUE request on the Stream ID parameter of the Listener’s Stream.
• Set the appropriate Talker’s XFN Advertise parameter to a value of 1.• Set the appropriate Listener’s XFN Listen parameter to a value of 1.
To tear-down a stream between an AVB Talker and an AVB Listener device, the device tearing down the stream needs to:• Set the appropriate Listener’s XFN Listen parameter to a value of 0.
Page 36 10.04.23 AES X-170 Presentation
Page 37 10.04.23 AES X-170 Presentation
A typical AVB test configuration
The concept of ‘Pushing’
• Often not efficient to GET values: – Multiple meter displays for target device– Repeated updates, short intervals
• ‘PUSH’ mechanism created:– Control application sends SET PUSH to target– Gives full address of parameter to push to
• Target adds control app parameter to its metering parameter Push list
• Target continuously:– Scans Push list of parameter– Sends meter block to each member of Push list
Page 38 10.04.23 AES X-170 Presentation
Page 39 10.04.23 AES X-170 Presentation
Pushing a Data block
Control application XFN
Stack
Parameter
Entry 1
Entry 2
Entry n
Push List
PeriodicProcess
Data to be pushed
Target Device
1.Read
2.Read3.Send data
4.SET DATABLOCK
Grouping Parameters
• Alter one parameter -> alter other parameters
• 2 types of groups:– Master/Slave - Change master, slaves change – change slave, no change of
master– Peer to peer – change any group member, others also change
• 2 types of relationship:– Absolute - take on same value– Relative – offset is maintained
Page 40 10.04.23 AES X-170 Presentation
• Master/Slave, relative, A is master:
Grouping examples
Page 41 10.04.23 AES X-170 Presentation
A
12
B
5
C
17
A
14
B
7
C
19
A
12
B
5
C
17
A
12
B
1
C
17
Peer to Peer relative:
Grouping examples
Page 42 10.04.23 AES X-170 Presentation
A
12
B
5
C
17
A
14
B
7
C
19
A
12
B
5
C
17
A
8
B
1
C
13
Each parameter will contain 3 lists:
• A list of peer parameters• A list of parameters that are its master• A list of parameters that are its slaves
Master/Slave: - make parameter A the master of parameter B
JOIN MSTSLV <address: XFN address of parameter A> <XFN address of parameter B> <abs/rel> Peer to peer: - join parameter A parameter B as peers: JOIN PTP <address: XFN address of parameter A> <XFN address of parameter B> <abs/rel>
Grouping Mechanisms
Page 43 10.04.23 AES X-170 Presentation
The Modifier Concept
• Can create ‘Modifier Blocks’ with variables• Variables modify value or level addresses
– Input Value Parameter (IVP)– Output Value Parameter (OVP)– Value script variable parameter (VVP)– Address block level 1 script variable parameter (L1VP)– Address block level 2 script variable parameter (L2VP)– Address block level 3 script variable parameter (L3VP)– Address block level 4 script variable parameter (L4VP)– Address block level 5 script variable parameter (L5VP)– Address block level 6 script variable parameter (L6VP)– Address block level 7 script variable parameter (L7VP)
Page 44 10.04.23 AES X-170 Presentation
Page 45 10.04.23 AES X-170 Presentation
Joining to and from Modifier parameters
FaderParameter
Input ValueParameter
ModifierParameterBlock
FaderParameter
Output ValueParameter
Value Change ScriptJoin
XFN msg
Join
XFN msg
•Graphical control items on desk top, examples:– slider, – pan pot.
•Information about desk items is in device:– Nature of desk item– Position of desk item– Graphical images for desk item– Associated device parameter
•Information allows a controller to:– Extract desk item information from device– Display in desired layout– Allow for user control of device parameter
Desk Items
Page 46 10.04.23 AES X-170 Presentation
The Desk Item mechanism
Page 47 10.04.23 AES X-170 Presentation
Desk item info
Device A
Desk item info
Device B
Desk item info
Device C
Device display
Control deviceDesk item info request
A Desk Item Editor
The Desk Item Displayed
A different desk item
•Enables fast discovery of a defined group of parameters–Controller indicates a defined set of parameters (IP address, name, etc)
–Broadcasts the following:Create USG <fragment size><no of address entries> <full address1, full address2, … fulladdressN>
–Controller directs the following message to each device:Get USG List <List N>
–Device provides parameter ID’s and values for these addressesListData<full address1, xfnID1, Value format1, Value1, full address1,
xfnID2, Value2, … full addressN, xfnIDN, Value formatN, ValueN>
•Two other contexts for using this:–Retrieval of parameter values from a device for later restoration (snapshots)
Set USG<No of entries> <xfnID1, Value format1, Value1, xfnID2, Value format2, Value2, … xfnIDN, Value formatN, ValueN>
–Regular bulk parameter updates from device to controller (eg for metering)
Device Discovery
Page 51 10.04.23 AES X-170 Presentation
Page 52 10.04.23 AES X-170 Presentation
Display of discovered devices
A possible scenario:Multiple devices on network, all able to generate and receive 1722 streamsDevices implement varying connection management and control protocolsDevices can’t stream to each other
Possible solutionsController that can speak multiple protocolsA proxy that can translate protocol messages
Either wayDetermine the protocol spoken by devicesUse Zeroconf to do this
Zeroconf and protocol Interoperability
Page 53 10.04.23 AES X-170 Presentation
- Created OSC device on Linux PC
- Creates OSC address space with stream parameters
- Create _osc._udp service type
- Register the service to be published using avahi to:Create an entry group Add service to entry group (specify name, service type, port n0, DNS TXT rec)Commit the entry group
- A proxy then:Browses for the _osc._udp service (callback called when service is available)Resolves the service within callback (obtains IP address, port number)
X170 and OSC Interoperability
Page 54 10.04.23 AES X-170 Presentation
April 2010
Thank You!
Page 55 10.04.23 AES X-170 Presentation