DE102008032116B4 - Klanggenerator, elektronische Vorrichtung mit einem Klanggenerator, und Verfahren zum Steuern eines Klanggenerators - Google Patents
Klanggenerator, elektronische Vorrichtung mit einem Klanggenerator, und Verfahren zum Steuern eines Klanggenerators Download PDFInfo
- Publication number
- DE102008032116B4 DE102008032116B4 DE102008032116A DE102008032116A DE102008032116B4 DE 102008032116 B4 DE102008032116 B4 DE 102008032116B4 DE 102008032116 A DE102008032116 A DE 102008032116A DE 102008032116 A DE102008032116 A DE 102008032116A DE 102008032116 B4 DE102008032116 B4 DE 102008032116B4
- Authority
- DE
- Germany
- Prior art keywords
- note
- volume
- sound
- priority
- notes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/002—Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
- G10H7/004—Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof with one or more auxiliary processor in addition to the main processing unit
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/18—Selecting circuits
- G10H1/183—Channel-assigning means for polyphonic instruments
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2230/00—General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
- G10H2230/025—Computing or signal processing architecture features
- G10H2230/041—Processor load management, i.e. adaptation or optimization of computational load or data throughput in computationally intensive musical processes to avoid overload artifacts, e.g. by deliberately suppressing less audible or less relevant tones or decreasing their complexity
Abstract
Description
- Technisches Gebiet
- Ausführungsbeispiele der vorliegenden Erfindung betreffen allgemein einen Klanggenerator, eine elektronische Vorrichtung wie zum Beispiel einen Musik-Synthesizer mit einem Klanggenerator, und ein Verfahren zum Erzeugen eines Klanges aus einer Note.
- Kurze Beschreibung der Zeichnungen
- In den Zeichnungen bezeichnen ähnliche Bezugszeichen Allgemeinen durchgehend dieselben Bestandteile in den unterschiedlichen Ansichten. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu gezeichnet, die Betonung liegt stattdessen im Allgemeinen darauf, die Prinzipien der Erfindung zu veranschaulichen. In der nachfolgenden Beschreibung werden verschiedene Ausführungsbeispiele der Erfindung beschrieben unter Bezug auf die nachfolgenden Zeichnungen, in denen:
-
1 einen Klanggenerator gemäß einem Ausführungsbeispiel der Erfindung zeigt; -
2 den internen Datenfluss eines Klanggenerators gemäß einem Ausführungsbeispiel der Erfindung zeigt; -
3 ein Flussdiagramm zeigt, welches ein Verfahren gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht; -
4 ein Verfahren zum Erzeugen eines Klanges gemäß einem Ausführungsbeispiel der Erfindung zeigt; -
5 ein Verfahren zum Erzeugen eines Klanges aus einer Note unter Verwendung von Prioritäts- und Lautstärkeinformation gemäß einem Ausführungsbeispiel der Erfindung zeigt; -
6 ein anderes Verfahren zum Erzeugen eines Klanges aus einer Note unter Verwendung von Lautstärkeinformation gemäß einem Ausführungsbeispiel der Erfindung zeigt. - Ausführliche Beschreibung beispielhafter Ausgestaltungen
- Musik-Synthesizer sind heutzutage in einer Vielzahl von Geräten, wie zum Beispiel elektronische Musikinstrumente, PCs, PDAs (Personal Digital Assistent) und Mobiltelefone, anzutreffen. Ihre Einsatzmöglichkeiten reichen von der professionellen Erstellung und Aufnahme von Kompositionen im Musikstudio über die interaktive Untermalung von Computerspielen bis hin zur Generierung von Klingeltönen und Alarmsignalen sowie Benachrichtigungssignalen (beispielsweise Signaltönen). Ein Musik-Synthesizer erzeugt üblicherweise aus einer maschinenlesbaren Darstellung der Partitur eines Musikstücks (Eingangsdaten) ein Audiosignal, das dann entweder direkt über einen akustischen Wandler (beispielsweise einen Lautsprecher oder einen Kopfhörer) abgestrahlt oder auf einem geeigneten Aufnahmemedium zur späteren Wiedergabe gespeichert wird. Als Format für die Synthesizer-Eingangsdaten hat sich das MIDI-Format (Musical Instrument Digital Interface) durchgesetzt.
- Eine wesentliche Eigenschaft eines Synthesizers ist die maximale Anzahl an Stimmen, die der Synthesizer gleichzeitig erzeugen kann (Stimmzahl; in der Literatur wird auch häufig der Ausdruck „Polyphonie” verwendet). Dies entspricht der maximalen Anzahl von Tönen (Noten), die gleichzeitig erklingen können. Die maximale Stimmzahl von MIDI-Dateien hängt von der Komplexität des Arrangements ab und ist nicht standardisiert. Somit kann jeder Zeit der Fall eintreten, dass die Eingangsdaten mehr Stimmen erfordern, als der Synthesizer wiedergeben kann. Aus diesem Grund enthält ein Synthesizer im Allgemeinen einen Funktionsblock zur dynamischen Stimmverwaltung, dessen Aufgabe es ist, die in den Eingangsdaten angeforderten Noten auf die vorhandenen Stimmen abzubilden. Die Komplexität eines Synthesizers steigt linear mit der maximalen Stimmzahl. Da speziell in mobilen Geräten die in dem Synthesizer zur Verfügung stehenden Ressourcen äußerst begrenzt sind (geringe Rechenleistung, begrenzte Batteriekapazität), ist es wünschenswert, die dynamische Stimmverwaltung so zu optimieren, dass auch bei geringer Stimmzahl noch die bestmögliche Klangqualität erreicht wird (zum Beispiel keine hörbaren Aussetzer in der Melodie). Dies gewinnt beispielsweise an Bedeutung, wenn der Synthesizer mit einer variablen Stimmzahl arbeitet, und somit in bestimmten Betriebszuständen nur eine sehr geringe Stimmzahl verfügbar ist.
-
US 4969385 A beschreibt ein elektronisches Musikinstrument, bei dem einzelnen digitalen Oszillatoren des Musikinstruments Prioritäten zugeordnet sind, die davon abhängen, in welchem Stadium sich die von den Oszillatoren wiedergegebenen Noten befinden. -
US 4998960 A beschreibt einen Musiksynthesizer, bei dem für die von dem Synthesizer aktuell erzeugten Ausgangssignale mittels eines Prioritätsmittels eine laufende Punktzahl berechnet wird, die einen Anfangswert aufweist, der z. B. vom simulierten Instrumententyp abhängt, und die im Laufe der Zeit abnimmt, wodurch das Alter des Ausgangssignals widergespiegelt wird. - Es sind ein Verfahren, ein Klanggenerator sowie eine elektronische Vorrichtung wünschenswert zum Erzeugen eines Klanges aus einer Note in einer Umgebung mit einer begrenzten maximalen Stimmzahl, welche für den Fall, dass die Obergrenze bereits erreicht ist, negative Effekte auf die Wahrnehmung des Zuhörers vermeiden.
- Im Folgenden beschriebene Ausführungsbeispiele der Erfindung stellen einen Klanggenerator (sound generator), eine elektronische Vorrichtung mit einem Klanggenerator, sowie ein Verfahren zum Steuern eines Klanggenerators bereit zum Erzeugen eines Klanges (Sounds) aus einer Note unter Verwendung von Prioritätsinformation der Klänge und Lautstärkeinformation ausschließlich von den bereits erzeugten Klängen. Implementierungen von Ausführungsbeispielen der Erfindung ermöglichen eine dynamische Stimmverwaltung mit minimalem Aufwand und erzielen bereits mit geringen Stimmzahlen ein volles Klangbild ohne hörbare Artefakte.
- Falls bereits alle Stimmen eines Synthesizers belegt sind, aber eine weitere Note angeschlagen werden soll, gibt es zwei Möglichkeiten:
- a) Die neu anzuschlagende Note wird ignoriert, d. h. nicht angeschlagen.
- b) Eine bereits erklingende Stimme wird überladen, d. h. ein bereits klingender Ton wird abgeschnitten und durch die neue Note ersetzt.
- Gewöhnlich wird, um zwischen beiden Alternativen zu entscheiden, typischerweise die erwartete Lautstärke- der neuen Note herangezogen. Falls es zum Überladen einer Stimme kommt, wird dazu für gewöhnlich der alteste klingende Ton ausgewählt.
- Dies hat mehrere Effekte: zum einen erfordert es erheblichen Aufwand, um aus den MIDI-Daten einer anzuschlagenden Note die zu erwartende Lautstärke zu berechnen. Zum anderen ist die älteste klingende Stimme im musikalischen Kontext keineswegs immer die am wenigsten wichtigste. Ein sehr anschauliches Gegenbeispiel ist zum Beispiel ein so genannter Orgelpunkt (lauter Ton im Bass, der über viele Takte liegen bleibt). Darüber hinaus erfordert die Ermittlung des ältesten Tons eine aufwendige Datenhaltung in der Stimmverwaltung (zum Beispiel verkette Liste), die sich sowohl im Speicher – als auch im Rechenaufwand niederschlägt. Herkömmliche Stimmverwaltungen, welche nach diesem Prinzip implementiert sind, erfordern daher erheblich mehr Ressourcen und erreichen eine deutlich verminderte Klangqualität speziell bei geringen Stimmzahlen.
- Gemäß einem Ausführungsbeispiel der Erfindung verwendet ein Algorithmus zur dynamischen Stimmverwaltung, welcher im Folgenden beschrieben wird, für die Entscheidung, ob und welche Stimme überladen werden soll, ausschließlich die aktuelle Lautstärke der bereits erklingenden Stimmen sowie die Kanalpriorität der neuen Note und der bereits erklingenden Stimmen. Die Lautstärke aller bereits erklingenden Stimmen ist bei geeigneter Implementierung des Synthesizers intern bekannt und kann daher durch eine einfache Abfrage ermittelt werden. Gemäß einem Ausführungsbeispiel der Erfindung kann die Kanalpriorität im Rahmen der MIDI-Standards definiert sein, und ist entweder fest (GM1, GM2; General MIDI) oder variabel (SP-MIDI; Scalable Polyphony MIDI), aber zur Laufzeit jederzeit bekannt. Die grundlegende Idee dabei ist, dass hier der Autor einer MIDI-Datei selbst festlegt, welche Noten bzw.
- Instrumente im musikalischen Kontext gerade besonders wichtig sind und daher keinesfalls überladen werden sollten.
- Der Algorithmus kann in zweckbestimmten elektrischen Komponenten oder in einer Standard-Prozessierungs-Hardware mit einem oder mehreren Mikroprozessoren oder programmierbaren Vorrichtungen wie zum Beispiel FPGAs (Field Programmable Gate Arrays) und üblichen Hardware-Vorrichtungen wie zum Beispiel Speicher, Treiberschaltkreise, etc., welche die programmierbaren Vorrichtungen koppeln, implementiert werden.
- Der Algorithmus kann zum Beispiel implementiert werden als eine Konfiguration wie in
1 gezeigt, welche in einem Ausführungsbeispiel der Erfindung einen Klanggenerator100 darstellt, welcher eine Mehrzahl von Synthesegeneratoren108 ,110 ,112 ,114 aufweist zum Erzeugen eines Klanges aus einer Note. Der Klanggenerator100 weist ferner einen dynamischen Stimmverwaltungsschaltkreis106 auf, wobei der dynamische Stimmverwaltungsschaltkreis106 eingerichtet ist zum Auswählen einer neuen Note, welche der Mehrzahl von Synthesegeneratoren108 ,110 ,112 ,114 in Abhängigkeit von den Lautstärken der erzeugten Klänge bereitgestellt werden soll. - Ein Klanggenerator-Steuerschaltkreis
104 steuert und überwacht den gesamten Klanggenerator. Der Klanggenerator-Steuerschaltkreis104 stellt alle Parameter für die Synthesegeneratoren bereit, wenn eine neue Note angeschlagen werden soll. Der dynamische Stimmverwaltungsschaltkreis106 wird durch den Klanggenerator-Steuerschaltkreis104 aufgerufen, wenn eine neue Note zu verarbeiten ist (i. e. aufgrund einer MIDI-Note „Ein”) und erledigt das Zuweisen von Noten zu Generatoren. Der dynamische Stimmverwaltungsschaltkreis106 realisiert ferner die Ablaufsteuerung (mit anderen Worten den Kontrollfluss), was weiter unten und in3 ausführlicher beschrieben wird. - Die neue Note ist in
1 durch die Eingangsdaten102 dargestellt. - In einem anderen Ausführungsbeispiel weist der Klanggenerator
100 eine Mehrzahl von Synthesegeneratoren108 ,110 ,112 ,114 zum Erzeugen eines Klanges aus einer Note auf, sowie einen dynamischen Stimmverwaltungsschaltkreis106 , wobei der dynamische Stimmverwaltungsschaltkreis106 eingerichtet ist zum Auswählen einer neuen Note, welche der Mehrzahl von Synthesegeneratoren108 ,110 ,112 ,114 bereitgestellt werden soll, in Abhängigkeit von einer der neuen Note und den erzeugten Klängen zugehörigen Priorität und den Lautstärken der erzeugten Klänge. - Gemäß einem Ausführungsbeispiel sind zumindest einige der Mehrzahl von Synthesegeneratoren
108 ,110 ,112 ,114 mit dem dynamischen Stimmverwaltungsschaltkreis106 gekoppelt, um die Lautstärken der erzeugten Klänge dem dynamischen Stimmverwaltungsschaltkreis106 bereit zu stellen. -
1 zeigt ferner eine Ausgestaltung, bei der ein Mischer (Mixer)116 mit den Ausgängen der Mehrzahl von Synthesegeneratoren108 ,110 ,112 ,114 gekoppelt ist, um die erzeugten Klänge zu einem Audiosignal zu mischen. - In einem Ausführungsbeispiel der Erfindung ist der Klanggenerator
100 in einer elektronischen Vorrichtung (Device) enthalten. - Gemäß einer Ausgestaltung ist die elektronische Vorrichtung eine elektronische Vorrichtung, welche ausgewählt ist aus einer Gruppe von elektronischen Vorrichtungen bestehend aus einem Synthesizer, einer Soundkarte, einem Sound-Sampler, einer Soundeffekt-Vorrichtung, einem PC, einem PDA, einem Mobiltelefon und einer Spielekonsole.
-
2 zeigt ein Beispiel des Signalflusses in dem Klanggenerator100 . Die Note202 wird mit einem Kommando durch den Kanal204 mit einer vordefinierten Priorität zu dem Klanggenerator-Steuerschaltkreis104 gesendet, welcher den dynamischen Stimmverwaltungsschaltkreis106 aufruft. Die Lautstärke der Note202 kann berechnet werden als eine erwartete Lautstärke, welche als eine der Eingangsdaten für den dynamischen Stimmverwaltungsschaltkreis106 verwendet werden kann. Solange wie es freie Synthesegeneratoren108 ,110 ,112 ,114 gibt, wählt der dynamische Stimmverwaltungsschaltkreis106 einen freien Synthesegenerator108 ,110 ,112 ,114 , welcher für die neue Note202 verwendet werden soll, aus, gemäß den mit dem Kommando bereitgestellten Eigenschaften der neuen Note202 . Ansonsten ist die Konfiguration abhängig von der Auswertung des Algorithmus' gemäß einem Ausführungsbeispiel der Erfindung innerhalb des dynamischen Stimmverwaltungsschaltkreises106 . Wie beispielhaft für den Kanal208 gezeigt ist, sendet der dynamische Stimmverwaltungsschaltkreis106 eine Anfrage an die Synthesegeneratoren108 ,110 ,112 ,114 , welche als Antwort ein Signal, das Information über die Lautstärke des aktuell erzeugten Klanges enthält, durch die Kanäle208 ,218 ,220 ,222 , welche ebenfalls eine gegebene Priorität aufweisen, zu dem dynamischen Stimmveraltungsschaltkreis106 senden. Der dynamische Stimmverwaltungsschaltkreis106 wählt gemäß dem Algorithmus einen der Synthesegeneratoren108 –114 aus, in2 zum Beispiel den Synthesegenerator108 , und weist den Klanggenerator-Steuerschaltkreis104 an, die Konfigurationsdaten entsprechend der neuen Note202 zu dem ausgewählten Klanggenerator108 zu senden. Wie oben beschrieben worden ist, werden die Ausgangssignale210 ,212 ,214 ,216 in einem Mischer116 zu einem Audiosignal gemischt, was nicht in2 gezeigt ist. -
2 zeigt einen Kanal208 als Beispiel für alle Kanäle zwischen den Synthesegeneratoren108 ,110 ,112 ,114 und dem Klanggenerator-Steuerschaltkreis104 . Die Anzahl der Kanäle bzw. der Synthesegeneratoren108 ,110 ,112 ,114 ist nicht standardisiert oder festgelegt. Somit kann gemäß einem Ausführungsbeispiel der Erfindung eine beliebige Anzahl von Kanälen und Synthesegeneratoren108 ,110 ,112 ,114 bereitgestellt sein. Gemäß einem Ausführungsbeispiel der Erfindung sind mehr Kanäle in einem Klanggenerator ausgebildet, als in2 gezeigt ist. Es ist zu beachten, dass der mit „Auswahl” bezeichnete Pfeil in2 keine Daten- oder Steuerverbindung darstellt sondern andeuten soll, dass der dynamische Stimmverwaltungsschaltkreis106 einen ersten Synthesegenerator108 zum Erzeugen eines Klanges aus einer neuen Note202 ausgewählt hat. - Gemäß einem Ausführungsbeispiel der Erfindung wird die Lautstärke- und Prioritätsinformation der Noten
210 ,212 ,214 ,216 in einem Speicher206 gespeichert. Dies gewährleistet einen einfachen Zugriff auf die benötigte Information für den dynamischen Stimmverwaltungsschaltkreis106 und macht es möglich, dass der Ermittlungs- und der Auswahlprozess einer erzeugten Note210 , welche durch eine neue Note202 ersetzt werden soll, unter Verwendung einer Liste erfolgt, was weiter unten genauer erklärt wird. - Gemäß einem Ausführungsbeispiel der Erfindung ist der dynamische Stimmverwaltungsschaltkreis
106 eingerichtet zum Ermitteln einer oder einer Mehrzahl von Noten210 ,212 ,214 ,216 eines erzeugten Klanges mit einer Priorität innerhalb eines vorgegebenen Prioritätsbereiches bezogen auf die der neuen Note202 zugehörige Priorität, sowie zum Auswählen einer ermittelten Note210 eines erzeugten Klanges, welche durch die neue Note202 ersetzt werden soll, in Abhangigkeit von den Lautstärken der ermittelten Noten210 ,212 ,214 ,216 der erzeugten Klänge. - Gemäß einem Ausführungsbeispiel der Erfindung ist der dynamische Stimmverwaltungsschaltkreis
106 eingerichtet zum Ermitteln einer oder einer Mehrzahl von Noten210 ,212 ,214 ,216 eines erzeugten Klanges mit einer Priorität, die gleich ist wie oder niedriger ist als die der neuen Note202 zugehörige Priorität, sowie zum Auswählen einer ermittelten Note210 eines erzeugten Klanges, welche durch die neue Note202 ersetzt werden soll, in Abhängigkeit von den Lautstärken der ermittelten Noten210 ,212 ,214 ,216 der erzeugten Klänge. - Gemäß einem Ausführungsbeispiel der Erfindung ist der dynamische Stimmverwaltungsschaltkreis
106 eingerichtet zum Ermitteln einer erwarteten Lautstärke der neuen Note202 und zum Auswählen einer ermittelten Note210 eines erzeugten Klanges, welche durch die neue Note202 ersetzt werden soll, in Abhängigkeit von den Lautstärken der ermittelten Noten210 ,212 ,214 ,216 der erzeugten Klänge und der erwarteten Lautstärke der neuen Note202 . - Gemäß einem Ausführungsbeispiel der Erfindung wird die Lautstärke eines erzeugten Klanges mittels der Amplitude des Signals des erzeugten Klanges dargestellt.
- Die aktuelle Amplitude stellt ein sehr einfaches Kriterium für die Entscheidung dar. Bei allen Syntheseverfahren, die intern mit Hüllkurvengeneratoren arbeiten (zum Beispiel FM (Frequenzmodulation) oder Wavetable-Synthese), ist eine weitere Vereinfachung möglich, indem lediglich der aktuelle Wert der Amplitudenhüllkurve zurückgegeben wird, so dass gemäß einer Ausgestaltung die Lautstärke eines erzeugten Klanges durch die aktuelle Amplitudenhüllkurve-Generatorausgabe dargestellt wird.
- Gemäß einem Ausführungsbeispiel ist bei dem vorgeschlagenen Algorithmus eine Liste vorhanden, welche eine Tabelle sein kann, welche die aktuelle Lautstärke und die Kanalpriorität für alle Stimmen enthält.
- Gemäß einem Ausführungsbeispiel der Erfindung werden die Noten
210 ,212 ,214 ,216 der erzeugten Klänge in einer Liste gespeichert, wobei die Liste für jeden erzeugten Klang die Priorität der dazugehörigen Note und die Lautstärke des entsprechenden erzeugten Klanges enthält. - Die Lautstarke jedes einzelnen erzeugten Klanges kann sich mit der Zeit verändern. Daher werden gemäß einem Ausführungsbeispiel die Lautstärke-Einträge in der Liste entweder regelmäßig oder auf Verlangen, wenn eine neue Note anzuschlagen ist, aktualisiert, um zu gewährleisten, dass die aktuelle bzw. letzte Lautstärke des erzeugten Klanges für den Generatorauswahlprozess berücksichtigt wird.
- Gemäß einem Ausführungsbeispiel der Erfindung wird die Liste in einem Speicher
206 des Klanggenerators gespeichert. - Der Speicher
206 in2 ist logisch dem Klanggenerator-Steuerschaltkreis104 zugehörig. Der Speicher206 kann sich jedoch physikalisch irgendwo innerhalb des Klanggenerators100 befinden oder kann Teil der elektronischen Vorrichtungen sein, wie zum Beispiel ein FPGA des Klanggenerators. - Der Prozess des Ermittelns einer Note
210 , welche geeignet ist, um durch die neue Note202 ersetzt zu werden, wird im Folgenden genauer erklärt. Die Prozesse verwenden die Liste mit der Prioritäts- und Lautstärkeinformation der erzeugten Klänge und verwenden einen Minimale-Lautstärke-Parameter, e1cher die minimale Lautstärke der aktuellen Note, welche bisher in dem Ermittlungsprozess betrachtet worden ist, speichert. - Wie aus
1 und2 ersichtlich ist, kann die Implementierung eines Synthesizers getrennt in zwei Teilen erfolgen: ein dynamischer Stimmverwaltungsschaltkreis106 , welcher in dem Klanggenerator-Steuerschalkreis104 implementiert ist, und ein Satz von Synthesegeneratoren108 ,110 ,112 ,114 . - Der dynamische Stimmverwaltungsschaltkreis
106 liest und interpretiert die Eingangsdaten (zum Beispiel MIDI-Kommandos), führt die dynamische Stimmverwaltung aus (die anzuschlagenden Noten werden den vorhandenen Synthesegeneratoren108 ,110 ,112 ,114 zugeordnet) und konfiguriert diese entsprechend. Jeder Synthesegenerator108 ,110 ,112 ,114 erzeugt ein Ausgangssignal210 ,212 ,214 ,216 einer Stimme. - Ausführungsbeispiele der Erfindung benötigen lediglich eine minimale Erweiterung der Architektur. Die Synthesegeneratoren
108 ,110 ,112 ,114 melden dem dynamischen Stimmverwaltungsschaltkreis106 auf Anfrage die aktuelle – Lautstärke zurück. Da die Generatoren108 ,110 ,112 ,114 das Ausgangssignal210 ,212 ,214 ,216 einer Stimmer direkt erzeugen, ist die Ableitung und Rückgabe der aktuellen Lautstärke anhand eines geeigneten Kriteriums im Allgemeinen ohne wesentlichen Zusatzaufwand möglich. - Damit reduziert sich der Zusatzaufwand auf die Bereitstellung einer zusätzlichen Schnittstelle zwischen dem dynamischen Stimmverwaltungsschaltkreis
106 und den Synthesegeneratoren108 ,110 ,112 ,114 . Mit dem Anschlagen einer neuen Note202 läuft der Algorithmus zur dynamischen Stimmverwaltung dann wie im Folgenden mittels des in3 gezeigten Flussdiagramms300 beschrieben ab:
In302 beginnt die Ablaufsteuerung mit der ersten Stimme. Ein Parameter, welcher die minimale Lautstärke der Noten108 ,110 ,112 ,114 angibt, wird mit der maximal möglichen Lautstärke initialisiert. - In
304 wird die Kanalpriorität ermittelt. Falls die Kanalpriorität der neuen Note größer ist als diejenige der aktuellen Stimme wird als nächstes306 ausgeführt, im anderen Fall wird der Weg308 verfolgt, und der Prozess fährt fort mit314 . - In
306 wird die Lautstärke der aktuellen Stimme ermittelt. Falls die Lautstärke der aktuellen Stimme kleiner ist als-das bisher gefundene Minimum, wird als nächstes310 ausgeführt, im anderen Fall wird der Weg312 verfolgt und der Prozess fährt fort mit314 . - In
310 wird die Lautstärke der aktuellen Stimme dem Parameter, welcher die minimale Lautstärke enthalt, zugewiesen: gefundenes Minimum = Lautstärke der aktuellen Stimme. Ferner wird die aktuelle Stimme vorgemerkt als Kandidat zum (Über-)Laden. - In
314 wird ermittelt, ob alle Stimmen geprüft wurden. Falls alle Stimmen geprüft wurden („Ja” in314 ), wird318 als nächstes ausgeführt, im anderen Fall („Nein” in314 ) wird die nächste Stimme ausgewählt und der Prozess fährt fort mit304 . - In
318 wird ermittelt, ob eine Stimme zum (Über-)Laden vorgemerkt wurde. Falls eine Stimme zum (Über-)Laden vorgemerkt wurde („Ja” in318 ), wird der Prozess fortgesetzt bei320 mit dem (Über-)Laden der Stimme, im anderen Fall („Nein” in318 ) wird der Prozess fortgesetzt bei322 mit dem Ignorieren der neuen Note. - Falls eine neue Note in
320 geladen worden ist, wird die Liste entsprechend aktualisiert. Daher ist gemäß einem Ausführungsbeispiel der Erfindung der dynamische Stimmverwaltungsschaltkreis106 so eingerichtet, dass er die Liste zumindest teilweise in aufeinander folgender Weise Note für Note auffüllt. - Gemäß einem Ausführungsbeispiel ist der Stimmverwaltungsschaltkreis
106 so eingerichtet, dass er die Liste so initialisiert, dass die Lautstärke-Parameter von allen Generatoren auf 0 gesetzt sind und die Prioritäten auf das niedrigste Niveau gesetzt sind. - Eine Implementierung eines Ausführungsbeispiels der Erfindung gemäß der oben beschriebenen Ablaufsteuerung
300 wird im Folgenden erläutert. - Gemäß einem Ausführungsbeispiel der Erfindung werden bei einer neuen Note
202 , welche in die Liste eingefügt werden soll, die folgenden Prozesse durchgeführt. - a) Initialisieren eines Minimale-Lautstärke-Parameters auf die maximal mögliche Lautstärke;
- b) Auswählen einer Note aus der Liste; zum Beispiel Note
210 ; - c) Ermitteln, ob die Priorität der neuen Note
202 , welche in die Liste eingefügt werden soll, höher ist als die Priorität der ausgewählten Note210 ; - d) Für den Fall, dass die Priorität der neuen Note
202 , welche in die Liste eingefügt werden soll, höher ist als die Priorität der ausgewählten Note210 : Ermitteln, ob die Lautstärke des erzeugten Klanges der ausgewählten Note210 kleiner ist als der Wert des Minimale-Lautstärke-Parameters; - e) Für den Fall, dass die Lautstärke des erzeugten Klanges der ausgewählten Note
210 kleiner ist als der Wert des Minimale-Lautstärke-Parameters: Vormerken der ausgewählten Note als Kandidat für eine Ersetzung; - f) Für den Fall, dass die Lautstärke des erzeugten Klanges der ausgewählten Note
210 nicht kleiner ist als der Wert des Minimale-Lautstärke-Parameters: Ermitteln, ob alle Noten der Liste abgearbeitet worden sind; - g) Für den Fall, dass die Priorität der neuen Note
202 , welche in die neue Liste eingefügt werden soll, niedriger ist als oder gleich ist wie die Priorität der ausgewählten Note210 : Ermitteln, ob alle Noten210 ,212 ,214 ,216 aus der Liste abgearbeitet worden sind; - h) Für den Fall, dass eine ausgewählte Note
210 als Kandidat für eine Ersetzung vorgemerkt worden ist: Ersetzen der vorgemerkten ausgewählten Note210 durch die neue Note202 , welche in die Liste eingefügt werden soll. - Gemäß einem Ausführungsbeispiel sind die Noten
202 ,210 ,212 ,214 ,216 gemäß einem Musikinstrument-Digital-Schnittstellen-Standard (Musical Instrument Digital Interface (MIDI)) kodiert. - Im Folgenden werden Verfahren gemäß Ausführungsbeispielen der Erfindung beschrieben, welche den auf dem Klanggenerator
100 implementierten Algorithmus darstellen. - Gemäß einem Ausführungsbeispiel der Erfindung ist ein Verfahren zum Erzeugen eines Klanges aus einer Note bereitgestellt. Wie in
4 dargestellt ist und vorangehend in2 erörtert wurde, werden in402 aus Noten210 ,212 ,214 ,216 mittels einer Mehrzahl von Synthesegeneratoren Klänge erzeugt. In404 werden Parameter der aktuellen Klänge und Parameter einer neuen Note202 abgerufen oder ermittelt. In406 wird eine Entscheidung darüber getroffen, ob die neue Note202 als ein Klang zu erzeugen ist, in Abhängigkeit von den Parameterwerten der Noten202 ,210 ,212 ,214 ,216 . In408 wird im Falle einer positiven Entscheidung ein Klanggenerator ausgewählt zum Erzeugen eines Klanges aus der neuen Note202 . - Gemäß einem Ausführungsbeispiel der Erfindung sind die Parameter die Lautstärke der erzeugten Klänge und die Priorität der Noten
202 ,210 ,212 ,214 ,216 . - Diese Parameter sind gewöhnlich in dem Klanggenerator
100 bekannt und für den dynamischen Stimmverwaltungsschaltkreis106 einfach zugänglich. - Gemäß einem anderen Ausführungsbeispiel der Erfindung ist ein Parameter die erwartete Lautstärke der neuen Note
202 . Gemäß diesem Ausführungsbeispiel wird dann eine oder eine Mehrzahl von ermittelten Noten210 ,212 ,214 ,216 eines erzeugten Klanges ausgewählt, um durch die neue Note202 ersetzt zu werden, in Abhängigkeit von den Lautstärken der ermittelten Noten210 ,212 ,214 ,216 der erzeugten Klänge und der erwarteten Lautstärke der neuen Note202 . - Gemäß einem Ausführungsbeispiel sind die Eingangsparameter die aktuelle Lautstärke von allen Generatoren, die erwartete Lautstärke der neuen Note sowie die Priorität von allen Noten, und eine oder eine Mehrzahl von ermittelten Noten eines erzeugten Klanges wird/werden ausgewählt, um durch die neue Note ersetzt zu werden, in Abhängigkeit von der aktuellen Lautstärke aller Generatoren, der erwarteten Lautstärke der neuen Note und der Priorität von allen Noten.
- Gemäß einem Ausführungsbeispiel wird die Lautstärke eines erzeugten Klanges dargestellt mittels der aktuellen Amplitudenhüllkurve-Generatorausgabe.
- Gemäß einem Ausführungsbeispiel der Erfindung basiert die Auswahl eines Synthesegenerators
108 ,110 ,112 ,114 auf der Ermittlung einer oder einer Mehrzahl von Noten210 ,212 ,214 ,216 eines erzeugten Klanges mit einer Priorität innerhalb eines vorgegebenen Prioritätsbereichs bezüglich der Priorität, welche mit der neuen Note202 verknüpft ist, sowie einer Auswahl einer ermittelten Note eines erzeugten Klanges, welche durch die neue Note202 zu ersetzen ist, in Abhängigkeit von den Lautstärken der ermittelten Noten der erzeugten Klänge. - Der Prioritätsbereich kann zum Beispiel von der niedrigsten Priorität bis hin zu der Priorität der neuen Note
202 reichen. - Gemäß einem Ausführungsbeispiel der Erfindung basiert die Auswahl eines Synthesegenerators
108 bis114 auf der Ermittlung von einer oder einer Mehrzahl von Noten210 ,212 ,214 ,216 eines erzeugten Klanges mit einer Priorität, welche gleich ist oder niedriger ist als die Priorität, welche mit der neuen Note202 verknüpft ist, sowie einer Auswahl einer ermittelten Note eines erzeugten Klanges, welche durch die neue Note202 zu ersetzen ist, in Abhängigkeit von den Lautstärken der ermittelten Noten der erzeugten Klänge. - Gemäß einem Ausführungsbeispiel der Erfindung wird die neue Note ignoriert, falls die Entscheidung, ob die neue Note erzeugt werden soll, negativ ist.
- Gemäß einem Ausführungsbeispiel der Erfindung wird die Lautstärke eines erzeugten Klanges mittels der Amplitude des Signals des erzeugten Klanges dargestellt.
- Gemäß einem Ausführungsbeispiel der Erfindung werden die erzeugten Klange zu einem Audiosignal gemischt. Das Audiosignal kann verstärkt werden und zu einem Lautsprecher gesendet werden, oder es kann in weiteren nachfolgenden Stufen verarbeitet werden.
- Um die Parameterwerte zu ermitteln, kann eine Liste verwendet werden. Die Liste kann eine Art Tabelle sein.
- Gemäß einem Ausführungsbeispiel der Erfindung werden die Noten
210 ,212 ,214 ,216 der erzeugten Klänge in der Liste gespeichert. Gemäß diesem Ausführungsbeispiel kann die Liste für jeden erzeugten Klang die Priorität der dazugehörigen Note und die Lautstärke des entsprechenden erzeugten Klanges enthalten. - Gemäß einem anderen Ausführungsbeispiel der Erfindung kann die Liste zumindest teilweise in aufeinander folgender Weise Note für Note gefüllt sein.
- Gemäß einem Ausführungsbeispiel ist der Stimmverwaltungsschaltkreis
106 so eingerichtet, dass er die Liste so initialisiert, dass die Lautstärkeparameter aller Generatoren auf 0 gesetzt sind und die Prioritäten auf das niedrigste Niveau gesetzt sind. - Gemäß einem Ausführungsbeispiel der Erfindung werden bei einer neuen Note
202 , welche in die Liste eingefügt werden soll, die folgenden Prozesse durchgeführt: - a) Initialisieren eines Minimale-Lautstärke-Parameters auf die maximal mögliche Lautstärke;
- b) Auswählen einer Note
210 aus der Liste; - c) Ermitteln, ob die Priorität der neuen Note
202 , welche in die Liste eingefügt werden soll, höher ist als die Priorität der ausgewählten Note210 ; - d) Für den Fall, dass die Priorität der neuen Note
202 , welche in die Liste eingefügt werden soll, höher ist als die Priorität der ausgewählten Note210 : Ermitteln, ob die Lautstärke des erzeugten Klanges der ausgewählten Note210 kleiner ist als der Wert des Minimale-Lautstärke-Parameters; - e) Für den Fall, dass die Lautstärke des erzeugten Klanges der ausgewählten Note
210 kleiner ist als der Wert des Minimale-Lautstärke-Parameters: Vormerken der ausgewählten Note als Kandidat für eine Ersetzung; - f) Für den Fall, dass die Lautstärke des erzeugten Klanges der ausgewählten Note nicht kleiner ist als der Wert des Minimale-Lautstärke-Parameters: Ermitteln, ob alle Noten aus der Liste abgearbeitet worden sind;
- g) Für den Fall, dass die Priorität der neuen Note
202 , welche in die Liste eingefügt werden soll, niedriger ist als oder gleich ist wie die Priorität der ausgewählten Note210 : Ermitteln, ob alle Noten aus der Liste abgearbeitet worden sind; - h) Für den Fall, dass eine ausgewählte Note als Kandidat für eine Ersetzung vorgemerkt worden ist: Ersetzen der vorgemerkten ausgewählten Note durch die neue Note
202 , welche in die Liste eingefugt werden soll. - Gemäß einem Ausführungsbeispiel wird der Wert des Lautstärke-Parameters des Klanges eines freien Synthesegenerators
108 ,110 ,112 ,114 auf 0 gesetzt, und die Priorität des Noten-Parameters des freien Synthesegenerators wird auf die niedrigste Priorität gesetzt. Das heißt, freie Stimmen (Stimmen, die gerade keinen Ton erzeugen) werden darin durch Lautstärke 0 und die niedrigste Kanalpriorität gekennzeichnet. Immer, wenn eine neue Note202 angeschlagen werden soll, wird aus dieser Liste in einem einzigen Durchgang diejenige mit minimaler Lautstärke bestimmt (Minimumsuche). Dabei werden nur Stimmen berücksichtigt, deren Kanalpriorität kleiner ist als die Priorität der neu anzuschlagenden Note. Durch diesen generischen Ansatz braucht nicht einmal unterschieden zu werden, ob noch Stimmen frei sind, oder ob bereits alle Stimmen belegt sind: solange freie Stimmen vorhanden sind, werden diese automatisch aufgrund der minimalen Lautstärke und Kanalpriorität gefunden. Sobald keine freien Stimmen vorhanden sind, entscheidet die Kanalprioritat darüber, ob die neue Note202 angeschlagen oder ignoriert wird: nur Noten mit höherer Kanalpriorität können zum Überladen einer Stimme führen. Die Auswahl der Stimme, welche überladen werden kann, erfolgt schließlich anhand der minimalen Lautstärke. Alle drei Fallunterscheidungen (freie Stimmen vorhanden oder nicht, Ignorieren der neuen Note oder Überladen einer Stimme und Auswahl der zu überladenden Stimme) werden implizit mit nur einem Suchvorgang über die Liste aller Stimmen erbracht. - Bei Klängen mit ausreichend kurzer Einschwingphase führt selbst das sofortige Überladen von Stimmen (der aktuell erklingende Ton wird sofort abgebrochen und die neue Note wird sofort angeschlagen) nicht zu hörbaren Störgeräuschen, da das aufgrund des abrupten Abbrechens erzeugte Klickgeräusch von den Transienten der neu angeschlagenen Note maskiert wird.
- Gemäß einem Ausführungsbeispiel wird das Ersetzen der Note
210 dadurch erreicht, dass der aktuell erzeugte Klang sofort abgeschnitten wird. - Gemäß einem Ausführungsbeispiel der Erfindung wird das Ersetzen der Note
210 dadurch erreicht, dass der erzeugte Klang ausgeblendet wird. Um die Erzeugung von hörbaren Artefakten, welche durch das Ersetzen der Note bedingt sind, weiter zu verringern, ist es möglich, den zu überladenden Generator108 nicht einfach abzuschalten, sondern sein Ausgangssignal über einige Millisekunden auszublenden. Damit wird die neue Note202 allerdings nicht sofort, sondern erst mit leichter Verzögerung angeschlagen. In einer beispielhaften Weise werden die Synthesegeneratoren108 ,110 ,112 ,114 so implementiert, dass das Laden eines neuen Parametersatzes (der Parametersatz bestimmt den Klang, also das Instrument, dass ein Generator erzeugt) und das Starten einer neuen Note202 (mit dem vorhandenen Parametersatz) durch den dynamischen Stimmverwaltungsschaltkreis106 voneinander unabhängig ausgelöst (anders ausgedrückt, getriggert) werden können. Das Laden eines neuen Parametersatzes ist im Allgemeinen weitaus aufwendiger als das Starten einer neuen Note202 . - Gemäß einem Ausführungsbeispiel der Erfindung wird ein Klangerzeugungsparametersatz unabhängig von der Klangerzeugung der neuen Note
202 geladen. - Gemäß einem Ausführungsbeispiel wird geprüft, welche Klanggeneratoren mit einem geeigneten Klangerzeugungsparametersatz geladen sind, und es wird beim Ermitteln der Note mit der minimalen Lautstärke der Ermittlungsprozess gestoppt, wenn eine Note gefunden wurde mit einem geeigneten Klangerzeugungsparametersatz und einer Lautstärke, die geringer ist als oder gleich ist wie die minimale Lautstarke, welche bisher gefunden wurde. Um eine weitere Reduzierung der Komplexität zu erreichen, bietet es sich an, die Zahl der Ladevorgänge zu minimieren. Dies wird erreicht, wenn Generatoren, die bereits mit dem richtigen Parametersatz geladen sind, beim Anschlagen einer neuen Note
202 bevorzugt werden. Auch das kann durch eine einfache Erweiterung mit dem vorgeschlagenen Algorithmus realisiert werden. Dazu wird beispielsweise in306 zunächst geprüft, ob die aktuelle Stimme bereits mit dem passenden Parametersatz geladen ist. Falls ja, wird die aktuelle Stimme bereits dann zum Überladen vorgemerkt, falls ihre Lautstarke kleiner oder gleich dem bisher gefundenen Minimum ist. Falls nein, wird weiterhin das Kriterium „kleiner als das aktuelle Minimum” angewandt. - Sobald mehrere Stimmen mit minimaler Lautstärke vorhanden sind, bewirkt dies, dass gemäß einem Ausführungsbeispiel der Erfindung Stimmen ausgewählt werden, die bereits richtig parametriert sind. Dies schließt insbesondere den Fall ein, dass noch freie Stimmen vorhanden sind (= mehrere Stimmen mit der minimalen Lautstärke 0). Durch Prüfen einer einzigen weiteren Bedingung in der Stimmverwaltung wird dadurch eine weitere wesentliche Reduktion der Komplexität erreicht.
- Gemäß einem Ausführungsbeispiel der Erfindung werden die Noten gemäß einem Musikinstrument-Digital-Schnittstellen-Standard kodiert.
- Gemäß einem Ausführungsbeispiel der Erfindung wird ein Verfahren
500 zum Erzeugen eines Klanges aus einer Note bereitgestellt.5 veranschaulicht dieses Ausführungsbeispiel. In502 werden mittels einer Mehrzahl von Synthesegeneratoren Klänge aus Noten erzeugt, wobei ein Klang aus einer neuen Note erzeugt werden soll und wobei die Noten eine vorgegebene Priorität haben. In504 werden Noten der erzeugten Klänge ermittelt, die eine niedrigere Priorität haben als die Priorität der neuen Note. In506 wird unter den ermittelten Noten die Note mit der minimalen Lautstärke ermittelt, und in508 wird die ermittelte Note ausgewählt, um durch die neue Note, welche als Klang zu erzeugen ist, ersetzt zu werden. - In einem anderen Ausführungsbeispiel der Erfindung, welches in
6 gezeigt ist, wird ein Verfahren600 zum Erzeugen eines Klanges aus einer Note bereitgestellt, wobei in602 eine Note ausgewählt wird, welche einer Mehrzahl von Synthesegeneratoren bereitgestellt werden soll, in Abhängigkeit von den Lautstärken der erzeugten Klänge, und in604 wird ein Klang aus der Note erzeugt. - Gemäß einem Ausführungsbeispiel der Erfindung wird eine erwartete Lautstärke der Note ermittelt und eine ermittelte Note eines erzeugten Klanges wird ausgewählt, um durch die Note ersetzt zu werden, in Abhängigkeit von den Lautstärken der Noten der erzeugten Klänge und der erwarteten Lautstärke der Note.
- Gemäß einem Ausführungsbeispiel der Erfindung wird die Lautstärke eines erzeugten Klanges dargestellt mittels der Amplitude des Signals des erzeugten Klanges.
- Gemäß einem Ausführungsbeispiel wird die Lautstärke eines erzeugten Klanges dargestellt mittels der aktuellen Amplitudenhüllkurve-Generatorausgabe.
- Gemäß einem Ausführungsbeispiel der Erfindung ergibt die Summe der Ausgangssignale von allen Generatoren das gewünschte Audiosignal. Gemäß diesem Ausführungsbeispiel werden somit die erzeugten Klänge zu einem Audiosignal gemischt. Gemäß einem Ausführungsbeispiel erfolgt das Mischen der Ausgangssignale mittels einer Misch-Vorrichtung bzw. eines Mischers (Mixers).
- Gemäß einem Ausführungsbeispiel ermöglicht die Implementierung eine dynamische-Stimmverwaltung mit minimalem Aufwand und kann bereits bei Stimmzahlen ab ca. 10 ein volles Klangbild ohne hörbare Artefakte erreichen, das vom Zuhörer praktisch nicht von vergleichbaren Implementierungen mit deutlich höherer Stimmzahl unterschieden werden kann.
- Gemäß einem Ausführungsbeispiel der Erfindung besteht der Algorithmus verglichen mit herkömmlichen Techniken aus einer um die Kanalpriorität erweiterten Suche des Lautstärkeminimums über alle Stimmen. Falls eine geeignete Stimme gefunden wird, wird diese überladen, falls nicht, wird die anzuschlagende Note ignoriert.
- Als Konsequenz ist zum einen die Komplexität gering: lediglich Abfragen von intern bereits vorhandenen Daten, lediglich eine einfache Minimumsuche, und keine komplexen Datenstrukturen und keine aufwendige Berechnung der zu erwartenden Lautstärke der neuen Note sind erforderlich. Zum anderen erreicht dieser Ansatz auch eine hervorragende Klangqualität: durch die Kombination der Lautstärke der erklingenden Stimmen mit der Kanalpriorität wird sowohl der Wahrnehmung des Zuhörers (nur der leiseste und damit – unhörbarste Ton wird überladen) als auch der Intention des Autors (musikalisch wichtige Stimmen werden nie mit – unwichtigeren überladen) Rechnung getragen.
- Obwohl die Erfindung vor allem unter Bezugnahme auf bestimmte Ausführungsbeispiele gezeigt und beschrieben wurde, sollte es von denjenigen, die mit dem Fachgebiet vertraut sind, verstanden werden, dass zahlreiche Anderungen bezüglich der Ausgestaltung und Details daran vorgenommen werden können, ohne vom Wesen und Bereich der Erfindung, wie er durch die nachfolgenden Ansprüche definiert wird, abzuweichen. Der Bereich der Erfindung wird daher durch die angefügten Ansprüche bestimmt, und es ist beabsichtigt, dass sämtliche Änderungen, welche unter den Wortsinn oder den Äquivalenzbereich der Ansprüche fallen, umfasst werden.
Claims (30)
- Klanggenerator, aufweisend: • eine Mehrzahl von Synthesegeneratoren zum Erzeugen eines Klanges aus einer Note; • einen dynamischen Stimmverwaltungsschaltkreis; • wobei der dynamische Stimmverwaltungsschaltkreis eingerichtet ist, aus den Noten der aktuell erzeugten Klänge eine Note auszuwählen und durch eine neue Note, welche der Mehrzahl von Synthesegeneratoren bereitgestellt werden soll, zu ersetzen in Abhängigkeit von einer der neuen Note und den Noten der aktuell erzeugten Klänge zugehörigen Priorität sowie den Lautstärken der aktuell erzeugten Klänge, • wobei der dynamische Stimmverwaltungsschaltkreis eingerichtet ist, aus den Noten der aktuell erzeugten Klänge die Noten zu ermitteln, deren Priorität niedriger ist als die Priorität der neuen Note, und aus den ermittelten Noten eine Note, deren zugehöriger Klang die geringste Lautstärke aufweist, als die Note auszuwählen, die durch die neue Note ersetzt wird, wobei in dem Fall, dass keine der Noten der aktuell erzeugten Klänge eine niedrigere Priorität hat als die neue Note, die neue Note ignoriert wird.
- Klanggenerator gemäß Anspruch 1, wobei zumindest einige der Mehrzahl von Synthesegeneratoren mit dem dynamischen Stimmverwaltungsschaltkreis gekoppelt sind, um dem dynamischen Stimmverwaltungsschaltkreis die Lautstärken der erzeugten Klänge bereit zu stellen.
- Klanggenerator gemäß Anspruch 1 oder 2, wobei der dynamische Stimmverwaltungsschaltkreis eingerichtet ist zum Ermitteln einer erwarteten Lautstärke der neuen Note sowie zum Auswählen einer ermittelten Note eines erzeugten Klanges, welche durch die neue Note ersetzt werden soll, in Abhängigkeit von den Lautstärken der ermittelten Noten der erzeugten Klänge und der erwarteten Lautstärke der neuen Note.
- Klanggenerator gemäß einem der Ansprüche 1 bis 3, wobei die Lautstärke eines erzeugten Klanges mittels der Amplitude des Signals des erzeugten Klanges dargestellt wird.
- Klanggenerator gemäß einem der Ansprüche 1 bis 4, wobei die Lautstärke eines erzeugten Klanges mittels der aktuellen Amplitudenhüllkurve-Generatorausgabe dargestellt wird.
- Klanggenerator gemäß einem der Ansprüche 1 bis 5, ferner aufweisend einen Mischer, welcher mit den Ausgängen der Mehrzahl von Synthesegeneratoren gekoppelt ist, zum Mischen der erzeugten Klänge zu einem Audiosignal.
- Klanggenerator gemäß einem der Ansprüche 1 bis 6, ferner aufweisend einen Speicher, welcher eine Liste mit Noten der erzeugten Klänge speichert, wobei die Liste für jeden erzeugten Klang die Priorität der dazugehörigen Note und die Lautstärke des entsprechenden erzeugten Klanges aufweist.
- Klanggenerator gemäß Anspruch 7, wobei der dynamische Stimmverwaltungsschaltkreis derart eingerichtet ist, dass er die Liste zumindest teilweise in auf einander folgender Weise Note für Note auffüllt.
- Klanggenerator gemäß Anspruch 8, wobei der dynamische Stimmverwaltungsschaltkreis derart eingerichtet ist, dass er die Liste für alle Generatoren mit der Lautstärke 0 und minimaler Priorität initialisiert.
- Klanggenerator gemäß Anspruch 9, wobei der dynamische Stimmverwaltungsschaltkreis eingerichtet ist, die folgenden Prozesse für eine neue Note, welche in die Liste eingefügt werden soll, durchzuführen: • Initialisieren eines Minimale-Lautstärke-Parameters auf die maximal mögliche Lautstärke; • Auswählen einer Note aus der Liste; • Ermitteln, ob die Priorität der neuen Note, welche in die Liste eingefügt werden soll, höher ist als die Priorität der ausgewählten Note; • Für den Fall, dass die Priorität der neuen Note, welche in die Liste eingefügt werden soll, höher ist als die Priorität der ausgewählten Note, Ermitteln, ob die Lautstärke des erzeugten Klanges der ausgewählten Note geringer ist als der Wert des Minimale-Lautstärke-Parameters; • Für den Fall, dass die Lautstärke des erzeugten Klanges der ausgewählten Note geringer ist als der Wert des Minimale-Lautstärke-Parameters, Vormerken der ausgewählten Note als Kandidat für eine Ersetzung; • Für den Fall, dass die Lautstärke des erzeugten Klanges der ausgewählten Note nicht geringer ist als der Wert des Minimale-Lautstärke-Parameters, Ermitteln, ob alle Noten der Liste abgearbeitet worden sind; • Für den Fall, dass die Priorität der neuen Note, welche in die Liste eingefügt werden soll, niedriger ist als oder gleich ist wie die Priorität der ausgewählten Note, Ermitteln, ob alle Noten der Liste abgearbeitet worden sind; • Für den Fall, dass eine ausgewählte Note als Kandidat für eine Ersetzung vorgemerkt worden ist, Ersetzen der vorgemerkten ausgewählten Note durch die neue Note, welche in die Liste eingefügt werden soll.
- Klanggenerator gemäß einem der Ansprüche 1 bis 10, wobei die Noten gemäß einem Musikinstrument-Digital-Schnittstellen-Standard kodiert sind.
- Elektronische Vorrichtung, aufweisend einen Klanggenerator gemäß einem der Ansprüche 1 bis 11.
- Elektronische Vorrichtung gemäß Anspruch 12, wobei die elektronische Vorrichtung eine elektronische Vorrichtung ist, welche ausgewählt ist aus einer Gruppe von elektronischen Vorrichtungen bestehend aus: Synthesizer; Soundkarte; Sound-Sampler; Soundeffekt-Vorrichtung; PC; PDA; Mobiltelefon; Spielkonsole.
- Verfahren zum Erzeugen eines Klanges aus einer Note, bei dem: • Klänge aus Noten erzeugt werden mittels einer Mehrzahl von Synthesegeneratoren; und • aus den Noten der aktuell erzeugten Klänge eine Note ausgewählt und durch eine neue Note, welche der Mehrzahl von Synthesegeneratoren bereitgestellt werden soll, ersetzt wird in Abhängigkeit von einer der neuen Note und den Noten der aktuell erzeugten Klänge zugehörigen Priorität sowie den Lautstärken der aktuell erzeugten Klänge, • wobei aus den Noten der aktuell erzeugten Klänge die Noten ermittelt werden, deren Priorität niedriger ist als die Priorität der neuen Note, und aus den ermittelten Noten eine Note, deren zugehöriger Klang die geringste Lautstärke aufweist, ausgewählt wird, um durch die neue Note ersetzt zu werden, und • wobei in dem Fall, dass keine der Noten der aktuell erzeugten Klänge eine niedrigere Priorität hat als die neue Note, die neue Note ignoriert wird.
- Verfahren gemäß Anspruch 14, wobei ein Eingangsparameter die erwartete Lautstärke der neuen Note ist und eine oder eine Mehrzahl von ermittelten Noten eines erzeugten Klanges ausgewählt wird, um durch die neue Note ersetzt zu werden, in Abhängigkeit von den Lautstärken der ermittelten Noten der erzeugten Klänge und der erwarteten Lautstärke der neuen Note.
- Verfahren gemäß einem der Ansprüche 14 oder 15, wobei die Eingangsparameter die momentane Lautstärke aller Generatoren, die erwartete Lautstärke der neuen Note und die Priorität aller Noten sind und eine oder eine Mehrzahl von ermittelten Noten eines erzeugten Klanges ausgewählt wird, um durch die neue Note ersetzt zu werden, in Abhängigkeit von der momentanen Lautstärke aller Generatoren, der erwarteten Lautstärke der neuen Note und der Priorität aller Noten.
- Verfahren gemäß einem der Ansprüche 14 bis 16, wobei die Lautstärke eines erzeugten Klanges dargestellt wird mittels der Amplitude des Signals des erzeugten Klanges.
- Verfahren gemäß einem der Ansprüche 14 bis 17, wobei die Lautstärke eines erzeugten Klanges dargestellt wird mittels der aktuellen Amplitudehüllkurve-Generatorausgabe.
- Verfahren gemäß einem der Ansprüche 14 bis 18, wobei der Wert des Lautstärkenparameters des Klanges eines freien Synthesegenerators auf 0 gesetzt wird und die Priorität des Notenparameters des freien Synthesegenerators auf die niedrigste Priorität gesetzt wird.
- Verfahren gemäß einem der Ansprüche 14 bis 20, wobei die erzeugten Klänge zu einem Audiosignal gemischt werden.
- Verfahren gemäß einem der Ansprüche 14 bis 20, wobei das Ersetzen der Note erreicht wird, indem der aktuell erzeugte Klang sofort abgebrochen wird.
- Verfahren gemäß einem der Ansprüche 14 bis 20, wobei das Ersetzen der Note erreicht wird, indem der erzeugte Klang ausgeblendet wird.
- Verfahren gemäß einem der Ansprüche 14 bis 22, wobei die Noten der erzeugten Klänge in einer Liste gespeichert werden, wobei die Liste für jeden erzeugten Klang die Priorität der dazugehörigen Note und die Lautstärke des entsprechenden erzeugten Klanges aufweist.
- Verfahren gemäß Anspruch 23, wobei die Liste zumindest teilweise in aufeinander folgender Weise Note für Note aufgefüllt wird.
- Verfahren gemäß einem der Ansprüche 23 oder 24, wobei die Laustärkeeinträge in der Liste entweder regelmäßig oder auf Verlangen, wenn eine neue Note zu erzeugen ist, aktualisiert werden, um zu gewährleisten, dass die aktuelle Lautstärke des erzeugten Klanges für den Generatorauswahlprozess berücksichtigt wird.
- Verfahren gemäß einem der Ansprüche 23 bis 25, wobei die Liste für alle Generatoren mit der Lautstärke 0 und minimaler Priorität initialisiert wird.
- Verfahren gemäß Anspruch 26, wobei für eine neue Note, welche in die Liste eingefügt werden soll, die folgenden Prozesse durchgeführt werden: • Initialisieren eines Minimale-Lautstärke-Parameters auf die maximal mögliche Lautstärke; • Auswählen einer Note aus der Liste; • Ermitteln, ob die Priorität der neuen Note, welche in die Liste eingefügt werden soll, höher ist als die Priorität der ausgewählten Note; • für den Fall, dass die Priorität der neuen Note, welche in die Liste eingefügt werden soll, höher ist als die Priorität der ausgewählten Note, Ermitteln, ob die Lautstärke des erzeugten Klanges der ausgewählten Note niedriger ist als der Wert des Minimale-Lautstärke-Parameters; • für den Fall, dass die Lautstärke des erzeugten Klanges der ausgewählten Note niedriger ist als der Wert des Minimale-Lautstärke-Parameters, Vormerken der ausgewählten Note als Kandidat für eine Ersetzung und entsprechendes Aktualisieren des Minimale-Lautstärke-Parameters; • für den Fall, dass die Lautstärke des erzeugten Klanges der ausgewählten Note nicht geringer ist als der Wert des Minimale-Lautstärke-Parameters, Ermitteln, ob alle Noten der Liste abgearbeitet wurden; • für den Fall, dass die Priorität der Note, welche in die Liste eingefügt werden soll, niedriger ist als oder gleich ist wie die Priorität der ausgewählten Note, Ermitteln, ob alle Noten der Liste abgearbeitet worden sind; • für den Fall, dass eine ausgewählte Note als ein Kandidat für eine Ersetzung vorgemerkt worden ist, Ersetzen der vorgemerkten ausgewählten Note durch die neue Note, welche in die Liste eingefügt werden soll.
- Verfahren gemäß einem der Ansprüche 14 bis 27, wobei die Noten gemäß einem Musikinstrument-Digital-Schnittstellen-Standard kodiert sind.
- Verfahren gemäß einem der Ansprüche 14 bis 29, wobei ein Klangerzeugungsparametersatz unabhängig von der Klangerzeugung der neuen Note geladen wird.
- Verfahren gemäß Anspruch 29, wobei geprüft wird, welche Klanggeneratoren mit einem geeigneten Klangerzeugungsparametersatz geladen sind und wobei beim Ermitteln der Note mit der minimalen Lautstärke der Ermittlungsprozess gestoppt wird, wenn eine Note gefunden wurde mit einem geeigneten Klangerzeugungsparametersatz und einer Lautstärke, welche niedriger ist als oder gleich ist wie die minimale Lautstärke, welche bisher gefunden wurde.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/776,414 | 2007-07-11 | ||
US11/776,414 US7728217B2 (en) | 2007-07-11 | 2007-07-11 | Sound generator for producing a sound from a new note |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102008032116A1 DE102008032116A1 (de) | 2009-01-22 |
DE102008032116B4 true DE102008032116B4 (de) | 2013-03-28 |
Family
ID=40149294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102008032116A Expired - Fee Related DE102008032116B4 (de) | 2007-07-11 | 2008-07-08 | Klanggenerator, elektronische Vorrichtung mit einem Klanggenerator, und Verfahren zum Steuern eines Klanggenerators |
Country Status (2)
Country | Link |
---|---|
US (1) | US7728217B2 (de) |
DE (1) | DE102008032116B4 (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9327193B2 (en) * | 2008-06-27 | 2016-05-03 | Microsoft Technology Licensing, Llc | Dynamic selection of voice quality over a wireless system |
US8657959B2 (en) | 2009-07-31 | 2014-02-25 | E I Du Pont De Nemours And Company | Apparatus for atomic layer deposition on a moving substrate |
CN103893971B (zh) | 2012-12-25 | 2015-05-27 | 腾讯科技(深圳)有限公司 | 一种游戏音效的制作方法和客户端 |
CN110633067B (zh) * | 2016-06-16 | 2023-02-28 | Oppo广东移动通信有限公司 | 一种音效参数的调节方法及移动终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4969385A (en) * | 1988-01-19 | 1990-11-13 | Gulbransen, Inc. | Reassignment of digital oscillators according to amplitude |
US4998960A (en) * | 1988-09-30 | 1991-03-12 | Floyd Rose | Music synthesizer |
US20040267541A1 (en) * | 2003-06-30 | 2004-12-30 | Hamalainen Matti S. | Method and apparatus for playing a digital music file based on resource availability |
DE10339032A1 (de) * | 2003-08-25 | 2005-05-25 | Infineon Technologies Ag | Software-Synthesizer und Verfahren zum Erzeugen von Audiosignalen mit einer variablen Anzahl von Stimmen in Abhängigkeit vom Betriebszustand einer Prozessoreinheit |
US20060236848A1 (en) * | 2003-10-10 | 2006-10-26 | The Stone Family Trust Of 1992 | System and method for dynamic note assignment for musical synthesizers |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5357048A (en) * | 1992-10-08 | 1994-10-18 | Sgroi John J | MIDI sound designer with randomizer function |
ITBO20020361A1 (it) * | 2002-06-07 | 2003-12-09 | Roland Europ Spa | Sistema per la variazione dei parametri musicali che caratterizzano un brano musicale digitale |
-
2007
- 2007-07-11 US US11/776,414 patent/US7728217B2/en not_active Expired - Fee Related
-
2008
- 2008-07-08 DE DE102008032116A patent/DE102008032116B4/de not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4969385A (en) * | 1988-01-19 | 1990-11-13 | Gulbransen, Inc. | Reassignment of digital oscillators according to amplitude |
US4998960A (en) * | 1988-09-30 | 1991-03-12 | Floyd Rose | Music synthesizer |
US20040267541A1 (en) * | 2003-06-30 | 2004-12-30 | Hamalainen Matti S. | Method and apparatus for playing a digital music file based on resource availability |
DE10339032A1 (de) * | 2003-08-25 | 2005-05-25 | Infineon Technologies Ag | Software-Synthesizer und Verfahren zum Erzeugen von Audiosignalen mit einer variablen Anzahl von Stimmen in Abhängigkeit vom Betriebszustand einer Prozessoreinheit |
US20060236848A1 (en) * | 2003-10-10 | 2006-10-26 | The Stone Family Trust Of 1992 | System and method for dynamic note assignment for musical synthesizers |
Also Published As
Publication number | Publication date |
---|---|
DE102008032116A1 (de) | 2009-01-22 |
US7728217B2 (en) | 2010-06-01 |
US20090013858A1 (en) | 2009-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69625693T2 (de) | Verfahren und vorrichtung zur formatierung von digitalen, elektrischen daten | |
DE102011003976B3 (de) | Eingabeschnittstelle zur Erzeugung von Steuersignalen durch akustische Gesten | |
DE112011103067B4 (de) | System, Computerprogrammprodukt und Verfahren mit einer grafischen Benutzerschnittstelle für die Programmierung von Musiksequenzen | |
DE102007049662B4 (de) | Musikklanggenerator | |
DE60026189T2 (de) | Verfahren und Vorrichtung zur Wellenformkomprimierung und Erzeugung | |
DE2712226A1 (de) | Tongeneratoranordnung, insbesondere fuer ein elektronisches musikinstrument | |
DE102008032116B4 (de) | Klanggenerator, elektronische Vorrichtung mit einem Klanggenerator, und Verfahren zum Steuern eines Klanggenerators | |
DE112013005807T5 (de) | Vorrichtung und Verfahren zur Erzeugung einer Echtzeitmusikbegleitung | |
WO2006005567A1 (de) | Verfahren und vorrichtung zur erzeugung einer polyphonen melodie | |
DE69911129T2 (de) | Vorrichtung und Verfahren zur Musiktonsynthetisierung | |
JP5200434B2 (ja) | 音響設定支援装置 | |
DE112018007079T5 (de) | Audioparameter-anpassungsvorrichtung, audioparameter-anpassungsverfahren und audioparameter-anpassungsprogramm | |
DE3332477A1 (de) | Elektronisches musikinstrument mit einer vorrichtung zur lokalisierung von klangbildern | |
DE69632351T2 (de) | Verfahren und Vorrichtung zur Musiktonerzeugung | |
DE60106680T2 (de) | Wellenformsignalerzeugung mit Synthetisierung von pseudo-tiefen Tönen | |
DE60033098T2 (de) | Verfahren und Vorrichtung zur Aufnahme/Wiedergabe oder Erzeugung von Wellenformen mittels Zeitlageinformation | |
DE69915948T2 (de) | Bearbeitungsvorrichtung durch Änderung von Musikdaten mit Bearbeitungsdaten | |
DE112006003794B4 (de) | Verbesserter 3D-Sound | |
DE60006131T2 (de) | Verfahren und vorrichtung zur erzeugung von improvisierter musik | |
DE69923752T2 (de) | Vorrichtung zum Senden und Empfängen von Musikdaten und Speicherungsmittel | |
DE102020200185B4 (de) | Klangsteuerungsvorrichtung, klangsteuerungsverfahren und programm | |
DE60302333T2 (de) | Optimierung der Wiedergabe einer MIDI-Datei | |
DE60032844T2 (de) | Verfahren und Vorrichtung zur Erzeugung einer Wellenform auf einem Auslegungsstildatenstrom basiert | |
DE102019215300B4 (de) | Resonanzklangsignalerzeugungsvorrichtung, resonanzklangsignalerzeugungsverfahren, resonanzklangsignalerzeugungsprogramm und elektronische musikvorrichtung | |
DE60032085T2 (de) | Verfahren und Vorrichtung zur Erzeugung einer Wellenform mit verbessertem Übergang zwischen aufeinandervolgenden Dateimodulen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R081 | Change of applicant/patentee |
Owner name: INTEL DEUTSCHLAND GMBH, DE Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE Effective date: 20130207 Owner name: INTEL MOBILE COMMUNICATIONS GMBH, DE Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE Effective date: 20130207 |
|
R082 | Change of representative |
Representative=s name: VIERING, JENTSCHURA & PARTNER, DE Effective date: 20130207 |
|
R082 | Change of representative | ||
R020 | Patent grant now final |
Effective date: 20130629 |
|
R081 | Change of applicant/patentee |
Owner name: INTEL DEUTSCHLAND GMBH, DE Free format text: FORMER OWNER: INTEL MOBILE COMMUNICATIONS GMBH, 85579 NEUBIBERG, DE |
|
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |