DE68917113T2 - Datenverarbeitungsvorrichtung für ein elektronisches Musikinstrument. - Google Patents

Datenverarbeitungsvorrichtung für ein elektronisches Musikinstrument.

Info

Publication number
DE68917113T2
DE68917113T2 DE68917113T DE68917113T DE68917113T2 DE 68917113 T2 DE68917113 T2 DE 68917113T2 DE 68917113 T DE68917113 T DE 68917113T DE 68917113 T DE68917113 T DE 68917113T DE 68917113 T2 DE68917113 T2 DE 68917113T2
Authority
DE
Germany
Prior art keywords
data
sound
program
envelope
signal
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
DE68917113T
Other languages
English (en)
Other versions
DE68917113D1 (de
Inventor
Koichiro Patent Dpt Dev Daigo
Kazuo Patent Dpt Dev Div Ogura
Kosuke Patent Dpt Dev Di Shiba
Ryuji Patent Dpt Dev Div Usami
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 JP63334158A external-priority patent/JP2576613B2/ja
Priority claimed from JP63334163A external-priority patent/JP2576617B2/ja
Priority claimed from JP63334161A external-priority patent/JP2576615B2/ja
Priority claimed from JP63334166A external-priority patent/JP2576618B2/ja
Priority claimed from JP63334162A external-priority patent/JP2576616B2/ja
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Publication of DE68917113D1 publication Critical patent/DE68917113D1/de
Application granted granted Critical
Publication of DE68917113T2 publication Critical patent/DE68917113T2/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
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/02Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories
    • G10H7/04Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories in which amplitudes are read at varying rates, e.g. according to pitch
    • 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/02Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
    • G10H1/04Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation
    • G10H1/053Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation during execution only
    • G10H1/057Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation during execution only by envelope-forming circuits
    • G10H1/0575Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation during execution only by envelope-forming circuits using a data store from which the envelope is synthesized
    • 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/18Selecting circuits
    • G10H1/183Channel-assigning means for polyphonic instruments
    • G10H1/185Channel-assigning means for polyphonic instruments associated with key multiplexing
    • G10H1/186Microprocessor-controlled keyboard and assigning means
    • 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
    • G10H5/00Instruments in which the tones are generated by means of electronic generators
    • 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
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/08Instruments in which the tones are synthesised from a data store, e.g. computer organs by calculating functions or polynomial approximations to evaluate amplitudes at successive sample points of a tone waveform
    • 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
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/541Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
    • G10H2250/621Waveform interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf eine Datenverarbeitungseinrichtung für einen Ton- bzw. Geräuschsignalgenerator (Soundsignalgenerator) und insbesondere auf die Architektur einer Datenverarbeitungseinrichtung für elektronische Musikinstrumente. Die Erfindung bezieht sich weiterhin auf ein elektronisches Musikinstrument, das eine solche Datenverarbeitungseinrichtung enthält.
  • Auch wenn vor kurzem entwickelte elektronische Musikinstrumente mit Computer ausgestattet sind, ist derjenige Abschnitt, der mit der eine sehr schnelle Berechnung einer sehr großen Datenmenge erfordernden Tonerzeugung verknüpft ist, dennoch durch exklusive oder für speziellen Zweck ausgelegte Hardware gebildet, die als Tonquellenschaltung (Soundquellenschaltung) bezeichnet wird. Ein Mikrocomputer verarbeitet lediglich Steuereingaben für ein Musikinstrument wie etwa eine Eingabe über eine Tastatur oder eine Konsolenplatte, ein Eingangssignal von einem MIDI oder andernen externen Einheiten und ein Eingangssignal von einer internen oder externen Einheit und sendet geeignete Befehle an die Tonquellenschaltung.
  • Ton- bzw. Soundquellenschaltungen, die unterschiedliche Gestaltungen abhängig von dem System zur Erzeugung von Musiktönen haben, besitzen normalerweise einen großen Schaltungsmaßstab unabhängig von dem Aufbau der Tonquellensysteine. Der Schaltungsmaßstab üblicher Tonquellenschaltungen ist ungefähr das zweifache desjenigen eines Mikrocomputers (Zentraleinheit).
  • In Fig. 1 ist als Blockschaltbild eine Tonquellenschal tung als Beispiel dargestellt, die eine PCM-Tonquelle enthält. Ein Mikrocomputer 2, der eine PCM-Tonquelle 1 steuert, führt der PCM-Tonquelle 1 für die Tonerzeugung notwendige Daten (Befehle) zu. Ein solcher Befehl wird in einzelnen Abschnitten in der Tonquelle über einen Tonquellenbefehl-Analysator 3 gesetzt.
  • Beispielsweise werden Daten über die folgenden Abläufe beim Beginn der Tonerzeugung gesetzt.
  • (a) Adressen (diese bestehen normalerweise aus einer Startaddresse, einer Endaddresse und einer Schleifenaddresse) für einen Wellenformspeicher 8, in dem zu erzeugende Wellenformen gespeichert sind, werden an eine Adresssteuerung 5 gesandt und dort eingestellt.
  • (b) Tonhöhendaten eines zu erzeugenden Musiktons werden an eine Tonhöhensteuerung 6 gesandt und dort eingestellt.
  • (c) Hüllkurvendaten werden an eine Hüllkurvensteuerung 7 abgegeben und dort eingestellt.
  • (d) die Kanalsteuerung wird auf EIN gesetzt (Daten werden in einer Kanal-EIN/AUS-Steuerung 4 eingestellt).
  • Bei dem Einsatz einer polyphonen Tonquelle sollten diese Daten eine angepaßte Kanalnummer haben und die einzelnen Abschnitte der Tonquelle 1 sollten in zeitteilender Weise betrieben werden. Wenn die vorstehend angegebenen Daten eingestellt bzw. gesetzt werden, erzeugt die PCM-Tonquelle 1 einen Musikton in der nachstehenden Weise. Die Adresssteuerung 5 liest aus dem Wellenformspeicher 8 Wellenformdaten aus, die an zwei benachbarten Adressen, die einem Akkumulationsergebnis der Tonhöhendaten von der Tonhöhensteuerung 6 am nächsten kommen, angeordnet sind, wobei die Wellenformdaten einen unmittelbar vorhergehenden Wellenformwert und einen unmittelbar nachfolgenden Wellenformwert repräsentieren. Die Wellenformdaten werden an einen Wellenformprozessor 9 abgegeben, der seinerseits den Unterschied zwischen diesen beiden Wellenformwerten berechnet.
  • Der Unterschied und der unmittelbar vorhergehende Wellenformwert werden an einen Multiplizierer 10 abgegeben, der den berechneten Unterschied mit einem Dezimalpunktabschnitt PD der Adresse des Wellenformspeichers (in dem Diagramm von der Tonhöhensteuerung 6 gegeben) multipliziert und den unmittelbar vorhergehenden Wellenformwert zu dem resultierenden Wert addiert, um hierdurch einen Interpolationswert zu schaffen. Der Multiplizierer 10 multipliziert dann diesen Interpolationswert mit einem Hüllkurvenwert Ed, der in der Hüllkurvensteuerung 7 erzeugt wird, wodurch ein momentaner Wert einer Tonwellenform des Kanals bereitgestellt wird. Dieser momentane Wert wird durch einen Addierer 11 für alle Kanäle akkumuliert und die resultierenden Daten werden an einen D/A-Wandler 12 abgegeben, um in ein analoges Tonsignal umgesetzt zu werden.
  • Aus diesem Beispiel ist ersichtlich, daß es notwendig ist, eine arithmetische Verarbeitungseinheit und einen Speicher für die zeitweilige Speicherung von Daten hier und dort in den Datenverarbeitungsstufen vorzusehen, wodurch eine Schaltung großen Maßstabs erforderlich ist. Eine spezifische Tonquellenschaltung besitzt einen Aufbau, bei dem ein spezielles Tonquellensystem und ein oder eine Kombination aus einer bestimmten Anzahl von polyphonen Tönen in einfacher Weise realisiert wird, so daß die Veränderung der polyphonen Anzahl große Änderungen der Schaltung und/oder die Hinzufügung einer Schaltung erfordert. Es ist weiterhin notwendig, einen Satz von Befehlen, die an die Tonquellenschaltung von dem Mikrocomputer zu senden sind, in Übereinstimmung mit der Tonquelle zu gestalten, wodurch eine erhebliche Zeit zur Entwicklung eines Steuerprogramms für die Tonquelle erforderlich ist.
  • Es kann eine Steuerung für ein elektronisches Musikinstrument vorhanden sein, deren Architektur es einem Mikrocomputer für sich allein erlaubt, gleichzeitig die Verarbeitung von Steuereingaben für ein Musikinstrument und eine Tongenerierung durchzuführen. Um eine solche Steuerung zu realisieren, besteht die Anforderung hinsichtlich eines Nikrocomputers mit einem Aufbau, der eine Tongenerierung sicherstellt, was eine Datenverarbeitung einer großen Datenmenge mit hoher Geschwindigkeit erfordert.
  • Beispielsweise arbeiten übliche Mikrocomputer mit einem internen Register oder einem internen Vielzweck-Register, das als Akkumulator bezeichnet wird und als Speichereinrichtung für zeitweilige Speicherung von Berechnungsdaten dient. Der Akkumulator kann Daten von einem Datenspeicher bei einer Gelegenheit und das Ergebnis der Berechnung (beispielsweise Addition) von zwei Datenabschnitten und von dem Datenspeicher, die durch eine Berechnungsschaltung durchgeführt wird, bei einer anderen Gelegenheit halten. Daten, die zeitweilig in dem Akkumulator gehalten sind, werden zu der für den Datenspeicher spezifizierten Speicherstelle zurückgebracht. Der Einsatz eines Computers mit einem solchen Aufbau zur Tongenerierung erfordert eine beträchtliche Zeit für den häufigen Datentransfer zwischen dem Datenspeicher und dem Akkumulator (oder dem Vielzweck- Register) und stellt somit ein Hindernis bei der Erreichung einer Tonerzeugungsverarbeitung dar, die sich mit einer großen Datenmenge befassen sollte.
  • Es wird nun die Hüllkurvensteuerung 7 (Hüllkurvengenerator) beschrieben, die in der Hardware einer Tonquellenschaltung eingegliedert ist. Fig. 2 zeigt eine typische Hüllkurvensteuerung. Verschiedene Werte von einem Mikrocomputer werden in einem Hüllkurven-Δx-Register 24, einem Hüllkurven-Δy-Register 25 und einem Soll-Hüllkurvenregister 26 über den Tonquellenanalysator 3 eingestellt, der als eine Schnittstelle dient. Beim Betrieb wird der Inhalt eines Hüllkurven-Δx-Zeitgebers 21 durch einen INC-Zähler (Inkrement-Zähler) 22 hochgezählt. Wenn der Zählwert dieses Zeitgebers 21 mit dem Inhalt des Hüllkurven-Δy-Registers 24 übereinstimmt, gibt ein Vergleicher 23 ein Koinzidenzsignal zur Löschung des INC-Zählers 22 ab. Das Koinzidenz-Signal öffnet weiterhin ein UND-Glied G1 und es werden Daten Δy vom Hüllkurven-Δy-Register 25 an einen Addierer-Subtrahierer 27 angelegt. Diese Daten Δy werden zu einem aktuellen Hüllkurvenwert von einem aktuellen Hüllkurvenregister 29 in Übereinstimmung mit einer Addier/Subtrahier- Kennung (ein spezielles Bit des Hüllkurven-Δy-Register 25) hinzuaddiert oder hiervon subtrahiert. Das Ergebnis der Berechnung wird mit einem Pegel der Sollhüllkurve von einem Soll-Hüllkurven-Register 29 mit Hilfe eines zweiten Vergleichers 28 verglichen. Das Vergleichsergebnis wird zur Bestimmung eines neuen aktuellen Hüllkurvenwerts benutzt. Anders ausgedrückt wird das berechnete Ergebnis dann, wenn es die Sollhüllkurve nicht erreicht hat, als neuer aktueller Hüllkurvenwert über ein Tor G2 abgegeben und in dem Register 29 erneut eingestellt. Falls das berechnete Ergebnis die Sollhüllkurve jedoch erreicht hat, öfnnet das Koinzidenzsignal von dem Vergleicher 28 ein Tor G3 über einen Invertierer INV, um die Sollhüllkurve als einen neuen aktuellen Hüllkurvenwert abzugeben, der dann in dem Register 29 rückführend eingestellt wird. Das Koinzidenzsignal vom Vergleicher wird in einer Koinzidenzsignal-Halteschaltung 30 gehalten, um die Einstellung von Daten des nächsten Hüllkurvenschritts (Δx, Δy, eine Soll-Hüllkurve) anzufordern.
  • Der in der Fig. 1 gezeigte Hüllkurvengenerator besitzt den Nachteil, daß er ein Teil der Hardware der Tonquellenschaltung ist. Sobald der Mikrocomputer Daten für Δx, Δy und den Sollwert eingestellt hat, kann er daher anschließend keinen aktuellen Hüllkurvenwert herausgreifen. (Auch wenn es möglich wäre, daß der Mikrocomputer den aktuellen Hüllkurvenwert auslesen könnte, wäre hierfür eine beträchtlich komplexe Schaltung erforderlich.) Wenn es notwendig ist, den Hüllkurvenschritt zu überspringen, ist es daher schwierig, Daten (Δx, Δy, Sollwert), die für den aktuellen Hüllkurvenwert geeignet sind, festzulegen. Es sei angenommen, daß Daten für eine Freigabe-Hüllkurve (Abkling-Hüllkurve), die aus drei Segmenten besteht, auf der Mikrocomputerseite vorliegen, wie in Fig. 3 gezeigt ist, kann der Mikrocomputer aufgrund der Tatsache, daß der aktuelle Hüllkurvenwert unklar ist, Daten (Δx, Δy, Sollwert) für das Segment, das zu der Tonquelle gesandt werden sollte, nicht bestimmen. Eine herkömmliche Lösung für dieses Problem besteht in der Angabe eines Hüllkurvenschritt-Aktualisierungssignals (das Ausgangssignal der Koinzidenzsignal-Hal teschaltung 30 in Fig. 2) an den Mikrocomputer, um die Aktuallisierung des Schritts anzufordern und Daten für den nächsten Schritt von dem Mikrocomputer zu der Tonquelle zu übertragen. Auch wenn bei dieser Anordnung der Mikrocomputer nicht den aktuellen Hüllkurvenwert, der durch die Tonquelle erzeugt wird, erfassen kann, kann er den Hüllkurvenschritt, der durch die Tonquelle durchgeführt wird, erkennen. Dies erlaubt dem Mikrocomputer die Auswahl eines Abkling-Hüllkurvensegments, das einem Wert entspricht, den dieser Hüllkurvenschritt bei einem Tonfreigabezeitpunkt annehmen kann, d.h. ein Abkling-Hüllkurvensegment, das einen Sollwert besitzt, der niedriger als, jedoch dem Sollwert der aktuellen Hüllkurve am ehesten benachbart ist, wonach Daten für das ausgewählte Abkling-Hüllkurvensegment zur Tonquelle übertragen werden. Diese spezielle Gestaltung besitzt jedoch den Nachteil, daß eine zickzacklinienförmige Kennlinie einer Abklinghülkurve durch einen weiteren Hüllkurvenabschnitt begrenzt ist. Dies liegt darin, daß Freigabe-Hüllkurvendaten vorab vorbereitet werden sollten, um an den Bereich des Hüllkurvenwerts eines weiteren Schritts angepaßt zu sein, wodurch die Charakteristik, die die Hüllkurve haben kann, begrenzt ist.
  • Bei einer Gestaltung, die dem Mikrocomputer selbst die Erzeugung von Musiktönen ermöglicht, ist es sehr schwierig, wenn nicht unmöglich, die Periode der Abtastfolge von digitalen Musiktönen, die von dem Mikrocomputer zu einem Digital/Analog-Wandler (D/A-Wandler) abzugeben sind, vollständig konstant zu halten, und zwar aufgrund der Natur eines programmgesteuerten Betriebs. Anders ausgedrückt, verändert sich der in einer beabsichtigten Datenverarbeitung enthaltene Verarbeitungsumfang, der für eine Tongenerierung erforderlich ist, da der Umfang von Tätigkeiten (Verarbeitungsumfang), der durch den Mikrocomputer bewerkstelligt werden sollte, sich in zeitlicher Hinsicht aufgrund von Eingaben für den Mikrocomputer ebenfalls verändert. Dies bedeutet eine Veränderung der Periode bei der Erzeugung eines digitalen Musiktons. Wenn ein digitaler Musikton, der mit einer nicht stabilen Periode variert, in ein analoges Signal umgewandelt wird, ist der resultierende Musikton verzerrt, was für elektronische Musikinstrumente sehr wesentlich bzw. nachteilig ist.
  • US-A 4,184,400 offenbart ein Datenverarbeitungsgerät in Übereinstimmung mit dem Oberbegriff des Patentanspruchs 1 sowie ein elektronisches Musiksystem, das mit zusätzlichen Tongeneratoreinheiten außerhalb des Computers versehen ist, die die aktuellen Musiktonsignale erzeugen. Die Zentraleinheit bestimmt Steuersignal für die Tongeneratoreinheiten.
  • In gleichartiger Weise offenbart die GB-A-2 013 386 ein elektronisches Tonverarbeitungsgerät, bei dem die Ausgangssignale des Steuerprozessors einem Ausgabesteuersystem zugeführt werden. Das Ausgabesteuersystem erzeugt die Musiktonsignale.
  • Es ist die hauptsächliche Aufgabe dieser Erfindung, eine Datenverarbeitungseinrichtung für einen Ton- bzw. Geräuschsignalgenerator (Soundsignalgenerator) zu schaffen, die eine neue und verbesserte Struktur zur Sicherstellung einer Tongenerierung unter Programmsteuerung mittels eines Computers, beispielsweise eines Mikrocomputers besitzt, ohne daß eine für speziellen Zweck ausgelegte Hardware einer Tonquellenschaltung erforderlich ist.
  • Um diese Aufgabe zu lösen, wird eine Datenverarbeitungseinrichtung geschaffen, die die im Patentanspruch 1 angegebenen Merkmale enthält.
  • Die vorliegende Erfindung schafft eine Datenverarbeitungseinrichtung, die einen digitalen Musikton, der durch einen Mikrocomputer selbst erzeugt wird, mit einer genauen Abtastperiode herausgreifen und diesen als ein analoges Signal mit verringerter Verzerrung abgeben kann. Hierfür weist der Mikrocomputer eine erste Zwischenspeichereinrichtung zum Zwischenspeichern eines digitalen Tonsignals, das durch den Mikrocomputer erzeugt wird, mit einer Zeitsteuerung durch ein Programmsteuersignal von dem Mikrocomputer, sowie eine zweite Zwischenspeichereinrichtung auf, die zwischen einem Ausgang der ersten Zwischenspeichereinrichtung und der D/A-Wandlereinrichtung vorgesehen ist, um ein Ausgangssignal der ersten Zwischenspeichereinrichtung mit einer Zeitsteuerung gemäß einem genauen Abtastzeitsignal zwischenzuspeichern.
  • Bei dem vorstehenden Aufbau kann ein digitales Musiktonsignal, das an den Eingang der D/A-Wandlereinrichtung angelegt wird, mit einer Zeitgabe eines genauen Abtastzeitsignals aufgrund der Funktion der zweiten Zwischenspeichereinrichtung geschaltet werden. Dies bedeutet, daß die Umwandlungsperiode für die Umwandlung eines digitalen Signals in ein analoges Signal in der D/A-Wandlereinrichtung in exakter Weise aufrechterhalten wird. Daher kann die Verzerrung eines analogen Musiktonsignals, die während einer D/A- Umwandlung auftreten kann, soweit wie möglich reduziert werden, so daß ein akustisches Signal mit einer guten Qualität abgegeben werden kann.
  • Die vorstehend beschriebene Einrichtung erfordert keine Hardware einer Tonquellenschaltung zum Erzeugen von Musiktönen. Die Datenverarbeitungseinrichtung für ein elektronisches Musikinstrumnent, die diesen neuartigen Aufbau besitzt, hat erhebliche Vorteile. Der erste Vorteil besteht in der Auslegungsfreiheit. Genauer gesagt kann der Änderung der Anzahl von polyphonen Tönen und der Änderung eines Tonverknüpfungssystems durch Auslegungsänderung eines Programms Rechnung getragen werden. Der zweite Vorteil ist ihre Fähigkeit zur beträchtlichen Reduzierung des gesamten Schaltungsmaßstabs, da keine Tonquellenschaltung-Hardware benötigt wird. Da herkömmlicherweise ein Quellenschaltungschip hohen Integrationsgrads einen großen Schaltungsmaßstab bzw. große Schaltungsabmessungen besitzt, liegt herkömmlicherweise eine Beschränkung hinsichtlich der Verbesserung der Ausbeute bei der Chipherstellung vor ( die Ausbeute ist im wesentlichen umgekehrt proportional zur Chipfläche). Diese Vorteile können demzufolge die Kosten der Herstellung elektronischer Musikinstrumente erheblich verringern.
  • Bei einem Ausführungsbeispiel enthält die Programmspeichereinrichtung einen Festspeicher (ROM). Der Mikrocomputer ist durch eine integrierten Schaltungschip reduziert, auf dem ein D/A-Wandler zum Umwandeln eines digitalen Musiktons in ein analoges Signal sowie ein Anschluß zum Aufnehmen eines Eingangssignals für die Steuerung des elektronischen Musikinstruments zusätzlich zu den vorstehend erwähnten Komponenten des Mikrocomputers angeordnet sind. Die arithmetische Verarbeitungseinrichtung kann einen Multiplizierer für die Berechnung von Wellenformdaten enthalten.
  • Weitere Verbesserungen der Erfindung sind in den Unteransprüchen angegeben.
  • Das Programm zum Erzeugen von Musiktönen kann durch Interrupt-Programmverarbeitung (Interrupt-Verarbeitung) abgearbeitet werden, die durch ein Interrupt-Signal veranlaßt wird, das in einer Tonabtastperiode erzeugt wird. Der Einsatz einer solchen Zeitgeber-Interrupt-Technik kann eine genaue Tonerzeugung sicherstellen. Weiterhin können Programme, die in der Programmspeichereinrichtung zu speichern sind, wirksam vorbereitet werden und es kann die Gesamtanzahl von Schritten jedes Programms verringert werden, wodurch geringere Speicherkapazität für die Programmspeichereinrichtung erforderlich ist. Weiterhin kann die Erzeugung eines Interrupt-Signals bei jedem gegebenen Zeitpunkt ausgenutzt werden, so daß es dann, wenn ein Unterprogramm zum Messen des Zeitablaufs in dem Interrupt-Programm enthalten ist, möglich ist, Zeitdaten zu gewinnen, die in einem Hauptprogramm (Hauptablauf) notwendig sind, wie etwa eine Periode bezüglich der Auflösung eines Tempos für eine automatische musikalische Darbietung oder eine Begleitung.
  • Bei Parametern eines zu erzeugenden Musiktons verändert sich eine Hüllkurve sanft mit der Zeit, so daß ihre Ezeugung nicht bei dem Interrupt-Prozeß durchgeführt werden kann. In diesem Fall läßt sich die Zeitgabe, iuit der die Hüllkurve aktuallisiert wird (bei der ein neuer Hüllkurvenwert berechnet wird), aus dem Ergebnis des Zeitmeßvorgangs erkennen, der bei dem Interrupt-Prozeß durchgeführt wird, während der Vorgang der Erzeugung der Hüllkurve läuft (falls die Hüllkurve mit einer konstanten Periode aktuallisiert werden muß).
  • Bei einem weiteren Ausführungsbeispiel ist der Mikrocomputer durch einen integrierten Schaltungschip gebildet, auf dem ein D/A-Wandler zum Umwandeln von digitalen Musiktondaten in ein analoges Signal und ein Anschluß zum Aufnehmen eines Eingangssignals für die Steuerung des elektronischen Musikinstruments zusätzlich zu den vorstehend erwähnten Komponenten des Mikrocomputers vorgesehen sind.
  • Bei einer speziellen Anordnung können die Register in der arithmetischen Verarbeitungsspeichereinrichtung als Einrichtung zum Speichern von Daten sowie als ein sogenannter Akkumulator dienen. Dies kann die Notwendigkeit eines üblichen Akkumulators fallen lassen. Weiterhin können die einzelnen Register in der arithmetischen Verarbeitungsspeichereinrichtung direkt durch ein Programm adressiert werden, das in der Programmspeichereinrichtung gespeichert ist (was nicht bedeutet, daß es nicht möglich ist, eine indirekte Adressierung wie etwa diejenige, die mit Hilfe eines Indexes erfolgt, durchzuführen). Demgemäß kann eine arithmetische Verarbeitung zwischen den Registern direkt unter Heranziehung der arithmetischen Verarbeitungseinrichtung durchgeführt werden (ohne durch den Akkumulator geführt zu werden). Weiterhin können die einzelnen Register in der arithmetischen Verarbeitungsspeichereinrichutng exklusiv benutzt werden; der allgemeine Einsatz der Register ist ebenfalls möglich, so daß der "exklusive Einsatz" nicht bedeutet, daß die allgemeine Verwendung eines Teils der Register nicht möglich wäre.
  • Insbesondere enthält die arithmetrische Verarbeitungsspeichereinrichtung eine Gruppe von Registern, die für arithmetrische Verarbeitung und zum exklusiven Speichern von verschiedenen Musiktonparametern (wie etwa auch eine Hüllkurvenrate, einem Phasenwertparameter und einem Phasenveränderungsausmaß-Parameter) eingesetzt werden. Das Durchführen des Tonerzeugungsprogramms kann eine wirksame Ausführung von Rechenvorgängen (mit der höchsten Effizienz) zwischen denjenigen Registern, die für die verschiedenen Musiktonparameter reserviert sind, in einem Betriebsablauf sicherstellen, bis ein digitaler Abtastwert eines Musiktons erhalten wird, wodurch die Anzahl von Zugriffen auf Daten in der Tondatenspeichereinrichtung reduziert wird. Dies stellt raschere Verarbeitung einer großen Datenmenge (von Musiktonparametern) sicher und erleichtert die Echtzeit- Tonerzeugung. Beispielsweise wird ein Register ausschließlich zum Festhalten des Wertes der aktuellen Phase (Phase einer Wellenform) eingesetzt, während ein weiteres Register ausschließlich zum Halten von Daten betreffend das Ausmaß einer Veränderung des Phasenwerts eingesetzt wird. Wenn Bedingungen für die Aktualisierung des aktuellen Phasenwerts erfüllt sind, gibt das Tonerzeugungsprogramm einen Befehl zur Addition des Ausmaßes der Veränderung zu dem aktuellen Phasenwert ab. Bei diesem Zeitpunkt ist es nicht speziell notwendig, Daten des aktuellen Phasenwerts und des Ausmaßes der Veränderung aus der Tondatenspeichereinrichtung aus zulesen oder den Hüllkurvenwert, der bei der erforderlichen arithmetischen Vearbeitung gewonnen wird, zu speichern. Falls das Register (erstes Register) zum Speichern des aktuellen Phasenwerts direkt als der erste Operand (zu verarbeitende Größe) bezeichnet wird und das Register (zweites Register) zum Speichern des Ausmaßes der Veränderung als der zweite Operand (Größe für die Verarbeitung) bezeichnet wird, und die Addition dieser beiden Werte durch einen Verarbeitungscode bestimmt wird, werden die Daten des ersten Registers und die Daten des zweiten Registers ausgegeben und an die arithmetische Verarbeitungseinrichtung eingangsseitig angelegt, in der ein Addierer die Addition durchführt, und das Ausgangssignal dieser Einrichtung (neuer Phasenwert) wird zu dem ersten Register zurückgeführt, wobei dies alles automatisch, d. h. unter der Steuerung durch die Verarbeitungssteuereinrichtung, erfolgt. In dem Fall eines komplizierteren Systems, bei dem sich das Ausmaß der Veränderung des Phasenwerts in Abhängigkeit von den Phasenbereichen verändert, sollte eine Gruppe von Registern (als Gruppe A bezeichnet) für die exklusive Speicherung von Daten bezüglich des Ausmaßes der Veränderung innerhalb der jeweiligen Gruppen, sowie eine weitere Gruppe von Registern (als Gruppe B bezeichnet) für die ausschließliche Speicherung der Phasen an den Grenzen der Phasenbereiche (Grenzwertdaten) bereitgestellt werden und es müssen die Grenzwerte in der Registergruppe B vor der Durchführung der Phasenaddition mit dem aktuellen Phasenwert verglichen werden. Auf der Grundlage des Vergleichsergebnisses wird das Register, das das ausgewählte oder gewünschte Ausmaß der Veränderung speichert, in der Registergruppe A bestimmt. Während des bei den beiden vorliegenden Beispielen durchgeführten Prozesses ist es völlig unnötig, auf die Tondatenspeichereinrichtung zuzugreifen, um Daten (Musiktonparameter) zu gewinnen. Anders ausgedrückt ist es im Unterschied zu einem üblichen Mikrocomputer möglich, ein Verfahren zum Auslesen von Daten aus der Tondatenspeichereinrichtung und für deren Festhaltung in einen Akkumulator (oder einem Vielzweckregister) entfallen zu lassen. Als eine wirkungsvolle Einrichtung zum Aufrechterhalten der Abtastperiode für die Tonerzeugung kann eine Gestaltung vorhanden sein, bei der der Steuermechanismus eines Zeitgeber-Interrupts ausgenutzt wird und ein Tonerzeugungsprogramm bei jedem Auftreten eines Interrupts durchgeführt wird. (Ein Musikton wird bei einem zweiten, später beschriebenen Ausführungsbeispiel mittels eines Zeitgeberunterbrechungsprogramms (Zeitgeber-Interrrupt-Programms) erzeugt). Bei Empfang eines Interrupts müssen übliche Mikrocomputer den Status eines Prozesses bei diesem Zeitpunkt sichern, um den Prozeß nach Beendigung der Interrupt-Verarbeitung fort zusetzen. In diesem Fall wird beim Ablaufen des Tonerzeugungsprogramms (des Programms, das den Interrupt hervorgerufen hat) lediglich ein exklusives Register zum Speichern von Musiktonparametern eingesetzt. Dies bedeutet, daß keine Datenüberschreibung oder Aktualisierung für diejenigen Register durchgeführt wird, die durch ein Programm, das unterbrochen wurde, benutzt werden, während das Tonerzeugungsprogramm läuft. Falls der Inhalt jenes Registers, das in einen Prozeß involviert ist, nicht aktualisiert wird, muß der Status des Prozesses nicht gesichert werden. Hierdurch kann die Notwendigkeit der Sicherung und Wiedergewinnung des Statuses eines Prozesses (Status eines Vielzweckregisters) beseitigt werden, was zu einer Verringerung der Verarbeitungszeit führt. (Der Status eines Programmzählers oder eines gleichwertigen Elements muß lediglich bei dem Beginn eines Interrupts gesichert werden.)
  • Bei bevorzugten Ausführungsbeispielen, die im folgenden beschrieben werden, sind ein Eingabe/Ausgabeanschluß zum Aufnehmen von Steuereingangssignalen für ein Musikinstrument, eine Zeitgeber-Interrupt-Steuerung für die Verursachung eines Interrupts und ein D/A-Wandler zum Umwandeln eines digitalen Datenabtastwerts eines erzeugten Musiktons in ein analoges Signal ebenfalls auf dem den Mikrocomputer enthaltenden integrierten Schaltungchip ausgebildet. Zuätzlich enthält die arithmetische Verarbeitungseinrichtung einen Multiplizierer, der zur Berechnung von Wellenformdaten eingesetzt wird.
  • Die Erfindung schafft auch eine Datenverarbeitungseinrichtung für ein elektronisches Musikinstrument, die einen Musikton ohne Einsatz einer ausschließlichen Tonquellenschaltungs-Hardware erzeugen und eine Hüllkurve bilden kann, deren Charakteristik von jeglicher Beschränkung mit einer genauen Zeitgabe frei ist.
  • Die Beseitigung der Notwendigkeit einer Hardwareschaltung für die Tonquellenschaltung führt zu einer Verringerung der Schaltungsgröße, zu einer Verbesserung der Produktionsausbeute und zu Gestaltungsfreiheit. Zusätzlich kann die Erzeugung einer Hüllkurve mit einer genauen Zeitgabe eine verbesserte Hüllkurve schaffen. Da die Funktionen eines elektronischen Musikinstruments bei der vorliegenden Erfindung vollständig durch Programmsteuerung realisiert sind, kann der Mikrocomputer weiterhin stets den aktuellen Hüllkurvenwert erfassen, der aufgrund der Abarbeitung eines Unterprogramms zur Berechnung der Hüllkurve eines Musiktons erzeugt wird. Daher ist er zum Überspringen der Schritte einer Hüllkurve frei, wodurch jegliche Beschränkung der Eigenschaft einer Hüllkurve, die erzeugt werden kann, vollständig beseitigt ist.
  • Die vorliegende Erfindung schafft weiterhin ein elektronisches Musikinstrument mit einem Mikrocomputer ohne Notwendigkeit einer ausschließlichen Tonquellenschaltungs Hardware, wie es im Patentanspruch 11 angegeben ist.
  • Dieses elektronische Musikinstrument kann eine Hüllkurve, die frei ist von Beschränkungen hinsichtlich ihrer Eigenschaften, mit einer genauen Zeitgabe erzeugen.
  • Das elektronische Musikinstrument kann einen Mikrocomputer haben, der ein Tonerzeugungsprogramm zur Erzeugung eines Musiktons steuert, und kann einen digitalen Musikton mit einer genauen Abtastperiode herausgreifen, um hierdurch ein analoges Signal mit geringerer Verzerrung zu erhalten.
  • Diese Erfindung läßt sich durch die nachfolgende detaillierte Beschreibung in Verbindung mit den beigefügten Zeichnungen noch vollständiger verstehen.
  • Fig.1 ist ein generelles Schaltbild eines herkömmlichen elektronischen Musikinstruments gemäß einem PCM-Tonquellensystem,
  • Fig. 2 ist ein Schaltbild, das einen herkömmlichen Hüllkurvengenerator zum Bereitstellen einer Hüllkurve zeigt,
  • Fig. 3 ist ein Schaltbild, das den Status der Erzeugung einer Hüllkurve gemäß dem Stand der Technik veranschaulicht,
  • Fig. 4 zeigt ein generelles Blockschaltbild eines elektronischen Musikinstruments in Übereinstimmung mit der vorliegenden Erfindung,
  • Fig. 5 ist ein Blockschaltbild eines Mikrocomputers,
  • Fig. 6 ist ein Ablaufdiagramm eines Hauptprogramms für einen Mikrocomputer,
  • Fig. 7 zeigt ein Ablaufdiagramm eines Unterbrechungsprogramms (Interrupt-Programm), das einen Musikton erzeugt,
  • Fig. 8 ist ein Ablaufdiagramm eines Tonquellenprozessors,
  • Fig. 9 ist ein Schaltbild, das den Ablauf der Verarbeitung bei dem ersten Ausführungsbeispiel veranschaulicht,
  • Fig. 10 zeigt ein Zeitdiagramm, das die Betriebsweise beim ersten Ausführungsbeispiel veranschaulicht,
  • Fig. 11 zeigt eine Tabelle eines tonquellenverarbeitenden Direktzugriffsspeichers RAM,
  • Fig. 12 zeigt ein detailliertes Bild, das eine in Fig. 8 gezeigte Kanalverarbeitung veranschaulicht,
  • Fig. 13 zeigt ein Diagramm, das den Zustand einer zu erzeugenden Hüllkurve veranschaulicht,
  • Fig. 14 zeigt ein Diagramm, das einen Teil einer Hüllkurve veranschaulicht, die durch einen Zeitgeber-Interrupt- Prozeß erzeugt wird,
  • Fig. 15 ist eine Darstellung, die einen Teil einer Hüllkurve zeigt, die mittels eines herkömmlichen Unterprogramm-Przessors erzeugt wird,
  • Fig. 16 ist eine Darstellung, die einen ursprünglichen Ton und Wellenformdaten, die mit verdoppelter Frequenz ausgelesen werden, zeigt,
  • Fig. 17 ist ein Diagramm, das die Interpolation von Wellenformdaten bezüglich der Zeit veranschaulicht,
  • Fig. 18 ist ein Ablaufdiagramm, das den Betriebsablauf zeigt, wenn ein Unterprogramm eingesetzt wird, das für eine gegebene Zeitdauer abgearbeitet wird,
  • Fig. 19 ist eine Darstellung, die einen Teil eines Haupt-Ablaufdiagramms in Fig. 18 zeigt,
  • Fig. 20 ist eine Darstellung, die einen Teil eines Haupt-Ablaufdiagramms zeigt, das eine Konstantverarbeitungszeit enthält,
  • Fig. 21 ist ein Ablaufdiagramm, das einen Prozess für einen Kanal zeigt, bei dem alle Verarbeitungszeiten konstant sind,
  • Fig. 22 ist eine Zeitdarstellung, die einen Wellenformerzeugungsvorgang in Übereinstimmung mit dem dritten Ausführungsbeispiel veranschaulicht,
  • Fig. 23 zeigt eine strukturelle Darstellung in einem Fall, bei dem die Abtastperiode für die Tonerzeugung mit der Umwandlungsperiode eines D/A-Wandler synchronisiert ist,
  • Fig. 24 ist eine strukturelle Darstellung in einem Fall, bei dem die Zeitgabe für die Erzeugung einer Wellenform unter Programmsteuerung nicht mit der Umwandlungsperiode eines D/A-Wandlers übereinstimmt,
  • Fig. 25(A) zeigt eine Darstellung, die einen Interrupt- Prozeß und den Status einer Zeitgabe veranschaulicht, bei der Daten an einen D/A-Wandler angelegt werden, wenn die in Fig. 23 gezeigte Anordnung benutzt wird, und
  • Fig. 25(B) ist ein Diagramm, das einen Interrupt-Prozess und den Status einer Zeitgabe veranschaulicht, bei der Daten an einen D/A-Wandler angelegt werden, wenn die in Fig. 24 gezeigte Gestaltung eingesetzt wird.
  • Erstes Ausführungsbeispiel
  • Das erste bevorzugte Ausführungsbeispiel dieser Erfindung wird nun unter Bezugnahme auf die beigefügten Zeichnungen erläutert.
  • Fig. 4 zeigt den allgemeinen Aufbau eines elektronischen Musikinstruments, das mit dem ersten Ausführungsbeispiel verknüpft ist. Die allgemeine Steuerung des Geräts wird durch einen Mikrocomputer 31 ausgeführt. Anders ausgedrückt führt der Mikrocomputer 31 nicht nur die Verarbeitung von Steuereingaben für ein Musikinstrument, sondern auch einen Tonerzeugungsvorgang durch, so daß keine Tonquellenschaltungs-Hardware für die Tonerzeugung erforderlich ist. Ein Schaltabschnitt bzw. Schalterabschnitt 34, der eine Tastatur 32 und Funktionstasten 33 enthält, dient als Quelle zur Eingabe von Steuereingangssignalen für ein Musikinstrument, und Daten, die über diesen Schalterabschnitt 34 eingegeben werden, werden durch den Mikrocomputer 31 verarbeitet. Ein digitales Tonsignal, das durch den Mikrocomputer 31 erzeugt wird, wird durch einen D/A-Wandler (in dem Mikrocomputer 31 enthalten) in ein analoges Signal umgewandelt, durch ein Tiefpassfilter 35 gefiltert und durch einen Verstärker 36 verstärkt, so daß ein Musikton bzw. Musiksound mittels eines Lautsprecher 37 erzeugt wird. Eine Leistungsquelle bzw. Spannungsquelle 38 dient zur Bereitstellung der notwendigen Energie für den Mikrocomputer 31, das Tiefpassfilter 35 und den Verstärker 36.
  • Fig. 5 zeigt in Form eines Blockschaltbilds den Innenaufbau des Mikrocomputers 31. Die einzelnen dargestellten Element sind auf einem Chip untergebracht. Der Mikrocomputer 31, der gegenwärtig mit einer Größe von 5 mm x 5 mm hergestellt wird, ist zur gleichzeitigen Erzeugung von 8 polyphonen Klängen imstande und entspricht dem Tonerzeugungssystem des PCM-Typs (PCM= Pulse Code Modulation). Es sei jedoch angemerkt, daß die vorliegende Erfindung auch gut bei anderen Mikrocomputern anwendbar ist, die zur Erzeugung einer unterschiedlichen Anzahl von polyphonen Klängen imstande sind und auf einem unterschiedlichen Tonerzeugungsystem basieren.
  • Ein Programm für die Verarbeitung von unterschiedlichen Steuereingaben für ein Musikinstrument und ein Programm zum Erzeugen von Musiktönen sind in einem Steuer-Festspeicher RAM 41 gespeichert, und Programmworte (Befehle) die an Adressen angeordnet sind, die über einen RAM-Adressdecodierer 42 mittels einer RAM-Adressteuerung 49 bestimmt werden, werden sequentiell aufgegeben. Bei einem bestimmten Ausführungsbeispiel besitzt ein Programmwort eine Länge von 28 Bits und ein Programmwort wird als ein unterer Abschnitt der nächsten auszulesenden Adresse (Adresse innerhalb einer Seite) an die ROM-Adressteuerung 49 angelegt; dies ist ein sogenanntes "nächste Adresse"-System. Alternativ kann auch ein Programmzählersystem eingesetzt werden.
  • Wenn ein Operand eines Befehls von dem Steuer-ROM 41 ein Register bezeichnet, bestimmt eine RAM-Adressteuerung 43 die Adresse eines zugeordneten Registers in einem RAM 44. Der Operation kann auch zur Einstellung eines numerischen Werts in dem Register dienen. Das RAM 44 weist Register auf, die für generelle arithmetische Verarbeitungen, Kennungs-Operationen, Rechenvorgängen für Musiktöne usw. benutzt werden. Wie in Fig. 11 als Beispiel angegeben, werden viele Register ausschließlich für arithmetische Verarbeitungen für Musiktöne eingesetzt. Ein Einheit 45, die als ein Addierer-Subtrahierer und ein logischer Verarbeitungs abschnitt dient und ein Multiplizierer 46 bilden eine arithmetische Einheit (Recheneinheit, AU) die eingesetzt wird, wenn ein von dem Steuer-ROM 42 abgegebener Befehl ein arithmetischer Befehl ist. Der Multiplizierer 46 wird insbesondere für eine arithmetische Berechnung einer Musikton- Wellenform eingesetzt und erste und zweite Dateneingaben (z. B. Daten mit 16 Bit) werden multipliziert und die Daten, die dieselbe Länge wie die Eingaben (d. h. 16 Bit) besitzen, werden abgegeben, um den Betrieb zu optimieren.
  • Ein ROM 47 für Steuerdaten und Wellenform speichert verschiedene Musikton-Steuerparameter wie etwa Tonhöhendaten, Hüllkurvendaten (Rate, Pegel) und Musiktonwellenformdaten eines PCM-Typs. Die Hüllkurvendaten und Tonwellenform-Daten werden für jede Klangfarbe eines Musiktons vorbereitet.
  • Wie dargestellt, wird indirekt auf das ROM 47 zugegriffen, indem auf die Inhalte des Registers beim RAM 44 Bezug genommen wird, das durch den Operand in einem in dem Steuer-RAM 41 gespeicherten Programm bestimmt ist. Bei dem vorliegenden Ausführunsbeispiel ist das ROM 47 ein interner Speicher und sein Betrieb wird direkt durch eine Betriebssteuerung 48 gesteuert, die den Betrieb des RAM 44 steuert, so daß die Zugriffszeit für das ROM 47 dieselbe ist wie die Zeit für den Zugriff zum RAM 44. Ein Betriebsanalysator (Betriebssteuerung) 48 decodiert einen Betriebscode (OP- Code) eines Befehls vom Steuer-ROM 41 und sendet Steuersignale zu seinen einzelnen Einheiten, um die bezeichnete Operation durchzuführen.
  • Bei diesem Ausführungsbeispiel wird ein Zeitgeber-Interrupt eingesetzt, um ein in dem Steuer-ROM 41 gespeichertes Tonerzeugungsprogramm zu jedem gegebenen Zeitpunkt ablaufen zu lassen. Das heißt, daß eine Interrupt-Steuerung mit einem Zeitgeber (Hardware-Zähler) ein Steuersignal (Interrupt-Anforderungssignal) an die ROM-Adresssteuerung abgibt. Als Reaktion auf dieses Signal sichert (hält) die ROM-Adreßsteuerung 49 die Adresse des nächsten Befehl des Hauptprogramms und stellt die Kopfadresse eines Interrupt- Programms (Unterprogramm), das einen Musikton erzeugt, anstelle der früheren Adresse ein. Dann beginnt das Interrupt-Programm zu laufen. Da ein Rückkehrbefehl an dem Ende des Interrupt-Programms angeordnet ist, setzt die ROM- Adresssteuerung 49 erneut die gesicherte Adresse und der Ablauf kehrt zu dem Hauptprogramm zurück, wenn dieser Rückkehrbefehl durch den Betriebsanalysator 48 decodiert wird.
  • Auch wenn die Interrupt-Steuerung 50, die den Mikrocomputer 31 zum Anhalten einer gegenwärtig abgearbeiteten Aufgabe veranlaßt und einen speziellen Prozess anfordert, in dem Diagramm als ein internes Element des Mikrocomputer 31 (CPU) dargestellt ist, ist sie in logischer Hinsicht ein externes Element (periphere Einheit) des Mikrocomputer 31. Das Interrupt-Programm enthält eine Routine zum Berechnen der Wellenform eines Musiktons bei jedem Kanal, wie nachstehend beschrieben wird, wobei die Wellenform und Hüllkurve in der Unterbrechungszeitdauer erzeugt werden können.
  • Ein Eingabeanschluß 51 und ein Ausgabeanschluß 52 werden zum Abfragen der Tasten der Tastatur 32 und der Funktionstasten 33 eingesetzt. Ein in dem Interrupt-Programm (Unterbrechungsprogramm) erzeugter digitaler Musikton wird durch einen D/A-Wandler 53 in ein analoges Signal umgewandelt, das dann ausgegeben wird.
  • Fig. 6 zeigt den Ablauf des Hauptprogramms des Mikro-Computers 31 bei diesem Ausführungsbeispiel. Ein Schritt A1 ist ein initialisierender Prozess, der das RAM (Register) 44 des Mikrocomputers 31 löscht und die anfänglichen Werte eines Rhythmus-Tempos usw. vorgibt, wenn die Spannung eingeschaltet wird.
  • In dem Schritt A2 gibt der Mikrocomputer 31 ein Tastenabfragesignal über den Ausgangsanschluß 52 ab und ermittelt den Status des Schalterabschnitts 34 über den Eingabeanschluß 51, um hierdurch die Zustände der Funktionstasten 33 und von Tasten auf der Tastatur in dem Tastenpufferbereich des Rahmens 44 zu setzen. In einem Schritt A3 wird diejenige Funktionstaste, deren Zustand sich geändert hat, aus den Zuständen der Funktionstasten 33, die in dem Schritt A2 erhalten wurden, und deren früheren Zuständen erkannt und die angegebene Funktion wird abgearbeitet (beispielsweise Einstellen einer Tonnummer, einer Hüllnummer, einer Rythmusnummer usw). In einem Schritt A4 wird diejenige Taste, deren Zustand sich geändert hat (die niedergedrückt oder freigegeben wurde), aus den neuesten Zuständen der Tasten auf der Tastatur 32, die im Schritt A2 erhalten wurden, und den vorhergehenden Tastenzuständen erkannt. Bei dem nachfolgenden Schritt A5 wird eine Tastenzuordnung für den Tonerzeugungsvorgang A9 in Übereinstimmung mit dem Bearbeitungsergebnis, das im Schritt A4 erhalten wurde, durchgeführt. Im Schritt A6 werden, wenn eine in den Funktionstasten 33 enthaltene "Demo"-Spieltaste gedrückt wird, "Demo"-Spieldaten (Abfolgedaten) sequentiell aus dem ROM 47 ausgelesen und verarbeitet, um hierdurch einen Tastenzuordnungsvorgang für den Tonerzeugungsprozess A9 durchzuführen. Bei A7 werden dann, wenn eine Rhythmus-Starttaste gedrückt wird, Rhythmusdaten sequentiell aus dem Raum 47 ausgelesen, um eine Tastenzuordnung für den Tonerzeugungsvorgang A9 durchzuführen. Bei einem Einzelablauf-Zyklus-Zeitgeberprozess A9 wird zur Erkennung der Zeitgabe des notwendigen Ereignisses in dem Hauptablauf eine arithmetische Verknüpfung auf der Grundlage der Einzelablauf-Zykluszeit durchgeführt, um den Referenzwert für den Hüllkurvenzeitgeber (arithmetischer Verarbeitungszyklus der Hüllkurve) und den Referenzwert eines Rhythmus zu erhalten. (Die Einzelablauf- Zyklus zeit wird durch Messen der Anzahl von Zeitgeber-Interrupts während eines Ablaufzyklusses erhalten; diese Messung wird in einem im folgenden näher beschriebenen Interrupt-Zeitgeberprozess B3 durchgeführt.) Bei dem Tonerzeugungsprozess A9 werden verschiedene arithmetische Verarbeitungen für die aktuelle Erzeugung von Musiktönen auf der Grundlage der in den Schritten A5, A6, A7 eingestellten Daten abgearbeitet. Die Verarbeitungsergebnisse werden in einem Tonquellen-Verarbeitungsregister (Fig. 11) in dem RAM 44 eingestellt. Beispielsweise werden dann, wenn eine Taste niedergedrückt wird, die Δx des Anstiegsabschnitts und die Δy für die Soll-Hüllkurve Increment/Decrement-Kennung als Parameter für die Hüllkurvenerzeugung berechnet oder ausgelesen und in den zugeordneten Registern in Fig. 11 gespeichert, und die Startadresse, die Endadresse, die Schleifenadresse und der Wert addierter Adressen als Parameter für die Wellenformerzeugung werden berechnet oder geholt und in den zugeordneten Registern abgelegt. Bezüglich der Erneuerung einer Hüllkurve wird der Inhalt des aktuellen Hüllkurvenregisters überprüft und, falls er sich beim Sollpegel befindet, werden Hüllkurvendaten für den nächsten Schritt (Δx, Δy, Zoll-Hüllkurve) in den zugeordneten Registern zurück eingestellt. Der Inhalt des aktuellen Hüllkurvenregisters wird ebenfalls beim Tastenniederdrücken überprüft. Eine Freigabe-Hüllkurve wird aus dem überprüften Wert ausgewählt und dessen Daten werden gesetzt. Der Schritt A10 ist ein Vorbereitungsvorgang für einen Übergang zu dem nächsten Hauptablauf. Bei dieser Verarbeitung wird beispielsweise der "NEW ON"-Status ("Neue Betätigung"), der einen Wechsel des Tastenniederdrückungszustands, der beim aktuellen Durchlauf erhalten wurde, anzeigt, während des "ON Continuing" - bzw. "Weiterhin Ein"-Zustands gesetzt, während der "NEW OFF"-Status ("Neu aus"-Zustand), der einen Wechsel zum Tastenfreigabezustand anzeigt, während des "weiterhin aus"-Status geändert wird.
  • Fig. 7 zeigt den Ablauf des Unterbrechungsprogramms (Interruptprogramm), das die Tonerzeugung bewirkt. In einem Schritt B1 werden Tonwellenformdaten (akkumulierte Wellenformwerte für acht Töne bzw. Klänge oder Geräusche), die in einem Tonquellenprozess B2 in dem vorhergehenden Unterbrechungsvorgang erzeugt wurden, zu dem D/A-Wandler 53 gesandt. In dieser Weise werden Abtastwerte eines Musiktons in konstantem Intervall zu dem D/A-Wandler 53 gegeben. Der nachfolgende Tonquellenprozess B2 ist ein wesentlicher Punkt bei diesem Ausführungsbeispiel; diese Verarbeitung wird herkömmlicherweise mittels Tonquellenschaltungs-Hardwarekomponenten durchgeführt. (Seine detaillierte Beschreibung erfolgt später.) Bei dem nächsten Interrupt-Zeitgeber- Prozess B3 wird der Inhalt eines Zeitgeberregisters (in dem RAM 44 angeordnet) zum Messen eines Ablaufzyklus jedesmal dann um "1" inkrementiert, wenn eine Unterbrechung (Interrupt), die bei jedem gegebenen Zeitpunkt auftritt, durch dieses Zeitgeberregister hindurchgeht.
  • Gemäß diesem Ausführungsbeispiel ist es nicht notwendig, das Sichern und Wiedergewinnen der Inhalte der Register durchzuführen, das am Beginn und um Ende eines normalen Unterbrechungsvorgangs ausgeführt wird, da die Inhalte derjenigen Register, in die Daten im Hauptprogramm eingeführt wurden, im Unterbrechnungsprogramm nicht überschrieben werden. Da diejenigen Register beim RAM 44, die mit der Tonverarbeitung verknüpft sind, unabhängig von denjenigen sind, die mit der anderen Verarbeitung verknüpft sind, ist es möglich, das Hauptprogramm zu verlassen und rasch zu dem Unterbrechungsvorgang ohne Verzögerung zu gehen.
  • Fig. 8 zeigt eine detaillierte Erläuterung des Tonquellenprozesses B2. Nach dem Löschen des RAM-Bereichs (siehe Fig. 11) für die Addition von Wellenformen im Schritt C1 werden aufeinanderfolgend Schritte C2 bis C9 für acht Kanäle ausgeführt. Am Ende jedes Kanalprozesses wird der Wellenformwert eines Musiktons im Kanal zu den Daten, die in diesem RAM-Bereich gespeichert sind, hinzuaddiert.
  • Fig. 9 zeigt den Ablauf des Betriebs beim ersten Ausführungsbeispiel in zeitlicher Hinsicht. "A" bis "F" sind Teile des Hauptprogramms (Fig. 6) und eine Unterbrechung (Fig. 7) wird für jeden gegebenen Zeitpunkt ausgeführt. Die zeitliche Darstellung des Betriebs ist in Fig. 10 gezeigt. Wie veranschaulicht ist, wird jedesmal beim Auftreten einer Unterbrechung (Interrupt) ein Tonwellenformsignal an den D/A-Wandler 53 angelegt und das entsprechende Analogesignal wird von diesem abgegeben.
  • Fig. 12 zeigt eine detaillierte Darstellung eines der Schritte C2 bis C9 in Fig. 8 bezüglich eines der acht Kanäle. Die Kanalverarbeitung (Kanalprozess) besteht hauptsächlich aus einem Kurvenprozess (D1 bis D7) und einem Wellenformprozess (D8 bis D21).
  • Fig. 13 zeigt eine Hüllkurve, die durch den Hüllkurvenprozess erzeugt ist. Die Hüllkurve eines Musiktons besteht aus mehreren Schritten (Segmenten). In der Darstellung repräsentiert Δx eine Aktualisierungsperiode der Hüllkurve, während Δy das Ausmaß der Veränderung des Hüllkurvenwerts zeigt. Der Hüllkurvenprozess (D1 bis D7) für jeden Kanal bewirkt die Berechnung der Aktualisierung der Hüllkurve für jeden Aktualisierungszeitpunkt und überprüft, ob der Schritt-Sollpegel erreicht ist. Wenn der Sollpegel erreicht ist, wird der Sollwert in dem aktuellen Hüllkurvenregister (siehe Fig. 11) gespeichert und dieser Vorgang wird in dem Tongenerierungsprozess A9 des Hauptprogramms erfaßt. Dann werden Hüllkurvendaten für den nächsten Schritt (Δx, Δy, Sollhüllkurvenwert) in den entsprechenden Registern geladen.
  • Der vorstehende Vorgang wird nachstehend genauer beschrieben. Der Inhalt des Zeitgeberregisters, der für den Vergleich mit der berechneten Periode Δx der Hüllkurve benutzt wird, wird bei jedem Auftreten einer Unterbrechung im Schritt D1 inkrementiert. Wenn der Inhalt des Zeitgeberregisters im Schritt D2 mit Δx übereinstimmt, wird die Addier/Subtrahier-Kennung (code bit) der Daten Δy, d.h. eine Änderung der Hüllkurve, im Schritt D3 überprüft, um zu sehen, ob die Hüllkurve ansteigt oder abfällt. In den nachfolgenden Schritten D4 und D5 wird die aktuelle Hüllkurve einer Subtraktion bzw. Addition unterzogen. Im Schritt D6 wird bestimmt, ob die gegenwärtige Hüllkurve den Sollwert erreicht hat oder nicht. Falls die Entscheidung ja lautet, wird der Sollpegel auf die gegenwärtige Hüllkurve gesetzt. Als Ergebnis werden Daten des nächsten Hüllkurvenschritts in dem Tongenerierungsvorgang A9 des Hauptprogramms gesetzt. Wenn die gelesene aktuelle Hüllkurve im Vorgang A9 Null ist, wird dies als Ende der Tonerzeugung behandelt.
  • Wie aus der vorstehenden Beschreibung ersichtlich ist, kann der Mikrocomputer 31 bei dem vorliegenden elektronischen Musikinstrument stets den Zustand der aktuellen Hüllkurve erkennen. Anders ausgedrückt wird bei dem Ausführungsbeispiel eine Hüllkurve in den programmgesteuerten Hüllkurvenprozessen (D1 bis D7) erzeugt, wobei der Wert der aktuellen Hüllkurve in dem ebenfalls durch das Programm gesteuerten Tongenerierungsvorgang A9 überprüft wird und ein Prozess entsprechend dem Überprüfungsergebnis durchgeführt wird. Dies kann die Notwendigkeit eines Kurvengenerators, der herkömmlicherweise aus Hardwarekomponenten besteht, beseitigen und somit die andernfalls hiermit zusammenhängenden herkömmlichen Probleme überwinden. Der Grund, weshalb der programmgesteuerte Hüllkurvenprozess insbesondere in dem Zeitgeber-Interrupt-Programm ausgeführt wird, wird nachstehend unter Bezugnahme auf die Figuren 14 und 15 erläutert.
  • Fig. 14 illustriert einen Teil einer durch ein Zeitgeber-Interrupt erzeugten Hüllkurve. Wenn angenommen wird, daß ein Hüllkurvenprozess in einem üblichen Unter-Programm durchgeführt wird, ergibt sich das in Fig. 15 gezeigte Ergebnis. Was das Unterprogramm zur Berechnung einer Hüllkurve in dem Hauptablauf angeordnet ist, verändert sich die zu erledigende Arbeitsmenge und die Zeit zwischen Unterprogrammen für die Hüllkurvenberechnung ändert sich gleichfalls. Dies führt zu einer Veränderung der Zeit für die Messung von Δx; die zeitliche Aktualisierung kann bei einer Gelegenheit früher und bei einer anderen Gelegenheit später kommen, so daß die Steigung der erwarteten Hüllkurve nicht exakt realisiert werden kann. Falls der Hüllkurvenprozess in einem Zeitgeber-Intererrupt-Prozess erfolgt, kann die Aktualisierungsperiode Δx aufgrund des periodischen Auftretens einer Unterbrechung konstant gehalten werden und die in Fig. 14 gezeigte erwartete Hüllkurve läßt sich erzielen. Weiterhin kann die Wellenformerzeugung synchron mit der Veränderung der Hüllkurve bewirkt werden, da die erzeugte Hüllkurve in dem Wellenformprozess innerhalb desselben Unterbrechungs-Prozesses benutzt wird.
  • Es werden nun die Wellenformprozesse D8 bis D21 beschrieben. Bei dieser Verarbeitung werden Wellenformdaten an zwei benachbarten Adressen aus dem Wellenform-ROM 47 unter Heranziehung des ganzzahligen Abschnitts der aktuellen Adresse ausgelesen und der Wellenformwert, der bezüglich der gegenwärtigen Adresse, die durch (ganzzeiliger Abschnitt + Zeichen Dezimalpunktabschnitt) erwartet wird, wird durch Interpolation erhalten. Der Grund für das Erfordernis der Interpolation besteht darin, daß die durch Interrupt eingeleitete Wellenform-Abtastperiode konstant ist und der Wert addierter Adressen (Tonhöhendaten) in einem gewissen Tonbereich im Hinblick auf den Einsatz bei einem Musikinstrument liegt (bei einem Musikinstrument, das lediglich Noten erzeugt, ist, falls Wellenformdaten für jede Note bereitgestellt werden, keine Interpretation notwendig, wobei sich allerdings eine unzulässige Vergrößerung der Speicherkapazität ergibt). Da eine durch Interpolation verursachte Verschlechterung und Verzerrung einer Klangfarbe in hohem Tonhöhenbereich hervorstechend ist, wird der ursprüngliche Ton bzw. Klang (Sound) normalerweise mit einer Frequenz reproduziert, die höher ist als die Aufzeichnungsabtastfrequenz des ursprünglichen Tons bzw. Klangs. Bei diesem Ausführungsbeispiel ist die Wiedergabefrequenz eines ursprünglichen Tons bzw. Klangs (A4) verdoppelt (siehe Fig. 16). Wenn der Wert der addierten Adressen 0,5 ist, kann daher der Ton bzw. Klang von A4 erhalten werden. In diesem Fall ist der addierte Adresswert für die Note A4 0,529 und für die Note A3 1. Diese addierten Adressenwerte werden als Tonhöhendaten in dem ROM 47 gespeichert. Beim Niederdrücken einer Taste in der Tastatur 32 werden Tonhöhendaten, die mit dieser Taste verknüpft sind, und die Wellenform-Startadresse, Wellenform-Schleifenadresse der ausgewählten Klangfarbe in den jeweiligen Registern des RAM 44 geladen, nämlich in dem Register für addierte Adressen, den Startadressen-/aktuelle Adressen-Register, dem Endregister und dem Schleifenadressregister.
  • Fig. 17 zeigt ein Beispiel der Interpolation von Wellenformdaten bezüglich der Zeit. In dem Diagramm bezeichnen weiße Markierungen Wellenformdatenwerte, die bei Adressen des Wellenform-ROMs angeordnet sind, während schwarze Markierungen Interpolationswerte bezeichnen.
  • Auch wenn es verschiedenartige Interpolationssysteme gibt, wird bei diesem Ausführungsbeispiel lineare Interpolation eingesetzt. Eine detaillierte Beschreibung der Wellenformerzeugungs-Vorgänge D8 bis D21 in Fig. 12 wird nachstehend gegeben. Zunächst wird im Schritt D8 die aktuelle Adresse zu dem addierten Adressenwert hinzuaddiert, um eine neue aktuelle Adresse zu erzeugen. Die aktuelle Adresse wird mit der Endadresse im Schritt D9 verglichen. Falls die aktuelle Adresse größer ist als die Endadresse, wird die nächste physikalische (Adresse) oder logische (betriebsmäßige) Adresse mittels der Schritte D10 und D11 berechnet. Falls die aktuelle Adresse kleiner ist als die Endadresse, wird die nächste Adresse im Schritt D12 berechnet. Im Schritt D14 wird auf das Wellenform-ROM unter Benutzung des ganzzahligen Abschnitts der Adresse zugegriffen, um die nächsten Wellenformdaten zu gewinnen. Die Schleifenadresse ist diejenige Adresse, die der Endadresse vom betriebsmäßigen Gesichtspunkt aus gesehen am nächsten ist. Im Fall von Fig. 16 werden die dargestellten Wellenformdaten wiederholt ausgelesen. Wenn die aktuelle Adresse gleich der Endadresse ist, werden daher die Wellenformdaten an der Schleifenadresse als der nächsten Adresse aus gelesen (D13). In den Schritten D15 und D16 wird auf das Wellenform-ROM unter Benutzung des ganzzahligen Abschnitts der aktuellen Adresse zugegriffen, um die aktuellen Wellenformdaten auszulesen. Im Schritt D17 wird der aktuelle Wellenformwert von dem nächsten Wellenformwert subtrahiert und die Differenz wird mit dem Dezimalpunktabschnitt der aktuellen Adresse im Schritt D18 multipliziert. Das Ergebnis wird im Schritt D19 zum aktuellen Wellenformwert hinzuaddiert, um einen linearen Interpolationswert der Wellenform hierdurch zu erhalten. Die lineare interpolierten Daten werden mit dem aktuellen Wellenformwert multipliziert, um einen Tondatenwert des Kanals (D20) zu erhalten und der erhaltene Wert wir d zu dem Inhalt des Wellenformaddierregisters hinzuaddiert, um Tondaten zu akkumulieren (D21).
  • In dem Fall, der das Kanalverarbeitungsprogramm gemäß Fig. 12 enthält, werden Daten in dem ROM 47, auf das indirekt zugegriffen wird, lediglich in den Schritten D14 (oder D13) und D16 aus dem gesamten Schritten in Bezug genommen. Alle verbleibenden Schritte dienen zur Durchführung arithmetischer Verarbeitungen bei den exklusiven Registern beim RAN 44, das direkt adressiert werden kann. Der Kanalprozeß (Tonerzeugungsvorgang) kann daher mit hoher Geschwindigkeit durchgeführt werden. Die Hochgeschwindigkeitsverarbeitung rührt von dem Aufbau des Mikrocomputers her. Die strukturellen Merkmale schließen die Auslegung zur Ermöglichung einer direkten Adressierung des RAMs 44, wobei viele Register das RAM 44 bilden, und den Einsatz eines ausschließlichen Registeraufbaus im RAM 44 für ausschließliche Speicherung von verschiedenen Tonparametern bei dem Tongenerierungsprozeß ein.
  • Hinsichtlich der Schaltungsgröße und der Betriebs zeit des speziellen Ausführungsbeispiels (PCM-Tonquellensystem, das zur Erzeugung von acht polyphonen Tönen bzw. Klängen im Stande ist) besitzt das Steuer-ROM eine Größe von 112 kBit, das RAM 44 5,4 kBit und das Steuerdaten/Wellenform-ROM 47 (für 100 Klangfarben) 508 kBit; ein Maschinenzyklus dauert ungefähr 276 Nanosekunden bei einer maximalen Anzahl von Zyklen des Unterbrechungsprogramms, wenn aufgerufen, von ungefähr 150; und die Ausführungsperiode des Unterbrechungsvorgangs (Tonabgabeabtastperiode) beträgt ungefähr 47 Mikrosekunden.
  • Wie vorstehend, führt bei dem ersten Ausführungsbeispiel der Mikrocomputer 31 die Tonerzeugung unter der Steuerung durch das Zeitgeber-Interrupt-Programm durch, so daß Tonquellenschaltungs-Hardwarekomponenten, die beim Stand der Technik wesentlich sind, nicht notwendig sind, was zu einer Verringerung der Schaltungsgröße, einer Verbesserung der Ausbeute, einer Verringerung der Herstellungskosten und hoher Auslegungsfreiheit führt. Da weiterhin ein Vorgang zur Berechnung der Wellenform eines Musiktons und ein Vorgang zur Berechnung der Hüllkurve des Musiktons durch das Zeitgeber-Interrupt-Programm durchgeführt werden, das durch ein Interrupt-Signal aufgerufen wird, das von der Interrupt-Steuerung 50 bei jeden Tonabtastzeitpunkt exakt abgegeben wird, kann eine Hüllkurve mit der gewünschten Charakteristik exakt erzeugt werden. Der Mikrocomputer kann in einfacher Weise durch eine Computereinrichtung oder eine Verarbeitungseinrichtung für die erwähnten Verarbeitungen ersetzt werden.
  • Zweites Ausführungsbeispiel
  • Bei dem ersten, vorstehend beschriebenen Ausführungsbeispiel wird ein Zeitgeber-Interrupt zur Abgabe eines Tonwellenform-Abtastwerts zu jedem gegebenen Zeitpunkt eingesetzt und ein Musikton wird durch Laufenlassen eines Interruptprogramms erzeugt. Bei dem zweiten Ausführungsbeispiel wird jedoch ein Dummy- bzw. Blind-Befehl (NOP-Befehl) in einem Programm zur Durchführung des Prozesses anstelle des Interrupt-Prozesses bei jedem konstanten Zeitintervall eingesetzt; diese Verarbeitung wird im folgenden als Konstantzeit-Prozeß bezeichnet (siehe Figuren 18 bis 21). Da die Zeit zur Abarbeitung jedes Befehls eines Programms durch einen Haupttakt bestimmt ist, wird ein Konstantzeit-Verarbeitungsprogramm zur Erzeugung eines Musiktons während jenes Teils des Hauptprogramms, das der Konstantzeit entspricht (siehe Fig. 18), als ein Unterprogramm eingefügt.
  • Um eine konstante Zeit sicherzustellen, sollten alle Verzweigungen im Hauptprogramm und dem Konstantzeit-Verarbeitungsprogramm in dem Unterprogramm zur gleichen Zeit bearbeitet werden.
  • Es sei angenommen, daß das Hauptprogramm den in Fig. 19 gezeigten Ablauf besitzt und der Konstantzeit-Prozeß am Beginn und Ende des Ablaufs ausgeführt wird. Zum Zwecke der Einfachheit und des einfachen Verständnisses sei angenommen, daß Verzweigungsbefehle zwei Zeiteinheiten benötigen, während ein normaler Befehl eine Zeiteinheit braucht. Bei dem in Fig. 19 gezeigten Ablauf erfordert die Zeitdauer von der ersten Verzweigung bis zum Konstantzeit-Prozeß zwei Zeiteinheiten, wenn der Weg a genommen wird, fünf Zeiteinheiten für den Weg b, sechs Zeiteinheiten für den Weg c und fünf Zeiteinheiten für den Weg d; dies bedeutet, daß die Zeit von dem einzuschlagenden Weg abhängt. Falls vier Blind-Befehle in den Weg a und ein Blind-Befehl in die Wege b und d eingefügt werden, werden für jeden Weg sechs Zeiteinheiten benötigt, wie in Fig. 20 gezeigt ist.
  • Falls die Verarbeitungszeit sich in Abhängigkeit von den Verzweigungen selbst bei einem Konstantzeit-Prozeß unterscheidet, verändert sich die Zeit, die zum Springen zum nächsten Konstantzeit-Prozeß erforderlich ist. Es ist daher notwendig, einen Blind-Befehl in dem Konstantzeit-Prozeß einzufügen, um die für alle Verzweigungswege erforderliche Verarbeitungszeit konstant zu machen. Fig. 21 zeigt ein Beispiel des oben genannten Falls bei dem ein Blind-Befehl im Tonerzeugungsprozeß im Konstantzeit-Prozeß eingefügt ist.
  • Drittes Ausführungsbeispiel
  • Unter Bezugnahme auf Fig. 10 ist das Intervall T, in dem ein Interrupt-Signal erzeugt wird, sehr stabil. Dies liegt daran, daß das Interrupt-Signal durch einen Hardware- Zähler in einer Interrupt-Steuerung 50 erzeugt wird. Die Stabilität der Signalerzeugung wird durch die Stabilität eines Taktgenerators (üblicherweise eines Kristalloszillators) bestimmt, auch wenn dies nicht gezeigt ist. Gemäß dem ersten und zweiten Ausführungsbeispiel wird der Hauptprozeß durch dieses Interrupt-Signal unterbrochen und der Tonerzeugungsprozeß (Interrupt-Prozeß) wird während der Unterbrechung abgearbeitet, so daß die Tonerzeugungs-Abtastperiode konstant gehalten wird. Selbstverständlich kann durch diesen technischen Ansatz die gemittelte Tonerzeugungs-Abtastperiode gleich dem Interruptsignal-Erzeugungsintervall T gesetzt werden. Denoch kann der Zeitpunkt, zu dem der Interrupt-Prozeß tatsächlich beginnt, variieren, wie in Fig. 22 hervorgehoben ist. Diese Veränderung hat ihren Ursprung in dem programmgesteuerten Betrieb. Genauer gesagt kann der Mikrocomputer 31 selbst dann, wenn ein externer Interrupt an den Mikrocomputer 31 angelegt wird, den gegenwärtig abgearbeiteten Vorgang nicht unmittelbar beenden, so daß der Interrupt-Prozeß am Ende jener Verarbeitung beginnt. Falls sich der Mikrocomputer 21 in einem Prozeß befindet, dessen Unterbrechung unerwünscht ist, wird die Unterbrechung gehalten, bis eine Operations folge dieses Prozesses beendet ist. Der Übergang zu einem Unterbrechungsprozeß hängt von dem Prozeß ab, der beim Auftreten eines Interrupts durchgeführt wird, so daß die Tonerzeugungsperiode unvermeidlich instabil wird. Genauer gesagt ist der Zeitpunkt des beim Schritt B1 in Fig. 7 durchgeführten Prozesses, d.h. das Herausgreifen digitaler Tondaten aus dem Wellenformadditionsregister im RAM 44 und deren Anlegen an den Eingangsanschluß des D/A-Wandlers 53, nach vorne oder hinten verschoben. Falls die Abtastperiode des D/A-Wandlers 53 dieselbe wie das Ausführungsintervall des Schritts B1 ist, würde eine erhebliche Verzerrung des Signals während der D/A-Umwandlung hervorgerufen werden. Dieser Nachteil wird durch das dritte Ausführungsbeispiel beseitigt.
  • Die Abtastperiode der Tonerzeugung mittels des Mikrocomputers 31 ist nicht streng konstant. Fig. 23 veranschaulicht den Aufbau, der die Abtastperiode der Tonerzeugung auf den gleichen Wert wie die Umwandlungsperiode des D/A- Wandlers 53 festlegt. Genauer gesagt ist ein programmgesteuerter Zwischenspeicher 55 als ein Anschluß des D/A- Wandlers 53 vorgesehen und dieser Zwischenspeicher 55 wird durch ein Programmsteuersignal vom Betriebsanalysator 48 gesteuert, um das Ausgangssignal des Zwischenspeichers 55 an ein Steuertor eines zugeordneten Bitschalters in einem Block 53A (nicht dargestellt; typischerweise ein stromgesteuerter elektronischer Schalter) anzulegen. Da der Block 53A tatsächlich ein digitales Signal in ein analoges Signal umwandelt, wird er im folgenden als D/A-Wandler bezeichnet. Im Fall der Fig. 23 wird das Wellenformadditionsregister im RAM 54 und der Steuerung durch den Betriebsanalysator 48 während des Schritts B1 in dem Unterbrechungsprogramm bestimmt, und neueste digitale Tondaten, die in dem Register zu speichern sind, werden auf einen Datenbus gehalten bzw. von diesem abgegriffen. Ein Programmsteuersignal für die Abtastung wird an einen Takteingang des Zwischenspeichers 55 durch den Betriebsanalysator 48 mit einer Zeitgabe angelegt, mit der die digitalen Tondaten sich auf dem Datenbus befinden. Dann werden die Daten auf dem Datenbus gespeichert und neue digitale Tondaten werden von dem Zwischenspeicher 55 an den D/A-Wandler 53A angelegt. Wie in Fig. 25A gezeigt ist, werden daher digitale Tondaten, die an den D/A-Wandler 53A anzulegen sind, mit einer nicht stabilen Periode aufgrund der involvierten Programmsteuerung umgeschaltet. Falls die Umwandlungsperiode (Abtastperiode) des D/A-Wandlers 53A nicht sehr stabil ist, tritt eine große Verzerrung in dem umgewandeiten Signal während der Umwandlung auf. Beispielsweise hindert bei einem Maschinenzyklus des Mikrocomputers 31 von mehreren zehn oder mehreren hundert Nanosekunden eine Verzögerung von nur einem Maschinenzyklus erheblich die notwendige Genauigkeit der Umwandlungsperiode zum Umsetzen eines digitalen Signals mit Audio-Frequenz in ein analoges Signal mit hoher Treue. Anders ausgedrückt bewirkt selbst eine Abweichung in der Größenordnung von Nanosekunden eine derartige Verzerrung, die durch eine Person hörbar wahrgenommen werden kann.
  • Dieses Problem kann durch Einsatz des in Fig. 24 gezeigten Aufbaus überwunden werden. Ein interruptgesteuerter Zwischenspeicher 56, der durch ein Interrupt-Signal oder ein genaues Zeitgabesignal von der Interrupt-Steuerung 50 gesteuert wird, ist zwischen dem softwaregesteuerten Zwischenspeicher 55, der durch ein Programmsteuersignal des Betriebsanalysators 48 steuerbar ist, und dem D/A-Wandler 53A vorgesehen. Da die Periode zur Erzeugung eines Interrupt-Signals von der Stabilität des Taktgenerators abhängt, ist sie sehr stabil. Das Ausgangssignal des Zwischenspeichers 56 wird synchron mit der Zeitgabe des Interrupt-Signals umgeschaltet. Dies bedeutet, daß die Interuptsignal- Erzeugungsperiode die Umwandlungsperiode (Abtastperiode) des D/A-Wandlers 53A ist. Fig. 25B zeigt ein Zeitdiagramm für den in Fig. 24 dargestellten Aufbau. Wie gezeigt, erlaubt der Zwischenspeicher 56, der durch das Interrupt-Signal betrieben wird, die Synchronisation der Zeitgabe der Umschaltung der Eingangsdaten des D/A-Wandlers 53A mit dem Interrupt-Signal, obwohl die Zeitgabe, mit der das Ausgangssignal des Zwischenspeichers 55 umgeschaltet wird, sich in Abhängigkeit von einer Verschiebung der Zeitgabe des Interrupt-Prozesses verändert. Aufgrund des Vorhandenseins des Zwischenspeichers 56 ist das digitale Tonsignal, das an den D/A-Wandler 53A angelegt wird, um eine Periode des Interrupt-Signals im Mittel verzögert. Diese Verzögerung ist jedoch recht unbedeutend. Beispielsweise ist die Periode des Interruptsignals 47 Mikrosekunden und eine solche kurze Zeitperiode kann durch Personen nicht hörbar wahrgenommen werden. Im allgemeinen ist eine Größe von mehreren Millisekunden die Hörgrenze für Menschen.
  • Auch wenn die vorliegende Erfindung in der vorstehenden Beschreibung unter Bezugnahme auf manche bestimmte Ausführungsbeispiele erläutert wurde, ist die Erfindung nicht auf die beschriebenen Beispiele beschränkt, sondern kann im Umfang der Ansprüche in unterschiedlicher Weise modifiziert werden.
  • Beispielsweise kann der Wellenformerzeugungsvorgang, auch wenn er bei den vorstehend beschriebenen Ausführungsbeispielen durch einen Mikrocomputer durchgeführt wird, durch einen Minicomputer ausgeführt werden. Die vorliegende Erfindung kann unabhängig von der Größe eines eingesetzten Computers oder Verarbeitungssysytems ausgeführt werden, solange der Computer oder Prozessor unter Softwaresteuerung arbeitet.

Claims (11)

1. Datenverarbeitungseinrichtung für einen Ton- bzw. Geräuschsignaigenerator, mit einer Computer- oder Prozessoreinrichtung (31), wobei die Computer- oder Prozessoreinrichtung aufweist:
eine Programmspeichereinrichtung (41) zum Speichern eines Programms zur Erzeugung eines oder mehrerer Geräuschbzw. Tonsignale;
eine Adreßsteuereinrichtung (42, 49) zum Steuern einer Adresse der Programmspeichereinrichtung;
eine Tondatenspeichereinrichtung (47) zum Speichern von Tondaten, die für die Erzeugung der Geräusch- bzw. Tonsignale erforderlich sind;
eine arithmetische Verarbeitungseinrichtung (45, 46) zum Berechnen eines oder mehrerer Geräusch- bzw. Tonsignale in Abhängigkeit von den Tondaten, die in der Tondatenspeichereinrichtung gespeichert sind; und
eine Betriebssteuereinrichtung (48) zum Dekodieren jedes Befehls des in der Programmspeichereinrichtung gespeicherten Programms und zum Steuern des Betriebs der Adreßsteuereinrichtung, der Tondatenspeichereinrichtung und der arithmetischen Verarbeitungseinrichtung,
wodurch ein oder mehrere Geräusch- bzw. Tonsignale durch Abarbeitung des Programms in der Programmspeichereinrichtung erzeugt werden können;
gekennzeichnet durch
eine erste Zwischenspeichereinrichtung (55) zum Zwischenspeichern eines oder mehrerer, durch die Computer- oder Prozessoreinrichtung (31) erzeugter Geräusch- bzw. Tonsignale als Reaktion auf ein Programmsteuersignal von der Computer- oder Prozessoreinrichtung (31);
eine zweite Zwischenspeichereinrichtung (46) zum Zwischenspeichern eines Ausgangssignals der ersten Zwischenspeichereinrichtung mit einer Zeitgabe eines genauen Abtastzeitsignals.
2. Datenverarbeitungseinrichtung nach Anspruch 1, wobei die Tondatenspeichereinrichtung (47) Tonhöhendaten, Hüllkurvendaten und Ton- bzw. Geräuschwellenformdaten eines PCM-Typs als die Tondaten speichert.
3. Datenverarbeitungseinrichtung nach Anspruch 1 oder 2, wobei die Computer- oder Prozessoreinrichtung (31) einen integrierten Schaltungschip aufweist, der mit einem Digital/Analog-Wandler zum Umsetzen eines digitalen Geräuschbzw. Tonsignals in ein analoges Signal und einem Anschluß zum Empfangen eines Eingangssignals des Geräusch- bzw. Tonsignalgenerators versehen ist.
4. Datenverarbeitungseinrichtung nach Anspruch 1, 2 oder 3, wobei die arithmetische Verarbeitungseinrichtung (45, 46) einen Multiplizierer (46) zum Berechnen der Geräusch- bzw. Tonsignale aufweist.
5. Datenverarbeitungseinrichtung nach einem der vorhergehenden Ansprüche, wobei die arithmetische Verarbeitungseinrichtung (45, 46) eine Interpolationseinrichtung zum Interpolieren eines Weilenformwerts, der mit Bezug zu einer Adresse zwischen zwei benachbarten Adressen der Tondatenspeichereinrichtung (47) erwartet wird.
6. Datenverarbeitungseinrichtung nach Anspruch 5, wobei die arithmetische Verarbeitungseinrichtung (45, 46) die Geräusch- bzw. Tonwellenformdaten aus der Tondatenspeichereinrichtung mit einer Frequenz liest, die höher ist als die Aufzeichnungsabtastfrequenz des ursprünglichen Geräuschs bzw. Tons.
7. Datenverarbeitungseinrichtung nach einem der vorhergehenden Ansprüche, wobei die Eingabe bzw. das Eingangssignal des Geräusch- bzw. Tonsignalgenerators eine Tasteneingabe bzw. ein Tasteneingabesignal, die bzw. das eine Tonhöhe der zu erzeugenden Geräusch- bzw. Tonsignale bezeichnet, eine Eingabe bzw. ein Eingangssignal von einer Konsolentafel des Geräusch- bzw. Tonsignalgenerators, eine Eingabe von automatischen musikalischen Aufführungs- bzw. Durchführungsdaten und eine Eingabe bzw. ein Eingangssignal zum Betätigen einer externen Einheit umfaßt.
8. Datenverarbeitungseinrichtung nach einem der vorhergehenden Ansprüche, die weiterhin eine Zeitgeberunterbrechungs-Steuereinrichtung (50) zum Erzeugen eines Unterbrechungssignals in einer Musikton-Abtastperiode enthält, wobei das Programm zum Erzeugen eines oder mehrerer Geräuschbzw. Tonsignale aus der Programmspeichereinrichtung durch die Adreßsteuereinrichtung aus gelesen wird, die das Unterbrechungssignal von der Zeitgeberunterbrechungs-Steuereinrichtung empfängt, wobei die Erzeugung der Geräusch- bzw. Tonsignale durch Abarbeitung des ausgelesenen Programms bewirkt wird.
9. Datenverarbeitungseinrichtung nach einem der vorhergehenden Ansprüche, die weiterhin eine Rechenverarbeitungs- Speichereinrichtung (44) mit einer Anzahl von Registern aufweist, die direkt durch das Programm in der Programmspeichereinrichtung adressierbar sind, wobei die Register diejenigen enthalten, die für eine arithmetische Berechnung bei der Abarbeitung des Programms zur Erzeugung eines oder mehrerer Geräusch- bzw. Tonsignale eingesetzt werden, und exklusiv die Tondaten speichern;
wobei
die arithmetische Verarbeitungseinrichtung (45, 46) arithmetische Berechnungen zwischen den Registern der Rechenverarbeitungs-Speichereinrichtung durchführt;
die Tondatenspeichereinrichtung indirekt über die Register der Rechenverarbeitungs-Speichereinrichtung durch das Programm in der Programmspeichereinrichtung adressierbar ist; und
die Betriebssteuereinrichtung (48) weiterhin den Betrieb der Rechenverarbeitungs-Speichereinrichtung steuert, wobei die Register der Rechenverarbeitungs-Speichereinrichtung (44) für eine arithmetische Verarbeitung eingesetzt werden und exklusiv die Tondaten durch Abarbeitung der Programme zur Erzeugung eines Musiktons speichern.
10. Datenverarbeitungseinrichtung nach Anspruch 8, wobei das Programm, das als Reaktion auf das Unterbrechungssignal auszulesen und abzuarbeiten ist, eine Routine zum Berechnen einer Mehrzahl von Tonsignalen und eine Routine zum Berechnen einer Mehrzahl von Hüllkurven der Musiktonsignale enthält, und wobei die Erzeugung der Musiktonsignale im wesentlichen synchron mit der Erzeugung der Hüllkurven der Musiktonsignale ausgeführt wird, wodurch die Mehrzahl von Geräusch- bzw. Tonsignalen durch jeweiliges Multiplizieren der Mehrzahl von Musiktonsignalen mit der Mehrzahl von Hüllkurven erzeugt wird.
11. Elektronisches Musikinstrument mit:
einer Datenverarbeitungseinrichtung nach einem der vorhergehenden Ansprüche, und einer akustischen Tongeneratoreinrichtung (35 bis 38) zum Erzeugen von Musiktönen auf der Grundlage der Geräusch- bzw. Tonsignale, die durch die Computer- oder Prozessoreinrichtung erzeugt werden.
DE68917113T 1988-12-29 1989-12-29 Datenverarbeitungsvorrichtung für ein elektronisches Musikinstrument. Expired - Lifetime DE68917113T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP63334158A JP2576613B2 (ja) 1988-12-29 1988-12-29 処理装置
JP63334163A JP2576617B2 (ja) 1988-12-29 1988-12-29 処理装置
JP63334161A JP2576615B2 (ja) 1988-12-29 1988-12-29 処理装置
JP63334166A JP2576618B2 (ja) 1988-12-29 1988-12-29 処理装置
JP63334162A JP2576616B2 (ja) 1988-12-29 1988-12-29 処理装置

Publications (2)

Publication Number Publication Date
DE68917113D1 DE68917113D1 (de) 1994-09-01
DE68917113T2 true DE68917113T2 (de) 1995-03-16

Family

ID=27531219

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68917113T Expired - Lifetime DE68917113T2 (de) 1988-12-29 1989-12-29 Datenverarbeitungsvorrichtung für ein elektronisches Musikinstrument.

Country Status (3)

Country Link
EP (1) EP0376342B1 (de)
KR (1) KR930005221B1 (de)
DE (1) DE68917113T2 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69130688T2 (de) * 1990-06-28 1999-09-09 Casio Computer Co Ltd Vorrichtung zur Erzeugung von Musikwellenformen
JP2705395B2 (ja) * 1991-10-07 1998-01-28 ヤマハ株式会社 電子楽器
JP3267106B2 (ja) 1995-07-05 2002-03-18 ヤマハ株式会社 楽音波形生成方法
CN1145519A (zh) * 1995-09-01 1997-03-19 苏勇 音频信号保真变速处理方法
DE69632351T2 (de) 1995-09-29 2005-05-25 Yamaha Corp., Hamamatsu Verfahren und Vorrichtung zur Musiktonerzeugung
JP3975593B2 (ja) 1999-01-21 2007-09-12 株式会社ソニー・コンピュータエンタテインメント 再生音を発生する方法、再生音を発生する電子機器及びエンターテインメント・システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5375919A (en) * 1976-12-17 1978-07-05 Nippon Gakki Seizo Kk Electronic instrument
GB2013386A (en) * 1977-09-10 1979-08-08 Fox H M Electronic sound processing device
JPS6145297A (ja) * 1984-08-09 1986-03-05 カシオ計算機株式会社 電子楽器
JPH067323B2 (ja) * 1984-11-30 1994-01-26 カシオ計算機株式会社 電子楽器

Also Published As

Publication number Publication date
EP0376342A3 (en) 1990-11-28
EP0376342A2 (de) 1990-07-04
EP0376342B1 (de) 1994-07-27
KR900010646A (ko) 1990-07-09
DE68917113D1 (de) 1994-09-01
KR930005221B1 (en) 1993-06-16

Similar Documents

Publication Publication Date Title
DE3751503T2 (de) Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
DE3786594T2 (de) Speicherverwaltungseinheit für Digitalsignalprozessor.
DE3528719C2 (de)
DE3003385C2 (de) Hüllkurvenschaltung für ein elektronisches Musikinstrument
DE3318667C1 (de) Elektronisches Tastenmusikinstrument und Verfahren zu dessen Betrieb
DE3750186T2 (de) Liefervorrichtung für Parameter in einem elektronischen Musikinstrument.
DE2362050B2 (de) Elektronisches Musikinstrument
DE3630611C2 (de)
DE3528716A1 (de) Elektronisches musikinstrument mit einem wellenformspeicher zum speichern von auf externen klaengen basierenden wellenformdaten
EP0042555B1 (de) Verfahren zur digitalen Hüllkurvensteuerung eines polyphonen Musiksyntheseinstruments und Schaltungsanordnung zur Durchführung des Verfahrens
DE68917113T2 (de) Datenverarbeitungsvorrichtung für ein elektronisches Musikinstrument.
DE2828919C2 (de) Schaltungsanordnung für ein polyphones elektronisches Musikinstrument
DE69018858T2 (de) Vorrichtung zum Erzeugen eines Musiktonsignals.
EP0036074B1 (de) Syntheseschaltung für periodische Signale, insbesondere als Teil eines Musikinstruments
DE2513127C2 (de) Verfahren zum künstlichen Erzeugen eines musikalischen Klangs
DE4232642B4 (de) Solenoid-Ansteuersystem für ein Gerät zur automatischen musikalischen Darbietung
DE3121046A1 (de) Arithmetik-logikeinheit mit bit-manipulation
DE69018844T2 (de) Vorrichtung zur Musiktonerzeugung.
DE3509474C2 (de)
EP0126975A2 (de) Elektronisches Tasteninstrument
DE69732797T2 (de) Verfahren und vorrichtung zur speicherung von tonfolgen in cyclischen schleifen
EP0272723B1 (de) Verfahren zur Bestimmung des zeitlichen Verlaufs eines Sprachparameters und Anordnung zur Durchführung des Verfahrens
DE3040032C2 (de) Rechner mit Sprachausgabe
DE2901969A1 (de) Elektronisches musikinstrument mit einer einrichtung zur erzeugung variabler impulse
DE2952459C2 (de)

Legal Events

Date Code Title Description
8364 No opposition during term of opposition