[go: up one dir, main page]

DE69427873T2 - Musikinstrument mit erzeugung eines rhythmusdiagrammes - Google Patents

Musikinstrument mit erzeugung eines rhythmusdiagrammes

Info

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
Application number
DE69427873T
Other languages
English (en)
Other versions
DE69427873D1 (de
Inventor
L. Johnson
A. Miller
P. Snow
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
Priority claimed from US08/177,741 external-priority patent/US5491297A/en
Application filed by MusicPlayground Inc filed Critical MusicPlayground Inc
Publication of DE69427873D1 publication Critical patent/DE69427873D1/de
Application granted granted Critical
Publication of DE69427873T2 publication Critical patent/DE69427873T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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/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/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

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.
  • Virtuelles Instrumentenmapping
  • 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.
DE69427873T 1993-06-07 1994-06-06 Musikinstrument mit erzeugung eines rhythmusdiagrammes Expired - Lifetime DE69427873T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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