DE69427873T2 - Musikinstrument mit erzeugung eines rhythmusdiagrammes - Google Patents
Musikinstrument mit erzeugung eines rhythmusdiagrammesInfo
- Publication number
- DE69427873T2 DE69427873T2 DE69427873T DE69427873T DE69427873T2 DE 69427873 T2 DE69427873 T2 DE 69427873T2 DE 69427873 T DE69427873 T DE 69427873T DE 69427873 T DE69427873 T DE 69427873T DE 69427873 T2 DE69427873 T2 DE 69427873T2
- Authority
- DE
- Germany
- Prior art keywords
- sequence
- time
- notes
- exciter
- score
- 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 - Lifetime
Links
- 230000033764 rhythmic process Effects 0.000 title description 10
- 238000010586 diagram Methods 0.000 title description 3
- 238000012545 processing Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 14
- 238000000034 method Methods 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 230000004913 activation Effects 0.000 claims description 6
- 238000001994 activation Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 6
- 230000005284 excitation Effects 0.000 claims 18
- 241000588769 Proteus <enterobacteria> Species 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000006837 decompression Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- ZYXYTGQFPZEUFX-UHFFFAOYSA-N benzpyrimoxan Chemical compound O1C(OCCC1)C=1C(=NC=NC=1)OCC1=CC=C(C=C1)C(F)(F)F ZYXYTGQFPZEUFX-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000994 depressogenic effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 125000000391 vinyl group Chemical group [H]C([*])=C([H])[H] 0.000 description 1
- 229920002554 vinyl polymer Polymers 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/32—Constructional details
- G10H1/34—Switch arrangements, e.g. keyboards or mechanical switches specially adapted for electrophonic musical instruments
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/0033—Recording/reproducing or transmission of music for electrophonic musical instruments
- G10H1/0041—Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
- G10H1/0058—Transmission between separate instruments or between individual components of a musical system
- G10H1/0066—Transmission between separate instruments or between individual components of a musical system using a MIDI interface
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/36—Accompaniment arrangements
- G10H1/361—Recording/reproducing of accompaniment for use with an external source, e.g. karaoke systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/36—Accompaniment arrangements
- G10H1/361—Recording/reproducing of accompaniment for use with an external source, e.g. karaoke systems
- G10H1/363—Recording/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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/36—Accompaniment arrangements
- G10H1/38—Chord
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/80—Features 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/8047—Music games
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2220/00—Input/output interfacing specifically adapted for electrophonic musical tools or instruments
- G10H2220/155—User input interfaces for electrophonic musical instruments
- G10H2220/191—Plectrum or pick sensing, e.g. for detection of string striking or plucking
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2240/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/011—Files or data streams containing coded musical information, e.g. for transmission
- G10H2240/046—File format, i.e. specific or non-standard musical file format used in or adapted for electrophonic musical instruments, e.g. in wavetables
- G10H2240/071—Wave, i.e. Waveform Audio File Format, coding, e.g. uncompressed PCM audio according to the RIFF bitstream format method
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Electrophonic Musical Instruments (AREA)
Description
- Die Erfindung betrifft mikroprozessorunterstützte Musikinstrumente.
- Mit weiterem Vordringen von Mikroprozessoren in den Markt tauchen mehr Produkte auf, welche es Menschen, die keine ordentliche Musikausbildung besitzen, ermöglicht, tatsächlich Musik wie ein ausgebildeter Musiker zu produzieren. Einige auftretende Instrumente und Vorrichtungen speichern die Partitur in digitaler Form und geben sie als Antwort auf Eingangssignale, welche durch den Benutzer erzeugt werden, wenn das Instrument gespielt wird, wieder. Da die Musik in dem Instrument gespeichert wird, muß der Benutzer nicht die benötigten Töne der Melodie erzeugen können, sondern muß nur die Fähigkeit besitzen, den Rhythmus des bestimmten Liedes oder Musikstücks, welches gespielt wird, nachzustellen. Diese Instrumente und Vorrichtungen machen Musik für alle Menschen viel zugänglicher.
- Unter den verfügbaren Instrumenten gibt es eine Anzahl von mechanischen und elektrischen Spielzeugprodukten, welche dem Spieler erlauben, durch die einzelnen Töne einer Melodie zu schreiten. Die einfachste Form hiervon sind kleine klavierförmige Spielzeuge, welche eine oder ein paar Tasten aufweisen, welche, wenn sie niedergedrückt werden, die Melodie um eine Note vorrücken lassen und den nächsten Ton in der Melodie, welche auf einer mechanischen Walze kodiert ist, anstimmen. Die elektrische Version dieser Fähigkeit kann in einigen elektronischen Keyboards gesehen werden, welche einen so genannten "single key play" genannten Modus aufweisen, durch welchen eine Abfolge von Tönen, die der Spieler auf dem Keyboard gespielt und aufgezeichnet hat, durch aufeinanderfolgendes Drücken der "single key play"-Taste (An/Aus- Schalter) mit dem Rhythmus der homophonen Melodie erneut "gespielt" werden kann. Immer, wenn die Taste gedrückt wird, wird der nächste Ton in der Melodie gespielt.
- Es gab ein Instrument namens "sequential drum", welches sich in einer ähnlichen Form verhielt. Wenn die Trommel geschlagen wurde, erzeugte ein piezoelektrischer Tonabnehmer ein An/Aus-Ereignis, welches ein Computer registrierte und dann als einen Auslöser verwendete, um den nächsten Ton in einer melodischen Tonfolge anzustimmen.
- Es gibt auch Aufzeichnungen, welche für eine Vielzahl von Musikrichtungen angefertigt werden, in denen ein einzelnes Instrument oder, im häufigeren Fall, die Vokalpartie eines Liedes von der Tonmischung einer Gruppenaufnahme wie etwa einer Rockband oder einem Orchester weggelassen wird. Diese Aufzeichnungen, welche auf Vinyl-Schallplatten, Magnetbändern und CDs verfügbar sind, waren die Grundlage für die kommerziellen Produkte, welche als MusicMinusOne bekannt sind, und für das sehr populäre aus Japan kommende Karaoke. US-4,960,031 offenbart ein Verfahren zum elektronischen Verarbeiten und Speichern musikalischer Informationen.
- Gemäß der vorliegenden Erfindung wird ein Musikinstrument, wie in Anspruch 1 beansprucht, und ein Verfahren gemäß Anspruch 8 offenbart.
- Allgemein wird ein virtuelles Musikinstrument offenbart, welches einen Mehrelementerreger, welcher eine Mehrzahl von Signalen als Antwort auf ein Spiel eines Benutzer erzeugt; einen Audiosynthesizer, welcher hörbare Töne als Antwort auf Steuersignale erzeugt; einen Speicher, welcher eine Partitur für den Mehrelementerreger speichert; und einen Digitalprozessor, welcher die Mehrzahl von Signalen von dem Mehrelementerreger empfängt und einen ersten Satz von Steuersignalen daraus erzeugt, enthält. Die Partitur enthält eine Abfolge von Melodienoten und eine zugeordnete Abfolge von Harmonienotendatenfeldern, wobei jedes Harmonienotendatenfeld der Abfolge einer anderen der Melodienoten entspricht und keine, eine oder mehrere Harmonienoten enthält. Der Digitalprozessor ist dazu programmiert, aus der Abfolge von Melodienoten in der gespeicherten Partitur eine Melodienote zu identifizieren, welche einem ersten der Mehrzahl von Signalen entspricht. Er ist dazu programmiert, einen Satz des Rests der Mehrzahl von Signalen mit welchen Harmonienoten auch immer zu verknüpfen, welche der ausgewählten Melodienote zugeordnet sind, falls solche existieren. Er ist des Weiteren dazu programmiert, den ersten Satz von Steuersignalen aus der identifizierten Melodienoten und den Harmonienoten, mit welchen die Signale der Mehrzahl von Signalen verknüpft sind, zu erzeugen, wobei der erste Satz von Steuersignalen den Synthesizer dazu veranlaßt, Klänge zu erzeugen, welche die identifizierte Melodienote und die verknüpften Harmonienoten darstellen.
- Bevorzugte Ausführungsformen enthalten die folgenden Merkmale. Der Mehrelementerreger ist ein elektronisches Musikinstrument, nämlich eine MIDI-Gitarre, und die Mehrzahl von Mehrelementerregern enthält Saiten der Gitarre. Das virtuelle Musikinstrument enthält weiter eine Zeitgebereinrichtung, welche eine Messung verstrichener Zeit erzeugt, wobei die gespeicherte Partitur Zeitinformationen enthält, welche anzeigt, wann Noten der Partitur gespielt werden können, und wobei der Digitalprozessor die Melodienote unter Verwendung der Zeitgebereinrichtung zum Messen einer Zeit, zu welcher das erste der Mehrzahl von Signalen aufgetreten ist, identifiziert, und welche dann eine Melodienote innerhalb der Abfolge von Melodienoten lokalisiert, welche der gemessenen Zeit entspricht. Der Digitalprozessor ist weiter dazu programmiert, ein Element des Satzes des Rests der Mehrzahl von Signalen unter Verwendung der Zeitgebereinrichtung zum Messen einer Zeit, welche verstrichen ist, seitdem ein vorausgehendes Signal der Mehrzahl von Signalen aufgetreten ist, durch Vergleichen der verstrichenen Zeit mit einer vorausgewählten Schwelle und, falls die verstrichene Zeit kürzer als die vorausgewählte Schwelle ist, durch Verknüpfen des Elements des Satzes des Rests der Mehrzahl von Signalen mit einer Note in dem Harmoniedatenfeld, welches der identifizierten Melodienote zugeordnet ist, zu identifizieren. Der Digitalprozessor ist auch dazu programmiert, das Element des Rests der Mehrzahl von Signalen mit einer nächsten Melodienote zu verknüpfen, falls die verstrichene Zeit größer als die vorausgewählte Schwelle ist.
- Es wird ebenfalls ein virtuelles Musikinstrument offenbart, welches einen Erreger, welcher ein Signal als Antwort auf eine Aktivierung durch einen Benutzer erzeugt; einen Audiosynthesizer; einen Speicher, welcher eine Partitur für den Erreger speichert; einen Timer; und einen Digitalprozessor, welcher das Signal von dem Erreger empfängt und daraus ein Steuersignal erzeugt, enthält. Die gespeicherte Partitur enthält eine Abfolge von Noten, welche in eine Abfolge von Rahmen eingeteilt sind, wobei jeder Rahmen der Abfolge von Rahmen eine entsprechende Gruppe von Noten der Abfolge von Noten enthält, und wobei jeder Rahmen der Abfolge von Rahmen einen Zeitstempel, welcher seine Zeitstellung innerhalb der Partitur identifiziert, aufweist. Der Digitalprozessor ist dazu programmiert, den Timer zu benutzen, um eine Zeit zu messen, zu welcher das Signal erzeugt wird; er ist dazu programmiert, einen Rahmen in der Abfolge von Rahmen zu identifizieren, welcher dieser gemessenen Zeit entspricht; er ist dazu programmiert, ein Element der Gruppe von Noten für den identifizierten Rahmen auszuwählen; und er ist dazu programmiert, das Steuersignal zu erzeugen, wobei das Steuersignal den Synthesizer dazu veranlaßt, einen Klang zu erzeugen, welcher das ausgewählte Element der Gruppe von Noten für den identifizierten Rahmen darstellt.
- In bevorzugten Ausführungsformen enthält das virtuelle Musikinstrument weiter eine Audiowiedergabekomponente zum Speichern und Wiedergeben einer Tonspur, welche der gespeicherten Partitur zugeordnet ist. Außerdem ist der Digitalprozessor dazu programmiert, sowohl den Timer als auch die Audioplaybackkomponente zur selben Zeit zu starten, sodaß der identifizierte Rahmen mit der Wiedergabe der Tonspur synchronisiert wird. Die Tonspur läßt eine Musikspur weg, wobei die weggelassene Musikspur die Partitur für den Erreger ist. Das virtuelle Musikinstrument enthält auch eine Videoplaybackkomponente zum Speichern und Wiedergeben einer Bildspur, welche der gespeicherten Partitur zugeordnet ist. Der Digitalprozessor startet sowohl den Timer als auch die Videoplaybackkomponente zur selben Zeit, sodaß der identifizierte Rahmen mit der Wiedergabe der Bildspur synchronisiert wird.
- Es wird auch eine Steuereinrichtung offenbart, welche ein Medium einschließt, welches gespeicherte digitale Informationen enthält, wobei die gespeicherte digitale Information eine Partitur für das vorstehend beschriebene virtuelle Instrument einschließt und wobei die Partitur in eine Abfolge von Rahmen eingeteilt ist.
- Allgemein wird auch ein Verfahren zum Erzeugen einer digitalen Datei für eine Partitur offenbart. Das Verfahren beinhaltet die Schritte des Erzeugens einer Folge von digitalen Daten, welche den Noten in der Partitur entsprechen; des Einteilens der Datenfolge in eine Abfolge von Rahmen, von welchen manche mehr als eine Note der Partitur enthalten; des Zuweisens eines Zeitstempels an jeden der Rahmen, wobei der Zeitstempel für jeden gegebenen Rahmen eine Zeit darstellt, zu welcher dieser Rahmen in der Partitur auftritt; und des Speicherns der Abfolge von Rahmen entlang der zugeordneten Zeitstempel auf einem maschinenlesbaren Medium.
- In bevorzugten Ausführungsformen enthält der Zeitstempel für jeden der Rahmen eine Startzeit für diesen Rahmen und eine Endzeit für diesen Rahmen. Die Partitur enthält Akkorde, und der Schritt des Erzeugens einer Folge von digitalen Daten beinhaltet das Erzeugen einer Abfolge von Melodienoten und einer entsprechenden Abfolge von Harmonienoten- bzw. Harmonienotendatenfeldern, wobei jedes der Harmonienotendatenfelder einer unterschiedlichen der Melodienoten in der Abfolge von Melodienoten entspricht und jedes der Harmonienotendatenfelder die anderen Noten eines beliebigen Akkords enthält, zu welchem die Melodienote gehört.
- Es wird auch ein Musikinstrument offenbart, welches einen Erreger, welcher eine Mehrzahl von Signalen als Antwort auf das Spiel eines Benutzers erzeugt; einen Audiosynthesizer, welcher hörbare Töne als Antwort auf Steuersignale erzeugt; einen Speicher, welcher eine Partitur für den Erreger speichert; eine Videoanzeigeeinheit; und eine digitale Verarbeitungseinrichtung, welche den Audiosynthesizer und die Videoabspieleinheit steuert, enthält. Die gespeicherte Partitur enthält eine Abfolge von Melodienoten, von denen jede einen zugeordneten Zeitstempel einschließt, um eine Zeit zu identifizieren, zu welcher sie innerhalb der Partitur gespielt werden sollen. Die digitale Verarbeitungseinrichtung ist dazu programmiert, die Mehrzahl von Signalen mit einer entsprechenden Unterabfolge von Melodienoten aus der Abfolge von Melodienoten zu verknüpfen; sie ist dazu programmiert, aus der Unterabfolge von Melodienoten eine Abfolge von Steuersignalen zum Veranlassen des Synthesizers, Klänge zu erzeugen, welche die Unterabfolge von Melodienoten darstellen, herzustellen; und sie ist dazu programmiert, ein Lied-EKG auf der Videoanzeigeeinheit anzuzeigen. Das Lied-EKG ist eine Spur, welche als eine Funktion der Zeit anzeigt, wann die Melodienoten der Abfolge von Melodienoten von dem Benutzer gespielt werden sollen, und es enthält eine relative Indikatormarkierung als eine Funktion der verstrichenen Echtzeit, bei der sich der Benutzer innerhalb der Partitur befinden soll.
- Ein Vorteil der bevorzugten Ausführungsform ist, daß, nachdem die Melodienoten in einer Datei gespeichert werden, der Spieler des virtuellen Instruments nicht wissen muß, wie die Noten des Liedes zu erzeugen sind. Der Spieler kann einfach durch Erzeugen von Aktivierungssignalen mit dem Instrument die erforderlichen Töne erzeugen. Ein weiterer Vorteil ist, daß sie sicherstellt, daß der Spieler des virtuellen Instruments mit dem Lied Schritt halten wird, dem Spieler aber doch noch beträchtliche Freiheit beim Erzeugen der Musik innerhalb vordefinierter Rahmen der Partitur gibt. Außerdem wird der Benutzer in die Lage versetzt, basierend auf der Anzahl von Saiten (im Fall einer Gitarre), welche er anschlägt oder klimpert, eine oder mehrere Töne eines Akkords zu erzeugen. Auch wenn die eigentliche Partitur einen Akkord an einer bestimmten Stelle in dem Lied verlangen mag, kann der Spieler des Musikinstruments deshalb entscheiden, weniger als alle der Töne dieses Akkords zu erzeugen.
- Das Rhythmus-EKG stellt ein wirksames Werkzeug zur Verfügung, um Anfängern zu helfen, zu lernen, wie das Musikinstrument gespielt wird.
- Andere Vorteile und Merkmale werden aus der nachfolgenden Beschreibung der bevorzugten Ausführungsform und aus den Ansprüchen offenbar.
- Vielfältige Ausführungsformen der vorliegenden Erfindung werden nun nur als Beispiel und unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, wobei:
- Fig. 1 ein Blockdiagramm des virtuellen Musiksystems ist;
- Fig. 2 ein Blockdiagramm der in Fig. 1 gezeigten tonverarbeitenden Einschubkarte bzw. Soundkarte ist;
- Fig. 3 die Einteilung einer hypothetischen Partitur in Rahmen darstellt;
- Fig. 4 die Strukturen sframes, lnote_array und hnotes_array und deren Beziehung untereinander zeigt;
- Fig. 5 eine Pseudocodedarstellung der Hauptprogrammschleife zeigt;
- Fig. 6 eine Pseudocodedarstellung der Routine play_song (), welche von der Hauptprogrammschleife aufgerufen wird, zeigt;
- Fig. 7A und 7B eine Pseudocodedarstellung der Interruptroutine virtual_guitar_callback(), welche während der Initialisierung des Systems installiert wird, zeigen;
- Fig. 8 die Datenstruktur sync_frame zeigt;
- Fig. 9 die Datenstruktur lead_note zeigt;
- Fig. 10 die Datenstruktur harmony_notes zeigt;
- Fig. 11 ein Lied-EKG zeigt, wie es für einen Benutzer angezeigt wird;
- Fig. 12 ein Lied-EKG zeigt, in welchem das angezeigte Signal eine Polarität aufweist, um eine Schlagrichtung anzuzeigen;
- Fig. 13 ein Lied-EKG zeigt, in welchem die Amplitude der Spitzen die Heftigkeit anzeigt, mit welcher der Spieler anschlagen soll;
- Fig. 14 ein Lied-EKG und ein Spieler-EKG zeigt; und
- Fig. 15 einen beispielhaften Auswertungsalgorithmus für eine Farbcodierung des Spieler-EKGs zeigt.
- Unter Bezugnahme auf Fig. 1 beinhaltet ein virtuelles Musiksystem, welches in Übereinstimmung mit der Erfindung aufgebaut ist, unter seinen Basiskomponenten einen Einzelplatzrechner (PC) 2; ein virtuelles Instrument, welches in der beschriebenen Ausführungsform eine MIDI-Gitarre 4 ist; und ein CD-ROM-Wiedergabegerät 6. Unter Steuerung des PC 2 spielt das CD-ROM-Wiedergabegerät 6 eine verzahnte digitale Ton- und Bildaufzeichnung eines Lieds ab, welches der Benutzer als die Musik ausgewählt hat, die er auch auf der Gitarre 4 zu spielen wünscht. In dem PC 2 ist eine Lieddatendatei (nicht in Fig. 1 gezeigt) gespeichert, welche eine auf der MIDI-Gitarre 4 zu spielende Partitur enthält. Es handelt sich natürlich um die Gitarrenstimme desselben Liedes, welches auf dem CD- ROM-Wiedergabegerät 6 abgespielt wird.
- Die MIDI-Gitarre 4 ist ein im Handel erhältliches Instrument, welches einen Mehrelementerreger, üblicherweise als ein Satz von Saiten 9 bezeichnet, und einen Tremolohebel 11 beinhaltet. Musical Instrument Digital Interface (MIDI) bezeichnet einen wohlbekannten Standard von Operationscodes für die Echtzeitübertragung von Musikdaten. Es ist ein serielles Protokoll, welches eine Obermenge des RS-232 ist. Wenn ein Element des Mehrelementerregers (d.h. eine Saite) angeschlagen wird, erzeugt die Gitarre 4 einen Satz von digitalen Operationscodes, welche dieses Ereignis beschreiben. In ähnlicher Weise erzeugt die Gitarre 4, wenn der Tremolohebel 11 verwendet wird, einen Operationscode, welche dieses Ereignis beschreibt. Wenn der Benutzer die Gitarre 4 spielt, erzeugt sie einen seriellen Datenstrom solcher "Ereignisse" (d.h. Saitenaktivierungen und Tremoloereignisse), der an den PC 2 gesendet wird, welcher diese verwendet, um in dem PC 2 auf relevante Teile des gespeicherten Lieds zuzugreifen und sie dadurch wiederzugeben. Der PC 2 mischt die Gitarrenmusik mit der Tonspur von dem CD-ROM-Wiedergabegerät und spielt die resultierende Musik über einen Satz von Stereolautsprechern 8 ab, während er zur selben Zeit das begleitende Videobild auf einem mit dem PC 2 verbundenen Videomonitor 10 anzeigt.
- Der PC 2, welcher einen 80486-Prozessor, 16 Megabytes RAM und 1 Gigabyte Festplattenspeicher 9 enthält, verwendet ein MicrosoftTM Windows 3.1-Betriebssystem. Er ist mit mehreren Steckkarten ausgerüstet. Es gibt eine Tonverarbeitungssteckkarte bzw. Soundkarte 12 (ebenfalls in Fig. 2 gezeigt), welche einen eingebauten programmierbaren MIDI-Synthesizer 22 (z.B. einen Proteus-Syntesizerchip) und einen digitalen programmierbaren analogen Zweikanalmischer 24 aufweist. Es gibt ebenfalls eine Bilddekompressions/Beschleunigetkarte bzw. Grafikkarte 14, welche unter dem Microsoft-Produkt VideoForWindowsTM läuft, zum Erzeugen eines bildschirmfüllenden Bewegtbildes aus dem Bildsignal, welches von dem CD-ROM-Wiedergabegerät 6 kommt. Des weiteren gibt es eine MIDI-Schnittstellenkarte 16, mit welcher die MIDI-Gitarre 4 durch ein MIDI-Kabel 18 verbunden ist. Der PC 2 enthält ebenfalls einen programmierbaren Timerchip 20, welcher ein Uhrregister jede Millisekunde aktualisiert.
- Auf der Soundkarte 12 synthetisiert der Proteus- Synthesizerchip 22 Töne von genau bezeichneter Tonhöhe und Klangfarbe als Antwort auf einen seriellen Datenstrom, welcher durch die MIDI-Gitarre 4 erzeugt wird, wenn sie gespielt wird. Der Synthesizerchip enthält eine digitale Kommandoschnittstelle, welche aus einem unter windows 3.1 laufenden Anwendungsprogramm programmierbar ist. Die digitale Kommandoschnittstelle empfängt formatierte MIDI-Daten, die anzeigen, welche Noten mit welcher Geschwindigkeit (d.h. Lautstärke) zu spielen sind. Sie interpretiert die Daten, die sie empfängt, und veranlaßt den Synthesizer dazu, die passenden Töne mit der passenden Lautstärke zu erzeugen. Der Analogmischer 24 mischt Toneingänge von dem CD-ROM-Wiedergabegerät 6 mit den vom Proteus-Chip erzeugten Wellenformen, um ein gemischtes Stereoausgangssignal zu erzeugen, das an die Lautsprechern 8 gesendet wird. Die Bilddekompressions/Beschleunigerkarte 14 behandelt das Zugreifen auf das Videobild, welches zusammen mit einer synchronisierten Tonspur auf einer CD-ROM-Platte gespeichert ist, und das Anzeigen desselben. Die MIDI-Schnittstellenkarte 16 verarbeitet das Signal von der MIDI-Gitarre 4.
- Wenn die MIDI-Gitarre 4 gespielt wird, erzeugt sie einen seriellen Datenstrom, der identifiziert, welche Saite angeschlagen wurde und mit welcher Kraft. Dieser serielle Datenstrom strömt über das Kabel 18 zu der MIDI- Schnittstellenkarte 16, welche die Datenstücke registriert und Interrupts für den 80486 erzeugt. Der Gerätetreibercode der MIDI-Schnittstellenkarte, welcher als Teil des Interruptdienstes des 80486 aufgerufen wird, liest die Registrierungen der MIDI-Schnittstellenkarte und bringt die MIDI-Daten in einen durch ein Anwendungsprogramm abgreifbaren Puffer ein.
- Die MIDI-Gitarre 4 erzeugt den folgenden Datentyp. Wenn eine Saite angeschlagen wird, nachdem sie einige Zeit bewegungslos war, erzeugt ein Prozessor innerhalb der MIDI-Gitarre 4 ein Paket formatierter MIDI-Daten, welche die folgenden Operationscodes enthalten:
- MIDI_STATUS = ON
- MIDI_NOTE = < note number>
- MIDI_VELOCITY = < amplitude>
- < note number> identifiziert, welche Saite aktiviert wurde, und < amplitude> ist ein Maß für die Kraft, mit welcher die Saite angeschlagen wurde. Wenn die Schwingung der gezupften Saite auf ein bestimmtes Minimum abfällt, sendet die MIDI-Gitarre 4 ein anderes MIDI-Datenpaket.
- MIDI_STATUS = OFF
- MIDI_NOTE = < note number>
- MIDI_VELOCITY = 0
- Dies zeigt an, daß der Ton, der für die durch < note number> identifizierten Saite erzeugt wird, abgeschaltet werden sollte.
- Falls die Saite angeschlagen wird, bevor ihre Schwingung auf ein bestimmtes Minimum abgefallen ist, erzeugt die MIDI-Gitarre 4 zwei Pakete, wobei das erste den vorhergehende Ton für diese Saite abschaltet und das zweite einen neuen Ton für diese Saite einschaltet.
- Die CD-ROM-Platte, welche auf dem Wiedergabegerät 6 abgespielt wird, enthält eine verzahnte und synchronisierte Bild- und Tondatei einer Musik, welche der Gitarrist zu spielen wünscht. Die Bildspur könnte z. B. eine die Musik spielende Gruppe zeigen, und die Tonspur würde dann die Tonmischung für diese Gruppe bei weggelassener Gitarrenstimme enthalten. Das Produkt VideoForWindows, welches unter Windows 3.1 läuft, besitzt eine API (Application Program Interface), welche den Benutzer in die Lage versetzt, den Ablauf dieser Bild/Tondatei aus einem C-Programm heraus zu initiieren und zu steuern.
- Der Pseudocode für die Hauptschleife des Steuerprogramms wird in Fig. 5 gezeigt. Das Hauptprogramm beginnt seine Ausführung, indem es zuerst eine Systeminitialisierung durchführt (Schritt 100) und dann eine Routine register_midi_callback() aufruft, welche eine neue Interruptdienstroutine für die MIDI-Schnittstellenkarte installiert (Schritt 102). Der installierte Interruptdienst "erschafft" im Prinzip die virtuelle Gitarre. Das Programm tritt dann in eine while-Schleife ein (Schritt 104), in welcher es zuerst den Benutzer dazu auffordert, das Lied, welches gespielt werden wird, zu identifizieren (Schritt 106). Es bewerkstelligt dies durch Aufruf einer Routine get_song_id_from_user(). Nachdem der Benutzer unter Verwendung. z.B. einer Tastatur 26 (siehe Fig. 1) seine Auswahl getroffen hat, um aus einem Satz von Auswahlmöglichkeiten, die auf dem Videomonitor 10 angezeigt werden, auszuwählen, wird die Auswahl des Benutzers in einer Variable son_gid gespeichert, welche als Argument der nächsten drei Routinen, welche die Hauptschleife aufruft, verwendet wird. Bevor es das Lied beginnt, ruft das Programm eine Routine set_up_data structures() auf, welche die Datenstrukturen einrichtet, um die Inhalte der Lieddatendatei, die ausgewählt wurde, zu enthalten (Schritt 108). Die drei Datenstrukturen, welche die Lieddaten halten werden, sind sframes, lnote_array, und hnotes_array.
- Während dieser Operationsphase stellt das Programm auf den PC auch eine Zeitgebereinrichtung ein, welche eine zu jeder Millisekunde erhöhte Zeitvariable aufrechterhält, und es setzt die Millisekundenzeitvariable auf 0 zurück. Wie aus der folgenden Beschreibung leichter ersichtlich, dient die Zeitvariable dazu, die allgemeine Position des Benutzers innerhalb des Liedes festzustellen und dadurch die Noten zu identifizieren, die dem Benutzer mit seinen Instrument zu aktivieren gestattet sind. Das Programm setzt auch sowohl eine Variable current_ frame_idx und eine Variable current_lead_note_idx auf 0. Die Variable current_frame_idx, welche von der installierten Interruptroutine benutzt wird, identifiziert den Rahmen des gerade gespielten Liedes. Die Variable current_lead_note_idx identifiziert die bestimmte Note innerhalb des Datenfeldes lead_note, welche als Antwort auf ein nächstes Aktivierungssignal von dem Benutzer gespielt wird.
- Als nächstes ruft das Programm eine andere, nämlich die Routine initialize_data_structures() auf, welche ein gespeichertes Dateiabbild der Daten der virtuellen Gitarre für das ausgewählte Lied auf der Festplatte wiederfindet und diese Daten in die drei vorstehend erwähnten Datenfelder lädt (Schritt 110). Nachdem die Datenstrukturen initialisiert worden sind, ruft das Programm eine Routine play_song() auf, welche den PC 2 dazu veranlaßt, das ausgewählte Lied zu spielen (Schritt 112).
- Unter Bezugnahme auf Fig. 6 instruiert play_song() beim Aufruf den Benutzer auf graphische Weise zunächst, daß es das Lied beginnen wird (optional) (Schritt 130). Als nächstes ruft es eine andere, nämlich die Routine wait_tor_user_start_signal() auf, welche eine Unterbrechung erzwingt, bis der Benutzer einen Befehl eingibt, der das Lied beginnt (Schritt 132). Sobald der Benutzer den Startbefehl liefert, beginnt die Routine play_song die simultante Wiedergabe der gespeicherten Begleitung, d.h. der synchronisierten Ton- und Bildspuren auf dem CD- ROM-Wiedergabegerät 6 (Schritt 134). In der beschriebenen Ausführungsform ist dies eine verzahnte Audio/Video- (.avi)-Datei, welche auf einer CD-ROM gespeichert ist. Es könnte natürlich in einer Anzahl verschiedener Formen vorliegen, einschließlich z.B. einer digitalisierten .wav-Audiodatei oder eine RedBookAudio-Spur auf dem CD- ROM-Peripheriegerät.
- Nachdem die Routinen "synchron" sind (d.h. nicht zurückspringen, bevor die Wiedergabe vollständig ist), wartet das Programm auf die Rückkehr des Aufrufs des Windows-Betriebssystems, diese Wiedergaben zu initiieren. Nachdem die Wiedergabe einmal begonnen wurde, verarbeitet dae installierte MIDI-Interruptserviceroutine jedes Mal, wenn ein MIDI-Ereignis auf der MIDI-Gitarre auftritt (d.h. immer wenn eine Saite angeschlagen wird), dieses Ereignis. Im allgemeinen berechnet die Interruptdienstroutine, zu welchem Vorgang der virtuellen Gitarre das reale MIDI-Gitarrenereignis paßt.
- Vor einer genaueren Untersuchung der Datenstrukturen, die während der Initialisierung eingestellt werden, ist es nützlich, zunächst die Lieddatendatei zu beschreiben und wie sie organisiert ist. Die Lieddatendatei enthält alle Noten der Gitarrenstimme in der Abfolge, in welcher sie gespielt werden sollen. Wie durch Fig. 3 illustriert, welche ein kurzes Segment einer hypothetischen Partitur zeigt, werden die Lieddaten in eine Abfolge von Rahmen 200 aufgeteilt, von denen jeder typischerweise mehr als eine und häufig viele Noten oder Akkorde des Liedes enthält. Jeder Rahmen hat eine Startzeit und eine Endzeit, welche den Rahmen innerhalb der zu spielenden Musik lokalisieren. Die Startzeit jedes gegebenen Rahmens ist gleich der Endzeit des vorhergehenden Rahmens zuzüglich 1 Millisekunde. In Fig. 3 erstreckt sich der erste Rahmen von einer Zeit 0 zu einer Zeit 6210 (d.h. 0 bis 6,21 Sekunden), und der nächste Rahmen erstreckt sich von 6211 bis 13230 (d.h. 6,211 bis 13,23 Sekunden). Der Rest der Lieddatendatei ist in ähnlicher Weise organisiert.
- In Übereinstimmung mit der bevorzugten Ausführungsform kann der Gitarrist nur solche Noten "spielen" oder erzeugen, welche innerhalb des "aktuellen" Rahmens liegen. Der aktuelle Rahmen ist derjenige Rahmen, dessen Startzeit und Endzeit die aktuelle Zeit, d.h. die seit dem Beginn des Liedes verstrichene Zeit, einklammern. Innerhalb des aktuellen Rahmens kann der Gitarrist eine beliebige Anzahl der vorhandenen Noten spielen, aber nur in der Reihenfolge, in welcher sie in dem Rahmen auftreten. Das Tempo, mit welchem sie innerhalb des mit dem aktuellen Rahmen verknüpften Zeitabschnitts gespielt oder erzeugt werden, wird vollständig von dem Benutzer bestimmt. Außerdem steuert der Benutzer durch Steuern der Anzahl von Saitenaktivierungen auch sowohl die Anzahl der Töne eines erzeugten Akkords als auch die Anzahl der innerhalb des Rahmens tatsächlich erzeugten Töne. Daher kann der Spieler zum Beispiel nur durch Aktivieren dieser Anzahl von Saiten, d.h. durch Klimpern auf der Gitarre, jede gewünschte Anzahl von Noten eines Akkords in einem Rahmen spielen. Falls der Spieler während einer einem gegegebenen Rahmen zugeordneten Periode die Gitarre nicht spielt, wird nichts von der Musik innerhalb dieses Rahmens erzeugt. Das nächste Mal, wenn der Benutzer eine Saite anschlägt oder aktiviert, werden die Töne eines späteren Rahmens, d.h. des neuen aktuellen Rahmens, erzeugt. Man beachte, daß die Tonhöhe des erzeugten Klangs allein durch Informationen bestimmt wird, die in den die Lieddaten enthaltenen Datenstrukturen gespeichert sind. Der Gitarrist muß nur die Saiten aktivieren. Die Frequenz, mit welcher die Saiten schwingen, hat keine Auswirkung auf den durch das virtuelle Musiksystem erzeugten Klang. Das heißt, der Spieler muß die Saiten während des Spielens nicht greifen, um die passenden Klänge zu erzeugen.
- Es sollte erwähnt werden, daß die Entscheidung darüber, wo die Rahmengrenzen innerhalb des Liedabbilds zu setzen sind, eine in gewisser Weise subjektive Entscheidung ist, welche von der gewünschten Klangwirkung und dem dem Benutzer zugestandenen Freiraum abhängt. Unzweifelhaft gibt es viele Wege, diese Entscheidungen zu treffen. Zum Beispiel könnten Akkordwechsel als Wegweiser dafür benutzt werden, wo Rahmengrenzen zu setzen sind. Ein Großteil der Entscheidung sollte dem Ermessen des die Datenbank aufbauenden Arrangeurs überlassen bleiben. Als eine Daumenregel sollten die Rahmen jedoch wohl nicht so lange sein, daß die Musik, wenn sie mit dem virtuellen Instrument gespielt wird, zu weit außer Takt mit der Begleitung geraten kann, und sie sollten nicht so kurz sein, daß der Künstler keine echte Flexibilität mehr hat, die Musik innerhalb des Rahmens zu modifizieren oder mit ihr zu experimentieren.
- Für die beschriebene Ausführungsform wurde ein ASCII- Editor verwendet, um eine die Lieddaten enthaltende textbasierte Datei zu erzeugen. Die Erzeugung der Lieddatendatei kann natürlich in manch anderer Weise bewerkstelligt werden. Zum Beispiel könnte man die Lieddatendatei dadurch herstellen, daß man zuerst die Liedinformationen von einem gespielten MIDI-Instrument abfängt und später Rahmenbegrenzungen in diesen Datensatz einfügt.
- Mit diesem Überblick im Sinn kehren wir nun zu einer Beschreibung der vorstehend erwähnten, in Fig. 4 gezeigten Datenstrukturen zurück. Das Datenfeld sframes 200, welches die Abfolge von Rahmen für das gesamte Lied darstellt, ist ein Feld von synch_frame-Datenstrukturen, von denen eine in Fig. 8 gezeigt ist. Jede synch_ frame-Datenstruktur enthält eine Variable frame start_time, welche die Startzeit für den Rahmen identifiziert, eine Variable frame_end_time, welche die Endzeit des Rahmens identifiziert, und eine Variable lnote_idx, welche einen Index in sowohl der Datenstruktur lnote_array 220 als auch die Datenstruktur hnotes_array 240 bereitstellt.
- lnote_array 220 ist ein Datenfeld von lead_ note-Datenstrukturen, von denen eine in Fig. 9 gezeigt ist. lnote_array 220 stellt eine Abfolge von einzelnen Noten (als "Leitnoten bzw. "Melodienoten" bezeichnet) für das gesamte Lied in der Reihenfolge dar, in welcher sie gespielt werden. Jede Datenstruktur lead_note repräsentier eine einzelne Melodienote und enthält zwei Einträge, nämlich eine Variable lead_note, welche die Tonhöhe der entsprechenden Melodienote identifiziert, und eine Zeitvariable, welche präzise die Zeit lokalisiert, zu welcher eine Note in dem Lied gespielt werden soll. Falls eine einzelne Note zu einer gewissen gegebenen Zeit zu spielen ist, ist diese Note die Melodienote. Falls ein Akkord zu einer gewissen gegebenen Zeit zu spielen ist, ist die Melodienote eine der Noten dieses Akkords, und die Datenstruktur hnote_array 240 identifiziert die anderen Noten dieses Akkords. Um zu wählen, welche Note des Akkords die Melodienote sein wird, kann jede beliebige Regel verwendet werden. In der beschriebenen Ausführungsform ist die Melodienote die Akkordnote mit der höchsten Tonhöhe. Die Datenstruktur hnote_array 240 ist ein Feld von harmony_note-Datenstrukturen, von denen eine in Fig. 10 gezeigt ist. Die Variable lnote_idx ist ein Index in diesem Feld. Jede harmony_note-Datenstruktur enthält eine variable hnote_cnt und ein Datenfeld hnotes der Größe 10. Das Feld hnotes bezeichnet die anderen Noten, welche mit der entsprechenden Melodienote gespielt werden sollen, d.h. die anderen Noten in dem Akkord. Falls die Melodienote nicht Teil eines Akkords ist, ist das Feld hnotes leer (d.h. seine Einträge werden alle auf NULL gesetzt). Die Variable hnote_cnt identifiziert die Anzahl der Einträge in dem zugeordneten Feld hnotes, welche nicht NULL sind. Daher wird z.B., falls eine einzelne Note gespielt werden soll (d.h. sie nicht Teil eines Akkords ist), die Variable hnote_cnt in der Datenstruktur harmony_notes für diese Melodienote auf den Wert Null gesetzt, und alle Einträge des zugeordneten Feldes hnotes werden auf NULL gesetzt.
- Wenn der Spieler Saiten auf der virtuellen Gitarre schlägt, wird für jedes Ereignis die im nächsten Abschnitt genauer beschriebene Rückrufroutine aufgerufen. Nach dem Berechnen des harmonischen Rahmens, des Akkordindex und des Unterakkordindex weist diese Rückrufroutine den Proteus-Synthesizerchip im PC 2 an, einen Ton von einer Tonhöhe zu erzeugen, welche dem gegebenen Rahmen, Akkord-, Unterakkordindex entspricht. Die Lautstärke dieses Tons wird auf den MIDI-Geschwindigkeitsparameter basieren, welcher mit den Notendaten von der MIDI-Gitarre empfangen wird.
- Fig. 7A und 7B zeigen einen Pseudocode für die MIDI- Interrupt-Rückrufroutine, d.h. virtual_guitar_callback(). wenn die Routine aufgerufen wird, ruft sie eine Routine get_current_time() auf, welche die Zeitgebereinrichtung verwendet, um die aktuelle Zeit zu erhalten (Schritt 200). Es ruft auch eine andere Routine, d.h. get_guitar_string_event(&string_id, &string_velocity), auf, um das Ereignis zu identifizieren, welches von der MIDI-Gitarre erzeugt wurde (Schritt 202). Diese gibt die folgenden Informationen zurück: (1) den Typ des Ereignisses (d.h. ON, OFF oder TREMOLO-Betätigung); (2) auf welcher Saite das Ereignis aufgetreten ist (d.h. string_id); und (3) falls es sich um ein ON-Ereignis handelt, mit welcher Geschwindigkeit die Saite angeschlagen wurde (string_velocity).
- Die Interruptroutine enthält eine Schaltanweisung, welche den für das erzeugte Ereignis geeigneten Code ausführt (Schritt 204). Im Allgemeinen verknüpft das Interrupt-Steuerprogramm die MIDI-Gitarrenereignisse mit der Tonerzeugung des Proteus-Synthesizerchips. Im Allgemeinen kann die Logik wie folgt zusammengefaßt werden:
- Falls ein ON STRING EVENT aufgetreten ist, prüft das Programm, ob die aktuelle Zeit mit dem aktuellen Rahmen zusammenpaßt (210). Dies wird durch Überprüfen der Zeitgebereinrichtung, um festzustellen, wieviel Zeit auf der Millisekundenuhr seit dem Beginn der Wiedergabe der Bild/Tondatei verstrichen ist, bewerkstelligt. Wie oben erwähnt, wird jeder Rahmen dadurch definiert, daß er eine Startzeit und eine Endzeit aufweist. Falls die verstrichene Zeit seit dem Beginn der Wiedergabe zwischen diese zwei Zeiten für einen bestimmten Rahmen fällt, dann ist dieser Rahmen der richtige Rahmen für die gegebene Zeit (d.h. er ist der aktuelle Rahmen). Falls die verstrichene Zeit außerhalb des Zeitabschnitts eines ausgewählten Rahmens fällt, dann ist nicht dieser, sondern irgendein späterer Rahmen der aktuellen Rahmen.
- Falls die aktuelle Zeit nicht mit dem aktuellen Rahmen zusammenpaßt, bewegt sich die Routine durch Setzen einer Rahmenvariable, d. h. current_frame_idx, auf die Nummer des Rahmens, dessen Start- und Endzeiten die aktuelle Zeit umklammern, zu dem richtigen Rahmen (Schritt 212). Die Variable current_frame_idx dient als ein Index in sframe_array. Nachdem noch keine Noten des neuen Rahmens erzeugt wurden, fällt das Ereignis, das verarbeitet wird, auf die erste Melodienote in dem neuen Rahmen. Somit erhält die Routine die erste Melodienote dieses neuen Rahmens und weist den Synthesizerchip an, den entsprechenden Klang zu erzeugen (Schritt 214). Die Routine, welche diese Funktion durchführt, ist start_tone_gen() in Fig. 7A, und ihre Argumente beinhalten die string_velocitiy_id aus dem formatierten MIDI-Daten sowie die Identität der Note aus dem lnotes_array. Vor dem Erregen der Schaltanweisung setzt das Programm die current_lead_note_idx, um die aktuelle Melodienote zu identifizieren (Schritt 215), und es initialisiert eine Variable hnotes played auf Null (Schritt 216). Die Variable hnotes_played bestimmt, welcher Ton eines Akkords als Antwort auf ein nächstes Ereignis erzeugt werden soll, welches zeitnah genug an dem letzten Ereignis auftritt, um es als Teil eines Akkords zu qualifizieren.
- In dem Fall, daß der durch die Variable current_frame_idx identifizierte Rahmen nicht der aktuelle Rahmen ist (Schritt 218), prüft die Interruptroutine, ob eine berechnete Differenz zwischen der aktuellen Zeit und der Zeit des letzten ON-Ereignisses, wie in einer Variablen last_time aufgezeichnet, größer als eine vorausgewählte Schwelle, wie durch eine Variable SIMUL- TAN_THRESHOLD angegeben, ist (Schritte 220 und 222). In der beschriebenen Ausführungsform wird die vorausgewählte Zeit so gesetzt, daß sie von ausreichender Länge ist (z. B. in der Größenordnung von etwa 20 Millisekunden), um zwischen Ereignissen innerhalb eines Akkordes (d.h. näherungsweise gleichzeitige Ereignisse) und Ereignissen, welche Teil unterschiedlicher Akkorde sind, zu unterscheiden.
- Falls die berechnete Zeitdifferenz kürzer als die vorausgewählte Schwelle ist, wird das string-ON-Ereignis als Teil eines "Schlags" oder "simultanen" Gruppierens behandelt, welcher die letzte verwendete Melodienote enthält. In diesem Fall findet die Interruptroutine unter Verwendung des Index_lnote_idx den passenden Block in dem Feld harmony_notes und findet unter Verwendung des Werts der Variablen hnotes_played den relevanten Eintrag in dem Feld h_notes dieses Blocks. Dann leitet sie die folgenden Informationen an den Synthesizer weiter (Schritt 224):
- string_velocity
- string_id
- hnotes_array[current_lead_note_idx].hnotes[hnotes_played++]
- welche den Synthesizer dazu veranlassen, den geeigneten Klang für diese Harmonienote zu erzeugen. Man beachte, daß die Variable hnotes_played ebenfalls erhöht wird, so daß das nächste ON-Ereignis unter der Annahme, daß es innerhalb einer vorausgewählten Zeit seit dem letzten ON- Ereigniss auftritt, auf die nächste Note in dem Feld hnotes zugreift.
- Falls die berechnete Zeitdifferenz länger als die vorausgewählte Schwelle ist, wird das string-Ereignis nicht als Teil eines Akkords behandelt, welcher das vorherige ON-Ereignis enthielt; vielmehr wird es mit der nächsten Melodienote in dem Feld lead_note verknüpft. Die Interruptroutine setzt den Zeiger current_note_idx auf die nächste Melodienote in dem Feld lead_note und beginnt mit der Erzeugung dieses Tons (Schritt 226). Sie setzt auch die Variable hnotes_played in Vorbereitung auf den Zugriff auf die mit dieser Melodienote verbundenen Harmonienoten, falls solche existieren, auf 0 zurück (Schritt 228).
- Falls das MIDI-Gitarrenereignis ein OFF STRING EVENT ist, ruft die Interruptroutine eine Routine unsound_note() auf, welche die Klangerzeugung für diese Saite abschaltet (Schritt 230). Sie erhält die string_id von dem MIDI-Ereignispaket, welches das OFF-Ereignis mitteilt, und leitet dieses an die Routine unsound_note weiter. Die Routine unsound_note sieht dann nach, welcher Ton für das ON-Ereignis, welches diesem OFF-Ereignis auf der identifizierten Seite vorangegangen sein muß, gerade erzeugt wird, und schaltet die Tonerzeugung für diese Saite aus.
- Falls das MIDI-Gitarrenereignis ein TREMOLO-Ereignis ist, wird die Tremoloinformation von der MIDI-Gitarre direkt an den Synthesizerchip weitergeleitet, welcher das passende Tremolo erzeugt (Schritt 232).
- In einer alternativen Ausführungsform, welche das umsetzt, was als "Rhythmus-EKG " bezeichnet wird, wird der Computer darauf programmiert, dem Benutzer auf dem Videomonitor 10 eine sichtbare Rückmeldung anzuzeigen. Im allgemeinen beinhaltet das Rhythmus-EKG zwei Komponenten, nämlich eine Spur des Takts, welcher von dem Spieler erzeugt werdden (d.h. das "Lied-EKG"), lind eine Spur des Takts, der tatsächlich von dem Spieler erzeugt wird (d.h. das "Spieler-EKG"). Die Spuren, welche auf Wahl des Spielers an- und abgeschaltet werden können, sind dazu gedacht, den Spieler zu lehren, wie das Lied zu spielen ist, ohne das bedrohliche Erscheinungbild einer "Lernmaschine" aufzuweisen. Als ein Lehrwerkzeug ist das Rhythmus-EKG sowohl auf das Rhythmus- als auch auf das Melodiegitarrenspiel anwendbar.
- Unter Bezugnahme auf Fig. 11, die Hauptanzeige des "Lied-EKGs", welches das Gefühl eines aufgezeichneten Signals von einem Patienten erwecken soll. Das angezeigte Bild weist ein Gitter 300, eine Rhythmus- oder Liedspur 302 und einen Postionsanzeiger 304 auf. In dem Gitter 300 entspricht die horizontale Achse einer Zeitachse, und die vertikale Achse entspricht einer Ereignisachse (z.B. dem Spiel eines Tons oder Akkords), weist aber keine Maßeinheiten auf. Die Liedspur 302 weist Impulse 306 (d.h. eine Abfolge von Taktschlägen) auf, welche Zeiten identifizieren, zu welchen der Spieler Töne oder Anschläge mit dem Instrument erzeugen soll. Das Programm veranlaßt den Positionsanzeiger 304, von links nach rechts zu wandern, wenn die Musik läuft, und dadurch eine seit dem Beginn des Liedes verstrichene echte Zeit zu markieren, d.h. anzuzeigen, wo sich der Spieler innerhalb des Liedes befinden soll. Der Positionsanzeiger 304 passiert den Beginn jedes Taktschlags gerade dann, wenn der Spieler den mit dem Taktschlag verbundenen Akkord beginnen soll, und er passiert die Spitze jedes Taktschlags gerade dann, wenn der Spieler den Akkord beendet haben soll.
- Um dieses Merkmal umzusetzen, kann das Programm einen Zeitstempel benutzen, welcher für jede der Melodienoten des Liedes vorgesehen ist (siehe Fig. 9). Der Zeitstempel für jede Melodienote identifiziert die Zeit, zu welcher der Ton in dem Lied gespielt werden soll. Als eine Alternative kann man die Rahmengröße auf eine Note reduzieren und die Anfangs- und Endzeit jedes Rahmens als Anzeiger dafür verwenden, wann ein Impuls erzeugt werden soll.
- Das Programm beinhaltet auch zwei Anzeigemodi, nämlich einen Richtungsmodus und einen Volumenmodus, welche voneinander unabhängig sind, so daß der Spieler entweder einen oder beide einschalten kann.
- Unter Bezugnahme auf Fig. 12 werden, falls der Spieler wahlweise den Richtungsmodus einschaltet, die Taktschläge in der negativen Richtung angezeigt, wenn der Spieler abschlagen soll, und in der positiven Richtung, wenn der Spieler aufschlagen soll. Die Richtungsinformation kann auf eine beliebige einer Anzahl von Weisen bereitgestellt werden. Zum Beispiel kann sie aus der Richtung eines Frequenzwechsels zwischen dem Melodieton und seinen verbundenen Harmonietönen gezogen werden, oder sie kann durch zu der Melodietondatenstruktur hinzugefügte Informationen bereitgestellt werden.
- Unter Bezugnahme auf Fig. 13 zeigt, falls der Spieler wahlweise den Volumenmodus einschaltet, die Größe der Taktschläge auf der Anzeige die Heftigkeit an, mit welcher der Spieler klimpern sollte. Ein wahrer "power code" könnte durch einen Impuls angezeigt werden, welcher über die Skala wächst, d.h. die Spitze des Impulses wird abgeflacht. Um dieses Merkmal umzusetzen, muß Volumeninformation zu den Datenstrukturen für entweder die Melodienoten oder die Harmonienoten hinzugefügt werden.
- Das Spieler-EKG, welches als Spur 310 in Fig. 14 gezeigt wird, sieht genauso aus wie das Lied-EKG und wenn es eingeschaltet wird, erstreckt sich der Positiosanzeiger 304 nach unten, um beide Spuren abzudecken. Das Spieler-EKG zeigt, was der Spieler tatsächlich tut. Wie das Lied-EKG weist es wahlweise Richtungs- und Volumenmodi auf.
- In der beschriebenen Ausführungsform kodiert das Programm die Spur des Spieler-EKGs farblich, um anzuzeigen, wie nahe sich der Spieler an dem Lied-EKG befindet. Jeder Impuls ist farbcodiert, um die Ausführung des Spielers zu bewerten. Eine grüne Spur zeigt an, daß der Spieler ziemlich dicht dran ist; eine rote Spur zeigt an, daß der Spieler ziemlich weit weg ist; und eine gelbe Spur zeigt Werte dazwischen an. Ein einfacher Algorithmus zum Umsetzen dieser farbcodierten Rückmeldung verwendet einen Bewertungsalgorithmus, welcher auf der in Fig. 15 gezeigten Funktion beruht. Falls der Spieler den Ton oder Akkord innerhalb ±30 ms davon erzeugt, wann er erzeugt werden soll, wird eine Bewertung von 100 erzeugt. Die Bewertung von Verzögerungen darüber hinaus fällt linear von 100 auf Null bei ±T ab, wobei T ungefähr 100 ms beträgt. Der Wert von T kann eingestellt werden, um den Schwierigkeitsgrad festzulegen.
- Der Algorithmus zur Farbcodierung der Spur implementiert auch einen Tiefpaßfilter, um die Rate, mit welcher sich die Farben ändern dürfen, zu dämpfen und dadurch ein visuell gefälligeres Ergebnis zu erzielen. Ohne den Tiefpaßfilter kann die Farbe so häufig wechseln, wie die Impulse auftreten.
- Es sollte verstanden werden, daß das Rhythmus-EKG als Teil der Ausführungsform verwendet werden kann welche auch die vorstehend beschriebene Rahmensynchronisierungstechnik beinhaltet, oder von dieser selbst. In jedem Fall schafft es eine sehr wirksame visuelle Rückmeldung, welche den Benutzer darin unterstützt, zu lernen, wie das Instrument zu spielen ist.
- Die vorstehende Diskussion dient nur der Illustration, ist aber nicht beschränkend; die Erfindung ist allein durch die nachfolgenden Ansprüche beschränkt und definiert.
Claims (8)
1. Musikinstrument (4) mit
einem Erreger (9), der eine Mehrzahl von
Erregungssignalen als Antwort auf das Spiel des Benutzers erzeugt;
einem Audio-Synthesizer (22), der hörbare Töne als
Antwort auf Steuersignale erzeugt;
einem Speicher (6), der eine Partitur speichert,
wobei die gespeicherte Partitur eine Abfolge von
Leitnoten aufweist, von denen jede eine zugeordnete
Zeitsignatur aufweist, um einen Zeitpunkt zu identifizieren, an
dem sie laut Partitur vom Benutzer gespielt werden soll;
einer Video-Anzeigeeinheit (10);
einer digitalen Verarbeitungsvorrichtung (2), die
den Audio-Synthesizer (22) und die Video-Anzeigeeinheit
steuert, wobei die digitale Verarbeitungsvorrichtung (2)
die Mehrzahl von Erregungssignalen vom Erreger (9) erhält
und eine Abfolge von Steuersignalen daraus erzeugt,
wobei die digitale Verarbeitungsvorrichtung (2)
programmiert ist, um die Mehrzahl von Erregungssignalen vom
Erreger (9) mit einer entsprechenden Unterabfolge von
Leitnoten aus der Abfolge von Leitnoten zu verknüpfen,
wobei die digitale Verarbeitungsvorrichtung (2)
programmiert ist, um die Abfolge von Steuersignalen aus der
Unterabfolge von Leitnoten zu erzeugen, wobei die
Abfolge von Steuersignalen den Audio-Synthesizer (22)
dazu veranlaßt, Klänge zu erzeugen, welche die
Unterabfolge von Leitnoten darstellen,
wobei die digitale Verarbeitungsvorrichtung (2)
programmiert ist, um auf der Video-Anzeigeeinheit eine Spur
von Markierungen als Funktion der Zeit anzuzeigen, wobei
jede der Markierungen innerhalb der Spur von Markierungen
einen Zeitpunkt bezeichnet, zu welchem der Benutzer den
Erreger dazu veranlassen soll, eines der Erregungssignale
aus der Mehrzahl von Erregungssignalen zu erzeugen, um
den Audio-Synthesizer (22) dazu zu veranlassen, eine
Entsprechende aus der Abfolge von Leitnoten aus der Partitur
zu spielen, wobei die Spur von Markierungen einen
Zeitraum repräsentiert, der sich von vor einer tatsächlich
verstrichenen Zeit bis nach der tatsächlich verstrichenen
Zeit erstreckt, wobei die tatsächlich verstrichene Zeit
von einem Beginn der Partitur gemessen wird, und
wobei die digitale Verarbeitungsvorrichtung (2)
programmiert ist, um auf der Video-Anzeigeeinheit (10) einen
Indikator anzuzeigen, der eine Stelle der tatsächlich
verstrichenen Zeit innerhalb der Spur von Markierungen
markiert und dadurch anzeigt, wo innerhalb der Partitur ·
sich der Benutzer gerade befindet.
2. Musikinstrument nach Anspruch 1, dadurch
gekennzeichnet, daß
die digitale Verarbeitungsvorrichtung (2) auch
programmiert ist, um auf der Video-Anzeigeeinheit (10) eine
zweite Spur gleich neben der Spur von Markierungen zu
erzeugen, die anzeigt, wann der Benutzer tatsächlich den
Erreger (9) dazu veranlaßt hat, jedes der
Erregungssignale aus der Mehrzahl von Erregungssignalen zu erzeugen,
und dadurch anzeigt, wann die Leitnoten aus der
Unterabfolge von Leitnoten tatsächlich vom Audio-Synthesizer
(22) gespielt werden, relativ dazu, wann sie gemäß der
Anzeige durch die Spur von Markierungen gespielt werden
sollen.
3. Musikinstrument nach Anspruch 2, dadurch
gekennzeichnet, daß
die zweite Spur eine Abfolge von Pulsen ist, von
denen jeder einem Zeitpunkt entspricht, zu welchem der
Benutzer tatsächlich den Erreger (9) dazu veranlaßt hat,
die Erregungssignale aus der Mehrzahl von
Erregungssignalen zu erzeugen.
4. Musikinstrument nach Anspruch 1, 2 oder 3, dadurch
gekennzeichnet, daß
die Spur von Markierungen eine Abfolge von Pulsen
ist, von denen jeder einem Zeitpunkt entspricht, zu
welchem der Benutzer den Erreger (9) dazu veranlassen
soll, eines der Erregungssignale aus der Mehrzahl von
Erregungssignalen zu erzeugen, um den Audio-Synthesizer
(22) dazu zu veranlassen, eine zugeordnete Leitnote zu
spielen.
5. Musikinstrument nach Anspruch 4, dadurch
gekennzeichnet, daß
die Pulse aus der Abfolge von Pulsen in der
Amplitude variieren und die Amplitude jedes gegebenen Pulses
eine relative Intensität anzeigt, mit welcher der
Benutzer eine zugeordnete Leitnote auf dem Erreger (9)
spielen sollte.
6. Musikinstrument nach Anspruch 4, dadurch
gekennzeichnet, daß
der Erreger ein Mehrelement-Erreger ist und die
Abfolge von Pulsen Pulse mit positiver Polarität und Pulse
mit negativer Polarität beinhaltet, wobei die Polarität
eine Richtung anzeigt, in welcher ein Akkord auf dem
Mehrelement-Erreger zu spielen ist.
7. Musikinstrument nach einem der Ansprüche 2-6, des
weiteren gekennzeichnet durch
einen Timer (20); und
eine Video-Playback-Komponente (6) für die
Aufzeichnung und Wiedergabe einer Videoaufzeichnung, die der
Partitur zugeordnet ist,
wobei die digitale Verarbeitungsvorrichtung (2)
programmiert ist, eine der Noten aus der Abfolge von Noten
auf der Grundlage des Zeitpunkts auszuwählen, zu welchem
das Erregungssignal erzeugt wird, und
wobei die digitale Verarbeitungsvorrichtung (2)
programmiert ist, das Steuersignal zu erzeugen, wobei das
Steuersignal den Synthesizer dazu veranlaßt, einen Klang
zu erzeugen, der die ausgewählte Note repräsentiert, und
wobei die digitale Verarbeitungsvorrichtung des
weiteren programmiert ist, den Timer (20) und die Video-
Playback-Komponente (6) gleichzeitig zu starten, so daß
die ausgewählte Note mit der Wiedergabe der
Videoaufzeichnung synchronisiert ist.
8. Verfahren zum Betreiben eines virtuellen
Musikinstruments, welches einen Erreger (9) für die Erzeugung
einer Abfolge von Erregungssignalen als Antwort auf eine
entsprechende Abfolge von Aktivierungen des Erregers (9)
durch den Benutzer, einen Audio-Synthesizer (22), eine
Video-Anzeigeeinheit (10) und eine digitale
Speichereinrichtung (6) enthält, die eine eine Partitur darstellende
Abfolge von Notendatenstrukturen speichert, wobei das
Verfahren die Schritte aufweist:
Starten von Timer-Resourcen als Antwort auf den
Empfang eines Startsignals vom Benutzer; und
Ausführen der Schritte als Antwort auf den Empfang
eines jeden Erregungssignals aus der Abfolge von
Erregungssignalen:
(a) aus den Timer-Resourcen Bestimmen eines
Zeitpunkts, zu welchem das empfangene Erregungssignal
aufgetreten ist;
(b) Auswählen einer Entsprechenden aus den
Notendatenstrukturen in der Abfolge von Notendatenstrukturen
auf der Grundlage des Zeitpunkts, zu welchem die
empfangene Erregung aufgetreten ist;
(c) Erzeugen eines Steuersignals aus der
ausgewählten Notendatenstruktur, wobei das Steuersignal den
Audio-Synthesizer (22) dazu veranlaßt, den musikalischen
Klang zu erzeugen, welcher der ausgewählten
Notendatenstruktur entspricht;
(d) auf der Video-Anzeigeinheit (10) Anzeigen einer
Spur von Markierungen als Funktion der Zeit, wobei jede
der Markierungen innerhalb der Spur von Markierungen
einen Zeitpunkt bezeichnet, zu dem der Benutzer den
Erreger (9) dazu veranlassen soll, eines der Erregungssignale
aus der Mehrzahl von Erregungssignalen zu erzeugen, um
den Audio-Synthesizer (22) dazu zu veranlassen, eine
Entsprechende aus der Abfolge von Leitnoten aus der Partitur
zu spielen, wobei die Spur von Markierungen einen
Zeitraum repräsentiert, der sich von vor einer tatsächlich
verstrichenen Zeit bis nach der tatsächlich verstrichenen
Zeit erstreckt, wobei die tatsächlich verstrichene Zeit
von einem Beginn der Partitur gemessen wird, und
(e) auf der Video-Anzeigeeinheit (10) Anzeigen
eines Indikators, der eine Stelle der tatsächlich
verstrichenen Zeit innerhalb der Spur von Markierungen
markiert und dadurch anzeigt, wo innerhalb der Partitur sich
der Benutzer gerade befindet.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/073,128 US5393926A (en) | 1993-06-07 | 1993-06-07 | Virtual music system |
US08/177,741 US5491297A (en) | 1993-06-07 | 1994-01-05 | Music instrument which generates a rhythm EKG |
PCT/US1994/006369 WO1994029844A1 (en) | 1993-06-07 | 1994-06-06 | Music instrument which generates a rhythm ekg |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69427873D1 DE69427873D1 (de) | 2001-09-06 |
DE69427873T2 true DE69427873T2 (de) | 2002-04-11 |
Family
ID=22111891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69427873T Expired - Lifetime DE69427873T2 (de) | 1993-06-07 | 1994-06-06 | Musikinstrument mit erzeugung eines rhythmusdiagrammes |
Country Status (8)
Country | Link |
---|---|
US (2) | US5393926A (de) |
EP (1) | EP0744068B1 (de) |
JP (1) | JP2983292B2 (de) |
AU (1) | AU692778B2 (de) |
CA (1) | CA2164602A1 (de) |
DE (1) | DE69427873T2 (de) |
HK (1) | HK1014289A1 (de) |
WO (1) | WO1994029844A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10297460B4 (de) * | 2001-11-21 | 2016-08-18 | Line 6, Inc. | Ein System zum Liefern einer Multimedia-Präsentation einer Audio-Datei an eine Recheneinrichtung sowie entsprechendes Verfahren, computer-lesbares Medium und eine dazugehörige Schnittstellen-Einrichtung |
Families Citing this family (103)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5525748A (en) * | 1992-03-10 | 1996-06-11 | Yamaha Corporation | Tone data recording and reproducing device |
US5902949A (en) * | 1993-04-09 | 1999-05-11 | Franklin N. Eventoff | Musical instrument system with note anticipation |
US5670729A (en) * | 1993-06-07 | 1997-09-23 | Virtual Music Entertainment, Inc. | Virtual music instrument with a novel input device |
EP0714529B1 (de) * | 1993-09-13 | 1997-06-11 | Taligent, Inc. | Multimedia-datenleitsystem |
US5533903A (en) * | 1994-06-06 | 1996-07-09 | Kennedy; Stephen E. | Method and system for music training |
US5690496A (en) * | 1994-06-06 | 1997-11-25 | Red Ant, Inc. | Multimedia product for use in a computer for music instruction and use |
US5668338A (en) * | 1994-11-02 | 1997-09-16 | Advanced Micro Devices, Inc. | Wavetable audio synthesizer with low frequency oscillators for tremolo and vibrato effects |
US6272465B1 (en) | 1994-11-02 | 2001-08-07 | Legerity, Inc. | Monolithic PC audio circuit |
US5659466A (en) * | 1994-11-02 | 1997-08-19 | Advanced Micro Devices, Inc. | Monolithic PC audio circuit with enhanced digital wavetable audio synthesizer |
US5742695A (en) * | 1994-11-02 | 1998-04-21 | Advanced Micro Devices, Inc. | Wavetable audio synthesizer with waveform volume control for eliminating zipper noise |
US6246774B1 (en) | 1994-11-02 | 2001-06-12 | Advanced Micro Devices, Inc. | Wavetable audio synthesizer with multiple volume components and two modes of stereo positioning |
US6047073A (en) * | 1994-11-02 | 2000-04-04 | Advanced Micro Devices, Inc. | Digital wavetable audio synthesizer with delay-based effects processing |
US5946604A (en) * | 1994-11-25 | 1999-08-31 | 1-O-X Corporation | MIDI port sound transmission and method therefor |
US5753841A (en) * | 1995-08-17 | 1998-05-19 | Advanced Micro Devices, Inc. | PC audio system with wavetable cache |
US5847304A (en) * | 1995-08-17 | 1998-12-08 | Advanced Micro Devices, Inc. | PC audio system with frequency compensated wavetable data |
US6011212A (en) * | 1995-10-16 | 2000-01-04 | Harmonix Music Systems, Inc. | Real-time music creation |
US5627335A (en) * | 1995-10-16 | 1997-05-06 | Harmonix Music Systems, Inc. | Real-time music creation system |
US5864868A (en) * | 1996-02-13 | 1999-01-26 | Contois; David C. | Computer control system and user interface for media playing devices |
WO1997046991A1 (en) * | 1996-06-07 | 1997-12-11 | Seedy Software, Inc. | Method and system for providing visual representation of music |
AU3407497A (en) * | 1996-06-24 | 1998-01-14 | Van Koevering Company | Musical instrument system |
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 |
GB2319112A (en) * | 1996-11-08 | 1998-05-13 | Mellen Chamberlain Peirce | Keyboard instrument |
DE69734404T2 (de) * | 1996-12-27 | 2006-07-27 | Yamaha Corp., Hamamatsu | Echtzeitdurchgabe von Musiktoninformation |
US5789689A (en) * | 1997-01-17 | 1998-08-04 | Doidic; Michel | Tube modeling programmable digital guitar amplification system |
EP1456780A4 (de) * | 1997-04-01 | 2007-04-25 | Medic Interactive Inc | System zur automatischen generierung von mediaprogrammen von einer media-elementen-datenbank |
JP2922509B2 (ja) | 1997-09-17 | 1999-07-26 | コナミ株式会社 | 音楽演出ゲーム機、音楽演出ゲーム用の演出操作指示システムおよびゲーム用のプログラムが記録されたコンピュータ読み取り可能な記憶媒体 |
US5990405A (en) * | 1998-07-08 | 1999-11-23 | Gibson Guitar Corp. | System and method for generating and controlling a simulated musical concert experience |
JP3031676B1 (ja) | 1998-07-14 | 2000-04-10 | コナミ株式会社 | ゲ―ムシステムおよびコンピュ―タ読み取り可能な記憶媒体 |
JP3003851B1 (ja) | 1998-07-24 | 2000-01-31 | コナミ株式会社 | ダンスゲーム装置 |
US6225547B1 (en) | 1998-10-30 | 2001-05-01 | Konami Co., Ltd. | Rhythm game apparatus, rhythm game method, computer-readable storage medium and instrumental device |
US6218602B1 (en) | 1999-01-25 | 2001-04-17 | Van Koevering Company | Integrated adaptor module |
JP2000237455A (ja) | 1999-02-16 | 2000-09-05 | Konami Co Ltd | 音楽演出ゲーム装置、音楽演出ゲーム方法および可読記録媒体 |
JP3088409B2 (ja) | 1999-02-16 | 2000-09-18 | コナミ株式会社 | 音楽ゲームシステム、該システムにおける演出指示連動制御方法及び該システムにおける演出指示連動制御プログラムを記録した可読記録媒体 |
US7220912B2 (en) | 1999-04-26 | 2007-05-22 | Gibson Guitar Corp. | Digital guitar system |
AUPQ439299A0 (en) * | 1999-12-01 | 1999-12-23 | Silverbrook Research Pty Ltd | Interface system |
JP3317686B2 (ja) | 1999-09-03 | 2002-08-26 | コナミ株式会社 | 歌唱伴奏システム |
JP2001083968A (ja) * | 1999-09-16 | 2001-03-30 | Sanyo Electric Co Ltd | 演奏情報採点装置 |
US6366758B1 (en) * | 1999-10-20 | 2002-04-02 | Munchkin, Inc. | Musical cube |
US6353174B1 (en) | 1999-12-10 | 2002-03-05 | Harmonix Music Systems, Inc. | Method and apparatus for facilitating group musical interaction over a network |
US6175070B1 (en) * | 2000-02-17 | 2001-01-16 | Musicplayground Inc. | System and method for variable music notation |
JP2001318672A (ja) * | 2000-03-03 | 2001-11-16 | Sony Computer Entertainment Inc | 楽音発生装置 |
JP4025501B2 (ja) * | 2000-03-03 | 2007-12-19 | 株式会社ソニー・コンピュータエンタテインメント | 楽音発生装置 |
US6945784B2 (en) * | 2000-03-22 | 2005-09-20 | Namco Holding Corporation | Generating a musical part from an electronic music file |
EP1272913A2 (de) * | 2000-04-07 | 2003-01-08 | Thurdis Developments Limited | Interaktive multimediavorrichtung |
US6760721B1 (en) | 2000-04-14 | 2004-07-06 | Realnetworks, Inc. | System and method of managing metadata data |
US6494851B1 (en) | 2000-04-19 | 2002-12-17 | James Becher | Real time, dry mechanical relaxation station and physical therapy device simulating human application of massage and wet hydrotherapy |
US6607499B1 (en) | 2000-04-19 | 2003-08-19 | James Becher | Portable real time, dry mechanical relaxation and physical therapy device simulating application of massage and wet hydrotherapy for limbs |
US6541692B2 (en) | 2000-07-07 | 2003-04-01 | Allan Miller | Dynamically adjustable network enabled method for playing along with music |
US9419844B2 (en) | 2001-09-11 | 2016-08-16 | Ntech Properties, Inc. | Method and system for generation of media |
US20060015904A1 (en) | 2000-09-08 | 2006-01-19 | Dwight Marcus | Method and apparatus for creation, distribution, assembly and verification of media |
JP4166438B2 (ja) * | 2001-01-31 | 2008-10-15 | ヤマハ株式会社 | 音楽ゲーム装置 |
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 |
US6482087B1 (en) * | 2001-05-14 | 2002-11-19 | Harmonix Music Systems, Inc. | Method and apparatus for facilitating group musical interaction over a network |
US20050044569A1 (en) * | 2003-06-24 | 2005-02-24 | Dwight Marcus | Method and apparatus for efficient, entertaining information delivery |
JP3879537B2 (ja) * | 2002-02-28 | 2007-02-14 | ヤマハ株式会社 | アナログ楽器のディジタルインターフェイス及びこれを備えたアナログ楽器 |
US6768046B2 (en) * | 2002-04-09 | 2004-07-27 | International Business Machines Corporation | Method of generating a link between a note of a digital score and a realization of the score |
US7145070B2 (en) * | 2002-07-12 | 2006-12-05 | Thurdis Developments Limited | Digital musical instrument system |
US7799986B2 (en) | 2002-07-16 | 2010-09-21 | Line 6, Inc. | Stringed instrument for connection to a computer to implement DSP modeling |
JP2004086067A (ja) * | 2002-08-28 | 2004-03-18 | Nintendo Co Ltd | 音声発生装置および音声発生プログラム |
KR20100067695A (ko) * | 2003-02-07 | 2010-06-21 | 노키아 코포레이션 | 다중 사용자 환경들의 제어 |
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 |
WO2006104873A2 (en) * | 2005-03-30 | 2006-10-05 | Parker-Hannifin Corporation | Flame retardant foam for emi shielding gaskets |
DE102006008260B3 (de) * | 2006-02-22 | 2007-07-05 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zur Analyse eines Audiodatums |
DE102006008298B4 (de) * | 2006-02-22 | 2010-01-14 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum Erzeugen eines Notensignals |
US8003872B2 (en) * | 2006-03-29 | 2011-08-23 | Harmonix Music Systems, Inc. | Facilitating interaction with a music-based video game |
US7459624B2 (en) | 2006-03-29 | 2008-12-02 | Harmonix Music Systems, Inc. | Game controller simulating a musical instrument |
GB2442765B (en) * | 2006-10-09 | 2011-10-12 | Marshall Amplification Plc | Instrument amplication system |
WO2008121650A1 (en) * | 2007-03-30 | 2008-10-09 | William Henderson | Audio signal processing system for live music performance |
US8145704B2 (en) | 2007-06-13 | 2012-03-27 | Ntech Properties, Inc. | Method and system for providing media programming |
US8690670B2 (en) * | 2007-06-14 | 2014-04-08 | Harmonix Music Systems, Inc. | Systems and methods for simulating a rock band experience |
US8678896B2 (en) * | 2007-06-14 | 2014-03-25 | Harmonix Music Systems, Inc. | Systems and methods for asynchronous band interaction in a rhythm action game |
US8017857B2 (en) * | 2008-01-24 | 2011-09-13 | 745 Llc | Methods 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 |
US20090310027A1 (en) * | 2008-06-16 | 2009-12-17 | James Fleming | Systems and methods for separate audio and video lag calibration in a video game |
US8663013B2 (en) * | 2008-07-08 | 2014-03-04 | Harmonix Music Systems, Inc. | Systems and methods for simulating a rock band experience |
US20100037755A1 (en) | 2008-07-10 | 2010-02-18 | 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 |
EP2494432B1 (de) | 2009-10-27 | 2019-05-29 | Harmonix Music Systems, Inc. | Auf gestik basierende benutzerschnittstelle |
US9981193B2 (en) | 2009-10-27 | 2018-05-29 | Harmonix Music Systems, Inc. | Movement based recognition and evaluation |
EP2372696B1 (de) | 2010-03-04 | 2013-09-11 | Goodbuy Corporation S.A. | Steuergerät für eine Spielkonsole sowie Verfahren zur Steuerung einer Spielkonsole |
US8874243B2 (en) | 2010-03-16 | 2014-10-28 | Harmonix Music Systems, Inc. | Simulating musical instruments |
US9358456B1 (en) | 2010-06-11 | 2016-06-07 | Harmonix Music Systems, Inc. | Dance competition game |
US20110306397A1 (en) | 2010-06-11 | 2011-12-15 | Harmonix Music Systems, Inc. | Audio and animation blending |
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 |
US9808724B2 (en) | 2010-09-20 | 2017-11-07 | Activision Publishing, Inc. | Music game software and input device utilizing a video player |
US9098679B2 (en) * | 2012-05-15 | 2015-08-04 | Chi Leung KWAN | Raw sound data organizer |
EP3095494A1 (de) * | 2015-05-19 | 2016-11-23 | Harmonix Music Systems, Inc. | Improvisierte gitarrensimulation |
US9773486B2 (en) | 2015-09-28 | 2017-09-26 | Harmonix Music Systems, Inc. | Vocal improvisation |
US9799314B2 (en) | 2015-09-28 | 2017-10-24 | Harmonix Music Systems, Inc. | Dynamic improvisational fill feature |
US9721551B2 (en) | 2015-09-29 | 2017-08-01 | Amper Music, Inc. | Machines, systems, processes for automated music composition and generation employing linguistic and/or graphical icon based musical experience descriptions |
US10854180B2 (en) | 2015-09-29 | 2020-12-01 | Amper Music, Inc. | Method of and system for controlling the qualities of musical energy embodied in and expressed by digital music to be automatically composed and generated by an automated music composition and generation engine |
CN109845249B (zh) * | 2016-10-14 | 2022-01-25 | 森兰信息科技(上海)有限公司 | 用外部信息同步midi文件的方法和系统 |
US10510327B2 (en) * | 2017-04-27 | 2019-12-17 | Harman International Industries, Incorporated | Musical instrument for input to electrical devices |
US11145283B2 (en) * | 2019-01-10 | 2021-10-12 | Harmony Helper, LLC | Methods and systems for vocalist part mapping |
US11037538B2 (en) | 2019-10-15 | 2021-06-15 | Shutterstock, Inc. | Method of and system for automated musical arrangement and musical instrument performance style transformation supported within an automated music performance system |
US10964299B1 (en) | 2019-10-15 | 2021-03-30 | Shutterstock, Inc. | Method of and system for automatically generating digital performances of music compositions using notes selected from virtual musical instruments based on the music-theoretic states of the music compositions |
US11024275B2 (en) | 2019-10-15 | 2021-06-01 | Shutterstock, Inc. | Method of digitally performing a music composition using virtual musical instruments having performance logic executing within a virtual musical instrument (VMI) library management system |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4794838A (en) * | 1986-07-17 | 1989-01-03 | Corrigau Iii James F | Constantly changing polyphonic pitch controller |
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 |
US5270475A (en) * | 1991-03-04 | 1993-12-14 | Lyrrus, Inc. | Electronic music system |
US5287789A (en) * | 1991-12-06 | 1994-02-22 | Zimmerman Thomas G | Music training apparatus |
-
1993
- 1993-06-07 US US08/073,128 patent/US5393926A/en not_active Expired - Lifetime
-
1994
- 1994-06-06 JP JP7502027A patent/JP2983292B2/ja not_active Expired - Lifetime
- 1994-06-06 DE DE69427873T patent/DE69427873T2/de not_active Expired - Lifetime
- 1994-06-06 AU AU70552/94A patent/AU692778B2/en not_active Expired
- 1994-06-06 EP EP94919388A patent/EP0744068B1/de not_active Expired - Lifetime
- 1994-06-06 CA CA002164602A patent/CA2164602A1/en not_active Abandoned
- 1994-06-06 WO PCT/US1994/006369 patent/WO1994029844A1/en active IP Right Grant
-
1996
- 1996-01-23 US US08/590,131 patent/US5723802A/en not_active Expired - Lifetime
-
1998
- 1998-12-24 HK HK98115584A patent/HK1014289A1/xx not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10297460B4 (de) * | 2001-11-21 | 2016-08-18 | Line 6, Inc. | Ein System zum Liefern einer Multimedia-Präsentation einer Audio-Datei an eine Recheneinrichtung sowie entsprechendes Verfahren, computer-lesbares Medium und eine dazugehörige Schnittstellen-Einrichtung |
Also Published As
Publication number | Publication date |
---|---|
WO1994029844A1 (en) | 1994-12-22 |
DE69427873D1 (de) | 2001-09-06 |
JPH08510849A (ja) | 1996-11-12 |
HK1014289A1 (en) | 1999-09-24 |
US5393926A (en) | 1995-02-28 |
US5723802A (en) | 1998-03-03 |
EP0744068A1 (de) | 1996-11-27 |
JP2983292B2 (ja) | 1999-11-29 |
AU692778B2 (en) | 1998-06-18 |
CA2164602A1 (en) | 1994-12-22 |
AU7055294A (en) | 1995-01-03 |
EP0744068A4 (de) | 1997-11-12 |
EP0744068B1 (de) | 2001-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69427873T2 (de) | Musikinstrument mit erzeugung eines rhythmusdiagrammes | |
DE69628836T2 (de) | Virtuelles musikinstrument mit einer neuen eingabevorrichtung | |
US5491297A (en) | Music instrument which generates a rhythm EKG | |
DE69605939T2 (de) | System zur echtzeit-generierung von musik | |
DE3889051T2 (de) | Vorrichtung zur Tonsignalerzeugung. | |
US6175070B1 (en) | System and method for variable music notation | |
DE69722424T2 (de) | Verfahren und vorrichtung zur simulation einer jam-session und zum unterrichten eines benutzers im schlagzeugspielen | |
DE69932796T2 (de) | MIDI-Schnittstelle mit Sprachfähigkeit | |
DE69716848T2 (de) | System zum Simulieren von Dirigieren | |
DE69616099T2 (de) | Karaokevorrichtung, wobei die Gesangstimme durch eine Modellstimme verändert wird | |
DE60133152T2 (de) | Hybrides Musikinstrument mit Zustandregister um Klangquelle und Parameter für elektronische Töne schnell zu wechseln | |
DE102007034774A1 (de) | Vorrichtung zur Bestimmung von Akkordnamen und Programm zur Bestimmung von Akkordnamen | |
DE102007034356A1 (de) | Vorrichtung zur Tempobestimmung und Computerprogramm zur Tempobestimmung | |
DE69816225T2 (de) | Vorrichtung und Verfahren zur Erzeugung von Arpeggiotönen | |
DE2056509A1 (de) | Elektrisches Tastenmusikinstrument | |
DE60215750T2 (de) | Vorrichtung und Verfahren zum Anzeigen von Akkorden | |
DE10318149A1 (de) | Pianoforteinstrument mit zusätzlicher Energieeinspeisung in den Resonanzboden und Verfahren zur Beeinflussung des Klanges eines Pianofortesinstrumentes | |
DE69915948T2 (de) | Bearbeitungsvorrichtung durch Änderung von Musikdaten mit Bearbeitungsdaten | |
DE60318282T2 (de) | Methoden und Vorrichtung zur Verarbeitung von Ausführungsdaten und zur Synthetisierung von Tonsignalen | |
DE69802844T2 (de) | Vorrichtung und Verfahren zur automatischen Begleitung und Speichermedium mit Profgramm dafür | |
DE69921048T2 (de) | Vorrichtung zum automatischen Vortrag mit veränderlichen Arpeggiothema | |
DE3540314C2 (de) | ||
DE4041766C2 (de) | Musiziereinrichtung | |
EP0045502B1 (de) | Metronom mit optischer und/oder akustischer Signalgabe | |
DE102017003408B4 (de) | Verfahren und Bedienhilfe zum Spielen eines Musikstücks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |