Wireless remote controls offer convenience in using computing devices, such as digital video recorders (DVR), televisions, audio assistant and music devices, etc. Pairing a wireless remote control with a controllable computing device can sometimes present challenges, such as when multiple controllable computing devices receive a wireless pairing request from a remote control that is seeking to pair with one of them. These and other shortcomings are identified and addressed by the disclosure.
The following summary presents a simplified summary of certain features. The summary is not an extensive overview and is not intended to identify key or critical elements.
Ambient sounds may be different at different locations in an environment, and systems, apparatuses, and methods are described for using ambient sounds near a remote control and a controllable device to determine whether the controllable device is close enough to the remote control such that pairing is appropriate. For example, a remote control may send a radio frequency (RF) pairing announcement, and a controllable device may receive the RF pairing announcement and respond with audio recording parameters such as, for example, a start time and a duration, so that both the controllable device and the remote control may record sounds at similar times. The recordings, or fingerprints of the recordings, may be compared, and if the recordings are a close enough match, pairing may be appropriate. Multiple controllable devices may receive the pairing announcement, and may coordinate with the remote control and/or with each other for recording samples of ambient sounds. If there are multiple close matches, an interface may be displayed to allow for selection from the controllable devices that provided the close matches, and/or additional steps may be taken to resolve the ambiguity. The success of matching may be tracked over time, and matching thresholds and/or the recording parameters may be adjusted to assist in the pairing process.
These and other features and advantages are described in greater detail below.
Some features are shown by way of example, and not by limitation, in the accompanying drawings. In the drawings, like numerals reference similar elements.
The accompanying drawings, which form a part hereof, show examples of the disclosure. It is to be understood that the examples shown in the drawings and/or discussed herein are non-exclusive and that there are other examples of how the disclosure may be practiced.
The communication links 101 may originate from the local office 103 and may comprise components not shown, such as splitters, filters, amplifiers, etc., to help convey signals clearly. The communication links 101 may be coupled to one or more wireless access points 127 configured to communicate with one or more mobile devices 125 via one or more wireless networks. The mobile devices 125 may comprise smart phones, tablets or laptop computers with wireless transceivers, tablets or laptop computers communicatively coupled to other devices with wireless transceivers, and/or any other type of device configured to communicate via a wireless network.
The local office 103 may comprise an interface 104. The interface 104 may comprise one or more computing devices configured to send information downstream to, and to receive information upstream from, devices communicating with the local office 103 via the communications links 101. The interface 104 may be configured to manage communications among those devices, to manage communications between those devices and backend devices such as servers 105-107, and/or to manage communications between those devices and one or more external networks 109. The interface 104 may, for example, comprise one or more routers, one or more base stations, one or more optical line terminals (OLTs), one or more termination systems (e.g., a modular cable modem termination system (M-CMTS) or an integrated cable modem termination system (I-CMTS)), one or more digital subscriber line access modules (DSLAMs), and/or any other computing device(s). The local office 103 may comprise one or more network interfaces 108 that comprise circuitry needed to communicate via the external networks 109. The external networks 109 may comprise networks of Internet devices, telephone networks, wireless networks, wired networks, fiber optic networks, and/or any other desired network. The local office 103 may also or alternatively communicate with the mobile devices 125 via the interface 108 and one or more of the external networks 109, e.g., via one or more of the wireless access points 127.
The push notification server 105 may be configured to generate push notifications to deliver information to devices in the premises 102 and/or to the mobile devices 125. The content server 106 may be configured to provide content to devices in the premises 102 and/or to the mobile devices 125. This content may comprise, for example, video, audio, text, web pages, images, files, etc. The content server 106 (or, alternatively, an authentication server) may comprise software to validate user identities and entitlements, to locate and retrieve requested content, and/or to initiate delivery (e.g., streaming) of the content. The application server 107 may be configured to offer any desired service. For example, an application server may be responsible for collecting, and generating a download of, information for electronic program guide listings. Another application server may be responsible for monitoring user viewing habits and collecting information from that monitoring for use in selecting advertisements. Yet another application server may be responsible for formatting and inserting advertisements in a video stream being transmitted to devices in the premises 102 and/or to the mobile devices 125. The local office 103 may comprise additional servers, additional push, content, and/or application servers, and/or other types of servers. Although shown separately, the push server 105, the content server 106, the application server 107, and/or other server(s) may be combined and/or server operations described herein may be distributed among servers or other devices in ways other than as indicated by examples included herein. Also or alternatively, one or more servers (not shown) may be part of the external network 109 and may be configured to communicate (e.g., via the local office 103) with other computing devices (e.g., computing devices located in or otherwise associated with one or more premises 102). Any of the servers 105-107, and/or 122, and/or other computing devices may also or alternatively be implemented as one or more of the servers that are part of and/or accessible via the external network 109. The servers 105, 106, and 107, and/or other servers, may be computing devices and may comprise memory storing data and also storing computer executable instructions that, when executed by one or more processors, cause the server(s) to perform steps described herein.
An example premises 102a may comprise an interface 120. The interface 120 may comprise circuitry used to communicate via the communication links 101. The interface 120 may comprise a modem 110, which may comprise transmitters and receivers used to communicate via the communication links 101 with the local office 103. The modem 110 may comprise, for example, a coaxial cable modem (for coaxial cable lines of the communication links 101), a fiber interface node (for fiber optic lines of the communication links 101), twisted-pair telephone modem, a wireless transceiver, and/or any other desired modem device. One modem is shown in
The gateway 111 may also comprise one or more local network interfaces to communicate, via one or more local networks, with devices in the premises 102a. Such devices may comprise, e.g., display devices 112 (e.g., televisions), other devices 113 (e.g., a DVR or STB), personal computers 114, laptop computers 115, wireless devices 116 (e.g., wireless routers, wireless laptops, notebooks, tablets and netbooks, cordless phones (e.g., Digital Enhanced Cordless Telephone—DECT phones), mobile phones, mobile televisions, personal digital assistants (PDA)), landline phones 117 (e.g., Voice over Internet Protocol—VoIP phones), and any other desired devices. Example types of local networks comprise Multimedia Over Coax Alliance (MoCA) networks, Ethernet networks, networks communicating via Universal Serial Bus (USB) interfaces, wireless networks (e.g., IEEE 802.11, IEEE 802.15, Bluetooth), networks communicating via in-premises power lines, and others. The lines connecting the interface 120 with the other devices in the premises 102a may represent wired or wireless connections, as may be appropriate for the type of local network used. One or more of the devices at the premises 102a may be configured to provide wireless communications channels (e.g., IEEE 802.11 channels) to communicate with one or more of the mobile devices 125, which may be on- or off-premises.
The mobile devices 125, one or more of the devices in the premises 102a, and/or other devices may receive, store, output, and/or otherwise use assets. An asset may comprise a video, a game, one or more images, software, audio, text, webpage(s), and/or other content.
Although
One or more elements of
Server 303 is shown as separate from the premises 301 in the example of
Premises 301 includes a gateway 304. The gateway 304 may be, for example, a computing device such as the interface 120 of
The controllable devices 305a-b may be configured to communicate with the remote control 307, via a wireless communications link. The controllable devices 305a-b may comprise a wireless receiver, such as an RF receiver 306, and which may be configured to listen or scan for signals, such as signals from the remote control 307. One such signal might be the remote control announcing that it is seeking to pair with a controllable device with a device discovery request. The controllable devices 305a-b may comprise a signal analyzer that may be figured to determine signal strength, location of remote devices using RF triangulation techniques, time of arrival, amplitude of arrival, etc. After receiving such a signal, the controllable devices 305a-b may be configured to generate and send a message to the remote control 307. The message may include recording parameters to assist with recording and fingerprinting audio to confirm and initiate pairing with the remote control that sent the signal, such as is described below. Additionally, or alternatively, the signal containing the announcement may also contain such recording parameters so that any receiving controllable device may receive the same recording parameters.
The controllable devices 305a-b may comprise one or more of: a microphone 308, a microphone array (not shown), or a speaker (not shown). The controllable devices 305a-b may be configured to record audio received via the microphone 308, such as ambient sounds near device 305a (or 305b) as shown in
The controllable devices 305a-b may be configured to receive audio recordings and also, or alternatively, fingerprints of audio recordings from other devices, such as the remote control 307. The controllable devices 305a-b may further be configured to execute software that may determine whether any of the fingerprints (generated or received) match, or otherwise correspond, to one another. Matching fingerprints of recorded audio may indicate that the two devices recorded the same, or substantially similar audio, and are, therefore, in the same room and/or are near one another. Controllable devices 305a-b may both record audio according to the audio recording parameters (e.g., an instruction to record audio, a start time, an end time, a duration, an instruction to fingerprint the recorded audio or the like) but may not have matching fingerprints because the audio recorded by the controllable devices 305a-b and the remote control 307 may be affected by their surroundings. For example, the ambient sounds near the controllable device 305a and the remote control 307 may be affected similarly by proximate noise sources, such as a radio 310, an open window, a dog barking, or the like. The ambient sounds near the controllable device 305b may be affected by proximate noise sources, such as a ceiling fan 311. Matching fingerprints may be identical, or substantially identical, to constitute a match. A threshold for determining a match may be established. The threshold may be dynamic and may change over time. The success and/or failure rates of matching may be tracked over time and may inform the setting or adjusting of the threshold. The threshold may be for a single system (e.g., at a single premises) or for more than one system. The controllable devices 305a-b may be configured to store the threshold and/or information relating to the threshold. The controllable devices 305a-b may also, or alternatively, be configured to send the threshold and/or information relating to the threshold to the remote control 307, the gateway 304, the server 303, or other computing device for storage. The recording parameters may also be set or adjusted based on the success and/or failure rate information.
Because the remote control 307 is in the same room as the controllable device 305a, it is likely that a user is trying to pair the device with controllable device 305a, rather than controllable device 305b. The controllable device 305a may determine a fingerprint from its own recorded audio matches a fingerprint of audio received from the remote control 307. The controllable device 305a may send an indication of the match to the remote control 307 or otherwise initiate a pairing sequence with the remote control 307. Conversely, the controllable device 305b may determine that a fingerprint from its own recorded audio may not match a fingerprint of audio received from the remote control 307, and then the controllable device 305b may not initiate a pairing sequence with the remote control 307. Additionally, or alternatively, the controllable devices 305a-b may be configured to communicate with each other over the local network at the premises 301. The controllable devices 305a-b may be configured to coordinate over IP via WiFi or Ethernet using backend registration or using generic device discovery (e.g., Bonjour, Universal Plug and Play (UPnP), or HDMI Consumer Electronics Control (CEC)). The controllable device 305a, for example, may be able to query the controllable device 305b, or other devices at the premises, such as display devices 309a-b, to determine whether the controllable device 305b has received the pairing announcement and/or to coordinate a response to the remote control 307. Controllable device 305a-b may be able to coordinate responding to the remote control 307 with its corresponding display device 309a-b, e.g., controllable device 305a and corresponding display device 309a may respond to the remote control 307 and/or may pair with the remote control 307 as a single device. The controllable devices 305a-b may be configured exchange their respective recorded audio and/or audio fingerprints in furtherance of determining potential matches for pairing with the remote control 307, such as is described below. The controllable devices 305a-b may also be configured to filter multiple matching controllable devices, including whether another controllable device is already paired with a remote control and whether the controllable device is expecting to pair with a remote control. The controllable devices 305a-b may also be configured to cause display of a user interface for user selection of an intended controllable device and to cause pairing with the remote control 307.
The remote control 307 may be any standard remote control or any computing device capable of acting as a remote control, such as a phone with an application that would allow it to pair with one or more controllable devices. The remote control 307 may be configured to send a signal to controllable devices via a transmitter 312, such as an RF transmitter. The signal sent by the remote control 307 may include various types of information, such as information identifying the remote control, such as device type, power source, supported security, serial number, pairing information such as vendor IDs, supported device types, profile IDs, requested device type, recording parameters, class descriptors, filters, operational commands and the like. The remote control 307 may send data in an RF transmission over channels, such as channels accessed using IEEE 802.11, 802.15, or Bluetooth Low Energy (BLE) protocols, announcing that the remote control is available for pairing and/or that the remote control 307 is seeking discovery of potential controllable devices, such as an RF4CE discovery request message or a BLE advertisement. The announcement may be sent once, may be repeated periodically for a predetermined time period, or repeated until a response is received. The announcement may be received by any controllable device within range of the remote control 307, including the controllable devices 305a-b, and listening on those channels. The signals from the remote control 307 can be sent using any low power wireless communication protocols including, for example, IEEE 802.11, 802.15, LTE, ZigBee RF4CE, 6LoWPAN, LoRa, Bluetooth, BLE, ISA100.1a, Wireless HART, MiWi, Thread, SNAP, etc. The remote control 307 may be triggered to announce that it is available for pairing by a user pressing a button or key combination on the remote, by a user putting batteries in the remote control, by a user charging the remote control, by performing speech recognition of a voice command, by determining that it is proximate to a controllable device, or the like. The remote control 307 may comprise a signal analyzer that may be figured to determine signal strength, location of controllable devices using RF triangulation techniques, time of arrival, amplitude of arrival, etc. The remote may be configured to indicate as part of the announcement that it would like to be paired with a certain type of controllable device, for example a set top box or a television. Additionally, or alternatively, the remote control may be configured to display a user interface and receive input regarding the type of device the user would like to pair with the remote control.
The remote control 307 may be configured to receive signals from the controllable devices 305a-b to pair with one or more controllable devices, such as is described below. The received signal may, for example, include parameters for recording and/or fingerprinting audio. The remote control 307 may comprise a microphone 313, a microphone array (not shown), or a speaker (not shown). The remote control 307 may be configured to record audio received via the microphone 313, such as the ambient noise or other sounds near the remote control 307 as shown in
Multiple display devices, including display devices 309a-b may be operatively connected to the controllable devices 305a-b. Display devices 309a-b may be connected to the controllable devices 305a-b via a wired or a wireless connection. Alternatively, display devices 309a-b may be connected to the gateway 304 without also being connected to the controllable devices 305a-b. Display devices 309a-b may comprise any type of display device, including, for example, a television having an application that can communicate with the gateway to receive television services. Display devices 309a-b may separate from, or implemented as part of, the controllable devices 305a-b.
The display devices 309a-b may also comprise controllable devices and may be able to be controlled by the remote control 307. The display devices 309a-b may have a microphone (not shown), a microphone array (not shown), or a speaker (not shown) and may be configured to record and fingerprint audio. The display devices 309a-b may be configured to compare the fingerprint to any fingerprint received from the remote control 307. If the display devices 309a-b determine a matching fingerprint, the display devices 309a-b may, like the controllable devices 305a-b, send a message to the remote control 307 indicating a match, or otherwise coordinate with other controllable devices to facilitate pairing with the remote control 307. Display devices 309a-b may be paired to a remote control along with the corresponding controllable device 305a-b.
The controllable devices (controllable devices 305a-b and/or display devices 309a-b) may be configured to query other controllable devices at the premises to determine whether other controllable devices have matched an audio fingerprint with the fingerprint from the remote control 307. The other controllable devices may respond to the query and indicate whether an audio match has been determined. When multiple audio matches are present, the controllable devices may be configured to ascertain additional details from the controllable devices with audio matches. For example, the controllable devices may be further configured to determine the closest controllable device to the remote control, whether any of the controllable devices are already paired to a remote control, whether any of the controllable devices are expecting to pair to this type of remote control, or whether to display a user interface to assist the determination of which controllable device is the intended device for pairing, such as is described below. The additional details may be used to filter the number of matching devices returned to the remote control, such as is described below.
In step 408, the controllable device 305a may send a wireless communication in response to the pairing discovery request, where the wireless communication includes audio recording parameters to assist in the pairing process. The controllable device 305a may also send the wireless communication after detecting audio, such as a voice command or other audio signal to initiate pairing without having received a discovery request. Because RF communications can go through walls and floors, it is possible that more than one controllable device received the pairing request from the remote control 307, so it may be desirable to determine which controllable device was intended to be controlled by the user. The user may be near the intended controllable device, so to determine the intended controllable device, both devices may record audio (e.g., ambient noise, voice commands, sounds, or other audio signals) and compare fingerprints of the recorded audio. If only one controllable device received the discovery request, the remote control 307 and controllable device 305a may be able to skip recording and fingerprinting audio and initiate a pairing sequence with each other.
Corresponding, or matching, fingerprints may indicate that the devices recorded the same sounds and are in the same room, or that there is a close proximity between the two devices. Mismatching fingerprints may indicate that the remote control may be communicating with another device in another room that may be within range of the RF communication, but is not the intended controllable device. For example, in the example of
The message sent by the controllable device 305a may comprise parameters to assist the remote control 307 in recording and/or fingerprinting audio and synchronize the recording by the remote control 307 and the controllable device 305a. Having coordinated recordings may provide the system with comparable fingerprints which assist in determining whether the devices are near one another or in the same room. The parameters may include one or more of, for example, an instruction to record audio, a start time, an end time, a duration, an instruction to fingerprint the recorded audio or the like. The start time and/or end time may be an actual time, an amount of time that has lapsed from the time the message was sent (e.g., 100 ms, 500 ms, etc.), the amount of time that has lapsed from a time stamp in the message, or another trigger to start and/or end the recording such as an audible trigger. The duration may be an actual length of time to record the audio (e.g., 100 ms, 500 ms, etc.). If the controllable device 305a determines that the display device 309a is on and not muted, the parameters may direct recording of program audio or other known audio content. For successive attempts to find matching fingerprints, one or more of the recording parameters may be adjusted. For example, the recording duration may be increased to obtain a longer audio sample. The default recording parameters may be adjusted based on success and/or failure rates over time. Additionally, or alternatively, any of the remote control 307, the controllable device 305a or other controllable devices, may generate and playback an audio sequence to be recorded per the recording parameters. The audio sequence may be one or more sounds played at a specific frequency or in a specific pattern. The instruction to fingerprint the recorded audio may include the method of fingerprinting, where to send the fingerprint for analysis, or an instruction to send the recorded audio to another device for fingerprinting. For example, the instruction may direct the remote control 307 to send the recorded audio so that it may be fingerprinted by the controllable device 305a, the gateway 304, or the server 303. The remote control 307 may send the fingerprint and/or the recorded audio as it sent the initial pairing announcement, for example, via channels, such as channels accessed using IEEE 802.11 or 802.15 protocols.
More than one controllable device, such as controllable device 305b, display device 309a and/or display device 309b, may receive the pairing announcement from the remote control 307 in addition to the controllable device 305a. Prior to responding with the audio parameters, the controllable devices may determine which controllable devices received the remote control pairing announcement and designate one of the controllable devices to coordinate the pairing process by causing that designated controllable device to send the audio recording parameters, so instead of sending multiple sets of recording parameters for each responding controllable device, only one set of recording parameters may be sent to the remote control 307.
In step 410, the controllable device 305a may turn on its microphone 308 and record audio using some or all of the recording parameters sent in response to the pairing discovery request. Synchronizing the start time and duration, for example, may assist in the analysis and comparison of the fingerprints because if the devices recorded audio at different times or lengths of time, the fingerprints of the audio would not correspond to the same audio, resulting in different fingerprints. The controllable device 305a, in step 412, may fingerprint its own recorded audio or send the audio to another computing device for fingerprinting, such as the server 303. Fingerprinting the audio may comprise, for example, identifying signal strength and/or volume at one or more frequencies in the audio; recognizing patterns in the audio; and/or any other desired audio processing that will allow for comparison. Additionally, or alternatively, after a single controllable device sends recording parameters on behalf of multiple controllable devices, the controllable device 305b and the display devices 309a-b may also turn their microphones on and record audio in accordance with one or more of the audio recording parameters in the message from the single controllable device and then each may separately fingerprint their own recorded audio, or send the audio to another controllable device for fingerprinting.
In step 414, the controllable device 305a may receive a response that was sent by the remote control 307. The remote control 307 may have turned on its microphone 313 and recorded audio in accordance with one or more of the recording parameters in the message from the controllable device 305a. The remote control 307 may fingerprint the audio before sending it to the controllable device 305a. The remote control 307 may also stream the recorded audio back to the controllable device 305a. The controllable device 305b and the display devices 309a-b may also receive the response from the remote control 307. Instead of using such messages, the remote control 307 may also create a temporary pairing with the controllable device 305a to send the audio data. A temporary pairing may include, for example, a security enabled communication channel to allow the devices to exchange information to assist the pairing process prior to binding the pairing. The controllable device 305a may determine, in step 416, whether the response includes an audio fingerprint or recorded audio. If the response includes recorded audio, in step 418, the controllable device 305a may fingerprint the received audio or may send the received recorded audio to another controllable device, such as the server 303, for fingerprinting.
Whether the response includes a fingerprint or the controllable device 305a creates or obtains a fingerprint of the received recorded audio, the controllable device 305a, in step 420, may determine whether the audio fingerprint received from the remote control 307 matches the fingerprint of the audio recorded by the controllable device 305a in step 410 and fingerprinted in step 412. If the controllable device 305a sent recording parameters on behalf of multiple controllable devices, the controllable device 305a may communicate with the other multiple controllable devices via the gateway 304 or other internal network at the premises 301 to determine whether any of the multiple controllable devices matched their respective audio fingerprints to the fingerprint from the remote control 307. Matching fingerprints may indicate that the two devices recorded the same ambient noise, or audio, and may be, therefore, in close proximity. Referring to the example of
If the controllable device 305a does not determine a match with its own audio fingerprint or with any of the multiple controllable devices, then the controllable device 305a may resume listening for advertisements or discovery requests as in step 404. If a temporary pairing between the remote control 307 and the controllable device 305a was created, and if the fingerprints do not match, then the secure communication channel associated with the temporary pairing may be dropped.
After the filtering, the controllable device 305a may narrow the number of matching controllable devices, or even determine a single intended match. If the controllable device 305a is the only intended match, then in step 430, the controllable device 305a may cause pairing between itself and the remote control 307 by initiating a pairing sequence. If a temporary pairing was created between the controllable device 305a and the remote control 307, then the temporary pairing may be confirmed or made non-temporary. If another single controllable device is determined to be the intended matching device, in step 430, the controllable device 305a may cause a pairing sequence to be initiated by the intended matching device with the remote control 307.
If there are multiple matches and the controllable device 305a is unable to determine a single intended controllable device, then in step 426, the controllable device 305a may cause the display of a user interface for device selection in step 426. The controllable device 305a may cause a display on display device 309a requesting the user select the intended device from a list of possible devices. The user may highlight and select the device or may enter the number associated with the device list by pressing buttons on the remote control, or the like. The user may also select the device using audio commands. The controllable device 305a may cause a display requesting the user to say a phrase to determine which devices detected the phrase. The controllable device 305a may also cause the remote control to display a list of devices for selection by the user, such as is described further below regarding
Additionally, or alternatively, the remote control 307 may record and stream television audio (or fingerprint of the audio) to the controllable device 305a, or to television that is playing the audio (e.g., display devices 309a-b). In this case, the television receiving the streamed audio (or fingerprint) may identity the streamed audio (or fingerprint) as the audio it is playing (or associated with the audio it is playing). The television may then initiate pairing with the remote control 307.
In step 504, the remote control may announce that it is available for pairing my sending a message via wireless communication channels, such as IEEE 802.11, IEEE 802.15, Zigbee, Bluetooth, and the like. The remote control may display a message indicating that it has started announcing that it is available for pairing, such as shown in
In step 510, the remote control 307 may record audio based on the audio parameters from the pairing response. The remote control may record an audio sample based on the pairing response received in step 506. The remote control 307 may display a message indicating that it is recording an audio sample, such as shown in
In step 516, the remote control 307 may receive a pairing match response from the requesting controllable device based on the remote control fingerprinted audio matching with the fingerprinted audio from one or more of the controllable devices. If, based on the matching, there is only a single controllable device match, then the remote control may pair with the matching controllable device (step 526). In the case of a single match, the pairing match response may comprise a pairing request to which the remote control could respond to bind the pairing. If, based on the pairing match response, there are multiple devices that matched the audio fingerprinted of the remote control 307 (step 518), then in step 520, the remote control may display a user interface prompting the user to select the intended controllable device for pairing with the remote control 307. In the case of multiple matches, the pairing match response may comprise information regarding each of the matching controllable devices. The user interface may display a list of the matching controllable devices and ask the user to select the correct device by pressing a button such as shown in
In step 522, the remote control 307 may receive an indication of the user's selection of the controllable device for the remote control to pair with. Then, in step 524, the remote control 307 may send a reply to the controllable device that sent the pairing match response indicating the selected device. The remote control 307 may also send the reply to the selected controllable device. The remote control 307 may, in step 526, pair with the selected controllable device by responding to a pairing request from the selected controllable device to bind the pairing.
Although examples are described above, features and/or steps of those examples may be combined, divided, omitted, rearranged, revised, and/or augmented in any desired manner. Various alterations, modifications, and improvements will readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to be part of this description, though not expressly stated herein, and are intended to be within the spirit and scope of the disclosure. Accordingly, the foregoing description is by way of example only, and is not limiting.