LH Presentation

advertisement
5th April 2010
Presentation AES X-170
at
IEEE 1722.1 Face to Face
Robby Gurdan
rg@umannet.com
07.04.2015
and Richard Foss
r.foss@umannet.com
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
07.04.2015
Page 2
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
07.04.2015
Page 3
AES X-170 Presentation
XFN Message Structure 2
Target IP Address (32 bit)
Target XFN Node ID
(8 bit)
Sender IP address
(continued)
Sender IP Address
(32 bit)
Sender XFN Node ID
(8 bit)
Sender Parameter ID
(continued)
User Level
(8 bit)
Sequence ID
Command Executive
(8 bit)
Sender Parameter ID
(32 bit)
Message Type
(8 bit)
(32 bit)
Command Qualifier
(8 bit)
Address Block
(104 bit)
Address Block (continued)
07.04.2015
Page 4
AES X-170 Presentation
XFN Message Structure 2
Target IP Address (32 bit)
Target XFN Node ID
(8 bit)
Sender IP address
(continued)
Sender IP Address
(32 bit)
Sender XFN Node ID
(8 bit)
Sender Parameter ID
(continued)
Sender Parameter ID
(32 bit)
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)
07.04.2015
Page 5
AES X-170 Presentation
XFN Message Structure 2
Target IP Address (32 bit)
Target XFN Node ID
(8 bit)
Sender IP address
(continued)
Sender IP Address
(32 bit)
Sender XFN Node ID
(8 bit)
Sender Parameter ID
(continued)
Sender Parameter ID
(32 bit)
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)
07.04.2015
Page 6
AES X-170 Presentation
XFN Message Structure 2
Target IP Address (32 bit)
Target XFN Node ID
(8 bit)
Sender IP address
(continued)
Sender IP Address
(32 bit)
Sender XFN Node ID
(8 bit)
Sender Parameter ID
(continued)
Sender Parameter ID
(32 bit)
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)
07.04.2015
Page 7
AES X-170 Presentation
XFN Message Structure 2
Target IP Address (32 bit)
Target XFN Node ID
(8 bit)
Sender IP address
(continued)
Sender IP Address
(32 bit)
Sender XFN Node ID
(8 bit)
Sender Parameter ID
(continued)
Sender Parameter ID
(32 bit)
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)
07.04.2015
Page 8
AES X-170 Presentation
XFN Message Structure 2
Target IP Address (32 bit)
Target XFN Node ID
(8 bit)
Sender IP address
(continued)
Sender IP Address
(32 bit)
Sender XFN Node ID
(8 bit)
Sender Parameter ID
(continued)
Sender Parameter ID
(32 bit)
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)
07.04.2015
Page 9
AES X-170 Presentation
XFN Message Structure 2
Target IP Address (32 bit)
Target XFN Node ID
(8 bit)
Sender IP address
(continued)
Sender IP Address
(32 bit)
Sender XFN Node ID
(8 bit)
Sender Parameter ID
(continued)
Sender Parameter ID
(32 bit)
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)
07.04.2015
Page 10
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:
•
•
•
•
07.04.2015
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 11
AES X-170 Presentation
The Origins of the Address Block
2. Input
matrix
3/4. Input
channels
5/6. Bus
matrix
7. Output
channels
1. Digital/
Analogue
input
9. Digital/
Analogue
output
07.04.2015
Page 12
8. Output
Matrix
AES X-170 Presentation
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
07.04.2015
Page 13
AES X-170 Presentation
XFN Message Structure 3
Command
Executive
(8 bit)
Parameter Type
(continued)
07.04.2015
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 Index
(16 bit)
Page 14
Value Format
(8 bit)
AES X-170 Presentation
XFN Message Structure 3
Command
Executive
(8 bit)
Parameter Type
(continued)
07.04.2015
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 Index
(16 bit)
Page 15
Value Format
(8 bit)
AES X-170 Presentation
XFN Message Structure 3
Command
Executive
(8 bit)
Parameter Type
(continued)
07.04.2015
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 Index
(16 bit)
Page 16
Value Format
(8 bit)
AES X-170 Presentation
XFN Message Structure 3
Command
Executive
(8 bit)
Parameter Type
(continued)
07.04.2015
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 Index
(16 bit)
Page 17
Value Format
(8 bit)
AES X-170 Presentation
XFN Message Structure 3
Command
Executive
(8 bit)
Parameter Type
(continued)
07.04.2015
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 Index
(16 bit)
Page 18
Value Format
(8 bit)
AES X-170 Presentation
XFN Message Structure 3
Command
Executive
(8 bit)
Parameter Type
(continued)
07.04.2015
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 Index
(16 bit)
Page 19
Value Format
(8 bit)
AES X-170 Presentation
XFN Message Structure 3
Command
Executive
(8 bit)
Parameter Type
(continued)
07.04.2015
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 Index
(16 bit)
Page 20
Value Format
(8 bit)
AES X-170 Presentation
XFN Message Structure 3
Command
Executive
(8 bit)
Parameter Type
(continued)
07.04.2015
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 Index
(16 bit)
Page 21
Value Format
(8 bit)
AES X-170 Presentation
XFN Message Structure 3
Command
Executive
(8 bit)
GAIN
(continued)
07.04.2015
Command
Qualifier
(8 bit)
SCT_BLOCK_INPUT
ID – 0x01
SCT_TYPE_AUDIO
ID – 0xD1
CHANNEL_NUMBER
ID – 0x100001
PRM_BLK_DIG_AMP
ID – 0x11
PRM_BLK_INDEX
ID – 0x00001
GAIN
ID – 0x201
PRM_INDEX
ID – 0x0001
Page 22
8 bit integer
ID – 0x00
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
07.04.2015
Page 23
AES X-170 Presentation
Creating a parameter on a device
X170
Device
Applicat
ion
Callback
1. Create level and parameter structures
2. Add to tree
Hierarchic
al tree
X170 Stack
Level
structures
Points
to
Parameter entry
structures
07.04.2015
Page 24
AES X-170 Presentation
Parameter Access
X170
Device
Applicat
ion
2 - Traverse
tree
1 – X170
message
Callback
3 – call
callback
Hierarchical
tree
X170
Stack
4 – Access
parameter
0x000
2
0xD10
1
0x100
007
.
Parameter entry
structures
Stored Parameter Values
.
07.04.2015
Page 25
AES X-170 Presentation
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
Multicore
Out socket
Network cable
Multicore
In socket
Audio channel
Multicore
07.04.2015
Audio device
Page 26
AES X-170 Presentation
The User view of the multicore concept
Devices View
Multicore View
Control and Monitoring
This is where you
choose the 2 devices
that you want to
connect with a
multicore
This is where you choose
the transmitting devices
output multicore socket
and the receiving
device’s input multicore
socket
This is where manufacturer-specific
desk items can be displayed
Transmitter View
Receiver View
This is where you indicate
how audio inputs to the
transmitting device are
routed to multicore audio
channels
This is where you
indicate how multicore
channels coming into
the receiving device are
routed to audio
outputs from the
device
User-tailored Control and
Monitoring
07.04.2015
Page 27
This is where the user can
construct a tailored control and
monitoring surface using controls
from more than one device.
AES X-170 Presentation
GUI Display of X170 Connection Management
1
2
3
4
5
6
Devices
Multicores
Talker
Listener
Deskitem
User
1 2 5
3 4 6
07.04.2015
Page 28
AES X-170 Presentation
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
07.04.2015
Page 29
AES X-170 Presentation
‘Talker’ parameters
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
• Multicore number – X-170 identifier for a particular stream
• ‘Wildcard’ this level to determine no of talker streams
07.04.2015
Page 30
AES X-170 Presentation
Stream ID parameter
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
• Each Talker Stream has a 64-bit Stream ID associated with it.
07.04.2015
Page 31
AES X-170 Presentation
Talker Advertise parameter
PBLIX
Multicore number
PARTP
XFN_PTYPE_ADVERTISE
PARIX
1
When doing an XFN GET VALUE on this parameter:
0: The Stream has not been advertised to the Ethernet AVB network
1: 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.
07.04.2015
Page 32
AES X-170 Presentation
‘Listener’ parameters
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
• Multicore number – X-170 identifier for a particular stream
• ‘Wildcard’ this level to determine no of listener streams
07.04.2015
Page 33
AES X-170 Presentation
Listener ‘Listen’ parameter
PBLIX
PARP
PARIX
Multicore number
XFN_PTYPE_LISTEN
1
When doing an XFN GET VALUE request on this parameter:
0: The associated Listener Stream is not receiving stream data from any Talker
1: 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.
07.04.2015
Page 34
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
Encapsulation – some of the outputs will be channels within multicores
07.04.2015
Page 35
AES X-170 Presentation
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
–
•
Set the Stream ID of the required Stream that is associated with the AVB Listener device.
–
•
•
XFN GET VALUE request on the Stream ID parameter of the Talker’s Stream.
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.
07.04.2015
Page 36
AES X-170 Presentation
A typical AVB test configuration
07.04.2015
Page 37
AES X-170 Presentation
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
07.04.2015
Page 38
AES X-170 Presentation
Pushing a Data block
Target Device
Control
application
4.SET DATABLOCK
XFN
Stack
Parameter
3.Send data
2.Read
Push List
Entry 1
Entry 2
1.Read
Periodic
Process
Entry n
Data to be
pushed
07.04.2015
Page 39
AES X-170 Presentation
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
07.04.2015
Page 40
AES X-170 Presentation
Grouping examples
• Master/Slave, relative, A is master:
07.04.2015
A
B
C
A
B
C
12
5
17
14
7
19
A
B
C
A
B
C
12
5
17
12
1
17
Page 41
AES X-170 Presentation
Grouping examples
Peer to Peer relative:
07.04.2015
A
B
C
A
B
C
12
5
17
14
7
19
A
B
C
A
B
C
12
5
17
8
1
13
Page 42
AES X-170 Presentation
Grouping Mechanisms
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>
07.04.2015
Page 43
AES X-170 Presentation
The Modifier Concept
• Can create ‘Modifier Blocks’ with variables
• Variables modify value or level addresses
–
–
–
–
–
–
–
–
–
–
07.04.2015
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
AES X-170 Presentation
Joining to and from Modifier parameters
Input Value
Parameter
Output
Value
Parameter
XFN msg
XFN msg
Join
Join
Value Change Script
Modifier
Parameter
Block
Fader
Parameter
07.04.2015
Page 45
Fader
Parameter
AES X-170 Presentation
Desk Items
•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
07.04.2015
Page 46
AES X-170 Presentation
The Desk Item mechanism
Device A
Device display
Desk item info
Device B
Control device
Desk item info request
Desk item info
Device C
Desk item info
07.04.2015
Page 47
AES X-170 Presentation
A Desk Item Editor
The Desk Item Displayed
A different desk item
Device Discovery
•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 addresses
ListData<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)
07.04.2015
Page 51
AES X-170 Presentation
Display of discovered devices
07.04.2015
Page 52
AES X-170 Presentation
Zeroconf and protocol Interoperability
A possible scenario:
Multiple devices on network, all able to generate and receive 1722 streams
Devices implement varying connection management and control protocols
Devices can’t stream to each other
Possible solutions
Controller that can speak multiple protocols
A proxy that can translate protocol messages
Either way
Determine the protocol spoken by devices
Use Zeroconf to do this
07.04.2015
Page 53
AES X-170 Presentation
X170 and OSC Interoperability
- 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)
07.04.2015
Page 54
AES X-170 Presentation
April 2010
Thank You!
07.04.2015
Page 55
AES X-170 Presentation
Download