CA2220348C - A virtual music instrument with a novel input device - Google Patents

A virtual music instrument with a novel input device Download PDF

Info

Publication number
CA2220348C
CA2220348C CA002220348A CA2220348A CA2220348C CA 2220348 C CA2220348 C CA 2220348C CA 002220348 A CA002220348 A CA 002220348A CA 2220348 A CA2220348 A CA 2220348A CA 2220348 C CA2220348 C CA 2220348C
Authority
CA
Canada
Prior art keywords
notes
data structures
hand
virtual
instrument
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CA002220348A
Other languages
French (fr)
Other versions
CA2220348A1 (en
Inventor
Alan A. Miller
Vernon A. Miller
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MusicPlayground Inc
Original Assignee
MusicPlayground Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MusicPlayground Inc filed Critical MusicPlayground Inc
Publication of CA2220348A1 publication Critical patent/CA2220348A1/en
Application granted granted Critical
Publication of CA2220348C publication Critical patent/CA2220348C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/32Constructional details
    • G10H1/34Switch arrangements, e.g. keyboards or mechanical switches specially adapted for electrophonic musical instruments
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • G10H1/361Recording/reproducing of accompaniment for use with an external source, e.g. karaoke systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • G10H1/361Recording/reproducing of accompaniment for use with an external source, e.g. karaoke systems
    • G10H1/363Recording/reproducing of accompaniment for use with an external source, e.g. karaoke systems using optical disks, e.g. CD, CD-ROM, to store accompaniment information in digital form
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • G10H1/38Chord
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8047Music games
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2220/00Input/output interfacing specifically adapted for electrophonic musical tools or instruments
    • G10H2220/155User input interfaces for electrophonic musical instruments
    • G10H2220/191Plectrum or pick sensing, e.g. for detection of string striking or plucking
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/011Files or data streams containing coded musical information, e.g. for transmission
    • G10H2240/046File format, i.e. specific or non-standard musical file format used in or adapted for electrophonic musical instruments, e.g. in wavetables
    • G10H2240/071Wave, i.e. Waveform Audio File Format, coding, e.g. uncompressed PCM audio according to the RIFF bitstream format method

Abstract

A virtual musical instrument including a hand-held accessory (300) of a type that is intended to be brought into contact with a musical instrument so as to play that instrument. The hand-held accessory includes a switch (304) which, in response to the hand-held accessory being caused to strike another object by a person holding it, generates an activation signal. The musical instrument also includes an audio synthesizer, a memory storing a sequence of notes data structures for a musical score, a timer, and a digital processor receiving the activation signal and generating a control signal therefrom.

Description

R'O 96/36034 PCTIUS96/05046 A VIRTUAL MUSIC INSTRUMENT WITH A NOVEL INPUT DEVICE
Eackaround of the Invention The invention relates to an actuator for a microprocessor-assisted musical instrument.
As microprocessors penetrate further into the marketplace, more products are appearing that enable people who have no formal training in music to actually produce music like a trained musician. Some instruments and devices that are appearing store the musical score in digital form and play it back in response to input signals generated by the user when the instrument is played. Since the music is stored in the instrument, the user need not have the ability to create the required notes of the melody but need only have the ability to recreate the rhythm of the particular song or music being played. These instruments and devices are making music much more accessible to everybody.
Among the instruments that are available, there 2o are a number of mechanical and electrical toy products that allow the player to step through the single tones of a melody. The simplest forms of this are little piano shaped toys that have one or a couple of keys which when depressed advance a melody by one note and sound the next tone in the melody which is encoded on a mechanical drum.
The electrical version of this ability can be seen in some electronic keyboards that have a mode called °'single key" play whereby a sequence of notes that the player has played and recorded on the keyboard can be "played" back by pushing the "single key play" button (on/off switch) sequentially with the rhythm of the single note melody.
Each time the key is pressed, the next note in the melody is played.
There was an instrument called a "sequential drum"
that behaved in a similar fashion. When the drum was struck a piezoelectric pickup created an on/off event which a computer registered and then used as a trigger to sound the next tone in a melodic note sequence.
There are also recordings that are made for a variety of music types where a single instrument or, more commonly, the vocal part of a song is omitted from the audio mix of an ensemble recording such as a rock band or orchestra. These recordings available on vinyl records, magnetic tape, and CDS have been the basis for the commercial products known as MusicMinusOne and for the very popular karoeke that originated in Japan.
In the earlier patent (i.e., U.S. 5,393,926), we described a new instrument which we refer to as a virtual guitar. The virtual guitar includes a MIDI guitar, an audio synthesizer, a memory storing a musical score for the virtual guitar, and a digital processor which receives input signals from the MIDI guitar and uses those input signals to access notes of the stored musical score in memory. Since the melody notes are stored in a data file, the player of the virtual guitar need not know how to create the notes of the song. The player can produce or more accurately, access, the required sounds simply by strumming the MIDI guitar strings to generate activation signals. In addition, the system keeps track of where the user was supposed to be within the musical score even when the user stops strumming the strings.
Thus, when the user resumes strumming the strings, the system generates the appropriate notes for that time in the song and as though the user had played to intervening notes.
Summary of the Invention The present invention may provide an improvement of the previously described virtual music instrument in that it is adapted to use a new input device.
In accordance with one aspect of the invention, there is provided a virtual musical instrument. The instrument comprises a hand-held accessory of a type that is intended to be brought into contact with a musical instrument so as to play that instrument, the hand-held accessory including a switch which, in response to the hand-held accessory being caused to strike another object by a person holding the hand-held accessory, generates an activation signal. The instrument further comprises an audio synthesizer, a timer, and a memory storing a sequence of notes data structures for a musical score, each of the notes data structures representing a note or notes within the musical score and having an identified location in time relative to the other notes in the sequence of notes data structures. The instrument further comprises a digital processor receiving the activation signal from the hand-held accessory and generating a control signal therefrom. The digital processor is programmed to use the timer to measure a time at which the activation signal is generated, to use the measured time to select one of the notes data structures within the sequence of notes data structures, and to generate the control signal, wherein the control signal causes the synthesizer to generate the notes) represented by the selected notes data structure.
The hand-held accessory may be a guitar pick comprising a housing defining an enclosed cavity with the switch mounted therein. The switch may be a shock sensitive switch.
The switch may comprise a first contact, a flexible metal strip, and a second contact located on a free end of the metal strip, the second contact touching the first contact when in a resting state.
The switch may further comprise a second flexible metal strip, and the first contact may be located at a free end of the second metal strip.
The guitar pick may further comprise an integrated fin extending away from the housing.
The sequence of notes data structures may be partitioned into a sequence of frames. Each frame of the sequence of frames may contain a corresponding group of notes data structures of the sequence of notes data structures and each frame of the sequence of frames may have a time stamp identifying its time location within the musical score. The digital processor may be programmed to identify a frame in the sequence of frames that corresponds to the measured time, and to select one member of the group of notes data structures for the identified frame, the selected member being the selected notes data structure.
The virtual musical instrument may further comprise an audio playback component for storing and playing back an audio track associated with the musical score. The digital processor may start both the timer and the audio playback component at the same time so that the notes generated by the synthesizer are synchronized with the playback of the audio track.
The audio track may omit a music track, the omitted music track being the musical score for the hand-held accessory.
The virtual musical instrument may further comprise a video playback component for storing and playing back a video track associated with the stored musical score. The digital processor may start both the timer and the video playback component at the same time so that the notes generated by the synthesizer are synchronized with the playback of the video track.
The audio playback component and/or the video playback component may comprise a CD-ROM player.
The hand-held accessory may comprise a drum stick.
The switch may comprise a contact switch.
The switch may comprise a shock sensitive switch.
In accordance with another aspect of the invention, there is provided a virtual musical instrument. The instrument comprises a hand-held accessory of a type that is intended to be brought into contact with a musical instrument so as to play that instrument, the hand-held accessory including a switch which, in response to the hand-held accessory being caused to strike another object by a person holding the hand-held accessory, generates an activation signal, the hand-held accessory comprising a guitar pick, a drum stick, or a glove that is worn when playing a keyboard. The instrument further comprises an audio synthesizer, a timer, and a memory storing a sequence of notes data structures for a musical score, each of the notes data structures representing a note or notes within the musical score and having an identified location in time relative to the other notes in the sequence of notes data structures. The instrument further comprises a digital processor receiving the activation signal from the hand-held accessory and generating a control signal therefrom. The digital processor is programmed to use the timer to measure a -5a-time at which the activation signal is generated, to use the measured time to select one of the notes data structures within the sequence of notes data structures, and to generate the control signal, wherein the control signal causes the synthesizer to generate the notes) represented by the selected notes data structure.
One advantage of the invention is that the input device which accesses the capabilities of the virtual music system is much simpler, less expensive to make, easier to use, and is far more versatile as compared to more sophisticated input devices that were described in the previous patent (i.e., U.S. Pat. No. 5,393,926).
Other aspects, features and advantages of the present invention will become apparent upon review of the following description of specific embodiments of the invention in conjunction with the accompanying drawings and claims.
Brief Description of the Drawings Fig. 1 is a block diagram of the virtual music system;
Fig. 2 is a block diagram of the audio processing plug-in board shown in Fig. 1;
Fig. 3 illustrates the partitioning of a hypothetical musical score into frames;
Fig. 4 shows the sframes[], lnote_array [], and hnotes array [] data structures and their relationship to one another;
Fig. 5 shows a pseudocode representation of the main program loop;
Fig. 6 shows a pseudocode representation of the play_song() routine that is called by the main program loop;

-5b-Figs . 7A and 7B show a pseudocode representation of the virtual_guitar_ callback() interrupt routine that is installed during initialization of the system;
Fig. 8 shows the sync_frame data structure;
Fig. 9 shows the lead_note data structure;
Fig. 10 shows the harmony_notes data structure;
Figs. 11A and B are two views of a guitar pick which contains a shock sensitive switch; and Fig. 12 shows a characteristic output signal of the guitar pick.
Detailed Description The present invention is an improvement on an invention which was described in U.S. Pat. No. 5,393,926 entitled Virtual Music System, filed June 7, 1993. The earlier invention employed a MIDI guitar which generates activation signals that are used by software to access notes of a song stored in memory. The improvement described herein is the use of a much simpler and more versatile input device for generating the activation signals that are used by the software. Instead of using a MIDI guitar, a guitar pick with an embedded activation device is used as the actuator. Before describing the pick and how it is used to generate the activation signals, the details of the virtual music system which uses the MIDI guitar will first be presented. With that as background, the modified input device (i.e., guitar pick) and the modifications which enable the pick to be used as the actuator will then be described.
the Virtual Music System Referring to Fig. 1, the virtual music system includes among its basic components a Personal Computer (PC) 2; a virtual instrument, which in the described embodiment is a MIDI guitar 4; and a CD-ROM player 6.
Under control of PC 2, CD-ROM player 6 plays back an interleaved digital audio and video recording of a song that a user has selected as the music that he also wishes to play on guitar 4. Stored in PC 2 is a song data file (not shown in Fig. 1) that contains a musical score that is to be played by MIDI guitar 4. It is, of course, for the guitar track of the same song that is being played on CD-ROM player 6.
MIDI guitar 4 is a commercially available instrument that includes a multi-element actuator, referred to more commonly as a set of strings 9, and a tremolo bar 11. Musical Instrument digital interface (MIDI) refers to a well known standard of operational codes for the real time interchange of music data. It is a serial protocol that is a superset of RS-232. When an element of the multi-element actuator (i.e., a string) is struck, guitar 4 generates a set of digital opcodes describing that event. Similarly, when tremolo bar 11 is used, guitar 4 generates an opcode describing that event.
As the user plays guitar 4, it generates a serial data stream of such "events" (i.e., string activations and tremolo events) that are sent to PC 2 which uses them to access and thereby play back the relevant portions of the stored song in PC 2. PC 2 mixes the guitar music with the audio track from CD-ROM player and plays the resulting music through a set of stereo speakers 8 while at the same time displaying the accompanying video image on a video monitor 10 that is connected to PC 2.
PC 2, which includes a 80486 processor, 16 megabytes of RAM, and 1 gigabyte of hard disk storage 9, uses a Microsoft"' Windows 3.1 Operating System. It is equipped with several plug-in boards. There is an audio processing plug-in board 12 (also shown in Fig. 2) which has a built in programmable MIDI synthesizer 22 (e.g. a Proteus synthesis chip) and a digitally programmable analog 2 channel mixer 24. There is also a video decompression/accelerator board 14 running under Microsoft's VideoForWindows'~ product for creating full-screen, full motion video from the video signal coming from CD-ROM player 6. Arrd there is a MIDI interface card 16 to which MIDI guitar 4 is connected through a MIDI
cable 18. PC 2 also includes a programmable timer chip that updates a clock register every millisecond.
On audio processing plug-in board 12, Proteus synthesis chip 22 synthesizes tones of specified pitch 20 and timbre in response to a serial data stream that is generated by MIDI guitar 4 when it is played. The synthesis chip includes a digital command interface that is programmable from an application program running under Windows 3.1. The digital. command interface receives MIDI
formatted data that indicate what notes to play at what velocity (i.e., volume). It interprets the data that it receives and causes the synthesizer to generate the appropriate notes having the appropriate volume. Analog mixer 24 mixes audio inpL2ts from CD-ROM player 9 with the Proteus chip generated waweforms to create a mixed stereo output signal that is sent to speakers 8. Video decompression/accelerator board 14 handles the accessing and display of the video image that is stored on a CD-ROM
disc along with a synchronized audio track. MIDI

WO 96!36034 PCT/LTS96/05046 _ g interface card 16 processes the signal from MIDI guitar 4.
When MIDI guitar 4 is played, it generates a .
serial stream of data that identifies what string was struck and with what force. This serial stream of data passes over cable 18 to MIDI interface card 16, which registers the data chunks and creates interrupts to the 80486. The MIDI Interface card's device driver code which is called as part of the 80486's interrupt service, reads the MIDI Interface card's registers and puts the MIDI data in an application program accessible buffer.
MIDI guitar 4 generates the following type of data. When a string is struck after being motionless for some time, a processor within MIDI guitar 4 generates a packet of MIDI formatted data containing the following opcodes:
MIDI STATUS = On MIDI NOTE = <note number>
MIDI VELOCITY = <amplitude>
The <note number> identifies which string was activated and the <amplitude> is a measure of the force with which the string was struck. When the plucked string's vibration decays to a certain minimum, then MIDI guitar 4 sends another MIDI data packet:
MIDI STATUS = Off MIDI NOTE = <note number>
MIDI VELOCITY = 0 This indicates that the tone that is being generated for .
the string identified by <note number> should be turned off .

W O 96!36034 PCT/US96/05046 g If the string is struck before its vibration has decayed to the certain minimum, MIDI guitar 4 generates two packets, the first turning off the previous note for that string and the second turning on a new note for the string.

The CD-ROM disc that is played on player 6 contains an interleaved and synchronized video and audio file of music which the guitar player wishes to play.

The video track could, far example, show a band playing the music, and the audio track would then contain the audio mix for that band raith the guitar track omitted.

The VideoForWindows product that runs under Windows 3.1 has an API (Application Program Interface) that enables the user to initiate and control the running of these Video-audio files from a C program.

The pseudocode for the main loop of the control program is shown in Fig. 5. The main program begins execution by first performing system initialization (step 100) and then calling a :register midi callback() routine that installs a new interrupt service routine for the MIDI interface card (step 102). The installed interrupt service effectively "creates" the virtual guitar. The program then enters a while-loop (step 104) in which it first asks the user to identify the song which will be played (step 106). It does this by calling a get song_id from user() routine. After the user makes his selection using for example a keyboard 26 (see Fig.

1) to select among a set of choices that are displayed on video monitor 10, the user's selection is stored in a song id variable that will be used as the argument of the next three routines which the main loop calls. Prior to beginning the song, the program calls a setup data_structures() routine that sets up the data structures to hold the contents of the song data file that was selected (step 108). The three data structures WO 96!36034 PCT/US96/05046 that will hod the song data are sframes[], !note array[], and hnotes array[].
During this phase of operation, the program also r sets up a timer resource on the PC that maintains a clock variable that is incremented every millisecond and it resets the millisecond clock variable to 0. As will become more apparent in the following description, the clock variable serves to determine the user's general location within the song and thereby identify which notes the user will be permitted to activate through his instrument. The program also sets both a current frame idx variable and a current lead note idx variable to 0. The current frame-idx variable, which is used by the installed interrupt routine, identifies the frame of the song that is currently being played. The current lead note_idx variable identifies the particular note within the lead note array that is played in response to a next activation signal from the user.
Next, the program calls another routine, namely, initialize data structures(), that retrieves a stored file image of the Virtual Guitar data for the chosen song from the hard disk and loads that data into the three previously mentioned arrays (step 110). After the data structures have been initialized, the program calls a play song() routine that causes PC 2 to play the selected song (step 112).
Referring to Fig. 6, when play song() is called, it first instructs the user graphically that it is about to start the song (optional) (step 130). Next, it calls another routine, namely, wait for user start signal(), which forces a pause until the user supplies a command which starts the song (step 132). As soon as the user , supplies the start command, the play song routine starts the simultaneous playback of the stored accompaniment, >
i.e., the synchronized audio and video tracks on CD-ROM

player 6 (step 134). In the described embodiment, this is an interleaved audio/video (.avi) file that is stored on a CD-ROM. It could, of course, be available in a number of different forms including, for example, a .WAV
digitized audio file or a Red Book Audio track on the CD-ROM peripheral.
Since the routine: are "synchronous" (i.e. do not return until playback is complete), the program waits for the return of the Windows Operating System call to initiate these playbacks. Once the playback has been started, every time a MIDI event occurs on the MIDI
guitar (i.e., each time a string is struck), the installed MIDI interrupt service routine processes that event. In general, the interrupt service routine calculates what virtual guitar action the real MIDI
guitar event maps to.
Before examining :in greater detail the data structures that are set up during initialization, it is useful first to describe the song data file and how it is organized. The song data file contains all of the notes of the guitar track in the sequence in which they are to be played. As illustrated by Fig. 3, which shows a short segment of a hypothetical score, the song data is partitioned into a sequence of frames 200, each one typically containing more than one and frequently many notes or chords of the song. Each frame has a start time and an end time, which locate the frame within the music that will be played. The start time of any given frame is equal to the end time of the previous frame plus 1 millisecond. In Fig. 3, the first frame extends from time 0 to time 6210 (i.e., O to 6.21 seconds) and the next frame extends from 6211 to 13230 (i.e., 6.211 to 13.23 seconds). The remainder of the song data file is - organized in a similar manner.

In accordance with the invention, the guitar player is able to "play" or generate only those notes that are within the "current" frame. The current frame is that frame whose start time and end time brackets the current time, i.e., the time that has elapsed since the song began. Within the current frame, the guitar player can play any number of the notes that are present but only in the order in which they appear in the frame. The pace at which they are played or generated within the time period associated with the current frame is completely determined by the user. In addition, the user by controlling the number of string activations also controls both the number of notes of a chord that are generated and the number of notes within the frame that actually get generated. Thus, for example, the player can play any desired number of notes of a chord in a frame by activating only that number of strings, i.e., by strumming the guitar. If the player does not play the guitar during a period associated with a given frame, then none of the music within that frame will be generated. The next time the user strikes or activates a string, then the notes of a later frame, i.e., the new current frame, will be generated.
Note that the pitch of the sound that is generated is determined solely by information that is stored in the data structures containing the song data. The guitar player needs only activate the strings. The frequency at which the string vibrates has no effect on the sound generated by the virtual music system. That is, the player need not fret the strings while paying in order to produce the appropriate sounds.
It should be noted that the decision about where to place the frame boundaries within the song image is a somewhat subjective decision, which depends upon the desired sound effect and flexibility that is given to the VI'O 96!36034 PCT/LTS96/05046 user. There are undoubtedly many ways to make these decisions. Chord changes could, for example, be used as a guide for where to place frame boundaries. Much of the choice should be left to the discretion of the music arranger who builds the database. As a rule of thumb, however, the frames should probably not be so long that the music when played with the virtual instrument can get far out of alignment with the accompaniment and they should not be so short that the performer has no real flexibility to modify or experiment with the music within a frame .
For the described embodiment, an ASCI editor was used to create a text based file containing the song data. Generation of the song data file can, of course, be done in many other ways. For example, one could produce the song data file by first capturing the song information off of a MIDI instrument that is being played and later add frame delimiters in to that set of data.
With this overview in mind, we now turn to a description of the previously mentioned data structures, which are shown in Fig. 4. The sframes[] array 200, which represents the sequence of frames for the entire song, is an array of synch frame data structures, one of which is shown in Fig. 8. Each synch frame data structure contains a frame start time variable that identifies the start time for the frame, a frame end time variable that identifies the send time of the frame and a !note idx variable that provides an index into both a !note array[] data structure 220 and an hnotes array[]
data structure 240.
The !note array[] 220 is an array of lead note - data structures, one of which is shown in Fig. 9. The !note array[] 220 represents a sequence of single notes ~ (referred to as "lead notes") for the entire song in the order in which they are played. Each lead note data WO 96!36034 PCT/US96/05046 structure represents a singly lead note and contains two entries, namely, a lead note variable that identifies the pitch of the corresponding lead note, and a time variable, which precisely locates the time at which the note is supposed to be played in the song. If a single note is to be played at some given time, then that note is the lead note. If a chord is to be played at some given time, then the lead note is one of the notes of that chord and hnote array[] data structure 240 identifies the other notes of the chord. Any convention can be used to select which note of the chord will be the lead note. In the described embodiment, the lead note is the chord note with the highest pitch.
The hnote array[] data structure 240 is an array of harmony_note data structures, one of which is shown in Fig. 10. The lnote_idx variable is an index into this array. Each harmony note data structure contains an hnote cnt variable and an hnotes[] array of size 10. The hnotes[] array specifies the other notes that are to be played with the corresponding lead note, i.e., the other notes in the chord. If the lead note is not part of a chord, the hnotes[] array is empty (i.e., its entries are all set to NULL). The hnote cnt variable identifies the number of non-null entries in the associated hnotes[]
array. Thus, for example, if a single note is to be played (i.e., it is not part of a chord), the hnote cnt variable in the harmony note data structure for that lead note will be set equal to zero and all of the entries of the associated hnotes[] array will be set to NULL.
As the player hits strings on the virtual guitar, the Callback routine which will be described in greater detail in next section is called for each event. After computing the harmonic frame, chord index and sub-chord index, this callback routine instructs the Proteus Synthesis chip in PC 2 to create a tone of the pitch that WO 96136034 PCTlUS96/05046 corresponds to the given frame, chord, sub-chord index.
The volume of that tone will be based on the MIDI
velocity parameter received with the note data from the MIDI guitar.
Virtual Instrumernt Mapping Figs. 7A and 7B show pseudocode for the MIDI
interrupt callback routime, i.e., virtual-guitar callback(). When invoked the routine invokes a get current time() routine which uses the timer resource to obtain the current time (step 200). It also calls another routine, i.e., get-guitar string event(~string id, &string velocity), to identify the event that was generated by the MIDI guitar (step 202). This returns the following information: (1) the type of event (i.e., ON, OFF, or TREMOLO control);
(2) on which string the event occurred (i.e. string-id);
and (3) if an ON event, with what velocity the string was struck (i.e. string velocity).
The interrupt routine contains a switch instruction which runs the code that is appropriate for the event that was generated (step 204). In general, the interrupt handler maps the MIDI guitar events to the tone generation of the Proteus Synthesis chip. Generally, the logic can be summarized as follows:
If an ON STRING EVENT has occurred, the program checks whether the current time matches the current frame (210). This is done by checking the timer resource to determine how much time nn the millisecond clock has elapsed since the start of the playback of the Video/Audio file. As noted above, each frame is defined ' as having a start time and an end time. If the elapsed time since the start of playback falls between these two times for a particular frame then that frame is the correct frame for the given time (i.e., it is the current frame). If the elapsed time falls outside of the time period of a selected frame, then it is not the current frame but some later frame is.
If the current time does not match the current frame, then the routine moves to the correct frame by , setting a frame variable i.e., current frame_idx, to the number of the frame whose start and end times bracket the current time (step 212). The current frame idx variable serves as an index into the sframe array. Since no notes of the new frame have yet been generated, the event which is being processed maps to the first lead note in the new frame. Thus, the routine gets the first lead note of that new frame and instructs the synthesizer chip to generate the corresponding sound (step 214). The routine which performs this function is start tone-gen() in Fig.
7A and its arguments include the string velocity and string_id from the MIDI formatted data as well as the identity of the note from the lnotes array. Before exiting the switch statement, the program sets the current_lead note idx to identify the current lead note (step 215) and it initializes an hnotes_played variable to zero (step 216). The hnotes_played variable determines which note of a chord is to be generated in response to a next event that occurs sufficiently close in time to the last event to qualify as being part of a chord.
In the case that the frame identified by the current_frame idx variable is not the current frame (step 218), then the interrupt routine checks whether a computed difference between the current time and the time of the last ON event, as recorded in a last time variable, is greater than a preselected threshold as -specified by a SIMULTAN THRESHOLD variable (steps 220 and 222). In the described embodiment, the preselected time is set to be of sufficient length (e.g on the order of about 20 milliseconds) so as to distinguish between events within a chord (i.e., approximately simultaneous z events) and events that are part of different chords.
If the computed time difference is shorter than . 5 the preselected thresholdl, the string ON event is treated as part of a "strum" or '°simultaneous" grouping that includes the last lead note that was used. In this case, the interrupt routine, using the lnote idx index, finds the appropriate block in the harmony notes array and, using the value of the hnotes_played variable, finds the relevant entry in h notes array of that block. It then passes the following infcarmation to the synthesizer (step 224) string velocity string_id hnotes array[current leadt note idx].hnotes[hnotes_played+
+]
which causes the synthesizer to generate the appropriate sound for that harmony nGte. Note that the hnotes~played variable is also incremented so that the next ON event, assuming it occurs within a preselected time of the last ON event, accesses the next note in the hnote[] array.
If the computed time difference is longer than the preselected threshold, the string event is not treated as part of a chord which contained the previous ON event;
rather it is mapped to the next lead note in the lead note array. The interrupt routine sets the current lead note idx index to the next lead note in the lead note array and starts the generation of that tone (step 226). It also resets the hnotes-played variable to 0 in preparation for accessing the harmony notes associated with that lead note, if any (step 228).

R'O 96!36034 PCT/US96/05046 If the MIDI guitar event is an OFF STRING
EVENT, then the interrupt routine calls an unsound note() routine which turns off the sound generation for that string (step 230). It obtains the string id from the MIDI event packet reporting the OFF event and passes this to the unsound note() routine. The unsound note routine then looks up what tone is being generated for the ON
Event that must have preceded this OFF event on the identified string and turns off the tone generation for that string.
If the MIDI guitar event is a TREMOLO event, the tremolo information from the MIDI guitar gets passed directly to synthesizer chip which produces the appropriate tremolo (step 232).
The Input Device In the invention described herein, a guitar pick with an internal shock sensitive switch is substituted for the MIDI guitar. The pick 300, which is shown in Figs. 11A and B, includes a plastic housing 302 with a hollow interior 303 in which is mounted a shock sensitive switch 304. On the outside perimeter of the enclosed housing there is an integrated plastic fin 306 which acts as the pick element. At one end of housing 302 there is a strain relief portion 307 extending away from the housing.
Shock sensitive switch 304 is any device which senses deceleration such as will occur when the user brings the pick into contact with an object. In the described embodiment, switch 304 includes two contacts 310 and 312, each located at the end of a corresponding flexible arms 314 and 316, respectively. The arms are made of a metal such as spring steel and are arranged so as to bias the contacts in a closed position when in a resting state. Also attached to the arms 314 and 316 at wo 96136034 PCTIUS96105046 their frees ends on the sides opposite from the contacts 310 and 312 are weights 315 and 317. The inertia of the weights 315 and 317 cause the spring arms 314 and 316 to flex when the pick experiences either acceleration or . 5 deceleration (e. g. a shock caused by striking the pick against another object).
Connected to arms 314 and 316 are wires 318 and 320 that pass through the strain relief portion at the end of the housing and connect to the computer, e.g.
where the MIDI guitar was connected.
When the pick is swept across the strings of a guitar or, for that matter, across any object, arms 314 and 316 of the shock sensitive switch inside of the pick flex away from their static rest positions and in so doing they separate and create an open circuit thereby causing the resistance between the contacts to increase substantially. When the spring arms return the contacts to their rest positions, i~he contacts will repeatedly bounce against each other until they finally come back to their rest positions. The MIDI interface circuit sees a voltage signal across the output lines of the switch that oscillates between zero when the contacts are shorted and some positive voltage when the contacts are open, as shown in Fig. 12.
The MIDI interface board detects the first opening of the switch (i.e., the transition from zero to some positive voltage) as an event and generates an interrupt which invokes the previously described interrupt routine.
The software is modified from that which is used for the MIDI guitar to perform a debouncing function on the input signal which prevents or disables the generation of any - further interrupts for a predetermined period after the first interrupt. In the described embodiment, the - predetermined period is ax>out 150 msec. During this period, the MIDI interface board ignores any subsequent events which are generated by the switch because of the oscillation that is occurring at the switch contacts.
Since the only input signal that is generated by the guitar pick is the single signal that is produced by the opening and closing of the switch, the MIDI interface board is modified in this embodiment to generate the MIDI
signals that would normally be received from the MIDI
guitar when all of the strings are activated. That is, for each string_id, the MIDI interface generates an ON
event and it sets the string velocity to some predefined value. To the system, it appears that the user has strummed all six strings of a guitar with the same force.
After the short delay period has elapsed (i.e., 150 cosec), the software is ready to detect the next activation event by the user. After a longer delay period the MIDI interface generates OFF events for each of the strings that have been activated.
In all other ways the system operates just as the previously described embodiment which used the MIDI
guitar. In other words, the modified guitar pick enables the user to access the capabilities of the previously described virtual instrument without having to use, or even own, a MIDI guitar. A simple tennis racket will do as the object against which the guitar pick can be strummed. In fact, if the bias of the arms within the switch is sufficiently light it is possible to cause the generation of an event simply by performing the action of playing a completely imaginary guitar (i.e., an "air"
guitar). That is, the acceleration and/or deceleration of the pick caused by pretending to play an imaginary guitar will be sufficient to cause the contacts to open.
In the shock sensitive switch described above, the -contacts were normally closed. A shock sensitive switch having contacts which are normally open could just as well have been used. In addition, other types of shock - al -sensitive switch (e. g. an accelerometers) could have bean used. Moreover, it should also be understood that an entirely different type of switch could be used. For example, it is possible to use a simple contact switch which detects whenever the user contacts an object with the guitar pick.
Moreover, the concept can be readily extended to other instruments which use and/or can be modified to use hand-held accessories like the guitar pick. For exampl~, drum sticks can be modified by adding a shock sensitive switch to the stick which generates a drum event whenever it is struck against another object. Or in the case of a piano, the user can wear gloves which have one or more switches mounted in the glove fingers. Every time the user pretends to play a piano by making the appropriate finger movements, the switches will generate piano or key events and this will. access the notes of the stored music through the software as previously described:
Having thus described illustrative embodiments of the imrention, it will be apparent that various alterations, modifications and improvements will readily occur to those skilled in the art. such obvious alterations, modifications and improvements, though not expressly described above, are nonetheless intended to be implied and are within the spirit and scope of the invention. Accordingly, the foregoing discussion is intended to be illustrative only, and not limiting; the invention is limited and defined only by the following claims and equivalents thereto.

Claims (16)

THE EMBODIMENTS OF THE INVENTION IN WHICH AN EXCLUSIVE
PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:
1. A virtual musical instrument comprising:
a hand-held accessory of a type that is intended to be brought into contact with a musical instrument so as to play that instrument, said hand-held accessory including a switch which, in response to said hand-held accessory being caused to strike another object by a person holding said hand-held accessory, generates an activation signal;

an audio synthesizer;

a memory storing a sequence of notes data structures for a musical score, each of said notes data structures representing a note or notes within said musical score and having an identified location in time relative to the other notes in said sequence of notes data structures;

a timer; and a digital processor receiving said activation signal from said hand-held accessory and generating a control signal therefrom, said digital processor programmed to use said timer to measure a time at which said activation signal is generated, said digital processor programmed to use said measured time to select one of the notes data structures within said sequence of notes data structures, and said digital processor programmed to generate said control signal, wherein said control signal causes said synthesizer to generate the note(s) represented by said selected notes data structure.
2. The virtual instrument of claim 1 wherein said hand-held accessory is a guitar pick comprising a housing defining an enclosed cavity with said switch mounted therein, said switch being a shock sensitive switch.
3. The virtual instrument of claim 2 wherein said switch comprises a first contact, a flexible metal strip, and a second contact located on a free end of said metal strip, said second contact touching said first contact when in a resting state.
4. The virtual instrument of claim 3 wherein said switch further comprises a second flexible metal strip, and wherein said first contact is located at a free end of said second metal strip.
5. The virtual instrument of claim 2 wherein said guitar pick further comprises an integrated fin extending away from said housing.
6. The virtual instrument of claim 1 wherein said sequence of notes data structures is partitioned into a sequence of frames, each frame of said sequence of frames containing a corresponding group of notes data structures of said sequence of notes data structures and wherein each frame of said sequence of frames has a time stamp identifying its time location within said musical score, and wherein said digital processor is programmed to identify a frame in said sequence of frames that corresponds to said measured time, and said digital processor is programmed to select one member of the group of notes data structures for the identified frame, said selected member being said selected notes data structure.
7. The virtual musical instrument of claim 1 further comprising an audio playback component for storing and playing back an audio track associated with said musical score, and wherein said digital processor starts both said timer and said audio playback component at the same time so that the notes generated by the synthesizer are synchronized with the playback of said audio track.
8. The virtual musical instrument of claim 7 wherein said audio track omits a music track, said omitted music track being said musical score for said hand-held accessory.
9. The virtual musical instrument of claim 7 further comprising a video playback component for storing and playing back a video track associated with said stored musical score, and wherein said digital processor starts both said timer and said video playback component at the same time so that the notes generated by the synthesizer are synchronized with the playback of said video track.
10. The virtual musical instrument of claim 9 wherein both the audio and video playback component comprise a CD-ROM player.
11. The virtual musical instrument of claim 1, wherein said hand-held accessory is a drum stick.
12. The virtual musical instrument of claim 11, wherein said switch comprises a contact switch.
13. The virtual musical instrument of claim 11, wherein said switch comprises a shock sensitive switch.
14. The virtual musical instrument of claim 1, wherein said switch comprises a shock sensitive switch.
15. The virtual musical instrument of claim 1, wherein said switch comprises a contact switch.
16. A virtual musical instrument comprising:

a hand-held accessory of a type that is intended to be brought into contact with a musical instrument so as to play that instrument, said hand-held accessory including a switch which, in response to said hand-held accessory being caused to strike another object by a person holding said hand-held accessory, generates an activation signal, said hand-held accessory selected from a group of accessories consisting of a guitar pick, a drum stick, and a glove that is worn when playing a keyboard;

an audio synthesizer;

a memory storing a sequence of notes data structures for a musical score, each of said notes data structures representing a note or notes within said musical score and having an identified location in time relative to the other notes in said sequence of notes data structures;

a timer; and a digital processor receiving said activation signal from said hand-held accessory and generating a control signal therefrom, said digital processor programmed to use said timer to measure a time at which said activation signal is generated, said digital processor programmed to use said measured time to select one of the notes data structures within said sequence of notes data structures, and and said digital processor programmed to generate said control signal, wherein said control signal causes said synthesizer to generate the note(s) represented by said selected notes data structure.
CA002220348A 1995-05-11 1996-04-12 A virtual music instrument with a novel input device Expired - Fee Related CA2220348C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/439,435 1995-05-11
US08/439,435 US5670729A (en) 1993-06-07 1995-05-11 Virtual music instrument with a novel input device
PCT/US1996/005046 WO1996036034A1 (en) 1995-05-11 1996-04-12 A virtual music instrument with a novel input device

Publications (2)

Publication Number Publication Date
CA2220348A1 CA2220348A1 (en) 1996-11-14
CA2220348C true CA2220348C (en) 2006-06-06

Family

ID=23744683

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002220348A Expired - Fee Related CA2220348C (en) 1995-05-11 1996-04-12 A virtual music instrument with a novel input device

Country Status (8)

Country Link
US (1) US5670729A (en)
EP (1) EP0834167B1 (en)
JP (2) JP3841828B2 (en)
AU (1) AU5390496A (en)
CA (1) CA2220348C (en)
DE (1) DE69628836T2 (en)
HK (1) HK1010262A1 (en)
WO (1) WO1996036034A1 (en)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067566A (en) * 1996-09-20 2000-05-23 Laboratory Technologies Corporation Methods and apparatus for distributing live performances on MIDI devices via a non-real-time network protocol
US5990405A (en) * 1998-07-08 1999-11-23 Gibson Guitar Corp. System and method for generating and controlling a simulated musical concert experience
JP2000030372A (en) 1998-07-09 2000-01-28 Pioneer Electron Corp Audio reproducing device
US6225547B1 (en) 1998-10-30 2001-05-01 Konami Co., Ltd. Rhythm game apparatus, rhythm game method, computer-readable storage medium and instrumental device
JP3088409B2 (en) 1999-02-16 2000-09-18 コナミ株式会社 Music game system, effect instruction interlocking control method in the system, and readable recording medium recording effect instruction interlocking control program in the system
GB2345374B (en) * 1999-03-31 2000-11-08 Peter Edward Simon Features of a music synthesizing system including electronic apparatus and devices
US7220912B2 (en) 1999-04-26 2007-05-22 Gibson Guitar Corp. Digital guitar system
JP3317686B2 (en) 1999-09-03 2002-08-26 コナミ株式会社 Singing accompaniment system
US6175070B1 (en) * 2000-02-17 2001-01-16 Musicplayground Inc. System and method for variable music notation
US6541692B2 (en) 2000-07-07 2003-04-01 Allan Miller Dynamically adjustable network enabled method for playing along with music
US6350942B1 (en) * 2000-12-20 2002-02-26 Philips Electronics North America Corp. Device, method and system for the visualization of stringed instrument playing
US6924425B2 (en) * 2001-04-09 2005-08-02 Namco Holding Corporation Method and apparatus for storing a multipart audio performance with interactive playback
US6388183B1 (en) 2001-05-07 2002-05-14 Leh Labs, L.L.C. Virtual musical instruments with user selectable and controllable mapping of position input to sound output
US6495748B1 (en) * 2001-07-10 2002-12-17 Behavior Tech Computer Corporation System for electronically emulating musical instrument
JP3879537B2 (en) * 2002-02-28 2007-02-14 ヤマハ株式会社 Digital interface of analog musical instrument and analog musical instrument having the same
US8242344B2 (en) * 2002-06-26 2012-08-14 Fingersteps, Inc. Method and apparatus for composing and performing music
US7786366B2 (en) * 2004-07-06 2010-08-31 Daniel William Moffatt Method and apparatus for universal adaptive music system
US7723603B2 (en) * 2002-06-26 2010-05-25 Fingersteps, Inc. Method and apparatus for composing and performing music
US7044857B1 (en) 2002-10-15 2006-05-16 Klitsner Industrial Design, Llc Hand-held musical game
US7193148B2 (en) * 2004-10-08 2007-03-20 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for generating an encoded rhythmic pattern
US7554027B2 (en) * 2005-12-05 2009-06-30 Daniel William Moffatt Method to playback multiple musical instrument digital interface (MIDI) and audio sound files
DE102006008260B3 (en) * 2006-02-22 2007-07-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Device for analysis of audio data, has semitone analysis device to analyze audio data with reference to audibility information allocation over quantity from semitone
DE102006008298B4 (en) * 2006-02-22 2010-01-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for generating a note signal
US7459624B2 (en) 2006-03-29 2008-12-02 Harmonix Music Systems, Inc. Game controller simulating a musical instrument
US7435178B1 (en) 2006-04-12 2008-10-14 Activision Publishing, Inc. Tremolo bar input for a video game controller
US20080268954A1 (en) * 2007-04-30 2008-10-30 Topway Electrical Appliance Company Guitar game apparatus
US8678896B2 (en) 2007-06-14 2014-03-25 Harmonix Music Systems, Inc. Systems and methods for asynchronous band interaction in a rhythm action game
US20090075711A1 (en) 2007-06-14 2009-03-19 Eric Brosius Systems and methods for providing a vocal experience for a player of a rhythm action game
US20090131170A1 (en) * 2007-11-16 2009-05-21 Raymond Yow Control button configuration for guitar-shaped video game controllers
AU2009206663A1 (en) 2008-01-24 2009-07-30 745 Llc Method and apparatus for stringed controllers and/or instruments
US20090258702A1 (en) * 2008-04-15 2009-10-15 Alan Flores Music video game with open note
US8608566B2 (en) * 2008-04-15 2013-12-17 Activision Publishing, Inc. Music video game with guitar controller having auxiliary palm input
US8827806B2 (en) 2008-05-20 2014-09-09 Activision Publishing, Inc. Music video game and guitar-like game controller
US8294015B2 (en) * 2008-06-20 2012-10-23 Randy Lawrence Canis Method and system for utilizing a gaming instrument controller
US8663013B2 (en) 2008-07-08 2014-03-04 Harmonix Music Systems, Inc. Systems and methods for simulating a rock band experience
WO2010006276A2 (en) * 2008-07-10 2010-01-14 Stringport Llc Computer interface for polyphonic stringed instruments
US9061205B2 (en) 2008-07-14 2015-06-23 Activision Publishing, Inc. Music video game with user directed sound generation
US8449360B2 (en) 2009-05-29 2013-05-28 Harmonix Music Systems, Inc. Displaying song lyrics and vocal cues
US8465366B2 (en) 2009-05-29 2013-06-18 Harmonix Music Systems, Inc. Biasing a musical performance input to a part
US9981193B2 (en) 2009-10-27 2018-05-29 Harmonix Music Systems, Inc. Movement based recognition and evaluation
WO2011056657A2 (en) 2009-10-27 2011-05-12 Harmonix Music Systems, Inc. Gesture-based user interface
US8636572B2 (en) 2010-03-16 2014-01-28 Harmonix Music Systems, Inc. Simulating musical instruments
US8299347B2 (en) 2010-05-21 2012-10-30 Gary Edward Johnson System and method for a simplified musical instrument
EP2579955B1 (en) 2010-06-11 2020-07-08 Harmonix Music Systems, Inc. Dance game and tutorial
US9358456B1 (en) 2010-06-11 2016-06-07 Harmonix Music Systems, Inc. Dance competition game
US8562403B2 (en) 2010-06-11 2013-10-22 Harmonix Music Systems, Inc. Prompting a player of a dance game
US9024166B2 (en) 2010-09-09 2015-05-05 Harmonix Music Systems, Inc. Preventing subtractive track separation
KR20150093971A (en) * 2014-02-10 2015-08-19 삼성전자주식회사 Method for rendering music on the basis of chords and electronic device implementing the same

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5146833A (en) * 1987-04-30 1992-09-15 Lui Philip Y F Computerized music data system and input/out devices using related rhythm coding
US4960031A (en) * 1988-09-19 1990-10-02 Wenger Corporation Method and apparatus for representing musical information
US5099738A (en) * 1989-01-03 1992-03-31 Hotz Instruments Technology, Inc. MIDI musical translator
US5074182A (en) * 1990-01-23 1991-12-24 Noise Toys, Inc. Multiple key electronic instrument having background songs each associated with solo parts which are synchronized with and harmonious with the background song
US5393926A (en) * 1993-06-07 1995-02-28 Ahead, Inc. Virtual music system

Also Published As

Publication number Publication date
CA2220348A1 (en) 1996-11-14
JPH11505626A (en) 1999-05-21
JP2000347657A (en) 2000-12-15
JP3398646B2 (en) 2003-04-21
JP3841828B2 (en) 2006-11-08
WO1996036034A1 (en) 1996-11-14
EP0834167A4 (en) 2000-03-08
US5670729A (en) 1997-09-23
EP0834167A1 (en) 1998-04-08
DE69628836T2 (en) 2004-05-13
HK1010262A1 (en) 1999-06-17
AU5390496A (en) 1996-11-29
EP0834167B1 (en) 2003-06-25
DE69628836D1 (en) 2003-07-31

Similar Documents

Publication Publication Date Title
CA2220348C (en) A virtual music instrument with a novel input device
US5393926A (en) Virtual music system
US5491297A (en) Music instrument which generates a rhythm EKG
US5074182A (en) Multiple key electronic instrument having background songs each associated with solo parts which are synchronized with and harmonious with the background song
US8246461B2 (en) Methods and apparatus for stringed controllers and/or instruments
CA2400400C (en) System and method for variable music notation
US5262585A (en) Electronic cymbal system
US6005181A (en) Electronic musical instrument
US8907201B2 (en) Device for producing percussive sounds
Livingston Paradigms for the new string instrument: digital and materials technology
JP2679725B2 (en) Electronic string instrument
Goudard et al. Data anticipation for gesture recognition in the air percussion
JPH01239595A (en) Electronic stringed instrument
Deliverable Models and Algorithms for Control of Sounding Objects

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed

Effective date: 20160412