Abstract:
The present invention extends to methods, devices, systems, and computer program products for managing audio output through an intermediary. In some embodiments, an audio controller emulates a direct connection between an audio source device and an audio output device. In other embodiments, audio content local to an audio controller is combined with other audio content passing through the audio controller on its way from an audio source device to an audio output device. In additional embodiments, an audio output device is locked to an audio controller.

Description:
CROSS REFERENCE TO RELATED APPLICATION 
       [0001]    This application is a continuation-in-part of application Ser. No. 13/183,349, filed Jul. 14, 2011, pending, the disclosure of which is incorporated herein in their entirety by this reference. 
     
    
     TECHNICAL FIELD 
       [0002]    The present invention relates generally to managing audio. More specifically, the present invention relates to managing audio with an audio controller configured for coupling between a source device and an output device. 
       BACKGROUND OF RELATED ART 
       [0003]    Computer systems and related technology affect many aspects of society. Indeed, a computer system&#39;s ability to process information has transformed the way we live and work. Computer systems now commonly perform a host of tasks (e.g., word processing, scheduling, accounting, etc.) that prior to the advent of the computer system were performed manually. More recently, computer systems have been coupled to one another and to other electronic devices to form both wired and wireless computer networks over which the computer systems and other electronic devices can transfer electronic data. Accordingly, the performance of many computing tasks are distributed across a number of different computer systems and/or a number of different computing environments. 
         [0004]    In some computing environments, devices use wireless communication to establish networks. After a network is established, the devices can wirelessly exchange data over the network. For example, an MP 3  player can use a wireless communication process to establish a connection to wireless speaker. After a connection is established, the MP3 player can stream music to the wireless speakers for output. 
         [0005]    However, when secure communication over wireless networks is required it can be more difficult to correctly configure devices for connection to one another. Standards, such as WiFi Protected Setup (WPS), exist to simplify the configuration process, but these do not address the issue of establishing pairings for streaming audio content, which must be done separately. In addition, while standards such as Universal Plug and Play (UPnP) exist for pairing devices for streaming audio content, these are generally implemented in support of uses cases that involve ad-hoc pairings of source devices to speakers, rather than consistent, dedicated connections between devices. 
       BRIEF SUMMARY 
       [0006]    The present invention extends to devices, systems, and computer program products for managing audio output through an intermediary. In some embodiments, audio content is wirelessly transferred from a source device to an output device through an intermediate audio controller. The audio controller receives an audio content transfer request, which requests the transfer of audio content from the source device to the audio controller. The audio controller emulates a direct connection between the source device and the output device. 
         [0007]    Emulating a direct connection may include the audio controller using wireless communication to formulate end-to-end audio control characteristics, which may be used to manage audio control parameters with the source device. The end-to-end audio control characteristics reflect how the audio content is sent from the source device through the audio controller to the output device for audio output. The end-to-end audio control parameters may be formulated by regulating the computation of first audio control parameters used to transfer the audio content from the source device to the audio controller and by regulating the computation of second audio control parameters used to transfer the audio content from the audio controller to the output device for audio output. 
         [0008]    The audio controller receives a portion of the audio content from the source device. The portion of audio content is sent in accordance with the first audio control parameters. The audio controller then sends the portion of audio content on to the output device in accordance with the second audio control parameters. The audio controller ensures that the entire transfer process is in accordance with the end-to-end audio control characteristics. 
         [0009]    In other embodiments, an audio controller modifies audio content being transferred through the audio controller. The audio controller transfers the audio content from a source device to an output device for real-time output. The audio controller may receive an indication of an occurrence of an external event from a sensor device included in one or more devices. The indication may be received at a time when the audio controller is in the process of transferring the audio content to the output device. 
         [0010]    In response to receiving the indication of the external event, the audio controller determines that additional audio content related to the external event is to be output at the audio output device. The audio controller modifies one or more of the audio content and the transfer timing of the audio content in order to accommodate the additional audio content. The audio controller combines the additional audio content with the audio content sent to the output device. 
         [0011]    In other embodiments, an audio controller and an audio output device connect to one another. The audio controller receives a user selection of a user interface control for pairing with one or more audio output devices. An audio output device sends a request for wireless communication configuration information to any accessible wireless access points. The audio controller receives the request for communication configuration information from the audio output device. 
         [0012]    The audio controller provides communication configuration information to the audio output device. The audio output device receives communication configuration information. The communication configuration information may be used to establish wireless communication with the audio controller. 
         [0013]    The audio output device sends an advertisement signal advertising availability of the audio output device to pair with audio source devices. The audio controller detects the advertisement signal from the audio output device. The audio controller sends a pairing request to the audio output device, which may accept the pairing request. The pairing request may include controller pairing information. 
         [0014]    The audio controller sends a signal to the audio output device to prompt the audio output device to stop sending advertisement signals. The audio output device receives the signal from the audio controller. In response to receiving the signal, the audio output device locks the audio output device to the audio controller. Locking the audio output device to the audio controller may include storing the communication configuration information and controller pairing information in nonvolatile storage. 
         [0015]    Locking the audio output device to the audio controller may also include directing the audio output device to re-connect to the audio controller in response to a power cycle or soft reset of the audio output device. Directing the audio output device to re-connect to the audio controller includes the audio output device automatically re-establishing communication with the audio controller using the stored communication configuration information. The audio output device may also re-advertise availability to pair with audio source devices. The audio output device accepts a pairing request from the audio controller based on the stored controller pairing information. The audio output device does not respond to pairing requests from other devices based on the stored controller pairing information. 
         [0016]    Locking the audio output device to the audio controller may also include permitting the audio output device to connect to any wireless access point and to any audio source device in response to a hard reset of the audio output device. Permitting the audio output device to connect to any wireless access point includes removing the communication configuration information from non-volatile storage, and permitting the audio output device to connect to any audio storage device may include removing the controller pairing information from non-volatile storage. The audio output device sends a new request for communication configuration information to any accessible wireless access point. 
         [0017]    According to some embodiments, an audio output device is restricted to connecting to a single device. The single device may comprise both a wireless access point and an audio source device, such as, for example, an audio controller. After the audio output device receives communication configuration information from a wireless access point and sends a pairing advertisement signal, the audio output device may accept a pairing request from the same device from which it received communication configuration information. After a hard reset, the audio output device is once again permitted to connect to any single device that is both a wireless access point and an audio source device. 
         [0018]    According to another embodiment, an audio controller includes a parameter computation module configured to compute audio control parameters for transferring audio content from an audio source to an audio output. The audio controller is further configured to compute end-to-end audio control characteristics for transferring audio content from the audio source to the output output. The audio controller also includes a network interface controller coupled to the parameter computation module and configured to transfer audio content in accordance with the audio control parameters and the end-to-end audio control characteristics. 
         [0019]    Another embodiment of the present invention includes an audio controller comprising an event processor configured to receive an event indication from a sensor coupled thereto. The audio controller also includes an audio content modifier coupled to the event processor and configured to combine audio content received from an audio source with locally stored audio content in response to the event indication to generate modified audio content. Further, the audio controller includes a network interface controller configured to receive the audio content from the audio source and send the modified audio content to an audio output. 
         [0020]    Other embodiments of the invention comprise non-transitory computer-readable media storing instructions that when executed by a processor cause the processor to perform instructions according to one or more embodiments described herein. 
         [0021]    This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. 
         [0022]    Additional features and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of the invention. The features and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0023]    In order to describe the manner in which the above-recited and other advantages and features of the invention can be obtained, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which: 
           [0024]      FIG. 1  illustrates a system that facilitates wirelessly transferring audio content from a source device to an output device through an intermediary audio controller, in accordance with an embodiment of the present invention. 
           [0025]      FIG. 2  illustrates a flow chart of a method for wirelessly transferring audio content from a source device to an output device, in accordance with an embodiment of the present invention. 
           [0026]      FIG. 3  illustrates a system that facilitates modifying audio content being transferred through an audio controller, according to an embodiment of the present invention. 
           [0027]      FIG. 4  illustrates a flow chart of a method for modifying audio content being transferred through an audio controller, in accordance with an embodiment of the present invention. 
           [0028]      FIG. 5  illustrates a system that facilitates connecting an audio controller with an audio output device, according to an embodiment of the present invention. 
           [0029]      FIG. 6  illustrates a flow chart of a method for connecting an audio controller with an audio output device, according to an embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0030]    Embodiments of the present invention may comprise or utilize a special purpose or general-purpose computer including computer hardware, such as, for example, one or more processors and system memory, as discussed in greater detail below. Embodiments within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer system. Computer-readable media that store computer-executable instructions are computer storage media (devices). Computer-readable media that carry computer-executable instructions are transmission media. Thus, by way of example, and not limitation, embodiments of the invention can comprise at least two distinctly different kinds of computer-readable media: computer storage media (devices) and transmission media. 
         [0031]    Computer storage media (devices) includes RAM, ROM, EEPROM, COROM, solid state drives (“SSOs”) (e.g., based on RAM), Flash memory, phase-change memory (“PCM”), other types of memory, other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. 
         [0032]    A “network” is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a transmission medium. Transmissions media can include a network and/or data links which can be used to carry or desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. Combinations of the above should also be included within the scope of computer-readable media. 
         [0033]    Further, upon reaching various computer system components, program code means in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to computer storage media (devices) (or vice versa). For example, computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface controller (e.g., a “NIC”), and then eventually transferred to computer system RAM and/or to less volatile computer storage media (devices) at a computer system. Thus, it should be understood that computer storage media (devices) can be included in computer system components that also (or even primarily) utilize transmission media. 
         [0034]    Non-transitory computer-executable instructions comprise, for example, instructions and data which, when executed at a processor, cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the described features or acts described above. Rather, the described features and acts are disclosed as example forms of implementing the claims. 
         [0035]    Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics (e.g., audio output devices, such as, speakers and headphones), network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, pagers, routers, switches, alarm system control panels, home automation control panels, and the like. The invention may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices. 
         [0036]      FIG. 1  illustrates a system  100  that facilitates transferring (e.g., wirelessly transferring) audio content from a source device to an output device through an intermediary audio controller, according to an embodiment of the present invention. Referring to  FIG. 1 , system  100  includes source device  101 , output device  102 , and audio controller  103 . Each of the depicted components is connected to one another over, or is part of, a network, such as, for example, a Local Area Network (“LAN”), a Wide Area Network (“WAN”), and the Internet. Accordingly, each of the depicted systems, as well as any other connected systems and their components, can create message related data and exchange message related data over the network. The message related data can be sent using any of a variety of communication protocols, including: Internet Protocol (“IP”) and other higher layer protocols that utilize IP datagrams, such as, Transmission Control Protocol (“TCP”) and User Datagram Protocol (“UDP”). The message related data can also be sent using even high layer protocols that utilize TCP segments or UDP datagrams, including Hypertext Transfer Protocol (“HTTP”), Real-time Transport Protocol (“RTP”), Real Time Streaming Protocol (“RTSP”), AirPlay (which uses UDP for streaming and is based on RTSP), Digital Audio Access Protocol (“DAAP”), other protocols used by Digital Living Network Alliance (“DLNA”) compliant devices, etc. 
         [0037]    As depicted, source device  101  includes audio content  104  and NIC  106 . Source device  101  can be a self contained device, such as, for example, a mobile audio playback device (e.g., an MP3 player) or mobile phone with audio play back capabilities (e.g., an iPhone or Droid). According to another embodiment, source device  101  can be a computer system (e.g., a media server) including other internal and/or external components. Audio content  104  (e.g., digital data representing speech, music, etc.) can be stored at the computer system, such, as for example, on a hard disk, solid state driver, or other non-volatile memory. In other embodiments, audio content  104  is stored at a location on a WAN, such as, for example, on the Internet. 
         [0038]    Audio content  104  can be stored in any of a variety of file formats, including uncompressed formats (e.g., WA V, AIFF, etc.), formats with lossless compression (e.g., m4a, MPEG-4, WMA, etc.), and formats with lossy compression (e.g., MP3). Generally, in response to a command entered at source device  101  or in response to a command received from another computer system, wireless NIC  106  may be configured to send audio content  104  (e.g., stream, download, copy, etc.) to an audio output device (e.g., speakers). Wireless NIC  106  can encode and transfer portions of audio content in accordance with audio control parameters established between source device  101  and an audio output device. 
         [0039]    As depicted, audio controller  103  includes wireless NIC  107  and parameter computation module  108 . Audio controller  103  may comprise a computer system. In some embodiments, audio control  103  is also a control panel for a system, such as, for example, an alarm system or home automation system. 
         [0040]    Parameter computation module  108  can compute audio control parameters (e.g., buffer timings) for transferring audio content to and/or from other devices. In some embodiments, parameter computation module  108  accesses pre-assigned characteristics for other devices and uses the pre-assigned characteristics to compute audio control parameters. Alternately or in combination, parameter computation module  108  independently derives characteristics for other devices and uses the derived characteristics to compute audio control parameters. Parameter computation module  108  can instruct wireless NIC  107  to exchange messages with other devices and send results of the message exchanges back to parameter computation module  108 . 
         [0041]    Parameter computation module  108  can also compute end-to-end audio control characteristics for transferring audio content from an audio source device through audio controller  103  to an audio output device. Audio controller  103  can use end-to-end audio control parameters to formulate audio control parameters to emulate to an audio source device a direct connection from the audio source device to the audio output device (even though the audio content passes through audio controller  103 ). 
         [0042]    Generally, wireless NIC  107  can receive audio content from an audio source device and send the audio content to an audio output device. Wireless NIC  107  can transfer portions of content in accordance with audio control parameters established between audio controller  103  and an audio source device and in accordance with audio control parameters established between audio controller  103  and an audio output device, such that the end-to-end transfer is in accordance with the computed end-to-end audio control characteristics. 
         [0043]    As depicted, output device  102  includes wireless NIC  109  and sound element  111 . Wireless NIC  109  can receive and decode portions of audio content in accordance with audio control parameters established between output device  102  and an audio source device. Wireless NIC  109  can transfer received portions of audio content to sound element  111 . Sound element  111  can emit sound (e.g., music, speech, etc.) from received portions of audio content. 
         [0044]      FIG. 2  illustrates a flow chart of a method  200  for wirelessly transferring audio content from a source device to an output device, according to an embodiment of the present invention. Method  200  will be described with respect to the components and data of system  100  illustrated in  FIG. 1 . 
         [0045]    Method  200  includes receiving an audio content transfer request requesting the transfer of audio content from a source device to an audio controller (act  202 ). More specifically, method  200  may include receiving an audio content transfer request at a wireless network interface. For example, wireless NIC  107  can receive transfer request  112 . Transfer request  112  can request the transfer of audio content  104  to from source device  101  to audio controller  103 . 
         [0046]    Method  200  further includes emulating a direct connection between the source device and an output device (act  204 ). More specifically, method  200  includes emulating a direct connection between the source device and an output device with an audio controller. For example, audio controller  103  can emulate a direct connection between source device  101  and output device  102  to source device  101 . 
         [0047]    Act  204  may include using wireless communication to formulate end-to-end audio control characteristics, wherein the end-to-end audio control characteristics reflecting how the audio content is sent from the source device through the audio controller to the output device for audio output. Further, the end-to-end audio control characteristics may be formulated by regulating the computation of first audio control parameters used to transfer the audio content from the source device to the audio controller and by regulating the computation of second audio control parameters used to transfer the audio content from the audio controller to the output device for audio output (act  205 ). For example, through current or prior wireless communication with source device  101 , parameter computation module  108  can formulate end-to-end audio control characteristics  123 . End-to-end audio control characteristics  123  reflect how audio content is sent from source device  101  through audio controller  103  to output device  102  for audio output, including end to end timing considerations, such as, combined playback delay from source device  101  to output device  102 . In some embodiments, a combined playback delay is essentially equal to the round trip time between source device  101  and audio controller  103  plus a playback delay between audio control  103  and output device  102 . 
         [0048]    Parameter computation module  108  can formulate end-to-end audio control characteristics  123  by regulating the computation of audio control parameters  121  (e.g., playback delay from source device  101  to audio control  103 ) used to transfer audio content from source device  101  to audio controller  103 . By way of example, audio controller  103  can represent to source device  101  that the playback delay between source device  101  and audio controller  103  is the combined playback delay. Parameter computation module  108  can also formulate end-to-end audio control characteristics  123  by regulating computation audio control parameters  122  (e.g., playback delay from audio control  103  to output device  102 ) used to transfer audio content from audio controller  103  to output device  102 . 
         [0049]    Among other things, combined audio control parameters  123  can define how to transfer audio content in order to account for timing differences associated with audio commands received at source device  101  and when the results of received audio commands are realized at output device  102 . Audio commands include changing volume as well as transitions between pause, play, fast forward, rewind, etc. The results of an audio command are realized when sound emitted at sound element  111  conforms to the audio command. For example, the results of a pause command entered at source device  101  are realized when sound is no longer emitted from sound element  111 . 
         [0050]    Moreover, method  200  includes receiving a portion of the audio content from the source device sent in accordance with the first audio control parameters and the end-to-end audio control characteristics (act  206 ). More specifically, method  200  includes receiving, at the wireless network interface, a portion of the audio content from the source device. For example, wireless NIC  109  can receive content portion  104 P. Content portion I 04P can be a portion of audio content  104  sent (e.g., streamed or copied) from wireless NIC  106  to audio controller  103 . Wireless NIC  106  can send content portion I04P in accordance with audio control parameters  121  and in accordance with end-to-end audio control parameters  123 . 
         [0051]    Method  200  also includes sending the portion of audio content to the output device in accordance with the second audio control parameters and the end-to-end audio control characteristics (act  208 ). For example, wireless NIC  107  can send content portion  104 P to output device  102  in accordance with audio control parameters  122  and in accordance with end-to-end audio control characteristics  123 . Accordingly, audio controller  103  may ensure that the entire transfer process is in accordance with the end-to-end audio control parameters, and that the first audio control parameters emulate these end-to-end parameters to the source device. 
         [0052]    In some embodiments, audio controller  103  may completely decode content portion  104 P as received from source device  10   1 . Audio controller  103  then re-encodes content portion  104 P for transfer to output device  102 . Audio control parameters can also be adjusted during audio content transfer for optimization, to adjust for changed network conditions, etc. 
         [0053]      FIG. 3  illustrates a system  300  that facilitates modifying audio content being transferred through an audio controller, according to an embodiment of the present invention. Referring to  FIG. 3 , system  300  includes source device  301  (e.g., an iPod), output device  302  (e.g., wireless speakers), and audio controller  303  (e.g., an alarm system or home automation control panel). Each of the components in system  300  can be connected to a network and use communication protocols as described with respect to system  100 . 
         [0054]    As depicted, source device  301  includes audio content  304  (e.g., digital data representing speech, music, etc.) and wireless NIC  306 . Source device  301  can be any device similar to that described with respect to source device  101 . Audio content  304  can be stored at any location and can be stored in any format similar to those described with respect to audio content  104 . Generally, in response to a command entered at source device  301 , or in response to a command received from another system, wireless NIC  306  may be configured to send audio content  304  (e.g., stream, download, copy, etc.) to an audio output device (e.g., speakers). 
         [0055]    As depicted, audio controller  303  includes wireless NIC  307 , audio content modifier  308 , sound element  312 , and event processor  319 . Audio controller  303  can be a computer system and/or a controller for some other type of system, such as, for example, an alarm system or home automation system. It is noted that audio controller  303  may comprise parameter computational module  108 , as described with reference to audio controller  103  illustrated in  FIG. 1 . 
         [0056]    Generally, wireless NIC  307  can receive audio content from an audio source device and/or from modules within audio controller  303  and send the audio content to an audio output device. Audio controller  303  is connected to sensors  317 , which may include passive and active alarm system sensors (motion detectors, door sensors, glass break sensors, etc), home automation sensors (e.g., electric eyes, temperature sensors, wind sensors, etc), etc. Sensors  317  can be connected to audio controller  303  via wired and/or wireless connections. Event processor  319  may be configured to receive event indications (e.g., indicating a door has been open, that the temperature is higher or lower than a pre-set temperature, etc.) from sensors  317 . Event processor  319  can take responsive actions to an indicated event, such as, for example, sounding an alarm or status signal, turning on/off a light, etc. When responsive actions include emitting sound, event processor  319  can send locally stored audio content (e.g., digital data representing speech, alarm tones, status tones, etc.) to output device  302 , sound element  312 , or both. Sound element  312  can emit sound (e.g., speech, alarm tones, status tones, etc.) from received portions of audio content. 
         [0057]    When audio controller  303  is transferring audio content  304  to output device  302 , event processor  319  can also cause locally stored audio content  318  to be sent to output device  302  as well. For example, during transfer of audio content  304  from a source to output device  302 , audio controller can decode the audio content as received from the source device. The decoded audio content is temporarily stored in a buffer (e.g., in system memory) at audio controller  103 . Audio controller  103  can then access the decoded audio content from buffer, re-encode the audio content, and send the audio content to output device  302 . 
         [0058]    In response to an indicated event, event processor  319  can instruct audio content modifier  308  to access decoded audio content from the buffer. Audio content modifier  308  can combine the buffered audio content with locally stored audio content  318 . Combining buffered audio content with locally stored audio content can include: mixing locally stored audio into buffered audio content, pre-empting portions of buffered audio content with local stored audio content, modifying the volume of buffered audio content, overlaying locally stored audio into buffered audio content, etc. The combined audio content is re-encoded and sent to output device  302 . 
         [0059]    Accordingly, in response to an indicated event, locally stored audio content can be output both at sound element  312  and at sound element  311 . In some embodiments, the volume of buffered audio content  304 P is lowered so that locally stored audio content  318  is more prominently emitted at sound element  311 . 
         [0060]    As depicted, output device  302  includes wireless NIC  309  and sound element  311 . Wireless NIC  309  can receive portions of audio content in accordance with audio control parameters established between output device  302  and an audio source device. Wireless NIC  309  can transfer, including decoding and re-encoding when appropriate, received portions of audio content to sound element  311 . Sound element  311  can emit sound (e.g., music, speech, alarm tones, status tones, etc.) from received portions of audio content. 
         [0061]      FIG. 4  illustrates a flow chart of a method  400  for modifying audio content being transferred through an audio controller, according to an embodiment of the present invention. Method  400  will be described with respect to the components and data of computer architecture  300 . 
         [0062]    Method  400  includes transferring audio content from a source device to an output device (act  402 ). More specifically, as an example, method  400  may include transferring, via an audio controller, audio content from a source device to an output device for real-time output. For example, source device  310  can wirelessly transfer audio content  304  to audio controller  303 . Audio controller  303  can wirelessly transfer audio content  304  onto output device  320 . 
         [0063]    Method  400  further includes receiving an indication of an occurrence of an external event from a sensor device (act  404 ). According to one embodiment, the indication may be received at a time when the audio controller is in the process of transferring the audio content to the output device for audio output. For example, event processor  319  can receive event indication  321  indicating detection of an external event by a sensor in sensors  317 . The external event can be an alarm system event (e.g., door opening, motion within in area, etc.) or a home automation system event (e.g., a change in temperature). Event indication  321  can be received when content portion  304 P (a portion of audio content  304 ) is being transferred to output device  302  for (e.g., essentially real-time) audio output. As such, content portion  304 P may be stored in a buffer at audio controller  303  at the time event processor  319  receives event indication  321 . 
         [0064]    In response to receiving the indication of the external event, method  400  includes determining that additional audio content related to the external event is to be output at the audio output device (act  406 ). For example, event processor  319  can determine that stored audio content  318  (e.g., digital data) is to be output to audibly represent detection of the external event to a user. Stored audio content can be matched to the type of event. For example, when event indication  321  indicates a garage door has been opened, stored audio content for emitting the phrase “garage door open” can be selected for output at output device  302  and possibly sound element  312 . 
         [0065]    Furthermore, in response to receiving the indication of the external event, method  400  includes modifying one or more of the audio content and the transfer timing of the audio content in order to accommodate the additional audio content (act  408 ). For example, audio content modifier  308  can access content portion  304 P (e.g., from system memory) and stored audio content  318 . Audio content modifier  308  can modify content portion  304 P and/or the transfer timing of content portion  304 P to accommodate stored audio content  318 . 
         [0066]    Additionally, in response to receiving the indication of the external event, method  400  may include combining the additional audio content with the audio content sent to the output device (act  410 ). For example, audio content modifier  308  can combine the modified content portion  304 P and stored audio content  318  into modified content portion  304 PM, which includes (i.e., accommodates) stored audio content  318 . Audio controller  103  can send modified content portion  304 PM to output device  302 . 
         [0067]    Output device  302  can receive modified content portion  304 PM and forward modified content portion  304 PM to sound element  311 . Sound element  311  can emit sound representative of modified content portion  304 PM. For example, content portion  304 P (e.g., part of a song) can be played at a lower volume so that stored audio content (e.g., “garage door open”) is output more prominently. Stored audio content  318  can also be output at sound element  312  in combination with modified content portion  304 PM being output at sound element  311 . Accordingly, stored audio content responsive to an external event can be output at multiple locations in response to detecting the external event. 
         [0068]      FIG. 5  illustrates a system  500  that facilitates connecting an audio controller with an audio output device, in accordance with an embodiment of the present invention. Referring to  FIG. 5 , system  300  includes audio controller  503  (e.g., an alarm system control panel or home automation system control panel) and output device  502  (e.g., wireless speakers). Each of the components in system  500  can be connected to a network and use communication protocols as described with respect to system  100 . 
         [0069]    As depicted, audio controller  503  includes UI control  506  and wireless NIC  507 . UI control  506  can be used to pair audio controller  503  with audio output devices. For example, when selected, UI control  506  can transition audio controller  503  into a wireless pairing mode. In wireless pairing mode, audio controller  503  can accept communication requests from other wireless devices to establish wireless communication with audio controller  503 . Audio controller  503  can send communication configuration information (e.g., including a Service Set 10 (“SSIO”) and private shared key (“PSK”) for encryption) for communicating with audio controller  503  in response to accepted communication requests. The other wireless devices can use the communication configuration information to communicate with audio controller  503 . 
         [0070]    As depicted, audio output device  502  includes wireless NIC  509 , boot module  522 , pairing control  528 , and sound element  538 . Generally, to boot audio output device  502 , a user can select a specified device control. For example, user  531  can select any of power cycle control  524  (e.g., on/off switch or power cable), soft reset control  526  (e.g., a reset button activated in a first specified manner), and hard reset control  527  (e.g., the reset button activated in a second specified manner) to boot audio output device  502 . 
         [0071]    Upon booting, boot module  522  is configured to determine the boot event (power cycle event, soft reset event, or hard reset event) that caused audio output device  502  to boot up. Based on the boot type, boot module  522  can execute different sets of instructions to transition audio output device  502  into an operational state. 
         [0072]    In some embodiments, boot module  522  executes essentially the same set of instructions in response to a power cycle event or soft reset event. When appropriate, instructions executed by boot module  522  can access data stored in nonvolatile storage  521 . The executed instructions can use the accessed data during the boot up procedure to perform various functions, such as, for example, automatically connecting to a wireless access point and pairing with an audio source device. When appropriate, instructions executed by boot module  522  can also delete data stored in non-volatile storage  521 . For example, the executed instructions can delete data used to automatically connect to wireless access pointer and/or used to pair with an audio device. 
         [0073]    Generally, wireless NIC  509  facilitates wireless communication with other devices. Wireless NIC  509  can be used to associate with a wireless access point. Through wireless NIC  509 , audio output device  502  can broadcast a communication request to any wireless access points within range. A wireless access point can respond with appropriate communication configuration information. Audio output device  502  can use the communication configuration information to connect to the wireless access point. Audio output device  502  can also store the communication configuration information in non-volatile storage  521 . 
         [0074]    Subsequent to audio output device  502  establishing wireless communication with audio controller  503 , audio output device  502  and audio controller  503  can engage in further communication. The further communication can include audio output device  502  advertising functionality. 
         [0075]    Audio controller  503  can return a pairing request, including pairing information, to audio output device  502 . Audio output device  502  can accept the pairing to audio controller  503 . Audio output device  502  can also store pairing information in non-volatile storage  521 . Upon receiving a final signal in the pairing process from audio controller  503 , audio output device  502  can stop advertising the ability to output audio content. Alternately, after the paring process is complete, audio controller  503  can send a further signal to audio output device  502 . In response to the further signal, audio output device  502  can stop advertising the ability to output audio content. 
         [0076]    Accordingly, audio output device  502  is essentially “locked” to audio controller  503 . Further, audio output device  502  can use the stored communication configuration information and pairing information to more efficiently re-connect and re-pair with audio controller. 
         [0077]    Subsequent to a hard reset or upon other conditions when stored communication configuration information and pairing information are not available (e.g. a first power up), user  531  can enter selection  532  to select pairing control  528  (e.g., a hard or soft user-interface control). In response to the selection of pairing control  528 , audio output device  502  can initiate the pairing process by sending a request for communication configuration information. 
         [0078]      FIG. 6  illustrates a flow chart of a method  600  for connecting an audio controller with an audio output device, in accordance with an embodiment of the present invention. Method  600  will be described with respect to the components and data of system  500  illustrated in  FIG. 5 . 
         [0079]    Method  600  includes receiving a user selection of a user-interface control for pairing with one or more audio output devices (act  602 ). For example, audio controller  502  can receive selection  504  of UI control  506  from user  501 . Selection of UI control  506  can transition audio controller  503  into base station mode and make audio controller  502  available to pair with audio output devices. 
         [0080]    Method  600  further includes sending a request for communication configuration information to any accessible wireless access points (act  604 ). For example, audio output device  502  can broadcast communication request  511  to audio controller  503 . Moreover, method  600  includes, subsequent to user selection of the user-interface control, receiving a request for communication configuration information from an audio output device (act  606 ). For example, audio controller  503  can receive communication request  511  from audio output device  502 . 
         [0081]    Method  600  also includes providing communication configuration information to the wireless audio output device (act  608 ). The communication configuration information may be used in wireless communication with by the audio controller. Method  600  further includes receiving communication configuration information from a wireless audio controller (act  610 ). The communication configuration information may be used in subsequent wireless communication with the wireless audio controller. For example, audio controller  503  can provide communication configuration information  512  to audio output device  502 . Audio output device  502  can receive communication configuration information  512  from audio controller  503 . Audio output device  502  can use communication configuration information  512  for wireless communication (e.g., to connect) with audio controller  503 . 
         [0082]    In addition, method  600  includes wirelessly sending an advertisement signal advertising availability of the audio output device to wirelessly pair with audio source devices (act  612 ). Method  600  may also include detecting an advertisement signal from the audio output device (act  614 ). For example, audio output device  502  can send advertisement  513  to audio controller  502 . Advertisement  513  advertises the ability of audio output device to wirelessly pair with audio controller  503 . Audio controller  503  can detect advertisement  513 . 
         [0083]    Method  600  further includes sending a pairing request to the detected audio output device (act  616 ). The pairing request may include controller pairing information. Further, method  600  includes accepting a pairing request from the wireless audio controller based on received controller pairing information (act  618 ). For example, audio controller  503  can send pairing request  514 , including pairing information  516 , to audio output device  502 . Audio output device  502  can accept pairing request  514  from audio controller  503  based on pairing information  516 . Audio output device  502  can send pairing acceptance  517  to audio controller  503  to indicate acceptance of pairing request  514 . 
         [0084]    Additionally, method  600  includes sending a signal to the audio output device to prompt the audio output device to stop sending advertisement signals (act  620 ). In response thereto, other devices may be unable to detect the audio output device and the audio output device is essentially locked to the audio controller. Method  600  may also include receiving a signal from the wireless audio controller (act  622 ). The signal may prompt the audio output device to stop sending advertisement signals. For example, audio controller  503  can send signal  518  to audio output device  502 . Audio output device  502  can receive signal  518  from audio controller  503 . Signal  518  prompts audio output device  502  to stop sending advertisements signals. In response to receiving signal  518 , audio output device  502  can stop sending advertisements. Accordingly, other audio source devices are unable to detect audio output device  502 . 
         [0085]    Signal  518  can be a final signal sent from audio controller  503  to audio output device  502  during the pairing process between audio controller  503  and audio output device  502 . Audio output device  502  can be configured to stop sending advertising signals in response to receiving this final signal. Alternately, signal  518  can be a further signal sent from audio controller  518  to audio output device  502  after the pairing process has completed. The further signal can expressly instruct audio output device  502  to stop sending advertising signals. 
         [0086]    In response to receiving the signal, method  600  includes locking the audio output device to the wireless audio controller (act  624 ). For example, in response to receiving signal  618 , audio output device  502  is essentially locked to audio controller  503 . Act  624  may include storing the communication configuration information and controller pairing information in the non-volatile storage (act  625 ). For example, audio output device  502  can store communication configuration information  512  and pairing information  516  in non-volatile storage  521 . Act  624  may also include directing the audio output device to re-connect to the audio controller in response to a power cycle or soft reset of the audio output device (act  626 ). For example, in response to a power cycle or soft reset, boot module  522  can execute power cycle/soft reset boot instructions  533 . Power cycle/soft reset boot instructions  533  can direct audio output device  502  to re-connect to audio controller  503 . 
         [0087]    Act  626  may include automatically re-establishing wireless communication with the wireless audio controller using the stored communication configuration information (act  627 ). For example, during execution, power cycle/soft reset boot instructions  533  can access communication configuration information  512  and pairing information  516  from non-volatile storage  521 . Boot module  522  and wireless NIC  509  can use communication configuration information  512  to reestablish wireless communication with audio controller  503 . 
         [0088]    Act  626  may further include re-advertising availability to wirelessly pair with audio source devices (act  628 ). For example, audio output device  502  can resend advertisement  513  indicating availability to wirelessly pair with audio source devices. Act  626  may also include accepting a pairing request from the previously paired wireless audio controller based on the stored controller pairing information (act  629 ). For example, audio output device  502  can accept a pairing request from audio controller  503  based on pairing information  516 . Upon receiving a new pairing request from audio controller  503 , audio output device  502  can compare pairing information in the new pairing request to pairing information  516 . Based on the comparison, audio output device  502  can derive that it was previously paired with audio controller  503 . In response, audio output device  502  can again pair with audio controller  503 . 
         [0089]    Act  626  may further include rejecting (e.g., not responding to) pairing requests from other devices based on the stored controller pairing information (act  630 ). For example, audio output device  502  rejects pairing requests from other devices based on pairing information  516 . Upon receiving a pairing request from another device, audio output device  502  can compare pairing information in the pairing request to pairing information  516 . Based on the comparison, audio output device  502  can derive that it was not previously paired with the other device. In response, audio output device  502  does not respond to the pairing request from the other device. 
         [0090]    Act  624  may also include permitting the audio output device to connect to any wireless access point and audio source device in response to a hard reset of the audio output device (act  631 ). For example, in response to a hard reset, boot module  522  can execute hard reset boot instructions  534 . Hard reset boot instructions  534  permit audio output device  502  to connect to any source audio device. 
         [0091]    Act  631  may include removing the communication configuration information and controller pairing information from non-volatile storage (act  632 ). For example, during execution, hard reset boot instructions  534  can delete configuration information  512  and pairing information  516  from non-volatile storage  521 . Act  631  may also include sending a new request for communication configuration information to any accessible audio source devices (act  633 ). For example, in response to selection of pairing control  528 , audio output device  502  can re-broadcast communication request  511 . Re-broadcasting communication request  511  can result in a pairing with a new wireless access point and audio source device. 
         [0092]    Accordingly, an audio output device can be restricted to connecting to a single device, which is both a wireless access point and an audio source device, such as, for example, an audio controller. After the audio output device receives communication configuration information from a wireless access point and sends a pairing advertisement signal, the audio output device accepts a pairing request from the same device from which it received communication configuration information. After a hard reset, the audio output device is once again permitted to connect to any single device that is both a wireless access point and an audio source device. 
         [0093]    Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the exemplary embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the exemplary embodiments of the invention. 
         [0094]    The various illustrative logical blocks, modules, and circuits described in connection with the exemplary embodiments disclosed herein may be implemented or performed with a general purpose processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. 
         [0095]    In one or more exemplary embodiments, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. 
         [0096]    The previous description of the disclosed exemplary embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these exemplary embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the exemplary embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.