-
Die
Erfindung betrifft einen Software-Synthesizer zum Erzeugen von mehrstimmigen
Audiosignalen als Reaktion auf in einer Datei enthaltenen Musikdaten
sowie ein Verfahren zum Erzeugen von derartiger Audiosignalen mit
einer variablen Anzahl von Stimmen. Ferner betrifft die Erfindung
ein System, welches insbesondere für eine paketorientierte Datenübertragung
ausgelegt ist und einen derartigen Software-Synthesizer umfasst.
-
Zum
Erzeugen von mehrstimmigen Audiosignalen mit Synthesizern sind mehrere
Realisierungen bekannt. So werden beispielsweise in Computern Soundkarten
für das
Erzeugen von Melodien oder Geräuschen
für Spiele,
Multimediaanwendungen oder zum Erzeugen und Abspielen von Musikstücken eingesetzt.
Ein Vorteil von derartigen Hardware-basierten Ausführungen
zur Erzeugung von Tönen
liegt darin, dass auch im Falle einer relativ hohen, insbesondere
einer maximalen Auslastung der Prozessoreinheit des Computers die
Klangqualität bzw.
die Anzahl an gleichzeitig erzeugbaren Tönen bzw. Stimmen relativ hoch
ist. Dennoch sind bei derartigen ausschließlich Hardware-basierten Ausführungen
wesentliche Nachteile darin zu sehen, dass die Kapazität der Soundkarte
lediglich für
die Klangerzeugung verwendet wird und eine weitere Nutzung dieser
durch den Computer nicht gegeben ist. Da die Soundkarte somit als
separate Einheit des Gesamtsystems im Hinblick auf eine Erweiterung
der Klangqualität
beschränkt
ist, ist auch durch eine Verbesserung der dem Computer zugrundeliegenden Software
im allgemeinen keine Verbesserung der Klangqualität der Soundkarte
zu erzielen.
-
Des
Weiteren ist in neueren Mobilfunkgeräten das Erzeugen von mehrstimmigen
(Klingel-)Tönen
ein wesentliches Anforderungs merkmal. Aufgrund der anwachsenden
Anforderungen an Mobilfunkgeräte
im Hinblick auf deren Multimediafähigkeit, gewinnt eine hochwertige
Wiedergabe von Musikdateien, bspw. als Klingeltöne oder als Hintergrundmusik
oder aber auch als akustische Unterstützung von Spielen immer mehr
an Bedeutung. Da sowohl die Speicherkapazität von Mobilfunkgeräten als
auch die Datenrate zum Herunterladen neuer Musikstücke direkt über die
Luftschnittstelle relativ stark begrenzt sind, werden die Musikdateien
häufig
im standardisierten MIDI (Musical Instrument Digital Interface)-Format
oder verwandten Formaten übertragen und
gespeichert. Insbesondere im Hinblick auf den benötigten Speicherplatz
stellt das MIDI-Format ein relativ effizientes Format dar, da in
derartigen MIDI-Dateien anstatt der kompletten Audiodaten lediglich
die Partiturinformationen einer Komposition enthalten sind. Im Gegensatz
zu Klanginformationen enthalten die MIDI-Daten daher nur Informationen zur
Ausführung.
Beispielsweise enthalten die MIDI-Daten Informationen darüber, welcher
Ton oder welche Tonfolge gespielt werden soll, zu welchem Zeitpunkt
ein Ton erklingt oder verstummt, ob ein erklingender Ton zusätzlich verstärkt werden
soll, sowie alle weiteren Anpassungen, welche im Hinblick auf das
zu spielende Musikstück
bzw. auf die dafür
zu simulierenden Musikinstrumente. Im Allgemeine werden MIDI-Daten
als serieller Datenstrom übertragen, welcher
in sogenannte MIDI-Nachrichten
unterteilt ist, wobei jede MIDI-Nachricht einen MIDI-Befehl bzw.
ein MIDI-Ereignis enthält.
Typische MIDI-Nachrichten
sind z.B. „Note
On" zum Anschlagen
eines Tons und „Note
Off" um einen Ton
ausklingen zu lassen.
-
Da
die MIDI-Daten keine Audiodaten sondern lediglich diese Partiturinformationen
enthalten, können
diese MIDI-Daten nicht direkt wiedergegeben werden, sondern müssen erst
mit Hilfe eines Synthesizers in Audio-Samples umgewandelt werden.
Erst diese Audio-Samples können
nach einer D/A-Wandlung und einer Verstärkung über einen Lautsprecher abgestrahlt
werden. Ein derartiger Synthesizer ist besonders auch dann erforderlich,
wenn hochwertige Klangeffekte in Echtzeit eingesetzt werden sollen, wie
dies beispielsweise bei einer Tastenquittung oder einer musikalischen
Untermalung von Spielen oder anderen JAVA-Applikationen der Fall
ist.
-
In
herkömmlichen
MIDI-Wiedergabesystemen wird ein MIDI-Synthesizer von einem Strom von MIDI-Nachrichten
gesteuert. Dabei werden die empfangenen MIDI-Nachrichten vom Synthesizer
decodiert und die in den Nachrichten enthaltenen Anweisungen, wie
beispielsweise das Erzeugen von Audio-Samples, die einem geforderten
Ton und einer entsprechenden Anschlagstärke und Lautstärke entsprechen,
ausgeführt.
-
Eine
wesentliche Eigenschaft eines Synthesizers ist seine Stimmzahl,
worunter die maximale Anzahl von Stimmen verstanden wird, die dieser gleichzeitig
erzeugen kann. Diese maximale Anzahl von gleichzeitig erzeugbaren
Stimmen entspricht der maximalen Anzahl von Tönen (Noten), die gleichzeitig
erklingen können.
Diese maximale Stimmzahl ist nicht standardisiert und hängt von
der Komplexität des
Arrangements der gesamten Anordnung ab. Ein Problem, das hierbei
entstehen kann ist darin zu sehen, dass eine MIDI-Datei mehr Stimmen
enthält
und somit mehr Stimmen zu erzeugen wären, als der für die Wiedergabe
bereitgestellte Synthesizer unterstützt. Dadurch kann es zu wesentlichen
Beeinträchtigungen
der Wiedergabe bzw. zu deutlich vernehmbaren Effekten, wie einem
plötzlichen
Aussetzen der zu spielenden Melodie, kommen. Um jedoch möglichst
viele MIDI-Dateien fehlerfrei wiedergeben zu können, ist es wünschenswert,
eine möglichst
hohe Stimmzahl zur Verfügung
stellen zu können.
Im allgemeinen kann durch eine höhere
Stimmzahl ein hochwertigeres Klangbild erzielt und eine Wiedergabe
von relativ komplexen und vielstimmigen Musikstücken durchgeführt werden.
-
Bekannt
sind verschiedene Ausführungsformen
von derartigen Synthesizern zum Erzeugen von mehrstimmigen Audiosignalen.
Eine rein Hardware-basierte Ausführung
eines Synthesizers bietet unabhängig
vom aktuellen Betriebszustand eines Gerätes (bspw. eines Mobilfunkgerätes) eine
relativ große
Stimmzahl. Ein erheblicher Nachteil dieser Realisierung ist, wie
bereits vorab erwähnt,
dass dieser Baustein (bspw. Soundkarte/Sound Chip) als eigener Baustein
ausgeführt
ist und für
weitere Funktionen des Gerätes
nicht verwendet werden kann. Ferner sind derartige Realisierungen
aufgrund des zusätzlich
benötigten
Bausteins mit weiteren Kosten verbunden.
-
Neben
der rein Hardware-basierten Ausführung
eines Synthesizers ist auch ein Audio-Synthesizer bekannt, welcher
sowohl einen Hardware-basierten als auch einen Software-basierten
Synthesizer in Kombination umfasst. Dieser, aus der
DE 696 08 292 T2 bekannte
Audio-Synthesizer, verarbeitet, abhängig von vorab festgelegten
Kriterien, Töne
einerseits im Hardware-Synthesizer
und andererseits im Software-Synthesizer. Die Erzeugung von Stimmen
im Software-Synthesizer ist dabei von einem Über- oder Unterschreiten eines
für die
Auslastung einer Prozessoreinheit (CPU) fest vorgegebenen Schwellenwertes
abhängig.
wird dieser Schwellenwert der Auslastung unterschritten, so werden
die Stimmen durch den Software-Synthesizer erzeugt. Übersteigt
die Auslastung der Prozessoreinheit diesen Schwellenwert, so werden
im Falle einer Überlastung
der Prozessoreinheit keine zusätzlichen
Stimmen mehr durch den Software-Synthesizer erzeugt, sondern alle
weiteren Töne,
welche nach dem Eintritt der Überlastung
durch einen „Note
On"-Befehl aktiviert werden
sollen, durch den Hardware-Synthesizer
des Audio-Synthesizers erzeugt. Abhängig vom Über- oder Unterschreiten des
Schwellwertes wird entschieden, ob die „Note On"-Befehle zur Tonerzeugung im Software-
oder Hardware-Synthesizer durchgeführt werden.
-
Der
bekannte Audio-Synthesizer ist durch die Kombination von Software-
und Hardware-Synthesizer in seinem Gesamtsystem sehr komplex und aufwändig. Die
Verarbeitung der Stimmen erfordert neben dem technischen Aufwand
eine relativ komplizierte Steuerung, welche Stimmen wo erzeugt werden
sollen und wann welcher Synthesizer für eine Stimmengenerierung herange zogen
wird. Des Weiteren ist besonders der Software-Synthesizer für sich allein betrachtet relativ
unflexibel im Hinblick auf die Möglichkeiten
einer einfachen und schnellen Änderung
der Anzahl der zu berechnenden Stimmen bezüglich einer sich ändernden
Rechenlast der CPU. Eine schnelles Ab- und Anschalten von aktiven
bzw. erklingenden Stimmen des Software-Synthesizers in Abhängigkeit
einer erforderlichen Rechenkapazität der CPU ist hier nicht gegeben.
Bereits erklingende Töne
können
bei dem bekannten Software-Synthesizer erst dann abgestellt werden,
wenn die entsprechenden Töne
mit einem Befehl „Note
Off" abgeschaltet
werden, also erst dann deaktiviert werden, wenn sie im wiederzugebenden
Musikstück
nicht mehr benötigt
werden. Ein Abschalten aufgrund einer erforderlichen höheren Rechenleistung
der CPU ist daher nicht möglich.
Besonders in modernen Echtzeitsystemen ist ein derartiges nicht-deterministisches
Verhalten relativ langsam und unakzeptabel im Hinblick auf die Echtzeitanforderungen.
In Echtzeitsystemen können
jederzeit Ereignisse eintreten, die unmittelbar eine relativ große Rechenkapazität erfordern,
welche mit dem Software-Synthesizer des bekannten Audio-Synthesizers nicht
bzw. erst zu einem unbestimmten Zeitpunkt erst verfügbar wären.
-
Daher
ist es Aufgabe der Erfindung, einen Software-Synthesizer zum Erzeugen von mehrstimmigen
Audiosignalen und ein Verfahren dazu zu schaffen, bei dem die Erzeugung
von Stimmen flexibel und effizient abhängig von der Auslastung einer Prozessoreinheit
durchgeführt
werden kann.
-
Diese
Aufgabe wird durch einen Software-Synthesizer zum Erzeugen von mehrstimmigen Audiosignalen,
welcher die Merkmale nach Patentanspruch 1 aufweist, und einem Verfahren
zum Erzeugen von Audiosignalen mit einer variablen Anzahl von Stimmen
mittels eines Software-Synthesizers, welches die Merkmale nach Patentanspruch
20 aufweist, gelöst.
-
Ein
erfindungsgemäßer Software-Synthesizer
ist zum Erzeugen von Audiosignalen bestehend aus einer variablen
Anzahl von Stimmen als Reaktion auf bereitgestellte Musikdaten ausgelegt.
Ein wesentlicher Gedanke der Erfindung ist es, dass der Software-Synthesizer
Mittel umfasst, welche die für einen
Datenverarbeitungsrahmen einer Prozessoreinheit zu einem Zeitpunkt
maximal erzeugbare Stimmzahl in Abhängigkeit der zu diesem Zeitpunkt gegebenen
Rechenlast der Prozessoreinheit auswerten und abhängig von
dieser maximal erzeugbaren Stimmzahl aktive und/oder freie Stimmen
des Software-Synthesizers an- oder abschalten. Die maximal erzeugbare
Stimmzahl ist dabei derart von der Auslastung der Prozessoreinheit
abhängig,
dass diese mit sinkender Auslastung der Prozessoreinheit zunimmt.
-
In
dem erfindungsgemäßen Software-Synthesizer
ist somit für
jeden Datenverarbeitungsrahmen eine Anzahl von zu erzeugenden Stimmen
bekannt, deren gleichzeitiges Erzeugen dahingehend optimiert ist,
dass für
jeden Datenverarbeitungsrahmen auch die jeweils zu einem Zeitpunkt
maximal erzeugbare Stimmzahl bekannt ist. Diese Zeitpunkt-abhängige maximal
erzeugbare Stimmzahl ist dabei in flexibler und dynamischer Weise
an die jeweilige Auslastung der Prozessoreinheit angepasst, indem die
maximal erzeugbare Stimmzahl Betriebszustand-abhängig schrittweise reduziert
oder erhöht wird.
Für jeden
Betriebszustand der CPU sind daher stets möglichst viele Stimmen durch
den Software-Synthesizer erzeugbar und die gleichzeitig zu erzeugende
Anzahl an Stimmen kann dadurch optimiert bzw. für jeden Datenverarbeitungsrahmen
maximiert werden. Damit lässt
sich in jedem Betriebszustand der Prozessoreinheit eine jeweils
maximal möglich
Anzahl der zu erzeugenden Stimmen generieren. Die Anpassung an die
zu einem Zeitpunkt gegebene Rechenleistung der Prozessoreinheit
erfolgt dadurch, dass die Mittel aktive und/oder freie Stimmen,
also stimmen die bereits erklingen bzw. Stimmen die nicht erklingen
aber die erklingen könnten gemäß der vorhandenen
Rechenkapazität
für jeden Datenverarbeitungsrahmen
der Prozessoreinheit an- oder abschalten. Die dynamische Anpassung
von Stimmen durch den Software-Synthesizer an die momentanen Gegebenheiten
kann daher Echtzeitanforderungen genügen.
-
Im
Vergleich zum Stand der Technik kann der erfindungsgemäße Software-Synthesizer
somit die Stimmzahl an die momentan erforderliche Rechenkapazität der Prozessoreinheit
durch An- oder Abschalten
der freien und/oder aktiven Stimmen zum erforderlichen Zeitpunkt
selbst dynamisch anpassen. Selbst bei relativ hoher Auslastung der
Prozessoreinheit ist es somit möglich,
mit dem erfindungsgemäßen Software-Synthesizer
zumindest noch eine verminderte Anzahl an Stimmen zu erzeugen, da
selbst in diesem Betriebszustand der Prozessoreinheit noch eine
minimal erzeugbare Stimmzahl bereitgestellt werden kann. Bei einer
relativ geringen Auslastung der Prozessoreinheit kann sogar eine
relativ große,
maximale erzeugbare Stimmzahl bereitgestellt werden, welche die
maximale Stimmzahl im Stand der Technik wesentlich übersteigen
kann. Das bedeutet, dass die gesamte Anzahl an implementierten Stimmen
im erfindungsgemäßen Software-Synthesizer
wesentlich größer sein
kann als im aus dem Stand der Technik bekannten Software-Synthesizer. Dadurch
kann erreicht werden, dass wesentlich mehr Töne, falls erforderlich, gleichzeitig
erklingen können und
somit eine deutlich verbesserte Klangqualität erzielt werden kann.
-
Die
Mittel können
derart ausgelegt sein, dass beispielsweise beim Abschalten von Stimmen
zunächst
geprüft
wird, ob freie Stimmen vorhanden sind und falls dies der Fall ist
werden diese freien Stimmen vor den aktiven Stimmen abgeschaltet.
Da die freien Stimmen keine erklingenden Töne wiedergeben, wird durch
deren Abschalten die Klangqualität nicht
beeinträchtigt.
Eine gute und unbeeinträchtigte Wiedergabe
kann somit auch bei einer aufgrund einer steigenden Rechenauslastung
der Prozessoreinheit verminderten maximal erzeugbaren Stimmzahl gewährleistet
werden.
-
In
vorteilhafter Weise umfassen die Mittel eine Mehrzahl an Synthesegeneratoren,
wobei jeder Synthesegenerator zum Erzeugen von Audio-Samples einer
Stimme ausgelegt ist.
-
Weiterhin
erweist es sich als vorteilhaft, wenn die Mittel eine Stimmenverwaltungs-Einheit umfassen,
welche die Musikdaten auswertet und gleichzeitig zu erzeugende Stimmen
abhängig
von der zum jeweiligen Zeitpunkt gegebenen, maximal erzeugbaren
Stimmzahl ermittelt und deren Generierung anstößt, indem entsprechende Befehle
an die ausführenden
Synthesegeneratoren geschickt werden. Bevorzugt ist es, wenn die
zu einem Zeitpunkt maximal erzeugbare Stimmzahl durch die zu diesem Zeitpunkt
bereitgestellte Anzahl von mit Stimmen belegbaren Synthesegeneratoren
gegeben ist. Es kann vorgesehen sein, dass die zu einem Zeitpunkt
bereitgestellte Anzahl von mit Stimmen belegbaren Synthesegeneratoren
durch die Summe der zu diesem Zeitpunkt freien Synthesegeneratoren
und der zu diesem Zeitpunkt aktiven Synthesegeneratoren gegeben
ist. Mittels der Synthesegeneratoren können dadurch die zu erzeugenden
Stimmen in Abhängigkeit
der Rechenkapazität
der Prozessoreinheit generiert werden, wobei die Synthesegeneratoren
durch die Stimmenverwaltungs-Einheit aufwandsarm und einfach konfiguriert
werden können.
-
Bei
einer vorteilhaften Ausführung
sind die vom jeweiligen Betriebszustand der Prozessoreinheit abhängigen,
maximal erzeugbaren Stimmzahlen jeweils in einer Tabelle als zweite
Parameterwerte gespeichert.
-
Es
kann vorgesehen sein, dass die Stimmenverwaltungs-Einheit derart
ausgebildet ist, dass für die
maximal erzeugbaren Stimmzahlen des vorhergehenden und des aktuellen
Datenverarbeitungsrahmen verglichen werden. Insbesondere ist die
Stimmenverwaltungs-Einheit derart ausgebildet, dass ein Vergleich
zwischen den entsprechenden zweiten Parameterwerten durchführbar ist.
Dadurch kann zu jedem Datenverarbeitungsrahmen eine maximal erzeugbare
Stimmzahl ermittelt werden und somit ein möglichst feine Rasterung der
möglichen
erzeugbaren Stimmzahl bereitgestellt werden, wodurch die Wiedergabe
der zu erzeugenden Stimmen bestmöglich
gewährleistet
werden kann. Die Übergänge können somit
sehr harmonisch und ohne nennenswerte Wahrnehmung von möglichen
Stimmenreduzierungen aufgrund erhöhter erforderlicher Rechenkapazität durchgeführt werden.
Eine Beeinträchtigung
der Klangqualität
kann dadurch minimiert werden.
-
In
vorteilhafter Weise ist jeder Synthesegenerator derart ausgelegt,
dass die momentane Lautstärke
der von einem Synthesegenerator erzeugten Stimme ermittelbar ist
und als Information an die Stimmenverwaltungs-Einheit übertragbar
ist. Es kann vorgesehen sein, dass die Lautstärkeinformation durch die Amplitude
eines Stimmensignals, insbesondere durch die Amplitude des Stimmensignals
am Ende der Zeitdauer eines Datenverarbeitungsrahmens gegeben ist.
In vorteilhafter Weise ist die Stimmenverwaltungs-Einheit derart
ausgelegt, dass bei einem aufgrund der zwischen dem vorhergehenden und
dem aktuellen Datenverarbeitungsrahmens veränderten Anzahl von mit Stimmen
belegbaren Synthesegeneratoren und/oder der veränderten Anzahl von zu erzeugenden
Stimmen erforderlichen Deaktivierens eines mit einer Stimme belegten
Synthesegenerators, derjenige Synthesegenerator deaktiviert wird,
welcher im vorhergehenden Datenverarbeitungsrahmen die leiseste
Stimme erzeugt. Durch diese vorteilhaften Weiterbildungen der Erfindung
kann eine besonders gute Anpassung der Klangqualität an die
sich ändernden
Gegebenheiten im Hinblick auf die erzeugbaren und zu erzeugenden
Stimmen in jedem Datenverarbeitungsrahmen bereitgestellt werden.
Die Wiedergabe kann dadurch im wesentlichen ohne wahrnehmbare Störungen der
Klangqualität durchgeführt werden.
Störende
Effekte wie bspw. abruptes Stimmenverstummen können dadurch ausgeschlossen
werden.
-
Vorteilhaft
ist es, wenn die Musikdaten MIDI-Daten einer MIDI-Datei sind.
-
Weiterhin
betrifft die Erfindung ein System welches zum Erzeugen von Audio-Samples
einen erfindungsgemäßen Software-Synthesizer oder
eine vorteilhafte Ausführungsform
davon umfasst.
-
In
vorteilhafter Weise umfasst das System eine Prozessoreinheit, insbesondere
einen digitalen Signalprozessor, welche den Software-Synthesizer abhängig von
den in einem Datenverarbeitungsrahmen enthaltenen Informationen
aktiviert bzw. ausführt.
Es kann auch vorgesehen sein, dass die Prozessoreinheit des Systems
eine Steuereinheit umfasst, welche den Betriebszustand der Prozessoreinheit überwacht
und den einem Betriebszustand zugeordneten Parameterwert an den
Software-Synthesizer übergibt.
-
Das
System kann als Gameboy oder als Spielekonsole oder als Computer,
beispielsweise als Personal Computer oder als tragbarer Computer
in Form eines Laptops oder Notebooks oder eines Organizers ausgeführt sein.
Es kann auch vorgesehen sein, dass das System als digitales Musikinstrument ausgebildet
ist und beispielsweise als Keyboard oder als Music Workstation ausgelegt
ist. Allgemein kann es als System zur Wiedergabe von Multimedia-Inhalten
ausgebildet sein, welches mobil oder batteriebetrieben ausgebildet
sein kann und drahtgebunden oder drahtlos zur Kommunikation ausgelegt
ist.
-
Das
System kann als Mobilfunkgerät
ausgebildet sein, das zur paketorientierten Datenübertragung
ausgelegt ist. Besonders bei der paketorientierten Datenübertragung
kann die Erfindung beonder vorteilhaft eingesetzt werden. Da in
diesem Fall nur für
eine relativ kurze Zeit die Rechenkapazität der Prozessoreinheit zur
Verarbeitung der Datenpakete erhöht
werden muss, ist es somit nut für
eine kurze Zeit erforderlich, die maximal erzeugbare Stimmzahl zu
reduzieren. Für
die restliche Zeit kann relativ viel Rechenkapazität zur Erzeugung
von Stimmen bereitgestellt werden, wodurch für eine relativ lange Zeit eine
hohe Anzahl an Stimmen gleichzeitig erzeugt werden kann und somit
sehr komplexe und vielstimmige Musikstücke mit einer hohen Klangqualität wiedergegeben
werden können.
-
Bei
einem erfindungsgemäßen Verfahren werden
Audiosignale bestehend aus einer variablen Anzahl von Stimmen als
Reaktion auf bereitgestellte Musikdaten mittels eines Software-Synthesizers erzeugt.
Ein wesentlicher Gedanke der Erfindung ist es, dass die für einen
Datenverarbeitungsrahmen einer Prozessoreinheit zu einem Zeitpunkt
maximal erzeugbare Stimmzahl in Abhängigkeit der zu diesem Zeitpunkt
gegebenen Rechenkapazität
der Prozessoreinheit bestimmt wird und abhängig von dieser maximal erzeugbaren
Stimmzahl aktive und/oder freie Stimmen an- oder abgeschaltet werden.
-
Dadurch
kann eine flexible und optimierte Erzeugung von in einem Datenverarbeitungsrahmen enthaltenen
Stimmen eines Musikstücks
erfolgen. In besonders effizienter Weise kann dadurch eine von dem
Betriebszustand abhängige
dynamische Modifikation der jeweils zu erzeugenden und der erzeugbaren
Stimmzahl durchgeführt
werden. Im wesentlichen kann somit für jeden Betriebszustand der
Prozessoreinheit eine mehr oder weniger große Anzahl an von erzeugbaren
Stimmen bereitgestellt werden, welche durch den Software-Synthesizer
abhängig
von den empfangenen Musikdaten zur Erzeugung der Stimmen verwendet
werden. Durch das An- oder Abschalten der aktiven und/oder freien
Stimmen unmittelbar als Reaktion auf die sich ändernde Rechenkapazität der Prozessoreinheit
kann das Verfahren auch Echtzeitanforderungen genügen.
-
Die
gegebenenfalls vorhandenen freien Stimmen werden bevorzugter Weise
vor den aktiven Stimmen an- oder abgeschaltet. Beispielsweise kann bei
einem erforderlichen Abschalten überprüft werden,
ob freie Stimmen vorhanden sind. Ist dies der Fall, werden zunächst diese
freie Stimmen abgeschaltet. Reicht dies nicht aus, so werden zusätzlich aktive
Stimmen abgeschaltet. Dadurch kann erreicht werden, dass die Klanqualität möglichst
wenig beeinträchtigt
wird. Entsprechend kann dies für
ein Anschalten erfolgen, indem zunächst freie Stimmen bereitgestellt
werden, die aktiviert werden können.
-
Vorteilhaft
ist es, wenn die Audio-Samples von zu erzeugenden Stimmen eines
Datenverarbeitungsrahmen mittels einer Mehrzahl an Synthesegeneratoren
erzeugt werden.
-
Weiterhin
erweist es sich vorteilhaft, wenn die Musikdaten mittels einer Stimmenverwaltungs-Einheit
ausgewertet werden und alle gleichzeitig zu erzeugenden bzw. erzeugbaren
Stimmen abhängig
von der zum jeweiligen Zeitpunkt gegebenen, maximal erzeugbaren
Stimmzahl generiert werden, indem die von der durch die maximal
erzeugbare Stimmzahl gegebene Anzahl von mit Stimmen belegbaren
Synthesegeneratoren benötigte
Anzahl aktiviert wird.
-
Es
kann vorgesehen sein, dass die vom jeweiligen Betriebszustand der
Prozessoreinheit abhängigen,
maximal erzeugbaren Stimmzahlen in einer Tabelle jeweils als zweite
Parameterwerte gespeichert werden. Bevorzugt ist es, wenn die maximal
erzeugbaren Stimmzahlen des vorhergehenden und des aktuellen Datenverarbeitungsrahmens,
insbesondere die entsprechenden zweiten Parameterwerte, miteinander
verglichen werden. Dadurch kann eine besonders schnelle Anpassung
der Stimmzahl an die momentan gegebene Situation im Hinblick auf das
An- oder Abschalten von aktiven und/oder freien Stimmen erfolgen.
-
Es
kann vorgesehen sein, dass als Lautstärkeinformation die Amplitude
des Stimmensignals, insbesondere die Amplitude am Ende der Zeitdauer eines
Datenverarbeitungsrahmens, bestimmt wird. Bevorzugt ist es, wenn
bei einem aufgrund der zwischen dem vorhergehenden und dem aktuellen
Datenverarbeitungsrahmen ermittelten veränderten, maximal erzeugbaren
Stimmzahl und/oder der veränderten
Anzahl an zu erzeugenden Stimmen erforderlichen Deaktivierens einer
erzeugten Stimme, diejenige erzeugte Stimme abgeschaltet wird, welche
im vorhergehenden Datenverarbeitungsrahmen, insbesondere am Ende
der Zeitdauer des vorhergehenden Datenverarbeitungsrahmens, die
leiseste der erzeugten Stimme war. Es kann vorgesehen sein, dass diejenige
erzeugte Stimme, welche deaktiviert wird, abgeschaltet wird oder über eine
vorgegebene Zeitdauer, insbesondere über die gesamte Zeitdauer des aktuellen
Datenverarbeitungsrahmens, ausgeblendet wird. Diese bevorzugten
Ausgestaltungen des erfindungsgemäßen Verfahrens ermöglichen
eine besonders effektive Anpassung der Stimmzahl an die zu einem
Zeitpunkt gegebenen Systembedingungen. Die Klangqualität kann besonders
harmonisch und kontinuierlich an die jeweiligen Bedingungen angepasst
werden und die Stimmen bestmöglich
wiedergegeben werden.
-
Es
kann vorgesehen sein, dass der die zu deaktivierende Stimme generierende
Synthesegenerator abgeschaltet wird oder über eine vorgegebene Zeitdauer,
insbesondere der gesamten Zeitdauer des aktuellen Datenverarbeitungsrahmens,
ausgeblendet wird. Dies ermöglicht
eine weitere Verbesserung der Klanqualität, da somit ein abruptes Verstummen einer
Stimme verhindert werden kann.
-
Weitere
vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben.
-
Nachfolgend
wird ein Ausführungsbeispiel der
Erfindung anhand schematischer Zeichnungen näher erläutert. Die einzige Figur zeigt
ein Blockschaltbild eines erfindungsgemäßen Software-Synthesizers
-
In
dieser 1 ist ein digitaler Signalprozessor DSP in einem
Mobilfunkgerät
gezeigt, welcher eine Ablaufsteuereinheit AS umfasst. Die Ablaufsteuereinheit
AS hat Zugriff auf eine Tabelle T. In der Tabelle T sind die für die unterschiedlichen
Auslastungsgrade bzw. Betriebszustände des digitalen Signalprozessors
DSP jeweils maximal erzeugbaren Stimmzahlen als zweite Parameterwerte
abgespeichert.
-
Des
Weiteren umfasst der digitale Signalprozessor DSP einen erfindungsgemäßen Software-Synthesizer
SS, welcher von der Ablaufsteuereinheit AS kontrolliert und parametriert
wird. Der Software-Synthesizer SS weist eine Stimmenverwaltungs-Einheit SV und eine
Anzahl N (N > 1) an
Synthesegeneratoren SG auf, wobei die Stimmenverwaltungs-Einheit
SV die Synthesegeneratoren SG parametriert und zur Erzeugung von
Audiosamples aktiviert bzw. deaktiviert. Es kann auch vorgesehen
sein, dass die Ablaufsteuereinheit AS teilweise oder ganz als externe
Einheit außerhalb
des digitalen Signalprozessors DSP realisiert ist. Die Ausgangssignale AUS
der Synthesegeneratoren SG werden summiert und bilden nach der Summation
das zu erzeugende mehrstimmige digitale Audiosignal ASI.
-
Abhängig von
der Anzahl an bereitgestellten implementierten Synthesegeneratoren
SG kann eine in vielfältiger
Weise gestaltete Untergliederung einer Betriebszustands-abhängigen,
maximal erzeugbaren Stimmzahl ermöglicht werden. Es kann beispielsweise
für jede
prozentuale Wertänderung
des Auslastungsgrades des digitalen Signalprozessors DSP eine unterschiedliche,
maximal erzeugbare Stimmzahl ermöglicht
werden. Es kann beispielsweise aber auch vorgesehen sein, dass nur
bei einer Änderung der
Auslastung des digitalen Signalprozessors DSP um mehr als fünf oder
zehn Prozentpunkte eine Änderung
der maximal erzeugbaren Stimmzahl erfolgt. Die maximal erzeugbare
Stimmzahl ist durch die Betriebszustands-abhängige Anzahl an mit Stimmen belegbaren
Synthesegeneratoren SG festgelegt.
-
Die
mit Stimmen belegbare Anzahl an Synthesegeneratoren SG ist durch
die Summe der zu diesem jeweiligen Betriebzustand vorhandenen freien
und aktiven Synthesegeneratoren SG gegeben. Als freie Synthesegeneratoren
SG werden hierbei jene Synthesegeneratoren SG bezeichnet, welche vom
Auslastungsgrad des digitalen Signalprozessors DSP aus betrachtet,
mit jeweils einer Stimme belegt werden könnten, aber aufgrund der zu
diesem Zeitpunkt zu erzeugenden Stimmen für das Erzeugen einer Stimme
nicht benötigt
werden. Als aktiv werden diejenige Synthesegeneratoren SG bezeichnet,
welche zum gegenwärtig
betrachteten Zeitpunkt eine zu erzeugende Stimme generieren welche
erklingt. Generell ist die Gesamtzahl an implementierten Synthesegeneratoren
SG zu einem Zeitpunkt durch die Summe der aktiven, der freien und
der zu diesem betrachteten Zeitpunkt gesperrten Synthesegeneratoren
SG gegeben. Als gesperrt werden dabei jene Synthesegeneratoren SG
bezeichnet, welche aufgrund des momentanen Betriebszustandes des
digitalen Signalprozessors DSP nicht mit einer Stimme belegbar sind.
Abhängig
vom Betriebszustand des digitalen Signalprozessors DSP kann somit
maximal die Gesamtzahl an implementierten Synthesegeneratoren zum
Erzeugen von Stimmen herangezogen werden. Die maximal implementierte,
d.h. physikalisch vorhandene Anzahl an Synthesegeneratoren SG, muss
für eine
konkrete Implementierung entsprechend der maximal (d.h. im Betriebszustand
mit der geringsten Last) verfügbaren
Ressourcen (d.h. Speicher und Rechenleistung) dimensioniert werden.
-
Beim
erfindungsgemäßen Software-Synthesizer
SS ist der Funktionsumfang somit derart erweitert, dass durch die
dynamische Modifikation der maximal erzeugbaren Stimmzahl diese
jederzeit verändert
werden kann, wodurch generell die durch den Software-Synthesizer
SS zu erzeugende Stimmzahl vom Betriebszustand des digitalen Signalprozessors DSP
abhängig
optimiert werden kann und situationsabhängig für jeden Datenverarbeitungsrahmen
jeweils maximiert wird. Die aktiven und/oder freien Stimmen werden
dabei als unmittelbare Reaktion auf eine sich in aufeinanderfolgenden
Datenverarbeitungsrahmen der Prozessoreinheit ändernde Rechenkapazität der Prozessoreinheit
an- oder abgeschaltet. Dieses Ändern
bzw. Anpassen der zu erzeugenden Stimmzahl an die jeweils gegebene,
maximal erzeugbare Stimmzahl erfolgt in vorteilhafter Weise auch
bei einer laufenden Wiedergabe einer MIDI-Datei möglichst
unhörbar,
so dass derartige Übergänge zwischen
Betriebszuständen
vom Zuhörer
im allgemeinen nicht bemerkt werden und eine wesentlich verbesserte
Klangqualität
erzielt werden kann. Eine wesentliche Verbesserung wird bei der
paketorientierten Datenübertragung
erzielt, da hier nur zu den relativ kurzen Zeitdauern, in denen
eine Verarbeitung eines Datenpakets durchgeführt wird, eine höhere Auslastung
des digitalen Signalprozessors DSP erforderlich ist. Dies bedeutet,
dass in dieser Zeitdauer aufgrund der erhöhten Auslastung die maximal
erzeugbare Stimmzahl reduziert wird. Da jedoch diese Zeitdauer einer
Paketverarbeitung, wie erwähnt,
relativ kurz ist, muss die maximal erzeugbare Stimmzahl und damit
die Anzahl von mit Stimmen belegbaren Synthesegeneratoren SG (freie
und aktive) nur für eine
relativ kurze Zeitdauer reduziert werden und kann anschließend sofort
wieder erhöht
werden. In Betriebszuständen
des digitalen Signalprozessors DSP mit relativ geringer Auslastung,
kann somit eine relativ hohe maximal erzeugbare Stimmzahl erreicht bzw.
eine relativ große
Anzahl an mit Stimmen belegbaren Synthesegeneratoren SG bereitgestellt
werden. Generell ergibt dabei die Summe der Ausgangssignale der
aktiven Synthesegeneratoren SG das zu ertönende Musikstück in Form
eines digital codierten Audiosignals.
-
Die
Funktionsweise des in 1 dargestellten DSP wird nachfolgend
erläutert.
Der digitale Signalprozessor DSP verarbeitet Daten in einer regelmäßigen Rahmenstruktur.
Die Ablaufsteuereinheit AS ruft entsprechend einem Anforderungsprofil
Module des Mobilfunkgerätes
auf, mittels denen die zur Abarbeitung von Aufgaben benötigten Algorithmen durchgeführt werden.
In entsprechender Weise wird somit auch der Software-Synthesizer SS von
der Ablaufsteuereinheit AS in regelmäßigen Zeitabständen aufgerufen.
Der Software-Synthesizer SS liest die in dem aktuellen Datenverarbeitungsrahmen
enthaltenen MIDI-Daten, welche in einer MIDI-Datei im Mobilfunkgerät gespeichert
sind, und generiert auf der Basis dieser Musikdaten die Audio-Samples
der für
das jeweilige Musikstück
erforderlichen Stimmen dieses Datenverarbeitungsrahmens. Die Ablaufsteuereinheit
AS überprüft den aktuellen
Betriebszustand des digitalen Signalprozessors DSP und liest aus
der Tabelle T einen diesem Betriebszustand zugeordneten zweiten
Parame terwert aus, welcher die für
diesen aktuellen Betriebszustand maximal erzeugbare Stimmzahl als
Information enthält
und von der Ablaufsteuereinheit AS an den Software-Synthesizer SS übertragen
wird.
-
Das
Lesen und Interpretieren der MIDI-Nachrichten wird mittels der Stimmenverwaltungs-Einheit
SV des Software-Synthesizers
SS durchgeführt.
Anhand der durch den zweiten Parameterwert an die Stimmenverwaltungs-Einheit
SV übermittelte,
maximal erzeugbare Stimmzahl bzw. Anzahl von mit Stimmen belegbaren
Synthesegeneratoren SG und der für
diesen Datenverarbeitungsrahmen zu erzeugenden Stimmzahl des Musikstücks, ordnet
die Stimmenverwaltungs-Einheit SV anzuschlagende Noten den freien
oder den aktiven Synthesegeneratoren SG zu und konfiguriert diese mit
Noten belegten Synthesegeneratoren SG. Die Stimmenverwaltungs-Einheit
SV vergleicht dabei den aus dem vorhergehenden Datenverarbeitungsrahmen übermittelten
zweiten Parameterwert mit dem aus dem aktuellen Datenverarbeitungsrahmen übermittelten
zweiten Parameterwert und ermittelt durch Differenzbildung, ob sich
die maximal erzeugbare Stimmzahl verändert hat oder nicht.
-
Wird
beispielsweise angenommen, dass die zu erzeugende Stimmzahl im Vergleich
zwischen dem vorhergehenden und dem aktuellen Datenverarbeitungsrahmen
konstant bleibt, und hat sich die maximal erzeugbare Stimmzahl zwischen
dem vorhergehenden und dem aktuellen Datenverarbeitungsrahmen ebenfalls
nicht verändert,
so sind keine weiteren Maßnahmen
im Hinblick auf ein Abschalten eines aktiven Synthesegenerators
SG erforderlich. Hat sich jedoch bei unveränderter zu erzeugender Stimmzahl
die maximal erzeugbare Stimmzahl zwischen dem vorhergehenden und
dem aktuellen Datenverarbeitungsrahmen erhöht, so werden einfach zusätzliche
freie Synthesegeneratoren SG entsprechend der Erhöhung der
maximal erzeugbaren Stimmzahl freigegeben. Dies kann bis hin zur
Gesamtzahl an implementierten Synthesegeneratoren SG erfolgen.
-
Als
weiterer Fall ist aber auch möglich,
dass bei unveränderter
zu erzeugender Stimmzahl die maximal erzeugbare Stimmzahl zwischen
dem vorhergehenden und dem aktuellen Datenverarbeitungsrahmen abnimmt.
In dieser Situation ist zwischen zwei nachfolgenden Szenarien zu
unterscheiden. Zum einen kann hier die Situation eintreten, dass mindestens
so viele Synthesegeneratoren SG frei sind, wie dies der zahlenmäßigen Verminderung
der maximal erzeugbaren Stimmzahl im Vergleich zwischen dem vorhergehenden
und dem aktuellen Datenverarbeitungsrahmen entspricht. Hierbei wird
eine der Verminderung der maximal erzeugbaren Stimmzahl entsprechende
Anzahl von freien Synthesegeneratoren SG gesperrt, welche somit
nicht mehr mit Stimmen belegt werden dürfen.
-
Zum
anderen kann jedoch auch der Fall eintreten, dass die Verminderung
der maximal erzeugbaren Stimmzahl zwischen dem vorhergehenden und
dem aktuellen Datenverarbeitungsrahmen zahlenmäßig größer ist, als die Anzahl der
freien Synthesegeneratoren SG. In diesem Fall sind neben dem Sperren
aller freien Synthesegeneratoren SG auch aktive Synthesegeneratoren
SG abzuschalten bzw. zu deaktivieren. Hierfür sind geeignete Kriterien
heranzuziehen. Im Ausführungsbeispiel
werden beispielsweise diejenigen aktiven Synthesegeneratoren SG
abgeschaltet bzw. deaktiviert, welche die leisesten Töne bzw.
Stimmen erzeugen. Die Lautstärkeinformation
wird dabei von jedem der Synthesegeneratoren SG an die Stimmenverwaltungs-Einheit SV übertragen.
Als Lautstärkeinformation
wird die Amplitude des jeweils erzeugten Tons am Ende der Zeitdauer
des vorhergehenden Datenverarbeitungsrahmens herangezogen. In vorteilhafter
Weise werden die ermittelten aktiven Synthesegeneratoren SG, welche
die leisesten Stimmen erzeugen, nicht abrupt abgeschaltet, sondern
die von ihnen erzeugten Töne werden über eine
vorgegebene Zeitdauer hinweg ausgeblendet. Das Ausblenden wird dabei
bevorzugt durch eine kontinuierliche Reduzierung der Lautstärke des
erzeugten Tons über
die gesamte Zeitdauer des aktuellen Datenverarbeitungsrahmens durchgeführt. In
diesem Fall wird die im aktuellen Datenver arbeitungsrahmen vorhandene,
maximal erzeugbare Stimmzahl nicht sofort erreicht, sondern wird
erst im nachfolgenden Datenverarbeitungsrahmen erzielt.
-
Prinzipiell
ist diese vorab erläuterte
Vorgehensweise auch bei anderen Voraussetzungen heranzuziehen. Beispielsweise
auch dann, wenn sich die zu erzeugende Stimmzahl oder die zu erzeugende
sowie die maximal erzeugbare Stimmzahl zwischen dem vorhergehenden
und dem aktuellen Datenverarbeitungsrahmen verändert. In derartigen Fällen ist
jeweils darauf zu achten, wie die Ausgangsbedingungen im vorhergehenden
Datenverarbeitungsrahmen waren, bspw. ob die zu erzeugende Stimmzahl
gleich, größer oder
kleiner der maximal erzeugbaren Stimmzahl war. Ausgehend von diesen
jeweils zugrundeliegenden Situationen, kann dann die Situation im
aktuellen Datenverarbeitungsrahmen entsprechend den oben ausgeführten Erläuterungen analysiert
werden.
-
Als
weitere Ausgangsvoraussetzung kann beispielsweise im vorhergehenden
Datenverarbeitungsrahmen die Anzahl der zu erzeugenden Stimmen gleich
der Anzahl an maximal erzeugbaren Stimmen sein, so dass alle freien
Synthesegeneratoren SG aktiv und keine weiteren freien Synthesegeneratoren
SG vorhanden sind. Ist nun im aktuellen Datenverarbeitungsrahmen
im Vergleich zum vorhergehenden Datenverarbeitungsrahmen die Anzahl
der zu erzeugenden Stimmen unverändert
und die Anzahl der maximal erzeugbaren Stimmen unverändert, so
können
weiterhin alle zu erzeugenden Stimmen durch die bereits aktiven
Synthesegeneratoren generiert werden. Tritt hingegen die Situation
ein, dass im aktuellen Datenverarbeitungsrahmen im Vergleich zum
vorhergehenden Datenverarbeitungsrahmen die maximal erzeugbare Stimmzahl
unverändert
bleibt und sich die Anzahl der zu erzeugenden Stimmen verringert,
so sind neben den aktiven Synthesegeneratoren SG zusätzliche
freie Synthesegeneratoren SG vorhanden, die nicht mit Noten belegt
sind, aber für
eine derartige Notenbelegung aufgrund des Betriebszustands des digitalen
Signalprozessors DSP freigegeben wären.
-
Entsprechendes
gilt für
den Fall, dass die zu erzeugende Stimmzahl im Vergleich zwischen
dem vorhergehenden und dem aktuellen Datenverarbeitungsrahmen gleich
bleibt und die maximal erzeugbare Stimmzahl zunimmt. Auch in diesem
Fall werden im aktuellen Datenverarbeitungsrahmen einfach zusätzlich freie
Synthesegeneratoren SG bereitgestellt.
-
Es
kann jedoch auch der Fall eintreten, dass im Vergleich zwischen
dem aktuellen Datenverarbeitungsrahmen und dem vorhergehenden Datenverarbeitungsrahmen
die Anzahl der maximal erzeugbaren Stimmen und somit die Anzahl
an mit Stimmen belegbaren Synthesegeneratoren SG gleich bleibt und
sich die Anzahl von zu erzeugenden Stimmen erhöht. Unter der Berücksichtigung
der oben beispielhaft gemachten Annahme, dass im vorhergehenden Datenverarbeitungsrahmen
die maximal erzeugbare Stimmzahl gleich der zu erzeugenden Stimmzahl
ist, ist in diesem Fall kein freier Synthesegenerator SG verfügbar, und
es kann ein bereits aktiver Synthesegenerator SG überladen
werden oder ein neu anzuschlagender Ton bzw. eine neu zu erzeugende
Stimme ignoriert werden. Ob und falls ja welcher aktive Synthesegenerator
SG überladen
wird oder welche neu zu erzeugende Stimme ignoriert wird, ist anhand von
geeigneten Kriterien zu entscheiden.
-
Ausgehend
von der oben als Beispiel angeführten
Situation, dass im vorhergehenden Datenverarbeitungsrahmen die Anzahl
der zu erzeugenden Stimmen gleich der maximal erzeugbaren Stimmzahl ist,
kann auch die Situation eintreten, dass sich im Vergleich zum aktuellen
Datenverarbeitungsrahmen die maximal erzeugbare Stimmzahl vermindert.
Ist im aktuellen Datenverarbeitungsrahmen im Vergleich zum vorhergehenden
Datenverarbeitungsrahmen zusätzlich
die Anzahl der zu erzeugenden Stimmen unverändert, so ist bzw. sind wie
bereits vorab erläutert,
die neu zu erzeugende Stimme bzw. zu erzeugenden Stimmen zu Ignorieren
oder durch Überladen eines
oder mehrerer aktiver Synthesegeneratoren SG zu generieren.
-
Ausgehend
vom oben angenommenen Fall, dass im vorhergehenden Datenverarbeitungsrahmen die
zu erzeugende Stimmzahl gleich der maximal erzeugbaren Stimmzahl
ist, kann folglich auch die Situation eintreten, dass im Vergleich
zwischen dem vorhergehenden und dem aktuellen Datenverarbeitungsrahmen
die maximal erzeugbare Stimmzahl abnimmt und die zu erzeugende Stimmzahl
zunimmt. Auch in diesem Fall übersteigt
im aktuellen Datenverarbeitungsrahmen somit die zu erzeugende Stimmzahl
die maximal erzeugbare Stimmzahl. Dies führt auch hier dazu, dass eine
oder mehrere zu erzeugende Stimmen ignoriert werden müssen oder
aber bereits generierte Noten ausgeblendet werden, indem aktive
Synthesegeneratoren SG überladen
werden.
-
Unter
der ursprünglich
gemachten Annahme, dass im vorhergehenden Datenverarbeitungsrahmen
die maximal erzeugbare Stimmzahl der zu erzeugenden Stimmzahl entspricht,
ist ein weiterer Fall dahingehend denkbar, dass im Vergleich zwischen
dem vorhergehenden und dem aktuellen Datenverarbeitungsrahmen sowohl
die maximal erzeugbare Stimmzahl als auch die zu erzeugende Stimmzahl
abnimmt. Hierbei ist nun zu unterscheiden, ob die zahlenmäßige Verminderung
der maximal erzeugbaren Stimmzahl gleich der zahlenmäßigen Verminderung
der zu erzeugenden Stimmzahl oder aber diese kleiner oder größer ist.
Ist die zahlenmäßige Änderung
gleich, so sind keine weiteren Maßnahmen im Hinblick auf ein
Abschalten von Synthesegeneratoren SG erforderlich. Ist die zahlenmäßige Verminderung
der maximal erzeugbaren Stimmzahl kleiner als die zahlenmäßige Verminderung
der zu erzeugenden Stimmzahl, so werden ein oder mehrere der im
vorhergehenden Datenverarbeitungsrahmen aktiven Synthesegeneratoren
SG im aktuellen Datenverarbeitungsrahmen als freie Synthesegeneratoren
SG bereitgestellt. Ist jedoch die zahlenmäßige Verminderung der maximal
erzeugbaren Stimmzahl größer als die
zahlenmäßige Verminderung
der zu erzeugenden Stimmzahl, so ist im aktuellen Datenverarbeitungsrahmen
wiederum ein Ignorieren von zu erzeugenden Stimmen oder ein Ausblenden
von bereits generierten Stimmen durch Überladen von einem oder mehreren
aktiven Synthesegeneratoren SG erforderlich.
-
In
entsprechender Weise zu den vorab erläuterten Fällen ist dann zu verfahren,
wenn ausgehend von der im Ausführungsbeispiel
angenommenen Situation, dass im vorhergehenden Datenverarbeitungsrahmen
die maximal erzeugbare Stimmzahl gleich der zu erzeugenden Stimmzahl
ist, und im Vergleich zwischen dem vorhergehenden und dem aktuellen
Datenverarbeitungsrahmen eine zahlenmäßige Erhöhung der maximal erzeugbaren
Stimmzahl eintritt. Auch hier sind dann ausgehend von diesen beispielhaften
Annahmen wiederum die Fälle
zu unterscheiden, in denen keine Änderung der zu erzeugenden
Stimmzahl oder aber eine Erhöhung
der zu erzeugenden Stimmzahl oder aber eine Verminderung der zu
erzeugenden Stimmzahl zwischen dem vorhergehenden und dem aktuellen
Datenverarbeitungsrahmen eintritt.
-
Prinzipiell
kann ein Ignorieren oder ein Ausblenden einer zu erzeugenden Note
oder einer zu erzeugenden Stimme immer dann durchgeführt werden,
wenn die zwischen dem vorhergehenden und dem aktuellen Datenverarbeitungsrahmen
auftretende Änderung
der maximal erzeugbaren Stimmzahl und/oder der zu erzeugenden Stimmzahl
ergeben, dass die zu erzeugende Stimmzahl des aktuellen Datenverarbeitungsrahmen
die maximal erzeugbare Stimmzahl des aktuellen Datenverarbeitungsrahmen übersteigt.
Dies gilt analog auch für
den Fall, dass die maximal erzeugbare Stimmzahl und die zu erzeugende
Stimmzahl im Vergleich zwischen dem vorhergehenden und dem aktuellen
Datenverarbeitungsrahmen unverändert
bleibt und im vorhergehenden Datenverarbeitungsrahmen die maximal
erzeugbare Stimmzahl die dort zu erzeugende Stimmzahl unterschritten
hat und bereits im vorhergehenden Datenverarbeitungsrahmen ein Ignorieren
oder Ausblenden von Stimmen erforderlich war.
-
Wesentlich
für die
Erfindung ist, dass die maximal erzeugbaren Stimmzahl sofort an
die sich zu einem bestimmten Zeitpunkt ändernde Rechenkapazität der Prozessoreinheit
flexibel angepasst werden kann. Situationsabhängig werden dabei die Anzahlen der
aktiven und/oder freien Synthesegeneratoren bzw. die aktiven und/oder
freien Stimmen reduziert oder erhöht.
-
Im
erfindungsgemäßen Software-Synthesizer
SS sind die Synthesegeneratoren SG derart ausgelegt, dass die Lautstärke der
jeweils erzeugten Stimme einfach und aufwandsarm zur Verfügung gestellt
werden kann, da die jeweiligen Synthesegeneratoren SG die Stimmen
direkt erzeugen und dadurch im wesentlichen ohne Zusatzaufwand ein
Ermitteln und Übertragen
der Lautstärkeinformation
ermöglicht werden
kann.
-
Durch
das beschriebene erfindungsgemäße Verfahren
und den erfindungsgemäßen Software-Synthesizer
SS kann in wesentlich vereinfachter Weise stets eine vom Betriebszustand
der Prozessoreinheit abhängige
maximal erzeugbare Stimmzahl als unmittelbare Reaktion auf eine
sich ändernde Auslastung
der Prozessoreinheit bereitgestellt werden. Besonders bei der paketorientierten
Datenübertragung
kann somit aufgrund der Tatsache, dass nicht in jedem Datenverarbeitungsrahmen
der Prozessoreinheit eine Änderung
der maximal erzeugbaren Stimmzahl aufgrund einer Betriebszustandänderung
des Prozessors DSP wegen einer Verarbeitung eines Datenpakets zu
erwarten ist, eine generell relativ hohe maximal erzeugbare Stimmzahl
gewährleistet
werden. Lediglich in relativ kurzen Zeitdauern in denen ein Datenpaket
verarbeitet werden muss, ist es erforderlich, die maximal erzeugbare
Stimmzahl für
eine kurze Zeitdauer (Zeitdauer der Paketverarbeitung) zu reduzieren.
In dynamischer Weise ist dadurch die zu einem jeweiligen Zeitpunkt
gegebene, maximal erzeugbare Stimmzahl an den Auslastungsgrad der
Prozessoreinheit DSP angepasst, und für jeden Datenverarbeitungsrahmen
kann eine dynamisch optimierte Generierung von zu erzeugenden Stimmen
durch Bereitstellen stets der zu dem jeweiligen Zeitpunkt maximal
möglichen,
erzeugbaren Stimmzahl gewährleistet
werden. Diese maximal erzeugbare Stimmzahl wird durch die Anzahl
der zu diesem Zeitpunkt mit Stimmen belegbaren Synthesegeneratoren
SG gegeben, welche sich aus der Summe der freien und der aktiven
Synthesegeneratoren SG ergibt.