Recording broadcasts of programs on a predetermined schedule is inherently flawed, as the actual start and end times of those programs do not always match the scheduled start and end times. The most prominent examples are live events, including sporting events, concerts, award shows, political speeches, and other special events. However programs based on prerecorded events can also be delayed or preempted by various circumstances, such as political addresses or breaking news. Typically there is a published schedule or guide available with estimated start and end times for broadcast programs. When consumers attempt to record this broadcast media they generally adhere to this published schedule data.
Often consumers attempt to estimate a safety buffer before and after the scheduled event in order to capture the entire actual event. For example, a consumer wants to record a specific sporting event. The consumer knows the scheduled start and end time from published schedule data or an electronic program guide. Realizing that sporting events sometimes run late with extra innings or overtime periods, the consumer sets a recording device to start at the scheduled start time and end 30 minutes past the scheduled end time. If the event runs under this estimated end time, the user has recorded too much (wasted tape or space on a DVR), and if the event runs past this estimated end time, the user misses the end of the event.
To address this problem, multiple data inputs to the recording device may be used in order to dynamically adjust the start and end times for recordings. These data inputs may include, but are not limited to published program schedules, electronic program guide data, real-time data feeds, in-band data markers, and real-time services (e.g., from media distributors). As one example of an implementation, when a consumer wants to record a specific live event, the live event may be selected for recording through a user interface (UI) in the media recorder. In advance of and during the event recording, the media recorder monitors real-time data and determines whether the event will start early, start late, end early, or run past the initial scheduled duration. The media recorder may seek out other scheduled recordings for potential conflicts. If no conflicts are found, the media recorder automatically extends or contracts the length of the live event recording. If conflicts are found, the media recorder attempts to resolve the conflicts based upon priority designations, heuristics, or additional user input to determine whether to alter the scheduled recording session, for example, by extending the duration of the event recording or switching the recording function to a another scheduled program.
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 to limit the scope of the claimed subject matter. Other features, details, utilities, and advantages of the claimed subject matter will be apparent from the following more particular written Detailed Description of various embodiments and implementations as further illustrated in the accompanying drawings and defined in the appended claims.
A system and corresponding process for dynamically adjusting the recording of broadcast media may be realized through the monitoring of multiple data inputs, both in-band and out-of-band. The system aids a consumer attempting to record an event that could start earlier or later, and end earlier or later, than initially scheduled by automatically extending the recording duration if such conditions actually occur. The terms “extend,” “extension,” and “extending” when used generally herein, are intended to encompass any of these possibilities, i.e., starting or ending a recording either earlier or later than an initially schedule time. Recording to meet any combination of these conditions is possible, but the most useful and most likely scenario is when a program starts at scheduled time and ends at the later of the scheduled end time or the data-driven end time.
While the primary examples herein revolve around extension of an end time, the possible implementations are not so limited. Advancement or delay of start times and early cessation of recording is contemplated and can be implemented by simple extrapolation of the methods described herein. Further, while the primary examples herein revolve around sporting events, extension of recording of other types of programming both live (e.g., concerts, award shows, political speeches, and other special events) and prerecorded is contemplated.
The implementation of automatic recording extension functionality may be understood in the context of a home media network. However, it should be understood that this is only one of many potential implementations, for example, an office computer network, a closed system, a system of special purpose devices, and a standalone device.
The media recorder 106 may be implemented as any of a variety of conventional media rendering or computing devices, including, for example, a digital video recorder (DVR), a video cassette recorder (VCR), a set-top box, a television, a video gaming console, a desktop PC, a computer server, a notebook or portable computer, a workstation, a mainframe computer, an Internet appliance, a handheld PC, a cellular telephone or other wireless communications device, a personal digital assistant (PDA), or combinations thereof. The media recorder 106 may have memory drives 110 to allow the media recorder 106 to function as a DVR. The media recorder 106 may additionally have an optical disc drive 112 for compact disc (CD) or digital video disc (DVD) media recording or playback.
The communication network 118 may comprise a wired and/or wireless network, for example, cable, Ethernet, WiFi, a wireless access point (WAP), or any other electronic coupling means, including the Internet. The network 118 may enable communication between the media server 108, the media recorder 106, and any other connected device through packet-based communication protocols, such as transmission control protocol (TCP), Internet protocol (IP), real-time transport protocol (RTP), and real-time transport control protocol (RTCP). Communications may be transmitted directly between devices over a LAN, or they may be carried over a wide area network (WAN), for example, the Internet 128.
The media recorder 106 may be configured to receive media content, including video and TV content, directly from a broadcast source, or streamed from the media server 108. Media content, and particularly video and TV content, may be transmitted from the media server 108 to the media recorder 106 as streaming media comprised of discrete content packets via any of the network protocols described above. The streamed media content may comprise video IP, SD, and HD content, including video, audio, and image files, decoded on the media recorder 106 for presentation on the connected TV 104. The media content may further be “mixed” with additional content, for example, an EPG, presentation content related to the media content, a web browser window, and other user interface environments transmitted from the media server 108 for output on the TV 104. Such additional media content may be delivered in a variety of ways using different protocols, including but not limited to, for example, standard remote desktop protocol (RDP), graphics device interface (GDI), or hypertext markup language (HTML).
The media server 108 may be connected with a variety of broadcast media sources, for example, an antenna 122, a satellite receiver 124, a cable connection 126, and/or a network such as the Internet 128. Alternately, the live stream of media content may be received directly by the media recorder 106 as indicated in
The broadcast media content may be received as an analog signal (e.g., NTSC or PAL) or a digital signal (e.g., DVB, ATSC, or ISDB). The received media content may include discrete content packets, where each content packet includes media content (i.e., audio and video data), policies associated with the actual media content, and metadata identifying or describing the media content. If the media content is received as an analog signal, discrete content packets may be created from the analog signal and metadata or other information may be found in portions of the signal such as the vertical blanking interval.
In one implementation, the media server 108 may be a conventional personal computer (PC) configured to run a multimedia software package, for example, the Windows® XP Media Center Edition operating system (Microsoft Corporation, Redmond Wash.). In such a configuration, the media server 108 is able to integrate full computing functionality with a complete home entertainment system into a single PC. For example, a user can watch TV in one graphical window of a video monitor, while sending email or working on a spreadsheet in another graphical window on the same monitor. In addition, the media server 108 may also include other features or components, for example: a personal video recorder (PVR) to capture live TV shows for future viewing or to record the future broadcast of a single program or series; a memory drive 114 for integrated storage of and access to a user's recorded content, such as TV shows, songs, pictures, a CD or DVD drive 116 for disc media playback; and home videos; and an electronic program guide (EPG).
Instead of a conventional PC, the media server 108 may comprise a variety of other devices capable of storing and distributing media content including, for example, a notebook or portable computer, a tablet PC, a workstation, a mainframe computer, a server, an Internet appliance, or combinations thereof. The media server 108 may also be a set-top box capable of delivering media content to a computer where it may be streamed, or the set-top box itself could stream the media content. As the media server 108 may be a full function computer running an operating system, the user may also have the option to run standard computer programs (e.g., word processing and spreadsheets), send and receive emails, browse the Internet, or perform other common functions.
In addition to the media recorder 108 and the media recorder 106, the media server 108 may be connected with other peripheral devices, including components such as DVRs, cable or satellite set-top boxes, speakers, and a printer (not shown for the sake of graphic clarity). The media server 108 may also enable multi-channel output for speakers. This may be accomplished through the use of digital interconnect outputs, such as Sony-Philips Digital Interface Format (S/PDIF) or TOSLINK® enabling the delivery of Dolby Digital, Digital Theater Sound (DTS), or Pulse Code Modulation (PCM) surround decoding.
Additionally, a recording scheduler module 212 may be understood as a component that manages the recording functions of the media recorder 206 and causes the media recorder 206 to start and stop recording selected broadcast programming based upon both user input and real-time information received from the event matcher 210 or from a heuristics module 214. The heuristics module 214 manages conflicts between recording requests that arise due to the early or late program starts or broadcast extensions beyond the regularly scheduled period, which often happens with live events. The heuristics module 214 may consider a variety of inputs in to the system 200 for potentially adjusting the start or end times of a recording. These inputs may include, for example, one or more media feeds (e.g., cable 226, satellite 224, antenna 222, and streaming via a network 228); data streams in the media feed(s), in-band marker information; one or more collections of program guide data; one or more real-time data feeds containing event information; and a system clock or timer.
As shown in
The out-of-band data 204 maybe received from or stored at a source accessible over a communication network 228 by the media recorder 206 over a network link 218. The network 228 may be the Internet or any public or private network available for access by the media recorder 206. The network link 218 maybe any wired or wireless connection to the media recorder 206 as is standard in the art. The out-of-band data 204 may include, for example, alternative sources of EPG information, real-time news sources, rich site summary (RSS) feeds, and other web services that may provide real-time data regarding a broadcast programming event.
The actual functions performed by the modules on the media recorder 206 as discussed with respect to
A second timeline 304 depicts an EPG schedule showing the programming scheduled for the same evening on channel 13. The programming includes an episode of American Idol 320 beginning at 7:00, followed by a movie 322 scheduled between 8:00 and 10:00, an episode of Friends 324 scheduled between 10:00 and 10:30, and an episode of Cheers 326 scheduled between 10:30 and 11:00. For the sake of illustration of the automatic recording extension methodologies disclosed herein, the diagram of
A third timeline 306 depicts exemplary occurrences of in-band data broadcasting in conjunction with related programming content. A first program ID 328 is indicated as arriving in the broadcast transmission at the beginning of the pre-game program. In this example, the first program ID 328 may provide an indication that the pre-game program 312 is about to begin. A second program ID 330 may similarly provide information indicating that the broadcast of the Cubs baseball game 314 is about to begin. In this example, the first program ID 328 and the second program ID 330 are indicated as transmitted immediately proceeding or at the beginning of a particular broadcast program as an identifier of the programming about to follow. These types of program IDs at the outset of a particular program are fairly typical in broadcast programming and in digital program streams may be used to identify each packet of programming data transmitted.
A third program ID 332 is depicted in phantom in the in-band data timeline 304 and is shown as occurring at the beginning of the 10:00 time slot. This is where the program ID to indicate the beginning of the news 316 would appear if the baseball game 314 ended as scheduled. In this example, however, the baseball game 314 has run late and the third program ID 332′ is actually transmitted at the beginning of the 10:30 time slot to indicate the beginning of news 316. The event monitor module 208 may monitor the program IDs present in the broadcast transmission to identify the start of a new programming event. By using the programming ID information, the event matcher module 210 can confirm the start times of any particular program selected for recording based upon the schedule presented by EPG source. If, for example, the pre-game show 312 ends earlier than scheduled and the baseball game 314 starts earlier than scheduled, the program ID 330 corresponding to the beginning of the baseball game 314 may be considered a trigger for the recording scheduler module 214 to begin recording the baseball game 314 in advance of the scheduled start time. In a similar manner, the event matcher module 210 may use the program ID information at the beginning of a program transmission as indicator that the previous program transmission has concluded and that recording should stop.
Note, that in the case of
A fourth timeline 308 depicts exemplary out-of-band data received for example from a web service. The web service 308 may provide contemporaneous information regarding changes to a programming schedule or information about events that may have an impact on a particular programming schedule. In this example, with respect to a sporting event such as the baseball game 314, which are notorious for extending beyond a reasonably anticipated length of time, the web service maybe in the form of a sports feed that monitors all sporting events to provide subscribers up to the minute scores and announcements of final scores at the end of the game. One scenario the event monitor module 208 in the media recorder 206 may receive a direct feed from such a web service 308. In another scenario, the event monitor module may be configured to request such information from a central source on the network that subscribes to the web service 308.
As shown in
The fifth timeline 310 in
By using the collective data exemplified by the EPG source timelines 302, 304, the in-band data timeline 306, and the web service timeline 308, in conjunction with a set of rules of governing conflicts between program recording, a conflict arising due to a scheduled program running long, such as the baseball game 314, can be managed. For example, in
In another embodiment, wherein the priority between recording requests has not been pre-assigned, the media recorder 206 may present a UI with a request for the user to select which of two competing recording requests should be honored. If the conflict is resolved in favor of the programming that is extending beyond its scheduled time period, the recording scheduler module 212 may end the recording based upon either the in-band data, in this example the occurrence of a program ID indicating the start of a new program, or on the web service data.
In a further exemplary scenario, the recording of a first program with a first priority may be extended in favor of a second program, lower priority program scheduled for recording immediately after the scheduled end time of the first program. However, the first program may not be further extended when conflicting with a third program scheduled for recording after the second program, but having a higher priority than the first program.
The choice between using program ID data or web service data to dictate the cessation of recording may be determined by following a set of rules provided in the heuristics module 214. For example, the web service may indicate that a particular event, such as the baseball game 314, has not been completed while the in-band data shows the occurrence of a program ID 332 at 10:00 indicating the start of new program. In one implementation, the heuristics module 214 may choose to abide by the program ID data and stop the recording under the presumption that, although the event may still be occurring, the broadcast network may have stopped its presentation of the event in favor of some other regularly scheduled programming. Alternatively, the rules in the heuristics module 214 may provide that any web service information 336 received be given priority over any program IDs to ensure that the entire length of the priority program period 342 is recorded so that nothing is missed in case the program ID in the in-band data was inaccurate.
In the example above, the heuristics module 214 governing the recording scheduler module 212 placed priority on the web services information 336 and extended the recording of the baseball game 314, even though it overlapped with the Friends episode 324. However, consider another possible scenario in which the Friends episode 324 actually follows the baseball game 314 on the same channel instead of on a different channel. As indicated earlier, in addition to desiring to record the baseball game 314, the user also desires to record the Friends episode 324. By monitoring the program IDs, the event monitor module 208 may provide the recording scheduler module 212 some flexibility in determining whether additional programming should be recorded in the event that there is a schedule change. For example, in this case, the baseball game 314 has overrun the scheduled time period by up to a half hour based upon the location of the third program ID 332′ (which in this instance refers to the Friends episode 324 and not the news 316).
In another scenario, again in which the Friends episode 324 is on the same channel as the baseball game 314, if the baseball game 314 extends into the timeslot originally scheduled for the Friends episode 324, it may be that the Friends episode 324 will be cancelled entirely by the broadcaster. This can be confirmed if the third program ID 334 indicates that the programming starting at 10:30 is indeed the Cheers episode 326. However, in an alternate scenario, the broadcaster may desire to shift the entire programming schedule back by a half hour, and therefore the Friends episode 324 might in fact be broadcast beginning at 10:30. This again could be confirmed if the third program ID 332′ indicated that the associated program was the Friends episode 324. In this instance, the event matcher module 210 may provide this information to the recording scheduler module 212 and thus cause the recording scheduler module 212 to initiate the recording of the Friends episode 324 at 10:30 after the conclusion of the Cubs baseball game 314.
In this instance, the event monitor module 208 may continue to monitor the program IDs in the in-band data timeline 306 to determine whether the Friends episode 324 has been wholly preempted or merely pushed back to the next time slot. If the program ID 332′ indicates that the programming in the time slot following the baseball game 314 is indeed the Friends episode 324, then the recording scheduler module 212 will cause the media recorder 206 to record the Friends episode 324 during a shifted recording period 344.
As indicated above and shown in
As one example, an in-band marker may show that an event is running five minutes long (8:05 PM) whereas the real-time feeds when checked by the event monitor module 208 at 8:05 PM show the event is still running. In this case the heuristics module 214 may review the weights of the inputs and decide to prefer the five minute extension rather than the six or more minute extension due to the weighting. This is just one very simple example of using an assignable weighting/priority system to deal with differences in the input data. Other approaches considered include choosing the most conservative data to ensure the fullest recording of the media; choosing the most aggressive data to conserve free space; and following an algorithm for comparing the input data for consistency patterns using frequency and weighting.
Possible methods for dynamically adjusting the recording start and end times may include, for example, revising or estimating new start and/or end times, providing an “in progress” notification; and extending the recording period by some amount of time, either fixed (e.g., a delta from the originally scheduled end) or variable. To further elaborate on the “in progress” indication example, the sources for this method may, in general, be polled or come in on regular intervals. In this case there is a need to extend the recording by some amount greater than the poll interval to ensure that the recording will not be stopped due to lack of data before the most recent update. The data source(s) could also potentially be polled before the scheduled start time to cover the case of a program beginning before its scheduled start time.
The heuristics module 214 may request user input upon set-up of any rules or weighting scheme and incorporate the user input into the decisions. For example the user could potentially want any of the following: the earliest start time and latest end time; the scheduled start time and latest end time; the latest start time and latest end time; the latest end time that does not overlap higher priority recordings; or the latest end time that does not go past a reasonable duration (a “dead-man switch”). Additionally, if the user is present, the heuristics module 214 could present a UI indicating the potential conflict and ask the user to make a contemporaneous decision. Alternatively, if the user is not present or does not respond in a timely manner, the heuristics module 214 would take over and resolve the conflict based upon the data received, a default hierarchy between conflicting data sources, and any preset user input.
An exemplary set of heuristics or rules 400 performed under the direction of the heuristics module 214 for automatically extending the scheduled recording time of an event is depicted in
Once the diagnostic operation 404 is completed, the recording scheduler may schedule the start and end times for recording the selected programming in a scheduling operation 406. At this point, the scheduling operation 406 will resolve any scheduling conflicts noted during the diagnostic operation 404. Such scheduling conflicts can be resolved by requesting additional user input or by following a set of rules designed to resolve recording conflicts at the time of scheduling. At the scheduled start time the media recorder 206 will begin recording in recording operation 408. While recording of the programming is in progress, the event monitor module 208 monitors in-band and out-of-band data received by the media recorder 206. As the monitoring operation 410 receives new in-band or out-of-band data, a query operation 412 is performed by the event matcher module 210 during the recording of the programming event to determine whether any of the in-band or out-of-band data received by the event monitor module 208 is related to the event being recorded. If, during the course of the programming event, no in-band or out-of-band data related to the programming event is received at the media recorder 206, then the recording scheduler module 212 will end the recording of the programming at the originally scheduled time in ending operation 414.
Alternately, if the event matcher module 210 does identify in-band or out-of-band data related to the present programming event being recorded, the event matcher module 210 will poll the event monitor module regularly for updated information regarding the end time in polling operation 416. The heuristics module 214 may further analyze the in-band data 202 and out-of-band data 204 to determine whether information from different sources indicates a conflict period in the context of
At this point the process 400 may determine whether the end time indicated by the in-band or out-of-band data precedes the originally scheduled end time in query operation 422. If the revised end time does proceed the scheduled end time, the process 400 may continue recording and end the recording at the originally scheduled end time in ending operation 414. This may ensure that all of the desired programs are recorded in the instance that the in-band data 202 or out-of-band data 204 is inaccurate.
If the revised end time extends beyond the scheduled end time as determined in query operation 422, a further query operation 424 may be undertaken to determine whether the extension of the recording time is unduly excessive. There may be an occasion where the in-band data 202 or out-of-band data 204 is inaccurate and fails to indicate the end of the program after initially indicating that the program would extend beyond the scheduled end time. At some point (perhaps other than a baseball game, which can extend into numerous extra innings) after the originally scheduled end time, the greater likelihood is that the program being recorded has ended.
The heuristics module 214 may determine that the extension period is unreasonable based upon a variety of factors and circumstances, for example, the type of programming (e.g., baseball vs. a symphony concert); the percentage of the scheduled recording period that the extension period has extended; and the presence or absence of in-band data 202 or out-of-band data 204 continuing to indicate the broadcast of the programming being recorded. If the heuristics module 214 determines that the extension period is excessive, unreasonable, or not supported by the current data, the recording scheduler module 212 may be instructed to override any prior extension instruction end recording, for example, at a predefined absolute maximum extension time or a maximum percentage of the originally scheduled recording time. Alternatively, the heuristics module 214 may request that the user make a determination whether to stop recording through a UI query. If the heuristics engine determines that the extension period is not excessive or the data continues to appear to be accurate, the recording scheduler module 212 may end the program recording when the in-band data 202 and out-of-band data 204 ultimately indicate the end of the program in ending operation 428.
An exemplary hardware and operating environment in the form of a general purpose computing device 500 is depicted in
The system bus 518 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, a switched fabric, point-to-point connections, and a local bus using any of a variety of bus architectures. The system memory 504 may also be referred to as simply the memory, and includes random access memory (RAM) 505 and read only memory (ROM) 506. A basic input/output system (BIOS) 508, containing the basic routines that help to transfer information between elements within the computer 500, such as during start-up, is stored in ROM 506. The computing device 500 further includes a hard disk drive 530 for reading from and writing to a hard disk (not shown), a magnetic disk drive 532 for reading from or writing to a removable magnetic disk 536, and an optical disk drive 534 for reading from or writing to a removable optical disk 538 such as a CD ROM, DVD, or other optical media.
The hard disk drive 530, magnetic disk drive 532, and optical disk drive 534 are connected to the system bus 518 by a hard disk drive interface 520, a magnetic disk drive interface 522, and an optical disk drive interface 524, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules, and other data for the computing device 500. It should be appreciated by those skilled in the art that any type of computer-readable media that can store data that is accessible by a computer, for example, magnetic cassettes, flash memory cards, digital video disks, RAMs, and ROMs, may be used in the exemplary operating environment.
A number of program modules may be stored on the RAM 505, ROM 506, hard disk 530, magnetic disk 532, or optical disk 534 including an operating system 510, one or more application programs 512, additional program modules 514, and program data 516. In an exemplary implementation, the, event monitor module, the event matcher module, and the recording scheduler module may be incorporated as part of the operating system 510, application programs 512, or other program modules 514.
A user may enter commands and information into the computing device 500 through input devices such as a keyboard 540 and pointing device 542, for example, a mouse. Other input devices (not shown) may include, for example, a remote control, a microphone, a joystick, a game pad, a tablet, a touch screen device, a satellite dish, a scanner, a facsimile machine, and a video camera. These and other input devices are often connected to the processing unit 502 through a serial port interface 526 that is coupled to the system bus 518, but may be connected by other interfaces such as a parallel port, game port, or a universal serial bus (USB).
A monitor 544 or other type of display device is also connected to the system bus 518 via an interface, such as a video adapter 546. In addition to the monitor 544, computers typically include other peripheral output devices, such as a printer 558 and speakers (not shown). These and other output devices are often connected to the processing unit 502 through the serial port interface 526 that is coupled to the system bus 518, but may be connected by other interfaces, such as a parallel port, game port, or a USB. A media tuner module 560 may also be connected to the system bus 518, a USB port, a 1394 (Firewire) port, or the local network 550 to tune audio and video programming (e.g., TV programming) for output through the video adapter 546 or other presentation output modules.
The computing device 500 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer 554. These logical connections may be achieved by a communication device coupled to or integral with the computer 500. The logical connections depicted in
When used in a LAN 550 environment, the computing device 500 may be connected to the local network 550 through a network interface or adapter 528, e.g., Ethernet or other communications interfaces, either directly or through a hub or router (not shown). When used in a WAN 552 environment, the computer 500 typically includes a modem 548, a network adapter, or any other type of communications device for establishing communications over the wide area network 552. The modem 548, which may be internal or external, may be connected to the system bus 518 via the serial port interface 526 or the network interface 528. In a networked environment, program modules depicted relative to the personal computer 500, or portions thereof, may be stored in a remote memory storage device. It is appreciated that the network connections shown are exemplary and other means of and communications devices for establishing a communications link between the computers may be used.
The technology described herein may be implemented as logical operations and/or modules in one or more systems. The logical operations may be implemented as a sequence of processor-implemented steps executing in one or more computer systems and as interconnected machine or circuit modules within one or more computer systems. Likewise, the descriptions of various component modules may be provided in terms of operations executed or effected by the modules. The resulting implementation is a matter of choice, dependent on the performance requirements of the underlying system implementing the described technology. Accordingly, the logical operations making up the embodiments of the technology described herein are referred to variously as operations, steps, objects, or modules. Furthermore, it should be understood that logical operations may be performed in any order, unless explicitly claimed otherwise or a specific order is inherently necessitated by the claim language.
The above specification, examples and data provide a complete description of the structure and use of exemplary embodiments of the invention. Although various embodiments of the invention have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of this invention. In particular, it should be understand that the described technology may be employed independent of a personal computer. Other embodiments are therefore contemplated. It is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative only of particular embodiments and not limiting. Changes in detail or structure may be made without departing from the basic elements of the invention as defined in the following claims.