WO2017151201A1 - Metronome embedded in search results page and unaffected by lock screen transition - Google Patents

Metronome embedded in search results page and unaffected by lock screen transition Download PDF

Info

Publication number
WO2017151201A1
WO2017151201A1 PCT/US2016/064914 US2016064914W WO2017151201A1 WO 2017151201 A1 WO2017151201 A1 WO 2017151201A1 US 2016064914 W US2016064914 W US 2016064914W WO 2017151201 A1 WO2017151201 A1 WO 2017151201A1
Authority
WO
WIPO (PCT)
Prior art keywords
computing device
mobile computing
audio
tempo
audio clip
Prior art date
Application number
PCT/US2016/064914
Other languages
French (fr)
Inventor
Richard Mckeever
Original Assignee
Google Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google Inc. filed Critical Google Inc.
Priority to EP16816818.5A priority Critical patent/EP3375177B1/en
Priority to JP2018531059A priority patent/JP6469322B1/en
Priority to CN201680073835.7A priority patent/CN108370397B/en
Publication of WO2017151201A1 publication Critical patent/WO2017151201A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72445User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for supporting Internet browser applications
    • GPHYSICS
    • G04HOROLOGY
    • G04FTIME-INTERVAL MEASURING
    • G04F5/00Apparatus for producing preselected time intervals for use as timing standards
    • G04F5/02Metronomes
    • G04F5/025Electronic metronomes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • G06F16/638Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Definitions

  • the present disclosure relates generally to a metronome implemented by a computing device and, more particularly, to a metronome embedded in a search results page that is capable of playback unaffected by a lock screen transition of the computing device.
  • a metronome is a device that produces regular, metrical sounds (e.g., ticks or clicks) according to fixed period or tempo.
  • a metronome can adhere to a tempo defined in beats per minute.
  • the tempo of the metronome can be adjustable or otherwise user settable.
  • a metronome can be used by musicians to help keep a steady tempo as they play, to work on issues of irregular timing, or to help internalize a clear sense of timing and tempo.
  • metronomes are used to mark time and assist in keeping a steady tempo, it is important that the operation of the metronome is reliable, consistent, and uninterrupted. For example, a metronome should not skip a beat or otherwise fail to adhere to the correct tempo. Further, the metronome should not cease producing the sound until it is desired by the user to do so.
  • Certain mobile computing devices can serve as a metronome.
  • a user can load a webpage in a browser application of the mobile computing device and can interact with the webpage to cause the mobile computing device to serve as a metronome.
  • the mobile computing device can execute instructions included in the webpage which cause the device to regularly produce the sounds according to a desired tempo.
  • transitioning to the lock screen state may cause the screen to turn off completely, or otherwise change the state or operational mode of the screen.
  • Many mobile computing devices automatically transition into such a lock screen state after a period of inactivity.
  • audio associated with a mobile web browser typically experiences latency or playback issues when the mobile computing device transitions into the lock screen state.
  • a user can load a webpage in a browser application of the mobile computing device and start the metronome.
  • the mobile computing device may transition to the lock screen state and the metronome will cease.
  • the metronome operation ends while the user is still practicing, and the user is forced to choose between continuing to practice without the metronome or stopping practice to unlock the device and again start the metronome.
  • an audio clip that is set to loop or looped via JavaScript executed by the mobile browser application (e.g., as a part of the webpage) will either stop automatically or be affected by increased latency when the screen turns off upon entering the lock screen state.
  • Such latency by the device again provides a frustrating experience for the user, as it degrades the reliability and accuracy of the metronome signal provided to the user.
  • the user may be thrown off-beat or otherwise struggle to adjust their playing to the latency of the device.
  • metronomes implemented through mobile web browsers are typically unreliable as they may undesirably cease producing sound or skip a beat due to latency upon transition of the mobile computing device into a lock screen state.
  • One example aspect of the present disclosure is directed to a computer- implemented method for providing a metronome unaffected by a lock screen transition.
  • the method includes displaying, by a mobile computing device, a search results webpage that includes a metronome user interface.
  • the method includes receiving, by the mobile computing device, a user input that requests implementation of the metronome at a tempo.
  • the method includes generating, by the mobile computing device, an audio clip that exhibits the tempo.
  • the method includes using, by the mobile computing device, an audio player application to play the audio clip.
  • the audio player application does not experience interruption or latency when the mobile computing device transitions to a lock screen state during playback of the audio clip.
  • the audio application may be distinct from any mobile browser application running on the device.
  • the mobile computing device includes at least one processor and at least one computer-readable medium, which may be a non-transitory computer-readable medium although the invention is not limited to this.
  • the at least one computer-readable medium stores instructions that, when executed by the at least one processor, cause the mobile computing device to display a search results webpage that includes a metronome user interface; receive a user input that requests implementation of the metronome at a tempo; in response to receipt of the user input, generate an audio clip that exhibits the tempo; and use an audio player application to play the audio clip.
  • the audio player application does not experience interruption or latency when the mobile computing device transitions to a lock screen state during playback of the audio clip.
  • Another example aspect of the present disclosure is directed to a mobile computing device that provides a metronome unaffected by a lock screen transition.
  • the mobile computing device includes at least one processor and at least one computer-readable medium, which stores instructions that, when executed by the at least one processor, cause the mobile computing device to perform a method of the example aspect described above.
  • Another example aspect of the present disclosure is directed to at least one computer-readable medium, which may be a non-transitory computer-readable medium although the invention is not limited to this, that stores instructions.
  • the instructions When executed by at least one processor, the instructions cause the at least one processor to display a user interface within a webpage provided by a browser application of a computing device.
  • the user interface enables implementation of a periodic audible indicator.
  • the instructions further cause the at least one processor to, in response to receipt of a user input that requests implementation of the periodic audible indicator at a tempo, provide the periodic audible indicator at the tempo.
  • the periodic audible indicator is operable through the browser application regardless of a device state of the computing device.
  • the instructions that cause the at least one processor to provide the periodic audible indicator at the tempo may cause the at least one processor to: generate an audio clip that exhibits the tempo; and provide the audio clip to an audio player application for playback.
  • the computer- readable medium may further store a standard click audio frame and a standard silence audio frame, and the instructions that cause the at least one processor to generate the audio clip that exhibits the tempo may cause the at least one processor to concatenate the standard click audio frame and the standard silence audio frame to generate the audio clip that exhibits the tempo.
  • the instructions may comprise a client- side JavaScript code included in the webpage provided by the browser application of the computing device.
  • Figure 1 depicts an example user interface of a metronome embedded in a search results page according to example embodiments of the present disclosure.
  • Figure 2 depicts a block diagram an example computing system according to example embodiments of the present disclosure.
  • Figure 3 depicts a flow chart diagram of an example method to implement a metronome according to example embodiments of the present disclosure.
  • Figure 4 depicts a flow chart diagram of an example method to implement a metronome according to example embodiments of the present disclosure.
  • the present disclosure provides a metronome embedded in a search results page that is capable of playback unaffected by a lock screen or other device state transition of a mobile computing device.
  • a web-based metronome can be provided in a search results page in response to relevant search queries (e.g., a search for the word "metronome").
  • relevant search queries e.g., a search for the word "metronome"
  • a browser application of a mobile computing device such as a smartphone or tablet computing device can provide the search results page in response to a relevant search query.
  • the search results page can include a metronome user interface.
  • a user can interact with the user interface included in the search results page to request implementation of the metronome at a particular tempo.
  • the tempo can be user-selectable.
  • the browser application of the mobile computing device in response to the user input, can dynamically generate an audio clip at the selected tempo.
  • the audio clip can be long enough to be useful for a typical musician's practice session.
  • the mobile computing device can utilize an audio player application of the mobile computing device to play the audio clip.
  • the audio player application can reliably play music and other audio clips even when the screen of the device is off or when the device has transitioned into a lock screen state. More particularly, the audio player application does not experience interruption or latency when the mobile computing device transitions to a lock screen state during playback of the audio clip.
  • the audio player application can be a native audio player application included in an operating system of the mobile computing device.
  • the browser application can generate the audio clip and then call the native audio player application to support playback of the audio clip.
  • the mobile computing device can generate the audio clip by executing a client-side JavaScript code included in the search results webpage. For example, generating the complete audio clip offline and/or on a server computing device can sometimes require an unacceptably large data transfer. Thus, dynamic local creation of the audio clip can obviate the need for a data transfer that requires a relatively large amount of time and/or computing resources.
  • the mobile computing device can generate an MP3- encoded audio clip that exhibits the tempo.
  • the mobile computing device can use an MP3 audio player application to play the audio clip.
  • MP3 encoding can be beneficial as MP3 is widely and reliably supported by all major browser applications. Further, MP3 -encoded audio clips are relatively size-efficient.
  • the mobile computing device can implement one of two different approaches depending on the selected tempo.
  • the particular approach used can be selected based on a determination of whether generation of the audio clip for the given tempo is achievable using concatenations of a standard audio frames such as a standard click audio frame and a standard silence audio frame.
  • the determination of the achievability of generation of the audio clip using the standard frames can be based on a comparison of a beat duration of the particular tempo with an audio encoding frame duration (e.g., the universal MP3 frame duration). For example, it can be determined whether the beat duration of selected tempo is satisfactorily dividable by the audio encoding frame duration.
  • an audio encoding frame duration e.g., the universal MP3 frame duration
  • the mobile computing device can concatenate standard audio frames (e.g., the standard click audio frame and the standard silence audio frame) to generate the audio clip that exhibits the tempo.
  • the standard audio frames are tiny offline-encoded MP3 frames.
  • the standard audio frames can be included inline in a JavaScript code included in the search results webpage. The standard frames can be concatenated a large number of times to generate the audio clip.
  • a second approach can be used.
  • the smallest possible multiples of entire beats at such tempos can be encoded (e.g., offline and stored at a server computing device). Thereafter, the smallest possible multiple for a particular tempo requested by a user can be duplicated in the browser application of the mobile computing device to achieve n beats per minute with acceptable error.
  • the offline encoding can shift the frame-alignment of the clicking or other periodic sound in a way that cannot realistically be achieved with the first approach described above. Therefore, the second approach can provide relatively higher precision that is increasingly necessary as the tempo setting increases in magnitude (e.g., gets "faster").
  • all of the audio encoded frames e.g., MP3 frames
  • the duplicate headers and duplicate bodies from the whole frame set can be removed in a way that can easily be reversed (e.g., can easily be reversed by execution of JavaScript code).
  • the resulting dataset of binary data can be gzipped (or otherwise compressed) to compress what is essentially the silence between clicks.
  • the audio content which has been compressed in this fashion can be transferred in a 99% smaller form than it would be as plain audio encoded files (e.g., plain MP3 files).
  • a single dataset can be transmitted to the mobile computing device that includes the smallest possible multiples of entire beats for each tempo for which the second approach is required.
  • such smallest possible multiples can be referred to as beat units.
  • the mobile computing device can retrieve the appropriate beat unit for the particular tempo and then duplicate or otherwise multiply such beat unit to generate the audio clip that exhibits the particular tempo.
  • the present disclosure provides systems and methods that enable a web- based metronome that works reliably even when a screen of a mobile computing device is turned off or the mobile computing device changes to the lock screen state or otherwise changes states.
  • a metronome includes any recurrent tone pattern generator, where tempo is fixed, and the tone pattern is comprised of one or more tone elements.
  • a click can be characterized as one tone element.
  • the click tone element can be combined with other tone elements to provide a repeating tone pattern such as, for example, a repeating pattern of click, hiss, and silence tone patterns.
  • a metronome by musicians is given as one example use, the present disclosure is not limited to such example use.
  • metronome applications such as measuring cadence for exercise, dance, or other activities are also contemplated by the present disclosure.
  • Figure 1 depicts an example user interface 100 of a metronome embedded in a search results page 102 according to example embodiments of the present disclosure.
  • a browser application of a mobile computing device 106 has executed data which causes display of the webpage 102 on a display 104 of the mobile computing device 106.
  • the browser application of the mobile computing device 106 can display the search results page 102 in response to a user query 108 that is relevant to a metronome.
  • the search results page 102 can include the user interface 100 as a relevant result and can also include any number of additional results (e.g., additional search result 110 and additional search result 112).
  • a user can interact with the user interface 100 included in the search results page 102 to request implementation of the metronome at a particular tempo.
  • the user interface 100 visibly displays a current tempo setting (e.g., shown at 114 as 120 beats per minute).
  • the user interface 100 further includes a sliding bar 116 that enables the user to adjust the current tempo setting (e.g., to faster or slower tempos).
  • the user interface 100 also includes a play button, icon, or other feature 118 that enables the user to request implementation of the metronome at the current tempo setting.
  • the browser application in response to a user selection of the play button 118, the browser application can generate an audio clip that is played back by an audio player application of the mobile computing device 106.
  • the particular user interface 100 and associated icons, buttons, and features depicted in Figure 1 are provided as examples only. The systems and methods of the present disclosure are not limited to the particular user interface 100 illustrated in Figure 1 but, instead, can be implemented using many different user interfaces with various designs, appearances, features, etc.
  • FIG. 2 depicts a block diagram an example computing system 200 according to example embodiments of the present disclosure.
  • the system includes a mobile computing device 202 that implements a metronome via a browser application 215.
  • the mobile computing device 202 can be any form of mobile device, such as a smartphone, tablet, wearable computing device (e.g., computing device embedded in a pair of eyeglasses, a wristband, a necklace, etc.), handheld computing device, computing device embedded in a vehicle, etc.
  • wearable computing device e.g., computing device embedded in a pair of eyeglasses, a wristband, a necklace, etc.
  • handheld computing device e.g., a pair of eyeglasses, a wristband, a necklace, etc.
  • computing device embedded in a vehicle e.g., a vehicle
  • the systems and methods of the present disclosure are particularly beneficial when applied in the context of a mobile computing device, they are not limited to that scenario. Instead, the present disclosure can be implemented on any computing device, whether mobile or non-mobile.
  • the mobile computing device 202 includes one or more processors 206 and a memory 208.
  • the one or more processors 206 can be any form of processing device, including, for example, a processing unit, a microprocessor, a controller, a microcontroller, an application specific integrated circuit, etc.
  • the memory 208 can include one or more of any computer-readable medium, for example a non-transitory computer-readable medium, including, for example, RAM (e.g., DRAM), ROM (e.g., EEPROM), optical storage, magnetic storage, flash storage, solid-state storage, hard drives, or some combination thereof.
  • the memory 208 can store one or more sets of instructions 210 that, when executed by the mobile computing device 202, cause the mobile computing device 202 to perform operations consistent with the present disclosure.
  • the mobile computing device 202 includes a browser application 215.
  • the browser application can be implemented by the one or more processors 206.
  • the browser application 215 can retrieve, present, and traverse information resources from the World Wide Web.
  • the browser application 215 can be a mobile web browser such as, for example, the ChromeTM mobile web browser for iOSTM or AndroidTM, the SafariTM mobile web browser for iOSTM, the FirefoxTM mobile web browser for iOSTM or AndroidTM, etc.
  • the mobile computing device 202 includes an audio player application 216.
  • the audio player application can be implemented by the one or more processors 206.
  • the audio player application 216 can cause playback of audio by the speaker 222.
  • the audio player application 216 can be a native audio player application included in an operating system of the mobile computing device 202. In other words,
  • the audio player application 216 can be a third party audio player application.
  • the audio player application 216 can be separate and distinct from but interoperable with the browser application 215.
  • the audio player application 216 can reliably play audio clips even when a display 220 of the mobile computing device 202 is off or otherwise powered down. More particularly, the audio player application 216 does not experience interruption or latency when the mobile computing device 202 transitions to a lock screen state during playback of an audio clip.
  • the browser application 215 and the audio player application 216 each include computer logic utilized to provide desired functionality.
  • Each of the browser application 215 and the audio player application 216 can be implemented in hardware, firmware, and/or software controlling a general purpose processor.
  • each of the browser application 215 and the audio player application 216 includes program files stored on a computer-readable storage device, loaded into a memory and executed by one or more processors.
  • each of the browser application 215 and the audio player application 216 includes one or more sets of computer-executable instructions that are stored in a tangible computer-readable storage medium such as RAM hard disk or optical or magnetic media.
  • the mobile computing device 202 can further include a network interface 218, the display 220, and the speaker 222.
  • the network interface 218 can enable communications over a network 230.
  • the network interface 218 can include any number of components to provide networked communications (e.g., transceivers, antennas, controllers, cards, etc.).
  • the display 220 can include different types of display components, such as, for example, a light-emitting diode display (e.g., organic light-emitting diode display), a liquid- crystal display (e.g., thin-film-transistor liquid-crystal display), a thin-film diode display, etc.
  • the display 220 can also be touch-sensitive.
  • the display can be a capacitive touchscreen, a resistive touchscreen, or other touch-sensitive technologies.
  • the speaker 222 can be an electromechanical device that produces sound, as is well known in the art.
  • the speaker 222 can receive an electrical signal and can produce sound based on the electrical signal.
  • the mobile computing device 202 can communicatively connect to a server computing device 250 over the network 230.
  • the server computing device 250 can include one or more processors 252 and a memory 254.
  • the one or more processors 252 can be any form of processing device, including, for example, a processing unit, a microprocessor, a controller, a microcontroller, an application specific integrated circuit, etc.
  • the memory 254 can include one or more of any computer-readable medium, for example a non-transitory computer-readable medium, including, for example, RAM (e.g., DRAM), ROM (e.g., EEPROM), optical storage, magnetic storage, flash storage, solid-state storage, hard drives, or some combination thereof.
  • the memory 254 can store one or more sets of instructions 256 that, when executed by the server computing device 250, cause the server computing device 250 to perform operations consistent with the present disclosure.
  • the server computing device 250 can further include or store a number of standard audio frames 257.
  • the standard audio frames 257 can include a standard click audio frame and a standard silence audio frame.
  • the standard audio frames are tiny offline-encoded MP3 frames.
  • the standard audio frames can be included inline in a JavaScript code provided to the mobile computing device 202 as a portion of a search results webpage.
  • the server computing device 250 can further include or store a plurality of tempo beat units 258.
  • Each tempo beat unit 258 can correspond to a smallest possible multiple of entire beat for a particular tempo.
  • the tempo beat units 258 are produced offline, stored at the server computing device 250, and then provided to the mobile computing device 202 over network 230 when needed.
  • the tempo beat units 257 are compressed into a single dataset or data file.
  • two stages of compression beyond audio compression e.g., beyond MP3 compression
  • all of the audio encoded frames e.g., MP3 frames
  • the duplicate headers and duplicate bodies from the whole frame set can be removed in a way that can easily be reversed (e.g., can easily be reversed by execution of JavaScript code).
  • the resulting dataset of binary data can be gzipped to compress what is essentially the silence between clicks.
  • the tempo beat units 258 that have been compressed in this fashion can be transferred in a 99% smaller form than they would be as plain audio encoded files (e.g., plain MP3 files).
  • the server computing device 250 can further include a network interface 259.
  • the network interface 259 can enable communications over the network 230.
  • the network interface 259 can include any number of components to provide networked communications (e.g., transceivers, antennas, controllers, cards, etc.).
  • the network 230 can be any type of communications network, such as a local area network (e.g., intranet), wide area network (e.g., Internet), or some combination thereof and can include any number of wired or wireless links.
  • communication between the server computing device 250 and the mobile computing device 202 can be carried via any type of wired and/or wireless connection, using a wide variety of communication protocols (e.g., TCP/IP, HTTP, SMTP, FTP), encodings or formats (e.g., HTML, XML), and/or protection schemes (e.g., VPN, secure HTTP, SSL).
  • Server computing device 250 can communicate with the mobile computing device 202 over network 230 by sending and receiving data.
  • any of the processes, operations, programs, applications, or instructions described as being stored at or performed by the server computing device 250 can instead be stored at or performed by the mobile computing device 202 in whole or in part, and vice versa.
  • Figure 3 depicts a flow chart diagram of an example method 300 to implement a metronome according to example embodiments of the present disclosure. Although example method 300 will be discussed with reference to system 200 of Figure 2, the method 300 can be implemented by any suitable computing device.
  • the mobile computing device 202 displays a search results webpage that includes a metronome user interface.
  • the browser application 215 can interact with the server computing device to receive data that corresponds to the search results webpage in response to submission of a user query that is relevant to a metronome.
  • the webpage can include a metronome user interface, such as, for example, user interface 100 as illustrated in Figure 1.
  • the webpage can include JavaScript code which, when executed by the browser application 215, causes the browser application 215 to display the user interface of the metronome within the webpage.
  • the mobile computing device 202 receives a user input that requests implementation of the metronome at a tempo.
  • the user can interact with the browser application 215 to select a particular tempo and then request implementation of the metronome at such tempo.
  • the mobile computing device 202 generates an audio clip that exhibits the tempo.
  • the browser application 215 can generate the audio clip in response to receipt of the user input.
  • the mobile computing device 202 can generate the audio clip at 306 by executing a client-side JavaScript code included in the search results webpage to generate the audio clip. In some implementations, the mobile computing device 202 can generate the audio clip at 306 by generating an MP3-encoded audio clip.
  • the mobile computing device 202 uses an audio player application to play the audio clip.
  • the audio player application does not experience interruption or latency when the mobile computing device transitions to a lock screen state during playback of the audio clip.
  • the mobile computing device 202 can use audio player application 216 to play the audio clip.
  • the mobile computing device 202 can use a native audio player application included in an operating system of the mobile computing device 202. In some implementations, to play the audio clip at 308, the mobile computing device 202 can use an MP3 audio player application.
  • Figure 4 depicts a flow chart diagram of an example method 400 to implement a metronome according to example embodiments of the present disclosure. Although example method 400 will be discussed with reference to system 200 of Figure 2, the method 400 can be implemented by any suitable computing device.
  • the mobile computing device 202 displays a search results webpage that includes a metronome user interface.
  • the browser application 215 can interact with the server computing device to receive data that corresponds to the search results webpage in response to submission of a user query that is relevant to a metronome.
  • the webpage can include a metronome user interface, such as, for example, user interface 100 as illustrated in Figure 1.
  • the webpage can include JavaScript code which, when executed by the browser application 215, causes the browser application 215 to display the user interface of the metronome within the webpage.
  • the mobile computing device 202 receives a user input that requests implementation of the metronome at a tempo.
  • the user can interact with the browser application 215 to select a particular tempo and then request implementation of the metronome at such tempo.
  • the mobile computing device 202 determines whether generation of the audio clip that exhibits the tempo is achievable using concatenations of standard audio frames.
  • determining whether generation of the audio clip that exhibits the tempo is achievable using concatenations of standard audio frames at 406 can include comparing a beat duration of the tempo with an audio encoding frame duration (e.g., the universal MP3 frame). For example, it can be determined whether the beat duration of selected tempo is satisfactorily dividable by the audio encoding frame duration.
  • method 400 proceeds to 408.
  • the mobile computing device 202 concatenates the standard audio frames to generate the audio clip that exhibits the tempo.
  • the standard audio frames are included inline in a JavaScript code included in the webpage.
  • the mobile computing device 202 uses an audio player application to play the audio clip.
  • the audio player application does not experience interruption or latency when the mobile computing device transitions to a lock screen state during playback of the audio clip.
  • the mobile computing device 202 can use audio player application 216 to play the audio clip.
  • method 400 proceeds to 412.
  • the mobile computing device 202 receives a dataset that includes a plurality of beat units respectively associated with a plurality of potential tempos. At least one of the plurality of beat units is associated with the requested tempo. For example, each beat unit for a particular tempo can correspond to a smallest possible multiple of an entire beat for such tempo.
  • the mobile computing device 202 duplicates or otherwise multiplies the beat unit associated with the requested tempo to generate the audio clip that exhibits the tempo.
  • the mobile computing device 202 uses an audio player application to play the audio clip.
  • the audio player application does not experience interruption or latency when the mobile computing device transitions to a lock screen state during playback of the audio clip.
  • the mobile computing device 202 can use audio player application 216 to play the audio clip.
  • server processes discussed herein may be implemented using a single server or multiple servers working in combination.
  • Databases and applications may be implemented on a single system or distributed across multiple systems. Distributed components may operate sequentially or in parallel.
  • Figures 3-4 depicts steps performed in a particular order for purposes of illustration and discussion, the methods of the present disclosure are not limited to the particularly illustrated order or arrangement.
  • the various steps illustrated in Figures 3- 4 can respectively be omitted, rearranged, combined, and/or adapted in various ways without deviating from the scope of the present disclosure.

Abstract

The present disclosure provides systems and methods for providing a metronome embedded in a search results page. One example computer-implemented method includes displaying, by a mobile computing device, a search results webpage that includes a metronome user interface. The method includes receiving, by the mobile computing device, a user input that requests implementation of the metronome at a tempo. In response to receiving the user input, the method includes generating, by the mobile computing device, an audio clip that exhibits the tempo. The method includes using, by the mobile computing device, an audio player application to play the audio clip. The audio player application does not experience interruption or latency when the mobile computing device transitions to a lock screen state during playback of the audio clip.

Description

METRONOME EMBEDDED IN SEARCH RESULTS PAGE AND UNAFFECTED BY
LOCK SCREEN TRANSITION
FIELD
[0001] The present disclosure relates generally to a metronome implemented by a computing device and, more particularly, to a metronome embedded in a search results page that is capable of playback unaffected by a lock screen transition of the computing device.
BACKGROUND
[0002] A metronome is a device that produces regular, metrical sounds (e.g., ticks or clicks) according to fixed period or tempo. For example, a metronome can adhere to a tempo defined in beats per minute. In some metronomes, the tempo of the metronome can be adjustable or otherwise user settable.
[0003] One common usage of a metronome is to assist a musician during playing of an instrument. For example, a metronome can be used by musicians to help keep a steady tempo as they play, to work on issues of irregular timing, or to help internalize a clear sense of timing and tempo.
[0004] As metronomes are used to mark time and assist in keeping a steady tempo, it is important that the operation of the metronome is reliable, consistent, and uninterrupted. For example, a metronome should not skip a beat or otherwise fail to adhere to the correct tempo. Further, the metronome should not cease producing the sound until it is desired by the user to do so.
[0005] Certain mobile computing devices (e.g., a smartphone or a tablet computer) can serve as a metronome. In one example, a user can load a webpage in a browser application of the mobile computing device and can interact with the webpage to cause the mobile computing device to serve as a metronome. For example, the mobile computing device can execute instructions included in the webpage which cause the device to regularly produce the sounds according to a desired tempo.
[0006] However, mobile browser applications typically impose constraints that make the above described use of the mobile computing device as a metronome difficult. In particular, audio associated with a mobile web browser typically experiences latency or playback issues when the mobile computing device transitions into a "lock screen state" in which the device is "locked" against use. While in the "locked screen state," the user may be required to "unlock" the device to return the device to full functionality. As examples, the user can unlock the device by entering a pass-code, by performing a particular swipe or gesture, by completing fingerprint sensing, or through other techniques. In some cases, certain limited functionality (e.g., capture of new photographs or emergency phone calls) may be enabled while the device is in the locked screen state. However, in some cases, transitioning to the lock screen state may cause the screen to turn off completely, or otherwise change the state or operational mode of the screen. Many mobile computing devices automatically transition into such a lock screen state after a period of inactivity. As described above, audio associated with a mobile web browser typically experiences latency or playback issues when the mobile computing device transitions into the lock screen state.
[0007] As one example, certain typical mobile web browsers use the Web Audio API to cause playback of audio by the mobile computing device. However, audio generated on-the- fly via the Web Audio API will automatically be stopped within fifteen seconds of the mobile computing device transitioning into the lock screen state.
[0008] Thus, a user can load a webpage in a browser application of the mobile computing device and start the metronome. However, after a certain period (e.g., thirty seconds) the mobile computing device may transition to the lock screen state and the metronome will cease. Thus, the metronome operation ends while the user is still practicing, and the user is forced to choose between continuing to practice without the metronome or stopping practice to unlock the device and again start the metronome.
[0009] As another example, an audio clip that is set to loop or looped via JavaScript executed by the mobile browser application (e.g., as a part of the webpage) will either stop automatically or be affected by increased latency when the screen turns off upon entering the lock screen state. Such latency by the device again provides a frustrating experience for the user, as it degrades the reliability and accuracy of the metronome signal provided to the user. As a result, the user may be thrown off-beat or otherwise struggle to adjust their playing to the latency of the device.
[0010] Furthermore, certain metronomes implemented through mobile browser applications have varied timing accuracy and consistency even when the screen is on. Such metronomes simply do not provide reliable service.
[0011] Thus, metronomes implemented through mobile web browsers are typically unreliable as they may undesirably cease producing sound or skip a beat due to latency upon transition of the mobile computing device into a lock screen state. SUMMARY
[0012] Aspects and advantages of embodiments of the present disclosure will be set forth in part in the following description, or may be learned from the description, or may be learned through practice of the embodiments.
[0013] One example aspect of the present disclosure is directed to a computer- implemented method for providing a metronome unaffected by a lock screen transition. The method includes displaying, by a mobile computing device, a search results webpage that includes a metronome user interface. The method includes receiving, by the mobile computing device, a user input that requests implementation of the metronome at a tempo. In response to receiving the user input, the method includes generating, by the mobile computing device, an audio clip that exhibits the tempo. The method includes using, by the mobile computing device, an audio player application to play the audio clip. The audio player application does not experience interruption or latency when the mobile computing device transitions to a lock screen state during playback of the audio clip. The audio application may be distinct from any mobile browser application running on the device.
[0014] Another example aspect of the present disclosure is directed to a mobile computing device that provides a metronome unaffected by a lock screen transition. The mobile computing device includes at least one processor and at least one computer-readable medium, which may be a non-transitory computer-readable medium although the invention is not limited to this. The at least one computer-readable medium stores instructions that, when executed by the at least one processor, cause the mobile computing device to display a search results webpage that includes a metronome user interface; receive a user input that requests implementation of the metronome at a tempo; in response to receipt of the user input, generate an audio clip that exhibits the tempo; and use an audio player application to play the audio clip. The audio player application does not experience interruption or latency when the mobile computing device transitions to a lock screen state during playback of the audio clip. Another example aspect of the present disclosure is directed to a mobile computing device that provides a metronome unaffected by a lock screen transition. The mobile computing device includes at least one processor and at least one computer-readable medium, which stores instructions that, when executed by the at least one processor, cause the mobile computing device to perform a method of the example aspect described above. [0015] Another example aspect of the present disclosure is directed to at least one computer-readable medium, which may be a non-transitory computer-readable medium although the invention is not limited to this, that stores instructions. When executed by at least one processor, the instructions cause the at least one processor to display a user interface within a webpage provided by a browser application of a computing device. The user interface enables implementation of a periodic audible indicator. When executed by at least one processor, the instructions further cause the at least one processor to, in response to receipt of a user input that requests implementation of the periodic audible indicator at a tempo, provide the periodic audible indicator at the tempo. The periodic audible indicator is operable through the browser application regardless of a device state of the computing device. In this example aspect the instructions that cause the at least one processor to provide the periodic audible indicator at the tempo may cause the at least one processor to: generate an audio clip that exhibits the tempo; and provide the audio clip to an audio player application for playback. Additionally or alternatively, in this example aspect the computer- readable medium may further store a standard click audio frame and a standard silence audio frame, and the instructions that cause the at least one processor to generate the audio clip that exhibits the tempo may cause the at least one processor to concatenate the standard click audio frame and the standard silence audio frame to generate the audio clip that exhibits the tempo. Additionally or alternatively, in this example the instructions may comprise a client- side JavaScript code included in the webpage provided by the browser application of the computing device.
[0016] Other aspects of the present disclosure are directed to systems, methods, apparatus, and tangible non-transitory computer-readable media for implementing one or more aspects described herein.
[0017] These and other features, aspects and advantages of various embodiments will become better understood with reference to the following description and appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the present disclosure and, together with the description, serve to explain the related principles. It will be understood that a feature described in conjunction with one aspect or embodiment may be incorporated in any other aspect or embodiment described herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] Figure 1 depicts an example user interface of a metronome embedded in a search results page according to example embodiments of the present disclosure.
[0019] Figure 2 depicts a block diagram an example computing system according to example embodiments of the present disclosure.
[0020] Figure 3 depicts a flow chart diagram of an example method to implement a metronome according to example embodiments of the present disclosure.
[0021] Figure 4 depicts a flow chart diagram of an example method to implement a metronome according to example embodiments of the present disclosure.
DETAILED DESCRIPTION
[0022] Generally, the present disclosure provides a metronome embedded in a search results page that is capable of playback unaffected by a lock screen or other device state transition of a mobile computing device.
[0023] In particular, a web-based metronome can be provided in a search results page in response to relevant search queries (e.g., a search for the word "metronome"). For example, a browser application of a mobile computing device such as a smartphone or tablet computing device can provide the search results page in response to a relevant search query.
[0024] The search results page can include a metronome user interface. A user can interact with the user interface included in the search results page to request implementation of the metronome at a particular tempo. For example, the tempo can be user-selectable.
[0025] According to an aspect of the present disclosure, in response to the user input, the browser application of the mobile computing device can dynamically generate an audio clip at the selected tempo. The audio clip can be long enough to be useful for a typical musician's practice session.
[0026] The mobile computing device can utilize an audio player application of the mobile computing device to play the audio clip. The audio player application can reliably play music and other audio clips even when the screen of the device is off or when the device has transitioned into a lock screen state. More particularly, the audio player application does not experience interruption or latency when the mobile computing device transitions to a lock screen state during playback of the audio clip.
[0027] As such, use of the audio player application to play the audio clip moves responsibility for control of playback away from the browser application, thereby eliminating latency or other issues typically associated with audio playback through mobile web browsers.
[0028] In some implementations, the audio player application can be a native audio player application included in an operating system of the mobile computing device. Thus, as an example, the browser application can generate the audio clip and then call the native audio player application to support playback of the audio clip.
[0029] In some implementations, the mobile computing device can generate the audio clip by executing a client-side JavaScript code included in the search results webpage. For example, generating the complete audio clip offline and/or on a server computing device can sometimes require an unacceptably large data transfer. Thus, dynamic local creation of the audio clip can obviate the need for a data transfer that requires a relatively large amount of time and/or computing resources.
[0030] In some implementations, the mobile computing device can generate an MP3- encoded audio clip that exhibits the tempo. In such implementations, the mobile computing device can use an MP3 audio player application to play the audio clip. In particular, use of MP3 encoding can be beneficial as MP3 is widely and reliably supported by all major browser applications. Further, MP3 -encoded audio clips are relatively size-efficient.
[0031] In some implementations, to generate the audio clip for a given tempo, the mobile computing device can implement one of two different approaches depending on the selected tempo. In particular, in some implementations, the particular approach used can be selected based on a determination of whether generation of the audio clip for the given tempo is achievable using concatenations of a standard audio frames such as a standard click audio frame and a standard silence audio frame.
[0032] In some implementations, the determination of the achievability of generation of the audio clip using the standard frames can be based on a comparison of a beat duration of the particular tempo with an audio encoding frame duration (e.g., the universal MP3 frame duration). For example, it can be determined whether the beat duration of selected tempo is satisfactorily dividable by the audio encoding frame duration.
[0033] In instances in which the audio clip is achievable using the standard audio frames, the mobile computing device can concatenate standard audio frames (e.g., the standard click audio frame and the standard silence audio frame) to generate the audio clip that exhibits the tempo. In some implementations, the standard audio frames are tiny offline-encoded MP3 frames. In some implementations, the standard audio frames can be included inline in a JavaScript code included in the search results webpage. The standard frames can be concatenated a large number of times to generate the audio clip.
[0034] For tempos where the first approach described above does not achieve acceptable error in fitting n beats per minute, a second approach can be used. In the second approach, the smallest possible multiples of entire beats at such tempos can be encoded (e.g., offline and stored at a server computing device). Thereafter, the smallest possible multiple for a particular tempo requested by a user can be duplicated in the browser application of the mobile computing device to achieve n beats per minute with acceptable error.
[0035] In the second approach, the offline encoding can shift the frame-alignment of the clicking or other periodic sound in a way that cannot realistically be achieved with the first approach described above. Therefore, the second approach can provide relatively higher precision that is increasingly necessary as the tempo setting increases in magnitude (e.g., gets "faster").
[0036] Further, since the offline-generated beats in the second approach are typically larger than is desirable to transfer from the server computing device to the mobile computing device, two stages of compression beyond audio compression (e.g., beyond MP3
compression) can be applied. As one example, all of the audio encoded frames (e.g., MP3 frames) for all of the tempos which require the second approach can be hashed. Next, the duplicate headers and duplicate bodies from the whole frame set can be removed in a way that can easily be reversed (e.g., can easily be reversed by execution of JavaScript code). Finally, the resulting dataset of binary data can be gzipped (or otherwise compressed) to compress what is essentially the silence between clicks. The audio content which has been compressed in this fashion can be transferred in a 99% smaller form than it would be as plain audio encoded files (e.g., plain MP3 files).
[0037] Thus, in some implementations, a single dataset can be transmitted to the mobile computing device that includes the smallest possible multiples of entire beats for each tempo for which the second approach is required. In some instances such smallest possible multiples can be referred to as beat units. When an audio clip that exhibits one of such tempos is required, the mobile computing device can retrieve the appropriate beat unit for the particular tempo and then duplicate or otherwise multiply such beat unit to generate the audio clip that exhibits the particular tempo.
[0038] Thus, the present disclosure provides systems and methods that enable a web- based metronome that works reliably even when a screen of a mobile computing device is turned off or the mobile computing device changes to the lock screen state or otherwise changes states.
[0039] As used herein, a metronome includes any recurrent tone pattern generator, where tempo is fixed, and the tone pattern is comprised of one or more tone elements. As one example, a click can be characterized as one tone element. The click tone element can be combined with other tone elements to provide a repeating tone pattern such as, for example, a repeating pattern of click, hiss, and silence tone patterns. Furthermore, although use of a metronome by musicians is given as one example use, the present disclosure is not limited to such example use. In particular, as further examples, metronome applications such as measuring cadence for exercise, dance, or other activities are also contemplated by the present disclosure.
[0040] With reference now to the Figures, example aspects of the present disclosure will now be discussed in further detail.
[0041] Figure 1 depicts an example user interface 100 of a metronome embedded in a search results page 102 according to example embodiments of the present disclosure. In particular, a browser application of a mobile computing device 106 has executed data which causes display of the webpage 102 on a display 104 of the mobile computing device 106.
[0042] In some implementations, the browser application of the mobile computing device 106 can display the search results page 102 in response to a user query 108 that is relevant to a metronome. The search results page 102 can include the user interface 100 as a relevant result and can also include any number of additional results (e.g., additional search result 110 and additional search result 112).
[0043] According to an aspect of the present disclosure, a user can interact with the user interface 100 included in the search results page 102 to request implementation of the metronome at a particular tempo. For example, the user interface 100 visibly displays a current tempo setting (e.g., shown at 114 as 120 beats per minute). The user interface 100 further includes a sliding bar 116 that enables the user to adjust the current tempo setting (e.g., to faster or slower tempos).
[0044] The user interface 100 also includes a play button, icon, or other feature 118 that enables the user to request implementation of the metronome at the current tempo setting. In particular, according to an aspect of the present disclosure, in response to a user selection of the play button 118, the browser application can generate an audio clip that is played back by an audio player application of the mobile computing device 106. [0045] The particular user interface 100 and associated icons, buttons, and features depicted in Figure 1 are provided as examples only. The systems and methods of the present disclosure are not limited to the particular user interface 100 illustrated in Figure 1 but, instead, can be implemented using many different user interfaces with various designs, appearances, features, etc.
[0046] Figure 2 depicts a block diagram an example computing system 200 according to example embodiments of the present disclosure. The system includes a mobile computing device 202 that implements a metronome via a browser application 215.
[0047] The mobile computing device 202 can be any form of mobile device, such as a smartphone, tablet, wearable computing device (e.g., computing device embedded in a pair of eyeglasses, a wristband, a necklace, etc.), handheld computing device, computing device embedded in a vehicle, etc. Further, although the systems and methods of the present disclosure are particularly beneficial when applied in the context of a mobile computing device, they are not limited to that scenario. Instead, the present disclosure can be implemented on any computing device, whether mobile or non-mobile.
[0048] The mobile computing device 202 includes one or more processors 206 and a memory 208. The one or more processors 206 can be any form of processing device, including, for example, a processing unit, a microprocessor, a controller, a microcontroller, an application specific integrated circuit, etc. The memory 208 can include one or more of any computer-readable medium, for example a non-transitory computer-readable medium, including, for example, RAM (e.g., DRAM), ROM (e.g., EEPROM), optical storage, magnetic storage, flash storage, solid-state storage, hard drives, or some combination thereof. The memory 208 can store one or more sets of instructions 210 that, when executed by the mobile computing device 202, cause the mobile computing device 202 to perform operations consistent with the present disclosure.
[0049] The mobile computing device 202 includes a browser application 215. The browser application can be implemented by the one or more processors 206. The browser application 215 can retrieve, present, and traverse information resources from the World Wide Web. The browser application 215 can be a mobile web browser such as, for example, the Chrome™ mobile web browser for iOS™ or Android™, the Safari™ mobile web browser for iOS™, the Firefox™ mobile web browser for iOS™ or Android™, etc.
[0050] The mobile computing device 202 includes an audio player application 216. The audio player application can be implemented by the one or more processors 206. The audio player application 216 can cause playback of audio by the speaker 222. In some implementations, the audio player application 216 can be a native audio player application included in an operating system of the mobile computing device 202. In other
implementations, the audio player application 216 can be a third party audio player application. The audio player application 216 can be separate and distinct from but interoperable with the browser application 215.
[0051] According to an aspect of the present disclosure, the audio player application 216 can reliably play audio clips even when a display 220 of the mobile computing device 202 is off or otherwise powered down. More particularly, the audio player application 216 does not experience interruption or latency when the mobile computing device 202 transitions to a lock screen state during playback of an audio clip.
[0052] The browser application 215 and the audio player application 216 each include computer logic utilized to provide desired functionality. Each of the browser application 215 and the audio player application 216 can be implemented in hardware, firmware, and/or software controlling a general purpose processor. For example, in some implementations, each of the browser application 215 and the audio player application 216 includes program files stored on a computer-readable storage device, loaded into a memory and executed by one or more processors. In other implementations, each of the browser application 215 and the audio player application 216 includes one or more sets of computer-executable instructions that are stored in a tangible computer-readable storage medium such as RAM hard disk or optical or magnetic media.
[0053] The mobile computing device 202 can further include a network interface 218, the display 220, and the speaker 222. The network interface 218 can enable communications over a network 230. The network interface 218 can include any number of components to provide networked communications (e.g., transceivers, antennas, controllers, cards, etc.).
[0054] The display 220 can include different types of display components, such as, for example, a light-emitting diode display (e.g., organic light-emitting diode display), a liquid- crystal display (e.g., thin-film-transistor liquid-crystal display), a thin-film diode display, etc. In some implementations, the display 220 can also be touch-sensitive. For example, the display can be a capacitive touchscreen, a resistive touchscreen, or other touch-sensitive technologies. [0055] The speaker 222 can be an electromechanical device that produces sound, as is well known in the art. For example, the speaker 222 can receive an electrical signal and can produce sound based on the electrical signal.
[0056] In some implementations, the mobile computing device 202 can communicatively connect to a server computing device 250 over the network 230. The server computing device 250 can include one or more processors 252 and a memory 254. The one or more processors 252 can be any form of processing device, including, for example, a processing unit, a microprocessor, a controller, a microcontroller, an application specific integrated circuit, etc. The memory 254 can include one or more of any computer-readable medium, for example a non-transitory computer-readable medium, including, for example, RAM (e.g., DRAM), ROM (e.g., EEPROM), optical storage, magnetic storage, flash storage, solid-state storage, hard drives, or some combination thereof. The memory 254 can store one or more sets of instructions 256 that, when executed by the server computing device 250, cause the server computing device 250 to perform operations consistent with the present disclosure.
[0057] The server computing device 250 can further include or store a number of standard audio frames 257. For example, the standard audio frames 257 can include a standard click audio frame and a standard silence audio frame. In some implementations, the standard audio frames are tiny offline-encoded MP3 frames. In some implementations, the standard audio frames can be included inline in a JavaScript code provided to the mobile computing device 202 as a portion of a search results webpage.
[0058] The server computing device 250 can further include or store a plurality of tempo beat units 258. Each tempo beat unit 258 can correspond to a smallest possible multiple of entire beat for a particular tempo. In some implementations, the tempo beat units 258 are produced offline, stored at the server computing device 250, and then provided to the mobile computing device 202 over network 230 when needed.
[0059] In some implementations, the tempo beat units 257 are compressed into a single dataset or data file. For example, two stages of compression beyond audio compression (e.g., beyond MP3 compression) can be applied to the tempo beat units 257. As one example, all of the audio encoded frames (e.g., MP3 frames) which represent the smallest possible multiples of respective beats for a set of tempos can be hashed. Next, the duplicate headers and duplicate bodies from the whole frame set can be removed in a way that can easily be reversed (e.g., can easily be reversed by execution of JavaScript code). Finally, the resulting dataset of binary data can be gzipped to compress what is essentially the silence between clicks. The tempo beat units 258 that have been compressed in this fashion can be transferred in a 99% smaller form than they would be as plain audio encoded files (e.g., plain MP3 files).
[0060] The server computing device 250 can further include a network interface 259. The network interface 259 can enable communications over the network 230. The network interface 259 can include any number of components to provide networked communications (e.g., transceivers, antennas, controllers, cards, etc.).
[0061] The network 230 can be any type of communications network, such as a local area network (e.g., intranet), wide area network (e.g., Internet), or some combination thereof and can include any number of wired or wireless links. In general, communication between the server computing device 250 and the mobile computing device 202 can be carried via any type of wired and/or wireless connection, using a wide variety of communication protocols (e.g., TCP/IP, HTTP, SMTP, FTP), encodings or formats (e.g., HTML, XML), and/or protection schemes (e.g., VPN, secure HTTP, SSL). Server computing device 250 can communicate with the mobile computing device 202 over network 230 by sending and receiving data.
[0062] Further, any of the processes, operations, programs, applications, or instructions described as being stored at or performed by the server computing device 250 can instead be stored at or performed by the mobile computing device 202 in whole or in part, and vice versa.
[0063] Figure 3 depicts a flow chart diagram of an example method 300 to implement a metronome according to example embodiments of the present disclosure. Although example method 300 will be discussed with reference to system 200 of Figure 2, the method 300 can be implemented by any suitable computing device.
[0064] At 302, the mobile computing device 202 displays a search results webpage that includes a metronome user interface. For example, the browser application 215 can interact with the server computing device to receive data that corresponds to the search results webpage in response to submission of a user query that is relevant to a metronome. The webpage can include a metronome user interface, such as, for example, user interface 100 as illustrated in Figure 1. In some implementations, the webpage can include JavaScript code which, when executed by the browser application 215, causes the browser application 215 to display the user interface of the metronome within the webpage.
[0065] At 304, the mobile computing device 202 receives a user input that requests implementation of the metronome at a tempo. For example, the user can interact with the browser application 215 to select a particular tempo and then request implementation of the metronome at such tempo.
[0066] At 306, the mobile computing device 202 generates an audio clip that exhibits the tempo. For example, the browser application 215 can generate the audio clip in response to receipt of the user input.
[0067] In some implementations, the mobile computing device 202 can generate the audio clip at 306 by executing a client-side JavaScript code included in the search results webpage to generate the audio clip. In some implementations, the mobile computing device 202 can generate the audio clip at 306 by generating an MP3-encoded audio clip.
[0068] At 308, the mobile computing device 202 uses an audio player application to play the audio clip. The audio player application does not experience interruption or latency when the mobile computing device transitions to a lock screen state during playback of the audio clip. For example, the mobile computing device 202 can use audio player application 216 to play the audio clip.
[0069] In some implementations, to play the audio clip at 308, the mobile computing device 202 can use a native audio player application included in an operating system of the mobile computing device 202. In some implementations, to play the audio clip at 308, the mobile computing device 202 can use an MP3 audio player application.
[0070] Figure 4 depicts a flow chart diagram of an example method 400 to implement a metronome according to example embodiments of the present disclosure. Although example method 400 will be discussed with reference to system 200 of Figure 2, the method 400 can be implemented by any suitable computing device.
[0071] At 402, the mobile computing device 202 displays a search results webpage that includes a metronome user interface. For example, the browser application 215 can interact with the server computing device to receive data that corresponds to the search results webpage in response to submission of a user query that is relevant to a metronome. The webpage can include a metronome user interface, such as, for example, user interface 100 as illustrated in Figure 1. In some implementations, the webpage can include JavaScript code which, when executed by the browser application 215, causes the browser application 215 to display the user interface of the metronome within the webpage.
[0072] At 404, the mobile computing device 202 receives a user input that requests implementation of the metronome at a tempo. For example, the user can interact with the browser application 215 to select a particular tempo and then request implementation of the metronome at such tempo.
[0073] At 406, the mobile computing device 202 determines whether generation of the audio clip that exhibits the tempo is achievable using concatenations of standard audio frames. In some implementations, determining whether generation of the audio clip that exhibits the tempo is achievable using concatenations of standard audio frames at 406 can include comparing a beat duration of the tempo with an audio encoding frame duration (e.g., the universal MP3 frame). For example, it can be determined whether the beat duration of selected tempo is satisfactorily dividable by the audio encoding frame duration.
[0074] If it is determined at 406 that generation of the audio clip that exhibits the tempo is achievable using concatenations of standard audio frames, then method 400 proceeds to 408.
[0075] At 408, the mobile computing device 202 concatenates the standard audio frames to generate the audio clip that exhibits the tempo. In some implementations, the standard audio frames are included inline in a JavaScript code included in the webpage.
[0076] At 410, the mobile computing device 202 uses an audio player application to play the audio clip. The audio player application does not experience interruption or latency when the mobile computing device transitions to a lock screen state during playback of the audio clip. For example, the mobile computing device 202 can use audio player application 216 to play the audio clip.
[0077] However, if it is determined at 406 that generation of the audio clip that exhibits the tempo is not achievable using concatenations of standard audio frames, then method 400 proceeds to 412.
[0078] At 412, the mobile computing device 202 receives a dataset that includes a plurality of beat units respectively associated with a plurality of potential tempos. At least one of the plurality of beat units is associated with the requested tempo. For example, each beat unit for a particular tempo can correspond to a smallest possible multiple of an entire beat for such tempo.
[0079] At 414, the mobile computing device 202 duplicates or otherwise multiplies the beat unit associated with the requested tempo to generate the audio clip that exhibits the tempo.
[0080] At 416, the mobile computing device 202 uses an audio player application to play the audio clip. The audio player application does not experience interruption or latency when the mobile computing device transitions to a lock screen state during playback of the audio clip. For example, the mobile computing device 202 can use audio player application 216 to play the audio clip.
[0081] The technology discussed herein makes reference to servers, databases, software applications, and other computer-based systems, as well as actions taken by and information sent to and from such systems. The inherent flexibility of computer-based systems allows for a great variety of possible configurations, combinations, and divisions of tasks and functionality between and among components. For instance, server processes discussed herein may be implemented using a single server or multiple servers working in combination. Databases and applications may be implemented on a single system or distributed across multiple systems. Distributed components may operate sequentially or in parallel.
[0082] While the present subject matter has been described in detail with respect to various specific example embodiments thereof, each example embodiment is provided by way of explanation, not limitation of the disclosure. Those skilled in the art, upon attaining an understanding of the foregoing, may readily produce alterations to, variations of, and equivalents to such embodiments. Accordingly, the subject disclosure does not preclude inclusion of such modifications, variations, and/or additions to the present subject matter as would be readily apparent to one of ordinary skill in the art. For instance, features illustrated or described as part of one embodiment or implementation can be used with another embodiment or implementation to yield a still further embodiment. Thus, the present disclosure includes such alterations, variations, and equivalents.
[0083] In addition, although Figures 3-4 depicts steps performed in a particular order for purposes of illustration and discussion, the methods of the present disclosure are not limited to the particularly illustrated order or arrangement. The various steps illustrated in Figures 3- 4 can respectively be omitted, rearranged, combined, and/or adapted in various ways without deviating from the scope of the present disclosure.

Claims

WHAT IS CLAIMED IS:
1. A computer-implemented method for providing a metronome unaffected by a lock screen transition, the method comprising:
displaying, by a mobile computing device, a search results webpage that includes a metronome user interface;
receiving, by the mobile computing device, a user input that requests implementation of the metronome at a tempo;
in response to receiving the user input, generating, by the mobile computing device, an audio clip that exhibits the tempo; and
using, by the mobile computing device, an audio player application to play the audio clip, wherein the audio player application does not experience interruption or latency when the mobile computing device transitions to a lock screen state during playback of the audio clip.
2. The computer-implemented method of claim 1, wherein:
displaying, by a mobile computing device, the search results webpage comprises displaying, by a browser application of the mobile computing device, the search results webpage that includes the metronome user interface;
receiving, by the mobile computing device, the user input comprises receiving, by the browser application of the mobile computing device, the user input that requests
implementation of the metronome;
generating, by the mobile computing device, the audio clip comprises generating, by the browser application of the mobile computing device, the audio clip that exhibits the tempo; and
using, by the mobile computing device, the audio player application to play the audio clip comprises causing, by the audio player application of the mobile computing device, playback of the audio clip;
wherein the audio player application of the mobile computing device is separate and distinct from the browser application of the mobile computing device.
3. The computer-implemented method of claim 1 or 2, wherein generating, by the mobile computing device, the audio clip comprises executing, by the mobile computing device, a client-side JavaScript code included in the search results webpage to generate the audio clip.
4. The computer-implemented method of any preceding claim, wherein using, by the mobile computing device, the audio player application to play the audio clip comprises using, by the mobile computing device, a native audio player application included in an operating system of the mobile computing device to play the audio clip.
5. The computer-implemented method of any preceding claim, wherein:
generating, by the mobile computing device, the audio clip that exhibits the tempo comprises generating, by the mobile computing device, an MP3-encoded audio clip that exhibits the tempo; and
using, by the mobile computing device, the audio player application to play the audio clip comprises using, by the mobile computing device, an MP3 audio player application to play the audio clip.
6. The computer-implemented method of any preceding claim, wherein generating, by the mobile computing device, the audio clip comprises:
determining, by the mobile computing device, whether generation of the audio clip that exhibits the tempo is achievable using concatenations of a standard click audio frame and a standard silence audio frame; and
in response to a determination that generation of the audio clip that exhibits the tempo is achievable using concatenations of the standard audio frames, concatenating, by the mobile computing device, the standard click audio frame and the standard silence audio frame to generate the audio clip that exhibits the tempo.
7. The computer-implemented method of claim 6, wherein determining, by the mobile computing device, whether generation of the audio clip that exhibits the tempo is achievable using concatenations of the standard click audio frame and the standard silence audio frame comprises comparing a beat duration of the tempo with an audio encoding frame duration.
8. The computer-implemented method of claim 6 or 7, wherein the standard click audio frame and the standard silence audio frame are included inline in a JavaScript code included in the webpage.
9. The computer-implemented method of claim 6, 7 or 8, wherein generating, by the mobile computing device, the audio clip further comprises:
in response to a determination that generation of the audio clip that exhibits the tempo is not achievable using concatenations of the standard audio frames:
receiving, by the mobile computing device, a dataset that includes a plurality of beat units respectively associated with a plurality of potential tempos, at least one of the plurality of beat units associated with the tempo requested by the user; and
duplicating, by the mobile computing device, the beat unit associated with the tempo requested by the user to generate the audio clip.
10. A mobile computing device that provides a metronome unaffected by a lock screen transition, the mobile computing device comprising:
at least one processor;
at least one non-transitory computer-readable medium that stores instructions that, when executed by the at least one processor, cause the mobile computing device to:
display a search results webpage that includes a metronome user interface; receive a user input that requests implementation of the metronome at a tempo;
in response to receipt of the user input, generate an audio clip that exhibits the tempo; and
use an audio player application to play the audio clip, wherein the audio player application does not experience interruption or latency when the mobile computing device transitions to a lock screen state during playback of the audio clip.
11. The mobile computing device of claim 10, further comprising: a mobile browser application implemented by the at least one processor, the mobile browser application configured to:
display the search results webpage that includes the metronome user interface; receive the user input that requests implementation of the metronome at the tempo; and
in response to receipt of the user input, generate the audio clip that exhibits the tempo; and
the audio player application implemented by the at least one processor, the audio player application configured to cause playback of the audio clip without experiencing interruption of latency when the mobile computing device transitions to the lock screen state.
12. The mobile computing device of claim 10 or 11, wherein the audio player application comprises a native audio player application included in an operating system of the mobile computing device.
13. The mobile computing device of claim 10, 11, or 12, wherein the audio clip comprises an MP3 audio clip, and wherein the audio player application comprises an MP3 audio player application
14. The mobile computing device of any one of claims 10 to 13, wherein to generate the audio clip that exhibits the tempo, the mobile computing device executes a client-side JavaScript code included in the search results webpage.
15. The mobile computing device of any one of claims 10 to 14, wherein to generate the audio clip that exhibits the tempo, the mobile computing device:
determines whether generation of the audio clip that exhibits the tempo is achievable using concatenations of a standard click audio frame and a standard silence audio frame; and in response to a determination that generation of the audio clip that exhibits the tempo is achievable using concatenations of the standard audio frames, concatenates the standard click audio frame and the standard silence audio frame to generate the audio clip that exhibits the tempo.
16. The mobile computing device of any one of claims 10 to 15, wherein to generate the audio clip that exhibits the tempo, the mobile computing device:
in response to a determination that generation of the audio clip that exhibits the tempo is not achievable using concatenations of the standard audio frames:
receives a dataset that includes a plurality of beat units respectively associated with a plurality of potential tempos, at least one of the plurality of beat units associated with the tempo requested by the user; and
duplicates the beat unit associated with the tempo requested by the user to generate the audio clip.
17. At least one non-transitory computer-readable medium that stores instructions that, when executed by at least one processor, cause the at least one processor to perform a method as defined in any one of claims 1 to 9.
PCT/US2016/064914 2016-03-04 2016-12-05 Metronome embedded in search results page and unaffected by lock screen transition WO2017151201A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP16816818.5A EP3375177B1 (en) 2016-03-04 2016-12-05 Metronome embedded in search results page and unaffected by lock screen transition
JP2018531059A JP6469322B1 (en) 2016-03-04 2016-12-05 Metronome that is embedded in the search results page and is not affected by lock screen transitions
CN201680073835.7A CN108370397B (en) 2016-03-04 2016-12-05 Computer-implemented method and mobile computing device for providing metronome

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/060,896 US9651921B1 (en) 2016-03-04 2016-03-04 Metronome embedded in search results page and unaffected by lock screen transition
US15/060,896 2016-03-04

Publications (1)

Publication Number Publication Date
WO2017151201A1 true WO2017151201A1 (en) 2017-09-08

Family

ID=57610411

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2016/064914 WO2017151201A1 (en) 2016-03-04 2016-12-05 Metronome embedded in search results page and unaffected by lock screen transition

Country Status (5)

Country Link
US (1) US9651921B1 (en)
EP (1) EP3375177B1 (en)
JP (1) JP6469322B1 (en)
CN (1) CN108370397B (en)
WO (1) WO2017151201A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1104209A2 (en) * 1999-11-29 2001-05-30 Yamaha Corporation Communication apparatus, control method therefor and storage medium storing program for executing the method

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7743092B2 (en) * 1999-11-12 2010-06-22 Wood Lawson A Method for recognizing and distributing music
US8452259B2 (en) * 2001-02-20 2013-05-28 Adidas Ag Modular personal network systems and methods
US7174510B2 (en) * 2001-10-20 2007-02-06 Hal Christopher Salter Interactive game providing instruction in musical notation and in learning an instrument
US6727419B1 (en) * 2002-12-03 2004-04-27 Manuel Diaz Pulsating metronome
KR20050050689A (en) * 2003-11-26 2005-06-01 에스케이텔레텍주식회사 Method for incorporating metronome feature in mobile phone
US20130228063A1 (en) * 2005-10-06 2013-09-05 William D. Turner System and method for pacing repetitive motion activities
US7825319B2 (en) * 2005-10-06 2010-11-02 Pacing Technologies Llc System and method for pacing repetitive motion activities
CN101198111A (en) * 2006-12-05 2008-06-11 乐金电子(中国)研究开发中心有限公司 Mobile phone with simple metronome and its implementing method
CN102867526A (en) * 2007-02-14 2013-01-09 缪斯亚米有限公司 Collaborative music creation
US9772751B2 (en) * 2007-06-29 2017-09-26 Apple Inc. Using gestures to slide between user interfaces
US8111241B2 (en) * 2007-07-24 2012-02-07 Georgia Tech Research Corporation Gestural generation, sequencing and recording of music on mobile devices
US8785760B2 (en) * 2009-06-01 2014-07-22 Music Mastermind, Inc. System and method for applying a chain of effects to a musical composition
US9257053B2 (en) * 2009-06-01 2016-02-09 Zya, Inc. System and method for providing audio for a requested note using a render cache
KR101608673B1 (en) * 2009-10-30 2016-04-05 삼성전자주식회사 Operation Method for Portable Device including a touch lock state And Apparatus using the same
JP5744897B2 (en) * 2009-12-22 2015-07-08 ノキア コーポレイション Method and apparatus for performing energy management via subsystems
JP5949544B2 (en) * 2010-12-01 2016-07-06 ヤマハ株式会社 Retrieval of musical sound data based on rhythm pattern similarity
US20130002533A1 (en) * 2011-02-17 2013-01-03 Nike, Inc. User experience
US9407492B2 (en) * 2011-08-24 2016-08-02 Location Labs, Inc. System and method for enabling control of mobile device functional components
US9740883B2 (en) * 2011-08-24 2017-08-22 Location Labs, Inc. System and method for enabling control of mobile device functional components
US8954571B2 (en) * 2012-01-13 2015-02-10 Wavemarket, Inc. System and method for implementing histogram controlled mobile devices
EP2741199B1 (en) * 2012-12-06 2020-08-05 Samsung Electronics Co., Ltd Application individual lock mechanism for a touch screen device
US10560324B2 (en) * 2013-03-15 2020-02-11 Location Labs, Inc. System and method for enabling user device control
US9104417B2 (en) * 2013-05-08 2015-08-11 Cywee Group Limited Electronic apparatus capable of being waked up through detecting motions
US9230526B1 (en) * 2013-07-01 2016-01-05 Infinite Music, LLC Computer keyboard instrument and improved system for learning music
US20150019994A1 (en) * 2013-07-11 2015-01-15 Apple Inc. Contextual reference information on a remote device
US9372925B2 (en) * 2013-09-19 2016-06-21 Microsoft Technology Licensing, Llc Combining audio samples by automatically adjusting sample characteristics
JP6144167B2 (en) * 2013-09-27 2017-06-07 株式会社河合楽器製作所 Metronome program
CN104010230B (en) * 2014-06-17 2015-09-23 合一网络技术(北京)有限公司 The method and system of the video playback under screen lock state
CN104020837B (en) * 2014-06-19 2017-02-01 珠海全志科技股份有限公司 audio playing power management method and power management device
US9817549B2 (en) * 2014-06-25 2017-11-14 Verizon Patent And Licensing Inc. Method and system for auto switching applications based on device orientation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1104209A2 (en) * 1999-11-29 2001-05-30 Yamaha Corporation Communication apparatus, control method therefor and storage medium storing program for executing the method

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Metronome Beats Android App User Guide | Stonekick", 19 February 2015 (2015-02-19), XP055352685, Retrieved from the Internet <URL:https://web.archive.org/web/20150219195343/http://www.stonekick.com/metronome_guide.html> [retrieved on 20170308] *
ANONYMOUS: "Metronome Card in Google Search", 15 March 2016 (2016-03-15), XP055352665, Retrieved from the Internet <URL:http://googlesystem.blogspot.de/2016/03/metronome-card-in-google-search.html> [retrieved on 20170308] *
MARCIN SZPAK: "FREE METRONOME ONLINE - Best Metronome.com - Download Metronome for mobile", 31 December 2011 (2011-12-31), XP055352702, Retrieved from the Internet <URL:http://bestmetronome.com/j2me> [retrieved on 20170308] *

Also Published As

Publication number Publication date
CN108370397B (en) 2019-12-24
US9651921B1 (en) 2017-05-16
EP3375177B1 (en) 2021-01-27
JP6469322B1 (en) 2019-02-13
JP2019512897A (en) 2019-05-16
CN108370397A (en) 2018-08-03
EP3375177A1 (en) 2018-09-19

Similar Documents

Publication Publication Date Title
US10955984B2 (en) Step sequencer for a virtual instrument
US8745164B2 (en) Method and system to detect a cached web page
US20150370464A1 (en) Manage recurring event on calendar with timeline
US20070174419A1 (en) JavaScript error determination and reporting
CN107148621B (en) Client-side activity monitoring
EP2760014A1 (en) Method for making audio file and terminal device
WO2016060254A1 (en) Musical performance assistance device and method
EP2737400B1 (en) Mode notifications
CN111581219B (en) Method and device for acquiring monitoring data
EP3375177B1 (en) Metronome embedded in search results page and unaffected by lock screen transition
US10194128B2 (en) Systems and processes for generating a digital content item
US9202447B2 (en) Persistent instrument
WO2019042249A1 (en) Page-turning method and apparatus, and storage medium
US20140236586A1 (en) Method and apparatus for communicating messages amongst a node, device and a user of a device
CN111353356B (en) Hard-tipped writing implement method, device, electronic equipment and storage medium
US20140142932A1 (en) Method for Producing Audio File and Terminal Device
CN113453048A (en) Audio and video tactile feedback setting method, audio and video playing method and computer equipment
CN115576473B (en) Waveform display method, computer device, and storage medium
JP6694105B1 (en) Information processing method, information processing terminal, and program
EP2562990B1 (en) Method and device for editing and playing music according to data download speed
WO2019165037A1 (en) Methods and systems for resident control of devices using html and javascript
KR20200081211A (en) Haptic effect signal processing
CN117453319A (en) Processing method and device, vehicle central control equipment and storage medium
CN112417183A (en) Music playing method and device, electronic equipment and computer readable storage medium
TW201915927A (en) Method and device for detecting a mental state of a user

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018531059

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2016816818

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE