Instant-on one-button aural ambiance modification and enhancement
10255029 ยท 2019-04-09
Inventors
Cpc classification
H04R2420/09
ELECTRICITY
G06F3/165
PHYSICS
G10H2250/411
PHYSICS
G06F3/162
PHYSICS
G10H7/002
PHYSICS
G10H7/00
PHYSICS
H04R2201/021
ELECTRICITY
G10H2210/301
PHYSICS
International classification
H04R1/20
ELECTRICITY
G11B7/00
PHYSICS
Abstract
An instant-on nothing-to-download soundscaping device that provides natural, atonal sounds such as the rolling surf of the ocean, running streams, gurgling brooks, rain, thunder, wind, crowd sounds, et al is provided.
Claims
1. A sound playback device, comprising: a playback circuit, including: a processor; a permanent storage medium; at least one sound file permanently stored on said permanent storage medium at device manufacture; program instructions, which when executed on said processor, playback the contents of said at least one sound file instantly responsive to a user initiating power to the sound playback device; a power supply for the playback circuit; and at least one sound reproduction element for emitting sound produced responsive to playback of said at least one sound file; wherein said program instructions, when executed on said processor, responsive to said at least one sound file being played, cause two of said at least one sound reproduction element wired one hundred and eighty degrees out-of-phase with each other to emit sound in a dipole pattern having two null zones, the two null zones being perpendicular to an axis common to the two sound reproduction elements.
2. A sound playback device, comprising: a playback circuit, including: a processor; a permanent storage medium; at least one sound file permanently stored on said permanent storage medium at device manufacture; program instructions, which when executed on said processor, playback the contents of said at least one sound file instantly responsive to a user initiating power to the sound playback device; a power supply for the playback circuit; and at least one sound reproduction element for emitting sound produced responsive to playback of said at least one sound file; wherein multiple sound files of said at least one sound file are mixed together by said processor into one resultant reproducible sound, the resultant reproducible sound being emitted by three of said at least one sound reproduction element wired in-phase with each other, thereby creating an omnidirectional sound pattern.
3. The sound playback device of claim 1 or 2, further comprising a switch for said power supply for controlling power to said device.
4. The sound playback device of claims 1 or 2, further comprising a plurality of feet.
5. The sound playback device of claim 1 or 2, further comprising a PWM (pulse width modulation) circuit that reads at least one sound value from said at least one sound file and varies an output sound waveform pulse width according to the at least one sound value.
6. The sound playback device of claim 1 or 2, further comprising a DAC (digital-to-analog converter) circuit that reads at least one sound value from said at least one sound file and varies an output sound waveform pulse width according to the at least one sound value.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Various other objects, features, and attendant advantages of the present device will become more fully appreciated as the same becomes better understood when considered in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the several views, and wherein:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
DEFINITIONS
(12) ADC shall be defined as any analog-to-digital converter, as that generally-accepted term is known in the industry.
(13) CPU shall be defined as either a microprocessor, or a microcontroller, or a programmable logic controller, or as some combination of one or more of the above-listed components in a configuration that will run software program instructions.
(14) DAC shall be defined as the industry-standard term that refers to any electronic circuit that functions as a digital-to-analog converter, regardless of how said circuit functions.
(15) Digital Converter Circuit shall be defined as any electronic circuit, whether a PWM or a DAC or any other electronic circuit, whether a circuit that is a part of another device such as a processor (built-in) or a circuit that is contained in a separate device (outboard), that converts digital data values to a pulse-width-modulated waveform or alternating voltage waveform that can be routed to a sound reproduction element (defined below) and listened to.
(16) Disk shall be defined as the solid-state disk drive of any form factor, including microSD cards, SD cards, compact flash cards, solid-state disk drives et al, that is mounted on the printed circuit board and thus included within the device.
(17) EEPROM shall be defined as any memory storage device that uses electronically erasable programmable read-only memory to store its contents after power has been removed.
(18) Flash shall be defined as any memory storage device that uses flash memory to store its contents after power has been removed.
(19) Non-volatile memory shall refer to any memory device that retains its contents after power has been removed, including but not limited to disk, Flash and EEPROM.
(20) PWM shall be defined as the industry-standard term pulse width modulation, a method of converting a fixed voltage into a variable voltage by causing the fixed incoming voltage to switch on and off many thousands of times a second with varying pulse width.
(21) Read from disk shall be defined as the combination of software commands that initiate the read command to the disk and wait for it to complete.
(22) Read from EEPROM shall be defined as the combination of software commands that initiate the read command to EEPROM and wait for it to complete.
(23) Sound Value shall be defined as an 8-bit to 16-bit value that is obtained from the sound file.
(24) Sound file shall be defined as any of the industry-standard sound file formats that are either non-encoded or encoded with a public-domain copyright; e.g., way, orb, etc.
(25) Sound reproduction element shall be defined as either: a speaker; and a transducer; and any other electrical/electronic component that converts electrical energy into audible sound pressure waves; and as some combination of one or more of the above-listed components in a configuration that will convert electrical energy into audible sound pressure waves.
(26) Vendor shall be defined as any manufacturer of CPU devices.
(27) Write to EEPROM shall be defined as the combination of software commands that initiate the write command to EEPROM and wait for it to complete.
DETAILED DESCRIPTION
Instant-on One-Button Aural Ambiance Modification and Enhancement
(28) An instant-on nothing-to-download soundscaping device that provides natural sounds such as the rolling surf of the ocean, running streams, gurgling brooks, rain, thunder, wind, crowd sounds, et al is provided. A detailed description of the device is provided herein.
(29) In cooperation with the attached drawings, the technical contents and detailed description of the present device are described hereinafter according to a number of embodiments, but should not be used to limit its executing scope. Any equivalent variation and modification made according to appended claims is all covered by the claims of the present device.
(30) In
(31) Playback of natural sounds is initiated after the power-on button 110 on the front cover 101 which is affixed to the electronics printed circuit board 103 is pressed causing power to flow from the internal rechargeable battery 105 to the circuit board 103 which causes the CPU to begin its self-test process and after this process completes, which usually takes less than a millisecond, the CPU begins executing the software program (the program) stored in non-volatile memory as further outlined below and in
(32) As the program instructions endlessly loop the sound file, first the program determines the starting address of the disk sound file then obtains by reading from disk the Sound Value located at the starting address of the sound file then the program determines the ending address of the sound file then obtains by reading from EEPROM the disk address of the last-played Sound Value in the sound file which is set when: (a) the device is manufactured, in which case the code is preset during manufacture to the address of the first Sound Value in the sound file; and (b) during the program code processing as further defined below. This last-played Sound Value address is incremented using a program function (subroutine) that increments the disk address and resets it to the starting disk address if the incremented disk address is a larger value than the ending disk address, thus supporting the endlessly looping feature. The program function that contains the logic just detailed is further detailed in
(33) After the above steps are completed the program code execution enters an infinite loop whose function is detailed herein. Once the Sound Value from the sound file has been obtained either initially as outlined above or iteratively as outlined herein the program code moves the Sound Value to the Digital Converter Circuit device for reproduction as further detailed below in
(34) In the case of pulse-width modulation (PWM), the output pulse width specified by the value of the Sound Value is calculated as follows:
railVoltage*(Sound Value/PWM_range)
where: railVoltage=the maximum voltage from the power supply rail; Sound Value=the Sound Value just moved to the PWM; and PWM_range=the maximum value (bit depth) that can be used in the PWM
(35) The PWM generates a variable-width voltage output from the Sound Value for a time slice (period) of 1/22,050 second in the case of sound files that have been sampled at 22.050 kHz or for a period of 1/44,100 second in the case of sound files that have been sampled at 44.1 kHz. If the Sound Value obtained has a sign bit, the sign bit should be removed, as the PWM can recreate only positive voltage pulses and may interpret the sign bit as a data bit value. Further, as each time slice can have a different Sound Value, each time slice can thus have a differing pulse width output of railVoltage, which approixmates an alternating current waveform, albeit one-sided (varying positive voltage values only). The output waveform more closely resembles single-sideband (SSB) waveforms, which are comprised of either the positive half or the negative half of alternating current waveforms.
(36) In the case of DACs, the output voltage specified by the value of the Sound Value is calculated as follows:
railVoltage*(Sound Value/DAC_range)
where: railVoltag=the maximum voltages from the power supply rail; Sound Value=the Sound Value just moved to the DAC; and DAC_range=the maximum value (bit depth) that can be used in the DAC
(37) The DAC generates a positive or negative variable-voltage output from the Sound Value for a time slice (period) of 1/22,050 second in the case of sound files that have been sampled at 22.050 kHz or for a period of 1/44,100 second in the case of sound files that have been sampled at 44.1 kHz. The Sound Value fed into the DAC should not have the sign bit removed, as the DAC can recreate positive and negative voltage pulses. As each time slice can have a different Sound Value, each time slice can thus have a differing pulse voltage, whether positive or negative, which recreates an alternating current waveform.
(38) Regardless of the equipment used, the resultant sounds emanating from the single sound reproduction element form an omnidirectional pattern.
(39) In
(40) In embodiments, the device can contain multiple sound files and multiple volume controls in which case the device simultaneously reads the next Sound Value to be played from each sound file and mixes them according to the volume settings chosen by the user before moving the mixed Sound Value to the Digital Converter Circuit for playback as further detailed below in
(41) In
(42)
(43) Note that the dipole sound radiation pattern shown in
(44) In
(45) The program code then begins an infinite execution loop when the program code starts a 21.050 kHz or 42.100 kHz timer interrupt to limit the amount of time per Sound Value played. The exact value of the frequency of the timer interrupt must match the sampling rate that was used when the sound file was recorded to ensure accurate playback. The 21.050 kHz and 42.100 kHz sampling rates are typical industry-standard sampling rates, but any rate can be used, subject to the processor:non-volatile storage access timing considerations explained herein.
(46) The program code begins the loop by moving the Sound Value retrieved in 504 to the Digital Converter Circuit so that it can begin generating an output pulse, the data contents of the Sound Value in effect limiting the pulse width. The program code then calculates the address of the next Sound Value to be retrieved from the Sound Value file that is playing as further outlined in
(47) The key requirement for the CPU is that it is able to complete a read from disk in the amount of time of each 21.050 kHz or 42.100 kHz time slice. A 21.050 kHz time slice provides 47.6 microseconds in which to complete the read from disk; a 42.100 kHz time slice provides 23.8 microseconds in which to complete the read from disk. There are many different CPU vendors and many different CPU models with varying performance characteristics and these are quite temporal as CPU vendors are in a constant state of product development where they are creating new CPUs that are faster and use less power, so specifying a CPU vendor or model would be pointless as in any event the specifications would be out-of-date and thus useless in the definitions herein. The needs of the CPU are the ability to satisfy the code functionality as described above within the 23.8 or 47.6 microsecond periods explained above, or the sound reproduction will suffer.
(48) In
(49) In
(50) In embodiments, the PWM sub-component 712 of the CPU 706 is replaced by an outboard DAC. The function of the of the components is equivalent, with the limitations as previously outlined in the dicussion of
(51) In
(52) The mixing of the multiple Sound Values can be accomplished by any number of methods, each of which may have it's own embodiment. The mixing technique preferred creates no additional harmonic distortion but requires an adjustment of the master volume control 812. Specifically, using the preferred mixing technique, as volume increases in one or more sounds being mixed the master volume control must be lowered or an overall increase in volume may result. This is an expected outcome of the following mixing process:
Mixed Sound Value=(vol1+vol2 . . . voln)/n
where: vol1 is the Sound Value value of source 1 times the setting for volume control 1 vol2 is the Sound Value value of source 2 times the setting for volume control 2 voln is the Sound Value value of source n times the setting for volume control n n is the number of input sources
(53) The value of the each volume control's setting is expressed as a decimal percentage of the maximum; e.g., if the bit depth of the ADC for the volume control is 10, the maximum value (volume control turned fully clockwise) is 2^10, which is 1024. Thus a volume control setting of 512 means one-half (512/1024=0.500), 256 means one-quarter (256/1024=0.250), etc.
(54) The Sound Values can vary between 0 and max, where max is the highest number that can be stored by the sampling technique used. If the sampling technique is 16-bit, then 2^16=65,536, and the Sound Values can vary between 0 and 65,536.
(55) The Sound Values, when added together, can exceed the maximum bit depth of the recording, which will create clipping. Clipping, in digital signal processing circuits, is when the maximum voltage exceeds that which can be reproduced. If the five input Sound Values have values of, for example, 59224, 55736, 58918, 61003, and 59965, then they sum to 294846. 294846 is far higher than the 65,536 maximum value of a 16-bit DAC, so the device scales the sum by averaging it over the number of input sources (in this example, 5) using integer math which rounds down to arrive at the value (in this example) of 58969, which is within the 65,536 limit and thus avoids clipping.
(56) Regardless of the precision of the ADC's and the sampled sound file, the mixed result is scaled to match the Data Converter Circuit:
Output Sound Value=(Mixed Sound Value/encoding_bit_depth max value)*Data Converter Circuit max value
(57) Thus if an embodiment has a 16-bit sampled sound file, the encoding_bit_depth max value of the input is 65535 (65535 is 2^16), and if the embodiment has a 10-bit Data Converter Circuit, the max value that the Output Sound Value may have is 1024 (1024 is 2^10), and if the resultant Mixed Sound Value is the 60 k value as shown above, we get:
Output Sound Value=(60000/65536)*1024=937 (integer math, rounded down)
(58) Mixing techniques known in the art include no-scaling, which replicates the above process but does not scale the vol1+vol2 . . . +voln algorithm, and A+BAB. No-scaling is fine for samples that have large digital headroom; i.e., samples that never come close to the max value of the sampling technique, however, the signal-to-noise ratio in such samples can be low, and summing them without scaling them raises the noise level. A+BAB may work fine on some audio samples but introduces a ring-modulation type of distortion that can create spurious transient output values which have little relationship to the input Sound Value and thus are undesirable.
(59) In
(60) The program code then begins an infinite execution loop when the program code starts a 21 kHz or 42 kHz timer interrupt to limit the amount of time per Sound Value played. The program code begins the loop by moving the Sound Values retrieved in 904 to a mixing Sound Value, each Sound Value retrieved in 904 is added to the mixing Sound Value in a weighted manner based upon their relative volume control settings 906 and as described above. When the Sound Values retrieved in 904 are all moved to the mixed Sound Value the mixed Sound Value is moved to the Digital Converter Circuit 907 so that it can begin generating an output pulse, the data contents of the Mixed Sound Value in effect limiting the pulse width. The program code then increments the address of each Sound Value in each file that is playing as further outlined in
(61)
(62) While the foregoing written description enables one of ordinary skill to make and use a device as described, those of ordinary skill will understand and appreciate the existence of variations, combinations, and equivalents of the specific embodiments, methods, and examples herein. The specification described here should therefore not be limited by the above described embodiments, methods, and examples, but by all embodiments and methods within the scope and spirit of the claims.