Method, device and equipment for generating vibration description file and readable storage medium
Patent Information
- Application Number
- CN202110668283.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-05-20
- Filing Date
- 2021-06-16
- Publication Date
- 2026-08-18
- Estimated Expiration
- 2041-06-16
AI Technical Summary
[0004]本申请提供了一种振动描述文件的生成方法、装置、设备及可读存储介质,目的在于解决如何生成振动描述文件的问题
Smart Images

Figure CN115374062B_ABST
Abstract
Description
[0001] This application claims priority to Chinese Patent Application No. 202110553961.5, filed on May 20, 2021, entitled “Method, Apparatus, Device and Readable Storage Medium for Generating Vibration Description Files”, the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application relates to the field of electronic information, and in particular to a method, apparatus, device and readable storage medium for generating vibration description files. Background Technology
[0003] Currently, linear motors can be broadly classified into X-axis linear motors and Z-axis linear motors based on their stroke direction. Different types of linear motors require different control methods. In existing technologies, technicians manually write code to create vibration description files, which are then used to control the linear motor. Summary of the Invention
[0004] This application provides a method, apparatus, device, and readable storage medium for generating vibration description files, with the aim of solving the problem of how to generate vibration description files.
[0005] To achieve the above objectives, this application provides the following technical solution:
[0006] The first aspect of this application provides a method for generating a vibration description file, applied to an electronic device including a linear motor. The method includes the following steps: the electronic device presents a first interface displaying an acquired waveform; the first interface acquires and responds to an adjustment command for the waveform; and generates a vibration description file. Compared with methods that obtain vibration description files through programming, this method has higher efficiency and a lower technical threshold.
[0007] Optionally, the waveform acquisition process includes: generating the waveform based on the vibration characteristics of the application; or selecting a waveform from a pre-configured scene vibration waveform as the waveform; or receiving the waveform from an external source; or calling a pre-configured waveform as a template. Regardless of the method used to provide the waveform, it avoids the need for users to design waveforms from scratch, thus greatly facilitating users and significantly lowering the technical threshold.
[0008] Optionally, the step of generating a vibration description file in response to the adjustment command includes: generating a dynamic description file in response to the adjustment command for the waveform received from the external source, wherein the dynamic description file is used to control the vibration of the linear motor according to the vibration parameters in the dynamic description file if an interruption event occurs, so as to reduce the interference of vibration on the interruption event.
[0009] Optionally, the step of generating a vibration description file in response to the adjustment command further includes: generating a waveform based on the vibration characteristics of the application; or, generating a static description file from the adjustment command of a waveform selected from pre-configured scene vibration waveforms, wherein the static description file is used to control the vibration of the linear motor according to the vibration parameters in the static description file in the absence of the interruption event.
[0010] Optionally, the types of vibration parameters indicated by the dynamic description file are a subset of the types of vibration parameters indicated by the static description file, in order to reduce the generation cost of the dynamic description file.
[0011] Optionally, responding to the adjustment command and generating a vibration description file includes: responding to the adjustment command for the waveform on the interactive interface, displaying the adjusted waveform; and generating a vibration description file for the adjusted waveform. The application of the interactive interface can further improve the efficiency of generating vibration description files and provides a better user experience.
[0012] Optionally, the response to the waveform adjustment command in the interactive interface to generate the adjusted waveform includes: responding to the operation command of a preset adjustment point on the waveform displayed in the interactive interface, displaying the adjustment point on the waveform; and responding to the drag command of the adjustment point in the first vibration parameter adjustment mode, displaying the waveform after the first vibration parameter adjustment, where the first vibration parameter includes amplitude and / or frequency. The operation of the adjustment point is easy to implement and can improve the convenience of user operation.
[0013] Optionally, the waveform includes a steady-state waveform; the first vibration parameter further includes a time parameter; the response to a drag command on the adjustment point in the first vibration parameter adjustment mode to display the waveform after the first vibration parameter adjustment includes: responding to a drag command on the time axis on the adjustment point in the time adjustment mode to display the waveform after the time parameter is adjusted.
[0014] Optionally, responding to the waveform adjustment command in the interactive interface and displaying the adjusted waveform includes: responding to the drag command of the waveform displayed in the interactive interface and displaying the waveform after adjusting the time parameter.
[0015] Optionally, the interface may also display indication information corresponding to the value of the adjusted parameter. This indication information makes the value of the adjusted parameter more intuitive, thus improving the user experience.
[0016] Optionally, responding to the adjustment command and generating a vibration description file includes: responding to a superposition command, superimposing multiple waveforms, and generating a vibration description file of the superimposed waveforms; the multiple waveforms are at least a portion of the original waveforms. By superimposing to present a variety of vibration effects, it can support the superposition of vibration effects in various scenarios, making the user's vibration experience richer.
[0017] Optionally, the overlay instruction includes an instruction to drag the plurality of waveforms to a state of overlapping time ranges.
[0018] Optionally, generating the vibration description file includes: generating the vibration description file in response to the vibration parameters of the adjusted waveform not exceeding a preset adjustment limit, so as to protect the linear motor to be controlled from damage.
[0019] A second aspect of this application provides a vibration description file generation apparatus for an electronic device, the electronic device including a linear motor, comprising: a display unit, a receiving unit, and a generation unit. The display unit presents a first interface displaying an acquired waveform. The receiving unit acquires an adjustment command for the waveform. The generation unit responds to the adjustment command and generates a vibration description file. This apparatus enables high efficiency and low technical barriers in acquiring vibration description files.
[0020] Optionally, it also includes: an acquisition unit, configured to generate the waveform based on the vibration characteristics of the application; or, select a waveform from a pre-configured scene vibration waveform as the waveform; or, receive the waveform from an external source; or, call a pre-configured waveform as a template. The acquisition unit can avoid users designing waveforms from scratch, thus greatly facilitating users.
[0021] Optionally, the generation unit is used to generate a vibration description file in response to the adjustment command, including: the generation unit is specifically used to generate a dynamic description file in response to the adjustment command of the waveform received from the external source, the dynamic description file being used to control the vibration of the linear motor according to the vibration parameters in the dynamic description file if an interruption event occurs, so as to reduce the interference of vibration on the interruption event.
[0022] Optionally, the generation unit is used to generate a vibration description file in response to the adjustment command. The generation unit is further specifically used to generate a static description file in response to the waveform generated based on the vibration characteristics of the application; or, to generate a static description file in response to the adjustment command of the waveform selected from the pre-configured scene vibration waveforms. The static description file is used to control the vibration of the linear motor according to the vibration parameters in the static description file when no interruption event occurs.
[0023] Optionally, the types of vibration parameters indicated by the dynamic description file are a subset of the types of vibration parameters indicated by the static description file, in order to reduce the generation cost of the dynamic description file.
[0024] Optionally, the generation unit is used to generate a vibration description file in response to the adjustment command, including: the generation unit is specifically used to: respond to the adjustment command for the waveform on the interactive interface, display the adjusted waveform; and generate a vibration description file for the adjusted waveform. The application of the interactive interface can further improve the generation efficiency of the vibration description file and provides a better user experience.
[0025] Optionally, the generation unit is configured to respond to adjustment commands on the waveform via the interactive interface and display the adjusted waveform, including: specifically, the generation unit is configured to respond to operation commands on preset adjustment points on the waveform displayed in the interactive interface, and display the adjustment points on the waveform; and respond to drag commands on the adjustment points in the first vibration parameter adjustment mode, and display the waveform after the first vibration parameter is adjusted, where the first vibration parameter includes amplitude and / or frequency. The adjustment point operation is easy to implement and can improve the convenience of user operation.
[0026] Optionally, the waveform includes a steady-state waveform; the first vibration parameter further includes a time parameter; the generation unit is used to respond to a drag command on the adjustment point in the first vibration parameter adjustment mode and display the waveform after the first vibration parameter is adjusted, including: the generation unit is specifically used to respond to a drag command on the time axis on the adjustment point in the time adjustment mode and display the waveform after the time parameter is adjusted.
[0027] Optionally, the generation unit is used to respond to the adjustment command of the waveform in the interactive interface and display the adjusted waveform, including: the generation unit is specifically used to respond to the drag command of the waveform displayed in the interactive interface and display the waveform after adjusting the time parameter.
[0028] Optionally, the display unit is further configured to: display indication information corresponding to the value of the adjusted parameter in the interactive interface. The indication information makes the value of the adjusted parameter more intuitive, which helps improve the user experience.
[0029] Optionally, the generation unit is used to generate a vibration description file in response to the adjustment command, including: the generation unit is specifically used to, in response to the superposition command, superimpose multiple waveforms and generate a vibration description file of the superimposed waveforms; the multiple waveforms are at least a portion of the waveforms. By superimposing to present extended vibration effects, it can support the superposition of vibration effects in various scenarios, making the user's vibration experience richer.
[0030] Optionally, the generation unit is used to superimpose multiple waveforms in response to a superposition command, including: the generation unit is specifically used to superimpose the multiple waveforms in response to a command to drag multiple waveforms to an overlapping time range state.
[0031] Optionally, the generation unit for generating the vibration description file includes: the generation unit is specifically used to generate the vibration description file in response to the vibration parameters of the adjusted waveform not exceeding a preset adjustment limit, so as to protect the linear motor to be controlled from damage.
[0032] A third aspect of this application provides an electronic device, characterized in that it comprises:
[0033] One or more processors;
[0034] A memory that stores programs;
[0035] When the program is executed by the one or more processors, the one or more processors implement the vibration description file generation method provided in the first aspect of this application.
[0036] A fourth aspect of this application provides a readable storage medium, characterized in that it stores a computer program thereon, wherein the computer program, when executed by a processor, implements the vibration description file generation method provided in the first aspect of this application. Attached Figure Description
[0037] Figure 1a This diagram illustrates the structure and application examples of an X-axis linear motor.
[0038] Figure 1b This diagram illustrates the structure and application examples of a Z-axis linear motor.
[0039] Figure 2 This is a schematic diagram of the structure of an electronic device disclosed in an embodiment of this application;
[0040] Figure 3a A software architecture example diagram for the vibration waveform adjustment method of a linear motor provided in the embodiments of this application;
[0041] Figure 3b for Figure 3a The flowchart illustrating the implementation of the software architecture is shown below.
[0042] Figure 4 This is a flowchart of a method for generating a vibration description file disclosed in an embodiment of this application;
[0043] Figure 5 This is an example diagram of the interactive interface for generating vibration description files disclosed in an embodiment of this application;
[0044] Figure 6 This is a schematic diagram of the structure of a vibration description file generation device disclosed in an embodiment of this application. Detailed Implementation
[0045] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0046] In this application, the terms "comprising," "including," or any other variations thereof are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0047] Linear motors are installed in electronic devices to generate vibrations that produce a tactile feedback effect. In different scenarios within the electronic device, the linear motor is controlled to vibrate in various ways, producing different vibration effects that the user perceives, thus prompting the user or providing feedback on their actions. Specifically:
[0048] 1. Different vibration effects can be provided for different business scenarios (e.g., time reminders, receiving messages, incoming calls, alarm clocks, games, etc.).
[0049] 2. As feedback to touch. For example, touch operations applied to different applications (such as taking photos, playing audio, etc.) can correspond to different vibration effects. Touch operations applied to different areas of the display screen can also correspond to different vibration effects.
[0050] Linear motors commonly used in electronic devices include X-axis linear motors (also known as square or transverse linear motors) and Z-axis linear motors (also known as circular or longitudinal linear motors). Figure 1a Examples of the structure and applications of X-axis linear motors. Figure 1b This section presents the structure and application examples of a Z-axis linear motor.
[0051] like Figure 1aAs shown, the X-axis linear motor has a long or square shape. Assuming the X-axis is horizontal, the Y-axis is vertical, and the Z-axis is perpendicular to both the X and Y axes, the actuator of the X-axis linear motor can move in either the X or Y axis direction, depending on the placement orientation, allowing for a longer stroke. When mounted along the X-axis in electronic devices, the X-axis linear motor provides vibration in the X-axis direction; if mounted along the Y-axis, it provides vibration in the Y-axis direction.
[0052] like Figure 1b As shown, the Z-axis linear motor has a cylindrical shape, and the mover can move in the Z-axis direction. When installed in electronic devices, the Z-axis linear motor can produce vibration along the thickness direction of the electronic device.
[0053] A vibration description file is one of the key elements in controlling the vibration of a linear motor. It describes the vibration waveform of the linear motor, indicating various vibration parameters such as amplitude and frequency during the vibration process. Therefore, the vibration description file instructs how the motor should vibrate, allowing users to configure the desired vibration effect.
[0054] Currently, vibration description files are generated by technicians through handwritten code, which is not only technically challenging and inefficient, but also has the following problems:
[0055] With the development of terminals, there is a need to expand terminal functions and improve the user experience. Vibration functionality has significant potential for expansion, and such expansion can enhance the user experience. For example, during music playback, a linear motor could be controlled to vibrate in sync with the music; or in shooting scenarios within a game, a linear motor could be controlled to vibrate in sync with the firing of bullets.
[0056] Due to the complexity and diversity of business scenarios at the terminal, it is quite difficult for technical personnel to pre-write vibration description files for each scenario. Furthermore, because the technical threshold for writing vibration description files is high, it is difficult for terminal users to customize vibration description files to meet the specific needs of their business scenarios in this way.
[0057] It is evident that the current method of obtaining vibration description files has become a factor restricting the expansion of vibration functions and the improvement of user experience.
[0058] Therefore, this application provides a method and apparatus for generating vibration files, which reduces the technical threshold for obtaining vibration description files, improves the efficiency of obtaining vibration description files, and alleviates the contradiction between obtaining vibration description files, expanding vibration functions, and improving user experience.
[0059] The vibration file generation method and apparatus provided in this application are applied to electronic devices equipped with linear motors. These electronic devices can be mobile phones, tablets, desktops, laptops, notebook computers, ultra-mobile personal computers (UMPCs), handheld computers, netbooks, personal digital assistants (PDAs), wearable electronic devices, smartwatches, and other devices.
[0060] Figure 2 The electronic components shown include: a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, a headphone jack 170D, a sensor module 180, buttons 190, a motor 191, an indicator 192, a camera 193, a display screen 194, and a subscriber identification module (SIM) card interface 195, etc. The sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, a barometric pressure sensor 180C, a magnetic sensor 180D, an accelerometer sensor 180E, a distance sensor 180F, a proximity sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, etc.
[0061] It is understood that the structure illustrated in this embodiment does not constitute a specific limitation on the electronic device. In other embodiments, the electronic device may include more or fewer components than illustrated, or combine some components, or split some components, or have different component arrangements. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.
[0062] Processor 110 may include one or more processing units, such as application processors (APs), modem processors, graphics processing units (GPUs), image signal processors (ISPs), controllers, video codecs, digital signal processors (DSPs), baseband processors, and / or neural network processing units (NPUs). These different processing units may be independent devices or integrated into one or more processors.
[0063] The controller can serve as the nerve center and command center of an electronic device. Based on the instruction opcode and timing signals, the controller generates operation control signals to control the fetching and execution of instructions.
[0064] The processor 110 may also include a memory for storing instructions and data. In some embodiments, the memory in the processor 110 is a cache memory. This memory can store instructions or data that the processor 110 has just used or that are used repeatedly. If the processor 110 needs to use the instruction or data again, it can retrieve it directly from the memory. This avoids repeated accesses, reduces the waiting time of the processor 110, and thus improves the efficiency of the system.
[0065] In some embodiments, the processor 110 may include one or more interfaces. Interfaces may include an inter-integrated circuit (I2C) interface, an inter-integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver / transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input / output (GPIO) interface, a subscriber identity module (SIM) interface, and / or a universal serial bus (USB) interface, etc.
[0066] The I2C interface is a bidirectional synchronous serial bus, including a serial data line (SDA) and a serial clock line (SCL). In some embodiments, the processor 110 may include multiple I2C buses. The processor 110 can couple to the touch sensor 180K, charger, flash, camera 193, etc., through different I2C bus interfaces. For example, the processor 110 can couple to the touch sensor 180K through the I2C interface, enabling the processor 110 and the touch sensor 180K to communicate through the I2C bus interface, thereby realizing the touch function of the electronic device.
[0067] The I2S interface can be used for audio communication. In some embodiments, the processor 110 may include multiple I2S buses. The processor 110 can be coupled to the audio module 170 via the I2S bus to enable communication between the processor 110 and the audio module 170. In some embodiments, the audio module 170 can transmit audio signals to the wireless communication module 160 via the I2S interface to enable the function of answering phone calls through a Bluetooth headset.
[0068] The PCM interface can also be used for audio communication, sampling, quantizing, and encoding analog signals. In some embodiments, the audio module 170 and the wireless communication module 160 can be coupled via the PCM bus interface. In some embodiments, the audio module 170 can also transmit audio signals to the wireless communication module 160 via the PCM interface, enabling the function of answering phone calls through a Bluetooth headset. Both the I2S interface and the PCM interface can be used for audio communication.
[0069] The UART interface is a universal serial data bus used for asynchronous communication. This bus can be a bidirectional communication bus. It converts the data to be transmitted between serial and parallel communication. In some embodiments, the UART interface is typically used to connect the processor 110 and the wireless communication module 160. For example, the processor 110 communicates with the Bluetooth module in the wireless communication module 160 via the UART interface to implement Bluetooth functionality. In some embodiments, the audio module 170 can transmit audio signals to the wireless communication module 160 via the UART interface to enable music playback through Bluetooth headphones.
[0070] The MIPI interface can be used to connect the processor 110 to peripheral devices such as the display screen 194 and the camera 193. The MIPI interface includes a camera serial interface (CSI) and a display serial interface (DSI). In some embodiments, the processor 110 and the camera 193 communicate via the CSI interface to enable the electronic device to capture images. The processor 110 and the display screen 194 communicate via the DSI interface to enable the electronic device to display images.
[0071] The GPIO interface can be configured via software. It can be configured as a control signal or a data signal. In some embodiments, the GPIO interface can be used to connect the processor 110 to a camera 193, a display screen 194, a wireless communication module 160, an audio module 170, a sensor module 180, etc. The GPIO interface can also be configured as an I2C interface, an I2S interface, a UART interface, a MIPI interface, etc.
[0072] USB port 130 is a USB standard compliant interface, which can be a Mini USB port, Micro USB port, USB Type-C port, etc. USB port 130 can be used to connect a charger to charge electronic devices, and can also be used for data transfer between electronic devices and peripheral devices. It can also be used to connect headphones for audio playback. This interface can also be used to connect other electronic devices, such as AR devices.
[0073] It is understood that the interface connection relationships between the modules illustrated in this embodiment are merely illustrative and do not constitute a limitation on the structure of the electronic device. In other embodiments of this application, the electronic device may also employ different interface connection methods or combinations of multiple interface connection methods as described in the above embodiments.
[0074] The charging management module 140 receives charging input from a charger. The charger can be a wireless charger or a wired charger. In some wired charging embodiments, the charging management module 140 receives charging input from the wired charger via a USB interface 130. In some wireless charging embodiments, the charging management module 140 receives wireless charging input via the wireless charging coil of the electronic device. While charging the battery 142, the charging management module 140 can also supply power to the electronic device via the power management module 141.
[0075] The power management module 141 connects the battery 142, the charging management module 140, and the processor 110. The power management module 141 receives input from the battery 142 and / or the charging management module 140, providing power to the processor 110, internal memory 121, display screen 194, camera 193, and wireless communication module 160, etc. The power management module 141 can also monitor parameters such as battery capacity, battery cycle count, and battery health status (leakage current, impedance). In some other embodiments, the power management module 141 may also be located within the processor 110. In other embodiments, the power management module 141 and the charging management module 140 may be located in the same device.
[0076] The wireless communication function of electronic devices can be realized through antenna 1, antenna 2, mobile communication module 150, wireless communication module 160, modem processor and baseband processor, etc.
[0077] Antenna 1 and antenna 2 are used to transmit and receive electromagnetic wave signals. Each antenna in the electronic device can be used to cover one or more communication frequency bands. Different antennas can also be reused to improve antenna utilization. For example, antenna 1 can be reused as a diversity antenna for a wireless local area network. In some other embodiments, the antennas can be used in conjunction with a tuning switch.
[0078] The mobile communication module 150 can provide solutions for wireless communication applications including 2G / 3G / 4G / 5G in electronic devices. The mobile communication module 150 may include at least one filter, switch, power amplifier, low noise amplifier (LNA), etc. The mobile communication module 150 can receive electromagnetic waves via antenna 1, and perform filtering, amplification, and other processing on the received electromagnetic waves before transmitting them to a modem processor for demodulation. The mobile communication module 150 can also amplify the signal modulated by the modem processor and convert it into electromagnetic waves for radiation via antenna 1. In some embodiments, at least some functional modules of the mobile communication module 150 may be housed in processor 110. In some embodiments, at least some functional modules of the mobile communication module 150 and at least some modules of the processor 110 may be housed in the same device.
[0079] The modem processor may include a modulator and a demodulator. The modulator modulates the low-frequency baseband signal to be transmitted into a mid-to-high frequency signal. The demodulator demodulates the received electromagnetic wave signal into a low-frequency baseband signal. The demodulator then transmits the demodulated low-frequency baseband signal to the baseband processor for processing. After processing by the baseband processor, the low-frequency baseband signal is transmitted to the application processor. The application processor outputs sound signals through an audio device (not limited to speaker 170A, receiver 170B, etc.) or displays images or videos through the display screen 194. In some embodiments, the modem processor may be a separate device. In other embodiments, the modem processor may be independent of the processor 110 and may be housed in the same device as the mobile communication module 150 or other functional modules.
[0080] The wireless communication module 160 can provide solutions for wireless communication applications in electronic devices, including wireless local area networks (WLANs) (such as wireless fidelity (Wi-Fi) networks), Bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), and infrared (IR) technologies. The wireless communication module 160 can be one or more devices integrating at least one communication processing module. The wireless communication module 160 receives electromagnetic waves via antenna 2, performs frequency modulation and filtering of the electromagnetic wave signals, and sends the processed signal to processor 110. The wireless communication module 160 can also receive signals to be transmitted from processor 110, perform frequency modulation and amplification, and convert them into electromagnetic waves for radiation via antenna 2.
[0081] In some embodiments, antenna 1 of the electronic device is coupled to mobile communication module 150, and antenna 2 is coupled to wireless communication module 160, enabling the electronic device to communicate with networks and other devices via wireless communication technology. The wireless communication technology may include Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Time-Division Code Division Multiple Access (TD-SCDMA), Long Term Evolution (LTE), BT, GNSS, WLAN, NFC, FM, and / or IR technologies. The GNSS may include Global Positioning System (GPS), Global Navigation Satellite System (GLONASS), BeiDou Navigation Satellite System (BDS), Quasi-Zenith Satellite System (QZSS), and / or Satellite Based Augmentation Systems (SBAS).
[0082] Electronic devices implement display functions through a GPU, a display screen 194, and an application processor. The GPU is a microprocessor for image processing, connecting the display screen 194 and the application processor. The GPU is used to perform mathematical and geometric calculations and for graphics rendering. The processor 110 may include one or more GPUs, which execute program instructions to generate or modify display information.
[0083] Display screen 194 is used to display images, videos, etc. Display screen 194 includes a display panel. The display panel may be a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active-matrix organic light-emitting diode (AMOLED), a flexible light-emitting diode (FLED), a miniature LED, a microLED, a quantum dot light-emitting diode (QLED), etc. In some embodiments, the electronic device may include one or N displays 194, where N is a positive integer greater than 1.
[0084] The display screen 194 of the electronic device can display a series of graphical user interfaces (GUIs), which serve as the main screen of the electronic device. Generally, the size of the display screen 194 is fixed, and only a limited number of controls can be displayed on it. A control is a GUI element, a software component contained within an application, that controls all data processed by the application and interactive operations related to that data. Users can interact with controls through direct manipulation to read or edit information related to the application. Generally, controls can include visual interface elements such as icons, buttons, menus, tabs, text boxes, dialog boxes, status bars, navigation bars, and widgets. For example, in this embodiment, the display screen 194 can display virtual buttons.
[0085] Electronic devices can achieve shooting functions through ISP, camera 193, video codec, GPU, display 194 and application processor.
[0086] The ISP (Image Signal Processor) is used to process data fed back from the camera 193. For example, when taking a picture, the shutter is opened, and light is transmitted through the lens to the camera's photosensitive element. The light signal is converted into an electrical signal, and the camera's photosensitive element transmits the electrical signal to the ISP for processing, transforming it into an image visible to the naked eye. The ISP can also perform algorithmic optimization of image noise, brightness, and skin tone. The ISP can also optimize parameters such as exposure and color temperature of the shooting scene. In some embodiments, the ISP can be set in the camera 193.
[0087] Camera 193 is used to capture still images or videos. An object is projected onto a photosensitive element by generating an optical image through the lens. The photosensitive element can be a charge-coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor. The photosensitive element converts the light signal into an electrical signal, which is then passed to an ISP for conversion into a digital image signal. The ISP outputs the digital image signal to a DSP for processing. The DSP converts the digital image signal into image signals in standard RGB, YUV, or other formats. In some embodiments, the electronic device may include one or N cameras 193, where N is a positive integer greater than 1.
[0088] Digital signal processors (DSPs) are used to process digital signals. Besides digital image signals, they can also process other digital signals. For example, when an electronic device is selecting a frequency, a DSP can perform a Fourier transform on the frequency energy.
[0089] Video codecs are used to compress or decompress digital video. Electronic devices can support one or more video codecs. This allows the electronic device to play or record video in various encoded formats, such as Moving Picture Experts Group (MPEG) 1, MPEG2, MPEG3, MPEG4, etc.
[0090] An NPU (Neural Processing Unit) is a computational processor for neural networks (NNs). By borrowing the structure of biological neural networks, such as the transmission patterns between neurons in the human brain, it can rapidly process input information and continuously learn on its own. NPUs enable intelligent cognitive applications in electronic devices, such as image recognition, facial recognition, speech recognition, and text understanding.
[0091] The external storage interface 120 can be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the electronic device. The external memory card communicates with the processor 110 through the external storage interface 120 to perform data storage functions. For example, music, video, and other files can be saved on the external memory card.
[0092] Electronic devices can implement audio functions such as music playback and recording through audio modules 170, speakers 170A, receivers 170B, microphones 170C, headphone jacks 170D, and application processors.
[0093] The audio module 170 is used to convert digital audio information into analog audio signals for output, and also to convert analog audio input into digital audio signals. The audio module 170 can also be used for encoding and decoding audio signals. In some embodiments, the audio module 170 may be located in the processor 110, or some functional modules of the audio module 170 may be located in the processor 110.
[0094] The speaker 170A, also known as a "loudspeaker," is used to convert audio electrical signals into sound signals. Electronic devices can listen to music or make hands-free calls through the speaker 170A.
[0095] The receiver 170B, also known as the "earpiece," is used to convert audio electrical signals into sound signals. When an electronic device answers a phone call or voice message, the receiver 170B can be brought close to the ear to hear the voice.
[0096] Microphone 170C, also known as a "microphone" or "voice transducer," is used to convert sound signals into electrical signals. When making a phone call or sending a voice message, the user can speak by bringing their mouth close to microphone 170C, inputting the sound signal into microphone 170C. Electronic devices can have at least one microphone 170C. In some embodiments, electronic devices can have two microphones 170C, which, in addition to collecting sound signals, can also perform noise reduction. In other embodiments, electronic devices can have three, four, or more microphones 170C, enabling sound signal collection, noise reduction, sound source identification, and directional recording, among other functions.
[0097] The 170D headphone jack is used to connect wired headphones. The 170D headphone jack can be a USB 130 interface or a 3.5mm Open Mobile Terminal Platform (OMTP) standard interface, a CTIA (Cellular Telecommunications Industry Association of the USA) standard interface.
[0098] Pressure sensor 180A is used to sense pressure signals and convert them into electrical signals. In some embodiments, pressure sensor 180A can be disposed on display screen 194. There are many types of pressure sensors 180A, such as resistive pressure sensors, inductive pressure sensors, and capacitive pressure sensors. A capacitive pressure sensor may include at least two parallel plates with conductive material. When force is applied to pressure sensor 180A, the capacitance between the electrodes changes. The electronic device determines the pressure intensity based on the change in capacitance. When a touch operation is applied to display screen 194, the electronic device detects the intensity of the touch operation based on pressure sensor 180A. The electronic device can also calculate the touch position based on the detection signal from pressure sensor 180A. In some embodiments, touch operations applied to the same touch position but with different touch operation intensities can correspond to different operation commands. For example, when a touch operation with an intensity less than a first pressure threshold is applied to the SMS application icon, a command to view an SMS is executed. When a touch operation with an intensity greater than or equal to the first pressure threshold is applied to the SMS application icon, a command to create a new SMS is executed.
[0099] The gyroscope sensor 180B can be used to determine the motion attitude of an electronic device. In some embodiments, the gyroscope sensor 180B can determine the angular velocity of the electronic device around three axes (i.e., the x, y, and z axes). The gyroscope sensor 180B can be used for image stabilization. For example, when the shutter is pressed, the gyroscope sensor 180B detects the angle of the electronic device's shake, calculates the distance that the lens module needs to compensate based on the angle, and allows the lens to counteract the shake of the electronic device by moving in the opposite direction, thus achieving image stabilization. The gyroscope sensor 180B can also be used in navigation and motion-sensing gaming scenarios.
[0100] The barometric pressure sensor 180C is used to measure air pressure. In some embodiments, the electronic device calculates altitude using the air pressure value measured by the barometric pressure sensor 180C to assist in positioning and navigation.
[0101] The magnetic sensor 180D includes a Hall sensor. The electronic device can use the magnetic sensor 180D to detect the opening and closing of the flip cover. In some embodiments, when the electronic device is a flip phone, the electronic device can detect the opening and closing of the flip cover using the magnetic sensor 180D. Then, based on the detected opening and closing state of the cover or the flip cover, features such as automatic flip unlocking can be configured.
[0102] The 180E accelerometer can detect the magnitude of acceleration in various directions (typically three axes) of an electronic device. When the electronic device is stationary, it can detect the magnitude and direction of gravity. It can also be used to identify the posture of electronic devices, and is applicable to screen orientation switching, pedometers, and other applications.
[0103] A distance sensor 180F is used to measure distance. Electronic devices can measure distance using infrared or laser. In some embodiments, during a shooting scene, the electronic device can utilize the distance sensor 180F to measure distance for rapid focusing.
[0104] The proximity sensor 180G may include, for example, a light-emitting diode (LED) and a light detector, such as a photodiode. The LED may be an infrared LED. The electronic device emits infrared light outward through the LED. The electronic device uses the photodiode to detect infrared reflected light from nearby objects. When sufficient reflected light is detected, it can be determined that an object is near the electronic device. When insufficient reflected light is detected, the electronic device can determine that no object is near the electronic device. The electronic device can use the proximity sensor 180G to detect when a user holds the electronic device close to their ear for a call, so as to automatically turn off the screen to save power. The proximity sensor 180G can also be used in holster mode and pocket mode for automatic unlocking and locking of the screen.
[0105] The ambient light sensor 180L is used to detect ambient light levels. Electronic devices can adaptively adjust the brightness of their displays (194) based on the detected ambient light. The ambient light sensor 180L can also be used to automatically adjust white balance when taking photos. Furthermore, the ambient light sensor 180L can work in conjunction with the proximity sensor 180G to detect whether electronic devices are in a pocket, preventing accidental touches.
[0106] The fingerprint sensor 180H is used to collect fingerprints. Electronic devices can utilize the characteristics of the collected fingerprints to achieve fingerprint unlocking, app access locks, fingerprint photography, fingerprint answering of calls, etc.
[0107] Temperature sensor 180J is used to detect temperature. In some embodiments, the electronic device uses the temperature detected by temperature sensor 180J to execute a temperature handling strategy. For example, when the temperature reported by temperature sensor 180J exceeds a threshold, the electronic device reduces the performance of a processor located near temperature sensor 180J to reduce power consumption and implement thermal protection. In other embodiments, when the temperature is below another threshold, the electronic device heats battery 142 to prevent abnormal shutdown of the electronic device due to low temperature. In still other embodiments, when the temperature is below yet another threshold, the electronic device boosts the output voltage of battery 142 to prevent abnormal shutdown due to low temperature.
[0108] Touch sensor 180K, also known as a "touch device," can be located on display screen 194. The touch sensor 180K and display screen 194 together form a touchscreen, also known as a "touchscreen." Touch sensor 180K detects touch operations applied to or near it. The touch sensor can transmit the detected touch operation to the application processor to determine the type of touch event. Visual output related to the touch operation can be provided through display screen 194. In other embodiments, touch sensor 180K may also be located on the surface of the electronic device, in a different position than display screen 194.
[0109] The bone conduction sensor 180M can acquire vibration signals. In some embodiments, the bone conduction sensor 180M can acquire vibration signals from the vibrating bone segments of the human vocal cords. The bone conduction sensor 180M can also contact the human pulse to receive blood pressure signals. In some embodiments, the bone conduction sensor 180M can also be incorporated into headphones to form bone conduction headphones. The audio module 170 can parse the voice signals from the vibrating bone segments of the vocal cords acquired by the bone conduction sensor 180M to realize voice functionality. The application processor can parse heart rate information from the blood pressure signals acquired by the bone conduction sensor 180M to realize heart rate detection functionality.
[0110] Buttons 190 include a power button, volume buttons, etc. Buttons 190 can be mechanical buttons or touch-sensitive buttons. The electronic device can receive button input and generate key signal inputs related to user settings and function control of the electronic device.
[0111] Indicator 192 can be an indicator light, used to indicate charging status, power changes, or to indicate messages, missed calls, notifications, etc.
[0112] The SIM card interface 195 is used to connect a SIM card. The SIM card can be inserted into or removed from the SIM card interface 195 to achieve contact and separation with the electronic device. The electronic device can support one or N SIM card interfaces, where N is a positive integer greater than 1. The SIM card interface 195 can support Nano SIM cards, Micro SIM cards, SIM cards, etc. Multiple cards can be inserted into the same SIM card interface 195 simultaneously. The multiple cards can be of the same or different types. The SIM card interface 195 is also compatible with different types of SIM cards. The SIM card interface 195 is also compatible with external memory cards. The electronic device interacts with the network through the SIM card to achieve functions such as calls and data communication. In some embodiments, the electronic device uses an eSIM, i.e., an embedded SIM card. The eSIM card can be embedded in the electronic device and cannot be separated from it.
[0113] Motor 191 includesFigure 1a The X-axis linear motor shown and Figure 1b At least one of the Z-axis linear motors shown.
[0114] Internal memory 121 can be used to store computer executable program code, which includes instructions. Processor 110 executes various functional applications and data processing of the electronic device by running the instructions stored in internal memory 121. For example, in this embodiment, processor 110 can generate a vibration description file by executing instructions, devices, or modules stored in internal memory 121. As another example, processor 110 responds to a signal triggered by a user operation received from an interactive interface on a touchscreen, selects and adjusts a waveform, and generates a vibration description file based on the adjusted waveform.
[0115] The internal memory 121 may include a program storage area and a data storage area. The program storage area may store the operating system, at least one application program required for a given function (such as sound playback, image playback, etc.). The data storage area may store data created during the use of the electronic device (such as audio data, phonebook, etc.). Furthermore, the internal memory 121 may include high-speed random access memory, and may also include non-volatile memory, such as at least one disk storage device, flash memory, universal flash storage (UFS), etc. The processor 110 executes various functional applications and data processing of the electronic device by running instructions stored in the internal memory 121 and / or instructions stored in memory located within the processor.
[0116] Furthermore, Figure 3a This is an example of a software architecture for the application of the technical solutions disclosed in the embodiments of this application, combined with Figure 3b The content indicates that:
[0117] The vibration description file generation module (which can interact with third-party applications) is used to generate vibration description files. The parsing module parses the vibration description file to obtain a JSON file describing the vibration waveform. The waveform processing module performs waveform processing operations on the JSON file. Specifically, the vibration waveform processing module first uses a synthetic motor displacement algorithm to generate a vibration waveform in the form of a displacement code stream based on the JSON file and the motor's attributes. The drive waveform processing module then uses an inverse motor voltage drive algorithm to perform inverse calculations on the vibration waveform and the motor's attributes to obtain the drive waveform.
[0118] The driving waveform obtained after waveform processing by the waveform processing module is synthesized by the synthesis module to obtain an audio bitstream in formats such as Pulse Code Modulation (PCM). This bitstream is then transmitted to the driver integrated circuit (IC) using protocols such as Real-time Transport Protocol (RTP) and ultimately applied to the linear motor to control its operation.
[0119] Based on the structure of the above electronic devices, Figure 3a The software architecture shown can be stored in internal memory 121 and implemented by processor 110. Figure 3b The process described above. The vibration description file generation method described in the embodiments of this application can be applied to... Figure 1a The module for generating vibration description files in the system.
[0120] The method for generating vibration description files as described in the embodiments of this application will be explained in detail below. Figure 4 A method for generating a vibration description file disclosed in this application includes the following steps:
[0121] S401. Present the first interface, which displays the acquired waveform.
[0122] Specifically, waveform acquisition includes the following methods:
[0123] 1. Generate waveforms based on the vibration characteristics of the application.
[0124] The vibration characteristics of an application refer to the characteristics of the object that can be used in the application.
[0125] For example, the application can be a multimedia player, and the object that can be vibrated can be multimedia. Then, based on the characteristics of multimedia, such as envelope, frequency, amplitude, timbre and rhythm, a waveform is generated.
[0126] Understandably, the types of objects that can use vibration in various applications can be pre-configured, and these objects can receive vibrations from external sources, such as audio files imported by the user.
[0127] 2. Select from the pre-configured scene vibration waveforms.
[0128] The pre-configured scene vibration waveforms include waveforms corresponding to vibrations in various scenarios, such as the waveform corresponding to the vibration in a shooting scene in a game, and the waveform corresponding to the vibration in an explosion scene in a game.
[0129] Scene vibration waveforms can be downloaded from the application's backend server. These waveforms correspond to the vibrations in the application's scene. They can also be obtained from waveforms generated locally on the electronic device, etc. There are no restrictions here.
[0130] Furthermore, scene vibration waveforms can be pre-stored in a scene vibration library, which can be a database or a folder. Waveform files in the scene vibration library can be added, deleted, or modified.
[0131] 3. Receive from external sources. External sources can provide waveform sources for applications, devices, etc.
[0132] 4. Call a pre-configured waveform as a template. That is, at least one waveform is pre-configured as a template, and the waveform is obtained by calling this template. It can be understood that the waveform used as a template can be considered a default waveform.
[0133] In this embodiment, multiple waveform acquisition methods are provided. Regardless of the method, existing or configured waveforms can be provided. Therefore, for users, no matter what business scenario the vibration description file needs to be customized, there is no need to design waveforms from scratch. Instead, adjustments can be made based on the acquired waveforms. This greatly facilitates users and significantly reduces the technical threshold.
[0134] S402, Obtain the waveform adjustment command.
[0135] S403: Respond to the waveform adjustment command and generate a vibration description file.
[0136] Specifically, the electronic device displays an interactive interface, responds to waveform adjustment commands on the interactive interface, displays the adjusted waveform, and generates a vibration description file for the adjusted waveform. The first interface can be a display interface, and the interactive interface can be a touch screen interface. This means that the first interface is displayed on the screen of the touch screen, and the interactive interface is also displayed on the screen of the same touch screen, receiving adjustment commands through the touch layer on that touch screen.
[0137] The detailed implementation method for this step will be explained in the following sections. Figure 5 The examples shown are illustrated.
[0138] S404. The vibration parameters of the waveform after response adjustment do not exceed the preset adjustment limits, and a vibration description file is generated.
[0139] Step S404 is optional. The purpose of setting the adjustment limit is to protect the linear motor being controlled from damage. That is, if the user adjusts the value of a vibration parameter of the basic waveform beyond the adjustment limit, the adjustment command will not be responded to.
[0140] Furthermore, a prompt message can be displayed to indicate that the adjustment has exceeded the adjustment limit.
[0141] Specifically, the adjustment limits may include, but are not limited to: amplitude limits, start time limits, and stop time limits.
[0142] The amplitude limit can be determined based on the maximum displacement of the linear motor to be controlled. The start-up time limit and the stop-down time limit can be determined based on the properties of the linear motor to be controlled.
[0143] As can be seen, the process described in this embodiment first acquires and displays a waveform, then further adjusts the displayed waveform, and finally generates a vibration description file for the adjusted waveform. That is, the waveform acquired and displayed in S401 can be regarded as a basic waveform. The required vibration waveform can be obtained by adjusting the basic waveform, and then the required vibration description file can be obtained. Compared with the prior art, there is no need to write code to form a vibration description file, which can reduce the technical threshold for obtaining a vibration description file and improve the acquisition efficiency.
[0144] From the user's perspective, because the basic waveform is shown first, the user does not need to design the waveform from scratch. Therefore, the user does not need a programming background or a vibration background, which further reduces the technical threshold for users to customize vibrations according to the scenario.
[0145] More importantly, because the technical threshold has been lowered, users have more freedom to configure vibration waveforms, enabling them to design vibration modes for more business scenarios, thereby expanding vibration functionality and improving user experience.
[0146] Figure 5 Here is an example of an interactive interface disclosed in an embodiment of this application:
[0147] The musical note icon 51 is used to import audio files (an example of a multimedia file). Users can click the musical note icon 51 in the upper right corner of the interactive interface to import audio files. The interactive interface then displays the basic waveform generated based on the imported audio file.
[0148] File icon 52 is used to import waveforms from the scene vibration library. That is, in response to the selection command triggered by the user's selection operation, the waveform selected by the user from the scene vibration library is imported as the base waveform and displayed.
[0149] File icon 52 is also used to import waveforms received from external sources. That is, waveforms received from external sources are stored in the terminal. In response to the selection command triggered by the user's selection operation, the waveform received from external sources selected by the user is imported as the base waveform and displayed.
[0150] In addition, users can Figure 5In the blank area of the interactive interface shown, a dialog box will pop up by long-pressing. Select to add a new Slice or Event. The added waveform is the default waveform, which is a rectangular wave with a duration of 30ms and an amplitude of 1 (normalized value). Select whether the Slice / Event is steady state or transient.
[0151] It is understood that the above methods for adding basic waveforms can be used individually or in combination, and this embodiment does not impose any limitations. In this embodiment, the basic waveform displayed is referred to as Slice / Event.
[0152] Figure 5 In the diagram, the left-hand Y-axis (vertical) represents amplitude (also known as intensity, abbreviated as Amp). The right-hand Y-axis (vertical) represents frequency (also known as sharpness, abbreviated as Freq). The X-axis (horizontal) represents duration (abbreviated as Time, in milliseconds). The left-hand Y-axis ranges from 0 to 1, with scale markings indicating intermediate values. The right-hand Y-axis uses shades of gray or color to represent frequency magnitude; darker shades indicate lower frequencies, and lighter shades indicate higher frequencies.
[0153] The following will be based on Figure 5 Example of S402:
[0154] 1. Responding to operation commands for preset adjustment points on the waveform displayed in the interactive interface, display the adjustment points on the waveform. Responding to drag commands for the adjustment points in the first vibration parameter adjustment mode, display the waveform after the first vibration parameter is adjusted, where the first vibration parameter includes amplitude and / or frequency.
[0155] For example, for the displayed steady-state waveform 01 or transient waveform 02, the user can long-press on the waveform to bring up a dialog box or option box, from which they can select to add an adjustment point (hereinafter referred to as a point, represented by a circle). In response to the instruction to add a point, the added point is displayed on the waveform. It is understood that because transient waveform 02 does not involve envelope adjustment, the points on transient waveform 02 are only the vertices of the upper edge. Alternatively, for transient waveform 02, the vertices of the upper edge are defaulted to adjustment points, and new adjustment points cannot be added, nor can existing adjustment points be changed.
[0156] The process for a user to adjust the amplitude of steady-state waveform 01 is as follows: Clicking the left Y-axis triggers the amplitude adjustment mode. By dragging any point, the amplitude of steady-state waveform 01 can be adjusted. In other words, in response to the user's click on the left Y-axis, the amplitude adjustment mode is entered, and in response to the drag command (i.e., the command triggered by the drag operation), the waveform after amplitude adjustment is displayed.
[0157] The process for a user to adjust the frequency of steady-state waveform 01 is as follows: Clicking the right Y-axis triggers the entry into frequency adjustment mode. By dragging any point, the user can select the frequency of steady-state waveform 01. In other words, in response to the user's click on the right Y-axis, the system enters frequency adjustment mode; in response to the drag command (i.e., the command triggered by the drag operation), the system displays the waveform after frequency adjustment.
[0158] It should be noted that during amplitude adjustment, the rightmost point on the steady-state waveform 01, because it is currently in amplitude adjustment mode, cannot change its existing frequency and can only move up and down. That is, in amplitude adjustment mode, it does not respond to left and right drag commands on the rightmost point of the steady-state waveform 01.
[0159] For steady-state waveform 01, the time parameter can also be adjusted by selecting a point on the X-axis to enter the time adjustment mode. In the time adjustment mode, at least two adjustment points 58 are displayed on the X-axis. The start time (the moment when the waveform begins) of steady-state waveform 01 can be adjusted by dragging the left adjustment point along the X-axis, and the duration of steady-state waveform 01 can be adjusted by dragging the right adjustment point along the X-axis.
[0160] In other words, in response to the user's click on a point on the X-axis, the system enters the time adjustment mode, responds to the command to drag the adjustment point on the time axis in the time adjustment mode, and displays the waveform after time adjustment.
[0161] The process for the user to adjust the amplitude of transient waveform 02 is as follows: Clicking the left Y-axis triggers the amplitude adjustment mode. By dragging the top edge vertex up or down, the amplitude of transient waveform 02 can be adjusted. In other words, in response to the user's click on the left Y-axis, the amplitude adjustment mode is entered, and in response to the up or down drag command (i.e., the command triggered by the up or down drag operation), the waveform after amplitude adjustment is displayed.
[0162] The process for users to adjust the frequency of transient waveform 02 is as follows: Clicking the right Y-axis triggers the frequency adjustment mode. By dragging the top edge vertex left or right, the frequency of transient waveform 02 can be adjusted. In other words, in response to the user's click on the right Y-axis, the frequency adjustment mode is entered, and in response to the left or right drag command (i.e., the command triggered by the left or right drag operation), the waveform after frequency adjustment is displayed.
[0163] 2. Respond to drag commands on the waveform displayed in the interactive interface and display the waveform after time adjustment.
[0164] The user can drag the steady-state waveform 01 along the X-axis to adjust the start time. In other words, in response to the drag command on the steady-state waveform 01 along the X-axis, the waveform after the start time is adjusted is displayed.
[0165] The user drags the transient waveform 02 along the X-axis to adjust the start time. In other words, in response to the drag command on the transient waveform 02 along the X-axis, the waveform after the start time is adjusted is displayed.
[0166] To enhance the visibility of adjustments, the interface displays indication information corresponding to the values of the adjusted parameters.
[0167] Specifically, the displayed waveform is filled with grayscale or color representing the currently selected frequency, and the selected frequency is adjusted in real time as the point moves to intuitively present the currently selected frequency.
[0168] Furthermore, in waveforms not in frequency adjustment mode (steady-state or transient), grayscale or color representing the current frequency of the waveform can be filled in to visually represent the current frequency of the waveform not in adjustment mode. Additionally, in frequency adjustment mode, an arrow is displayed near the frequency axis pointing to the currently selected frequency to visually represent the current frequency of the waveform.
[0169] Understandably, transient waveform 02 has only one frequency, so it is filled with only one color.
[0170] In addition to adjusting a single waveform, this embodiment also supports the overlay of multiple waveforms: when a user selects multiple waveforms and drags them to a state where their time ranges overlap, the overlay of the multiple waveforms with overlapping time ranges is triggered. That is, in response to the overlay command of dragging multiple waveforms to a state where their time ranges overlap, multiple waveforms are overlaid. For example, dragging the first waveform into the time range of the second waveform will overlay the first waveform and the second waveform. The multiple waveforms are at least a portion of the aforementioned basic waveforms.
[0171] The multiple waveforms superimposed are not limited to events. Assuming the waveform acquired in S401 is the first waveform, corresponding to the first vibration event, then the second waveform superimposed on the first waveform can be the waveform of the first vibration event, or it can be the waveform of other vibration events, such as the waveform of the second vibration event.
[0172] One example of a specific calculation method for waveform overlay is the addition of amplitude values, which will not be elaborated here. The purpose of waveform overlay is to present and expand various vibration effects through superposition, supporting the superposition of vibration effects in various scenarios, thus enriching the user's vibration experience. It is understood that the implementation of waveform overlay is not limited to the aforementioned interactive interface.
[0173] In addition to the adjustments mentioned above Figure 5 The interactive interface shown can also perform the following functions:
[0174] In the dialog box or option box that pops up when you long-press on the waveform, there is also an option to delete adjustment points, which the user can select to delete. Similarly, in the dialog box or option box that pops up when you long-press on the waveform, there is also an option to delete the slice / event, which the user can select to delete the waveform.
[0175] During the adjustment process, users can undo the adjustment by clicking the back control 53 and click the play control 54 to play the vibration triggered by the adjusted waveform, allowing them to experience the vibration effect and aid in the adjustment. They can also click the save control 55 to save the adjusted waveform. Optional, interactive interface. Figure 5 You can also set a help control 56 and an exit control 57.
[0176] Figure 5 The interactive interface shown provides users with great convenience in generating vibration description files. It is understood that the controls and display methods in the above interactive interface are merely examples and not limitations; controls and display methods that achieve the same function can be used as replacements. Figure 5 The corresponding part in.
[0177] It should be noted that the vibration parameters of the vibration waveform may include, but are not limited to: amplitude, sharpness, waveform type, start time, duration, start time, and stop time. Therefore, the generated vibration description file includes the values of the above vibration parameters. The above are just examples of adjusting individual vibration parameters and are not intended to be limiting.
[0178] Understandable, Figure 5 The interactive interface shown can be encapsulated as an application. Based on this application, users can use human-computer interaction to adjust the waveform on the basis of the basic waveform to obtain a custom waveform, and then obtain a vibration description file describing the custom waveform. This vibration description file can correspond to at least one business scenario. For example, the vibration description file obtained by adjusting the basic waveform obtained from the audio file can be stored in correspondence with the audio, so that users can customize the vibration form corresponding to the business scenario. For example, when playing audio, the linear motor can vibrate in accordance with the rhythm of the audio.
[0179] During the research process, the applicant discovered that, in actual product use, vibrations originally designed to improve user experience for one or more business scenarios may interfere with other business scenarios.
[0180] For example, if a text message is received during audio playback, the vibration following the audio playback may affect the text message service. For instance, the vibration may interfere with the notification message, causing the user to miss the notification and thus not check the message in time. Or, for example, if the user opens the text message interface to check the message, the vibration of the linear motor may interfere with the viewing of the message, thereby reducing the user experience.
[0181] To address the aforementioned issues, the vibration description files described in the above embodiments are divided into static description files and dynamic description files.
[0182] The purpose of the dynamic description file is to control the linear motor vibration according to the vibration parameters in the dynamic description file if an interruption event occurs during the vibration process of the linear motor.
[0183] An interruption occurs when, during the execution of a program that performs a first event (such as audio playback), a second event (such as a text messaging application) is triggered (e.g., receiving a text message). In this case, the program performing the first event is suspended, and the program performing the second event begins execution until the second event is completed, at which point the program performing the first event resumes execution. Alternatively, the first and second events can execute simultaneously, meaning the programs performing the first and second events are executed in parallel. Simply put, it means the execution of a certain event is interrupted, or a new event is added to the execution process of another event, allowing it to run concurrently.
[0184] An interruption event is an event that interrupts the execution of an ongoing event, or an event that is added to run concurrently with other events while they are already running.
[0185] As can be seen, a dynamic description file can be configured for interrupt events, which can reduce vibration and interference when an interrupt event occurs.
[0186] Based on the aforementioned methods for obtaining the basic waveform, in this embodiment, the waveform received from an external source is used as the basic waveform for generating the dynamic description file. It is understood that this can be achieved using... Figure 5 The interactive interface shown imports and displays waveforms received from an external source, which are then adjusted to obtain a dynamic description file. The external source can be the subject of an interrupt event, such as the aforementioned SMS application. In other words, after an application is installed on an electronic device, the application can be pre-configured with a base waveform for generating a dynamic description file, allowing the user to generate the dynamic description file and thus reducing the likelihood of the application being interfered with by vibration during use.
[0187] Of course, waveforms received from external sources can also be used for other purposes, not just for generating dynamic description files.
[0188] Correspondingly, the vibration description file generated based on the characteristics of the object to be vibrated, or selected from a pre-configured scene vibration sensing library, can be used to control the vibration of a linear motor in the absence of an interruption event. In this scenario, to distinguish between the two types of vibration description files, the latter can be referred to as a static description file.
[0189] The specific application process of dynamic and static description files is beyond the scope of this case and will not be described in detail. It is understood that the vibration parameters described by the static description file can be the same as or different from those described by the dynamic description file. Furthermore, the types of vibration parameters described by the dynamic description file are a subset of those described by the static description file. That is, because the dynamic description file is used in the event of an interruption, and considering the above application scenario, it may not be necessary to adjust all parameters of the driving waveform, but only those parameters strongly correlated with vibration. Therefore, the dynamic description file can describe only parameters strongly correlated with vibration, and thus, the types of parameters described by the dynamic description file may be fewer than those described by the static description file. For example, the static description file may only describe amplitude. This approach simplifies the content of the dynamic description file, thereby reducing the cost of generating it.
[0190] The dynamic description file can also be visualized and adjusted, providing greater possibilities and flexibility for subsequent dynamic adjustment of the linear motor's vibration.
[0191] Figure 6 This application discloses a vibration description file generation apparatus, applied to an electronic device including a linear motor. The apparatus includes a display unit, a receiving unit, and a generation unit. Optionally, it may also include an acquisition unit.
[0192] The acquisition unit is used to generate the waveform according to the vibration characteristics of the application; or, select a waveform from a pre-configured scene vibration waveform as the waveform; or, receive the waveform from an external source; or, call a pre-configured waveform as a template.
[0193] The display unit presents the first interface, which displays the waveform acquired by the acquisition unit. The receiving unit receives adjustment commands for the waveform, and the generation unit responds to the adjustment commands by generating a vibration description file.
[0194] Optionally, the generation unit is used to generate a vibration description file in response to the adjustment command. The specific implementation of this method is as follows: in response to the adjustment command of the waveform received from the external source, a dynamic description file is generated. The dynamic description file is used to control the vibration of the linear motor according to the vibration parameters in the dynamic description file if an interruption event occurs.
[0195] Optionally, the generation unit, in response to the adjustment command, generates a vibration description file by further comprising the following steps: responding to the waveform generated based on the vibration characteristics of the application; or, generating a static description file from the adjustment command of a waveform selected from a pre-configured scene vibration waveform, wherein the static description file is used to control the vibration of the linear motor according to the vibration parameters in the static description file in the absence of the interruption event.
[0196] Optionally, the types of vibration parameters indicated by the dynamic description file are a subset of the types of vibration parameters indicated by the static description file.
[0197] Optionally, the generation unit is used to generate a vibration description file in response to the adjustment command. The specific implementation method is as follows: in response to the adjustment command of the waveform on the interactive interface, the adjusted waveform is displayed; and a vibration description file of the adjusted waveform is generated.
[0198] Optionally, the specific implementation of the generation unit in responding to the adjustment command of the waveform in the interactive interface and displaying the adjusted waveform is as follows: in response to the operation command of the preset adjustment point on the waveform displayed in the interactive interface, the adjustment point is displayed on the waveform; in response to the drag command of the adjustment point in the first vibration parameter adjustment mode, the waveform after the first vibration parameter is adjusted is displayed, where the first vibration parameter includes amplitude and / or frequency.
[0199] Optionally, the waveform includes a steady-state waveform, and the first vibration parameter further includes a time parameter; the specific implementation of the generation unit in responding to the drag command of the adjustment point in the first vibration parameter adjustment mode and displaying the waveform after the first vibration parameter adjustment is as follows: in response to the drag command of the adjustment point on the time axis in the time adjustment mode, the waveform after the time parameter is adjusted is displayed.
[0200] Optionally, the specific implementation of the generation unit responding to the adjustment command of the waveform in the interactive interface and displaying the adjusted waveform is as follows: responding to the drag command of the waveform displayed in the interactive interface and displaying the waveform after adjusting the time parameter.
[0201] Optionally, the display unit is further configured to: display indication information corresponding to the value of the adjusted parameter in the interactive interface.
[0202] Optionally, the generation unit is further configured to: respond to a superposition command, superimpose multiple waveforms, and generate a vibration description file of the superimposed waveform; wherein the multiple waveforms are at least a portion of the waveforms.
[0203] Optionally, the generation unit is used to respond to the superposition command and superimpose multiple waveforms in the following way: responding to the command to drag multiple waveforms to an overlapping time range state, superimpose the multiple waveforms.
[0204] Optionally, the specific implementation of the generation unit for generating the vibration description file is as follows: in response to the vibration parameters of the adjusted waveform not exceeding a preset adjustment limit, the vibration description file is generated.
[0205] The vibration description file generation device described in this embodiment eliminates the need for manually writing code to create vibration description files, thereby lowering the technical barrier to obtaining them and improving efficiency. Because the technical barrier is lowered, users have greater flexibility in customizing vibration waveforms, enabling the design of vibration modes for more business scenarios. This, in turn, expands vibration functionality and enhances the user experience.
[0206] This application also discloses a readable storage medium storing a computer program thereon, wherein the computer program, when executed by a processor, implements the vibration description file generation method described in the above embodiments.
Claims
1. A method for generating a vibration description file, characterized in that, Applied to electronic devices, the electronic devices including linear motors, comprising: The electronic device presents a first interface, which displays the acquired basic waveform, which is a waveform received from an external source. The electronic device obtains adjustment instructions for the basic waveform through an interactive interface; The electronic device responds to the adjustment command and generates a dynamic description file; the dynamic description file is used to control the vibration of the linear motor in the event of an interruption caused by the external source, so that the vibration sensation is reduced when the interruption event occurs; the static description file is used to control the vibration of the linear motor in the event that the interruption event does not occur.
2. The method according to claim 1, characterized in that, The static description file is generated based on adjustment instructions for waveforms selected from pre-configured scene vibration waveforms.
3. The method according to claim 1, characterized in that, The types of vibration parameters indicated by the dynamic description file are a subset of the types of vibration parameters indicated by the static description file.
4. The method according to any one of claims 1-3, characterized in that, The step of responding to the adjustment instruction and generating a dynamic description file includes: In response to the adjustment command of the basic waveform on the interactive interface, the adjusted waveform is displayed; A vibration description file for the adjusted waveform is generated, thus obtaining the dynamic description file.
5. The method according to claim 4, characterized in that, The response to the adjustment command of the basic waveform on the interactive interface generates the adjusted waveform, including: In response to an operation command on a preset adjustment point on the basic waveform displayed in the interactive interface, the adjustment point is displayed on the basic waveform; In response to a drag command on the adjustment point in the first vibration parameter adjustment mode, the waveform after the first vibration parameter is adjusted is displayed, whereby the first vibration parameter includes amplitude and / or frequency.
6. The method according to claim 5, characterized in that, The basic waveform includes a steady-state waveform; The first vibration parameter also includes: a time parameter; The response to the drag command of the adjustment point in the first vibration parameter adjustment mode, displaying the waveform after the first vibration parameter adjustment, includes: In response to a command to drag the adjustment point on the time axis in time adjustment mode, the waveform after adjusting the time parameter is displayed.
7. The method according to claim 4, characterized in that, The response to the adjustment command of the basic waveform in the interactive interface displays the adjusted waveform, including: In response to a drag command on the waveform displayed in the interactive interface, the waveform after adjusting the time parameter is displayed.
8. The method according to claim 4, characterized in that, Also includes: The interactive interface displays indication information corresponding to the values of the adjusted parameters.
9. The method according to any one of claims 1-3, characterized in that, The step of responding to the adjustment instruction and generating a dynamic description file includes: In response to the superposition command, multiple waveforms are superimposed, and a vibration description file of the superimposed waveform is generated to obtain the dynamic description file; the multiple waveforms are at least a portion of the waveform.
10. The method according to claim 9, characterized in that, The overlay instructions include: The instruction to drag the multiple waveforms to an overlapping time range.
11. The method according to any one of claims 1-3, characterized in that, The generation of the dynamic description file includes: If the vibration parameters of the waveform adjusted based on the adjustment command do not exceed the preset adjustment limit, the dynamic description file is generated.
12. A vibration description file generation apparatus, applied to an electronic device, the electronic device including a linear motor, characterized in that, include: The display unit is used to present a first interface, which displays the acquired basic waveform, which is a waveform received from an external source. The receiving unit is used to obtain adjustment instructions for the basic waveform through an interactive interface; A generation unit is used to generate a dynamic description file in response to the adjustment command; the dynamic description file is used to control the vibration of the linear motor in the event of an interruption caused by the external source, so that the vibration sensation is reduced when the interruption event occurs; the static description file is used to control the vibration of the linear motor in the event of no interruption event.
13. The apparatus according to claim 12, characterized in that, The generation unit is also used for: The adjustment instructions for the waveform selected from the pre-configured scene vibration waveforms will be used to generate a static description file.
14. The apparatus according to claim 13, characterized in that, The types of vibration parameters indicated by the dynamic description file are a subset of the types of vibration parameters indicated by the static description file.
15. The apparatus according to any one of claims 12-14, characterized in that, The generation unit is used to generate a dynamic description file in response to the adjustment command, including: The generation unit is specifically used to respond to the adjustment command of the basic waveform on the interactive interface, display the adjusted waveform, generate a vibration description file of the adjusted waveform, and obtain the dynamic description file.
16. The apparatus according to claim 15, characterized in that, The generation unit is used to respond to the adjustment command of the basic waveform on the interactive interface, and display the adjusted waveform including: The generation unit is specifically used to: respond to an operation command on a preset adjustment point on a waveform displayed in the interactive interface, and display the adjustment point on the waveform; respond to a drag command on the adjustment point in the first vibration parameter adjustment mode, and display the waveform after the first vibration parameter is adjusted, wherein the first vibration parameter includes amplitude and / or frequency.
17. The apparatus according to claim 16, characterized in that, The waveform includes a steady-state waveform; The first vibration parameter also includes: a time parameter; The generation unit is used to respond to a drag command on the adjustment point in the first vibration parameter adjustment mode, and displays the waveform after the first vibration parameter adjustment, including: The generation unit is specifically used to respond to a drag command on the time axis for the adjustment point in time adjustment mode and display the waveform after adjusting the time parameter.
18. The apparatus according to claim 15, characterized in that, The generation unit is used to respond to adjustment commands for the basic waveform in the interactive interface, and displays the adjusted waveform, including: The generation unit is specifically used to respond to drag commands on the waveform displayed in the interactive interface and display the waveform after adjusting the time parameters.
19. The apparatus according to claim 15, characterized in that, The display unit is also used for: The interactive interface displays indication information corresponding to the values of the adjusted parameters.
20. The apparatus according to any one of claims 12-14, characterized in that, The generation unit is used to generate a dynamic description file in response to the adjustment command, including: The generation unit is specifically used to respond to a superposition command, superimpose multiple waveforms, and generate a vibration description file of the superimposed waveforms to obtain the dynamic description file; the multiple waveforms are at least a portion of the waveforms.
21. The apparatus according to claim 20, characterized in that, The generation unit is used to superimpose multiple waveforms in response to a superposition command, including: The generation unit is specifically used to respond to an instruction to drag multiple waveforms to an overlapping time range state and superimpose the multiple waveforms.
22. The apparatus according to any one of claims 12-14, characterized in that, The generation unit is used to generate dynamic description files, including: The generation unit is specifically used to generate the dynamic description file when the vibration parameters of the waveform adjusted based on the adjustment command do not exceed the preset adjustment limit.
23. An electronic device, characterized in that, include: One or more processors; A memory that stores programs; When the program is executed by the one or more processors, the one or more processors implement the vibration description file generation method as described in any one of claims 1 to 11.
24. A readable storage medium, characterized in that, It stores a computer program, wherein the computer program, when executed by a processor, implements the method for generating a vibration description file as described in any one of claims 1 to 11.
Citation Information
Patent Citations
Cross-platform application creation method and device, server and storage medium
CN108984174A
Vibration control method and device and computer readable storage medium
CN112269895A
Customizing Haptic Effects On An End User Device
US20080294984A1