WO2016026755A1 - Systems, methods, and devices for generation of notification sounds - Google Patents
Systems, methods, and devices for generation of notification sounds Download PDFInfo
- Publication number
- WO2016026755A1 WO2016026755A1 PCT/EP2015/068589 EP2015068589W WO2016026755A1 WO 2016026755 A1 WO2016026755 A1 WO 2016026755A1 EP 2015068589 W EP2015068589 W EP 2015068589W WO 2016026755 A1 WO2016026755 A1 WO 2016026755A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- loop
- group
- selecting
- sound
- computer
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000009877 rendering Methods 0.000 claims abstract description 11
- 230000015654 memory Effects 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 24
- 230000007246 mechanism Effects 0.000 claims description 16
- 230000003068 static effect Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 230000015572 biosynthetic process Effects 0.000 claims description 4
- 238000003786 synthesis reaction Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 11
- 238000003860 storage Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 230000001934 delay Effects 0.000 description 4
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 3
- 108010014173 Factor X Proteins 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/002—Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2210/00—Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
- G10H2210/101—Music Composition or musical creation; Tools or processes therefor
- G10H2210/111—Automatic composing, i.e. using predefined musical rules
- G10H2210/115—Automatic composing, i.e. using predefined musical rules using a random process to generate a musical note, phrase, sequence or structure
- G10H2210/121—Automatic composing, i.e. using predefined musical rules using a random process to generate a musical note, phrase, sequence or structure using a knowledge base
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2210/00—Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
- G10H2210/101—Music Composition or musical creation; Tools or processes therefor
- G10H2210/125—Medley, i.e. linking parts of different musical pieces in one single piece, e.g. sound collage, DJ mix
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2220/00—Input/output interfacing specifically adapted for electrophonic musical tools or instruments
- G10H2220/155—User input interfaces for electrophonic musical instruments
- G10H2220/351—Environmental parameters, e.g. temperature, ambient light, atmospheric pressure, humidity, used as input for musical purposes
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2230/00—General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
- G10H2230/005—Device type or category
- G10H2230/021—Mobile ringtone, i.e. generation, transmission, conversion or downloading of ringing tones or other sounds for mobile telephony; Special musical data formats or protocols therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M19/00—Current supply arrangements for telephone systems
- H04M19/02—Current supply arrangements for telephone systems providing ringing current or supervisory tones, e.g. dialling tone or busy tone
- H04M19/04—Current supply arrangements for telephone systems providing ringing current or supervisory tones, e.g. dialling tone or busy tone the ringing-current being generated at the substations
Definitions
- This invention relates to sound generation, and, more
- FIG. 1(a) depicts an overview of a device according to exemplary embodiments hereof;
- FIG. 1(b) shows aspects of a data structure used by the device of
- FIGS. 2(a)-2(b) show exemplary processing in the system of
- FIG. 3 shows an example according to exemplary embodiments hereof
- FIG. 4 depicts an overview of a device according to exemplary embodiments hereof.
- FIG. 5 is a schematic diagram of a computer system.
- MIDI means Musical Instrument Digital Interface
- PCM means pulse coded modulation
- a “mechanism” refers to any device(s), process(es), routine(s), service(s), or combination thereof.
- a mechanism may be implemented in hardware, software, firmware, using a special-purpose device, or any combination thereof.
- a mechanism may be integrated into a single device or it may be distributed over multiple devices. The various components of a mechanism may be co-located or distributed. The mechanism may be formed from other mechanisms.
- the term “mechanism” may thus be considered to be shorthand for the term device(s) and/or process(es) and/or service(s).
- an "audio notification” refers to any sound or combination of sounds that is/are used to try to notify a user of the occurrence or non-occurrence of some event.
- the event may be any event, including, e.g. , an incoming phone call, arrival of an email, a warning, a confirmation, or the like.
- An audio notification may be used alone or in conjunction with other notifications to the user.
- an audio notification may be combined with a visual notification and/or a vibration notification.
- An audio notification may be rendered by one or more devices using general or special hardware on the device(s).
- An audio notification may be stored on one or more devices and/or generated, in whole or in part, on the fly, in substantially real time.
- Systems, methods and devices are described herein that play a unique sound (e.g., ringtone), every time a notification needed (e.g., when an incoming call is received).
- a unique sound e.g., ringtone
- These audio streams may then change at a given rate along different axes (e.g., timbre, rhythm, amplitude, frequency, pitch, etc.) according to rulesets (e.g., play only certain notes, chords, chord-changes, always start with a certain configuration, etc.) that can be modulated by still other forms of device sensor data, local data or data accessed via an internet connection.
- axes e.g., timbre, rhythm, amplitude, frequency, pitch, etc.
- rulesets e.g., play only certain notes, chords, chord-changes, always start with a certain configuration, etc.
- a device 100 includes one or more loop rendering devices 102 that can render sounds based on information in one or more loops 104 stored on the device.
- the term "play" is also used herein to refer to the process of rendering a sound.
- the device may be (or may be incorporated into) any kind of device, including, e.g., a computer device, a mobile phone such as a smart phone or the like, etc.
- the loops 104 comprise one or more loop groups, each loop group comprising one or more loop elements.
- the loops 104 includes k loop groups denoted Loop Group 1, Loop Group 2, Loop Group k.
- Each loop group has one or more loop elements associated therewith.
- Loop Group 1 has X loop elements
- Loop Group 2 has Y loop elements
- Loop Group K has Z loop elements associated therewith. It should be appreciated that there is no limit to the number of loop groups or to the number of loop elements within a loop group.
- the loop elements in a loop group may, but need not, have different lengths or durations.
- Each loop group has a length associated therewith, where the length of a given loop group is defined to be greater than or equal to the length of time (e.g., expressed in milliseconds) of the shortest loop within that group. In some cases the length associated with a loop group may be expressed in bars or beats with a tempo or as frames.
- each loop element may have a different length, in some presently preferred exemplary implementations all of the loop elements in each particular loop group have the same length as the other loop elements in that same loop group.
- Each loop element corresponds to a particular sound or tone that can be rendered by the loop rendering device(s) 102.
- the sound in or corresponding to a loop element may be a pre-recorded sound (e.g., a digital file corresponding to a recording of a sound) or it may be or comprise a set of parameters that control a synthesis engine that outputs PCM data, e.g., MIDI data parametrically controlling a software synthesizer.
- a loop may be considered to be a sound file of length M (or, set of parameters that control a synthesis engine that outputs PCM data in real-time of length M).
- a preferred implementation is sound file that can be repeated ad infinitum with a seamless transition from the end of a loop to the beginning of the loop.
- Another implementation may comprise MIDI data parametrically controlling a software synthesizer whose output displays a similar result as the aforementioned sound file implementation. It should be appreciated, however, that these are merely examples.
- a loop is a sound file or parametric control data of a given length, regardless of whether or not the beginning and end have a seamless transition.
- Loop elements may be generated on the fly or made beforehand, e.g., with commercially available software (such as Ableton Live, Avid Pro- Tools, Apple Logic, etc.)
- Device 100 includes a loop controller 106 that is constructed and adapted and operates to control selection of loop group elements and the manner in which loop groups are rendered by loop rendering device(s) 102.
- the loop controller 106 may be invoked when the device needs to render or provide a sound (e.g., a ringtone, an alert, or the like). Exemplary operation of the loop controller 106 is described in greater detail below with reference to the flowcharts in FIGS. 3(a)-3(b).
- loop controller 106 when the device 100 needs to play or render a sound, the loop controller 106 first selects one or more loop groups (at 202) from which that sound is to be generated. Loop groups may be selected at random or they may be pre-assigned to certain events or
- sets of one or more loop groups may be associated with various events (such as, e.g. , incoming telephone calls, incoming text messages, and so on) on the device.
- sets of one or more loop groups may be associated with combinations and people and events, thereby providing for customized ring tones for particular people.
- each of the selected loop groups (at 204).
- multiple loop groups may be played simultaneously.
- each of j selected loop groups (j ⁇ l) are played at the same (or substantially the same) time (at 206).
- FIG. 2(b) An exemplary process of playing a particular loop group (e.g. , loop group k) is shown in the flowchart in FIG. 2(b), where first the next loop element from the group is selected (at 208) and then the selected loop element is played (at 210). This process is repeated while the loop group is to be played and may stop when signaled by the device (e.g., when the device no longer needs to play the sound associated with the loop group).
- Selection of the next loop element may be random and/or rule based.
- the first loop element in the loop group (Loopj- ) is always played first, after which the elements may be selected at random.
- the first loop element is played first and repeated every j selections for some number j, while the other loop elements may be randomly selected between selections of loop element 1.
- FIG. 3 shows example playback of loop elements according to exemplary embodiments hereof.
- the loop controller 106 on device 100 selects loop groups 1, 2, and 7 (at 202) and then invokes the mechanism Play Selected Loop Group(s) (at 204) for each of these selected loop groups.
- Play Selected Loop Group for loop group 1 plays Loopj , Loopi 5 , Loopi 5 , Loopi 2 , Loopi , Loopi 2 .
- Play Selected Loop Group for loop group 2 plays Loop 2 1 , Loop 2 7 , Loop 2 3 ; and Play Selected Loop Group for loop group 7 plays Loop 71 followed by Loop 74 . It should be appreciated that the loop elements of the loop groups are each played at the same time.
- the number of loops and bars in a loop can vary and the number of bars needs to be consistent between loop groups.
- the initial randomized playback of loops within a loop group may be limited in its variation until certain parameters have been met (for example, within each loop group at least one loop with limited variation must complete playback before wider variation can take place).
- a system requires at least one loop group to function and two or more loop groups to develop more complex and evolved output.
- a loop within a loop group can also play silence
- loop elements e.g., a random function
- selection of loop groups and/or loop elements may be affected or modulated by other factors (e.g., static or dynamic factors).
- the loop controller mechanism 106' and/or the loop rendering 102' may be affected or influenced by one or more modulators 108.
- the selection of a loop (or a loop group) by loop selector 106' may be affected by one or more factors (e.g. , values) provided by modulator(s) 108.
- the rendering of a selected loop by loop rendering device(s) 102' may be affected by one or more factors (e.g., values) provided by modulator(s) 108.
- Modulator(s) 108 may be used to select loop(s) based on static and/or dynamic information, and the information may be determined or derived from information external to the device, information from another device, or any other source.
- a modulator 108 may provide a value based on one or more of: the time of day, day or week, date, current temperature, current weather, identity of device user, identity of incoming caller, identity of incoming message sender.
- the concept of modulation uses a so-called “source” and a so-called “target,” where a source may be or comprise any kind of information at any resolution of a static variable (e.g. , a given day of the week) or a time varying function (e.g., the temperature between two different times of the day).
- a source may also comprise a pseudorandom number generator.
- a source may be mapped to a target using any kind of function, including a linear mapping and an exponential mapping.
- a source may map to a target in a manner such that any change in the source is associated with a change in the target, where the change may be linear, exponential or any other function.
- a source may be, an evenly weighted random function applied to some parameter within a given loop group (e.g. , volume) or individual loop (e.g., which loop within a loop group shall play first or after a previous loop has played).
- a target may be any parameter of a system, loop group or loop, including, without limitation: volume, loop group number, loop number, cutoff frequency of a lowpass filter applied to individual loop group output or summed out output, etc., where the summed output refers the summed mix of each loop group displayed as (physical or software) system audio output.
- Some random function determines which loop within a loop group (target) plays.
- Some random function may refer to a pseudorandom number generator that outputs random values over time.
- the function's distribution may be simple (e.g. Gaussian) or more complex (e.g. a discrete-time Markov chain), and the system is not limited by the function's distribution.
- Some random function with persistence determines the amplitude of the next loop (target) to play.
- target determines the amplitude of the next loop (target) to play.
- persistence generally refers to a value or values sampled from the previous system, loop group, or loop's, parametric state e.g. the last value assigned to the amplitude of a given loop.
- Some random function with external modulation affects some aspect of (target), where, as used herein "External modulation source” refers to variable or time varying function, besides a pseudorandom number generator that, supplies data that can be applied.
- some or all of the parametric values at a given time from a system, loop group or loop may be applied to the parametric control of values (same or different) of targets of the consecutive (or parallel, thus providing cross-modulation) system, loop group, or loop.
- loop controller 108 and sound selector 110 may be implemented as specialized devices and/or as programs operating on a computer system, as described herein.
- Programs that implement such methods may be stored and transmitted using a variety of media (e.g. , computer readable media) in a number of manners.
- Hard- wired circuitry or custom hardware may be used in place of, or in combination with, some or all of the software instructions that can implement the processes of various embodiments. Thus, various combinations of hardware and software may be used instead of software only.
- FIG. 5 is a schematic diagram of a computer system 500 upon which embodiments of the present disclosure may be implemented and carried out.
- the computer system 500 includes a bus 502 (i.e. , interconnect), one or more processors 504, one or more communications ports 514, a main memory 506, removable storage media 510, read-only memory 508, and a mass storage 512.
- Communication port(s) 514 may be connected to one or more networks by way of which the computer system 500 may receive and/or transmit data.
- a "processor” means one or more
- An apparatus that performs a process can include, e.g. , a processor and those devices such as input devices and output devices that are appropriate to perform the process.
- Processor(s) 504 can be (or include) any known processor, such as, but not limited to, an Intel® Itanium® or Itanium 2® processor(s), AMD® Opteron® or Athlon MP® processor(s), or Motorola® lines of processors, and the like.
- Processor(s) may include one or more graphical processing units (GPUs) which may be on graphic cards or stand-alone graphic processors.
- Communications port(s) 514 can be any of an RS-232 port for use with a modem based dial-up connection, a 10/100 Ethernet port, a Gigabit port using copper or fiber, or a USB port, and the like.
- Communications port(s) 514 may be chosen depending on a network such as a Local Area Network (LAN), a Wide Area Network (WAN), a CDN, or any network to which the computer system 500 connects.
- the computer system 500 may be in communication with peripheral devices (e.g. , display screen 516, input device(s) 518) via Input / Output (I/O) port 520. Some or all of the peripheral devices may be integrated into the computer system 500, and the input device(s) 518 may be integrated into the display screen 516 (e.g. , in the case of a touch screen).
- Main memory 506 can be Random Access Memory (RAM), or any other dynamic storage device(s) commonly known in the art.
- Read-only memory 508 can be any static storage device(s) such as Programmable
- Mass storage 512 can be used to store information and instructions.
- hard disks such as the Adaptec® family of Small Computer Serial Interface (SCSI) drives, an optical disc, an array of disks such as Redundant Array of Independent Disks (RAID), such as the Adaptec® family of RAID drives, or any other mass storage devices may be used.
- SCSI Small Computer Serial Interface
- RAID Redundant Array of Independent Disks
- Bus 502 communicatively couples processor(s) 504 with the other memory, storage and communications blocks.
- Bus 502 can be a PCI / PCI-X, SCSI, a Universal Serial Bus (USB) based system bus (or other) depending on the storage devices used, and the like.
- Removable storage media 510 can be any kind of external hard-drives, floppy drives, IOMEGA® Zip Drives, Compact Disc - Read Only Memory (CD-ROM), Compact Disc - Re- Writable (CD-RW), Digital Versatile Disk - Read Only Memory
- Embodiments herein may be provided as one or more computer program products, which may include a machine-readable medium having stored thereon instructions, which may be used to program a computer (or other electronic devices) to perform a process.
- a computer or other electronic devices
- machine-readable medium refers to any medium, a plurality of the same, or a combination of different media, which participate in providing data (e.g., instructions, data structures) which may be read by a computer, a processor or a like device. Such a medium may take many forms, including but not limited to, non- volatile media, volatile media, and transmission media.
- Non-volatile media include, for example, optical or magnetic disks and other persistent memory.
- Volatile media include dynamic random access memory, which typically constitutes the main memory of the computer.
- Transmission media include coaxial cables, copper wire and fiber optics, including the wires that comprise a system bus coupled to the processor. Transmission media may include or convey acoustic waves, light waves and electromagnetic emissions, such as those generated during radio frequency (RF) and infrared (IR) data
- the machine-readable medium may include, but is not limited to, floppy diskettes, optical discs, CD-ROMs, magneto-optical disks, ROMs, RAMs, erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), magnetic or optical cards, flash memory, or other type of media/machine -readable medium suitable for storing electronic instructions.
- embodiments herein may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g. , modem or network connection).
- Various forms of computer readable media may be involved in carrying data (e.g. sequences of instructions) to a processor.
- data may be (i) delivered from RAM to a processor; (ii) carried over a wireless transmission medium; (iii) formatted and/or transmitted according to numerous formats, standards or protocols; and/or (iv) encrypted in any of a variety of ways well known in the art.
- a computer-readable medium can store (in any appropriate format) those program elements that are appropriate to perform the methods.
- main memory 506 is encoded with application(s) 522 that support(s) the functionality as discussed herein (an application 522 may be an application that provides some or all of the functionality of one or more of the mechanisms described herein).
- Application(s) 522 (and/or other resources as described herein) can be embodied as software code such as data and/or logic instructions (e.g., code stored in the memory or on another computer readable medium such as a disk) that supports processing functionality according to different embodiments described herein.
- processor(s) 504 accesses main memory 506 via the use of bus 502 in order to launch, run, execute, interpret or otherwise perform the logic instructions of the application(s) 522.
- Execution of application(s) 522 produces processing functionality of the service(s) or mechanism(s) related to the application(s).
- the process(es) 524 represents one or more portions of the application(s) 522 performing within or upon the processor(s) 504 in the computer system 500.
- the application 522 itself (i.e. , the un-executed or non-performing logic instructions and/or data).
- the application 522 may be stored on a computer readable medium (e.g., a repository) such as a disk or in an optical medium.
- the application 522 can also be stored in a memory type system such as in firmware, read only memory (ROM), or, as in this example, as executable code within the main memory 506 (e.g. , within Random Access Memory or RAM).
- ROM read only memory
- executable code within the main memory 506 e.g. , within Random Access Memory or RAM
- application 522 may also be stored in removable storage media 510, read-only memory 508, and/or mass storage device 512.
- 500 can include other processes and/or software and hardware components, such as an operating system that controls allocation and use of hardware resources.
- Embodiments herein may be provided as a computer program product, which may include a machine-readable medium having stored thereon instructions, which may be used to program a computer (or other electronic devices) to perform a process.
- machine-readable medium refers to any medium, a plurality of the same, or a combination of different media, which participate in providing data (e.g. , instructions, data structures) which may be read by a computer, a processor or a like device.
- Such a medium may take many forms, including but not limited to,
- Non-volatile media include, for example, optical or magnetic disks and other persistent memory.
- Volatile media include dynamic random access memory, which typically constitutes the main memory of the computer.
- Transmission media include coaxial cables, copper wire and fiber optics, including the wires that comprise a system bus coupled to the processor. Transmission media may include or convey acoustic waves, light waves and electromagnetic emissions, such as those generated during radio frequency (RF) and infrared (IR) data
- RF radio frequency
- IR infrared
- the machine-readable medium may include, but is not limited to, floppy diskettes, optical discs, CD-ROMs, magneto-optical disks, ROMs, RAMs, erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), magnetic or optical cards, flash memory, or other type of media/machine -readable medium suitable for storing electronic instructions.
- embodiments herein may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g. , modem or network connection).
- data may be (i) delivered from RAM to a processor; (ii) carried over a wireless transmission medium; (iii) formatted and/or transmitted according to numerous formats, standards or protocols; and/or (iv) encrypted in any of a variety of ways well known in the art.
- a computer-readable medium can store (in any appropriate format) those program elements that are appropriate to perform the methods.
- 700 can include other processes and/or software and hardware components, such as an operating system that controls allocation and use of hardware resources.
- embodiments of the present invention include various steps or operations. A variety of these steps may be performed by hardware components or may be embodied in machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor programmed with the instructions to perform the operations.
- module refers to a self-contained functional component, which can include hardware, software, firmware or any combination thereof.
- an apparatus may include a computer/computing device operable to perform some (but not necessarily all) of the described process.
- Embodiments of a computer-readable medium storing a program or data structure include a computer-readable medium storing a program that, when executed, can cause a processor to perform some (but not necessarily all) of the described process.
- the process may operate without any user intervention.
- the process includes some human intervention (e.g. , a step is performed by or with the assistance of a human).
- real time means near real time or sufficiently real time substantially real time. It should be appreciated that there are inherent delays in network-based and computer communication (e.g. , based on network traffic and distances), and these delays may cause delays in data reaching various components. Inherent delays in the system do not change the real-time nature of the data. In some cases, the term “real-time data” may refer to data obtained in sufficient time to make the data useful for its intended purpose. Although the term “real time” may be used here, it should be appreciated that the system is not limited by this term or by how much time is actually taken to perform any particular process.
- real time computation may refer to an online computation, i.e. , a computation that produces its answer(s) as data arrive, and generally keeps up with continuously arriving data.
- online computation is compared to an "offline” or "batch” computation.
- portion means some or all.
- a portion of X may include some of "X” or all of "X”.
- portion means some or all of the conversation.
- the phrase “at least some” means “one or more,” and includes the case of only one.
- the phrase “at least some ABCs” means “one or more ABCs”, and includes the case of only one ABC.
- the phrase “based on” means “based in part on” or “based, at least in part, on,” and is not exclusive.
- the phrase “based on factor X” means “based in part on factor X” or “based, at least in part, on factor X.”
- the phrase “based on X” does not mean “based only on X.”
- the phrase “distinct” means “at least partially distinct.” Unless specifically stated, distinct does not mean fully distinct. Thus, e.g., the phrase, "X is distinct from Y” means that "X is at least partially distinct from Y,” and does not mean that "X is fully distinct from Y.” Thus, as used herein, including in the claims, the phrase “X is distinct from Y” means that X differs from Y in at least some way.
- a list may include only one item, and, unless otherwise stated, a list of multiple items need not be ordered in any particular manner. A list may include duplicate items. For example, as used herein, the phrase "a list of XYZs" may include one or more "XYZs”.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Telephone Function (AREA)
Abstract
A computer-implemented music generation method includes: selecting one or more loop groups, each loop group comprising one or more music loop elements, wherein each loop element corresponds to a sound that can be rendered by a loop rendering device; simultaneously playing the selected two or more loop groups, wherein each particular loop group is played by repeatedly: selecting a loop element in the particular loop group; and playing the particular selected loop element. The method is operable to produce ringtones or alerts on computer devices, mobile phones, and smartphones.
Description
SYSTEMS, METHODS, AND DEVICES FOR GENERATION OF
NOTIFICATION SOUNDS
COPYRIGHT STATEMENT
[0001] This patent document contains material subject to copyright protection. The copyright owner has no objection to the reproduction of this patent document or any related materials in the files of the United States Patent and Trademark Office, but otherwise reserves all copyrights whatsoever.
RELATED APPLICATIONS
[0002] This application is related to and claims priority from U.S.
Provisional patent application no. 62/039,979, filed August 21, 2014, titled, "Systems, Methods, And Devices For Generation Of Notification Sounds," the entire contents of which are hereby fully incorporated herein by reference for all purposes.
FIELD OF THE INVENTION
[0003] This invention relates to sound generation, and, more
particularly, to automatic generation of notification sounds.
BACKGROUND & OVERVIEW
[0004] Getting someone's attention with sound can be done in many ways. Using loud sounds with many harmonics and strong resonant frequencies (e.g. , a car horn or bright bell) is an effective method. However, unless the need is "mission critical" (e.g. , a pilot about to land definitely needs to know that his landing gear have not been deployed), such methods often serve to annoy the user. Loud sounds can ruin a user experience, especially in high- frequency cases such as incoming email or message alerts, action
confirmations, and the like.
[0005] However, lowering the volume is not necessarily the solution. If a ringtone or other sound is played too quietly then it might blend into the background noise.
[0006] It is desirable to provide notification sounds that are not repetitious and can, at the same time, be associated with particular events.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] Other objects, features, and characteristics of the present invention as well as the methods of operation and functions of the related elements of structure, and the combination of parts and economies of manufacture, will become more apparent upon consideration of the following description and the appended claims with reference to the accompanying drawings, all of which form a part of this specification.
[0008] FIG. 1(a) depicts an overview of a device according to exemplary embodiments hereof;
[0009] FIG. 1(b) shows aspects of a data structure used by the device of
FIG. 1(a), according to exemplary embodiments hereof;
[0010] FIGS. 2(a)-2(b) show exemplary processing in the system of
FIG. 1(a), according to exemplary embodiments hereof;
[0011] FIG. 3 shows an example according to exemplary embodiments hereof;
[0012] FIG. 4 depicts an overview of a device according to exemplary embodiments hereof; and
[0013] FIG. 5 is a schematic diagram of a computer system.
DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EXEMPLARY
EMBODIMENTS
GLOSSARY AND ABBREVIATIONS
[0014] As used herein, unless used otherwise, the following terms or abbreviations have the following meanings:
[0015] MIDI means Musical Instrument Digital Interface;
[0016] PCM means pulse coded modulation; and
[0017] a "mechanism" refers to any device(s), process(es), routine(s), service(s), or combination thereof. A mechanism may be implemented in hardware, software, firmware, using a special-purpose device, or any
combination thereof. A mechanism may be integrated into a single device or it may be distributed over multiple devices. The various components of a mechanism may be co-located or distributed. The mechanism may be formed from other mechanisms. In general, as used herein, the term "mechanism" may thus be considered to be shorthand for the term device(s) and/or process(es) and/or service(s).
BACKGROUND
[0018] Humans tend to ignore repetition and respond to change. The inventor has realized that by changing a sound for an audio notification each time or while it plays, we can leverage our capacity to notice change while keeping overall sound pressure levels for a ringtone or other alert low.
[0019] As used herein an "audio notification" refers to any sound or combination of sounds that is/are used to try to notify a user of the occurrence or non-occurrence of some event. The event may be any event, including, e.g. , an incoming phone call, arrival of an email, a warning, a confirmation, or the like. An audio notification may be used alone or in conjunction with other notifications to the user. For example, an audio notification may be combined with a visual notification and/or a vibration notification. An audio notification may be rendered by one or more devices using general or special hardware on the device(s). An audio notification may be stored on one or more devices and/or generated, in whole or in part, on the fly, in substantially real time.
[0020] Currently mobile devices that play a notification for an incoming call play the same PCM data, synthesized sound or combination of the two. The present system relies on change rather than volume to get the user's attention.
[0021] In order to do this we need a system that plays back some number of sound files (e.g. , PCM data) or other files that contain parametric control data (e.g. MIDI controlling software sound synthesis) simultaneously as audio tracks that are then mixed and played at a physical output or saved to a file for later use. Each of these files may be organized into groups of files. An
implementation of this might contain groups of files with shared qualities, e.g., different notes that are fragments of a given chord, although this is not a requirement. Another implementation might have each group of sound files start with the same pattern each time, but are then followed by variations.
[0022] Systems, methods and devices are described herein that play a unique sound (e.g., ringtone), every time a notification needed (e.g., when an incoming call is received).
[0023] With these systems we can configure a ringtone or other alert, composed of a single audio stream or multiple audio streams playing simultaneously.
[0024] These audio streams may then change at a given rate along different axes (e.g., timbre, rhythm, amplitude, frequency, pitch, etc.) according to rulesets (e.g., play only certain notes, chords, chord-changes, always start with a certain configuration, etc.) that can be modulated by still other forms of device sensor data, local data or data accessed via an internet connection.
DESCRIPTION
[0025] As shown in FIG. 1(A), a device 100 according to exemplary embodiments hereof includes one or more loop rendering devices 102 that can render sounds based on information in one or more loops 104 stored on the device. The term "play" is also used herein to refer to the process of rendering a sound. The device may be (or may be incorporated into) any kind of device, including, e.g., a computer device, a mobile phone such as a smart phone or the like, etc.
[0026] The loops 104 comprise one or more loop groups, each loop group comprising one or more loop elements. In the exemplary systems depicted in FIGS. 1(a)- 1(b), the loops 104 includes k loop groups denoted Loop Group 1, Loop Group 2, Loop Group k.
[0027] Each loop group has one or more loop elements associated therewith. In the example of FIG. 1(a), Loop Group 1 has X loop elements,
Loop Group 2 has Y loop elements, ... and Loop Group K has Z loop elements associated therewith. It should be appreciated that there is no limit to the number of loop groups or to the number of loop elements within a loop group. The loop groups may, but need not, have the same number of loop elements. Thus, in the example given in FIG. 1(a), there is no requirement that X=Y=Z, although this may be the case.
[0028] The loop elements in a loop group may, but need not, have different lengths or durations. Each loop group has a length associated therewith, where the length of a given loop group is defined to be greater than or equal to the length of time (e.g., expressed in milliseconds) of the shortest loop within that group. In some cases the length associated with a loop group may be expressed in bars or beats with a tempo or as frames. Although each loop element may have a different length, in some presently preferred exemplary implementations all of the loop elements in each particular loop group have the same length as the other loop elements in that same loop group.
[0029] Each loop element corresponds to a particular sound or tone that can be rendered by the loop rendering device(s) 102. The sound in or corresponding to a loop element may be a pre-recorded sound (e.g., a digital file corresponding to a recording of a sound) or it may be or comprise a set of parameters that control a synthesis engine that outputs PCM data, e.g., MIDI data parametrically controlling a software synthesizer.
[0030] In some aspects a loop may be considered to be a sound file of length M (or, set of parameters that control a synthesis engine that outputs PCM data in real-time of length M). A preferred implementation is sound file that can be repeated ad infinitum with a seamless transition from the end of a loop to the beginning of the loop. Another implementation may comprise MIDI data parametrically controlling a software synthesizer whose output displays a similar result as the aforementioned sound file implementation. It should be appreciated, however, that these are merely examples. In general, a loop is a sound file or parametric control data of a given length, regardless of whether or not the beginning and end have a seamless transition.
[0031] Loop elements may be generated on the fly or made beforehand, e.g., with commercially available software (such as Ableton Live, Avid Pro- Tools, Apple Logic, etc.)
Loop Rendering
[0032] Device 100 includes a loop controller 106 that is constructed and adapted and operates to control selection of loop group elements and the manner in which loop groups are rendered by loop rendering device(s) 102. The loop controller 106 may be invoked when the device needs to render or provide a sound (e.g., a ringtone, an alert, or the like). Exemplary operation of the loop controller 106 is described in greater detail below with reference to the flowcharts in FIGS. 3(a)-3(b).
[0033] With reference to FIG. 2(a), when the device 100 needs to play or render a sound, the loop controller 106 first selects one or more loop groups (at 202) from which that sound is to be generated. Loop groups may be selected at random or they may be pre-assigned to certain events or
occurrences. For example, sets of one or more loop groups may be associated with various events (such as, e.g. , incoming telephone calls, incoming text messages, and so on) on the device. In some cases sets of one or more loop groups may be associated with combinations and people and events, thereby providing for customized ring tones for particular people.
[0034] Having selected one or more loop groups (at 202), the device then plays each of the selected loop groups (at 204). In presently preferred embodiments hereof multiple loop groups may be played simultaneously. As shown in FIG. 2(a), each of j selected loop groups (j≥l) are played at the same (or substantially the same) time (at 206).
[0035] An exemplary process of playing a particular loop group (e.g. , loop group k) is shown in the flowchart in FIG. 2(b), where first the next loop element from the group is selected (at 208) and then the selected loop element is played (at 210). This process is repeated while the loop group is to be played
and may stop when signaled by the device (e.g., when the device no longer needs to play the sound associated with the loop group).
[0036] Selection of the next loop element (at 208) may be random and/or rule based. As an example of a rule, in some cases, the first loop element in the loop group (Loopj- ) is always played first, after which the elements may be selected at random. In another example rule, the first loop element is played first and repeated every j selections for some number j, while the other loop elements may be randomly selected between selections of loop element 1. Although these examples describe rules that require or repeat the first loop element, it should be appreciated that any loop element(s) may be designated as required, and the first is just described here for convenience.
[0037] FIG. 3 shows example playback of loop elements according to exemplary embodiments hereof. In this example the loop controller 106 on device 100 selects loop groups 1, 2, and 7 (at 202) and then invokes the mechanism Play Selected Loop Group(s) (at 204) for each of these selected loop groups. Play Selected Loop Group for loop group 1 plays Loopj , Loopi 5, Loopi5, Loopi2, Loopi , Loopi 2. Play Selected Loop Group for loop group 2 plays Loop2 1, Loop2 7, Loop2 3; and Play Selected Loop Group for loop group 7 plays Loop71 followed by Loop74. It should be appreciated that the loop elements of the loop groups are each played at the same time.
[0038] As noted, the number of loops and bars in a loop can vary and the number of bars needs to be consistent between loop groups.
[0039] In some cases, in order to keep a consistent and identifiable experience for the initial playback of a sound (e.g., a ringtone), the initial randomized playback of loops within a loop group may be limited in its variation until certain parameters have been met (for example, within each loop group at least one loop with limited variation must complete playback before wider variation can take place).
[0040] Thus, in some aspects hereof, when the system receives a start message the first loop listed in each loop group will play. After an individual loop is finished a function (e.g., a random function) determines which loop is
to play next. The most basic version of this would be an equal-weighted function that selects one loop from a given loop group to play after the preceding loop has finished.
[0041] A system requires at least one loop group to function and two or more loop groups to develop more complex and evolved output.
[0042] In some cases a loop within a loop group can also play silence
(e.g., for PCM data, all bits showing "0" or a MIDI file containing no note data).
MODULATION FRAMEWORK
[0043] As described above, a loop group is played using some function
(e.g., a random function) that selects the loop elements to play. However, in some implementations the selection of loop groups and/or loop elements may be affected or modulated by other factors (e.g., static or dynamic factors).
[0044] Accordingly, in some exemplary embodiments hereof, as shown in FIG. 4, the loop controller mechanism 106' and/or the loop rendering 102' may be affected or influenced by one or more modulators 108.
[0045] Thus, e.g., the selection of a loop (or a loop group) by loop selector 106' may be affected by one or more factors (e.g. , values) provided by modulator(s) 108. Similarly, the rendering of a selected loop by loop rendering device(s) 102' may be affected by one or more factors (e.g., values) provided by modulator(s) 108.
[0046] Modulator(s) 108 may be used to select loop(s) based on static and/or dynamic information, and the information may be determined or derived from information external to the device, information from another device, or any other source. For example, a modulator 108 may provide a value based on one or more of: the time of day, day or week, date, current temperature, current weather, identity of device user, identity of incoming caller, identity of incoming message sender.
[0047] In some aspects hereof, the concept of modulation uses a so- called "source" and a so-called "target," where a source may be or comprise
any kind of information at any resolution of a static variable (e.g. , a given day of the week) or a time varying function (e.g., the temperature between two different times of the day). A source may also comprise a pseudorandom number generator.
[0048] A source may be mapped to a target using any kind of function, including a linear mapping and an exponential mapping. Thus, e.g., a source may map to a target in a manner such that any change in the source is associated with a change in the target, where the change may be linear, exponential or any other function. A source may be, an evenly weighted random function applied to some parameter within a given loop group (e.g. , volume) or individual loop (e.g., which loop within a loop group shall play first or after a previous loop has played).
[0049] A target may be any parameter of a system, loop group or loop, including, without limitation: volume, loop group number, loop number, cutoff frequency of a lowpass filter applied to individual loop group output or summed out output, etc., where the summed output refers the summed mix of each loop group displayed as (physical or software) system audio output.
[0050] Those of ordinary skill in the art will realize and appreciate, upon reading this description, that these are merely examples of possible sources and targets, and they are not intended to be in any way limiting.
[0051] It should also be appreciated that a single source may affect multiple targets and vice versa.
[0052] Various exemplary modulation functions/application are shown here:
Example 1:
[0053] Some random function (source) determines which loop within a loop group (target) plays. As used herein, "Some random function" may refer to a pseudorandom number generator that outputs random values over time. The function's distribution may be simple (e.g. Gaussian) or more complex
(e.g. a discrete-time Markov chain), and the system is not limited by the function's distribution.
Example 2:
[0054] Some random function with persistence (sources) determines the amplitude of the next loop (target) to play. As used herein, the term
"persistence" generally refers to a value or values sampled from the previous system, loop group, or loop's, parametric state e.g. the last value assigned to the amplitude of a given loop.
Example 3:
[0055] Some random function with external modulation (sources) affects some aspect of (target), where, as used herein "External modulation source" refers to variable or time varying function, besides a pseudorandom number generator that, supplies data that can be applied.
Example 4:
[0056] Some random function (source^ with external modulation source
(source2) with persistence (source3) affect some aspect of
(targeti)(target2)(target3).
Example 5:
[0057] Using feedback, some or all of the parametric values at a given time from a system, loop group or loop may be applied to the parametric control of values (same or different) of targets of the consecutive (or parallel, thus providing cross-modulation) system, loop group, or loop.
[0058] It should be appreciate that that above list of modulations is merely exemplary, and different and/or other (or no) modulations may be used in some cases.
COMPUTING
[0059] Various mechanisms including the sound rendering device(s)
102, loop controller 108 and sound selector 110 may be implemented as specialized devices and/or as programs operating on a computer system, as described herein. Programs that implement such methods (as well as other types of data) may be stored and transmitted using a variety of media (e.g. , computer readable media) in a number of manners. Hard- wired circuitry or custom hardware may be used in place of, or in combination with, some or all of the software instructions that can implement the processes of various embodiments. Thus, various combinations of hardware and software may be used instead of software only.
[0060] FIG. 5 is a schematic diagram of a computer system 500 upon which embodiments of the present disclosure may be implemented and carried out.
[0061] According to the present example, the computer system 500 includes a bus 502 (i.e. , interconnect), one or more processors 504, one or more communications ports 514, a main memory 506, removable storage media 510, read-only memory 508, and a mass storage 512. Communication port(s) 514 may be connected to one or more networks by way of which the computer system 500 may receive and/or transmit data.
[0062] As used herein, a "processor" means one or more
microprocessors, central processing units (CPUs), computing devices, microcontrollers, digital signal processors, or like devices or any combination thereof, regardless of their architecture. An apparatus that performs a process can include, e.g. , a processor and those devices such as input devices and output devices that are appropriate to perform the process.
[0063] Processor(s) 504 can be (or include) any known processor, such as, but not limited to, an Intel® Itanium® or Itanium 2® processor(s), AMD® Opteron® or Athlon MP® processor(s), or Motorola® lines of processors, and the like. Processor(s) may include one or more graphical processing units (GPUs) which may be on graphic cards or stand-alone graphic processors.
[0064] Communications port(s) 514 can be any of an RS-232 port for use with a modem based dial-up connection, a 10/100 Ethernet port, a Gigabit port using copper or fiber, or a USB port, and the like. Communications port(s) 514 may be chosen depending on a network such as a Local Area Network (LAN), a Wide Area Network (WAN), a CDN, or any network to which the computer system 500 connects. The computer system 500 may be in communication with peripheral devices (e.g. , display screen 516, input device(s) 518) via Input / Output (I/O) port 520. Some or all of the peripheral devices may be integrated into the computer system 500, and the input device(s) 518 may be integrated into the display screen 516 (e.g. , in the case of a touch screen).
[0065] Main memory 506 can be Random Access Memory (RAM), or any other dynamic storage device(s) commonly known in the art. Read-only memory 508 can be any static storage device(s) such as Programmable
Read-Only Memory (PROM) chips for storing static information such as instructions for processor(s) 504. Mass storage 512 can be used to store information and instructions. For example, hard disks such as the Adaptec® family of Small Computer Serial Interface (SCSI) drives, an optical disc, an array of disks such as Redundant Array of Independent Disks (RAID), such as the Adaptec® family of RAID drives, or any other mass storage devices may be used.
[0066] Bus 502 communicatively couples processor(s) 504 with the other memory, storage and communications blocks. Bus 502 can be a PCI / PCI-X, SCSI, a Universal Serial Bus (USB) based system bus (or other) depending on the storage devices used, and the like. Removable storage media 510 can be any kind of external hard-drives, floppy drives, IOMEGA® Zip Drives, Compact Disc - Read Only Memory (CD-ROM), Compact Disc - Re- Writable (CD-RW), Digital Versatile Disk - Read Only Memory
(DVD-ROM), etc.
[0067] Embodiments herein may be provided as one or more computer program products, which may include a machine-readable medium having
stored thereon instructions, which may be used to program a computer (or other electronic devices) to perform a process. As used herein, the term
"machine-readable medium" refers to any medium, a plurality of the same, or a combination of different media, which participate in providing data (e.g., instructions, data structures) which may be read by a computer, a processor or a like device. Such a medium may take many forms, including but not limited to, non- volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical or magnetic disks and other persistent memory. Volatile media include dynamic random access memory, which typically constitutes the main memory of the computer. Transmission media include coaxial cables, copper wire and fiber optics, including the wires that comprise a system bus coupled to the processor. Transmission media may include or convey acoustic waves, light waves and electromagnetic emissions, such as those generated during radio frequency (RF) and infrared (IR) data
communications.
[0068] The machine-readable medium may include, but is not limited to, floppy diskettes, optical discs, CD-ROMs, magneto-optical disks, ROMs, RAMs, erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), magnetic or optical cards, flash memory, or other type of media/machine -readable medium suitable for storing electronic instructions. Moreover, embodiments herein may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g. , modem or network connection).
[0069] Various forms of computer readable media may be involved in carrying data (e.g. sequences of instructions) to a processor. For example, data may be (i) delivered from RAM to a processor; (ii) carried over a wireless transmission medium; (iii) formatted and/or transmitted according to numerous formats, standards or protocols; and/or (iv) encrypted in any of a variety of ways well known in the art.
[0070] A computer-readable medium can store (in any appropriate format) those program elements that are appropriate to perform the methods.
[0071] As shown, main memory 506 is encoded with application(s) 522 that support(s) the functionality as discussed herein (an application 522 may be an application that provides some or all of the functionality of one or more of the mechanisms described herein). Application(s) 522 (and/or other resources as described herein) can be embodied as software code such as data and/or logic instructions (e.g., code stored in the memory or on another computer readable medium such as a disk) that supports processing functionality according to different embodiments described herein.
[0072] During operation of one embodiment, processor(s) 504 accesses main memory 506 via the use of bus 502 in order to launch, run, execute, interpret or otherwise perform the logic instructions of the application(s) 522. Execution of application(s) 522 produces processing functionality of the service(s) or mechanism(s) related to the application(s). In other words, the process(es) 524 represents one or more portions of the application(s) 522 performing within or upon the processor(s) 504 in the computer system 500.
[0073] It should be noted that, in addition to the process(es) 524 that carries(carry) out operations as discussed herein, other embodiments herein include the application 522 itself (i.e. , the un-executed or non-performing logic instructions and/or data). The application 522 may be stored on a computer readable medium (e.g., a repository) such as a disk or in an optical medium. According to other embodiments, the application 522 can also be stored in a memory type system such as in firmware, read only memory (ROM), or, as in this example, as executable code within the main memory 506 (e.g. , within Random Access Memory or RAM). For example, application 522 may also be stored in removable storage media 510, read-only memory 508, and/or mass storage device 512.
[0074] Those skilled in the art will understand that the computer system
500 can include other processes and/or software and hardware components,
such as an operating system that controls allocation and use of hardware resources.
[0075] Embodiments herein may be provided as a computer program product, which may include a machine-readable medium having stored thereon instructions, which may be used to program a computer (or other electronic devices) to perform a process. As used herein, the term "machine-readable medium" refers to any medium, a plurality of the same, or a combination of different media, which participate in providing data (e.g. , instructions, data structures) which may be read by a computer, a processor or a like device. Such a medium may take many forms, including but not limited to,
non- volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical or magnetic disks and other persistent memory. Volatile media include dynamic random access memory, which typically constitutes the main memory of the computer. Transmission media include coaxial cables, copper wire and fiber optics, including the wires that comprise a system bus coupled to the processor. Transmission media may include or convey acoustic waves, light waves and electromagnetic emissions, such as those generated during radio frequency (RF) and infrared (IR) data
communications.
[0076] The machine-readable medium may include, but is not limited to, floppy diskettes, optical discs, CD-ROMs, magneto-optical disks, ROMs, RAMs, erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), magnetic or optical cards, flash memory, or other type of media/machine -readable medium suitable for storing electronic instructions. Moreover, embodiments herein may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g. , modem or network connection).
[0077] Various forms of computer readable media may be involved in carrying data (e.g. sequences of instructions) to a processor. For example, data
may be (i) delivered from RAM to a processor; (ii) carried over a wireless transmission medium; (iii) formatted and/or transmitted according to numerous formats, standards or protocols; and/or (iv) encrypted in any of a variety of ways well known in the art.
[0078] A computer-readable medium can store (in any appropriate format) those program elements that are appropriate to perform the methods.
[0079] Those skilled in the art will understand that the computer system
700 can include other processes and/or software and hardware components, such as an operating system that controls allocation and use of hardware resources.
[0080] As discussed herein, embodiments of the present invention include various steps or operations. A variety of these steps may be performed by hardware components or may be embodied in machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor programmed with the instructions to perform the operations.
Alternatively, the steps may be performed by a combination of hardware, software, and/or firmware. The term "module" refers to a self-contained functional component, which can include hardware, software, firmware or any combination thereof.
[0081] One of ordinary skill in the art will readily appreciate and understand, upon reading this description, that embodiments of an apparatus may include a computer/computing device operable to perform some (but not necessarily all) of the described process.
[0082] Embodiments of a computer-readable medium storing a program or data structure include a computer-readable medium storing a program that, when executed, can cause a processor to perform some (but not necessarily all) of the described process.
[0083] Where a process is described herein, those of skill in the art will appreciate that the process may operate without any user intervention. In another embodiment, the process includes some human intervention (e.g. , a step is performed by or with the assistance of a human).
Real time
[0084] Those of ordinary skill in the art will realize and understand, upon reading this description, that, as used herein, the term "real time" means near real time or sufficiently real time substantially real time. It should be appreciated that there are inherent delays in network-based and computer communication (e.g. , based on network traffic and distances), and these delays may cause delays in data reaching various components. Inherent delays in the system do not change the real-time nature of the data. In some cases, the term "real-time data" may refer to data obtained in sufficient time to make the data useful for its intended purpose. Although the term "real time" may be used here, it should be appreciated that the system is not limited by this term or by how much time is actually taken to perform any particular process. In some cases, real time computation may refer to an online computation, i.e. , a computation that produces its answer(s) as data arrive, and generally keeps up with continuously arriving data. The term "online" computation is compared to an "offline" or "batch" computation.
[0085] Although many of the examples presented herein involve specific combinations of method acts or system elements, it should be understood that those acts and those elements may be combined in other ways to accomplish the same objectives. With regard to flowcharts, additional and fewer steps may be taken, and the steps as shown may be combined or further refined to achieve the methods described herein. Acts, elements and features discussed only in connection with one embodiment are not intended to be excluded from a similar role in other embodiments.
[0086] As used herein, whether in the written description or the claims,
"plurality" means two or more.
[0087] As used herein, whether in the written description or the claims, the terms "comprising", "including", "having", "containing", "involving", and the like are to be understood to be open-ended, that is, to mean including but not limited to. Only the transitional phrases "consisting of and "consisting
essentially of, respectively, are closed or semi-closed transitional phrases with respect to claims.
[0088] As used herein, "and/or" means that the listed items are alternatives, but the alternatives also include any combination of the listed items.
[0089] As used in this description, the term "portion" means some or all.
So, for example, "A portion of X" may include some of "X" or all of "X". In the context of a conversation, the term "portion" means some or all of the conversation.
[0090] As used herein, including in the claims, the phrase "at least some" means "one or more," and includes the case of only one. Thus, e.g., the phrase "at least some ABCs" means "one or more ABCs", and includes the case of only one ABC.
[0091] As used herein, including in the claims, the phrase "based on" means "based in part on" or "based, at least in part, on," and is not exclusive. Thus, e.g., the phrase "based on factor X" means "based in part on factor X" or "based, at least in part, on factor X." Unless specifically stated by use of the word "only", the phrase "based on X" does not mean "based only on X."
[0092] As used herein, including in the claims, the phrase "using" means
"using at least," and is not exclusive. Thus, e.g., the phrase "using X" means "using at least X." Unless specifically stated by use of the word "only", the phrase "using X" does not mean "using only X."
[0093] In general, as used herein, including in the claims, unless the word "only" is specifically used in a phrase, it should not be read into that phrase.
[0094] As used herein, including in the claims, the phrase "distinct" means "at least partially distinct." Unless specifically stated, distinct does not mean fully distinct. Thus, e.g., the phrase, "X is distinct from Y" means that "X is at least partially distinct from Y," and does not mean that "X is fully distinct from Y." Thus, as used herein, including in the claims, the phrase "X is distinct from Y" means that X differs from Y in at least some way.
[0095] As used herein, including in the claims, a list may include only one item, and, unless otherwise stated, a list of multiple items need not be ordered in any particular manner. A list may include duplicate items. For example, as used herein, the phrase "a list of XYZs" may include one or more "XYZs".
[0096] It should be appreciated that the terms "first", "second", "third," and so on, if used in the claims, are used to distinguish or identify, and not to show a serial or numerical limitation. Similarly, the use of letter or numerical labels (such as "(a)", "(b)", and the like) are used to help distinguish and / or identify, and not to show any serial or numerical limitation or ordering.
Specifically, use of ordinal terms such as "first", "second", "third", etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed, but are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term) to distinguish the claim elements.
[0097] The foregoing is merely illustrative and not limiting, having been presented by way of example only. Although examples have been shown and described, it will be apparent to those having ordinary skill in the art that changes, modifications, and/or alterations may be made.
[0098] Thus are provided systems, methods, and devices for producing audio notifications, and, more specifically, systems, methods, and devices that provide and support evolving/changing notifications that are sensitive to their environment, users' preferences and other parameters.
[0099] There are so many things asking for our attention today, and this puts users under a heavy cognitive load. Mobile devices (phones and the like) play static ringtones, unvarying except perhaps for volume or intensity and this has been the case since phones have been ringing. Prior systems rely on volume or intensity of notifications to get users' attention. Embodiments hereof do not necessarily rely on volume to get users' attention. Other factors (e.g.,
external modulation sources such as time of day, acoustic environment, etc.) and internal modulation sources (e.g., loop playback algorithms) may be used to control playback of sounds (e.g., PCM data or parametrically controlled synthesizer data), thereby providing smarter, relevant and more human- centered notifications.
[00100] While the invention has been described in connection with what is presently considered to be the most practical and preferred embodiments, it is to be understood that the invention is not to be limited to the disclosed embodiment, but on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.
Claims
1. A computer-implemented method, implemented by hardware in combination with software, the method comprising:
(A) selecting one or more loop groups, each loop group comprising one or more loop elements, wherein each loop element corresponds to a sound that can be rendered by a loop rendering device;
(B) simultaneously playing the selected one or more loop groups, wherein each particular loop group is played by repeatedly:
(B)(1) selecting a loop element in the particular loop group; and (B)(2) playing the particular loop element selected in (B)(1).
2. The method of claim 1 wherein the selecting in (A) comprises selecting more than one loop group.
3. The method of claims 1 or 2 wherein act (B) is repeated.
4. The method any one of the preceding claims wherein the sound in or corresponding to at least one loop element comprise a pre-recorded sound.
5. The method any one of the preceding claims wherein the sound in or corresponding to at least one loop element comprise a set of parameters that control a synthesis engine that outputs pulse coded modulation (PCM) data.
6. The method of claim 5 wherein the PCM data comprise MIDI (Musical Instrument Digital Interface) data for parametrically controlling a software synthesizer.
7. The method of any one of the preceding claims wherein at least one loop group comprises multiple elements.
8. The method of any one of the preceding claims wherein the selecting of the one or more loop groups in (A) is based on a modulation function of one or more factors.
9. The method of any one of the preceding claims wherein the selecting of a loop element in (B)(1) is based on a modulation function of one or more factors.
10. The method of any one of the preceding claims wherein the playing of the particular loop element in (B)(2) is based on a modulation function of one or more factors.
11. The method of any one of claims 8-10 wherein the one or more factors comprise a static factor.
10. The method of any one of claims 8-10 wherein the one or more factors comprise a dynamic factor.
11. The method of any one of the preceding claims wherein the selecting of a loop element in the particular loop group in (B)(1) is based on a random function application to a parameter within the particular loop group.
12. The method of any one of the preceding claims wherein the selecting in (A) is performed offline.
13. The method of any one of the preceding claims wherein the selecting in (A) is performed when a notification sound is needed.
14. The method of claim 13 wherein the selecting in (A) is performed in substantially real-time when said notification sound is needed.
15. The method any one of the preceding claims wherein said method is implemented on a device.
16. The method of claim 15 wherein said device is selected from the group comprising: computer devices, mobile phones, and smart phones.
17. The method of claim 15 or 16 wherein said selected one or more loop groups are simultaneously played in (B) to produce a ringtone or an alert.
18. A system comprising:
(a) hardware including memory and at least one processor, and
(b) one or more mechanisms running on said hardware, wherein said one or more mechanisms are configured to:
perform the method of any one of claims 1-17.
19. A computer program product having computer readable instructions stored on non-transitory computer readable media, the computer readable instructions including instructions for implementing a computer- implemented method, said method operable on one or more devices comprising hardware including memory and at least one processor and running one or more services on said hardware, said method comprising: the method of any one of claims 1-17.
20. A device comprising:
(a) hardware including memory and at least one processor, and
(b) one or more mechanisms running on said hardware, wherein said one or more mechanisms are configured to:
perform the method of any one of claims 1-17.
21. The device of claim 20 wherein said device is selected from the group comprising: computer devices, mobile phones, and smart phones.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462039979P | 2014-08-21 | 2014-08-21 | |
US62/039,979 | 2014-08-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016026755A1 true WO2016026755A1 (en) | 2016-02-25 |
Family
ID=53887108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2015/068589 WO2016026755A1 (en) | 2014-08-21 | 2015-08-12 | Systems, methods, and devices for generation of notification sounds |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2016026755A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019195006A1 (en) * | 2018-04-06 | 2019-10-10 | Microsoft Technology Licensing, Llc | Computationally efficient language based user interface event sound selection |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003036613A1 (en) * | 2001-10-19 | 2003-05-01 | Sony Ericsson Mobile Communications Ab | Midi composer |
CN101231844A (en) * | 2008-02-28 | 2008-07-30 | 北京中星微电子有限公司 | System and method of mobile phone ring mixing |
WO2010041147A2 (en) * | 2008-10-09 | 2010-04-15 | Futureacoustic | A music or sound generation system |
-
2015
- 2015-08-12 WO PCT/EP2015/068589 patent/WO2016026755A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003036613A1 (en) * | 2001-10-19 | 2003-05-01 | Sony Ericsson Mobile Communications Ab | Midi composer |
CN101231844A (en) * | 2008-02-28 | 2008-07-30 | 北京中星微电子有限公司 | System and method of mobile phone ring mixing |
WO2010041147A2 (en) * | 2008-10-09 | 2010-04-15 | Futureacoustic | A music or sound generation system |
Non-Patent Citations (3)
Title |
---|
ANONYMOUS: "Loop song / album playback in iTunes: Repeat Off, Repeat One, Repeat All", 25 May 2013 (2013-05-25), XP055216611, Retrieved from the Internet <URL:https://web.archive.org/web/20130525170021/https://ipodiphoneitunestutorials.com/iTunesTutorials/loopSongsPlaybackRepeatAllOneOff.php> [retrieved on 20150928] * |
APPLE: "GarageBand 3 Getting Started", 11 September 2011 (2011-09-11), pages 1 - 98, XP007921902, Retrieved from the Internet <URL:https://web.archive.org/web/*/manuals.info.apple.com/en/GarageBand_3_getting_Started.pdf> * |
BO-XUE LU: "System and method of mobile phone ring mixing", CN101231844, 30 July 2008 (2008-07-30), pages 1 - 14, XP055215956, Retrieved from the Internet <URL:https://worldwide.espacenet.com/searchResults?DB=EPODOC&compact=false&query=CN101231844B> [retrieved on 20150924] * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019195006A1 (en) * | 2018-04-06 | 2019-10-10 | Microsoft Technology Licensing, Llc | Computationally efficient language based user interface event sound selection |
US10803843B2 (en) | 2018-04-06 | 2020-10-13 | Microsoft Technology Licensing, Llc | Computationally efficient language based user interface event sound selection |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9672000B2 (en) | Method and apparatus for generating an audio notification file | |
JP6659899B2 (en) | Vibration method, mobile terminal, and computer-readable storage medium | |
US10104226B2 (en) | System and method for providing particularized audible alerts | |
JPH10215321A (en) | Mobile communication system, mobile station and method for programming call tone of telephone set | |
KR20230052298A (en) | Comparative training on music generators | |
US20050190903A1 (en) | Text-to-speech and midi ringing tone for communications devices | |
JP2002156975A (en) | Sound generating device and method | |
JP4727346B2 (en) | Ringtone adjusted on the device | |
JP2011504713A (en) | System and method for mixing audio with ring tone data | |
WO2016026755A1 (en) | Systems, methods, and devices for generation of notification sounds | |
JP2000267660A (en) | Melody sound generator | |
US6928410B1 (en) | Method and apparatus for musical modification of speech signal | |
WO2017045696A1 (en) | Systems, methods, and devices for generation of notification sounds | |
US8897840B1 (en) | Generating a wireless device ringtone | |
CN116506543A (en) | Battery cover color changing method and electronic equipment | |
CN112685000B (en) | Audio processing method, device, computer equipment and storage medium | |
KR100595672B1 (en) | Bell sound generation apparatus and method for mobile communication terminal | |
Valsamakis et al. | Iterative sound synthesis by means of cross-coupled digital oscillators | |
EP2431864B1 (en) | Method and apparatus for generating an audio notification file | |
JP2007266803A (en) | Communication apparatus with ringtone melody function | |
US20230230611A1 (en) | Method and device for managing audio based on spectrogram | |
JPH10190781A (en) | Portable terminal with original call termination tone generation function | |
KR20020060977A (en) | Sound source circuit and telephone terminal comprising thereof | |
US10348880B2 (en) | System and method for generating audio data | |
JP3408465B2 (en) | Mobile terminal device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15753000 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 12.06.2017) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15753000 Country of ref document: EP Kind code of ref document: A1 |