-
HINTERGRUND
DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich auf eine Musiktonerzeugungs-Vorrichtung
zum Auslesen von Wellenformdaten, die in einem digitalen Speicher gespeichert
sind, um unter Verwenden von Software einen Musikton zu erzeugen.
Die vorliegende Erfindung bezieht sich auch auf eine Musiktonerzeugungs-Vorrichtung
zum Verarbeiten von Wellenformdaten, die in Echtzeit unter Verwenden
der Software eingegeben werden. Insbesondere bezieht sich die Erfindung
auf eine Vorrichtung zum Erzeugen von Musiktönen, die in der Lage ist, einen
Filter-Prozess, einen Tonhöhen-Prozess
oder einen Scatch-Prozess an den erzeugten Musiktönen anzuwenden,
während die
Anzahl der Musiktöne
im Vergleich zu einer normalen Erzeugung oder Wiedergabe der Musiktöne reduziert
wird. Ferner bezieht sich die Erfindung auf eine Vorrichtung zum
Erzeugen von Musiktönen,
die in der Lage ist, einen pseudoartigen Scratch-Effekt zu erreichen.
-
Es
ist eine Software-Tonquelle bekannt, bei der Wellenformabtastwerte,
die von Originalmusiktönen
abgetastet werden, in einer Speichervorrichtung vorab gespeichert
werden. Die gespeicherten Wellenformdaten werden von einer Software
oder einem Programm im Ansprechen auf Betätigen eines manuellen Zubehörs ausgelesen.
Die herkömmliche
Software-Tonquelle ist jedoch funktionell festgelegt und weist daher
ziemlich eingeschränkte
Anwendungen und schlechte Leistung auf. In den letzten Jahren entstand
der Bedarf an Hochleistungs-Tonquellen, die einen Musikton mit verschiedenen
Effekten, wie beispielsweise einem digitalen Klangfarben-Filterprozess,
und einem Scratch-Effekt belegen können.
US 5 350 882 beschreibt zum Beispiel
eine Vorrichtung für
automatisches Spiel mit angetriebenen Rotationsmitteln zur Temposteuerung.
Wenn eine Scratch-Scheibe betrieben wird, wird ein Sequenz-Zähler in
Entsprechung zu Geschwindigkeit und Ausmaß der Drehung der Scheibe geändert.
-
Dabei
wird beim Auslesen von Ereignisdaten und Ereigniszeitpunktdaten
aus einem Seuqenzerspeicher der Zeittakt gesteuert, um das Tempo
des automatischen Spiels des verwendeten Musikinstruments wirksam
zu ändern.
Scratch ist ursprünglich eine
Technik zum Erzeugen eines Tons mit Spezialeffekt durch zwangsweises
Bewegen einer analogen Schallplatte mit der Hand, während die
Schallplatte auf einen Plattenteller angetrieben wird, so dass die Abspielgeschwindigkeit
unregelmäßig verändert wird.
Das Scratch ist ursprünglich
die Spezialtechnik, bei der die analoge Schallplatte verwendet wird.
Es gibt keine digitale Vorrichtung zum Erzeugen von Musiktönen, die
einen Scratch-Effekt realisiert.
-
KERN DER ERFINDUNG
-
Bei
einer Vorrichtung zum Erzeugen von Musiktönen, die in einem digitalen
Speicher gespeicherten Wellenformdaten ausliest, um unter Verwenden einer
Software Musiktöne
zu erzeugen, ist ein Ziel der vorliegenden Erfindung, eine erweiterte
Leistung zu erreichen, die nicht mit der herkömmlichen Software-Tonquelle
realisiert werden kann, so dass verschiedene Prozesse und Effekte
den Musiktönen
beigegeben werden, während
die Anzahl der erzeugten Musiktöne
gewährleistet
werden kann. Ferner ist es bei einer Vorrichtung zum Erzeugen von
Musiktönen, welche
in Echtzeit eingegebene Wellenformdaten direkt ausgibt, ein Ziel
der vorliegenden Erfindung, eine Hochleistung zu erreichen, die
nicht von einer herkömmlichen
Software-Tonquelle realisiert werden könnte, so dass verschiedene
Prozesse und Effekte den extern eingegebenen Wellenformdaten beigegeben
werden. Zudem ist es ein Ziel der vorliegenden Erfindung, einen
pseudoartigen Scratch-Effekt bei der Vorrichtung zum Erzeugen von
Musiktönen
zu realisieren, welche in einem digitalen Speicher gespeicherte
Wellenformdaten ausliest oder in Echtzeit eingegebene Wellenformdaten
direkt ausgibt.
-
Gemäß der Erfindung
werden die vorhergehenden Probleme gelöst durch Bereitstellen einer Vorrichtung
zum Wiedergeben eines Musiktons durch Auslesen einer entsprechenden
Wellenform in Entsprechung zu einer variablen Leseadresse, so dass
ein Scratcheffekt in dem wiedergegebenen Musikton im Ansprechen
auf einen Berührvorgang
eingeführt
wird. Die Musikvorrichtung weist folgendes auf: Speichermittel zum
Speichern einer Wellenform in Form einer Sequenz von Amplitudenwertdaten,
die in einer vorgegebenen Abtastperiode angeordnet sind, um einen
entsprechenden Musikton zu repräsentieren,
ein Detektionsimplement mit einer Länge zum Empfangen des Berührvorgangs,
um eine Stelle des Berührvorgangs über die
Länge zu
detektieren und einen Positionswert auszugeben, der der detektierten
Stelle des Berührsvorgangs
entspricht, Wiederauffindemittel zum periodischen Wiederauffinden des
vom dem Detektionsimplement ausgegebenen Positionswertes, um den
Berührvorgang
zu überwachen
und Wiedergabemittel zum variablen Ermitteln jeder Leseadresse in
Entsprechung zu den wiedergefundenen der Positionswerte und zum
sukzessiven Auslesen der Wellenform aus den Speichermitteln in Entsprechung
zu jeder ermittelten Leseadresse, so dass der entsprechende Musikton
mit dem Scratcheffekt wiedergegeben wird. Kennzeichnenderweise weisen
die Wiedergabemittel Mittel auf, die wirksam sind, wenn der Berührvorgang
initiiert ist, um das Auslesen der Wellenform aus einer vorgegebenen
Start-Leseadresse zu starten, und wobei sie während des Verlaufs des Berührvorgangs
wirksam sind, um ein sukzessives Auslesen der Wellenform in Entsprechung
zu jeder ermittelten Leseadresse fortzusetzen.
-
Ferner
können
die Wiederauffindemittel Mittel zum differentiellen Verarbeiten
der periodisch wiedergefundenen Positionswerte aufweisen, um eine Geschwindigkeit
des Berührvorgangs
zu berechnen, und die Wiedergabemittel können Mittel aufweisen zum Ermitteln
einer variablen Zahl in Entsprechung zu der Geschwindigkeit des
Berührvorgangs
und zum Akkumulieren der variablen Zahl zu einer vorangegangenen
Leseadresse, um eine nachfolgende Leseadresse zu ermitteln.
-
Gemäß der Erfindung
ist außerdem
eine Musikvorrichtung vorgesehen, wie es in Anspruch 3 dargelegt
ist.
-
Zudem
können
die Speichermittel Mittel zum Speichern einer Wellenform aufweisen,
die von einer externen Quelle auf Echtzeitbasis eingeben wurde, und
die Wiedergabemittel können
Mittel aufweisen, die wirksam sind, wenn der Berührvorgang nicht begonnen ist,
zum Ausgeben der eingegebenen Wellenform wie sie ist, um den entsprechenden
Musikton ohne den Scratch-Effekt wiederzugeben, und wobei sie wirksam
sind, wenn der Berührvorgang
begonnen hat, zum Stoppen des Speicherns und Ausgebens der Wellenform
und an Stelle dessen zum sukzessiven Auslesen der Wellenform aus
den Speichermitteln in Entsprechung zu variablen Leseadressen, um den
entsprechenden Musikton mit einem Scratch-Effekt wiederzugeben.
Vorzugsweise weisen die Speichermittel eine Speicherkapazität auf, die
ausreichend ist, um ein vollständiges
Datenvolumen einer unverbrauchten Wellenform zu speichern, die neu von
der externen Quelle auf Echtzeitbasis eingeben wurde.
-
Die
Erfindung bezieht sich auch auf ein Verfahren zum Betreiben einer
Musikvorrichtung zum Wiedergeben eines Musiktons durch Auslesen
einer entsprechenden Wellenform in Entsprechung zu einer variablen
Leseadresse, so dass ein Scratcheffekt in dem wiedergegebenen Musikton
im Ansprechen auf einen Berührvorgang
eingeführt
wird. Das Verfahren weist die folgenden Schritte auf: Speichern
einer Wellenform in einen Speicher in Form einer Sequenz von Amplitudenwertdaten,
die in einer vorgegebenen Abtastperiode angeordnet sind, um einen entsprechenden
Musikton zu repräsentieren,
Betreiben eines Detektionsimplements mit einer Länge zum Empfangen des Berührvorgangs,
um eine Stelle des Berührvorgangs über die
Länge zu
detektieren und einen Positionswert auszugeben, der der detektierten
Stelle des Berührsvorgangs
entspricht, periodisches Wiederauffinden des vom dem Detektionsimplement
ausgegebenen Positionswertes, um den Berührvorgang zu überwachen,
variables Ermitteln jeder Leseadresse in Entsprechung zu den wiedergefundenen
der Positionswerte und Durchführen
einer Wiedergabe zum sukzessiven Auslesen der Wellenform aus dem
Speicher in Entsprechung zu jeder ermittelten Leseadresse, so dass
der entsprechende Musikton mit dem Scratcheffekt wiedergegeben wird. Die
Wiedergabe wird durchgeführt,
wenn der Berührvorgang
initiiert ist, um das Auslesen der Wellenform aus einer vorgegebenen
Start-Leseadresse zu starten, und die Wiedergabe wird während des
Verlaufs des Berührvorgangs
durchgeführt,
um ein sukzessives Auslesen der Wellenform in Entsprechung zu jeder
ermittelten Leseadresse fortzusetzen.
-
Zusätzlich kann
der Wiederauffindeschritt ein differentielles Verarbeiten der periodisch
wiedergefundenen Positionswerte aufweisen, um eine Geschwindigkeit
des Berührvorgangs
zu berechnen, und wobei der Schritt des Durchführens einer Wiedergabe ein
Ermitteln einer variablen Zahl in Entsprechung zu der Geschwindigkeit
des Berührvorgangs und
Akkumulieren der variablen Zahl zu einer vorangegangenen Leseadresse,
um eine nachfolgende Leseadresse zu ermitteln, aufweist.
-
Nach
einer weiteren Ausführungsform
weist das Verfahren zum Betreiben einer Musikvorrichtung zum Wiedergeben
eines Musiktons durch Auslesen einer entsprechenden Wellenform in
Entsprechung zu einer variablen Leseadresse, so dass ein Scratcheffekt
in dem wiedergegebenen Musikton im Ansprechen auf einen Berührvorgang
eingeführt
wird, die folgenden Schritte auf: Speichern einer Wellenform in einen
Speicher in Form einer Sequenz von Amplitudenwertdaten, die in einer vorgegebenen
Abtastperiode angeordnet sind, um einen entsprechenden Musikton
zu repräsentieren,
Betreiben eines Detektionsimplements mit einer Länge zum Empfangen des Berührvorgangs,
um eine Stelle des Berührvorgangs über die
Länge zu
detektieren und einen Positionswert auszugeben, der der detektierten
Stelle des Berührsvorgangs
entspricht, periodisches Wiederauffinden des vom dem Detektionsimplement
(106) ausgegebenen Positionswertes, um den Berührvorgang
zu überwachen,
variables Ermitteln jeder Leseadresse in Entsprechung zu den wiedergefundenen
der Positionswerte und Durchführen
einer Wiedergabe zum sukzessiven Auslesen der Wellenform aus dem
Speicher (103) in Entsprechung zu jeder ermittelten Leseadresse,
so dass der entsprechende Musikton mit dem Scratcheffekt wiedergegeben
wird. Der Speicherschritt weist ein Speichern einer Wellenform auf, welche
von einer externen Quelle in Echtzeitbasis eingegeben wird. Die
Wiedergabe wird durchgeführt, wenn
der Berührvorgang
nicht zum Ausgeben der eingegebenen Wellenform, so wie sie ist,
begonnen wird, um den entsprechenden Musikton ohne Scratcheffekt
wiederzugeben, und die Wiedergabe wird durchgeführt, wenn der Berührvorgang
zum Stoppen des Speicherns und Ausgebens der Wellenform und zum
sukzessiven Auslesen der Wellenform aus dem Speicher in Entsprechung
zu den variablen Leseadressen begonnen wird, so dass der entsprechende Musikton
mit dem Scratcheffekt wiedergegeben wird.
-
Ferner
bezieht sich die Erfindung auf ein maschinenlesbares Medium mit
Befehlen, eine Musikvorrichtung zum Durchführen eines Verfahrens zum Wiedergeben
eines Musiktons zu veranlassen, wenn die Befehle mittels der Vorrichtung
ausgeführt
werden, durch Auslesen einer entsprechenden Wellenform in Entsprechung
zu einer variablen Leseadresse, so dass ein Scratcheffekt in dem
wiedergegebenen Musikton im Ansprechen auf einen Berührvorgang
eingeführt
wird. Das Verfahren weist die folgenden Schritte auf: Speichern
einer Wellenform in einen Speicher in Form einer Sequenz von Amplitudenwertdaten,
die in einer vorgegebenen Abtastperiode angeordnet sind, um einen
entsprechenden Musikton zu repräsentieren,
Betreiben eines Detektionsimplements mit einer Länge zum Empfangen des Berührvorgangs,
um eine Stelle des Berührvorgangs über die
Länge zu
detektieren und einen Positionswert auszugeben, der der detektierten
Stelle des Berührsvorgangs
entspricht, periodisches Wiederauffinden des vom dem Detektionsimplement
ausgegebenen Positionswertes, um den Berührvorgang zu überwachen,
variables Ermitteln jeder Leseadresse in Entsprechung zu den wiedergefundenen
der Positionswerte und Durchführen
einer Wiedergabe zum sukzessivem Auslesen der Wellenform aus dem
Speicher in Entsprechung zu jeder ermittelten Leseadresse, so dass
der entsprechende Musikton mit dem Scratcheffekt wiedergegeben wird.
Dabei wird die Wiedergabe durchgeführt, wenn der Berührvorgang initiiert
ist, um ein Auslesen der Wellenform aus einer vorgegebenen Start-Leseadresse
zu starten, und die Wiedergabe wird während des Verlaufs des Berührvorgangs
durchgeführt,
um ein sukzessives Auslesen der Wellenform in Entsprechung zu jeder
ermittelten Leseadresse fortzusetzen.
-
Der
Wiederauffindeschritt kann ferner differentielles Verarbeiten der
periodisch wiedergefundenen Positionswerte aufweisen, um eine Geschwindigkeit
des Berührvorgangs
zu berechnen, und wobei der Schritt des Durchführens einer Wiedergabe Ermitteln
einer variablen Zahl in Entsprechung zu der Geschwindigkeit des
Berührvorgangs
und Akkumulieren der variablen Zahl zu einer vorangegangenen Leseadresse
aufweist, um eine nachfolgende Leseadresse zu ermitteln.
-
Nach
einer weiteren Ausführungsform
enthält
das maschinenlesbare Medium Befehle, um eine Musikvorrichtung zum
Durchführen
eines Verfahrens zum Wiedergeben eines Musiktons zu veranlassen, wenn
die Befehle mittels der Vorrichtung ausgeführt werden, durch Auslesen
einer entsprechenden Wellenform in Entsprechung zu einer variablen
Leseadresse, so dass ein Scratcheffekt in dem wiedergegebenen Musikton
im Ansprechen auf einen Berührvorgang
eingeführt
wird. Das Verfahren weist die folgenden Schritte auf: Speichern
einer Wellenform in einen Speicher in Form einer Sequenz von Amplitudenwertdaten,
die in einer vorgegebenen Abtastperiode angeordnet sind, um einen
entsprechenden Musikton zu repräsentieren,
Betreiben eines Detektionsimplements mit einer Länge zum Empfangen des Berührvorgangs,
um eine Stelle des Berührvorgangs über. die
Länge zu
detektieren und einen Positionswert auszugeben, der der detektierten
Stelle des Berührsvorgangs
entspricht, periodisches Wiederauffinden des vom dem Detektionsimplement
ausgegebenen Positionswertes, um den Berührvorgang zu überwachen,
variables Ermitteln jeder Leseadresse in Entsprechung zu den wiedergefundenen
der Positionswerte und Durchführen
einer Wiedergabe zum sukzessiven Auslesen der Wellenform aus dem
Speicher in Entsprechung zu jeder ermittelten Leseadresse, so dass
der entsprechende Musikton mit dem Scratcheffekt wiedergegeben wird.
Der Speicherschritt weist ein Speichern einer Wellenform auf, welche
von einer externen Quelle auf Echtzeitbasis eingegeben wird. Dabei
wird die Wiedergabe durchgeführt,
wenn der Berührvorgang
zum Ausgeben der eingegebenen Wellenform, so wie sie ist, nicht
begonnen wird, um den entsprechenden Musikton ohne den Scratcheffekt
wiederzugeben, und die Wiedergabe durchgeführt wird, wenn der Berührvorgang
zum Stoppen des Speicherns und Ausgebens der Wellenform und zum
sukzessiven Auslesen der Wellenform aus dem Speicher in Entsprechung
zu dem variablen Leseadressen begonnen wird, so dass der entsprechende
Musikton mit dem Scratcheffekt wiedergegeben wird.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein strukturelles Blockschaltbild eines Abtasters als eine Ausführungsform
einer Vorrichtung zum Erzeugen von Musiktönen gemäß der vorliegenden Erfindung.
-
2(a)–2(e) sind Diagramme, die verschiedene Arbeitsbereiche
im Abtaster aus 1 zeigen.
-
3 ist
ein Flussdiagramm einer Hauptroutine.
-
4 ist
ein Flussdiagramm einer Modus-SW-Ereignis-Routine.
-
5 ist
ein Flussdiagramm eines Startprozesses MS(1) für einen Abtastmodus.
-
6 ist
ein Flussdiagramm eines Startprozesses MS(4) für einen Scratchmodus.
-
7 ist
ein Flussdiagramm einer Ereignis-EIN-Routine (Modus m = 0, 2, 4).
-
8 ist
ein Flussdiagramm einer anderen Ereignis-EIN-Routine (Modus m =
3).
-
9 ist
ein Flussdiagramm einer Routine zum Zurückholen eines Detektionswertes
eines Bandreglers RC(m) (m = 2, 5).
-
10 ist
ein Flussdiagramm einer weiteren Routine zum Zurückholen eines Detektionswertes
eines Bandreglers RC(m) (m = 4, 6).
-
11(a) – 11(c) sind Flussdiagramme von Routinen zur Wellenformverarbeitung
HS(m) (Modus m = 0, 2, 3).
-
12(a) – 12(c) sind Flussdiagramme von Routinen zur Wellenformverarbeitung
HS(m) (Modus m = 4, 5, 6).
-
13(a) und 13(b) sind
Flussdiagramme von Unterroutinen "normal n" und "Tonhöhe
2".
-
14 ist
ein Flussdiagramm eines Scratch-Prozesses und eines EX-Scratch-Prozesses.
-
15 ist
ein Flussdiagramm einer DR(m)-Routine (Modus m = 1, 5, 6).
-
16 ist
ein Flussdiagramm einer DP-Routine.
-
17(a) und 17(b) sind
Diagramme, die die Zeittakte von Wiedergabe und Aufnahme von Wellenformdaten
zeigen.
-
18(a) und 18(b) sind
Diagramme, die Beispiele einer Umwandlung von Geschwindigkeit VEL
zur Scratch-F-Zahl SFN zeigen.
-
19 ist
ein schematisches Blockschaltbild, das eine weitere Ausführungsform
der Erfindung zeigt.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
Nachfolgend
werden Ausführungsformen der
vorliegenden Erfindung unter Bezugnahme auf die Zeichnungen beschrieben. 1 ist
ein strukturelles Blockschaltbild eines Abtasters, welcher eine Ausführungsform
einer Vorrichtung zum Erzeugen eines Musiktons gemäß der vorliegenden
Erfindung ist. Der Abtaster enthält
eine zentrale Verarbeitungseinheit (CPU) 101, einen Nur-Lesespeicher
(ROM) 102, einen Flash-Speicher 103, einen Direktzugriffsspeicher
(RAM) 104, einen Zeitgeber 105, einen Bandregler 106,
einen Satz von Bedienfeldern 107, eine Anzeige 108,
eine Schaltfläche 109,
einen Abtasttaktgenerator (Fs) 110, eine Ton-Eingabe/Ausgabeeinheit
(Ton-I/O) 112, einen (DMA) Direktspeicherzugriffsregler 113 und
eine Busleitung 115.
-
Die
CPU 101 regelt den Betrieb des gesamten Systems des Abtasters.
Der ROM 102 speichert Programme, die durch die CPU 101 ausgeführt werden.
Der RAM 104 ist mit Arbeitsbereichen, wie zum Beispiel
verschiedenen Registern und Zwischenspeichern, versehen. Der Flash-Speicher 103 ist
ein Speicher zum Speichern von Wellenformdaten, die von diesem Abtaster
abgetastet und aufgezeichnet werden. Die aufgezeichneten Wellenformdaten
werden zeitweilig ein einem Aufzeichnungszwischenspeicher im RAM 104 gespeichert.
Wenn der Aufzeichnungszwischenspeicher aufgefüllt ist, werden die Wellenformdaten
im Aufzeichnungszwischenspeicher zum Flash-Speicher 103 übertragen.
Sogar wenn der Abtaster ausgeschaltet ist, werden die Wellenformdaten
im Flash-Speicher 103 gehalten. Damit weist der Abtaster
Speichermittel zum Speichern von Wellenformen entsprechend den verschiedenen
Musiktönen
auf. Jede Wellenform wird zur Darstellung des entsprechenden Musiktons
in Form einer Folge von Amplitudenwertdaten gespeichert, welche
mit einer vorgegebenen Abtastzeit angeordnet sind.
-
Der
Zeitgeber 105 erzeugt ein Zeitgebertaktsignal zum Verursachen
einer Zeitgeberunterbrechung zu einem gegebenen Zeitintervall an
die CPU 101. Mittels der Zeitgeberunterbrechung führt die CPU 101 verschiedene
Prozesse aus, wie zum Beispiel das Zurückholen eines Detektionswerts
des Bandreglers 106 mit einem gegebenen Zeitintervall.
-
Der
Bandregler 106 ist ein Betriebsgerät, welches durch einen Benutzer
manipuliert wird, um eine Scratch-Operation oder sonstiges durchzuführen. Der
Bandregler 106 ist eine Vorrichtung zur Detektion einer
Koordinate, welche ein lineares Glied endlicher Länge aufweist,
und welche eine Koordinate einer Position ausgibt, an der ein Finger
oder eine Stange das lineare Glied berührt. Der Bandregler 106 sieht
vor, daß dessen
Betrieb an einer beliebigen Position begonnen werden kann. Der Bandregler 106 gibt
einen Standardwert aus, während
keine Berührungsaktion
mit dem Finger oder der Stange auftritt, und gibt ansonsten einen
Koordinatenpositionswert aus, wenn die Berührungsaktion erfolgt. So kann
aus dem Detektionswert bestimmt werden, ob die Berührungsaktion
mit dem Finger oder der Stange erfolgt oder nicht. Das Detektionsgerät hat nämlich eine Länge, um
die Berührungsaktion
zur Detektion eines Punktes der Berührungsaktion entlang der Länge und
zum Ausgeben eines Positionswertes entsprechend dem detektierten
Punkt der Berührungsaktion zu
empfangen.
-
Die
Felder 107 bilden ein weiteres Betriebsgerät, welches
durch den Benutzer manipuliert wird, um die Tonerzeugung zu regeln.
Speziell ist ein Satz von zehn Feldern 107 vorgesehen.
Das Aufzeichnen oder Abtasten eines ursprünglichen Musiktons kann durch
Bestimmen von einem der zehn Felder 107 erreicht werden.
Bei der Wiedergabe der aufgezeichneten Töne wird ein spezielles der
zehn Felder 107 durch den Benutzer angetippt, so daß die Wellenformdaten,
die diesem Feld entsprechen, ausgelesen und wiedergegeben werden.
Anstatt des Antippens oder Einstellens auf dem Feld, kann es so
angeordnet sein, dass die Tonwiedergabe durch Empfangen von Ton-Ein-Daten
eines MIDI (Musical Instrument Digital Interface)-Signals durchgeführt wird.
Die Felder 107 bilden Bezeichnungsmittel zum Bezeichnen wenigstens
einer der gespeicherten Wellenformen, um die Wiedergabe eines entsprechenden
der Musiktöne
anzuweisen.
-
Die
Anzeige 108 ist zum Anzeigen von verschiedenen Einstellinformationen
vorgesehen. Die Schaltfläche
(SW) 109 ist eine Schaltgruppe, die auf einer Fläche des
Abtasters für
den Benutzer vorgesehen ist, um verschiedene Einstelloperationen
durchzuführen.
Die Schaltfläche 109 enthält verschiedene Schalter,
wie zum Beispiel einen Modusänderungsschalter,
welcher ein Schaltmittel zum Umschalten der Tonwiedergabe zwischen
einem Normalmodus und einem von verschiedenen Wahlmodi bildet.
-
Der
Fs-Takt-Generator 110 erzeugt einen Äbtasttakt mit einer Frequenz
Fs, die der Ton-I/O 112 zugeführt wird. Die Ton-I/O 112 wird
durch ein LSI gebildet, welcher CODEC genannt wird. Die Ton-I/O 112 weist
eine Analog/Digital(A/D)-Wandlungsfunktion
und eine Digital/Analog(D/A)-Wandlungsfunktion auf. Die Ton-I/O 112 weist
eine Funktion des Komprimierens von Wellenformdaten auf, die man
durch Umwandeln des empfangenen analogen Musiktonsignals von der
externen Quelle 111 in digitale Daten durch die A/D-Umwandlungsfunktion
erhält.
Die Wellenformdaten werden entsprechend der ADPCM (adaptive differential
pulse code modulation = dadaptive differentielle Pulscode-Modulation)
komprimiert. Ferner weist die Ton-I/O 112 eine weitere
Funktion des Ausführens
der ADPCM-Expansion
in Vellenformdaten, welche D/A-gewandelt und in das Tonsystem 114 durch
den D/A-Ausgabeanschluss ausgegeben werden, auf. In der hier erläuterten
Ausführungsform
der Erfindung wird tatsächlich
nur die ADPCM-Komprimierung bei der Ton-I/O 112 durchgeführt, und
die ADPCM-Expansion wird durch Ausführen einer gegebenen Software
durch die CPU durchgeführt.
-
Die
Ton-I/O ist darin mit zwei FIFO (first in first out) Stapelbereichen
vorgesehen. Einer davon ist ein Eingabe-FIFO-Stapelbereich (Eingabe-FIFO) zum
Halten von digitalen Wellenformdaten, die über den A/D-Eingabeanschluss
eingegeben werden, und der andere ist ein Ausgabe-FIFO-Stapelbereich (Ausgabe-FIFO)
zum Halten der digitalen Wellenformdaten, die über den D/A-Ausgabeanschluss
ausgegeben werden. Die Ton-I/O 112 bildet Empfangsmittel
zum Empfangen einer frischen Wellenform auf Echtzeitbasis, wenn
die frische Wellenform von der externen Quelle 111 eingegeben
wird.
-
Nachfolgend
werden kurz die Eingabe/Ausgabe-Operationen der Ton-I/O 112 erklärt, die
den Eingabe-FIFO und den Ausgabe-FIFO verwenden. Ein analoges Musiktonsignal,
welches in den A/D-Eingabeanschluss der Ton-I/O 112 von
der externen Quelle 111 eingegeben wird, wird im Ansprechen
auf den Abtasttakt mit der Frequenz Fs A/D-gewandelt, und wird dann
in den Eingabe-FIFO (ADPCM-komprimiert,
wenn nötig)
geschrieben. Wenn die Wellenformdaten im Eingabe-FIFO vorhanden
sind, gibt die Ton-I/O 112 eine Anforderung aus, um die Wellenformdaten
zur DMA-Steuereinheit 113 weiterzuverarbeiten. Im Ansprechen
auf die Verarbeitungsaufforderung überträgt die DMA-Steuereinheit 113 die
Daten des Eingabe-FIFO zu einem Aufzeichnungsspeicherbereich, der
im RAM 104 bereitgehalten wird. Diese Datenübertragung
durch die DMA-Steuereinheit 113 wird so durchgeführt, dass die
DMA-Steuereinheit 113 eine Unterbrechungsoperation bezüglich der
CPU 101 in jedem Abtasttakt Fs ausführt, so dass die Busleitung 115 offen
gehalten wird. Der CPU 101 ist das Offenhalten der Busleitung 115 durch
die DMA-Steuereinheit 113 nicht bewusst. Der obige Übertragungsprozess
für die
Wellenformdaten durch die DMA-Steuereinheit 113 während der Aufzeichnung
eines Musiktons wird später
detailliert mit Bezug auf 15 beschrieben.
-
Wenn
die Wellenformdaten im Ausgabe-FIFO der Ton-I/O 112 vorhanden
sind, werden die Wellenformdaten im Ausgabe-FIFO andererseits in jedem
Abtasttakt Fs D/A-gewandelt und an das Tonsystem 114 über den
D/A-Ausgabeanschluss gesendet, so dass der Musikton ausgegeben wird.
Wenn die Wellenformdaten des Ausgabe-FIFO ausgegeben werden, gibt
es einen Platz im Ausgabe-FIFO, so dass die Ton-I/O 112 eine
Anforderung zum Erhalten weiterer Wellenformdaten für die DMA-Steuereinheit 113 ausgibt.
Die CPU 101 erzeugt vorab auszugebende Wellenformdaten,
speichert dann die erzeugten Wellenformdaten in einem Wiedergabezwischenspeicher
im RAM 104 und gibt vorab eine Anforderung zur Wiedergabe
der Wellenformdaten an die DMA-Steuereinheit 113 aus. Die
DMA-Steuereinheit 113 führt jeden
Abtasttakt Fs eine Unterbrechungsoperation für die CPU 101 aus,
um die Busleitung 115 offen zu halten und überträgt die im
Wiedergabezwischenspeicher des RAM 104 gespeicherten Wellenformdaten
zur Ton-I/O 112. Der CPU 101 ist das Übertragen
der Wellenformdaten durch die DMA-Steuereinheit 113 nicht
bewusst. Die in den Ausgabe-FIFO geschriebenen Wellenformdaten werden,
wie oben beschrieben, in jedem Abtasttakt Fs zum Tonsystem 114 gesendet,
so dass der Musikton ausgegeben wird. Der vorstehende Übertragungsprozess
der Wellenformdaten durch die DMA-Steuereinheit 113 während der
Tonwiedergabe wird später im
Detail mit Bezug auf 16 beschrieben.
-
Weiterhin
hat die Ton-I/O 112 eine Funktion zum direkten Übertragen
der am A/D-Eingabeanschluss
eingegebenen Wellenformdaten an den D/A-Ausgabeanschluss, so dass
das Musiktonsignal von der externen Quelle 111 direkt unverändert an das
Tonsystem 114 ausgegeben wird. Eine Verbindung zwischen
der A/D-Eingabe und der D/A-Ausgabe wird auf der Grundlage einer
Anweisung von der CPU 101 durchgeführt. Ferner ist die CPU 101 in
der Lage, die direkte Verbindung zwischen der A/D-Eingabe und der
D/A-Ausgabe abzuschneiden.
-
Als
nächstes
wird die grundlegende Betriebsweise des Abtasters von 1 kurz
erläutert. Der
Abtaster hat sieben Betriebsmodi, das heißt einen Normalmodus, einen
Abtastmodus und fünf Wahlmodi,
einschließlich
eines Filtermodus, eines Tonhöhenmodus,
eines Scratchmodus, eines Filtermodus für eine externe Eingabe (EX)
und eines Scratchmodus für
eine externe Eingabe (EX). Diese Modi können mittels eines Moduswechselumschalters
umgeschaltet werden, der in der Schaltfläche 109 vorgesehen
ist. Nachfolgend wird jeder Modus erläutert.
-
Der
Normalmodus wird zum Abspielen des aufgezeichneten Musiktons ausgewählt. In
einem Anfangszustand wird der Abtaster in den Normalmodus eingestellt.
Wenn im Normalmodus der Benutzer eine der zehn Felder 107 antippt,
werden die entsprechend diesem Feld gespeicherten Wellenformdaten aus
dem Speicher durch Wiedergabemittel ausgelesen, welche aus der CPU 101 nach
einem installierten Programm gebildet werden. Bis zu vier Töne können im
Normalmodus parallel wiedergegeben werden. Genauer gesagt werden
vier Wellenformdaten, die entsprechend der angetippten vier Felder
gespeichert sind, gleichzeitig wiedergegeben. Wenn das fünfte Feld
angetippt wird, wird der dem zuerst angetippten Feld entsprechende
wiedergegebene Ton angehalten, und die Wellenformdaten werden wiedergegeben,
welche dem neu angetippten fünften
Feld entsprechen.
-
Der
Abtastmodus wird zum Aufzeichnen einer frischen Wellenform ausgewählt. Wenn
der Abtastmodus durch Verwenden des Moduswechselumschalters bestimmt
wird, bestimmt der Benutzer gleichzeitig ein Feld zum Aufzeichnen.
Dadurch kann der von der externen Quelle 111 eingegebene
Musikton entsprechend dem bestimmten Feld aufgezeichnet werden.
-
Im
Filterwahlmodus können
im Gegensatz zum Normalmodus nur zwei Töne nach Feld-Ein parallel wiedergegeben
werden. Die Wiedergabemittel sind nämlich mit hoher Leistung im
Normalmodus zum gleichzeitigen Auslesen von höchstens vier Wellenformen versehen,
und sie sind mit niedriger Leistung im Wahlmodus, wie zum Beispiel
dem Filterwahlmodus, zum gleichzeitigen Auslesen von höchstens
zwei Wellenformen versehen. Des weiteren wird eine Digitalfilterverarbeitung,
speziell, eine Tiefpassfilterverarbeitung, auf die wiedergegebenen
Töne angewendet.
Durch Betreiben des Bandreglers 106 kann der Benutzer eine
Grenzfrequenz in der Tiefpassfilterverarbeitung ändern. Die Wiedergabemittel sind
nämlich
mit zusätzlicher
Leistung im Filtermodus zur digitalen Verarbeitung der Wellenform
durch Filtern zum Beimischen eines speziellen Klangeffektes zum
Musikton versehen, um das Timbre des wiedergegebenen Tons zu modifizieren.
-
Der
Tonhöhenmodus
wird zum Wiedergeben des aufgezeichneten Tons mit einer gewünschten Phasenverschiebung
ausgewählt.
Bei den anderen Betriebsmodi außer
dem Tonhöhenmodus
wird der Musikton unverändert
mit seiner ursprünglichen
Tonhöhe
wiedergegeben. Wenn der Tonhöhenmodus durch
Verwenden des Moduswechselumschatters durch gleichzeitiges Bedienen
eines der Felder bestimmt wird, spezifiziert der Benutzer gewünschte Wellenformdaten,
die im Tonhöhenmodus
abgespielt werden sollen. Wenn anschließend das spezifizierte von
den zehn Feldern eingeschaltet wird, werden die bestimmten Wellenformdaten
mit einer speziellen, dem Feld entsprechenden Tonhöhe abgespielt.
Nur zwei Töne
können
gleichzeitig in diesem Modus wiedergegeben werden. Obwohl das Feld
zur Bestimmung der wiederzugebenden Wellenformen auch als Tönhöheneingabemittel
verwendet wird, können auch
von dem Feld getrennte Tonhöheneingabemittel
vorgesehen sein. Die Wellenform wird im Tonhöhenmodus digital dadurch verarbeitet,
dass die Datenlesegeschwindigkeit geändert wird, um so die Original-Tonhöhe des entsprechenden
Musiktons zu verschieben oder zu modifizieren.
-
Der
Scratchmodus wird zur Realisierung der Scratch-Operation durch den
Benutzer ausgewählt. Wenn
der Scratchmodus durch Verwenden des Moduswechselumschalters bestimmt
wird, bestimmt der Benutzer zur gleichen Zeit eines der Felder.
Diesem Feld entsprechende Wellenformdaten werden der Scratch-Operation
ausgesetzt. Anschließend
beginnt das Abspielen der Wellenformdaten durch Berühren des
Bandreglers 106. Durch Bewegen der Berührungsposition auf dem Bandregler 106,
wird der Ton scratchend abgespielt. Ferner können in diesem Modus neben
der Scratch-Wiedergabe nur zwei Töne parallel im Normalmodus
unter Verwendung der zehn Felder wiedergegeben werden. Die Wellenform
wird digital im Scratchmodus durch unregelmäßiges Verändern der Ausleseadressen der
Daten verarbeitet, so dass der wiedergegebene Musikton gescratcht wird.
-
Der
EX-Filter-Modus wird zum Filtern von frischen Wellenformdaten, die
von der externen Quelle 111 zugeführt werden, und zum Ausgeben
der gefilterten Wellenformdaten an des Tonsystem 114 ausgewählt. Eine
Grenzfrequenz des Filterns kann durch den Benutzer mittels des Bandreglers 106 verändert werden.
Im EX-Filter-Modus wird dafür
gesorgt, dass die Wiedergabe der gespeicherten Wellenform aufgehalten
wird, sogar wenn die Felder vom Benutzer bedient werden.
-
Der
EX-Scratch-Modus wird zum Anwenden einer Scratch-Operation auf die
frische Wellenform auswählt,
die von der externen Quelle 111 zugeführt wurden. Wenn der Bandregler 106 im EX-Scratch-Modus
nicht berührt
wird, wird die Wellenform von der externen Quelle 111 unverändert an das
Tonsystem 114 ausgegeben. Im Augenblick des Berührens des
Bandreglers 106 wird die direkte Ausgabe von der externen
Quelle 111 an das Tonsystem 114 angehalten, und
die Scratch-Wiedergabe durch den Bandregler 106 wird für die in
diesem Augenblick empfangene externe Eingabe durchgeführt. Im EX-Scratch-Modus
wird dafür
gesorgt, dass das Abspielen der gespeicherten Wellenform, die jedem
einzelnen Feld entspricht, sogar nach einem Feld-Ein aufgehalten
wird.
-
Als
nächstes
werden die im RAM 104 vorgesehenen Register, Zwischenspeicher
und dergleichen erläutert. 2(a) zeigt ein Tonquellenregister, das im RAM 104 vorgesehen
ist. Das Tonquellenregister besteht aus 4-Kanal-Bereichen (1ch–4ch) für den Betrieb
der Felder und einem Tonquellenregister sch für die Scratch-Wiedergabe. Das
Register für
jeden Kanal speichert verschiedene Daten, wie zum Beispiel Adressen
zum Auslesen von Wellenformdaten und Ton-Ein-Daten.
-
2(b) zeigt einen Aufzeichnungszwischenspeicher,
der im RAM 104 vorgesehen ist. Der Aufzeichnungszwischenspeicher
ist mit zwei Zwischenspeichern versehen, das heißt, RB0 und RB1, von denen
jeder Wellenformdaten mit 128 Abtastwerten speichern kann. Nach
dem Aufzeichnen werden Wellenformdaten in einem der Aufzeichnungszwischenspeicher
gespeichert. Die von der externen Quelle 111 zugeführten Wellenformdaten
werden nämlich
zu dem einen Aufzeichnungszwischenspeicher über den Eingabe-FIFO der Ton-I/O 112 durch die
DMA-Steuereinheit 113 übertragen.
Wenn der eine Aufzeichnungszwischenspeicher voll ist, werden die
Abtastwerte der Wellenform des einen Aufzeichnungszwischenspeichers
durch die CPU 101 in den Flashspeicher 1O3 geschrieben.
Zusammen hiermit wird das Speichern der Abtastwerte der Wellenform in
den anderen Aufzeichnungszwischenspeicher fortgesetzt. In dieser
Weise werden die beiden Aufzeichnungszwischenspeicher abwechselnd
zum kontinuierlichen Aufzeichnen der Wellenform verwendet. RBk (k
= 0 oder 1) steht für
den Aufzeichnungszwischenspeicher, der gerade das Aufzeichnen oder Speichern
von Wellenformdaten durchführt,
während RBk für den anderen Aufzeichnungszwischenspeicher
steht. steht für
eine Invertierung von k (wenn k = 0, k = 1, wenn k = 1, k= 0).
-
2(c) zeigt einen Wiedergabezwischenspeicher im
RAM 104. Der Wiedergabezwischenspeicher ist mit zwei Zwischenspeichern
versehen, das heißt,
PB0 und PB1, von denen jeder Wellenformdaten, mit 128 Abtastwerten
speichern kann. Einer der Wiedergabezwischenspeicher wird für die Tonwiedergabe
verwendet. Die Wellenformdaten in dem einen Wiedergabezwischenspeicher
werden nämlich
an die Ton-I/O 112 durch die DMA-Steuereinheit 113 übertragen
und über
den Ausgabe-FIFO ausgegeben. Der andere Wiedergabezwischenspeicher
ist vorgesehen, um die durch die CPU 101 als nächstes auszugebenden
Wellenformdaten zu speichern. In dieser Weise werden die beiden
Wiedergabezwischenspeicher abwechselnd zur Tonwiedergabe verwendet.
PBr (r = 0 oder 1) steht für
den Wiedergabezwischenspeicher, der gerade die Wellenformdaten an
die Ton-I/O 112 zur Wiedergabe überträgt, während PBr für
den anderen Aufzeichnungszwischenspeicher steht. steht für eine Invertierung
von r (wenn r = 0, r = 1, wenn r = 1, r = 0).
-
2(d) zeigt einen Scratch-Bereich SR, der im RAM 104 vorgesehen
ist. Der Scratch-Bereich SR wird bereitgestellt, wenn der Scratchmodus
bestimmt wird. Wenn der Scratchmodus eingestellt wird, werden die
dem bestimmten Feld entsprechenden Wellenformdaten mit linearen
16 Bit ADPCM-expandiert, und in einem Bereich des RAM 104 entwickelt.
Es wird vorab bestimmt, welcher Teil der Wellenformdaten auf den
Scratch-Bereich SR eingestellt wird. Eine bestimmte Adresse im Scratch-Bereich
SR wird in einem Scratch-Zeiger SP als Scratch-Startadresse eingestellt. Ein Wert des
Scratch-Zeigers SP kann durch den Benutzer verändert werden. Wenn der Benutzer
den Bandregler 106 im Scratchmodus bedient, wird die Scratch-Wiedergabe
durchgeführt. Wenn
in diesem Fall eine Anfangsberührung
auf dem Bandregler 106 an irgendeiner Position erfolgt,
beginnt die Scratch-Wiedergabe von der Startadresse, die durch den
Scratch-Zeiger SP bestimmt ist.
-
2(e) zeigt einen Scratch-Bereich, der im EX-Scratchmodus
bereitgestellt wird. Im EX-Scratchmodus werden die Wellenformdaten
von der externen Quelle 111 in den Aufzeichnungszwischenspeichern
SRB0 und SRB1 gespeichert. Die Aufzeichnungszwischenspeicher SRB0
und SRB1 entsprechen den Aufzeichnungszwischenspeichern RB0 und
RB1, die mit Bezug auf 2(b) erläutert wurden,
und sie werden abwechselnd genauso wie RB0 und RB1 verwendet. Sowohl
SRB0 als auch SRB1 haben hinreichende Speicherkapazität zur Durchführung des
Scratchens. Wenn zum Beispiel der Abtasttakt 40 kHz beträgt, kann
die Speicherkapazität
nicht weniger als 40 k Abtastwerte speichern. Einer von SRB0 und
SRB1, welcher im Augenblick nicht verwendet wird, wenn die Bedienung
des Bandreglers 106 begonnen wird, wird als Scratch-Bereich
eingerichtet. Da es einen Aufzeichnungszeiger RP gibt, der eine
Schreibadresse im Aufzeichnungszwischenspeicher SRB0 angibt, erfolgt
das Schreiben der Daten momentan in SRB0. Entsprechend wird ein
Teil des anderen Aufzeichnungszwischenspeichers SRB1, in den das
Schreiben der Daten nicht erfolgt, als Scratch-Bereich SR eingerichtet.
Weiter wird eine bestimmte Adresse im Scratch-Bereich SR im Scratch-Zeiger
SP als Scratch-Startausleseadresse eingestellt.
-
Als
nächstes
werden unten andere als die in den 2(a)–2(e) gezeigten Register aufgeführt:
- (1)
m: ein Operationsmodusregister. 0 steht für den Normalmodus, 1 für den Abtastmodus,
2 für den
Filtermodus, 3 für
den Tonhöhenmodus,
4 für den
Scratchmodus, 5 für
den EX-Filtermodus und 6 für
den EX-Scratchmodus.
- (2) PN: ein Register zum Speichern von Feldnummern zur Identifikation
der Felder.
- (3) i: ein Register zum Speichern von Kanalnummern der Kanäle zum Zuweisen
oder Zuordnen der Tonerzeugung.
- (4) FNi: ein Register zum Speichern einer F-Zahl des i-ten Kanals,
zu dem die Tonerzeugung zugeordnet wird.
- (5) TMP: ein Register zum Speichern eines Detektionswerts des
Bandreglers 106.
- (6) RD: ein Register, welches, wenn ein Detektionswert vom Bandregler 106 verändert wird,
zum Einstellen dieses Detektionswerts verwendet wird.
- (7) RS: ein Signal zum Anzeigen eines Zustands des Bandreglers 106.
Wenn der Bandregler 106 in einer Weise bedient wird, so
dass ein Finger oder dergleichen mit dem Bandregler in Berührung ist, wird
das Signal auf 1 gesetzt. Wenn ein Finger oder dergleichen mit dem
Bandregler 106 nicht in Berührung ist, wird das Signal
auf 0 gesetzt.
- (8) VEL: ein Register zum Einstellen der Geschwindigkeit einer
Berührungshandlung
längs des
Bandreglers 106, speziell, der Geschwindigkeit der Bewegung
des Fingers oder dergleichen, der den Bandregler 106 berührt.
- (9) OLD: ein Register zum Halten eines letzten Detektionswerts
des Bandreglers 106.
- (10) SAD: ein Register zum Speichern einer Scratch-Ausleseadresse.
- (11) ADi: ein Register zum Speichern einer Ausleseadresse im
i-ten Kanal (i = 1 – 4).
- (12) SFN: ein Register zum Speichern einer F-Zahl, die beim
Auslesen der Wellenformdaten aus dem Scratch-Kanal sch verwendet
wird.
- (13) RP: ein Aufzeichnungszeiger zum Anzeigen einer Schreibadresse
der Wellenformdaten in den Aufzeichnungszwischenspeicher.
- (14) PP: ein Wiedergabezeiger zum Anzeigen einer Ausleseadresse
der Wellenformdaten vom Wiedergabezwischenspeicher.
-
Die
vorstehenden Symbole, die die Register und dergleichen zeigen, stehen
auch für
Speicherbereiche der Register und dergleichen, und sie stehen weiter
für Daten,
die in diesen Speicherbereichen gespeichert sind. m steht zum Beispiel
nicht nur für
das Operationsmodusregister, sondern auch für die Daten, die einen in diesem
Register gespeicherten Operationsmodus anzeigen.
-
3 bis 16 sind
Flussdiagramme zur Erläuterung
der CPU 101 und der DMA-Steuereinheit 113 im
Abtaster der 1. Nachfolgend wird die hierarchische
Struktur der Software als erstes erläutert, und dann wird eine Verarbeitungsprozedur
jedes Softwaremoduls anhand der Flussdiagramme der 3 bis 16 erläutert. Anschließend wird
die Beschreibung angegeben, zu welchen Takten die Softwaremodule
ausgeführt
werden, um die Funktion jedes Moduls zu erreichen.
-
Zuerst
wird die hierarchische Struktur der Software erläutert. Die in den 3 bis 16 gezeigten
Programme sind wie folgt eingeteilt:
- Ebene 1: eine DR(m)-Routine
von 15, die die DMA-Steuereinheit 113 beim
Auslesen der Wellenformen betreibt, und eine DP-Routine der 16,
die die DMA-Steuereinheit bei der Wiedergabe der Wellenformen betreibt.
- Ebene 2: Routinen zur Erzeugung von Wellenformen HS(m) der 11(a) bis 12(c),
die die Bereitstellung der Wellenformen durch die CPU 101 durchführen, und
Routinen zum. Auslesen eines Bandwertes RC(m) der 9 und 10,
die den Detektionswert des Bandreglers 106 durch die CPU 101 auslesen. Prozessroutinen
der 13(a), 13(b) und 14 sind
hier als Unterroutinen der Routinen zur Erzeugung der Wellenformen
HS(m) enthalten.
- Ebene 3: eine allgemeine Routine der 3, die durch
die CPU 101 ausgeführt
wird. Eine Feldscan-Routine, eine SW-Scanroutine und verschiedene
Ereignisroutinen der 4 bis 8 sind hier
als Unterroutinen der allgemeinen Routine enthalten.
-
Die
Prozessroutinen der Ebene 1 haben die höchste Priorität. Speziell
wenn eine Unterbrechung zum Ausführen
der Prozessroutine der Ebene 1 stattfindet, während der Prozess der Ebene
2 oder 3 ausgeführt
wird, wird die Prozessroutine der Ebene 1 mit der höchsten Priorität ausgeführt. Die
Prozesse DR(m) und DP der Ebene 1 werden nicht von der CPU 101,
sondern durch die DMA-Steuereinheit 113 ausgeführt. Wenn
eine Unterbrechung für
den Prozess der Ebene 1 stattfindet, wird so die Operation der CPU 101 angehalten,
während
die DMA-Steuereinheit 113 die Busleitung 115 hält, um den
Prozess der Ebene 1 mit höchster
Priorität
auszuführen.
Die Unterbrechung für
den Prozess der Ebene 1 wird durch den Abtasttakt Fs getaktet. Das
heißt
die Unterbrechung erfolgt in jedem Abtasttakt Fs, so dass die DMA-Steuereinheit 113 DP
bei der Wellenformwiedergabe und DR(m) bei der Wellenformaufzeichnung
ausführt.
Ob DP oder DR(m) nach der Unterbrechung bei jedem Abtasttakt Fs
ausgeführt
wird oder nicht, wird der DMA-Steuereinheit 113 von der CPU 101 vorab
zugewiesen.
-
Der
Prozess von Ebene 2 hat eine Priorität, die niedriger ist als die
des Prozesses von Ebene 1, aber höher ist, als die des Prozesses
der Ebene 3. Wenn eine Unterbrechung zum Ausführen des Prozesses der Ebene
2 stattfindet, während
die allgemeine Routine der Ebene 3 ausgeführt wird, wird der Prozess
der Ebene 2 mit Priorität
ausgeführt.
Die DP-Routine der DMA-Steuereinheit 113 gibt die Wellenformdaten
aus dem Wiedergabezwischenspeicher wieder oder liest sie aus und
unterbricht die CPU 101, wenn der Wiedergabezwischenspeicher frei
wird. Im Ansprechen auf diese Unterbrechung führt die CPU 101 die
Routine zur Erzeugung der Wellenformen HS(m) aus und stellt die
nächsten
Abtastwerte der Wellenform dem Wiedergabezwischenspeicher zur Verfügung. Die
Routine zum Auslesen des Bandwertes RC(m) wird durch eine Zeitgeberunterbrechung
gestartet. Die Zeitgeberunterbrechung erfolgt in jedem vom Zeitgeber 105 zu
einem vorgegebenen Intervall ausgegebenen Takt, so daß die CPU 101 die
Routine zum Auslesen des Bandwertes RC(m) ausführt, um den Detektionswert
des Bandreglers 106 einzuholen.
-
Die
Ebene 3 repräsentiert
die Prozessroutine mit der niedrigsten Priorität. Die CPU führt wiederholt die
allgemeine Routine von 3 aus, und führt weiter die gegebenen Unterprogramme
beim Auftreten eines Ein-Ereignisses des Feldes 107 oder
eines Operationsereignisses des Schaltfelds 109 aus.
-
Als
nächstes
wird die Betriebsprozedur der entsprechenden Softwaremodule entsprechend
der Flussdiagramme der 3 bis 16 erläutert. 3 zeigt
die allgemeine Routine der Ebene 3. Wenn der Abtaster eingeschaltet
wird, führt
die CPU 101 diese allgemeine Routine aus. Als erstes werden in
Schritt 301 verschiedene Einstellungen durchgeführt. Insbesondere
wird der Betriebsmodus m in den Normalmodus eingestellt, wie es
durch m = 0 angegeben ist, eine Ton-Aus-Anweisung wird für alle Kanäle des Tonquellenregisters
der 2(a) eingestellt, und alle Abtastbereiche
der Wiedergabezwischenspeicher PB0 und PB1 werden auf Null gesetzt. Während der
Initialisierung weist die CPU 101 der DMA-Steuereinheit 113 den
Wiedergabeprozess zu. Im Ansprechen darauf unterbricht die DMA-Steuereinheit 113 die
CPU 101 in jedem Abtasttakt Fs vom Fs-Taktgenerator 110 und
führt die
DP-Routine der 16 bei jeder Unterbrechung aus,
um die Operation der Wiedergabe der Wellenformdaten zu starten, die
im Wiedergabezwischenspeicher gehalten werden. Weiter wird der Zeitgeber 105 während der
Initialisierung gestartet. Dadurch führt die CPU 101 die RC-Auslese-Routine
RC(m) bei jeder Zeitgeberunterbrechung auf der Grundlage des Taktes
vom Zeitgeber 105 aus, um den Prozess des Auslesens des Detektionswerts
vom Bandregler 106 zu starten.
-
Als
nächstes
wird der Feldscan-Prozess in Schritt 302 ausgeführt, dann
wird ein SW-Scan-Prozess in Schritt 303 ausgeführt und
anschließend kehrt
die Routine zu Schritt 302 zurück, um dieselben Prozesse zu
wiederholen. Der Feldscan-Prozess von Schritt 302 wird
ausgeführt,
um zu detektieren, ob es irgendein Ton-Ein-Ereignis bei den zehn
Feldern 107 gibt, und führt
die in den 7 und 8 gezeigten Ton-Ein-Routinen aus,
wenn es das Ton-Ein-Ereignis gibt. Der SW-Scan-Prozess von Schritt 303 wird
ausgeführt,
um zu detektieren, ob eine Bedienung der Schaltfläche SW 109 durchgeführt wird
oder nicht, und führt
die Prozessroutine aus, die dieser Bedienung entspricht, wenn die
Bedienung durchgeführt wird.
-
4 zeigt
eine Modus-SW-Ereignis-Routine, die bei Detektion der Aktivierung
des Moduswechselumschalters im SW-Scan-Prozess des Schritts 303 in 3 aufgerufen
wird. In der Modus-SW-Ereignis-Routine wird ein Wert im Register m
bei Schritt 401 eingestellt, weicher den abhängig von
dem Betrieb des Moduswechselumschalters bestimmten Betriebsmodus
anzeigt, und die Anzeige 108 wird entsprechend dem bestimmten
Modus m in Schritt 402 geregelt. Dann wird ein Startprozess MS(m)
entsprechend dem bestimmten Modus m in Schritt 403 ausgeführt, und
anschließend
wird der Prozess beendet.
-
5 ist
ein Flussdiagramm eines Startprozesses des Abtastmodus MS(1), der
in Schritt 403 in 4 aufgerufen
wird, wenn der Benutzer den Abtastmodus (m = 1) unter Verwendung
des Moduswechselumschalters bestimmt. Im MS(1)-Prozess wird in Schritt 501 zuerst
bestimmt, ob die Bestimmung eines Feldes durchgeführt wird.
Wenn die Bestimmung irgendeines Feldes nicht durchgeführt wird,
bestimmt Schritt 502, ob die Bestimmung des Abtastmodus
beendet wird oder nicht. Wird die Bestimmung des Abtastmodus fortgesetzt,
kehrt die Routine zum Schritt 501 zurück, um die Bestimmung des Feldes
zu erzwingen.
-
Wenn
die Bestimmung irgendeines Feldes in Schritt 501 bewirkt
wird, wird eine Nummer des bestimmten Feldes im Register PN in Schritt 503 gespeichert
oder vorgemerkt, und eine Aufzeichnungsvorbereitung wird in Schritt 504 durchgeführt. Die Aufzeichnungsvorbereitung
wird durchgeführt,
um die Aufzeichnungszwischenspeicher RB0 und RB1, den Aufzeichnungsbereich
auf dem Flash-Speicher 103 und anderen Bereichen sicherzustellen.
Weiter wird die DMA-Steuereinheit 113 angewiesen, die Ausführung der
DP-Routine anzuhalten, welche durch Unterbrechen der CPU in jedem
Abtasttakt Fs ausgeführt
wird. Als nächstes
wird in Schritt 505 bestimmt, ob eine Bedingung (Auslöser) zum
Starten der Aufzeichnung erfüllt
ist oder nicht. Die Bedingung für
den Start der Aufzeichnung ist zum Beispiel so, daß die Aufzeichnung
gestartet wird, wenn das Eingabeniveau nicht geringer als ein gegebener
Wert wird. Wenn die Bedingung zum Start der Aufzeichnung nicht erfüllt ist,
bestimmt Schritt 506, ob die Aufzeichnung zu stoppen ist.
Wenn die Aufzeichnung fortgesetzt wird, kehrt die Routine zu Schritt 505 zurück.
-
Wenn
die Bedingung zum Start der Aufzeichnung in Schritt 505 erfüllt wird,
wird die Aufzeichnung in der Tat in Schritt 507 gestartet.
Der Start der Aufzeichnung wird speziell durch Anweisen des Starts der
Aufzeichnung an die DMA-Steuereinheit 113 von der CPU 101 bewirkt.
Dadurch unterbricht die DMA-Steuereinheit 113 die CPU 101 in
jedem Abtasttakt Fs vom Fs-Takt-Generator 110 und führt die DR(1)-Routine von 15 bei
jeder Unterbrechung aus, um einen Prozess des Einstellens der Wellenformdaten
zu starten, die von der externen Quelle 111 in den Aufzeichnungszwischenspeicher
RBk über
den Eingabe-FIFO in die Ton-I/O 112 eingegeben wurden.
-
Als
nächstes
wird in Schritt 508 bestimmt, ob der Aufzeichnungszwischenspeicher
voll ist. Wie im Detail mit Bezug auf die 15 erklärt werden
wird, werden in der DR(1)-Routine die Abtastwerte der Wellenform
der externen Quelle 111 an den Aufzeichnungszwischenspeicher
RBk überfragen.
Wenn der RBk voll ist, wird k invertiert, so daß die Unterbrechung verursacht
wird. Schritt 508 erwartet diese Unterbrechung und bestimmt,
ob der Aufzeichnungszwischenspeicher voll ist. Wenn die Unterbrechung erfolgt,
bedeutet das, dass der Aufzeichnungszwischenspeicher RBk mit Abtastwerten der Wellenformen gefüllt ist.
So werden die Abtastwerte der Wellenformen des Aufzeichnungszwischenspeichers RBr in einen vorbestimmten
Bereich des Flash-Speichers 103 in Schritt 509 geschrieben,
und anschließend
kehrt die Routine zu Schritt 508 zurück.
-
Wenn
der Aufzeichnungszwischenspeicher nicht in Schritt 508 aufgefüllt wird
(keine Unterbrechung von der DR(1)-Routine), bestimmt Schritt 510, ob
der Aufzeichnungsprozess zu beenden ist. Der Aufzeichnungsprozess
wird bei einem Ein-Ereignis eines Aufzeichnungsanhalteumschalters
der Schaltfläche
SW 109 oder dann beendet, wenn der im Flash-Speicher 103 gesicherte
Aufzeichnungsbereich voll ist. Wenn entschieden wird, dass der Aufzeichnungsprozess
nicht in Schritt 510 zu Ende gehen sollte, kehrt die Routine
zu Schritt 508 zum Fortsetzen des Aufzeichnens zurück. Wenn
entschieden wird, dass der Aufzeichnungsprozess in Schritt 510 zu
Ende gehen sollte, wird der Aufzeichnungsbeendigungsprozess in Schritt 511 durch
Anweisen der DMA-Steuereinheit 113, die Ausführung der DR(1)-Routine
anzuhalten, ausgeführt.
Dann wird in Schritt 512 das Register m auf 0 gesetzt,
um zum Normalmodus zurückzukehren,
und der Prozess wird beendet. Bei der Rückkehr zum Normalmodus wird die
DMA-Steuereinheit 113 angewiesen, die Ausführung der
DP-Routine durch Unterbrechen der CPU pro Abtasttakt Fs zu beginnen.
In ähnlicher
Weise wird das Register m auf 0 gesetzt, wenn der Prozess zum Starten
des Abtastmodus in Schritt 502 beendet wird, um dadurch
in Schritt 513 zum Normalmodus zurückzukehren, und anschließend wird
der Prozess beendet. Wenn des weiteren der Aufzeichnungsprozess
in Schritt 506 beendet wird, wird das Register m auf 0
gesetzt, um dadurch in Schritt 514 zum Normalmodus zurückzukehren,
und anschließend
wird der Prozess beendet. Der Prozess in den Schritten 513, 514 ist
derselbe wie der von Schritt 512.
-
6 ist
ein Flussdiagramm des Prozesses zum Starten des Scratchmodus MS(4),
der in Schritt 403 in 4 aufgerufen
wird, wenn der Benutzer den Scratchmodus (m = 4) unter Verwendung
des Moduswechselumschalters bestimmt. Im MS(4)-Prozess, wird in Schritt 601 zuerst
bestimmt, ob die Bestimmung eines Feldes durchgeführt wird
oder nicht. Wenn die Bestimmung irgendeines Feldes erfolgt, so bestimmt
Schritt 602, ob die Bestimmung des Scratchmodus beendet
werden soll. Wenn der Bestimmungsprozess des Scratchmodus fortgeführt werden
soll, kehrt die Routine zu Schritt 601 zurück, um die
Bestimmung eines Feldes zu erzwingen.
-
Wenn
die Bestimmung irgendeines Feldes in Schritt 601 durchgeführt wird,
wird eine Nummer oder ein Code des bestimmten Feldes im Register
PN in Schritt 603 vorgemerkt. Dann wird das Ausführen des Scratchens
in Schritt 604 vorbereitet. Dies ist ein Prozess zum Auslesen
der Wellenfarmdaten, die entsprechend der Feldnummer PN vom Flash-Speicher 103 aufgezeichnet
wurden, wobei die ausgelesenen Wellenformdaten ADPCM-expandiert
und die expandierten Wellenformdaten in einem gegebenen Bereich
des RAM 104 entwickelt werden.
-
Dann
wird in Schritt 605 ein gewünschter Teil der in dem gegebenen
Bereich des RAM 104 entwickelten Wellenformdaten als der
Scratch-Bereich DR (2(d))
eingestellt, und der Scratch-Zeiger SP, der eine Adresse zum Starten
des Scratchens darstellt, wird auf einen vorbestimmten Wert gesetzt.
Wenn der Bestimmungsprozess für
den Scratchmodus in Schritt 602 beendet wird, wird das
Register m auf 0 gesetzt, um dadurch in Schritt 606 zum
Normalmodus zurückzukehren,
und der Prozess wird beendet.
-
7 zeigt
ein Flussdiagramm der Feld-Ein-Ereignis-Routine, welche bei Detektion
des Ein-Ereignisses der Felder 107 in Schritt 302 in 3 aufgerufen
wird, wenn der Modus m auf den Normalmodus, den Filtermodus oder
den Scratchmodus (m = 0, 2, 4) eingestellt wird. In dieser Ein-Ereignis-Routine
wird zuerst in Schritt 701 eine Feldnummer des Feldes 107,
bei dem das Ein-Ereignis auftritt, im Register PN eingestellt. Dann
bestimmt Schritt 702, ob die Wellenformdaten, die der Feldnummer
PN entsprechen, im Flash-Speicher 103 bereitgestellt sind. Wenn
dort keine Wellenformdaten entsprechend der Feldnummer PN vorhanden
sind, wird der Prozess beendet. Werden Wellenformdaten entsprechend
der Feldnummer PN in Schritt 702 gefunden, wird eine Zuordnung
oder Zuweisung des Tonerzeugungskanals in Schritt 703 durchgeführt. Diese
Kanalzuordnung wird innerhalb der vom Modus m abhängenden Maximalzahl
von Tonerzeugungen durchgeführt.
Da im Normalmodus höchstens
vier Töne
gleichzeitig erzeugt werden können,
wird, wenn es einen freien Kanal im ersten bis vierten Kanal gibt,
jede Tonerzeugung dem freien Kanal zugeordnet. Wenn andererseits
alle vier Kanäle
zür Tonerzeugung
verwendet werden, wird die Tonerzeugung im ältesten Kanal beendet, in dem
die Tonerzeugung zum ältesten
Zeitpunkt gestartet wurde, und eine weitere Tonerzeugung wird erneut
diesem Kanal zugeordnet. Da im Filtermodus oder Scratchmodus höchstens
zwei Töne
gleichzeitig erzeugt werden können,
wird jede Tonerzeugung in ähnlicher
Weise dem ersten oder zweiten Kanal zugeordnet. Eine Nummer des
zugeordneten Kanals wird im Register i gesetzt. Nachfolgend werden
in Schritt 704 verschiedene Daten zum Durchführen der
Tonerzeugung, einschließlich
einer Kopfadresse ADi der wiederzugebenden Wellenformdaten, im Tonquellenregister
ich des i-ten Kanals eingestellt. Weiter wird die Ton-Ein-Anweisung
eingestellt, und der Prozess wird beendet.
-
8 zeigt
ein Flussdiagramm der Feld-Ein-Ereignis-Routine, welche bei Detektion
des Ein-Ereignisses der Felder 107 in Schritt 302 in 3 aufgerufen
wird. wenn der Modus m in den Tonhöhenmodus (m = 3) eingestellt
ist. In der Feld-Ein-Ereignis-Routine
wird zuerst in Schritt 801 eine Feldnummer des Feldes 107,
bei dem das Ein-Ereignis auftritt, im Register PN eingestellt. Dann
wird die Zuordnung des Tonerzeugungskanals in Schritt 802 durchgeführt. Da
im Tonhöhenmodus
höchstens
zwei Töne
gleichzeitig erzeugt werden können,
wird die Kanalzuordnung innerhalb der maximalen Tonerzeugungszahl
2 durchgeführt.
Dann wird in Schritt 803 die Feldnummer PN in eine entsprechende
F-Zahl umgewandelt, welche in dem Register FNi eingestellt wird.
Nachfolgend werden in Schritt 804 verschiedene Daten, einschließlich einer
Startadresse der wiederzugebenden Auslesewellenformdaten und einer F-Zahl
FNi, eingestellt, um die Wiedergabe des Musiktons mit einer Tonhöhenverschiebung
im Tonquellenregister ich des i-ten Kanals zu erreichen. Weiter wird
die Ton-Ein-Anweisung eingestellt, und danach wird der Prozess beendet.
In diesem Prozess wird ein Feld 107 gedrückt, um
eine gewünschte
Wellenform zu bestimmen, und um gleichzeitig eine entsprechende
F-Zahl festzulegen, welche im Tonquellenregister ch eingestellt
wird, um eine auf den wiedergegebenen Ton angewandte Tonhöhe zu bestimmmen.
-
9 ist
ein Flussdiagramm der RC-Auslese-Routine RC(m) zum Einholen des
Detektionswerts des Bandreglers 106, wenn der Modus m auf den
Filtermodus oder den EX-Filtermodus (m = 2 oder 5) eingestellt ist.
Dies ist ein Prozess zum Einholen des Detektionswerts zum Durchführen der
Filtersteuerung durch den Bandregler 106. 10 ist ein
Flussdiagramm der RC-Auslese-Routine RC(m) zum Einholen des Detektionswerts
des Bandreglers 106, wenn der Modus m auf den Scratchmodus
oder den EX-Scratchmodus (m = 4 oder 6) eingestellt ist. Dies ist
ein Prozess zum Einholen des Detektionswerts zum Durchführen der
Scratchsteuerung durch den Bandregler 106. Der Zeitgeber 105 wird
während der
Initialisierung in Schritt 301 in 3 gestartet. Die
CPU 101 führt
eine Zeitgeberunterbrechung zu einem gegebnen Zeitintervall aus.
Die RC-Auslese-Routine RC(m) der 9 wird durch
die Zeitgeberunterbrechung ausgeführt, wenn der Modus m auf 2 oder
5 eingestellt ist. Auf der anderen Seite wird die RC-Auslese-Routine
RC(m) der 10 wird die Zeitgeberunterbrechung
ausgeführt,
wenn der Modus m auf 4 oder 6 eingestellt ist.
-
Die
RC-Auslese-Routine RC(m)(m = 2, 5) der 9 wird zuerst
erläutert.
Zuerst wird in Schritt 901 der Detektionswert des Bandreglers 106 im
Register TMP eingestellt. Nachfolgend wird in Schritt 902 bestimmt,
ob sich ein nachfolgender Detektionswert verglichen mit einem bei
der letzten Zeitgeberunterbrechung ausgelesenen vorhergehenden Detektionswert ändert. Gibt
es keine Änderung,
wird der Prozess beendet. Gibt es eine Änderung, wird der Detektionswert
TMP in Schritt 903 im Register RD eingestellt, und der
Prozess wird beendet. Als Ergebnis wird der Detektionswert des Bandreglers 106 im Register
RD eingestellt. Wenn ein Finger oder dergleichen vom Bandregler 106 entfernt
wird, können der
Detektionswert TMP und RD wieder auf einen Standartwert gesetzt
werden, oder der Wert unmittelbar vor dem Entfernen des Fingers
oder dergleichen kann gehalten werden.
-
Die
RC-Auslese-Routine RC(m) (m = 4, 6) der 10 wird
erklärt. 10 ist
ein Flussdiagramm zur Erläuterung
sowohl der RC-Auslase-Routine RC(4), welche aufgerufen wird, wenn
der Betriebsmodus auf den Scratchmodus (m = 4) eingestellt wird,
als auch der RC-Auslese-Routine RC(6), die aufgerufen wird, wenn
der Betriebsmodus auf den EX-Scratchmodus (m = 6) eingestellt wird.
Da die Schritte 1006, 1009, 1015 und 1016 nur
Prozesse für den
RC(6) darstellen, wird die Operationsprozedur für den RC(4) zuerst erklärt und dann
wird weiter unten die Operationsprozedur des RC(6) erklärt.
-
In
der Auslese-Routine RC(4) des Detektionswerts des Bandreglers wird
zuerst in Schritt 1001 der Detektionswert des Bandreglers 106 im
Register TMP eingestellt. Dann wird in Schritt 1002 bestimmt, ob
der Bandregler 106 bedient wird. Der Bandregler 106 gibt
einen Koordinatendetektionswert aus, der eine Koordinatenposition
anzeigt, bei der ein Finger, eine Stange oder dergleichen in Berührung kommt, während der
Bandregler 106 einen Standardwert ausgibt, wenn es keine
Berührung
mit dem Finger, der Stange oder dergleichen gibt, so dass die Nicht-Berührung (die
Nicht-Bedienung) erkannt werden kann. Wenn der Bandregler 106 nicht
bedient wird, fährt
die Routine mit Schritt 1003 fort. Wenn der Bandregler 106 bedient
wird, fährt
die Routine mit Schritt 1004 fort.
-
In
Schritt 1003 wird bestimmt, ob das Statusregister RS für die Berührungshandlung
0 ist. Wenn das Register RS 0 ist, bedeutet dies, dass der Bandregler 106 weder
während
der letzten noch während
der momentanen Unterbrechung bedient wird. Daher wird der Prozess
beendet. Wenn RS in Schritt 1003 nicht 0 ist, bedeutet
dies, dass der Bandregler 106 während der letzten Unterbrechung bedient
wurde, während
der Bandregler 106 während der
momentanen Unterbrechung nicht bedient wird (der Finger, die Stange
oder dergleichen sind entfernt). Daher wird das Register in Schritt 1013 auf
0 gesetzt, die Ton-Aus-Anweisung wird in Schritt 1014 in
das Tonquellenregister sch des Scratchkanals geschrieben, und der
Prozess wird beendet.
-
In
Schritt 1004 wird bestimmt, ob das Register RS 1 ist oder
nicht. Wenn das Register nicht 1 ist, bedeutet dies, dass der Bandregler 106 während der letzten
Unterbrechung nicht bedient wurde, während der Bandregler 106 während der momentanen
Unterbrechung bedient wird. Daher wird das Register RS in Schritt 1005 auf
1 gesetzt, und die Geschwindigkeit VEL wird auf 0 gesetzt. Dann
wird in Schritt 1007 eine Leseadresse SAD auf einen vorbestimmten
Wert des Scratch-Zeigers
SP gesetzt. Als nächstes
werden in Schritt 1008 verschiedene Daten für die Scratch-Wiedergabe,
einschließlich
einer Leseadresse der wiederzugebenden Wellenformdaten und einem
Geschwindigkeitswert VEL, eingestellt, und die Ton-Ein-Anweistung wird
in das Tonquellenregister sch des Scratch-Kanals geschrieben. Nachfolgend wird
in Schritt 1010 der momentane Detektionswert TMP des Bandreglers 106 im
Register OLD eingestellt, und der Prozess wird beendet.
-
Wenn
das Prüfergebnis
in Schritt 1004 JA ist, bedeutet dies, dass RS = 1 während der
letzten Unterbrechung war und auch, dass RS = 1 während der momentanen
Unterbrechung (die Bedienung des Bandreglers 106 dauert
an) ist. Daher wird die Geschwindigkeit der Berührungsaktion auf dem Bandregler 106 detektiert
und im Register VEL in Schritt 1011 eingestellt. Die Geschwindigkeit
VEL wird durch Differentialrechung durch Subtrahieren des Detektionswerts
OLD während
der letzten Unterbrechung von dem momentanen Detektionswert TMP
abgeleitet. So ist es möglich,
dass die Geschwindigkeit VEL einen negativen Wert annimmt. Weiter
wird die Geschwindigkeit VEL im Tonquellenregister sch des Scratch-Kanals
eingestellt. Dann wird in Schritt 1012 der momentane Detektionswert TMP
im Register OLD eingestellt, und der Prozess wird beendet.
-
Es
wurde die RC-Auslese- oder Einhol-Routine RC(4) erklärt, wenn
der Modus auf den Scratchmodus (m = 4) eingestellt ist. In der RC-Einhol-Rotuine
RC(6) wird, wenn der Modus auf den EX-Scratchmodus (m = 6) eingestellt
ist, ein Schritt 1006 nach Schritt 1005 angefügt, ein
Schritt 1009 wird nach Schritt 1008 angefügt, und
die Schritte 1015 und 1016 werden nach Schritt 1014 angefügt. Wieder sind
die Prozesse in den Schritten 1008 und 1014 etwas
anders. Nachfolgend wird dafür
eine Erklärung gegeben.
Zum Zeitpunkt des Startens der Bedienung des Bandreglers 106 fährt die
Routine von Schritt 1004 über Schritt 1005 zu
Schrift 1006 fort. In Schritt 1006 weist die CPU 101 die
DMA-Steuereinheit 11 an, die Ausführung der RD(6)-Routine durch Unterbrechen
der CPU in jedem Abtasttakt Fs anzuhalten, und der Scratch-Bereich
SR wird im Aufzeichnungszwischenspeicher SRBk eingestellt, welcher
einer der beiden Zwischenspeicher SRB0 und SRB1 ist, der gerade
nicht verwendet wird, wie es mit Bezug auf 2(e) erklärt wurde.
Dann fahrt die Routine über
Schritt 1007 zu Schritt 1008 fort. In Schritt 1008 werden
verschiedene Daten für
die Scratch-Wiedergabe, einschließlich einer Leseadresse SAD
der mit Scratchen wiederzugebenden Wellenformdaten und eines Geschwindigkeitswertes
VEL, eingestellt, und die Ton-Ein-Anweisung wird in das Tonquellenregister
sch des Scratch-Kanals geschrieben. Ferner wird in Schritt 1008 vor
dem vorangegangenen Prozess auch der folgende Prozess durchgeführt. Zuerst
werden 128 Abtastwerte im Wiedergabezwischenspeicher PBr vorgesehen.
In diesem Prozess kann nach dem Löschen des Wiedergebezwischenspeichers PBr
auf 0 der später
beschriebene EX-Scratch-Prozess
der 14 relativ zum Wiedergabezwischenspeicher PBr
durchgeführt
werden (PBr wird anstelle von
PBr in 14 verwendet). Ferner weist
die CPU 101 die DMA-Steuereinheit 113 an, die
Ausführung der
DP-Routine durch Unterbrechen der CPU 101 in jedem Abtasttakt
Fs erneut zu starten. Weiter wird eine Unterbrechung derselben Signifikanz
wie eine später
beschriebene, im Schritt 1605 der DP-Routine in 16 verursachte
Unterbrechung erzeugt. Durch diese Unterbrechung wird die HS(6)
ausgeführt,
so dass die nächsten
128 durch Scratchen wiederzugebenden Abtastwerte im PBr bereitgestellt werden. Danach wird in
Schritt 1009 unter der Anweisung der CPU 101 die
direkte Verbindung vom A/D-Eingang zum D/A-Ausgang der Ton-I/O 112 ausgeschaltet, um
die Tonaussendung des direkten Zuführens des Musiktonsignals von
der externen Quelle 111 zum Tonsystem 114 anzuhalten.
-
Zum
Zeitpunkt des Anhaltens der Bedienung des Bandreglers 106 fährt die
Routine von Schritt 1002 über die Schritte 1003 und 1013 zu
Schritt 1014 fort. In Schritt 1014 wird das Ton-Aus-Ereignis
in das Tonquellenregister sch des Scratch-Kanals geschrieben, und
dann wird auch der folgende Prozess durchgeführt. Die CPU 101 weist
die DMA-Steuereinheit 113 an, die Ausführung der DP-Routine, nämlich des Unterbrechens
der CPU 101 in jedem Abtasttakt Fs, anzuhalten. Andererseits
wird in Schritt 1015 unter der Anweisung der CPU 101 die
direkte Verbindung vom A/D-Eingang
zum D/A-Ausgang der Ton-I/O 112 wiederhergestellt, um eine
Tonaussendung durch direktes Zuführen
des Musiktonsignals von der externen Quelle 111 zum Tonsystem 114 zu
erreichen. In Schritt 1016 weist die CPU 101 die
DMA-Steuereinheit 113 an, die Ausführung der DP(6)-Routine durch Unterbrechen
der CPU 101 in jedem Abtasttakt Fs wieder zu starten.
-
Die 11(a) bis 11(c) sind
Flussdiagramme der Wellenformerzeugungsroutine HS(m), die durch
die CPU 101 zum Bereitstellen aufeinanderfolgender Abtastwerte der
Wellenform für
den Wiedergabezwischenspeicher in den entsprechenden Modi m ausgeführt werden.
Die Wellenformerzeugungsroutine HS(m) wird durch die CPU 101 im Ansprechen
auf eine später
beschriebene Unterbrechungsanforderung in Schritt 1606 in 16 ausgeführt. In
der DP-Routine wird ein im Wiedergabezwischenspeicher gehaltener
Abtastwert der Wellenform in jedem Abtasttakt an die Ton-I/O 112 übertragen, um
die Wiedergabe des Musiktons durchzuführen. Wenn der Satz von 128
Abtastwerten im Wiedergabezwischenspeicher PBr vollständig wiedergegeben ist,
invertiert die DP-Routine k, um eine Unterbrechung herbeizuführen. Mit
dieser Unterbrechung als Auslöser,
führt die
CPU 101 die Wellenformerzeugungsroutine HS(m) abhängend vom
Modus m aus und erzeugt erneut einen weiteren Satz von 128 Abtastwerten,
die einem Rahmens des Wiedergabezwischenspeichers PBr entsprechen, welcher gerade die Wiedergabe
beendet hat und frei geworden ist.
-
11(a) ist ein Flussdiagramm der Wellenformerzeugungsroutine
HS(0) zur Erzeugung der Abtastwerte der Wellenform im Wiedergabezwischenspeicher
im Normalmodus. In HS(0) wird eine mit „normal 4" bezeichnete Unterroutine in Schritt 1101 aufgerufen,
und der Prozess wird beendet. Diese Unterroutine wird später mit
Bezug auf 13(a) beschrieben.
-
11(b) ist ein Flussdiagramm der Wellenformerzeugungsroutine
HS(2) zur Erzeugung der Abtastwerte der Wellenform im Wiedergabezwischenspeicher
im Filtermodus. In HS(2) wird eine Unterroutine „normal 2" in Schritt 1111 aufgerufen,
und ein Filterkoeffizient (Grenzfrequenz) wird entsprechend einem
Detektionswert RD des Bandreglers 106 in Schritt 1112 erzeugt.
Dann wird in Schritt 1113 der Filterprozess (Tiefpassfilterprozess)
durchgeführt,
und der Prozess wird beendet. Die „normal
2" in Schritt 1111 wird
später
mit Bezug auf 13(a) beschrieben.
-
11(c) ist ein Flussdiagramm der Wellenformerzeugungsroutine
HS(3) zur Erzeugung der Abtastwerte der Wellenform im Wiedergabezwischenspeicher
im Tonhöhenmodus.
In HS(3) wird in Schritt 1121 eine Unterroutine „Tonhöhe 2" aufgerufen, und der
Prozess wird beendet. Die „Tonhöhe 2" wird später mit
Bezug auf 13(b) beschrieben.
-
12(a) ist ein Flussdiagramm der Wellenformerzeugungsroutine
HS(4) zur Erzeugung der Abtastwerte der Wellenform im Wiedergabezwischenspeicher
im Scratchmodus. In HS(4) wird die Unterroutine „Normal 2" in Schritt 1201 aufgerufen,
dann wird eine Scratch-Prozess-Unterroutine in Schritt 1202 aufgerufen,
und der Prozess wird beendet. Die „normal 2" wird später mit Bezug auf 13(a) beschrieben. Die Scratch-Prozess-Unterroutine
wird später
mit Bezug auf die 14 beschrieben.
-
12(b) ist ein Flussdiagramm der Wellenformerzeugungsroutine
HS(5) zur Erzeugung der Abtastwerte der Wellenform im Wiedergabezwischenspeicher
im EX-Filtermodus.
Wenn HS(5) aufgerufen wird, wird der Satz der 128 Abtastwerte (lineare
Abtastwerte) der Wellenformdaten, die von der externen Quelle 111 zugeführt wurden,
in den Aufzeichnungszwischenspeicher RBk geschrieben,
während
der Wiedergabezwischenspeicher PBr frei
ist. Entsprechend wird in HS(5) zuerst in Schritt 1211 ein
Filterkoeffizient entsprechend dem Detektionswert RD des Bandreglers 106 erzeugt,
und ein EX-Filterprozess wird in Schritt 1212 durchgeführt. Dieser
EX-Filterprozess wird aufgerufen, um den Filterprozess unter Verwendung
des in Schritt 1211 abgeleiteten Filterkoeffizienten auf
den Satz der 128 Wellenformabtastwerte anzuwenden, die im Aufzeichnungszwischenspeicher
RBk gehalten werden, und um
die resultierenden 128 Wellenformabtastwerte im Wiedergabezwischenspeicher
PBr einzustellen. Nach dem Schritt 1212 wird
der Prozess beendet.
-
12(c) ist ein Flussdiagramm der Wellenformerzeugungsroutine
HS(6) zur Erzeugung der Abtastwerte der Wellenform im Wiedergabezwischenspeicher
im EX-Scratchmodus.
In HS(6) bestimmt Schritt 1221, ob das Register RS 1 ist
oder nicht. Wenn das Register RS nicht 1 ist, bedeutet dies, dass der
Bandregler 106 nicht bedient wird. Somit wird der Prozess
beendet. Wenn das Register in Schritt 1221 1 ist, bedeutet
dies, dass der Bandregler 106 bedient wird. Somit wird
der EX-Scratch-Prozess
in Schritt 1222 durchgeführt, und der Prozess wird beendet. Der
EX-Scratch-Prozess
wird später
mit Bezug auf 14 beschrieben.
-
13(a) zeigt ein Flussdiagramm von Normal n. Normal
4 wird im vorhergehenden Schritt 1101 aufgerufen, während Normal
2 in den vorhergehenden Schritten 1111 und 1201 aufgerufen
wird. Zuerst wird in Schritt 1301 ein Arbeitsregister i
zum Zählen der
Kanäle
auf 1 gesetzt, ein Arbeitsregister j zum Zählen der Abtastwerte wird auf
0 gesetzt, und der gesamte Abtastbereich des Wiedergabezwischenspeichers
PBr, der im Moment nicht der
DP-Routine unterworfen ist, wird auf 0 gesetzt. Dann wird in Schritt 1302 bestimmt,
ob das Ton-Ein in das Tonquellenregister ich des i-ten Kanals geschrieben wird.
Wenn das Ton-Ein nicht geschrieben wird, ist es nicht nötig, die
Wellenformerzeugung des i-ten Kanals durchzuführen. Somit fährt die
Routine mit Schritt 1308 fort. Wenn der I-te Kanal einem Ton-Ein-Ereignis
in Schritt 1302 unterworfen wird, fährt die Routine mit Schritt 1303 fort.
-
In
Schritt 1303 wird die Leseadresse ADi des i-ten Kanals
(ADi wird im Tonquellenregister ich des i-ten Kanals eingestellt)
inkrementiert. In Schritt 1304 wird der Wellenformabtastwert
aus der Adresse ADi über
den i-ten Kanal ausgelesen, und der gelesene Wellenformabtastwert
wird ADPCM-expandiert, um einen linearen Wellenformabtastwert abzuleiten,
welcher dann im Arbeitsregister TMP eingestellt wird. Nachfolgend
wird in Schritt 1305 der Wert des Registers TMP im Wiedergabezwischenspeicher
PBr(j), dargestellt durch
PBr(j) + TMP → PBr(j), angesammelt (Kanalansammlung).
-
Dann
wird in Schritt 1306 bestimmt, ob die Zählung des Registers j 127 erreicht.
Wenn das Register j nicht 127 erreicht, wird das Register j in Schritt 1307 inkrementiert,
und die Routine kehrt zu Schritt 1303 zurück, um das
Lesen des nächsten
Wellenformabtastwertes, die Expansion und die Ansammlung zu wiederholen.
Wenn die Zählung
des Registers j in Schritt 1306 127 erreicht, was bedeutet,
dass die Ansammlung oder Aufsummierung von 128 Abtastwerten des
i-ten Kanals in
dem den 128 Abtastwerten zugewiesenen Bereich des Weitergabezwischenspeichers
PBr beendet ist, fährt die
Routine mit Schritt 1308 fort.
-
In
Schritt 1308 wird bestimmt, ob das Register i n erreicht.
Wenn das Register i nicht n erreicht, wird das Register i inkrementiert,
und das Register j wird in Schritt 1309 auf 0 gesetzt,
um mit der Verarbeitung der Wellenform im nächsten Kanal zu beginnen. Dann
kehrt die Routine zu Schritt 1302 zurück und wiederholt die Prozesse
für den
i-ten Kanal. Wenn das Register i in Schritt 1308 n erreicht,
was bedeutet, dass die Aufsummierungsberechnung im letzten Kanal
beendet ist und 128 Abtastwerte im Wiedergabezwischenspeicher PBr erzeugt sind, wird der
Prozess beendet.
-
13(b) ist ein Fiussdiagramm der „Tonhöhe 2"-Unterroutine, die
in Schritt 1121 in 11(c) aufgerufen
wird. In Schritt 1311 wird das Arbeitsregister i zum Zählen der
Kanäle
auf 1 gesetzt, das Arbeitsregister j zum Zählen der Abtastwerte wird auf
0 gesetzt, und alle Abtastabereiche des Wiedergabezwischenspeichers
PBr, die gerade nicht der DP-Routine
unterworfen sind, werden auf 0 gesetzt. Dann wird in Schritt 1312 bestimmt,
ob das Ton-Ein in das Tonquellenregister ich des i-ten Kanals geschrieben
wird. Wenn das Ton-Ein nicht geschrieben wird, ist es nicht nötig, die
Tonhöhen-verschobene Wellenformerzeugung
des i-ten Kanals durchzuführen.
Somit fährt
die Routine mit Schrift 1319 fort. Wenn der i-te Kanal
einem Ton-Ein-Ereignis in Schritt 1312 unterworfen ist,
fährt die
Routine mit Schritt 1313 fort.
-
In
Schritt 1313 wird die Leseadresse der Abtastwerte ADi zur
F-Zahl FNi addiert, um eine neue Adresse ADi einzustellen. ADi und
FNi werden im Tonquellenregister ich des i-ten Kanals eingestellt. Dann
wird in Schritt 1314 der Wellenformabtastwert aus der Adresse
ADi über
den i-ten Kanal ausgelesen und wird ADPCM-expandiert, um einen linearen Wellenformabtastwert
abzuleiten, welcher dann im Arbeitsregister TMP eingestellt wird.
Da die ausgelesenen Wellenformdaten ADPCM-komprimiert sind, werden,
wenn ein ganzzahliger Teil der Adresse ADi als Ergebnis der Addition
der F-Zahl um nicht weniger als 2 vorrückt, alle Abtastwerte von der
letzen Leseadresse bis zur momentanen Leseadresse ADi ausgelesen
und für
die lineare Expansion verwendet. Nachfolgend wird in Schritt 1315 die
Interpolation unter den gelesenen Abtastwerten abhängend von
einem Dezimalteil der Adresse ADi durchgeführt, und der interpolierte
Wellenformabtastwert wird im Register TMP eingestellt. Dann wird
in Schrit 1316 der abgeleitete Wellenformabtastwert TMP
im j-ten Abtastbereich PBr(j)
des Wiedergabezwischenspeichers angesammelt.
-
Dann
wird in Schritt 1317 bestimmt, ob das Register j 127 erreicht.
Wenn nicht, wird das Register in Schritt 1318 inkrementiert,
und die Routine kehrt zu Schritt 1313 zurück, um die
Prozesse bezüglich des
nächsten
Abtastwertes durchzuführen.
Wenn das Register in Schritt 1317 die 127 erreicht, was
bedeutet, dass der Prozess für
den i-ten Kanal beendet ist, bestimmt Schritt 1319, ob
das Register i 2 erreicht. Wenn das Register i nicht 2 erreicht,
wird das Register i inkrementiert, und das Register j wird in Schritt 1320 auf
0 gesetzt, und dann kehrt die Routine zu Schritt 1312 zurück, um die
Prozesse bezüglich des
nächsten
Kanals durchzuführen.
Wenn der Wert des Registers i in Schritt 1319 2 erreicht,
wird der Prozess beendet.
-
14 ist
ein Flussdiagramm des Scratch-Prozesses, welcher in Schritt 1202 in 12(a) aufgerufen wird, und des EX-Scratch-Prozesses,
welcher in Schritt 1222 in 12(c) aufgerufen
wird. Als erstes wird in Schritt 1401 die detektierte Geschwindigkeit
VEL der Berührungsaktion
(VEL ist im Tanquellenregister sch des Scratch-Kanals bereitgestellt)
des Bandreglers 106 in eine veränderliche F-Zahl SFN für die Scratch-Operation
umgewandelt. Da die F-Zahl SFN abhängend von der Geschwindigkeit
VEL bestimmt wird, welche entweder einen positiven Wert oder negativen
Wert annehmen kann, verändert
sich auch die F-Zahl in positiver oder negativer Richtung. Als nächstes wird
das Register j in Schritt 1402 auf 0 gesetzt, und die Routine
fährt mit Schritt 1403 fort.
-
In
Schritt 1403 wird die Scratch-F-Zahl SFN zur Scratch-Leseadresse
SAD addiert, die im Tonquellenregister sch des Scratch-Kanals bereitgestellt ist.
In Schritt 1404, wird der Wellenformabtastwert aus der
Adresse SAD ausgelesen und im Register TMP eingestellt. Im Scratch-Prozess,
der in Schritt 1202 in 12(a) aufgerufen
wird, werden die gelesenen Wellenfarmdaten ADPCM-expandiert und
in einem gegebenen Bereich vorab entwickelt, und der Scratch-Bereich
SR wird auf den gegebenen Bereich eingerichtet, in dem die Wellenformdaten
entwickelt werden (Schritte 604 und 605 in 6).
Andererseits werden im in Schritt 1222 in 12(c) aufgerufenen EX-Scratch-Prozess die aus
einer Folge von linearen Abtastwerten zusammengesetzten Wellenformdaten von
der externen Quelle 111 eingegeben und abwechselnd in die
Aufzeichnungszwischenspeicher SRB0 und SRB1 geschrieben, und der
Scratch-Bereich SR wird in einem der Aufzeichnungszwischenspeicher
SRB0 und SRB1 eingerichtet, welcher nicht dem Schreiben der Wellenformdaten
zu dem Zeitpunkt ausgesetzt ist, in dem die Bedienung des Bandreglers 106 beginnt
(Schritt 1007 in 19). In jedem
Fall wird nur die Zahl der Abtastwerte, die zur Interpolation erforderlich
ist, in Schritt 1404 ausgelesen.
-
Als
nächstes
wird in Schritt 1405 die Interpolation mit den gelesenen
Abtastwerten abhängend von
einem Dezimalteil der Adresse SAD durchgeführt, und der interpolierte
Abtastwert wird im Register TMP eingestellt. Dann wird in Schritt 1406 der Wellenformabtastwert
TMP im j-ten Abtastwertbereich PBr(j)
des Wiedergabezwischenspeichers PBr angesammelt,
um den absoluten Abtastwert zu erzeugen, der durch PBr+ TMP dargestellt wird. Als nächstes wird
in Schritt 1407 bestimmt, ob das Register j 127 erreicht.
Wenn das Register j 127 nicht erreicht, wird das Register in Schritt 1408 inkrementiert, und
die Routine kehrt zu Schritt 1403 zurück, um die Prozesse bezüglich des
nächsten
Abtastwertes durchzuführen.
Wenn das Register j in Schritt 1407 die 127 erreicht, wird
der Prozess beendet.
-
15 ist
ein Flussdiagramm der DR(m)-Routine, die durch die DMA-Steuereinheit 113 in
jedem durch den Fs-Taktgenerator 110 erzeugten Abtasttakt
Fs ausgeführt
wird. Das Aufzeichnen wird durchgeführt, wenn Modus m = 1,5 oder
6 ist. Zuerst wird in Schritt 1501 der Wellenformabtastwert
vom Eingabe-FIFO der Ton-I/O 112 zum Abtastwertbereich
PBk(RP) des Aufzeichnungszwischenspeichers PBk übertragen, der durch den Aufzeichnungszeiger
RP bestimmt ist. Das ursprüngliche
Musiktonsignal, das in den A/D-Eingabeanschluss von der externen
Quelle eingegeben wurde, wird A/D-gewandelt und in den Eingabe-FIFO
geladen. Wenn der Modus m der Abtastmodus (m = 1) ist, wird der
lineare, durch den A/D-Wandler umgewandelte Wellenformabtastwert
durch Verwendung der ADPCM-Kompressionsfunktion
der Ton-I/O 112 ADPCM-komprimiert, und der komprimierte
Wellenformabtastwert wird an den Aufzeichnungszwischenspeicher RBk(RP) über den
Eingabe-FIFO übertragen.
Wenn auf der anderen Seite der Modus der EX-Filtermodus (m = 5)
oder der EX-Scratchmodus (m = 6) ist, wird der lineare Wellenformabtastwert,
der nicht A/D-gewandelt und nicht der ADPCM-Kompression unterworfen wird, an den
Aufzeichnungszwischenspeicher PBk(RP) über den Eingabe-FIFO übertragen.
Wenn m = 6 ist, wird der Aufzeichnungszwischenspeicher SRBk(RP)
anstelle des Aufzeichnungszwischenspeichers RBk(RP) verwendet.
-
Nachfolgend
wird der Aufzeichnungszeiger RP in Schritt 1502 inkrementiert.
Schritt 1503 bestimmt, ob der Aufzeichnugszwischenspeicher
RBk (wenn m= 6 ist, SRBk, der auch im folgenden angewandt wird)
voll ist. Wenn er nicht voll ist, wird der Prozess beendet. Wenn
der Aufzeichnungszwischenspeicher RBk voll ist, wird k in Schritt 1504 invertiert
(wenn 0, dann in 1 umgewandelt, und wenn 1, dann in 0 umgewandelt).
Die Unterbrechung wird in Schritt 1505 erzeugt, und der
Prozess wird beendet. Diese Unterbrechung wird verursacht, um die
CPU 101 anzuweisen, einen Prozess des Schreibens des Satzes
von Wellenformabtastwerten des aufgefüllten Aufzeichnungszwischenspeichers
(RBk zu diesem Zeitpunkt) in den Flash-Speicher 103 durchzuführen, um
den Aufzeichnungszwischenspeicher frei zu machen.
-
16 ist
ein Flussdiagramm der DP-Routine, die durch die DMA-Steuereinheit 113 in
jedem durch den Fs-Taktgenerator erzeugten Abtasttakt Fs ausgeführt wird.
Zuerst wird in Schritt 1601 der durch den Wiedergabezeiger
PP angezeigten Wellenformabtastwert PBr(PP) im Wiedergabezwischenspeicher
zum Ausgabe-FIFO
der Ton-I/O 112 übertragen.
Wie mit Bezug auf 1 erklärt, wird der in dem Ausgabe-FIFO
gespeicherte Wellenformabtastwert D/A-gewandelt und wird dann an
das Tonsystem 114 gesendet, um den Musikton erklingen zu
lassen. Als nächstes
wird der Wiedergabezeiger RP in Schritt 1602 inkrementiert.
Schritt 1603 bestimmt, ob der letzte der Abtastwerte des
Wiedergabezwischenspeicher PBr ausgesendet wurde.
-
Wenn
alle Wellenformabtastwerte des Wiedergabezwischenspeichers PBr in
Schritt 1603 wiedergegeben werden, wird r invertiert (wenn
0, dann in 1 umgewandelt, und wenn 1, dann in 0 umgewandelt) und
der andere Wiedergabezwischenspeicher wird ausgewählt, um
als nächstes
in Schritt 1604 ausgelesen zu werden. Dann wird in Schritt 1605 eine
Unterbrechung erzeugt, um die nächste
Bereitstellung von Wellenformabtastwerten für die CPU 101 zu erbitten, und
der Prozess wird beendet. Wenn in Schritt 1603 der noch
nicht wiedergegebene Wellenformabtastwert im Wiedergabezwischenspeicher
PBr verbleibt, wird der Prozess einmal beendet.
-
Als
nächstes
wird beschrieben, zu welchen Takten die vorhergehenden Flussdiagramme
im entsprechenden Modus ausgeführt
werden. Zuerst wird die Arbeitsweise des Normalmodus (m = 0) erläutert. Wenn
der Normalmodus durch den Benutzer unter Verwendung des Moduswechselumschalters
bestimmt wird, wird das Register m in der vorangehenden in 4 gezeigten
SW-Ereignis-Routine auf 0 gesetzt. Da der Startprozess des Normalmodus MS(0)
keinen besonders ausführlich
zu erklärenden Prozess
durchführt,
wird sein Flussdiagramm fortgelassen. Wenn andererseits die Operation
des Ausführens
der DP-Routine in jedem Abtasttakt Fs durch den EX-Scratchmodus
oder dergleichen angehalten wird, beginnt MS(0) seinen Betrieb.
-
Während der
Initialisierung in Schritt 301 in 3 oder im
Startprozess der Wiedergebeoperation mittels des vorhergehenden
MS(0) versetzt die CPU 101 die Tonquellenregister aller
Kanäle
in 2(a) in den Ton-Aus-Zustand,
setzt alle Abtastwertbereiche der Wiedergabezwischenspeicher PB0 und
PB1 der 2(c) auf 0, weist die Ton-I/O 112 und
die DMA-Steuereinheit 113 an, die Wiedergabeoperation durchzuführen und
startet dann die Erzeugung des Abtasttaktes Fs durch den Fs-Taktgenerator 110.
Dadurch unterbricht die DMA-Steuereinheit 113 die
CPU 101 in jedem Abtasttakt Fs vom Fs-Taktgenerator 110 und
führt die
DP-Routine von 16 bei jeder Unterbrechung aus,
so dass die Operation der Wiedergabe der Wellenformdaten im Wiedergabezwischenspeicher
gestartet wird.
-
Nun
wird das Takten des Prozesses bei der Wiedergabe erklärt. 17(a) zeigt ein Taktdiagramm bei der Wiedergabe.
Jeder der Abschnitte S1 bis S5 steht für einen Rahmen zur Ausführung der Wiedergabe
von einem Satz der 128 Abtastwerte. In der Figur steht „Wellenformerzeugung
durch CPU" für einen
Abschnitt, in dem die CPU 101 eine Routine HS(0) zur Wellenformerzeugung
von 11(a) ausführt, um den Prozess der Erzeugens
von 128 Abtastwerten durchzuführen,
die als nächstes
im Wiedergabezwischenspeicher PB0 oder PB1 wiedergegeben werde sollen. „DP-Routine von DMAC" steht andererseits
für einen
Abschnitt zum Durchführen des
Prozesses des Ausführens
der DP-Routine, um die Wellenformdaten im Wiedergabezwischenspeicher
wiederzugeben. Die DP-Routine wird durch Unterbrechung abhängend vom
Abtasttakt Fs ausgeführt,
und eine Unterbrechung findet innerhalb des Rahmens 128 mal in gleichmäßigen Intervallen
statt. Die Zeichen 0 bis 4, die sowohl „Wellenformerzeugung durch
CPU" als auch „DP-Routine
von DMAC" zugewiesen
sind, sind Zeichen, die zum Vorteil des Anzeigens der Reihenfolgen
der Wellenformerzeugung und der Wiedergabe zugewiesen sind.
-
In 17(a) führt
die CPU 101 zuerst im Abschnitt S1 HS(0) aus und erzeugt
oder produziert die Wellenformdaten (128 Wellenformabtastwerte)
für den
Wiedergabezwischenspeicher PB0. Im nachfolgenden Abschnitt S2 führt die
DMA-Steuereinheit 113 die
DP-Routine auf der Grundlage der Unterbrechung pro Abtasttakt Fs
aus. Dadurch werden die in Abschnitt S1 erzeugten 128 Wellenformabtastwerte des
Wiedergabezwischenspeichers PB0 an den Ausgabe-FIFO der Ton-I/O 112 übertragen
und in Abschnitt S2 nacheinander wiedergegeben. Zu dem Zeitpunkt,
an welchem alle 128 Wellenformabtastwerte des Wiedergabezwischenspeichers
PB0 zum Ausgabe-FIFO der Ton-I/O 112 (am Ende des Abschnitts
S2) übertragen
werden, findet die Unterbrechung statt (Schritt 1605).
Mit der Unterbrechung als Auslöser
führt die
CPU 101 die Wellenformerzeugungsroutine HS(0) im Abschnitt
S3 aus und erzeugt neue Wellenformdaten (128 Wellenformabtastwerte) für den Wiedergabezwischenspeicher
PB0.
-
Die
vorangegangene Erklärung
wurde nur bezüglich
des Wiedergabezwischenspeicher PB0 angegeben. PB1 wir auch abwechselnd
mit PB0 verwendet. Um es zusammenzufassen: die DP-Routine wird auf
der Grundlage der Unterbrechung pro Abtasttakt Fs ausgeführt, um
die Wiedergabe der Wellenformabtastwerte von PB0 und PB1 abwechselnd miteinander
in folgender Weise durchzuführen:
Wiedergeben der Wellenformabtastwerte von PB1 im Abschnitt S1, Wiedergeben
der Wellenformabtastwerte von PB0 im Abschnitt S2, Wiedergeben der
Wellenformabtastwerte von PB1 in Abschnitt S3, Wiedergeben der Wellenformabtastwerte
von PB0 im Abschnitt S4 und so weiter. HS(0) wird auf der Grundlage
der Unterbrechung ausgeführt,
die zu dem Zeitpunkt verursacht wird, an dem 128 Abtastwerte in
jedem Abschnitt wiedergegeben werden, und die nächsten 128 entweder für PB0 oder
PB1 erzeugt, welcher gerade im Leerlauf ist. Mit Hinsicht auf die
hierarchische Struktur der Software gehört die DP-Routine zur Ebene
1, während
HS(0) zur Ebene 2 gehört.
Wenn eine Unterbrechung im Nachgang eines Abtasttaktes Fs verursacht
wird, während
HS(0) ausgeführt
wird, wird somit die DP-Routine mit Priorität ausgeführt. Dadurch können die
Wiedergabe mittels der DP-Routine und die Wellenformerzeugung mittels
der Wellenformerzeugungsroutine HS(0) parallel zueinander durchgeführt werden.
-
Wenn
das Feld nicht im Normalmodus (m = 0) gedrückt wird, werden nur 0-Abtastwerte im Wiedergabezwischenspeicher
PB0, PB1 wiederholt mit der Taktung wiedergegeben, die mit Bezug
auf 17(a) erklärt wurden. Wegen der Wiedergabe von
nur 0-Abtastwerten ist es tatsächlich
dasselbe wie der Fall, bei dem kein Musikton erzeugt wird. Es wird
der Prozess erläutert,
bei dem das Feld in diesem Zustand angetippt wird. Wie durch die
Pfeile des „Feld" in 17(a) gezeigt, wird angenommen, dass das Feld
in Abschnitt S1 auf Ein eingestellt wird. Wenn das Feld-Ein in der allgemeinen
Routine detektiert wird, wird das Ton-Ein der Wellenformdaten, die dem
auf Ein eingestellten Feld entsprechen, in das Tonquellenregister
der 2(a) durch die Ein-Ereignis-Routine
von 7 geschrieben. Die allgemeine Routine oder die
Ein-Ereignis-Routine gehören
zur Ebene 3, um parallel zur Wellenformerzeugungsroutine HS(0) und
zur DP-Routine betrieben zu werden. Das Ton-Ein, welches in das
Tonquellenregister geschrieben ist, wird für den Wiedergabezwischenspeicher
in der nächsten
Ausführung
des HS(0) behandelt.
-
Als
nächstes
wird der Betrieb im Abtastmodus (m = 1) erläutert. Wenn der Abtastmodus
durch den Benutzer unter Verwendung des Moduswechselumschalters
bestimmt wird, wird das Register m auf 1 in der vorherigen Modus-SW-Ereignis-Routine von 4 gesetzt.
Ferner wird der Abstastmodusstartprozess MS(1) wie in 5 gezeigt
ausgeführt.
Im MS(1) wird die DP-Routine angehalten und die Ton-I/O 112 und
die DMA-Steuereinheit 113 werden angewiesen, die Aufzeichnungsoperation
durchzuführen.
Dadurch unterbricht die DMA-Steuereinheit 113 die
CPU 101 in jedem von dem Fs-Taktgenerator 110 zugeführten Abtasttakt
Fs und führt
die DR(1)-Routine von 15 bei jeder Unterbrechung aus,
um die Operation des Aufzeichnens des Wellenformabtastwerts von
der externen Quelle in den Wiedergabezwischenspeicher zu beginnen.
-
Nun
wird das Takten des Prozesses beim Aufzeichnen erklärt. 17(b) zeigt ein Taktungsdiagramm bei der Aufzeichnung.
Jeder der Abschnitte S1 bis S5 steht für einen Rahmen zur Ausführung des
Aufzeichnens eines Satzes von 128 Abtastwerten. In der Figur steht „DR-Routine
von DMAC" für einen
Abschnitt zum Ausführen
des DR(1), um die Wellenformdaten des Eingabe-FIFO der Ton-I/O 112 in den
Wiedergabezwischenspeicher zu schreiben. Der Wellenformabtastwert
wird durch A/D-Wandeln des externen Eingangssignals erhalten und
wird ADPCM-komprimiert.
Die DR(1)-Routine wird auf der Grundlage der Unterbrechung in jedem
Abtasttakt Fs ausgeführt,
und diese Unterbrechung wird 128 mal in gleichmäßigen Intervallen innerhalb
eines Rahmens erzeugt. In der Figur steht „Schreiben in Flash-Speicher
durch CPU" für einen
Abschnitt zur Durchführung
eines Prozesses, bei dem die CPU 101 die Wellenformabtastwerte
des Aufzeichnungszwischenspeichers RB0 oder RB1 in den Flash-Speicher 103 schreibt,
um den Aufzeichnungszwischenspeicher in Schritt 509 von 5 frei
zu machen. Die Zeichen 0 bis 4, die jedem Abschnitt zugewiesen sind,
sind Zeichen, die zum Vorteil des Anzeigens der Reihenfolgen der
Aufzeichnung und des Schreibens in den Flash-Speicher zugewiesen
sind.
-
In 17(b) wird zuerst in Abschnitt S1 eine Unterbrechung
in jedem Abstattakt Fs verursacht, und die DMA-Steuereinheit 113 führt die
DR(1)-Routine bei jeder Unterbrechung aus. Dadurch werden die Wellenformabtastwerte
des Eingabe-FIFO der Ton-I/O 112 in den Aufzeichnungszwischenspeicher RB0
in Reihenfolge geschrieben. Zu dem Zeitpunkt, an dem die 128 Wellenformabtastwerte
in den Aufzeichnungszwischenspeicher RB0 am Ende des Abschnitts
S1 geschrieben sind, findet eine Unterbrechung statt (Schritt 1505).
Mit dieser Unterbrechung als Auslöser schreibt die CPU 101 die
Wellenformabtastwerte des Aufzeichnungszwischenspeichers RB0 im
Abschnitt S2 (Schritt 509) in den Flash-Speicher 103, um den Aufzeichnungszwischenspeicher
RB0 frei zu machen.
-
Die
vorangegangene Erklärung
erfolgte nur bezüglich
des Aufzeichnungszwischenspeichers RB0. RB1 wird auch abwechselnd
mit RB0 verwendet. Um es zusammenzufassen: die DR(1)-Routine wird
auf der Grundlage der Unterbrechung pro Abtasttakt Fs ausgeführt, um
Aufzeichnen oder das Schreiben der Wellenformabtastwerte in RB0
und RB1 abwechselnd miteinander entsprechend dem Abtasttakt in folgender
Weise durchzuführen:
Aufzeichnen der Wellenformabtastwerte in RB0 im Abschnitt S1, Aufzeichnen
der Wellenformabtastwerte in RB1 im Abschnitt S2, Aufzeichnen der
Wellenformabtastwerte in RB0 in Abschnitt S3 und so weiter. Auf
der Grundlage der Unterbrechung, die zu dem Zeitpunkt verursacht
wird, an dem in jedem Abschnitt 128 Abtastwerte aufgezeichnet sind, werden die
Wellenformabtastwerte des Aufzeichnungszwischenspeichers, der das
Aufzeichnen vervollständigt,
in den Flash-Speicher 103 geschrieben. Im Hinblick auf
die hierarchische Struktur der Software gehört die DR(1)-Routine zur Ebene
1, während
die MS(1) zur Ebene 3 gehört.
Wenn eine Unterbrechung nach einem Abtasttakt Fs verursacht wird,
während MS(1)
ausgeführt
wird, so wird die DR(1)-Routine
mit Priorität
ausgeführt.
Dadurch können
das Aufzeichnen mittels der DR(1)-Routine und das Schreiben in den
Flash-Speicher 103 mittels MS(1) parallel zueinander durchgeführt werden.
-
Als
nächstes
wird die Operation im Filtermodus (m = 2) erklärt. Wenn der Filtermodus durch
den Benutzer unter Verwendung des Moduswechselumschalters bestimmt
wird, wird das Register m in der vorangehenden, in 4 gezeigten
Modus-SW-Ereignis-Routine auf 2 gesetzt. Da der Filtermodusstartprozess
MS(2) keinen signifikanten, besonders erklärungsbedürftigen Prozess durchführt, wird
sein Flussdiagramm fortgelassen. Wenn andererseits die Operation
des Ausführens
der DP-Routine in jedem Abtasttakt durch den EX-Scratchmodus oder
dergleichen angehalten wird, startet MS(2) seine Wiedergabeoperation
genauso von neuem wie der Startprozess des Normalmodus MS(0).
-
Der
Filtermodus führt
die Wiedergabe in einer Weise durch, die im wesentlichen dieselbe
ist wie die des Normalmodus. Die DP-Routine wird in jedem Abtasttakt
Fs ausgeführt
und alle 0-Abtastwerte im Vdiedergabezwischenspeicher PB0, PB1 werden wiederholt
wiedergegeben, während
ein Feld-Ein nicht erreicht wird. Die Abtastwerte sind dieselben wie
im Normalmodus, und die Verarbeitungsprozedur bei einem Feld-Ein
ist auch dieselbe. Weiter ist auch die Taktung bei der Wiedergabe
dieselbe wie in 17(a). Im Filtermodus wird jedoch
die RC-Einhol-Routine RC(2) der 9 bei jedem
gegebenen Takt auf der Grundlage der Zeitgeberunterbrechung ausgeführt, um
den Detektionswert des Bandreglers 106 einzuholen, und
HS(2) von 11(b) wird anstelle von HS(0)
als Wellenformerzeugungsprozess der CPU 101 in 17(a) eingestellt. In der Wellenformerzeugungsroutine
werden die Wellenformabtastwerte von höchstens zwei Tönen auf
der Grundlage des Feld-Ein im Wiedergabezwischenspeicher angesammelt,
und der Filterprozess wird mit dem Filterkoeffizienten durchgeführt, der
vom Detektionswert RD des Bandreglers 106 bezüglich der
Wellenformabtastwerte des Wiedergabezwischenspeichers (Schritte 1112 und 1113)
abhängt.
Fn der obigen Weise wird die Filtersteuerung des reproduzierten
Tons durch den Bandregler 106 durchgeführt.
-
Im
Filtermodus wird die Zahl der Tonerzeugungen von vier des Normalmodus
auf zwei reduziert. Anstelle der Reduzierung der Zahl der erzeugten
Musiktöne
wird der Filterprozess auf die wiedergegebene Wellenform angewandt.
Da eine gegebene Zahl von Tonerzeugungen innerhalb einer Ein-Rahmen-Zeit
durchgeführt
werden sollten, wird eine Prozesszeit, obwohl die vier Töne im Normalmodus
erzeugt werden können,
unzureichend, wenn der Filterprozess auf die erzeugten Töne angewandt wird.
In dieser Hinsicht wird die Zahl der Tonerzeugungen auf zwei reduziert,
um die Prozesszeit für
die Wellenformerzeugung zu verkürzen,
während
der zusätzliche
Filterprozess in der verbleibenden Zeit durchgeführt wird.
-
Als
nächstes
wird die Arbeitsweise im Tonhöhenmodus
(m = 3) erklärt.
Wenn der Tonhöhenmodus durch
den Benutzer unter Verwendung des Moduswechselumschalters bestimmt
wird, wird das Register m in der vorangehenden, in 4 gezeigten
Modus-SW-Ereignis-Routine auf 3 gesetzt. Da der Startprozess für den Tonhöhenmodus
MS(3) keinen besonderen, erklärungswürdigen Prozess
durchführt, wird
sein Flussdiagramm fortgelassen. Wenn andererseits die Operation
des Ausführens
der DP-Routine in jedem Abtasttakt Fs durch den EX-Scratchmodus oder
dergleichen angehalten wird, startet MS(3) seine Wiedergabeoperation
genauso von neuem wie die Startprozess für den Normalmodus MS(0).
-
Der
Tonhöhenmodus
führt die
Tonwiedergabe in einer Weise durch, die im wesentlichen dieselbe ist
wie die des Normalmodus. Die DP-Routine wird in jedem Abtasttakt
Fs ausgeführt,
und es werden alle 0-Abtastwerte wiederholt im Wiedergabezwischenspeicher
PB0, PB1 wiedergegeben, während
das Feld-Ein nicht erreicht wird. Die Abtastwerte sind dieselben
wie im Normalmodus, und die Verarbeitungsprozedur bei der Wiedergabe
ist auch dieselbe wie in 17(a).
Im Tonhöhenmodus
wird jedoch die Feld-Ein-Routine aus 8 anstelle
der aus 7 verwendet, und die Wellenformerzeugungsroutine HS(3)
der 11(c) wird anstelle der von
HS(0) von 11(a) verwendet. In der Feld-Ein-Ereignis-Routine
der 8 wird eine F-Zahl FNi erzeugt, die der Feldnummer
PN entspricht. In der Wellenformerzeugungsroutine HS(3) von 11(c) wird der Wellenformabtastwert unter Verwendung
der Adresse ausgelesen, die die Summe der F-Zahl FNi und der Adresse
ADi ist, um die Auslesegeschwindigkeit zu ändern. Dadurch kann man eine
Wiedergabe mit einer gewünschten
Tonhöhe
erreichen.
-
Im
Tonhöhenmodus
wird die Zahl der Tonerzeugungen von vier des Normalmodus auf zwei
reduziert. Anstelle der Reduktion in der Zahl der erzeugten Musiktöne, wird
der Tonhöhenverschiebeprozess auf
die erzeugte Wellenform angewandt. Da eine gegebene Zahl von Tonerzeugungen
innerhalb einer Ein-Rahmen-Zeit durchgeführt werden sollte, wird eine
Prozesszeit, obwohl vier Töne
im Normalmodus erzeugt werden können,
unzureichend, wenn der Tonhöhenverschiebeprozess
auf die erzeugten Töne angewandt
wird. In dieser Hinsicht wird die Zahl der Tonerzeugungen auf zwei
reduziert, um die Prozesszeit für
die Wellenformerzeugung zu verkürzen,
und der Tonhöhenverschiebeprozess
wird in der übrigen Zeit
durchgeführt.
-
Als
nächstes
wird der Betrieb im Scratchmodus (m = 4) erklärt. Wenn der Scratchmodus durch den
Benutzer unter Verwendung des Moduswechselumschalters bestimmt wird,
wird das Register m in der vorangehenden, in 4 gezeigten
Modus-SW-Ereignis-Routine auf 4 gesetzt. Im Scratchmodusstartprozess
MS(4) werden die durch Scratchen wiederzugebenden Wellenformdaten
in einem gegebenen Bereich entwickelt, und der Scratch-Bereich SR
und der Scratch-Zeiger SP werden vorab eingestellt. Obwohl in 6 nicht
gezeigt, startet MS(4) seine Operation genauso von neuem wie der Startprozess
für den
Normalmodus MS(0), wenn die Operation des Ausführens der DP-Routine in jedem Abtasttakt
Fs durch den EX-Scratchmodus oder dergleichen angehalten wird.
-
Im
Scratchmodus wird die Wiedergabe von zwei Tönen durch das Feld-Ein in einer
Prozedur durchgeführt,
die im wesentlichen dieselbe ist wie die des Normalmodus. Die DP-Routine
wird in jedem Abtasttakt Fs ausgeführt, und es werden alle 0-Abtastwerte wiederholt
im Wiedergabezwischenspeicher PB0, PB1 wiedergegeben, während das
Feld-Ein nicht erreicht wird, auch die Verarbeitungsprozedur bei
Feld-Ein ist dieselbe.
Ferner ist die Taktung bei der Weidergabe auch dieselbe wie in 17(a). Im Scratchmodus wird jedoch die RC-Einhol-Routine RC(4)
der 10 durch die Zeitgeberunterbrechung ausgeführt, um
den Detektionswert des Bandreglers 106 aufzunehmen. Das
Ton-Ein wird in das Tonquellenregister sch des Scratch-Kanals zu
Beginn der Operation geschrieben. Ferner wird die Geschwindigkeit
VEL des Bandreglers 106 detektiert und in das Tonquellenregister
sch geschrieben. Der Wellenformerzeugungsprozess der CPU 101 wird
auf HS(4) der 12(a) anstelle von HS(0) eingestellt.
In der Wellenformerzeugungsroutine HS(4) wird die Erzeugung von
Wellenformabtastwerten für
die zwei Töne, die
durch ein Feld-Ein verursacht werden, durch die Normal 2-Unterroutine
genauso wie im Normalmodus durchgeführt. Durch die Verwendung der Scratch-Unterroutine
(14) wird der Wellenformabtastwert im Scratch-Bereich
SR unter Verwendung der Adresse SAD ausgelesen, die durch Addieren
der F-Zahl SFN zur Adresse SAD abgeleitet wurde.
-
Der
gelesene Wellenformabtastwert wird im Wiedergabezwischenspeicher
PBr angesammelt. Dadurch kann
die Scratch-Wiedergabe unter Verwendung der bestimmten Wellenformdaten
zusätzlich
zu den zwei durch das Feld-Ein verursachten Tönen erreicht werden.
-
Im
Scratchmodus wird die Zahl der Tonerzeugungen von den vier des Normalmodus
auf zwei reduziert. Anstelle der zahlenmäßigen Reduktion der erzeugten
Musiktöne
werden die Scratch-Töne
erzeugt. Da eine gegebene Zahl von Tonerzeugungen innerhalb einer
Ein-Rahmen-Zeit durchgeführt
werden sollte, wird eine Prozesszeit, obwohl vier Töne im Normalmodus
erzeugt werden können,
unzureichend, wenn die Scratch-Töne
zusätzlich
erzeugt werden. In dieser Hinsicht wird die Zahl der Tonerzeugungen
auf zwei reduziert, um die Prozesszeit für die Wellenformerzeugung zu
verkürzen,
und die Scratch-Töne
werden durch die Verwendung der übrigen
Zeit erzeugt.
-
Als
nächstes
wird der Betrieb des EX-Filtermodus (m = 5) erläutert. Wenn der EX-Filtermodus durch
den Benutzer unter Verwendung des Moduswechselumschalters bestimmt
wird, wird das Register m in der vorangehenden, in 4 gezeigten
Modus-SW-Ereignis-Routine auf 5 gesetzt. Obwohl ein Flussdiagramm
des EX-Filtermodusstartprozesses MS(5)
fortgelassen ist, führt
M5(5) den Startprozess der DR(5)-Routine aus. Speziell weist die
CPU 101 die Ton-I/O 112 und die DMA-Steuereinheit 113 an, die
CPU 101 in jeder von Fs-Taktgenerator 110 zugeführten Abtasteinheit
Fs zu unterbrechen und die DR(5)-Routine von 15 bei
jeder Unterbrechung auszuführen,
um die Schreiboperation der Wellenformabtastwerte von der externen
Quelle in den Aufzeichnungszwischenspeicher RBk zu starten. Zu diesem
Zeitpunkt wird die Operation des Unterbrechens der CPU 101 in
jedem vom Fs-Taktgenerator 110 zugeführten Abtasttakt Fs und des
Ausführens
der DP-Routine der 16 bei
jeder Unterbrechung zur Wiedergabe der Wellenformdaten im Wiedergabezwischenspeicher
nicht angehalten. Wenn die Operation des Ausführens der DP-Routine in jedem
Abtasttakt Fs durch den EX-Scratchmodus oder dergleichen angehalten
wird, startet MS(5) ihre Operation genauso von neuem wie der Startprozess
des Normalmodus MS(0). DP und DR(5) werden in jedem Abtasttakt Fs
ausgeführt.
Da in diesem Fall DP und DR(5) demselben Abtasttakt Fs folgend betreiben werden,
arbeiten sie synchron, so dass die Unterbrechung der DP-Routine in Schritt 1605 und
die der DR(5)-Routine in Schritt 1505 mit identischer Taktung stattfinden.
Mit den mit derselben Taktung verursachten Unterbrechungen als Auslöser wird
die Wellenformerzeugungsroutine HS(5) von 12(b) ausgeführt.
-
Im
EX-Filtermodus wird das externe Eingangssignal im wesentlichen nicht
aufgezeichnet. Das externe Eingangssignal wird in der DR(5)-Routine
eingeholt, dies geschieht aber zum Filtern der eingeholten Wellenformdaten.
Somit wird kein Schreiben des Signals in den Flash-Speicher 103 durchgeführt.
-
Wenn
die Unterbrechungen gemäß DP und DR(5)
wie oben beschrieben mit derselben Taktung stattfinden, werden 128
lineare Abtastwerte der Wellenformdaten von der externen Quelle 111 in
den Aufzeichnungszwischenspeicher RBk geschrieben, während der
Wiedergabezwischenspeicher PBr frei ist.
Die Wellenformerzeugungsroutine HS(5) führt den Filterprozess für die 128
Wellenformabtastwerte des Aufzeichnungszwischenspeichers RBk durch und stellt die resultierenden
128 Wellenformabtastwerte im Wiedergabezwischenspeicher PBr ein. Die RC-Einhol-Routine
RC(5) der 9 wird durch die Zeitgeberunterbrechung
ausgeführt,
um den Detektionswert RD des Bandreglers 106 einzuholen.
Der Filterkoeffizient des Filterprozesses wird abhängend vom
Detektionswert RD bestimmt. In der vorangehenden Weise wird durch
den Bandregler 106 das externe Eingangssignal durch Filtern
gesteuert, so dass ein modifizierter Musikton mit der gewünschten Timbreänderung
ausgegeben wird.
-
Als
nächstes
wird die Arbeitsweise im EX-Sctratchmodus (m=6) erläutert. Wenn
der EX-Scratchmodus durch den Benutzer unter Verwendung des Moduswechselumschalters
bestimmt wird, wird das Register m in der vorangehenden, in 4 gezeigten
Modus-SW-Ereignis-Routine auf 6 gesetzt. Obwohl ein Flussdiagramm
des EX-Scratchmodusstartprozesses MS(6) fortgelassen ist, führt MS(6)
den folgenden Prozess aus. Speziell weist die CPU 101 die
Ton-I/O 112 und die DMA-Steuereinheit 113 an,
die CPU 101 in jeder von Fs-Taktgenerator 110 zugeführten Abtasteinheit
Fs zu unterbrechen und die DP-Routine von 16 bei
jeder Unterbrechung auszuführen,
um die Operation der Wiedergabe der Wellenformabtastwerte im Wiedergabezwischenspeicher
PBr anzuhalten. Weiter weist die CPU die Ton-I/O 112 an,
eine direkte Verbindung zwischen dem A/D-Eingang und dem D/A-Ausgang herzustellen
und das Musiktonsignal von der externen Quelle dem Tonsystem 114 zuzuführen, um
einen Ton auszusenden. Ferner weist die CPU 101 die Ton-I/O 112 und
die DMA-Steuereinheit 113 an, die CPU 101 in jedem
Abasttakt Fs vom Fs-Taktgenerator 110 zu unterbrechen und
die DR(6)-Routine von 15 bei jeder Unterbrechung auszuführen, um
die Operation des Schreibens des Wellenformabtastwerts von der externen
Quelle in den Aufzeichnungszwischenspeicher SRBk zu beginnen. Im
EX-Scratchmodus wird das externe Eingangssignal im wesentlichen
nicht aufgezeichnet. Das externe Eingangssignal wird von der DR(6)-Routine
eingeholt, aber die eingeholten Wellenformdaten werden für die Scratch-Wiedergabe
verwendet. Somit wird kein Schreiben der Daten in den Flash-Speicher 103 durchgeführt. Da
die Zeitgeberunterbrechung während
des Initialisierungsschritts in Schritt 301 als wirksam
eingestellt wird, wird die RC-Einhol-Routine RC(6) von 10 durch eine
gegebene Taktung auf der Grundlage der Zeitgeberunterbrechung durch
den Zeitgeber 105 ausgeführt.
-
Während der
Bandregler 106 nicht bedient wird, wird der Prozess durch
die Schritte 1001 → 1002 → 1003 → ENDE in
RC(6) in 10 beendet, so dass der Prozess
des direkten Zuführens
des externen Eingangssignals an des Tonsystem 114 fortgesetzt
wird. Da weiter die DR(6)-Routine auf der Grundlage der Unterbrechung
in jedem Abtasttakt Fs ausgeführt
wird, werden die durch A/D-Wandeln des externen Eingangssignals
erhaltenen linearen Wellenformabtastwerte in die Aufzeichnungszwischenspeicher
SRB0 und SRB1 abwechselnd über
den Eingabe-FIFO
geschrieben.
-
Wenn
die Bedienung des Bandreglers 106 beginnt, zum Beispiel
durch Berührung
des Bandreglers 106 mit einem Finger oder dergleichen,
fährt die Routine
durch die Schritte 1001 → 1002 → 1004 → 1005 in
RC(6) fort. Im nächsten
Schritt 1006 weist die CPU 101 die DMA-Steuereinheit 113 an,
die Ausführung
der DR(6)-Routine
durch Unterbrechen der CPU 101 in jedem Abtasttakt Fs anzuhalten
und stellt den Scratch-Bereich SR im Aufzeichnungszwischenspeicher
SRBk ein, der einer der beiden Aufzeichnungszwischenspeicher SRB0
oder SRB1 ist, der momentan nicht dem Schreiben unterworfen wird, wie
es mit Bezug auf 2(e) beschrieben wurde. Als
nächstes
wird der vorbestimmte Wert des Scratch-Zeigers SP als Anfangsleseadresse
SAD in Schritt 1007 eingestellt. Weiter werden in Schritt 1008 128
zuerst wiederzugebende Abtastwerte für den Wiedergabezwischenspeicher
PBr erzeugt, und die CPU weist die DMA-Steuereinheit 113 an,
die Ausführung
der DR-Routine durch Unterbrechen der CPU in jedem Abtasttakt Fs
erneut zu starten. Weiter wird eine Unterbrechung von der selben
Signifikanz erzeugt wie die Unterbrechung, die in Schritt 1605 der
DP-Routine in 16 verursacht wird. Durch diese
Unterbrechung wird HS(6) ausgeführt
und 128 als nächstes
zu scratchende Abtastwerte werden in PBr erzeugt.
Ferner wird unter der Anweisung von der CPU 101 die direkte
Verbindung vom A/D-Eingang der Ton-I/O 112 zum D/A-Ausgang abgeschnitten, um
die Zuführung
des Musiktonsignals direkt von der externen Quelle 111 zum
Tonsystem 114 anzuhalten.
-
Wenn
weiter der Finger oder dergleichen sich während seines Kontakts mit dem
Bandregler 106 bewegt, fährt die Routine von Schritt 1004 zum Schrift 1011 fort,
so dass die Geschwindigkeit VEL detektiert und im Tonquellenregister
sch eingestellt wird: In der DP-Routine, die auf der Grundlage der Unterbrechung
in jedem Abtasttakt Fs ausgeführt wird,
wird andererseits auf die Wiedergabezwischenspeicher PB0 und PB1
abwechselnd nacheinander zugegriffen. Entsprechend wird die Wiedergabe
des Scratch-Tons auf der Grundlage des Tonquellenregisters sch von
dem Zeitpunkt an gestartet, an dem die Bedienung des Bandreglers 106 begonnen
wird. In der Wellenformerzeugungsroutine HS(6) von 12(c), die durch die Unterbrechung in Schritt 1605 der
DP-Routine ausgelöst
wird, fährt
die Routine von Schritt 1221 zu Schritt 1222 fort,
so dass der EX-Scratch-Prozess
von 14 ausgeführt
wird, da RS = 1 gehalten wird, während
die Bedienung des Bandreglers 106 durchgeführt wird.
Im EX-Scratch-Prozess der 14 wird
der Wellenformabtastwert im Scratch-Bereich SR unter Verwendung
der Adresse SAD ausgelesen, die durch Addieren der F-Zahl SFN, die
von der detektierten Geschwindigkeit abhängt, zur Adresse SAD abgeleitet wird
und im Wiedergabezwischenspeicher PBr eingestellt
wird. Obwohl es scheint, dass die Ansammlung der gelesenen Daten
in Schritt 1406 durchgeührt wird,
werden, da alle 0-Abtastwerte in PBr eingestellt werden, die zu
scratchenden Wellenformabtastwerte TMP im wesentlichen in PBr eingestellt. Bei der vorangehenden
Anordnung wird die Scratch-Wiedergabe unter Verwendung der Wellenformdaten
erreicht, die von der externen Quelle eingegeben werden.
-
18(a) und 18(b) zeigen
Beispiele der Umwandlung von der Geschwindigkeit VEL zur Scratch-F-Zahl
SFN, die in Schritt 1401 in 14 durchgeführt wird.
Diese Umwandlung kann durch Berechnung oder mittels einer Tabelle
erreicht werden. 18(a) zeigt ein Beispiel, bei
dem eine Veränderung
der F-Zahl SFN ansteigt, während
ein Absolutwert der Geschwindigkeit VEL abnimmt. Dies realisiert
den Scratch-Effekt
derart, dass eine Tönhöhenänderung
sogar dann signifikant ist, wenn die Länge des Bandreglers 106 klein
ist.
-
Da
die genaue Tonhöhensteuerung
bei der Scratch-Wiedergabe nicht erforderlich ist, kann die Zahl
der Bits beim Dezimalteil der Scratch-Adresse SAD, wenn nötig, reduziert
werden. Die Zahl der Bits beim Dezimalteil der Adresse SAD, die
in Schritt 1403 in 14 abgeleitet
wird, kann reduziert werden. Dies kann den Rechenaufwand der Interpolation,
die in Schritt 1405 durchgeführt wird, reduzieren. Bei Verwendung
einer Tabelle, die in 18(b) gezeigt
ist, bei der Umwandlung von der Geschwindigkeit VEL in die Scratch-F-Zahl
SFN kann die Zahl der Bits beim Dezimalteil der F-Zahl SFN gesenkt
werden, um den Rechenaufwand der Interpolation zu reduzieren.
-
Im
obigen EX-Scratchmodus werden die von der externen Quelle zugeführten Wellenformabtastwerte
abwechselnd in die Wiedergabezwischenspeicher SRB0 und SRB1 gespeichert,
und der Scratch-Bereich wird in dem Wiedergabezwischenspeicher eingestellt,
der zum Zeitpunkt des Startens der Bedienung des Bandreglers nicht
dem Schreiben unterworfen wird. Andererseits kann man es so handhaben,
dass nicht weniger als drei Wiedergabezwischenspeicher vorgesehen
sind, in denen die Wellenformdaten reihum gespeichert werden, und
die Scratch-Bereiche
werden in mehreren Wiedergabezwischenspeichern eingestellt, die
zum Zeitpunkt des Startens der Bedienung des Bandreglers nicht dem Schreiben
unterworfen werden. Mit dieser Anordnung kann, da die Scratch-Bereiche
in mehreren Wiedergabezwischenspeichern eingestellt sind, die Kapazität des Scratch-Bereichs hinreichend
zum Scratchen sichergestellt werden. Da ferner die Kapazität jedes
Wiedergabezwischenspeichers klein eingestellt werden kann, wird
die Datenmenge in den Wiedergabezwischenspeichern abgesenkt, die
zum Zeitpunkt des Startens der Bedienung des Bandreglers dem Schreiben
unterworfen sind. Somit können die
zum Scratchen nicht verwendeten Daten reduziert werden. Anders ausgedrückt kann
der Restteil der Daten gesichert werden.
-
In 17(a) ist gezeigt, wie die Kopftaktungen des Feld-Ein-Detektionsbereichs,
der Abschnitt der Wellenformerzeugung durch die CPU und der Ausführungsabschnitt
der DP-Routine des DMAC miteinander zusammenfallen. Dies ist jedoch
nicht unbedingt erforderlich, und die entsprechenden Abschnitte
können
gegeneinander versetzt sein. Dies gilt auch für die Taktungen beim Aufzeichnen,
die in 17(b) gezeigt sind. In 17(a) führt
die CPU die Wellenformerzeugung zu dem Zeitpunkt durch, an dem die
Wiedergabe der Abtastwerte in einem der Wiedergabezwischenspeicher
in der DP-Routine beendet ist. Andererseits kann man es so halten,
dass die Zahl der verbleibenden, nicht wiedergegebnen Abtastwerte
im Wiedergabezwischenspeicher detektiert wird. Wenn die detektierte
Zahl nicht größer als ein
gegebener Wert wird, werden neue Abtastwerte in freien Bereichen
erzeugt. Entsprechend kann durch Einstellen der Taktungen der Wiedergabe
und der Erzeugung der Abtastwerte die Zahl der Wiedergabezwischenspeicher
eins oder nicht weniger als drei sein.
-
19 zeigt
eine zusätzliche
Ausführungsform
der erfindungsgemäßen Vorrichtung
zur Musiktonerzeugung. Diese Ausführungsform weist im Grunde
dieselbe Zusammensetzung wie die in 1 gezeigt
erste Ausführungsform
auf. Die selben Komponenten sind durch die selben Bezugszeichen
wie die der ersten Ausführungsform
bezeichnet, um das bessere Verständnis
der, zusätzlichen
Ausführungsformen
zu erleichtern. Der Speicher, wie zum Beispiel der ROM 102,
RAM 104 und eine Festplatte (nicht gezeigt), kann verschiedene
Daten, wie zum Beispiel Wellenformdaten, und verschiedene Programme, einschließlich des
Systemsteuerprogramms oder Grundprogramms, des Wellenformlese- oder
Wellenformerzeugungsprogramms und anderer Anwendungsprogramme, speichern.
Normalerweise speichert der ROM 102 diese Programme vorsorglich. Wenn
nicht kann jedoch jedes Programm in die Vorrichtung geladen werden.
Das geladene Programm wird an den RAM 104 übertragen,
um die CPU 101 in die Lage zu versetzen, das erfindungsgemäße System
der Vorrichtung zur Musiktonerzeugung zu betreiben. Auf diese Weise
können
neue Programme oder Nachfolgeversionen leicht im System installiert werden.
Zu diesem Zweck wird ein maschinenlesbares Medium, wie zum Beispiel
eine CD-ROM (Compact Disc Read Only Memory) 151, zum Installieren des
Programms verwendet. Die CD-ROM 151 wird in ein CD-ROM-Laufwerk 152 eingelegt,
um das Programm auszulesen und von der CD-ROM 151 in den RAM 104 durch
den Bus 115 herunterzuladen. Das maschinenlesbare Medium
kann statt einer CD-ROM 151 aus einer magnetischen Scheibe
oder einer optischen Scheibe bestehen.
-
Eine
Kommunikationsschnittstelle 153 ist mit einem externen
Servercomputer 154 durch ein Kommunikationsnetzwerk 155,
wie zum Beispiel ein LAN (Local Area Network), ein öffentliches
Telefonnetz und das INTERNET verbunden. Wenn der interne Speicher
die benötigten
Daten oder das benötigte Programm
nicht bereitstellt, wird die Kommunikationsschnittstelle 153 aktiviert,
um die Daten oder das Programm vom Servercomputer 154 zu
empfangen. Die CPU 101 übermittelt
eine Anfrage an den Servercomputer 154 durch die Schnittstelle 153 und
das Netzwerk 155. Im Ansprechen auf die Anfrage übermittelt
der Servercomputer die angeforderten Daten oder das Programm an
die Vorrichtung. Die übermittelten
Daten werden im Speicher gespeichert und vervollständigen dadurch
das Herunterladen.
-
Die
erfindungsgemäße Vorrichtung
zur Musiktonerzeugung kann durch einen Personalcomputer umgesetzt
werden, welcher mit den benötigten Daten
und Programmen eingerichtet ist. In so einem Fall werden die Daten
und Programme dem Benutzer mittels des maschinenlesbaren Mediums,
wie zum Beispiel der CD-ROM 151 oder einer Floppydisk,
zur Verfügung
gestellt. Das maschinenlesbare Medium enthält Anweisungen, die den Personalcomputer
veranlassen, das erfindungsgemäße Tonerzeugungsverfahren
durchzuführen,
wie es in Verbindung mit den vorangehenden Ausführungsformen beschrieben wurde.
Andernfalls kann der Personalcomputer die Daten und Programme durch
das Kommunikationsnetzwerk 155 empfangen.
-
Wie
oben beschrieben wird gemäß der vorliegenden
Erfindung, obwohl die Zahl der durch die Softwaretonquelle gleichzeitig
erzeugten Musiktöne reduziert
wird, der Wahlmodus zur Durchführung
des digitalen Filterprozesses für
die Tonqualität,
der Prozess zur Beigabe der Tonhöhe
und der Prozess zur Beigabe des Scratch-Effektes zur Verfügung gestellt. So
kann die Funktion, die durch die herkömmliche Softwaretonquelle nicht
erreicht worden ist, so realisiert werden, dass die Musiktonerzeugung
erreicht werden kann, die verschiedenen Absichten des Benutzers
entgegenkommt.
-
Gemäß der Erfindung
ist ferner in der Tonerzeugungsvorrichtung zum Lesen von digitalen
Wellenformdaten zur Widergabe eines entsprechenden Musiktons die
Detektionseinrichtung vorgesehen, um die Berührungsaktion des Benutzers
zu detektieren. Die Wellenformdaten werden entsprechend den modifizierten
Leseadressen ausgelesen, welche abhängend von der detektierten
Berührungsaktion
bestimmt werden. Auf diese Weise kann die erfindungsgemäße digitale
Musikvorrichtung im Ansprechen auf die Berührungsaktion des Benutzers
den natürlichen Scratch-Effekt
erzeugen, welcher bisher nur durch die herkömmliche analoge Musikvorrichtung
erhalten wurde. Ferner werden die Wellenformdaten aus einer vorbestimmten
obersten Adresse ausgelesen, wenn die Berührungsaktion eingeleitet wird.
So werden die Wellenformdaten immer von der vorbestimmten obersten
Adresse angeholt, wo auch immer der Benutzer die Scratch-Detektionseinrichtung
berührt.
So wird durch die Erfindung dieselbe wiederholte Scratch-Operation
realisiert, wie sie bei Verwendung einer analogen Schallplattenscheibe
durchgeführt wird,
bei der ein bestimmter Abschnitt der Schallplattenscheibe wiederholt
in Synchronisation mit einem Musikrhythmus wiedergegeben wird. Die
Ausgaben von der Detektionseinrichtung werden zudem unterschiedlich
verarbeitet, um eine Geschwindigkeit der Berührungsaktion zu detektieren.
Dann wird eine veränderliche
F-Zahl entsprechend der Berührungsaktion
bestimmt. Die F-Zahl wird an der Leseadresse zu Verwendung beim
Lesen der Wellenformdaten angesammelt. Auf diese Weise kann der Änderungsbereich
der F-Zahl bei einer beschränkten
Länge der
linearen Detektionseinrichtung ausgedehnt werden, wodurch eine breite
Scratch-Steuerung realisiert wird. Zusätzlich kann gemäß der Erfindung
der Scratch-Effekt auf eine frische Wellenform angewandt werden,
die von einer externen Quelle auf Echtzeitbasis eingegeben wird.
So kann der Benutzer einen gewünschten
Abschnitt des wiedergegebenen Musiktons während des Spielens der Musik scratchen.