Remote teaching of a percussion instrument
A system records and analyzes drumstick movement data to provide remote teaching of percussion instruments, offering real-time feedback and adapting to individual needs, addressing the challenges of practicing in noisy environments for individuals with autism or ADHD.
Patent Information
- Application Number
- GB2024000377
- Authority / Receiving Office
- GB · GB
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-11
- Publication Date
- 2025-07-16
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Learning to play percussion instruments is challenging for individuals with conditions like autism or ADHD due to the need for interaction in noisy environments and close physical proximity to tutors, requiring a method that allows learners to practice in a familiar and comfortable space.
A computer-implemented system records reference drumstick movement data, analyzes it to generate teaching instructions, and transmits these instructions to learner drumsticks using wireless communication, providing real-time feedback through haptic, visual, or sound indications.
Enables learners to practice percussion instruments intuitively and effectively in a remote setting, adapting to individual physical differences and improving playing skills through machine learning-based corrections and instructions.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BACKGROUND
[0001] The present invention relates to remote teaching of a percussion instrument and, more specifically, to remote teaching of a percussion instrument through drumstick feedback.
[0002] Learning how to play a percussion instrument, such as the drums, can have an extremely beneficial impact for children with learning challenges relating to autism or attention deficit hyperactivity disorder (ADHD). However, the process of learning how to play the drums can be challenging for those with such conditions, particularly the need to overcome being taught in a classroom with many new people, all making loud noises, and added to that the challenge of interacting with tutors that are in close physical proximity.
[0003] What is required is a way for learners to be able to learn and play percussion instruments in a manner that is sensitive to learning challenges relating to conditions such as autism. A method is required that allows the learner to learn to play the instrument in a natural and intuitive way, in a space which is familiar and comfortable. SUMMARY
[0004] According to an aspect of the present invention there is provided a computer-implemented method for remote teaching of a percussion instrument, comprising: recording reference movement data from a reference drumstick over a period of time; analyzing the reference movement data to generate teaching instructions for movement of a learner drumstick to emulate the reference movement data; and transmitting the teaching instructions to provide teaching instruction indications at the learner drumstick over a period of time.
[0005] According to another aspect of the present invention there is provided a system for remote teaching of a percussion instrument, comprising: a computing device including a processor and a memory configured to provide computer program instructions to the processor to execute the function of the following components: a reference data recording component recording reference movement data from a reference drumstick over a period of time; a teaching component for analyzing the reference movement data to generate teaching instructions for movement of a learner drumstick to emulate the reference movement data; and an instruction transmitting component for transmitting the teaching instructions to provide teaching instruction indications at the learner drumstick over a period of time.
[0006] According to a further aspect of the present invention there is provided a computer program product for remote teaching of a percussion instrument, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to: record reference movement data from a reference drumstick over a period of time; analyze the reference movement data to generate teaching instructions for movement of a learner drumstick to emulate the reference movement data; and transmit the teaching instructions to provide teaching instruction indications at the learner drumstick over a period of time.
[0007] The computer readable storage medium may be a non-transitory computer readable storage medium and the computer readable program code may be executable by a processing circuit. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings: Figure 1 is a schematic diagram of an example embodiment of a system in accordance with embodiments of the present invention; Figure 2 is a flow diagram of an example embodiment of a method in accordance with embodiments of the present invention; Figure 3 is a block diagram of an example embodiment of a system in accordance with embodiments of the present invention; and Figure 4 is a block diagram of an example embodiment of a computing environment for the execution of at least some of the computer code involved in performing the present invention.
[0009] It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numbers may be repeated among the figures to indicate corresponding or analogous features, DETAILED DESCRIPTION
[00010] Embodiments of a method, system, and computer program product are described for remote teaching of a percussion instrument.
[00011] Referring to Figure 1, a schematic diagram 100 shows an example embodiment of the described system for remote teaching of a percussion instrument using at least one drumstick. An instructor uses one or a pair of reference drumsticks 101,102 to record reference movement data over a period of time. For example, the period of time may be the duration of a piece of music or a learning exercise. The reference drumstick(s) 101,102 may have one or more movement sensors for obtaining movement data of the drumstick over time. The reference drumstick(s) 101,102 may include a communication component for transmitting data to a nearby tutor mobile device 110 via a wireless network 130.
[00012] A learner uses one or a pair of learner drumsticks 103,104. The learner drumstick(s) 103,104 may have one or more movement sensors for obtaining movement data of the drumstick. The learner drumstick(s) 103,104 may include a communication component for transmitting data to a nearby learner mobile device 112 via a wireless network 130. The learner drumstick(s) 103,104 may include a feedback mechanism for providing an indication to a user of the drumstick regarding timing and movement of the drumstick. The feedback mechanism may be a haptic indication mechanism, a visual indication mechanism, and / or a sound indication mechanism. The reference drumsticks 101,102 may be the same form of drumsticks as the learner drumsticks 103,104 and may include the feedback mechanism. Alternatively, the reference drumsticks 101,102 may be different to the learner drumsticks 103,104, for example, by including more sensors.
[00013] The tutor mobile device 110 and the learner mobile device 112 may both include a percussion teaching application 120,122 associated with a percussion teaching system 140 at a backend server 130. The percussion teaching application 120,122 may have different versions or functionality for a tutor and a learner or may include both sets of functionalities in a single application. The tutor percussion teaching application 120 may include a recording component 121. The learner percussion teaching application 122 may include an instructing component 124 and a correcting component 123.
[00014] Reference movement data of the one or pair of reference drumsticks 101,102 may be transmitted from the drumstick sensors via a wireless communication 130 to the tutor mobile device 110 where it may be recorded by the recording component 121 of a percussion teaching application 120. The recording may be carried out through a tutor mobile device 110 and, optionally, transmitted to a server 130 for processing by a backend percussion teaching system 140. Alternatively, the reference movement data may be recorded directly at a server 130.
[00015] The percussion teaching application 122 of the learner mobile device 112 may include an instructing component 124 for instructing a learner's movement of their learner drumstick(s) 103,104 in real time. The learner mobile device 112 may transmit teaching instructions to provide teaching instruction indications at the learner drumstick(s) 103,104 over a period of time. The teaching instructions are generated by the percussion teaching system 140 using the reference movement data of the one or pair of reference drumsticks 101,102 recorded via the tutor mobile device 110 and processed by the percussion teaching system 140 to provide the teaching instructions over a period of time.
[00016] The percussion teaching application 122 of the learner mobile device 112 may include a correcting component 123 for correcting a learner’s movement of their learner drumstick(s) 103,104 in real time. The learner mobile device 112 may receive learning movement data from one or both of the learner drumsticks 103,104 and may transmit this to the percussion teaching system 140. The learning movement data may be provided by the learner playing without the teaching instructions. In real time, the percussion teaching system 140 may provide correction instructions based on a difference between learning movement data and reference movement data at a given point of time in the period of time of the reference movement data. The correction instructions may be transmitted via the percussion teaching application 122 to the learner drumstick(s) 103,104 to provide correction instruction indications at the learner drumstick(s) 103,104 in real time.
[00017] Referring to Figure 2, a flow diagram 200 show an example embodiment of the described computer-implemented method for remote teaching of a percussion instrument.
[00018] The method may receive 201 reference movement data from one or a pair of reference drumsticks over a period of time. The reference movement data may be captured by sensors in the reference drumstick(s) and transmitted via a tutor mobile device to a server. The method may record 202 the reference movement data over the period of time. The reference movement data may include accelerometer data and impact sensor data received from the instructor drumstick(s). The reference movement data may be synchronized between a pair of drumsticks being played at the same time.
[00019] In one branch of the method, the reference data may be analyzed 203 to generate teaching instructions for movement of a learner drumstick or pair of drumsticks to emulate the reference movement data. The teaching instructions may be generated by a machine learning model receiving the recorded tutor movement data and outputting the required indications for a learner drumstick. The method may transmit 204 the teaching instructions to provide teaching instruction indications at the learner drumstick(s) over a period of time. Teaching instructions may include one or more of the group of: timing instructions, direction instructions, speed instructions, and force instructions. Teaching instruction indications may be provided by an indication mechanism in the drumstick to provide one or more of the group of: haptic indications, visual indications, and sound indications.
[00020] The machine learning is described further below and may take as training inputs: the sound of drum music beats from different types of music that require different physical behaviour of the drumsticks playing each type of music-for example, with respect to cadence, force, and movement; and reference movement data representing the physical characteristics exerted by the tutor on the drumsticks when playing each particular type of music. The trained system may receive as input a new piece of music and output the teaching instructions from learned required physical characteristics.
[00021] The method may include receiving 205 learning movement data from a learner drumstick in response to the teaching instruction indications and altering 206 the timing of the teaching instruction indications based on a difference between learning movement data and reference movement data at a given point of time in the period of time of the reference movement data to compensate for learners' physical differences to a reference provider.
[00022] Altering the teaching instruction indications may be determined by machine learning from analyzing learning movement data received from multiple learners’ drumsticks.
[00023] In this way, teaching instructions may be transmitted to the learner drumsticks(s) over the period of time to provide teaching instruction indications through the drumsticks to guide the learner to move the drumsticks to emulate the movement of the reference movements of the tutor.
[00024] In another branch of the method, the method may generate 207 correction instructions by analyzing learning movement data received from multiple learners’ drumsticks and processing differences between learning movement data and reference movement data at a given point of time in the period of time of the reference movement data.
[00025] Generating 207 correction instructions by analyzing learning movement data received from multiple learners' drumsticks may be carried out by machine learning of differences between reference movement data and learning movement data and required correction instructions.
[00026] The method may receive 208 learning movement data from a learner drumstick or pair of drumsticks. The learning movement data may be unsupervised meaning that it was generated without the instruction indications of the first branch of the method. The method may provide 209 correction instructions based on a difference between learning movement data and reference movement data at a given point of time in the period of time of the reference movement data and selection of the generated correction instructions in real time in response to received learning movement data.
[00027] Machine learning may be used for the correction instructions. The machine learning for the correction instructions may take as input the learning corrections provided for multiple learner users and the outcome of the correction instructions to learn which correction instructions provide the most improvement. The machine learning system may isolate the correction focus between cadence, force, and movement and may provide correction instructions for one selected focus. The machine learning may provide guidance as to a sequence of the order in which the focus should be corrected, i.e. cadence, followed by force, followed by movement.
[00028] The method may transmit 210 the correction instructions to provide correction instruction indications at the learner drumstick in real time. The correction instruction indications may be provided by an indication mechanism in the drumstick to provide one or more of the group of: haptic indications, visual indications, and sound indications. Correction instructions may include corrections to one or more of the group of: corrections to timing, corrections to speed, and corrections to force of impact.
[00029] In this way, correction instructions may be transmitted to the learner drumsticks(s) over the period of time to provide correction instruction indications through the drumsticks to guide the learner to correct the movement of the drumsticks to emulate the movement of the reference movements of the tutor.
[00030] In both branches, the method may include adjusting a speed of the reference movement data by the learner to enable the teaching instructions or the correction instructions to be provided at a different speed, for example, by slowing it down when first learning and then speeding up as the learner becomes proficient.
[00031] Machine learning may be used in both the generation of teaching instructions and the generation of correction instructions.
[00032] For the generation of teaching instructions, a machine learning system is used to determine accurate reference movement data, including cadence and force, to replicate a drum beat from a sound of a drum beat that it has not been specifically trained on before. This enables the application to create play instructions for new drum music that the application has not been trained on before, which expands the utility and cost effectiveness of the application.
[00033] The machine learning system may be trained on the following inputs: the sound of drum music beats from an array of different types of drum music with different requirements for drumstick movement including: drum cadence; drum beat force; and drum beat movement; and the reference movement data generated in response to the tutor playing each type of music. Such reference movement data may provide information on amongst other things the physical characteristics of: drum cadence (speed of drum beat) and drum force (power of drum beat).
[00034] The machine learning system is trained on the above data and is then able to receive new drum music beats that it has not specifically been trained on, and generate as output an accurate level of instruction which the learner can follow to play / learn the new drum based music. The output instruction that is generated includes: drum cadence; drum beat force; and drum beat movement.
[00035] For the generation of learning corrections, machine learning can also be used to provide optimal learning corrections in order to help the leaner improve their drum beat, cadence, and force.
[00036] This can be done by analyzing the variety of feedback that is provided to the learner by the application in order to support their improved accuracy of playing the drum sequence. Machine learning may analyze which method sequence of corrective action has resulted in the most learners playing the drum piece proficiently in the least number of attempts.
[00037] As an illustration, the application may provide instructions based on a number of corrective feedback including: cadence; force; and drumstick movement. Based on the above corrective feedback options, the application will select from the list a particular option to begin corrective action (e.g. cadence) for a particular piece of music. As the application helps other students with this piece of music, it may select other options to begin with (e.g. force).
[00038] The application may utilize machine learning to analyze which sequence from the selection (e.g. cadence, or force, or drumstick movement, in which order) resulted in the most effective learning experience (based on the number of attempts by the learner and progress toward matching the tutor's instructions) for the most students.
[00039] Once the most effective sequence of learning feedback method has been determined for a particular piece of music, this can then be used as the best practice feedback method for all learners for that drum sequence.
[00040] The reference drumsticks and the learner drumsticks may be intelligent drumsticks that include an indication mechanism in the form of a vibration motor (or other form of indication such as a light), an impact sensor and an accelerometer. A communication component is provided in the drumsticks in the form of a short-range wireless technology receiver and transmitter for communication with a mobile application that can be run from a mobile device such as a smartphone, which is used to store and distribute the data received from the drumsticks.
[00041] In one embodiment, the intelligent drumsticks and the mobile device may be set to ‘record’ the motion, and rhythm of a tutor playing a set of drums to a piece of music. The movement and impact are transmitted via the wireless communication to the mobile application which generates and provides the sequence, ready to be consumed as a 'guide' by the learner.
[00042] When the learner attempts to play the same piece of music, the stored sequence is transmitted from the learner's mobile application to the intelligent drumsticks, which may then use a drumstick vibration function to guide the user to raise the drumstick to the correct height, and then again to trigger the downward movement. Further guidance and corrective feedback may be given as to the amount of force the drum is hit by the learner, by utilizing the data collected from the tutor's drumstick accelerometer, where the drumstick may vibrate to alert the learner that their strike is too hard or soft.
[00043] As this system guides by touch, it allows users who have sight challenges to learn and play a musical instrument more easily. Alternatively or additionally, the system may use light indications to guide the learner. This system may allow the learner to be both guided and corrected, based directly on the play style of the tutor.
[00044] This system allows the user to learn effectively even when remote from the tutor. By having access to the stored sequence created by the tutor and distributed by the system the learner is still able to interact in an intuitive way with the tutor's expertise. The system also allows the benefit of being able to slow the sequence down, in order to better grasp the technique, before speeding up to the correct cadence.
[00045] The system allows learners with conditions that make learning in groups challenging, access to musical tuition in a cost effective way that matches their needs for learning.
[00046] A first example use case is described. A tutor initiates the mobile application on the mobile device and ensures connection to both of the drumsticks, and initiates the application record function. The tutor then begins to play the music using the drumsticks. Data collected from the impact sensor (when striking a drum), the accelerometer (when moving the drumstick up away from the drum, and down toward the drum) is transmitted to the mobile application as reference movement data. The tutor concludes their piece and stops the mobile application record function. The tutor then makes this recording available for use by his learners through the mobile application. The system processes the recording (reference movement data) to generate the instruction indications and / or correction indications for consumption by the learner when playing the same piece of music or carrying out the exercise.
[00047] A second example use case is described. The learner receives the lesson remotely at the mobile application of their mobile device. The learner initiates the mobile device and ensures connection to both of the drumsticks, and starts the application's ‘play’ function.
[00048] The learner places his drumsticks in the 'ready' position, and the device vibrates to indicate the learner should raise the stick away from the drum, and then vibrates again to indicate the learner should swing down to strike the drum. The mobile application will analyze the movement of the learner through the accelerometer and the impact sensor and may alter the timing of the vibrations on the up / down movement to compensate for learners’ physical differences to the tutor (such as length of arm). After a number of attempts the learner may feel that could improve their effectiveness, by slowing down the cadence of the movements in order to master the technique correctly, and so selects the option to play at a reduced speed. Once the learner indicates that they have mastered the movements and rhythm, the application can slowly increase the speed until the learner is able to play at the correct pace.
[00049] The method and system include the ability for artificial intelligence in the system to consume the data created by the tutor (when creating the initial teaching experience) and then utilize this data to be able to take as input nontrained percussion music, and to create as output the learning experience (such as the motion of the drum sticks, when the drum should be struck by the stick, and with what amount of force).
[00050] Any form of percussion music may be utilized to automatically create consumable learning experiences. This is particularly important when addressing the needs of children on the autism spectrum, as they may have a very specific interest in a particular piece of music to the exclusion of others. Also, this method ensures that the cost of creating the learning experiences is reduced, making it available to more children (and adults).
[00051] Referring to Figure 3, a block diagram shows an example embodiment of a system 300 for remote teaching of a percussion instrument.
[00052] The system includes a drumstick 301 having: multiple movement sensors for obtaining movement data of the drumstick over time, where the movement sensors include an accelerometer 304 and an impact sensor 305. The drumstick 301 includes a communication component 303 for receiving and transmitting data to a mobile device (shown in Figure 1), for example via a short-range wireless technology. The drumstick includes a feedback mechanism 306 for providing an indication to a user of the drumstick. The feedback mechanism 306 may include one or more of the group of: a haptic indication mechanism, a visual indication mechanism, and a sound indication mechanism. The feedback mechanism may be a vibration motor for providing vibration to a handle portion of the drumstick in response to received instructions. A pair of drumsticks 301 are shown as it is usual to play with two drumsticks; however, the system may operate with a single drumstick.
[00053] The drumsticks 301 communicate with a mobile device (shown in Figure 1) executing a mobile percussion teaching application. A server 140 is provided for executing a percussion teaching system 140 in remote communication with the mobile percussion teaching application. However, functionality described in the server-based a percussion teaching system 140 may be provided at the mobile device. The server 140 includes at least one processor 311, a hardware module, or a circuit for executing the functions of the described components which may be software units executing on the at least one processor. Multiple processors running parallel processing threads may be provided enabling parallel processing of some or all of the functions of the components. Memory 312 may be configured to provide computer instructions 313 to the at least one processor 311 to carry out the functionality of the components.
[00054] The percussion teaching system 140 may include a reference data recording component 341 for recording reference movement data from a reference drumstick over a period of time.
[00055] The percussion teaching system 140 may include a teaching component 342 for analyzing the reference movement data to generate teaching instructions for movement of a learner drumstick 301 to emulate the reference movement data. The percussion teaching system 140 may include an instruction transmitting component 343 for transmitting the teaching instructions to provide teaching instruction indications at the learner drumstick 301 over a period of time.
[00056] The percussion teaching system 140 may include a learner data receiving component 344 for receiving learning movement data from a learner drumstick in response to the teaching instruction indications. The percussion teaching system 140 may include an instruction altering component 345 for altering the timing of the teaching instruction indications based on a difference between learning movement data and reference movement data at a given point of time in the period of time of the reference movement data to compensate for learners' physical differences to a reference provider.
[00057] The percussion teaching system 140 may include an unsupervised learner data receiving component 346 for receiving learning movement data from a learner drumstick without teaching instruction indications. The percussion teaching system 140 may include a correction component 347 for providing correction instructions based on a difference between learning movement data and reference movement data at a given point of time in the period of time of the reference movement data. The correction component 347 may generate correction instructions by analyzing learning movement data received from multiple learners’ drumsticks and processing differences between learning movement data and reference movement data at a given point of time in the period of time of the reference movement data and selecting the generated correction instructions in real time in response to received learning movement data.
[00058] The percussion teaching system 140 may include a correction instruction transmitting component 348 for transmitting the correction instructions to provide correction instruction indications at the learner drumstick in real time.
[00059] The percussion teaching system 140 may include a drumstick synchronizing component 350 for synchronizing the reference movement data and the teaching instructions between two drumsticks being played at the same time.
[00060] The percussion teaching system 140 may include a speed adjusting component 349 for adjusting a speed of the reference movement data.
[00061] Various aspects of the present disclosure are described by narrative text, flowcharts, block diagrams of computer systems and / or block diagrams of the machine logic included in computer program product (CPP) embodiments. With respect to any flowcharts, depending upon the technology involved, the operations can be performed in a different order than what is shown in a given flowchart. For example, again depending upon the technology involved, two operations shown in successive flowchart blocks may be performed in reverse order, as a single integrated step, concurrently, or in a manner at least partially overlapping in time.
[00062] A computer program product embodiment ("CPP embodiment" or "CPP") is a term used in the present disclosure to describe any set of one, or more, storage media (also called "mediums") collectively included in a set of one, or more, storage devices that collectively include machine readable code corresponding to instructions and / or data for performing computer operations specified in a given CPP claim. A "storage device" is any tangible device that can retain and store instructions for use by a computer processor. Without limitation, the computer readable storage medium may be an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include these mediums include: diskette, hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or Flash memory), static random access memory (SRAM), compact disc read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded device (such as punch cards or pits I lands formed in a major surface of a disc) or any suitable combination of the foregoing. A computer readable storage medium, as that term is used in the present disclosure, is not to be construed as storage in the form of transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide, light pulses passing through a fiber optic cable, electrical signals communicated through a wire, and / or other transmission media. As will be understood by those of skill in the art, data is typically moved at some occasional points in time during normal operations of a storage device, such as during access, de-fragmentation or garbage collection, but this does not render the storage device as transitory because the data is not transitory while it is stored.
[00063] Referring to FIG. 4, computing environment 400 contains an example of an environment for the execution of at least some of the computer code involved in performing the inventive methods, such as percussion training system code 450. In addition to block 450, computing environment 400 includes, for example, computer 401, wide area network (WAN) 402, end user device (EUD) 403, remote server 404, public cloud 405, and private cloud 406. In this embodiment, computer 401 includes processor set 410 (including processing circuitry 420 and cache 421), communication fabric 411, volatile memory 412, persistent storage 413 (including operating system 422 and block 450, as identified above), peripheral device set 414 (including user interface (UI) device set 423, storage 424, and Internet of Things (loT) sensor set 425), and network module 415. Remote server 404 includes remote database 430. Public cloud 405 includes gateway 440, cloud orchestration module 441, host physical machine set 442, virtual machine set 443, and container set 444.
[00064] COMPUTER 401 may take the form of a desktop computer, laptop computer, tablet computer, smart phone, smart watch or other wearable computer, mainframe computer, quantum computer or any other form of computer or mobile device now known or to be developed in the future that is capable of running a program, accessing a network or querying a database, such as remote database 430. As is well understood in the art of computer technology, and depending upon the technology, performance of a computer-implemented method may be distributed among multiple computers and / or between multiple locations. On the other hand, in this presentation of computing environment 400, detailed discussion is focused on a single computer, specifically computer 401, to keep the presentation as simple as possible. Computer 401 may be located in a cloud, even though it is not shown in a cloud in Figure 4. On the other hand, computer 401 is not required to be in a cloud except to any extent as may be affirmatively indicated.
[00065] PROCESSOR SET 410 includes one, or more, computer processors of any type now known or to be developed in the future. Processing circuitry 420 may be distributed over multiple packages, for example, multiple, coordinated integrated circuit chips. Processing circuitry 420 may implement multiple processor threads and / or multiple processor cores. Cache 421 is memory that is located in the processor chip package(s) and is typically used for data or code that should be available for rapid access by the threads or cores running on processor set 410. Cache memories are typically organized into multiple levels depending upon relative proximity to the processing circuitry. Alternatively, some, or all, of the cache for the processor set may be located “off chip," In some computing environments, processor set 410 may be designed for working with qubits and performing quantum computing.
[00066] Computer readable program instructions are typically loaded onto computer 401 to cause a series of operational steps to be performed by processor set 410 of computer 401 and thereby effect a computer-implemented method, such that the instructions thus executed will instantiate the methods specified in flowcharts and / or narrative descriptions of computer-implemented methods included in this document (collectively referred to as “the inventive methods”). These computer readable program instructions are stored in various types of computer readable storage media, such as cache 421 and the other storage media discussed below. The program instructions, and associated data, are accessed by processor set 410 to control and direct performance of the inventive methods. In computing environment 400, at least some of the instructions for performing the inventive methods may be stored in block 450 in persistent storage 413.
[00067] COMMUNICATION FABRIC 411 is the signal conduction path that allows the various components of computer 401 to communicate with each other. Typically, this fabric is made of switches and electrically conductive paths, such as the switches and electrically conductive paths that make up busses, bridges, physical input I output ports and the like. Other types of signal communication paths may be used, such as fiber optic communication paths and / or wireless communication paths.
[00068] VOLATILE MEMORY 412 is any type of volatile memory now known or to be developed in the future. Examples include dynamic type random access memory (RAM) or static type RAM. Typically, volatile memory 412 is characterized by random access, but this is not required unless affirmatively indicated. In computer 401, the volatile memory 412 is located in a single package and is internal to computer 401, but, alternatively or additionally, the volatile memory may be distributed over multiple packages and / or located externally with respect to computer 401.
[00069] PERSISTENT STORAGE 413 is any form of non-volatile storage for computers that is now known or to be developed in the future. The non-volatility of this storage means that the stored data is maintained regardless of whether power is being supplied to computer 401 and / or directly to persistent storage 413. Persistent storage 413 may be a read only memory (ROM), but typically at least a portion of the persistent storage allows writing of data, deletion of data and re-writing of data. Some familiar forms of persistent storage include magnetic disks and solid state storage devices. Operating system 422 may take several forms, such as various known proprietary operating systems or open source Portable Operating System Interface-type operating systems that employ a kernel. The code included in block 450 typically includes at least some of the computer code involved in performing the inventive methods.
[00070] PERIPHERAL DEVICE SET 414 includes the set of peripheral devices of computer 401. Data communication connections between the peripheral devices and the other components of computer 401 may be implemented in various ways, such as Bluetooth connections, Near-Field Communication (NFC) connections, connections made by cables (such as universal serial bus (USB) type cables), insertion-type connections (for example, secure digital (SD) card), connections made through local area communication networks and even connections made through wide area networks such as the internet. In various embodiments, UI device set 423 may include components such as a display screen, speaker, microphone, wearable devices (such as goggles and smart watches), keyboard, mouse, printer, touchpad, game controllers, and haptic devices. Storage 424 is external storage, such as an external hard drive, or insertable storage, such as an SD card. Storage 424 may be persistent and / or volatile. In some embodiments, storage 424 may take the form of a quantum computing storage device for storing data in the form of qubits. In embodiments where computer 401 is required to have a large amount of storage (for example, where computer 401 locally stores and manages a large database) then this storage may be provided by peripheral storage devices designed for storing very large amounts of data, such as a storage area network (SAN) that is shared by multiple, geographically distributed computers. loT sensor set 425 is made up of sensors that can be used in Internet of Things applications. For example, one sensor may be a thermometer and another sensor may be a motion detector.
[00071] NETWORK MODULE 415 is the collection of computer software, hardware, and firmware that allows computer 401 to communicate with other computers through WAN 402. Network module 415 may include hardware, such as modems or Wi-Fi signal transceivers, software for packetizing and / or de-packetizing data for communication network transmission, and / or web browser software for communicating data over the internet. In some embodiments, network control functions and network forwarding functions of network module 415 are performed on the same physical hardware device. In other embodiments (for example, embodiments that utilize software-defined networking (SDN)), the control functions and the forwarding functions of network module 415 are performed on physically separate devices, such that the control functions manage several different network hardware devices. Computer readable program instructions for performing the inventive methods can typically be downloaded to computer 401 from an external computer or external storage device through a network adapter card or network interface included in network module 415.
[00072] WAN 402 is any wide area network (for example, the internet) capable of communicating computer data over non-local distances by any technology for communicating computer data, now known or to be developed in the future. In some embodiments, the WAN 402 may be replaced and / or supplemented by local area networks (LANs) designed to communicate data between devices located in a local area, such as a Wi-Fi network. The WAN and / or LANs typically include computer hardware such as copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and edge servers.
[00073] END USER DEVICE (EUD) 403 is any computer system that is used and controlled by an end user (for example, a customer of an enterprise that operates computer 401), and may take any of the forms discussed above in connection with computer 401. EUD 403 typically receives helpful and useful data from the operations of computer 401. For example, in a hypothetical case where computer 401 is designed to provide a recommendation to an end user, this recommendation would typically be communicated from network module 415 of computer 401 through WAN 402 to EUD 403. In this way, EUD 403 can display, or otherwise present, the recommendation to an end user. In some embodiments, EUD 403 may be a client device, such as thin client, heavy client, mainframe computer, desktop computer and so on.
[00074] REMOTE SERVER 404 is any computer system that serves at least some data and / or functionality to computer 401. Remote server 404 may be controlled and used by the same entity that operates computer 401. Remote server 404 represents the machine(s) that collect and store helpful and useful data for use by other computers, such as computer 401. For example, in a hypothetical case where computer 401 is designed and programmed to provide a recommendation based on historical data, then this historical data may be provided to computer 401 from remote database 430 of remote server 404.
[00075] PUBLIC CLOUD 405 is any computer system available for use by multiple entities that provides on-demand availability of computer system resources and / or other computer capabilities, especially data storage (cloud storage) and computing power, without direct active management by the user. Cloud computing typically leverages sharing of resources to achieve coherence and economies of scale. The direct and active management of the computing resources of public cloud 405 is performed by the computer hardware and / or software of cloud orchestration module 441. The computing resources provided by public cloud 405 are typically implemented by virtual computing environments that run on various computers making up the computers of host physical machine set 442, which is the universe of physical computers in and / or available to public cloud 405. The virtual computing environments (VCEs) typically take the form of virtual machines from virtual machine set 443 and / or containers from container set 444. It is understood that these VCEs may be stored as images and may be transferred among and between the various physical machine hosts, either as images or after instantiation of the VCE. Cloud orchestration module 441 manages the transfer and storage of images, deploys new instantiations of VCEs and manages active instantiations of VCE deployments. Gateway 440 is the collection of computer software, hardware, and firmware that allows public cloud 405 to communicate through WAN 402.
[00076] Some further explanation of virtualized computing environments (VCEs) will now be provided. VCEs can be stored as “images.” A new active instance of the VCE can be instantiated from the image. Two familiar types of VCEs are virtual machines and containers. A container is a VCE that uses operating-system-level virtualization. This refers to an operating system feature in which the kernel allows the existence of multiple isolated user-space instances, called containers. These isolated user-space instances typically behave as real computers from the point of view of programs running in them. A computer program running on an ordinary operating system can utilize all resources of that computer, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, programs running inside a container can only use the contents of the container and devices assigned to the container, a feature which is known as containerization.
[00077] PRIVATE CLOUD 406 is similar to public cloud 405, except that the computing resources are only available for use by a single enterprise. While private cloud 406 is depicted as being in communication with WAN 402, in other embodiments a private cloud may be disconnected from the internet entirely and only accessible through a local / private network. A hybrid cloud is a composition of multiple clouds of different types (for example, private, community or public cloud types), often respectively implemented by different vendors. Each of the multiple clouds remains a separate and discrete entity, but the larger hybrid cloud architecture is bound together by standardized or proprietary technology that enables orchestration, management, and / or data / application portability between the multiple constituent clouds. In this embodiment, public cloud 405 and private cloud 406 are both part of a larger hybrid cloud.
[00078] The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
[00079] Improvements and modifications can be made to the foregoing without departing from the scope of the present invention.
Claims
1. A computer-implemented method for remote teaching of a percussion instrument, comprising:recording reference movement data from a reference drumstick over a period of time;analyzing the reference movement data to generate teaching instructions for movement of a learner drumstick to emulate the reference movement data; andtransmitting the teaching instructions to provide teaching instruction indications at the learner drumstick over a period of time.
2. The method of claim 1, including:receiving learning movement data from a learner drumstick in response to the teaching instruction indications; andaltering the timing of the teaching instruction indications based on a difference between learning movement data and reference movement data at a given point of time in the period of time of the reference movement data to compensate for a learner's physical differences to a reference movement data provider.
3. The method of claim 1 or claim 2, wherein the teaching instructions include one or more of the group of: timing instructions, direction instructions, speed instructions, and force instructions.
4. The method of any of claims 1 to 3, wherein the reference movement data and the teaching instructions are synchronized between two drumsticks being played at the same time.
5. The method of any one of the preceding claims, wherein the teaching instruction indications are provided toan indication mechanism in the learner drumstick to provide one or more of the group of: haptic indications, visualindications, and sound indications.
6. The method of any one of the preceding claims, including adjusting a speed of the reference movement data.
7. The method of any one of the preceding claims, including:training a machine learning system with training inputs of sounds of drum music beats from different types of music and reference movement data that provides physical characteristics of the cadence, force, and movement when playing each type of music with reference drumsticks; andproviding output teaching instruction indications of learned physical characteristics from the machine learning system in response to input of a new piece of music.
8. The method of any one of the preceding claims, including:receiving learning movement data from a learner drumstick without teaching instruction indications having been provided to the learner drumstick;providing correction instructions based on a difference between learning movement data and reference movement data at a given point of time in the period of time of the reference movement data; andtransmitting the correction instructions to provide correction instruction indications at the learner drumstick in real time.
9. The method of claim 8, including:generating correction instructions by analyzing learning movement data received from multiple learners' drumsticks and processing differences between learning movement data and reference movement data at a given point of time in the period of time of the reference movement data;selecting the generated correction instructions in real time in response to received learning movement data.
10. The method of claim 8 or claim 9, wherein generating the correction instructions is carried out by machine learning, where a machine learning system takes as input the learning corrections provided for multiple learner users and the outcome of the correction instructions to learn which correction instructions provide the most improvement.11 A system for remote teaching of a percussion instrument, comprising:a computing device including a processor and a memory configured to provide computer program instructions to the processor to execute the function of the following components:a reference data recording component recording reference movement data from a reference drumstick over a period of time;a teaching component for analyzing the reference movement data to generate teaching instructions for movement of a learner drumstick to emulate the reference movement data; andan instruction transmitting component for transmitting the teaching instructions to provide teaching instruction indications at the learner drumstick over a period of time.
12. The system of claim 11, including:a learner data receiving component for receiving learning movement data from a learner drumstick in response to the teaching instruction indications;an instruction altering component for altering the timing of the teaching instruction indications based on a difference between learning movement data and reference movement data at a given point of time in the period of time of the reference movement data to compensate for a learner's physical differences to a reference movement data provider.
13. The system of claim 11 or claim 12, including a drumstick synchronizing component for synchronizing the reference movement data and the teaching instructions between two drumsticks being played at the same time.14, The system of any of claims 11 to 13, including a speed adjusting component for adjusting a speed of the reference movement data.
15. The system of any of claims 11 to 14, including:an unsupervised learning data receiving component for receiving learning movement data from a learner drumstick without teaching instruction indications;a correction component for providing correction instructions based on a difference between learning movement data and reference movement data at a given point of time in the period of time of the reference movement data; anda correction transmitting component for transmitting the correction instructions to provide correction instruction indications at the learner drumstick in real time.
16. The system of claim 15, wherein the correction component generates correction instructions by analyzing learning movement data received from multiple learners' drumsticks and processing differences between learning movement data and reference movement data at a given point of time in the period of time of the reference movement data and selecting the generated correction instructions in real time in response to received learning movement data.
17. The system of any of claims 11 to 16, including:a drumstick that acts as the reference drumstick or the learner drumstick and having:multiple movement sensors for obtaining movement data of the drumstick over time, wherein the movement sensors include an accelerometer and an impact sensor;a communication component for receiving and transmitting data to the computing device; and a feedback mechanism for providing an indication to a user of the drumstick.18, The system of claim 17, wherein the feedback mechanism includes one or more of the group of: a haptic indication mechanism, a visual indication mechanism, and a sound indication mechanism.
19. The system of claim 18, wherein the feedback mechanism includes a vibration motor for providing vibration to a handle portion of the drumstick in response to the instructions.
20. A computer program stored on a computer readable medium and loadable into the internal memory of a digital computer, comprising software code portions, when said program is run on a computer, for performing the method steps of any of the claims 1 to 9.18
Citation Information
Patent Citations
Drum set primary-secondary drumstick for teaching
CN111199719A
Interactive instruments and other striking objects
US20160203806A1