A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
The present invention relates generally to wagering games, and methods for playing wagering games, and more particularly, to a wagering game in which a bonus event is triggered, revealing a bonus award show during which bonus awards are eliminated, one at a time, until the winning bonus award is revealed.
When an MP3 (MPEG Audio Layer III) file is being decoded and played back on audio speakers in a looping pattern, there is a perceptible silence that can be heard between the end of the audio content and when the digital audio music player loops back to play the beginning of the audio content. This silence is a byproduct of the encoding process to convert an audio file into an encoded MP3 format. The original audio file is divided into equally sized frames containing 1152 samples, and then the MP3 encoder adds silence to the beginning and end of the file to make the resulting encoded MP3 file into an integer number of frames, each containing exactly 1152 samples. Even if the original audio file is evenly divisible by 1152 samples into an even number of frames, the MP3 encoding process still adds a certain amount of padding known as encoder/decoder delay. These “pads” are what prevent the MP3 file from looping seamlessly without any audibly perceptible added silence between each loop.
This silence is particularly noticeable when the MP3 files are being decoded through a web browser where no back-end software exists to “reassemble” a file so it sounds seamless from one loop to another. Adobe's FLASH encoder is platform-specific and requires the client to install a proprietary software component to play audio content. Another problem with this process is that it is not sample-locked and therefore tends to drift, thus causing audible pops and hiccups during playback.
Other solutions exist that try to create gapless looping MP3 tracks, but these solutions require software applications or plugins to be installed outside of the web browser on the client device. For example, they require extensive preparation or manipulation of the original audio file, installation of one or more utility or encoder programs, and/or multiple encoding steps. Even still, during the first playback, a gap will be present.
In some environments, having gaps of silence between looping audio playback is extremely undesirable. It is aurally distracting and can detract from the user experience. For example, in a wagering game, having a gapless looping audio sound is very important for creating an exciting multi-sensory experience, which relies on visual and audible, and sometimes haptic or tactile, cues to create an exciting and immersing environment for the player.
Aspects of the present disclosure do not require any extra software, plugins, or specific encoders to be installed on a client device, and instead call for relatively minor audio file preparation and determination of the temporal length of “padding” gaps added during the encoding process, combined with timers to cover the gaps.
In one example, a raw audio file, such as a .WAV file, having no padding at the beginning or the end of the file is provided. The raw audio file if played directly would otherwise loop seamlessly on its own without any audio gaps being perceived from playback of the end of the audio content back to the beginning. The raw audio file is divided into two equally sized files to eliminate any possibility of timer drift.
The two files are conventionally encoded using an MP3 encoder to produce two encoded files. Because of the encoding process, a padding delay will be introduced at the beginning and end of each file. The amount of padding delay added to the beginning and end of each of the encoded files is determined. For convenience, the padding delay at the beginning of the first encoded file is called c (in ms), and the padding delay added at the end of the first encoded file is called a. Likewise, the padding delay added at the beginning of the second encoded file is called b, and the padding delay added at the end of end of the second encoded file is called d.
Two timers are defined as follows:
T1=A−(a+b) Timer 1
T2=B−(c+d) Timer 2
Where A represents the total playback (decoding) time of the first encoded file from its beginning to end, and B represents the total playback (decoding) time of the second encoded file from its beginning to end. Timer 1 can be viewed as the timer for the second file, because the second file “waits” until Timer 1 has expired to begin decoding. Likewise, Timer 2 can be viewed as the timer for the first file, because the first file “waits” until Timer 2 has expired to begin decoding. Each time the audio file is called for playback, the timers are reset. Optimally, the sooner the timer is reset, the less chance for timer drift. Thus, the larger the raw audio file, the more times it can be divided into smaller chunks so that the timers can be reset after a short period of time.
A very brief exemplary code summation of the procedure described above is summarized below:
For MP3 file A, the variables c and a represent the “padding” the MP3 encoding process adds. For MP3 file B, the variables b and d represent the “padding” the encoding process adds.
Aspects of the present disclosure relate to seamless, gapless looping of compressed audio files, such as MP3 files, in a web browser. These aspects can, though not necessarily, be applied to a wagering game conducted on a standalone gaming terminal or a virtual wagering game played using a web browser interface.
Additional aspects of the present disclosure will be apparent to those of ordinary skill in the art in view of the detailed description of various embodiments, which is made with reference to the drawings, a brief description of which is provided below.
While this invention is susceptible of embodiment in many different forms, there is shown in the drawings and will herein be described in detail preferred embodiments of the invention with the understanding that the present disclosure is to be considered as an exemplification of the principles of the invention and is not intended to limit the broad aspect of the invention to the embodiments illustrated. For purposes of the present detailed description, the singular includes the plural and vice versa (unless specifically disclaimed); the words “and” and “or” shall be both conjunctive and disjunctive; the word “all” means “any and all”; the word “any” means “any and all”; and the word “including” means “including without limitation.”
Referring to
The gaming terminal 10 illustrated in
Input devices, such as the touch screen 18, buttons 20, a mouse, a joystick, a gesture-sensing device, a voice-recognition device, and a virtual input device, accept player input(s) and transform the player input(s) to electronic data signals indicative of the player input(s), which correspond to an enabled feature for such input(s) at a time of activation (e.g., pressing a “Max Bet” button or soft key to indicate a player's desire to place a maximum wager to play the wagering game). The input(s), once transformed into electronic data signals, are output to a CPU for processing. The electronic data signals are selected from a group consisting essentially of an electrical current, an electrical voltage, an electrical charge, an optical signal, an optical element, a magnetic signal, and a magnetic element.
Turning now to
The CPU 30 is also connected to an input/output (I/O) bus 36, which can include any suitable bus technologies, such as an AGTL+ frontside bus and a PCI backside bus. The I/O bus 36 is connected to various input devices 38, output devices 40, and input/output devices 42 such as those discussed above in connection with
The external system 48 includes, in various aspects, a gaming network, other gaming terminals, a gaming server, a remote controller, communications hardware, or a variety of other interfaced systems or components, in any combination. In yet other aspects, the external system 48 may comprise a player's portable electronic device (e.g., cellular phone, electronic wallet, etc.) and the external system interface 46 is configured to facilitate wireless communication and data transfer between the portable electronic device and the CPU 30, such as by a near-field communication path operating via magnetic-field induction or a frequency-hopping spread spectrum RF signals (e.g., Bluetooth, etc.).
The gaming terminal 10 optionally communicates with the external system 48 such that the terminal operates as a thin, thick, or intermediate client. In general, a wagering game includes an RNG for generating a random number, game logic for determining the outcome based on the randomly generated number, and game assets (e.g., art, sound, etc.) for presenting the determined outcome to a player in an audio-visual manner. The RNG, game logic, and game assets are contained within the gaming terminal 10 (“thick client” gaming terminal), the external system 48 (“thin client” gaming terminal), or are distributed therebetween in any suitable manner (“intermediate client” gaming terminal).
The gaming terminal 10 may include additional peripheral devices or more than one of each component shown in
Referring now to
In response to receiving an input indicative of a wager, the reels 52 are rotated and stopped to place symbols on the reels in visual association with paylines such as paylines 58. The wagering game evaluates the displayed array of symbols on the stopped reels and provides immediate awards and bonus features in accordance with a pay table. The pay table may, for example, include “line pays” or “scatter pays.” Line pays occur when a predetermined type and number of symbols appear along an activated payline, typically in a particular order such as left to right, right to left, top to bottom, bottom to top, etc. Scatter pays occur when a predetermined type and number of symbols appear anywhere in the displayed array without regard to position or paylines. Similarly, the wagering game may trigger bonus features based on one or more bonus triggering symbols appearing along an activated payline (i.e., “line trigger”) or anywhere in the displayed array (i.e., “scatter trigger”). The wagering game may also provide mystery awards and features independent of the symbols appearing in the displayed array.
In accord with various methods of conducting a wagering game on a gaming system in accord with the present concepts, the wagering game includes a game sequence in which a player makes a wager and a wagering game outcome is provided or displayed in response to the wager being received or detected. The wagering game outcome is then revealed to the player in due course following initiation of the wagering game. The method comprises the acts of conducting the wagering game using a gaming apparatus, such as the gaming terminal 10 depicted in
In the aforementioned method, for each data signal, the CPU (e.g., CPU 30) is configured to process the electronic data signal, to interpret the data signal (e.g., data signals corresponding to a wager input), and to cause further actions associated with the interpretation of the signal in accord with computer instructions relating to such further actions executed by the controller. As one example, the CPU causes the recording of a digital representation of the wager in one or more storage media (e.g., storage unit 44), the CPU, in accord with associated computer instructions, causing the changing of a state of the storage media from a first state to a second state. This change in state is, for example, effected by changing a magnetization pattern on a magnetically coated surface of a magnetic storage media or changing a magnetic state of a ferromagnetic surface of a magneto-optical disc storage media, a change in state of transistors or capacitors in a volatile or a non-volatile, non-transitory semiconductor memory (e.g., DRAM), etc. The noted second state of the data storage media comprises storage in the storage media of data representing the electronic data signal from the CPU (e.g., the wager in the present example). As another example, the CPU further, in accord with the execution of the instructions relating to the wagering game, causes the primary display 12, other display device, or other output device (e.g., speakers, lights, communication device, etc.) to change from a first state to at least a second state, wherein the second state of the primary display comprises a visual representation of the physical player input (e.g., an acknowledgement to a player), information relating to the physical player input (e.g., an indication of the wager amount), a game sequence, an outcome of the game sequence, or any combination thereof, wherein the game sequence in accord with the present concepts comprises acts described herein. The aforementioned executing of computer instructions relating to the wagering game is further conducted in accord with a random outcome (e.g., determined by a RNG) that is used by the CPU to determine the outcome of the game sequence, using a game logic for determining the outcome based on the randomly generated number. In at least some aspects, the CPU is configured to determine an outcome of the game sequence at least partially in response to the random parameter.
The digital audio file is divided into two or more portions. As explained in the summary section above, this division reduces the sizes of the files and eliminates timer drift, which can cause audible pops or hiccups that have plagued prior-art gapless looping solutions. While the present disclosure is not limited to the wagering game context, when used in a wagering game environment, the seamless, gapless looping sound produced by following the teachings of the present disclosure is very well-suited for wagering games because players cannot tolerate audio gaps, pops, hiccups, or other audible anomalies that will detract from their gaming experience. Wagering games invoke multiple senses by the player, and exploit sound as one tool for building excitement in the player, thus immersing the player in a rich and robust experience.
In this example for ease of discussion, the digital audio file is divided into two portions. It should be emphasized that depending upon the size of the digital audio file, it may be divided into three or more portions. The two portions are encoded separately, to produce a first encoded portion and a second encoded portion. The two encoded portions can be encoded according to a lossy, compressed digital audio format, such as the MP3 format or the Ogg Vorbis format. The present disclosure applies to any audio encoding format that introduces silence into the audio content as a byproduct of the encoding process.
Using a conventional sound editing software application, the amount of delay added to the beginning and the end of each of the two encoded portions can be determined. The amplitude of the sound in each of the delay sections will be zero, so the ordinarily skilled person can readily measure the zero-amplitude delay added by the encoder. The person of ordinary skill in the sound engineering art can readily appreciate that there are other ways of determining or calculating the padding delays added at the beginning and end of an encoded audio file. For example, a software application can calculate the amount of zero-amplitude sound at the beginning and end of an encoded audio file and store these padding delays as variables in a non-transitory storage medium. An encoder can be easily modified to store, for example as metadata, the amount of padding delays added during the encoding process. The delays, however determined, are stored in a non-transitory storage medium as variables. For convenience, the time delay introduced at the beginning of the first encoded portion of the digital audio file will be referred to as the variable “c.” The time delay appended at the end of the first encoded portion of the digital audio file will be referred to as the variable “a.” Likewise, the time delay introduced at the beginning of the second encoded portion of the digital audio file will be referred to as the variable “b.” The time delay appended at the end of the second encoded portion of the digital audio file will be referred to as the variable “d.”
Similarly, the second encoded portion, B, has a beginning or initial delay, b, that lasts 150 ms, and an end or terminal delay, d, that lasts 125 ms. Again, these exemplary values are completely arbitrary and are being used for ease of discussion only. The actual sound or audio content of the second encoded portion B has a time duration of 10.1 seconds, and is labeled SOUND_B. Thus B=b+SOUND_B+d. If SOUND_A and SOUND_B were played consecutively, they would correspond directly to the original digital audio file. But because of the padding delays added by the encoder, the decoder cannot simply skip over the delays and decode only the audio content within each encoded portion, A, B.
Thus, two timers are used, a first timer, T1, and a second timer, T2, one for each of the encoded portions. Thus, if the digital audio file were divided into three encoded portions, three timers would be used; if the digital audio file were divided into four encoded portions, four timers would be used; and so forth. The first timer T1 can be viewed as the timer for the second encoded portion B, because the decoding of B “waits” until the expiration of the first timer T1 before decoding B. A first time interval of the first timer T1 corresponds to a time duration to fully decode the first encoded portion (A) reduced by the time delay (a) appended at the end of the first encoded portion A and by the time delay (b) introduced at the beginning of the second encoded portion B. Thus, T1=A−(a+b). In this example, T1 would have a time duration corresponding to 16.449 ms, 50 ms shorter than the time duration of SOUND_A.
The second timer T2 can be viewed as the timer for the first encoded portion A, because the decoding of A “waits” until the expiration of the second timer T2 before decoding A. A second time interval of the second timer T1 corresponds to a time duration to fully decode the second encoded portion (B) reduced by the time delay (c) introduced at the beginning of the first encoded portion (A) and by the time delay (d) appended at the end of the second encoded portion. Thus, T2=B−(d+c). In this example, T2 would have a time duration corresponding to 10.150 ms, 50 ms longer than the time duration of SOUND_B.
At time t0 shown in
The second timer T2 can be viewed as being associated with the first encoded portion A, because the decoder waits T2 ms (in this example, 10.150 seconds) before beginning to decode A. At time t3, the second timer T2 expires (or the decoder stops waiting to decode the first encoded portion A) while the SOUND_B audio content is still being decoded. However, due to the presence of the starting padding delay (c) at the beginning of the first encoded portion A, the decoder needs to start decoding A 100 ms before the SOUND_B has finished decoding so that there is no silence gap between the playback of the last sample of SOUND_B and the first sample of SOUND_A.
Also at time 3, the first timer T1 is reset or is restarted so that it begins counting or waiting for 16.449 seconds. At time t4, the audio content (SOUND_A) of the first portion A begins decoding on Track 1, immediately after the last sample of SOUND_B has finished decoding. As a result, a seamless, gapping looping of the audio sound content in the original digital audio file is achieved, without any human-perceivable silence between the end of the audio sound and the beginning of the same audio sound when it is immediately replayed. This process continues repeatedly on alternate tracks until instructed to stop. An example of how the seamless, gapless looping can be used in a wagering game environment is described in connection with
As used herein, the characterization of the timers as “running” is synonymous with having the next encoded portion to be decoded “waiting” for a delay period. These two concepts are synonymous, and the use of the term “timer” is not intended to restrict the aspects of the present disclosure to a stopwatch-type of timer. Rather, the digital audio decoder can be instructed to wait a delay period corresponding to T1 or T2 prior to decoding the next encoded portion of the digital audio file to be decoded. Conventionally, the digital audio decoder causes the decoded audio content to be played through one or more speakers, such as associated with a client device accessing a web page that accesses the encoded portions of the digital audio file. As perceived by a human, the repeated playback of the compressed audio content appears to be completely seamless, with no unintentional silence or gaps being heard between successive playbacks. The encoded portions A and B can be small in size, because they can be encoded using a lossy, audio compression format, and the client device that decodes and plays the audio portions does not need to have additional software other than a web browser. No special web browser plug-ins, add-ons, or software applications or applets need to be installed on the client device. Moreover, the encoded portions need to be encoded only once, and it is not necessary to do any preparation or manipulation of the raw digital audio file prior to encoding, though it can be preferred to ensure that the raw digital audio file itself does not have any gaps between playback loops before dividing it up into multiple portions and encoding each portion according to a digital audio compression format.
By seamless and gapless, it is meant that any silence (e.g., zero amplitude sound) that is added by the encoder is eliminated during looping playback such that playback of the encoded portions results in no perceivable (by the human ear) silence between playback of the encoded audio content of a digital audio file.
In some implementations, the audio content or sound corresponding to the encoded portions can be played in a seamless loop through one or more speakers, such as the audio speakers 16, while the web page portrays an animation within the webpage until the sound is interrupted or stopped. The timers T1 and T2 can be controlled by a web-based markup language or by a web-based compiled application using an object-oriented programming language. The web-based markup language can be based on HTML or a web-based scripting language, and the object-oriented programming language can be JAVA or C++, for example. The web-based compiled application can be ADOBE FLASH, for example.
The algorithm 600 corresponds to a computer-implemented method of looping gapless playback of an audio sound seamlessly according to aspects described herein. The algorithm 600 begins by initiating decoding of a first encoded portion (e.g., A from
Thus, the time duration corresponding to the first encoded portion (e.g., A) represents the time to fully decode the first encoded portion. Likewise, the time duration corresponding to the second encoded portion (e.g., B) represents the time to fully decode the second encoded portion.
Although in these aspects, each of the encoded portions have both a delay added by an encoder at the beginning of each file (e.g., c or b shown in
While the seamless, gapless looping aspects of the present disclosure are well suited for wagering games because of a player's acute intolerance for sound anomalies as detracting from an exciting wagering game experience and because of the advantages of using small compressed audio files, particularly in connection with wagering games played on a web browser, they are not so limited. Rather, they can be used in any application in which gapless, seamlessly looping audio playback is desired, preferably using multiple compressed, encoded digital audio files.
Each of these embodiments and obvious variations thereof is contemplated as falling within the spirit and scope of the claimed invention, which is set forth in the following claims. Moreover, the present concepts expressly include any and all combinations and subcombinations of the preceeding elements and aspects.
While this disclosure is susceptible of embodiments in many different forms, there is shown in the drawings and described in detail herein various embodiments of the present disclosure with the understanding that the present disclosure is to be considered as an exemplification of the principles of the inventions described herein and is not intended to limit the broad aspect of the disclosure to the embodiments illustrated.
This application claims the benefit of U.S. Provisional Patent Application No. 61/876,397, filed Sep. 11, 2013, and is incorporated herein by reference in its entirety and for all purposes.
Number | Date | Country | |
---|---|---|---|
61876397 | Sep 2013 | US |