U.S. patent application number 14/268872 was filed with the patent office on 2014-11-13 for modular and scalable digital multimedia mixer.
The applicant listed for this patent is Randy Steck. Invention is credited to Randy Steck.
Application Number | 20140333841 14/268872 |
Document ID | / |
Family ID | 56114668 |
Filed Date | 2014-11-13 |
United States Patent
Application |
20140333841 |
Kind Code |
A1 |
Steck; Randy |
November 13, 2014 |
MODULAR AND SCALABLE DIGITAL MULTIMEDIA MIXER
Abstract
A modular multimedia platform includes a chassis into which a
variety of modular input/output units, referred to as ports, may be
inserted. The units may acquire an input signal and convert it to
high precision digital information, or convert a digital signal to
an analog signal and output the analog signal (or digital output
may be provided). Multiple chassis can be connected together to
increase the number of ports. A tag unit may be attached to any
device coupled to a port. Each tag has a unique identification
number to uniquely identify the device to which it is attached.
Inventors: |
Steck; Randy; (Hillsboro,
OR) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Steck; Randy |
Hillsboro |
OR |
US |
|
|
Family ID: |
56114668 |
Appl. No.: |
14/268872 |
Filed: |
May 2, 2014 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61822244 |
May 10, 2013 |
|
|
|
Current U.S.
Class: |
348/705 |
Current CPC
Class: |
H04L 63/083 20130101;
G06F 13/385 20130101; H04L 65/605 20130101; H04N 21/440245
20130101; H04H 60/04 20130101; H04L 63/102 20130101; H04N 21/4347
20130101; H04L 65/604 20130101; H04N 21/4305 20130101; H04L 67/025
20130101 |
Class at
Publication: |
348/705 |
International
Class: |
H04N 5/268 20060101
H04N005/268 |
Claims
1. A modular and scalable digital multimedia mixer for control
and/or operation of one or more media devices, comprising: a
control processor adapted for operational control or processing of
input from or output to said one or more media devices; and at
least one port device operable with said control processor and said
one or more at media devices to provide an interface between said
control processor and said at least one port device for operation
of, control of, or receiving input from said one or more media
devices.
2. The modular and scalable digital multimedia platform according
to claim 1, further comprising a chassis having a backplane adapted
for removably interfacing with said at least one port device.
3. The modular and scalable digital multimedia platform according
to claim 1, wherein said at least one port comprises a recognition
module to identify a media device that is attached to said at least
one port.
4. The modular and scalable digital multimedia platform according
to claim 1, further comprising a tag device associated with a media
device to provide a unique identification of the associated media
device.
5. The modular and scalable digital multimedia platform according
to claim 4, wherein said tag device comprises an interface to
impart an identification signal onto a data signal provided to/from
said media device.
6. The modular and scalable digital multimedia platform according
to claim 1, comprising plural ones of said at least one port, ones
of said plural ports associated with different ones of media
devices for interfacing with said different ones of media
devices.
7. The modular and scalable digital multimedia platform according
to claim 6, comprising sample rate control for modifying the rate
at which an individual port samples data from a media device to
match a sample rate requirement.
8. The modular and scalable digital multimedia platform according
to claim 1, wherein said one or more media devices are selected
from the group consisting of audio devices, video devices, and
lighting devices.
9. The modular and scalable digital multimedia platform according
to claim 1, wherein said port is operable to monitor for degraded
functionality or failure of an associated media device.
10. A modular and scalable digital multimedia platform system for
control and/or operation of plural media devices, comprising:
plural control units comprising a backplane and control processor,
ones of said plural control units interfacing with one or more port
device operable with said control processors and said one or more
at media devices to provide an interface between said control
processors and said media devices; and synchronization processing
for synchronizing operation of said plural control units with one
another.
11. The according to claim 10, further comprising permissions
processing for providing permissions control of operations that an
individual user or control unit may effect on one or more of said
plural media devices.
12. The modular and scalable digital multimedia platform according
to claim 10, comprising sample rate control for modifying the rate
at which an individual port device samples data from a media device
to match a sample rate requirement.
13. The modular and scalable digital multimedia platform according
to claim 10, wherein said ports are operable to monitor for
degraded functionality or failure of an associated media
device.
14. The modular and scalable digital multimedia platform according
to claim 10, further comprising a tag device associated with a
media device to provide a unique identification of the associated
media device.
15. The modular and scalable digital multimedia platform according
to claim 14, wherein said tag device comprises an interface to
impart an identification signal onto a data signal provided to/from
said media device.
16. A media tag unit for identifying a media input or output device
attached to a platform, comprising: an interface for associating
the media tag unit with the media input or output device; and a
modulator for imparting an identification signal to a data stream
from the input device.
17. The media tag unit according to claim 16, further comprising a
non-volatile memory for storing function or characteristic
information related to the media input or output device.
18. The media tag unit according to claim 16, wherein said
modulator imparts the identification signal onto the data stream in
a manner so as to not affect operation of the input or output
device.
19. The media tag unit according to claim 16, further comprising a
demodulator for detecting information sent to the media tag unit
from a control device.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority from U.S. provisional
patent application Ser. No. 61/882,244, filed May 10, 2013.
BACKGROUND
[0002] This disclosure relates to audio/video systems, and more
particularly to a modular and scalable digital audio/video/lighting
platform.
[0003] Live performance sound, video and lighting reinforcement has
followed the basic conventions and configurations established in
the early days of audio electronics using microphones, pickups,
speakers and a central mixer and amplifier. Advanced technologies
have largely been applied to this system within particular pieces
of equipment (digital mixers using signal processing techniques) or
to reduce the bulk or size of interconnections (digital snakes).
This point by point application of technology has significantly
complicated the tasks of sound engineers in setting up and managing
live performance systems since few of the systems are integrated in
either control or data transport, thus requiring extensive mapping
and cumbersome custom setups.
[0004] Video and lighting displays also provide a component of
presentations, requiring sophisticated control and coordination of
all the components to provide an improved performance or
presentation.
[0005] Embodiments of the system described herein vastly simplify
audio/visual/lighting systems in both deployment and usage through
the unique application of available technologies. Embodiments of
the system result in high quality sound/video/lighting, less
expensive equipment, better failure recovery, simplified equipment
configuration and setup, configuration backup/restore, and access
to advanced audio/video/lighting capabilities for even the novice
user. All audio/video/lighting capabilities are integrated into one
system which controls signal acquisition routing, conditioning,
enhancement, combination and output. The embodiments interoperate
with existing equipment to minimize expense and lower entry costs,
while integrating advanced usability and deployment features.
SUMMARY
[0006] In accordance with the disclosure, embodiments of the system
consist of a chassis into which a variety of modular units may be
inserted. The modular units are input/output units which either
acquire an input signal converting it to high precision digital
information, or output an analog signal after converting from said
digital format. These units are called "Ports". A port can be an
input port, and output port, or an input/output port depending on
the embodiment of the system.
[0007] Accordingly, it is an advantage of the present disclosure to
provide an improved modular and scalable platform for
multi-media.
[0008] It is a further advantage of the present disclosure to
provide an improved modular and scalable audio platform system.
[0009] It is yet another advantage of the present disclosure to
provide an improved modular and scalable video platform system.
[0010] It is yet another advantage of the present disclosure to
provide an improved modular and scalable lighting control
system.
[0011] The subject matter of the present technology is particularly
pointed out and distinctly claimed in the concluding portion of
this specification. However, both the organization and method of
operation, together with further advantages and embodiments
thereof, may best be understood by reference to the following
description taken in connection with accompanying drawings wherein
like reference characters refer to like elements.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] FIG. 1 illustrates an embodiment of a port in accordance
with the disclosure.
[0013] FIG. 2 illustrates an embodiment of a chassis in accordance
with the disclosure.
[0014] FIGS. 3A and 3B illustrates an embodiment of multiple
chassis and possible interconnections thereof.
[0015] FIG. 4 illustrates an embodiment of a tag in accordance with
the disclosure.
[0016] FIG. 5 illustrates an embodiment of an RF port in accordance
with the disclosure.
DETAILED DESCRIPTION
[0017] The system according to a preferred embodiment of the
present disclosure comprises a modular and scalable platform
system.
[0018] With reference to FIG. 1, a block diagram of an exemplary
port and FIG. 2, a block diagram of an example chassis, a port 12
includes a microprocessor 14 and network interface 16 (NET I/F),
and in most embodiments external microphone 18 and line level
connections such as preamp 20, line amp 22 and both an Analog to
Digital converter (A/D) 24 and a Digital to Analog converter (D/A)
26. Tag logic 28, discussed herein below with reference to FIG. 4
also interfaces with the media input side.
[0019] Recognition circuits 30 are provided to identify new
equipment that is attached to a port.
[0020] Alerts may be generated by monitoring incoming signals for
certain events, discussed herein.
[0021] An oscillator 34 may be provided for providing timing
signals for operation of the device.
[0022] The function of the port is to acquire an audio, visual,
lighting or other signals, process the information through audio or
other filter(s), effects, and transport the signals or modified
signals through the network interface, or to obtain information
from the network interface, process it and output it through a D/A
conversion.
[0023] The preamp 20 is operable to increase the gain of the
incoming (typically) analog signal, whether audio or other type.
The preamplifier increases the voltage of the incoming signal to a
level matching the maximum range of the D/A device with little to
no noise injection. The preamplifier may incorporate variable gain
control to balance the incoming signal under operator control.
[0024] As illustrated in FIGS. 1 and 2, each port connects to an
Ethernet switch fabric 32 embedded in the chassis. FIG. 2
illustrates a chassis 36 that provides a physical framework for a
package of electronics to be attached to a backplane 38. The
package of electronics, called ports, as illustrated in FIG. 1,
sample incoming audio/video/lighting or other data and create a
stream of digital information representing the audio information, a
D/A converter to convert a digital stream to outgoing audio, a
microprocessor or microcontroller, memory, and a network connection
(interfaced via network switch 44 to, for example, an Ethernet 46
or other expansion). Also included in the chassis is control
processor 40 which receives direction from the operator, directs
signal routing, specifies enhancements, filters, and effects, and
maintains other system functions. The control processor may
interface with one or more peripherals 48. The chassis 36 can
contain as few as one port 12, or multiple ports 12, 12', 12'',
etc. and as many as a particular chassis embodiment will allow.
Ports can therefore be added or removed on an individual basis. The
chassis may also include memory 42.
[0025] An acquired digital audio/video/lighting stream may be
modified in the port by many different functions, including but not
limited to: gain control, gating filters, limiting filters, audio
volume compression, audio volume expansion, equalization, or pitch
changing, video effects, lighting effects, etc. In addition, a port
may assist an operator by recognizing faulty signal conditions (via
recognition circuits 30) and issuing an alert to the control
processor.
[0026] Alerts include, but may not be limited to: crackle
recognition, reduced volume, excessive volume, excessive noise, or
an inactive microphone, video signal issues, lighting control
issues, or the like. In an audio context, crackle recognition is
performed by recognizing the slew rate of an incoming signal that
is out of the range of normal audio characteristics. Software
running on the processor in the port recognizes excessive
transitions of the incoming signal and alerts the operator through
the console interface that an abnormal condition exists. An alert
remains active until the operator clears it from the system, or
until the problem is recognized as having been resolved.
[0027] In some embodiments, as illustrated in FIG. 5, a block
diagram of an RF port, a port may contain radio frequency
transmitters 50 or receivers 52 over which information may be sent
or acquired, via antenna 53. A port may also provide network
connections to the switch fabric, either directly or through
another switch fabric.
[0028] A port may allow external connections to MIDI devices, USB,
eSATA or any number of other standard interfaces. In all of these
cases, the embedded microprocessor or controller may condition or
process the signals for switch fabric connection following
direction from the control processor.
[0029] In the Port, a captured audio or other stream is apportioned
to fixed size packets which are then transmitted through the
network connection to other devices on the same network through an
Ethernet network switch fabric. The destination of the packet
stream is directed to one or many different other Ports or
devices.
[0030] In one embodiment, a timestamp is attached to each created
digital stream as it is apportioned to packets. The timestamp value
is taken from a sample clock timer which is unique to each
Port.
[0031] In one embodiment, every sample clock timer in each Port is
synchronized to a master timer on the network. The master timer is
specified at system power up and communicates with each endpoint
device, including each Port, to initialize the sample clock and
then periodically send updates and correction values so that each
port maintains a sample clock in close synchronization with the
master timer.
[0032] Each Port includes an oscillator that provides a frequency
input to both the A/D and the D/A. The oscillator has a nominal
frequency output with deviations from this frequency controlled by
means of a pulse width modulated signal from a microprocessor in
the port.
Recognition
[0033] A port may contain circuitry 30 that allows the system to
recognize the type of equipment that is attached to the system.
Each port, under control of a microprocessor (the content
processor) may monitor the electrical characteristics of equipment
attached to the port. When first connected, the content processor
may attempt to identify the attached equipment by measuring its
electrical characteristics such as resistance and impedance. Each
type of equipment can be characterized in advance allowing the
creation of a catalog of devices and their characteristics. Through
the use of the recognition circuitry, the content processor may
identify the attached equipment or device to report it to the
control processor of the chassis.
[0034] Normally the first such test is a simple resistance. This
may be followed by the injection of a signal or signals of various
frequencies to determine impedance. Other types of tests may also
be done, such as a simple continuity test for presence or absence
of voltage. Once the characteristics of the device have been
determined, the content processor may find the closest match and
identify the probable device to the control processor to be
confirmed by the user.
Alerts
[0035] Alerts are notifications to the user that a piece of
equipment attached to the system may have either degraded
functionality or have failed. For instance, a "crackle" alert may
be generated as the content processor monitors the incoming signal
for integrity and discovers that the signal has a very high and
repeated slew rate at particular frequencies. This may indicate
that the electrical connection to the equipment is faulty and
shorting or opening up causing aberrant audio. "Loss of Signal" is
another situation that may be identified when the input has been
inactive for a period of time, typically at least a second. Alerts
for audio signals may consist of "Crackle", "Loss of Signal",
"Degraded Signal", or "Volume Shift" among other integrity issues.
Alerts for Video signals may include "Loss of Connection", "Noise",
or other conditions. Alerts for lighting connections may include
"Loss of Connection", "Loss of Response", "Broken Chain", or other
common failure conditions.
Sync
[0036] Control of the A/D and D/A oscillator deviation may be
derived from an accumulated number of audio/video/lighting/other
samples in comparison to other Ports in the system. If the number
of samples transmitted by a particular Port is lower than required
to maintain a specified number of queued samples, the frequency of
the oscillator is increased, first to allow the queue to fill and
then to maintain a constant queue depth. Likewise, if the number of
samples transmitted by a particular Port is higher than required to
maintain a specified number of queued samples, the frequency of the
oscillator is decreased, first to allow the queue to empty to the
proper level and then to maintain a constant queue depth.
[0037] Alternatively, modifications to the sample oscillator
frequency may be made by calculating the number of samples
transmitted over a period of time, and adjusting the oscillator
frequency by a proportional error signal to reach a predetermined
rate as calculated by the number of sample per period of time of
the synchronized sample timer.
[0038] If the rate at which samples are converted by a the D/A
converter of a port is slower than that of other port nodes, the
D/A oscillator frequency may be increased by a proportional error
signal calculation to meet a required rate. Similarly, if the rate
at which samples are converted by the port's D/A converter is
faster than that of other Ports, the oscillator frequency is
decreased by a proportional error signal calculation to meet a
required rate. Oscillator frequency adjustments are done
continually and on a regular basis during operation of the
system.
[0039] Each port synchronizes its internal clock with the control
processor clock, in one embodiment, using the Ethernet Audio Visual
Bridging (AVB) protocol, specified in IEEE 802.11, IEEE 1588.
Communication channels (listeners and talkers) are assigned and
modified by the control processor as specified by input received
from the operator.
[0040] Each port may receive one or many audio/video/lighting/other
data streams from other ports. The port queues these streams and
applies filters, effects, and controls as directed by a system
controller. This processing may consist of mixing functions,
frequency equalization, audio reverberation, echo, delays, or any
of a wide range of audio/video/lighting/other processing functions.
All specified input streams after processing become an output
stream unique to that port's outputs.
[0041] FIGS. 3A and 3B illustrate that multiple chassis can be
connected together to increase the number of available ports. This
connection is done through the switching fabric and with standard
network interfaces. When multiple chassis are connected, control
processors in each chassis synchronize configuration and control
functions with control processors in all other chassis. In FIG. 3A,
multiple chassis 36', 36'', 36''' connect directly to one another
in serial fashion. In FIG. 3B, the multiple chassis 36', 36'',
36''' connect to network switch 62.
Tags
[0042] With reference to FIG. 4, a block diagram of a tag, a tag
may be attached to any connected device (microphone, speaker,
lights, etc.), in one embodiment. The tag 28 consists of an
electronics package that communicates with the port through the
connection that the device to which it is attached uses, for
example configured as a small coupler that is inserted between the
device and the connecting wire. A tag may comprise a processor 54
with memory 56, attached to modulator/demodulator 58 (Mod/Demod).
The mod/demod interfaces with a microphone, speaker, camera or
other input device and/or an audio/video/other input cable. An LED
60 or other indicator may be provided for operational feedback to
the user or technician to communication the state or operational
function of the tag. The tag is used to uniquely identify the
equipment to which it is attached and each tag has a unique ID
number. In addition, in other embodiments, other information may be
stored on the tag in non-volatile memory which may otherwise
describe functions or characteristics of the attached device, such
as attributes of the attached device, unique identifiers, or system
configuration information. The tag information may be updated in
the tag through the connection to the port and under command of the
control processor as prescribed by the operator.
[0043] The tag communicates with the port by multiplexing digital
information. In one embodiment, frequency multiplexing of digital
information is performed at a frequency outside, for example,
above, the audio frequency spectrum (in an audio system usage
configuration). Digital information may be sent from the Port to
the Tag or from the Tag to the Port and is modulated at the sender
and demodulated at the receiver. The transmitted information may
contain either data or control commands for Tag functions.
[0044] The tag begins operation upon application of "phantom power"
to the audio connection. Phantom power is an industry standard of
48V used for operation of specific types of microphones and
associated circuitry. Once power is applied, the tag enables its
receive circuitry and waits to be polled by the system. The system
may send a query across the audio cable that is received and
decoded by the tag circuitry. This query is encoded as bursts of
frequencies above the audio spectrum. These bursts are recognized
by the receiving circuitry as a series of "1" and "0", forming
codes for various commands and data to be transferred. The
preferred implementation is to use data as normally formatted by a
UART with a start bit, data bits, followed by parity and stop bits.
The preferred operation is to encode a "0" as a frequency burst of
about 120 KHz, with a "1" represented by the absence of frequency.
Data is transferred at a rate that accommodates the length and type
of cable, and may range anywhere from 110 bits/second to above
115,000 bits/second. Information is normally sent across the audio
cable as a differential signal imposed on the phantom power/audio
lines in a typical microphone cable. Thus, both the positive and
negative versions of a frequency burst are sent for increased
reliability. However, some installations may use a single-ended
signaling method that is imposed only on one of the signal lines,
as might be necessary when attached through a conductor that
includes only a signal and ground connection.
[0045] Frequencies for data transmission come from a standard
oscillator circuit. That signal is driven onto a signal line
through capacitive coupling gated by the data signal. In the
presence of a "0" the signal is enabled onto the audio cable
connection. Reception is accomplished by capacitive coupling from
the audio line to a Phase-Locked Loop (PLL), which detects the
signaling frequency and transforms it back into a string of "1" and
"0".
[0046] Circuitry in the tag receives data words by decoding
frequency bursts and recognizing data words. Upon receipt of a
query or command from the system, the tag performs certain actions.
The tag may also transmit information using the same method used to
receive information. It uses this capability to respond to queries
and commands received from the system. The minimum time between the
time from a command to a response is the time of the minimum number
of stop bits required in that particular system.
[0047] Each command/query is encoded as a single byte of data.
Below is a list of actions and responses that the tag may use:
TABLE-US-00001 Query/ Command Response Description and action
Present Acknowledge The system sends the "present" query to
determine if a tag is present on that line. If it is present, the
tag responds with a message that indicates that it is present.
SendID ID The system commands the tag to send its unique ID back to
the system. In response, the tag transmits its unique
identification code in one or several bytes of data SendCFG Byte
count The system commands the tag and to send any configuration
Configuration information it contains back to the system.
Configuration information is unique to each attached device and may
consist of many bytes of data. The tag responds by sending the
number of bytes that will be transmitted, followed by the
configuration in that number of bytes. UpdateID ACK/NACK The system
can change the unique ID of the tab by sending the command
UpdateID, followed by the new unique ID in one or several bytes.
Once received, the tag sends a response to the system acknowledging
successful receipt and update. If the information was not received
or failed to store, the tag sends a NACK (negative acknowledement)
UpdateCFG ACK/NACK The system may change the configuration
information stored in the tab by sending the UpdateCFG command. The
command is followed by a count of the number of bytes to be
transmitted, followed by the new configuration information. The tag
responds with an ACK if successfully updated and a NACK if not.
Indicator The system may command the tag to show a variety of
indications on status lights or displays, such as ON, OFF, COLOR,
FLASH, etc. The system sends the Indicator command followed by data
indicating the expected display. Other Other commands or queries
may be added as necessary to support specific types of
equipment.
Apps
[0048] Application Programs (Apps) can be installed on one or all
of the control processors in a system. Apps may be associated with
specific hardware attached to the system to perform functions or
operations. Most commonly, Apps will be delivered in conjunction
with attached ports as new modules or ports are attached to the
system. These Apps may consist of user interfaces to particular
hardware, programs that operate on the data flowing through the
system, or programs that analyze the data flowing through the
system for further control functions.
[0049] An App is presented to the user through the console
interface, and the user may initiate the App to perform a
particular function, such as a video switching system. An App may
also initiate other Apps which may contain programs or functions
that it uses to perform its functions. The system maintains a list
of functions contained in each App that are accessible to other
Apps, and these functions can then be initiated as required by the
calling App. The list of available functions and a pointer to which
App contains them is available to any App upon making a call to a
Lookup function of the system. An example of an App using functions
in a separate App is the inclusion of audio effects, such as
low-pass, equalization, reverb, and gating among others.
Operation
[0050] In operation, each port sequences digital samples to a D/A
engine which converts the digital sample to a voltage that is then
filtered, amplified or attenuated as necessary for transmission to
both a line level output and a microphone level output (in the case
of an audio signal) or other output. Either of these outputs can
then be directly connected to either an amplifier or a powered
speaker which includes an amplifier or other device for non-audio
applications.
[0051] Any port may be directed by the controller to output fully
or partially processed streams to another Port. Ports may each
partially process the entire stream of signals to provide greater
system capacity/performance by increasing delay through the
system.
[0052] Ports can be added to the chassis one by one for a total of
all inputs and outputs required by the user. A network master
recognizes each device upon initialization and directs its
processing functions through control messages sent to the nodes.
The network master for clock synchronization need not be the same
device as the network master for node identification or IP address
assignment.
[0053] Each port contains test circuitry that is used to identify
the type of device plugged into the Port. After power-up, the Port
begins monitoring the input connection for a load. When it
recognizes that a load is attached, it tests the load values to
determine the type of device to which the load corresponds. This
may include microphones, speakers, line level input, line level
output, or input of an amplifier, video devices, lighting devices
or other devices. This information is stored and communicated to
the chassis controller to be verified and confirmed by the
operator.
[0054] In one embodiment, a port may operate without direct
inclusion in the chassis enclosure, but from a remote location
through a standard network interface connected to the switch
fabric. In this case, the port may be co-located with a device or
other equipment, whether it be an audio transducer, lighting
equipment, synthesis equipment, or any other equipment managed
through the chassis' control processor.
[0055] In addition to connection to audio/video/lighting/other
equipment, a Port may include external connections to the chassis
switch fabric.
[0056] In addition to a network fabric connection, the chassis
includes a control processor which provides a visual interface
through a network connection to an external display device. The
external display device may be connected by either wired or
wireless means. The control processor presents information
regarding the system to the system operator, who then specifies the
processing functions required for each Port.
[0057] The control processor requests information from system nodes
to display in visual form to the operator. The most common use of
this in an audio application is a VU meter for gain/volume
controls, or an indicator for an alert, but is not limited to these
functions.
[0058] The chassis control processor manages connections to
external display devices. It supplies a visual or audio interface
through which an operator receives system information and directs
the control processor to change parameters, routing, functions and
other relevant processing information. As external display devices
will have different screen sizes and input methods, the control
processor provides information for each device according to its
capabilities. This allows the maximum level of interactive
operation possible through each device.
[0059] In one embodiment, more than one external display device is
included in the system; an operator modification to one control
setting is reflected in all other display devices through updates
from one control processor to another control processor in a
different chassis. As control processors remain in sync in a larger
system with more than one chassis, changes in one device will be
reflected in all external device displays regardless of which
chassis control processor they are attached to.
[0060] As noted above, the chassis may also be attached to an
internet connection. The control processor manages this connection,
and allows a remote user to receive signals from the system (for
example, an audio stream, a video stream, etc.). A connection
across the internet may be made with an encrypted and
password-protected link or through the use of public key
encryption. Through this link a remote operator can see and modify
the virtual console presented by the control processor.
[0061] The control processor manages information saved to and
restored from an attached permanent storage device, such as a hard
drive. The attachment of the hard drive is done through either a
dedicated port on the chassis, or as a Port in the backplane. The
hard drive can be directed to store configuration information,
device characterization, performer presets, auditorium information
or any other relevant performance data. In addition, the hard drive
may be directed by the control processor to store or play back
audio or video streams associated with one or many Ports. These
streams are typically stored in industry-standard formats for ease
of access.
[0062] The control processor may also include a sequencer function
used to regulate the movement and operation of a lighting system
during a performance, or to direct the operation of synthesizers
attached to the system, most typically through a MIDI connection.
Sequences may be triggered by time, content, or by an operator.
[0063] More than one chassis can be supported in a system. Each
chassis has its own control processor and multiple chassis
connected together will share control information so that each
control processor in each chassis has the same information. All
control information, both acquired from system nodes and specified
by an operator, is synchronized so that every representation in all
controllers is identical. This is done by each control processor
recognizing control commands sent on the network and adjusting its
state accordingly. This is termed "control snooping" and is much
more efficient than copying full control state continually around
the system.
[0064] A control processor may request the control state of any
node at any time. This will include information on processing being
specified in the queried node as well as configuration and device
information.
[0065] When a chassis is initialized in the system, it may obtain
the control state either from a chassis control processor already
in the system or individually from each node through control query
commands.
[0066] Any control processor may request any Port to store
information in its non-volatile memory. In particular, device
information, text and graphics specified by the operator are
particularly important.
[0067] Any control processor may also request storage of overall
system configuration, controller state, device presets, or other
information in any or all system Port(s).
[0068] Upon initialization, a control processor may query the
memory contained in any Port to discover or apply previously saved
configuration or device information to the present session.
[0069] If a Port fails during operation, a replacement can be
substituted without initializing the entire system (hot swapping).
The controller may direct the replacement node to duplicate the
functions of the failing node.
Permissions
[0070] As noted above, the control processor can adjust information
displayed on the control device depending on the type of device and
permissions assigned by the operator. An authorized operator may
restrict or allow access to system functions on a selective basis
so that other operators may control the entire system or just
portions of the system. Access to restricted interfaces may be
password protected, encrypted, and/or restricted to particular
times and dates and/or locations.
[0071] Many control devices may be attached through wired or
wireless connections to the system. Each control device is
connected to one console processor through this connection, and
that console processor provides bidirectional information transfer
between the control device and the system.
[0072] A system administrator is one or many designated user(s) who
have authenticated themselves through credentials (normally a
username and password) to the system. The system administrator (SA)
has full permissions to modify any control or configuration in the
system. The SA may authorize other users control over various
devices or controls. Allowable permissions include, but are not
limited to:
[0073] 1. The ability to change various control settings
[0074] 2. The ability to disable particular ports or other attached
hardware.
[0075] 3. The ability to send a message to other control devices
for their user's benefit or information.
[0076] 4. The ability to control ports or devices only on the
chassis to which the control device is connected.
[0077] 5. Valid times for all other permissions to apply.
[0078] 6. Valid dates for all other permission to apply
[0079] The SA may choose various levels of permission for the
system. The lowest level allows anyone who connects to the system
to modify any setting or control. Even if this is selected by the
SA, it does not imply that a passphrase or passcode is not required
to connect to the system.
[0080] Higher levels of permission may require users to
authenticate with the system. Authentication is typically done by a
challenge upon connection to the system for a username and
password. Unauthenticated users may be denied access to the system
or allowed only limited access as anonymous users.
[0081] Authenticated users may be allowed only restricted control
as indicated above.
[0082] Authentication is provided by the console processor to which
the control device is connected. Upon successful authentication,
the console processor acquires a unique identification code (ID)
from the control device, normally but not limited to a MAC address.
The control ID is considered "state" and is shared between all
console processors. The control ID is associated with permissions
for each device or port in the system in a permission table. For
instance, a particular control device (a smartphone) may be
authorized to mute or unmute a particular group of microphones only
between the hours of 3 PM to 7 PM on a particular date. Any
combination of control permissions indicated above can be given for
any control device.
[0083] Permissions given may be indicated to the user by visual or
other means. A common method of indicating lack of permission is to
"gray out" the control as represented on the control device.
[0084] Upon receiving a control change, the console processor
determines by reference to the permission table if the control
device is authorized to modify that state. If allowed, the control
change is passed on as previously indicated. If not, the console
processor may indicate unauthorized control change to the user, or
may simply ignore the user input.
[0085] As the permission table is considered "state" and devices
have unique IDs, the control device may reconnect to another
chassis in the system while retaining permissions for control.
[0086] The control processor in each chassis, according to one
embodiment, supplies a console interface to external devices
through standard web-based protocols so that external devices with
browser capabilities can be used as display and control surfaces
for one or more operator. The control processor adjusts information
displayed on the control device depending on the type of device and
permissions assigned by the operator. An authorized operator may
restrict or allow access to system functions on a selective basis
so that other operators may control the entire system or just
portions of the system. Access to restricted interfaces may be
password protected, encrypted, and/or restricted to particular
times and dates and/or locations.
Console Synchronization
[0087] A system may consist of several chassis. As each chassis has
its own control processor, several control processors will be
present simultaneously in the system. These processors each receive
commands from a user through a control device interface, manage
data connections from one port to another, and provide information
to the user(s) concerning the characteristics of the data and
conditions of the system, among other things.
[0088] Each control processor coordinates changes in the system
with all other control processors present in the system. In
addition to the "control snooping" described above, when a user
changes a setting, for instance the volume of a particular channel,
the change in that setting is understood by the control processor
to which the control device is attached. That control processor may
then send a message to all other control processors in the system
indicating the change in the control setting. The other control
processors then reflect this change in the user interface and
control settings they are displaying to control devices connected
to them respectively.
[0089] The control change message send from the control processor
receiving the control change contains:
[0090] 1. A code indicating which control processor is initiating
the change.
[0091] 2. A code indicating the control that has been changed.
[0092] 3. Codes indicating the new value of the control, its
characteristics, and applicability.
[0093] 4. A list of devices or ports affected by the control
change.
[0094] The message is encapsulated in a network packet addressed to
either one or several other console processors. In a common and
preferred case this is a "multicast" message to which all control
processors pay attention and receive. No acknowledgement in form of
another network message is required by the receiving control
processor.
[0095] A control change message consists of control changes,
identification of new ports attached to the system, a change in
permissions allowed for control devices, or any other information
required by the various control processors to accurately represent
the control state to users or to coordinate processing duties among
control processors.
[0096] Upon receipt of the control change message, a receiving
control processor updates that information in its memory and
communicates it to all control devices attached to it for user
visibility. Some control change messages may require direct
notification of the user with special messages. For instance, an
alert indicating a fault in the system (crackle, loss of signal,
etc.) may result in a pop-up on the control device. In the case of
removal of permissions, the control processor may disconnect or
otherwise disable changes from a control device.
[0097] In a system including multiple control processors, one
control processor will periodically generate a signature or hash
code of all or some system information or state. The control
processor then sends a signature verification message to all other
control processors that includes:
[0098] 1. A code indicating the control processor sending the
message
[0099] 2. The signature or hash code value.
[0100] 3. A timestamp indicating when the signature calculation was
done.
[0101] 4. Codes with other relevant system information, such as
number of controls, ports or inputs.
[0102] Upon receipt of a signature verification message, each
control processor determines whether any change has occurred since
the timestamp in the verification message. If not change has
occurred, each processor calculated their own signature or hash
code from what is supposed to be duplicated information.
[0103] If the receiving control processor finds that a change has
occurred since the indicated timestamp, it sends a message back to
the initiating control processor with a code indicating that its
information is out of date. The initiating processor recalculates
the signature and tries again until acknowledgement of success is
found.
[0104] If the receiving processor finds that the no control change
has occurred since the timestamp in the signature verification
message, it calculates a signature of its state and compares the
received and generated signatures. If the signatures are not equal,
the receiving processor sends a message requesting a full state
update from the initiating processor. This message consists of:
[0105] 1. A code indicating the control processor sending the
message
[0106] 2. A code indicating that the state information does not
match and requesting a full state update from the initiating
processor.
[0107] 3. A timestamp for the message.
[0108] 4. Codes with other relevant system information, such as
number of controls, ports or inputs.
[0109] When a state update message is received by the initiating
processor, it sends a state update message to the requesting
control processor that contains:
[0110] 1. A code indicating the control processor sending the
message
[0111] 2. A code indicating that this message is state update
message.
[0112] 3. A timestamp indicating when the message was
generated.
[0113] 4. A list of all state variables, their values and
characteristics required by the receiving processor to update its
state correctly.
[0114] A state update is also done from a designated master console
to other consoles that have just become attached to the system.
[0115] Using the system, sophisticated control of audio/visual,
lighting, music and the like may be effected.
[0116] While a preferred embodiment of the technology has been
shown and described, it will be apparent to those skilled in the
art that many changes and modifications may be made without
departing from the broader aspects. The appended claims are
therefore intended to cover all such changes and modifications as
fall within the true spirit and scope of the technology.
* * * * *