as will be appreciated by one skilled in the art , some or all of the present disclosure may be embodied as a system , method or computer program product . accordingly , the present disclosure may take the form of an entirely hardware embodiment , an entirely software embodiment ( including firmware , resident software , micro - code , etc .) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “ circuit ,” “ module ” or “ system .” furthermore , some or all of the features described in the present disclosure may take the form of a computer program product embodied in one or more computer - readable medium ( s ) having computer - readable program code embodied thereon . any combination of one or more computer - readable medium ( s ) may be utilized . the computer - readable medium may be a computer - readable signal medium or a computer - readable storage medium . a computer - readable storage medium may be , for example , but not limited to , an electronic , magnetic , optical , electromagnetic , infrared , or semiconductor system , apparatus , or device , or any suitable combination of the foregoing . more specific examples ( a non - exhaustive list ) of the computer - readable storage medium would include the following : an electrical connection having one or more wires , a portable computer diskette , a hard disk , a random access memory ( ram ), a read - only memory ( rom ), an erasable programmable read - only memory ( eprom or flash memory ), an optical fiber , a portable compact disc read - only memory ( cd - rom ), an optical storage device , a magnetic storage device , or any suitable combination of the foregoing . in the context of this document , a computer - readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system , apparatus , or device . a computer - readable signal medium may include a propagated data signal with computer - readable program code embodied therein , for example , in baseband or as part of a carrier wave . such a propagated signal may take any of a variety of forms , including , but not limited to , electro - magnetic , optical , or any suitable combination thereof . a computer - readable signal medium may be any computer - readable medium that is not a computer - readable storage medium and that can communicate , propagate , or transport a program for use by or in connection with an instruction execution system , apparatus , or device . program code embodied on a computer - readable medium may be transmitted using any appropriate medium , including but not limited to wireless , wireline , optical fiber cable , rf , etc ., or any suitable combination of the foregoing . with reference now to the figures , and in particular to fig1 , an exemplary broadcast system 100 in which the present invention may be utilized is presented . broadcast system 100 includes a broadcast receiver 102 , which may be a television , a radio , or any other electronic device capable of receiving a media broadcast from a broadcast station 104 . in one embodiment , the broadcast receiver 102 is a radio that is in a motor vehicle . content ( e . g ., songs ) from the broadcast station ( s ) 104 is broadcast via a wireless broadcast system , or via a broadcast network 106 such as the internet . thus , in one embodiment , the broadcast content being sent to the broadcast receiver 102 may be content provided via an internet service provider ( isp ) 108 that is connected to a content provider , such as a content server 110 . broadcast receiver 102 includes a presentation component 112 , which may be an audio circuit that includes an amplifier , speakers , etc . needed to make the broadcast content audible . in one embodiment , presentation component 112 includes a video circuit that includes a circuit and display needed to make the broadcast content visible . broadcast receiver 102 also includes a control display 114 , which is a video interface to the broadcast receiver 102 . control display 114 is described in further detail in fig3 . broadcast receiver 102 also includes a computer 202 , which provides intelligence and logic for performing the processes described herein , including the steps described below in fig4 . in one embodiment , computer 202 includes a content play interface 222 , which is capable of interfacing with a portable media player such as an mp3 player 116 . computer 202 is described in further detail in fig2 . with reference now to fig2 , there is depicted a block diagram of an exemplary computer 202 , which may be utilized as part of the broadcast receiver 102 depicted in fig1 . computer 202 includes a processor unit 204 that is coupled to a system bus 206 . processor unit 204 may utilize one or more processors , each of which has one or more processor cores . a video adapter 208 , which drives / supports a display 210 , is also coupled to system bus 206 . in one embodiment , display 210 is both a display device and an input device , capable of receiving user input via touch - screen capabilities . system bus 206 is coupled via a bus bridge 212 to an input / output ( i / o ) bus 214 . an i / o interface 216 is coupled to i / o bus 214 . i / o interface 216 affords communication with various i / o devices , including a keyboard 218 , a mouse 220 , a content player interface 222 ( which is capable of interfacing with a portable media player such as mp3 player 116 ), and high - speed solid state disk drive 224 . while the format of the ports connected to i / o interface 216 may be any known to those skilled in the art of computer architecture , in a preferred embodiment some or all of these ports are universal serial bus ( usb ) ports . as depicted , in one embodiment , computer 202 is optionally able to communicate via broadcast network 106 using a network interface 230 . broadcast network 106 may be an external network such as the internet , or an internal network such as an ethernet or a virtual private network ( vpn ), or a wireless broadcast network such as a radio / television network . a hard drive interface 232 is also coupled to system bus 206 . hard drive interface 232 interfaces with a hard drive 234 . in a preferred embodiment , hard drive 234 populates a system memory 236 , which is also coupled to system bus 206 . system memory is defined as a lowest level of volatile memory in computer 202 . this volatile memory includes additional higher levels of volatile memory ( not shown ), including , but not limited to , cache memory , registers and buffers . data that populates system memory 236 includes computer 202 &# 39 ; s operating system ( os ) 238 and application programs 244 . os 238 includes a shell 240 , for providing transparent user access to resources such as application programs 244 . generally , shell 240 is a program that provides an interpreter and an interface between the user and the operating system . more specifically , shell 240 executes commands that are entered into a command line user interface or from a file . thus , shell 240 , also called a command processor , is generally the highest level of the operating system software hierarchy and serves as a command interpreter . the shell provides a system prompt , interprets commands entered by keyboard , mouse , or other user input media , and sends the interpreted command ( s ) to the appropriate lower levels of the operating system ( e . g ., a kernel 242 ) for processing . note that while shell 240 is a text - based , line - oriented user interface , the present disclosure will equally well support other user interface modes , such as graphical , voice , gestural , etc . as depicted , os 238 also includes kernel 242 , which includes lower levels of functionality for os 238 , including providing essential services required by other parts of os 238 and application programs 244 , including memory management , process and task management , disk management , and mouse and keyboard management . application programs 244 include a renderer , shown in exemplary manner as a browser 246 . browser 246 includes program modules and instructions enabling a world wide web ( www ) client ( i . e ., computer 202 ) to send and receive network messages to the internet using hypertext transfer protocol ( http ) messaging , thus enabling communication with other computer systems . application programs 244 also include a content dynamic selection logic ( cdsl ) 248 , which , when executed , performs some or all of the processes described in fig3 - 4 . the hardware elements depicted in computer 202 are not intended to be exhaustive , but rather are representative to highlight essential components required by the present disclosure . for instance , computer 202 may include alternate memory storage devices such as magnetic cassettes , digital versatile disks ( dvds ), bernoulli cartridges , and the like . these and other variations are intended to be within the spirit and scope of the present disclosure . with reference now to fig3 , an exemplary user interface 300 on the control display 114 of broadcast receiver 102 depicted in fig1 is presented . assume for exemplary purposes that control display 114 is part of a radio , such as a car radio . assume also that a user is listening to the radio . pane 302 shows that the current song being played on the radio is “ song a ”. assume that “ song a ” is on a first channel ( i . e ., is tuned to a first radio frequency ). the user of the radio is able to rank the song ( i . e ., place a value on how much he / she likes the song ). assuming that control display 114 has touch - screen capabilities , then the user merely needs to touch one of the presented rankings in pane 304 . as depicted , the user has touched “ 4 ”, thus causing computer 102 to record that “ song a ” has been given a “ 4 ” rating by this user , where “ 1 ” is the lowest rating / ranking and “ 5 ” is the highest rating / ranking that the user can assign . while a catalog of songs known to the user , along with their respective user - created rankings , can be created using the panes 302 and 304 shown in fig3 , in one embodiment this catalog can be imported ( with the user - created rankings ) from an external device , such as the solid state disk drive 224 ( i . e ., “ flash ” drive ) or the mp3 player 116 shown in fig2 . pane 306 in fig3 displays other song titles that are 1 ) known to the user and 2 ) are currently available on other radio channels in real time ( i . e ., while “ song a ” is playing on the first channel ). note that pane 306 not only shows the titles of the other songs available on the other channels , but also displays what ranking the current user gave each song , as well as how long the other songs have been on the other channels and how much more of each of the songs is left to hear . finally , pane 308 is used during a set - up of preferences by the user regarding whether the user prefers to hear a song to the end ( indicated by touching selection 310 ), or if he prefers that the channel be changed to hear a better song ( i . e ., of a higher ranking ) before the current song is finished ( indicated by touching selection 312 ). in one embodiment , these choices are presented with a sliding scale ( not shown ), indicating how strong the preference is regarding hearing a first song to the end or being willing to jump to another song before the first song is over . that is , in one embodiment in which the user is willing to switch to another song on another channel before the first song finishes , the user may indicate that he / she is willing to switch to another song if the present song has played for a predetermined percentage of completion ( e . g ., 75 % of the song has played , either from the beginning or in the middle of the song ). with reference now to fig4 , a high level flow chart of one or more exemplary steps taken by a processor to automatically select broadcast content from an alternate channel is presented . after initiator block 402 , a first broadcast content from a first channel on a broadcast receiver is received and presented ( i . e ., is made audible via a speaker system and / or is made visible via a display system ), as described in block 404 . note that the broadcast receiver ( e . g ., a radio ) has multiple channels on which broadcast content is received . that is , the radio has different channels for receiving content from different broadcasting stations . as described in block 406 , a processor ( e . g ., from processor unit 204 depicted in fig2 ) detects a second broadcast content from a second channel on the broadcast receiver . at this point in the process , the first broadcast content ( e . g ., a first song ) is still being presented to the user ( e . g ., is being sent to the speaker system ). however , the broadcast receiver is nonetheless able to identify other broadcast content / songs on channels that are not being sent to the speaker system . as described in query block 408 , a query is made as to whether the second broadcast content ( second song ) has a higher user - rating than the first broadcast content ( first song ). that is , a query is made as to whether there is a song on another channel that the user has given a higher rating / ranking to , thus indicating that the user likes the other song ( which is not being played through the speakers ) better . if the user likes the song he is hearing better than what is available on the other channel , then the radio continues to play the first song ( block 410 ). however , if the user &# 39 ; s rating / ranking of the song on the other channel is higher than that of the song currently being played on the first channel ( query block 408 ), then a query is made as to whether a progress state of the first broadcast content meets a user - set conclusion preference , where the user - set conclusion preference describes a user &# 39 ; s level preference for experiencing a conclusion of broadcast content ( query block 412 ). that is , as described above with reference to pane 308 in fig3 , the user - set conclusion preference may be that songs be allowed to finish before switching to another song , or the user - set conclusion preference may be that songs can “ jump around ” before concluding . thus , if the user has previously indicated that he / she prefers that a song be allowed to finish before switching to another song on another channel ( query block 412 ), then the first song will continue to play ( block 410 ). however , if the first song has finished , or the user doesn &# 39 ; t care if it finishes , or the song has played long enough for the user ( even if not finished ), then a query is made as to whether more than one song previously identified by the user is being sent to another channel on the radio ( query block 414 ). if so , then a query is made as to whether these other songs have a same user - rating ( query block 420 ). if not , then the broadcast content with the highest rating is switched to ( block 422 ). note that in this embodiment , the processor detects a third broadcast content from a third channel on the broadcast receiver ; and then , in response to the third broadcast content having a higher user - rating than the second broadcast content , the processor automatically blocks any switching that would have occurred from the first channel to the second channel ( as described above ) and automatically switches to the third channel . returning to query block 420 , assume that the songs on the other channels have the same user - rating . a query is then made to determine which song has the most remaining time ( query block 424 ). as indicated in block 426 , the song with the most remaining time ( in actual time or percentage of time ) will be switched to . if the two equally - ranked songs have the same amount of time remaining ( e . g ., they both have 3 minutes left ), or if the two equally - ranked songs have the same percentage of the songs remaining ( e . g ., they both have 75 % of the song left , which will be a different amount of time for different length songs ), then the radio will automatically be switched to either of the other channels . thus , in this embodiment , the processor detects a third broadcast content from a third channel on the broadcast receiver ; and in response to the third broadcast content having a same user - rating as the second broadcast content , the processor determines whether the second content or the third content has a shorter progress state ; and the processor automatically switches to either the second channel or the third channel depending on which of the second content and the third content has the shorter progress state . the process then ends at terminator block 418 . note that in one embodiment , a user may want to hear all of a song available on another channel but is not willing to cut off a song playing on a current channel . in this embodiment , the computer 202 within broadcast receiver 102 depicted above is able to buffer songs in system memory 236 or other memory ( not shown ). thus , the user is able to hear the end of the song on the current channel , and then the radio switches to the buffered songs from the other channel . in this embodiment , then , a user - set progress preference has been established ( e . g ., by using pane 308 in fig3 ), where the user - set progress preference describes a maximum progress state that is acceptable to a user . a progress state describes how much of a broadcast content has already been broadcast . the second broadcast content from the second channel on the broadcast receiver is buffered to create a buffered second broadcast content , where the buffered second broadcast content is initially hidden from ( e . g ., is not sent to the radio speakers ) a user of the broadcast receiver . in response to determining that the progress state of the first broadcast content does not meet the user - set conclusion preference , the first broadcast content continues to play until the user - set conclusion preference is met . in response to the user - set conclusion preference for the first broadcast content being met ( e . g ., the first song ends ), the buffered second broadcast content is automatically presented to the user ( e . g ., is sent to the radio &# 39 ; s speakers ). as described in panes 302 and 304 in fig3 , in one embodiment a song ranking pane is presented on a display of the broadcast receiver . a user input is received from pane 304 to establish a user - rating for the first broadcast content from the first channel while the first broadcast content is being presented on a presentation component of the broadcast receiver . as described in pane 306 in fig3 , in one embodiment a list of other broadcast content currently being broadcast on broadcast channels other than the first channel of the broadcast receiver is presented , where the broadcast content displays a user - rating and a progress state of the other broadcast content . in one embodiment , the catalog of songs and / or their ratings are extracted from a portable media player , such as mp3 player 116 shown in fig1 . in one embodiment , the computer system can determine how much “ better ” another song on another channel is than the song currently being played . if there is not enough difference between the two songs to warrant automatically switching to the better song ( assuming that the first song is allowed to end prematurely or else has finished ), then the user can view the other songs ( e . g ., via pane 306 shown in fig3 ), in order to manually switch to the other song . thus , in this embodiment , the processor establishes a minimum difference between a first user - rating for the first broadcast content and a second user - rating for the second broadcast content . in response to the minimum different not being reached , a user of the broadcast receiver is presented with an option to manually switch to the second channel . in one embodiment , the computer system factors in whether non - music content ( e . g ., a commercial , speech by an on - air personality , etc .) is likely to be imminent when ranking a song on another channel . that is , the computer system uses historical data to predict whether the higher ranked song on the other channel is likely to be followed by non - music content . this same prediction is made for another channel which is playing the same higher ranked song . in order to avoid having to immediately switch from the other channel after the higher ranked song finishes ( i . e ., due to non - music content following the higher ranked song ), the channel with the higher likelihood of having the higher ranked song being followed by more music will be chosen . in one embodiment , the computer system factors in the source of the higher ranked song when switching from the first station to another station . for example , assume that two other stations are playing a same , or alternatively a same ranked , song . in order to determine which station to switch to , the computer system ranks the source of the higher ranked song . for example , if all other factors are the same ( i . e ., the higher ranked song is the same on both other channels , the higher ranked song has been playing on both other channels for the same amount of time , etc . ), then the higher ranked source will be used . if both sources are radio stations , then in one embodiment the station with the strongest signal ( as perceived by the radio ) is chosen . that is , the source with the greatest fidelity ( i . e ., “ clean ” signal that accurately reproduces the content ) is chosen . if both sources are radio stations , then in one embodiment a station that has been preselected as “ preferred ” ( due to its format , the user &# 39 ; s loyalty , etc .) by the user is selected . if one of the sources is a radio station and the other source is a local content player ( e . g ., an mp3 player ), then the mp3 player is chosen , since 1 ) all of the song is going to be available without any other processing , and 2 ) the fidelity of the song is likely to be better than that of the radio station . in this last embodiment , then , being alerted to the fact that the higher ranked / rated song is playing on another station acts as a reminder to the user that he has this higher ranked / rated song on his mp3 player , and thus switches to ( or alternatively , prompts the user to switch to ) the mp3 player to send its content to the radio system . the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure . as used herein , the singular forms “ a ”, “ an ” and “ the ” are intended to include the plural forms as well , unless the context clearly indicates otherwise . it will be further understood that the terms “ comprises ” and / or “ comprising ,” when used in this specification , specify the presence of stated features , integers , steps , operations , elements , and / or components , but do not preclude the presence or addition of one or more other features , integers , steps , operations , elements , components , and / or groups thereof . the corresponding structures , materials , acts , and equivalents of all means or step plus function elements in the claims below are intended to include any structure , material , or act for performing the function in combination with other claimed elements as specifically claimed . the description of various embodiments of the present disclosure has been presented for purposes of illustration and description , but is not intended to be exhaustive or limited to the disclosure in the form disclosed . many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the disclosure . the embodiment was chosen and described in order to best explain the principles of the disclosure and the practical application , and to enable others of ordinary skill in the art to understand the disclosure for various embodiments with various modifications as are suited to the particular use contemplated . having thus described embodiments of the disclosure of the present application in detail and by reference to illustrative embodiments thereof , it will be apparent that modifications and variations are possible without departing from the scope of the disclosure defined in the appended claims .