DE69625693T2 - Verfahren und vorrichtung zur formatierung von digitalen, elektrischen daten - Google Patents

Verfahren und vorrichtung zur formatierung von digitalen, elektrischen daten Download PDF

Info

Publication number
DE69625693T2
DE69625693T2 DE69625693T DE69625693T DE69625693T2 DE 69625693 T2 DE69625693 T2 DE 69625693T2 DE 69625693 T DE69625693 T DE 69625693T DE 69625693 T DE69625693 T DE 69625693T DE 69625693 T2 DE69625693 T2 DE 69625693T2
Authority
DE
Germany
Prior art keywords
time
instrument
audio
generator
source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69625693T
Other languages
English (en)
Other versions
DE69625693D1 (de
Inventor
P. David ROSSUM
Michael Guzewicz
S. Robert CRAWFORD
F. Matthew WILLIAMS
F. Donald RUFFCORN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Creative Technology Ltd
Original Assignee
Creative Technology Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Creative Technology Ltd filed Critical Creative Technology Ltd
Publication of DE69625693D1 publication Critical patent/DE69625693D1/de
Application granted granted Critical
Publication of DE69625693T2 publication Critical patent/DE69625693T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/18Selecting circuits
    • G10H1/24Selecting circuits for selecting plural preset register stops
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/02Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/155Musical effects
    • G10H2210/195Modulation effects, i.e. smooth non-discontinuous variations over a time interval, e.g. within a note, melody or musical transition, of any sound parameter, e.g. amplitude, pitch, spectral response, playback speed
    • G10H2210/201Vibrato, i.e. rapid, repetitive and smooth variation of amplitude, pitch or timbre within a note or chord
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/155Musical effects
    • G10H2210/265Acoustic effect simulation, i.e. volume, spatial, resonance or reverberation effects added to a musical sound, usually by appropriate filtering or delays
    • G10H2210/295Spatial effects, musical uses of multiple audio channels, e.g. stereo
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/325Musical pitch modification
    • G10H2210/331Note pitch correction, i.e. modifying a note pitch or replacing it by the closest one in a given scale

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Stereophonic System (AREA)

Description

  • Hintergrund der Erfindung
  • Die vorliegende Erfindung betrifft die Verwendung digitaler Audiodaten, insbesondere ein Format zum Speichern auf Abtastung (Sampling) beruhender Musiktondaten.
  • Der elektronische Musiksynthesizer wurde gleichzeitig von mehreren Personen in den frühen 1960ern erfunden, besonders bemerkenswert Robert Moog und Donald Buchla. Die Synthesizer der 1960er und 1970er waren primär analog, obwohl in den späten 70ern die Computersteuerung populärer wurde.
  • Mit den Vorteilen, die durch VLSI und digitale Signalverarbeitung (DSP) möglich wurden, wurde es in den frühen 1980ern praktikabel, die festen Einfachzykluswellenformen, die bei tonerzeugenden Oszillatoren von Synthesizern verwendet wurden, durch digitalisierte Wellenformen zu ersetzen. Diese Entwicklung verzweigte sich in zwei Wege. Die professionelle Musikgemeinschaft folgte der Line „auf Abtastung beruhender Musiksynthesizer", besonders der Emulatorlinie von E-mu-Systems. Diese Instrumente enthielten große Speicher, die eine gesamte Aufzeichnung eines natürlichen Tons reproduzierten, über den Tastaturbereich transponierten und durch Hüllkurven, Filter und Verstärker geeignet modulierten. Die Gemeinschaft billiger Personal Computer folgte statt dessen dem „Wavetable"-Ansatz unter Verwendung kleiner Speicher unter Erzeugung von Timbreänderungen an synthetischem oder berechnetem Ton durch dynamische Veränderung der gespeicherten Wellenform.
  • Während der 1980er wurde eine andere relativ billige Musiksynthetisiertechnik unter Verwendung von Frequenzmodulation (FM) zuerst bei der professionellen Musikgemeinschaft populär, wobei sie später auf den PC übertragen wurde. Während FM eine billige und sehr vielseitige Technologie ist, konnte sie nicht an die auf Abtastung beruhende Synthese angepasst werden, und wurde schließlich in professionellen Studios durch auf Abtastung beruhende Ansätze ersetzt.
  • Während des gleichen Zeitrahmens wurde der Musical Instrument Digital Interface (MIDI) Standard in der gesamten professionellen Musikgemeinschaft als Standard für die Echtzeitsteuerung von Musikinstrument-Vorführungen erfunden und akzeptiert. Seitdem ist MIDI ein Standard in der PC Multimediaindustrie geworden.
  • Professionelle, auf Abtastung beruhende Synthesizer erweiterten ihre Fähigkeiten in den frühen 1990ern, so dass sie noch mehr DSP enthielten. Die sinkenden Kosten von Speichern brachten dem Wavetableansatz die Möglichkeit, abgetastete Töne zu verwenden, und bald wurden die Wavetabletechnologie und die Abtasttonsynthese synonym. In den mittleren 90ern wurde die Wavetablesynthese billig genug, um sie in Massenmarktprodukte einzubauen. Diese Wavetablesynthesizerchips erlauben eine qualitativ sehr gute Musiksynthese bei populären Preisen und sind gegenwärtig bei einer Vielzahl von Anbietern verfügbar. Während viele von diesen Chips aus Abtastungen oder Wavetable heraus arbeiten, die in einem Festwertspeicher (ROM) gespeichert sind, erlauben einige wenige das Herunterladen beliebiger Abtastungen in einen RAM-Speicher.
  • Die Musical Instrument Digital Interface (MIDI) Sprache wurde ein Standard in der PC-Industrie für die Darbietung von Musiknoten. MIDI erlaubt, dass jede Linie einer Musiknote ein unterschiedliches Instrument steuert, genannt Voreinstellung (preset). Die General-MIDI-Erweiterung des MIDI-Standard etabliert einen Satz von 128 Voreinstellungen entsprechend einer Anzahl häufig verwendeter Musikinstrumente.
  • Während die General-MIDI Komponisten einen festen Satz von Instrumenten bietet, garantiert sie weder die Natur oder Qualität der Töne, die diese Instrumente erzeugen, noch bietet es irgend ein Verfahren zum Erhalt einer weiteren Vielzahl in den verfügbaren Grundtönen. Verschiedene Musikinstrumentenhersteller haben Erweiterungen von General MIDI erzeugt, um mehr Variationen an dem Satz von Voreinstellungen zu erlauben. Es sollte jedoch klar sein, dass die ultimative Flexibilität nur durch die Verwendung herunterladbarer digitaler Audiodateien für die Basisabtastungen erhalten werden kann.
  • Der General-MIDI-Standard war ein Versuch, die verfügbaren Instrumente in einer MIDI-Komposition derart zu definieren, dass die Komponisten Lieder erzeugen konnten und eine vernünftige Aussicht hatten, dass die Musik auf einer Vielzahl von Syntheseplattformen akzeptabel reproduziert würde. Natürlich war dies ein ehrgeiziges Ziel; von den Zwei-Operator-FM-Synthesechips der frühen PC-Synthesizer, durch die Tonabtastungs- und „Wavetable"-Synthesizer und sogar „physikalische Modellbildungs"-Synthese spannte sich eine gewaltige Varietät von Technologie und Fähigkeiten.
  • Wenn ein Musiker auf eine Taste auf eine MIDI-Musikinstrumententastatur drückt, wird ein komplizierter Prozess initiiert. Der Tastendruck wird einfach als Tastennummer und „Geschwindigkeit" codiert, die zu einem bestimmten Moment auftritt. Jedoch gibt es eine Vielzahl anderer Parameter, die die Natur des erzeugten Tons bestimmen. Jedem der 16 möglichen MIDI-„Kanäle" oder jeder Tontastatur ist zu jedem Moment eine bestimmte Bank und eine Voreinstellung zugeordnet, die die Natur der zu spielenden Note bestimmt. Ferner hat jeder MIDI-Kanal auch eine Vielzahl von Parametern in der Form von MIDI-„Fortlaufreglern", die den Ton in irgend einer Weise verändern können. Der Tondesigner, der die jeweilige Voreinstellung vorgenommen hat, bestimmte, wie alle diese Faktoren den zu erzeugenden Ton beeinflussen sollten.
  • Tondesigner verwenden eine Vielzahl von Techniken, um interessierende Timbres für ihre Voreinstellungen zu erzeugen. Verschiedene Tasten können vollständig unterschiedliche Ereignissequenzen auslösen, beide ausgedrückt als Syntheseparameter und Abtastungen, die gespielt werden. Zwei besonders bemerkenswerte Techniken werden Ebenen-Technik (layering) und Mehrfachabtastung genannt. Die Mehrfachabtastung sorgt für die Zuordnung einer Vielzahl digitaler Abtastungen zu unterschiedlichen Tasten mit derselben Voreinstellung. Unter Verwendung der Ebenen-Technik kann der Druck auf eine einzelne Taste bewirken, dass mehrere Abtastungen gespielt werden.
  • 1993 realisierten E-mu-Systems die Wichtigkeit davon, einen einzigen universellen Standard für herunterladbare Töne für auf Abtastung beruhende Musikinstrumente zu etablieren. Das plötzliche Wachstum des Multimediaaudiomarkts hat einen solchen Standard notwendig gemacht. E-mu erfand das SoundFont® 1.0 Audioformat als Lösung. (SoundFont® ist eine registrierte Marke von E-mu-Systems, Inc.). Das SoundFont® 1.0 Audioformat wurde ursprünglich mit dem Creative Technology SoundBlaster AWE32-Produkt unter Verwendung einer EMU8000-Synthesizermaschine eingeführt.
  • Das SoundFont® Audioformat ist besonders in Bezug auf die Probleme von Wavetable (Abtastung)-Synthese gestaltet. Das SoundFont® Audioformat unterscheidet sich von den früheren digitalen Audiodateiformaten darin, dass es nicht nur die digitalen Audiodaten enthält, die die Musikinstrumentabtastungen selbst repräsentieren, sondern auch die Syntheseinformation, die zum Artikulieren dieses digitalen Tons erforderlich ist. Eine SoundFont® Audioformat-Bank repräsentiert einen Satz von Musiktasten, deren jeder eine MIDI-Voreinstellung zugeordnet ist. Jede MIDI-„Voreinstellung" oder Taste eines Tons bewirkt die digitale Audiowiedergabe von einer oder mehreren geeigneten Abtastungen, die in dem SoundFont® Audioformat enthalten sind. Wenn dieser Ton durch den MIDI-Tasteneinschaltbefehl ausgelöst wird, wird er auch durch die MIDI-Parameter der Notenzahl, Geschwindigkeit und der anwendbaren Fortlaufregler geeignet geregelt. Ein Großteil der Einzigartigkeit des SoundFont® Audioformats beruht in der Art und Weise, in der diese Artikulationsdaten gehandhabt werden.
  • Das SoundFont® Audioformat wird unter Verwendung der „chuck" des standard Resource Interchange File Formats (RIFF) formatiert, das in der PC-Industrie verwendet wird. Die Verwendung dieser Standardformathülle bietet ein leicht verständliches hierarchisches Niveau für das SoundFont® Audioformat.
  • Eine SoundFont® Audioformat-Datei enthält eine einzige SoundFont® Audioformat-Bank. Eine SoundFont® Audioformat-Bank umfasst eine Ansammlung von einer oder mehreren MIDI-Voreinstellungen, jeweils mit eindeutigen MIDI-Voreinstellungs- und Banknummern. SoundFont® Audioformat-Bänke von zwei separaten Dateien können nur mit geeigneter Software kombiniert werden, die Voreinstellungs-Identitätskonflikte auflösen muss. Weil die MIDI-Banknummer enthalten ist, kann eine SoundFont® Audioformat-Bank Voreinstellungen von vielen MIDI-Bänken enthalten.
  • Eine Sound Font® Audioformat-Bank enthält eine Anzahl von Informationssträngen, einschließlich dem SoundFont® Audioformat-Revision Level, das die Bank befolgt, das Ton-ROM, falls vorhanden, auf das sich die Bank bezieht, das Erzeugungsdatum, den Autor, etwaige Urheberrechts-Ansprüche und einen Verwender-Kommentarstrang.
  • Jede MIDI-Voreinstellung innerhalb der SoundFont® Audioformat-Bank ist einem eindeutigen Namen, einer MIDI-Voreinstellung # und einer MIDI-Bank = zugeordnet. Eine MIDI-Voreinstellung repräsentiert eine Zuordnung von Tönen zu Tastaturtasten; ein MIDI-Taste-Einschaltereignis an irgend einem gegebenen MIDI-Kanal bezieht sich auf eine und nur eine MIDI-Voreinstellung in Abhängigkeit von der jüngsten MIDI-Voreinstellungsänderung und MIDI-Bankänderung, die in dem fraglichen MIDI-Kanal auftritt.
  • Jede MIDI-Voreinstellung in einer SoundFont® Audioformat-Bank umfasst eine optionale allgemeine Voreinstellungsparameterliste (Global Preset Parameter List) und ein oder mehrere Voreinstellungsebenen (Preset Layers). Die allgemeine Voreinstellungsparameterliste enthält etwaige Vorgabewerte für die voreingestellten Ebenen-Parameter. Eine voreingestellte Ebene enthält die anwendbare Taste und den Geschwindigkeitsbereich für die voreingestellte Ebene, eine Liste voreingestellter Ebenen-Parameter und eine Referenz für ein Instrument.
  • Jedes Instrument enthält eine optionale allgemeine Instrumentenparameterliste und einen oder mehrere Instrumentenaufteilungen (Splits). Eine allgemeine Instrumentenparameterliste enthält etwaige Vorgabewerte für die Instrumenten-Ebenen-Parameter. Jede Instrumentenaufteilung enthält die anwendbare Taste und den Geschwindigkeitsbereich für die Instrumentenaufteilung, eine Instrumentenaufteilungsparameterliste und eine Referenz zu der Abtastung. Die Instrumentenaufteilungsparameterliste, plus etwaige Vorgabewerte, enthält die Absolutwerte der Parameter, die die Artikulation der Noten beschreiben.
  • Jede Abtastung enthält Abtastparameter, die für die Wiedergabe der Abtastdaten relevant sind, sowie einen Zeiger zu den Abtastdaten selbst.
  • Das Dokument US-5331111 zeigt ein Beispiel eines Systems, in dem solche Parameter maschinenspezifische Werte haben.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung ist in dem unabhängigen Systemanspruch 1 und dem unabhängigen Verfahrensanspruch 14 angegeben und gibt ein Audiodatenformat an, in dem ein Instrument unter Verwendung einer Kombination von Tonabtastungen und Artikulationsanweisungen beschrieben ist, die Modifikationen bestimmen, die an der Tonabtastung durchgeführt werden. Die Instrumente bilden eine erste Anfangsebene, mit einer zweiten Ebene, die Voreinstellungen hat, die verwenderdefiniert werden können, um zusätzliche Artikulationsanweisungen vorzusehen, die die Artikulationsanweisungen an der Instrumentenebene modifizieren können. Die Artikulationsanweisungen werden unter Verwendung verschiedener Parameter spezifiziert. Die vorliegende Erfindung sieht ein Format vor, in dem alle der Parameter in Einheiten spezifiziert sind, die sich auf ein physikalisches Phänomen beziehen, und somit nicht an eine besondere Maschine zum Erzeugen oder Spielen der Audioabtastungen gebunden sind.
  • Bevorzugt enthalten die Artikulationsanweisungen Generatoren und Modulatoren. Die Generatoren sind Artikulationsparameter, während die Modulatoren eine Verbindung zwischen einem Echtzeitsignal (d. h. einem Verwender eingabecode) und einem Generator herstellen. Sowohl Generatoren als auch Modulatoren sind Typen von Parametern.
  • Ein zusätzlicher Aspekt der vorliegenden Erfindung liegt darin, dass die Parametereinheit wahrnehmbar additiv sind. Dies bedeutet, dass dann, wenn ein in den wahrnehmbar additiven Einheiten spezifizierter Betrag zu zwei unterschiedlichen Werten des Parameters addiert wird, der Effekt des darunterliegenden physikalischen Werts nicht proportional wird. Insbesondere haben Prozentanteile oder logarithmisch bezogene Einheiten häufig diese Charakteristik. Gewisse neue Einheiten werden erzeugt, um dies aufzunehmen, wie etwa „Zeit-Cents" (time cents), die ein logarithmisches Maß der Zeit sind, das als Paramtereinheit hierin benutzt wird.
  • Die Verwendung von Parametereinheiten, die sich auf ein physikalisches Phänomen beziehen und sich nicht auf eine bestimmte Maschine beziehen, machen das Audiodatenformat portabel, so dass von Maschine zu Maschine übertragen und von unterschiedlichen Leuten ohne Modifikation benutzt werden kann. Die wahrnehmbar additive Natur der Parametereinheiten erlaubt ein vereinfachtes Editieren oder Modifizieren der Timbres in einer darunterliegenden Musiknote, die in solchen Parametereinheiten ausgedrückt ist. Somit wird das Erfordernis, jeweilige Instrumenteneinstellungen individuell einzustellen, beseitigt, mit der Möglichkeit, Gesamteinstellungen auf der voreingestellten Ebene durchzuführen.
  • Die Modulatoren der vorliegenden Erfindung sind mit vier Enumeratoren spezifiziert, die einen Enumerator enthalten, der die Wirkung hat, die Echtzeitquelle zu transformieren, um sie in ein wahrnehmbar additives Format umzusetzen. Jeder Modulator ist spezifiziert unter Verwendung von (1) einem Generator-Enumerator, der den Generator identifiziert, auf den er anzuwenden ist, (2) einen Enumerator, der die Quelle identifiziert, die zum Modifizieren des Generators verwendet wird, (3) den Transformations-Enumerator zum Modifizieren der Quelle, um sie in die wahrnehmbar additive Form zu versetzen, (4) einen Betrag, der den Grad angibt, um den der Modulator den Generator beeinflussen soll und (5) einen Quellenbetrag-Enumerator, der zeigt, wie weit die zweite Quelle den Betrag modulieren soll.
  • Die vorliegende Erfindung stellt auch sicher, dass die Tonhöheninformation für die Audioabtastungen portabel und editierbar ist, indem sie nicht nur die ursprüngliche Abtastrate gespeichert wird, sondern auch die ursprüngliche Taste, die beim Erzeugen der Abtastung verwendet wird, zusammen mit einer etwaigen ursprünglichen Abstimmkorrektur.
  • Die vorliegende Erfindung gibt auch ein Format an, das eine Kennung (tag) in einer Stereoaudioabtastung mit Punkten zu deren Passung enthält. Dies erlaubt das Editieren, ohne eine Referenz auf das Instrument zu benötigen, an dem die Abtastung verwendet wird.
  • Zu einem weiteren Verständnis der Ziele und Vorteile der Erfindung sollte auf die beigefügte Beschreibung in Verbindung mit den beigefügten Zeichnungen Bezug genommen werden.
  • Kurzbeschreibung der Zeichnungen
  • 1 ist eine Zeichnung eines die vorliegende Erfindung enthaltenden Musiksynthesizers;
  • 2A und 2A sind Zeichnungen eines Personal Computers und einer Speicherplatte, die die vorliegende Erfindung enthält;
  • 3 ist ein Diagramm einer Audioabtaststruktur;
  • 4A und 4B sind Diagramme, die unterschiedliche Abschnitte einer Audioabtastung darstellen;
  • 5 ist ein Diagramm einer Taste, die unterschiedliche Tasteneingabecharakteristiken darstellt;
  • 6 ist ein Diagramm eines Modulationsrads und eines Tonhöhenbiegerads als illustrative Modulationseingaben;
  • 7 ist ein Blockdiagramm der Instrumentenebene und der voreingestellten Ebene, die die vorliegende Erfindung enthält;
  • 8 ist ein Diagramm einer RIFF-Dateistruktur, die die vorliegende Erfindung enthält;
  • 9 ist ein Diagramm eines Dateiformatbilds nach der vorliegenden Erfindung;
  • 10 ist ein Diagramm der Artikulationsdatenstruktur gemäß der vorliegenden Erfindung;
  • 11 ist ein Diagramm des Modulatorformats;
  • 12 ist ein Diagramm des Audioabtastformats; und
  • 13 ist ein Diagramm, das die Beziehung der Modulator-Enumeratoren und des Modulatorbetrags darstellt.
  • Beschreibung der bevorzugten Ausführung
  • Synthesizer und Computer
  • 1 stellt einen typischen Musiksynthesizer 10 dar, der in seinem Speicher eine Audiodatenstruktur gemäß der vorliegenden Erfindung enthalten würde. Der Synthesizer enthält eine Anzahl von Tasten 12, deren jede zum Beispiel einer anderen Note eines bestimmten Instruments zugeordnet werden kann, die durch eine Tonabtastung im Datenspeicher repräsentiert ist. Eine gespeicherte Note kann in Echtzeit zum Beispiel dadurch modifiziert werden, wie stark die Taste gedrückt wird und wie lange sie niedergehalten wird. Andere Eingaben sehen Modulationsdaten vor, wie etwa Modulationsräder 14 und 16, die die Noten modulieren können.
  • 2A stellt einen Personal Computer 18 dar, der eine interne Soundkarte aufweist. Eine Speicherplatte 20, in 2B gezeigt, enthält Audiodatenabtastungen gemäß der vorliegenden Erfindung, die in dem Computer 18 geladen werden können. Entweder der Computer 18 oder der Synthesizer 10 könnte verwendet werden, um Tonabtastungen (sound samples) zu erzeugen, diese zu editieren, diese zu spielen oder in jeder Kombination.
  • Grundelemente der Audioabtastung, Modifikatoren
  • 3 ist ein Diagramm der Struktur einer typischen Audioabtastung in einem Speicher. Eine solche Audioabtastung kann erzeugt werden, indem ein echter Ton aufgezeichnet wird und dieser in einem digitalisierten Format gespeichert wird, oder indem ein Ton synthetisiert wird, indem die digitale Repräsentation direkt unter der Steuerung eines Computerprogramms erzeugt wird. Ein Verständnis einiger dieser Grundaspekte der Audioabtastung und davon, wie sie unter Verwendung von Generatoren und Modulatoren artikuliert werden kann, ist zum Verständnis der vorliegenden Erfindung hilfreich. Eine Audioabtastung hat bestimmte allgemein akzeptierte Charakteristiken, die verwendet werden, um Aspekte der Abtastung zu identifizieren, die separat modifiziert werden können. Grundlegend enthält eine Tonabtastung sowohl eine Amplitude als auch eine Tonhöhe (pitch). Die Amplitude ist die Lautstärke der Töne, während die Tonhöhe die Wellenlänge oder Frequenz ist. Eine Audioabtastung kann eine Hüllkurve für sowohl die Amplitude als auch für die Tonhöhe haben. Beispiele einiger typischer Hüllkurven sind in den 4A und 4B gezeigt. Die vier Aspekte der Hüllkurven werden wie folgt definiert:
    Einsatz. Dies ist die Zeit, die der Ton benötigt, um seinen Spitzenwert zu erreichen. Er wird gemessen als Änderungsrate, so dass ein Ton einen langsamen oder einen schnellen Einsatz haben kann.
    Abklingen: Dies gibt die Rate an, mit der Ton nach dem Einsatz die Amplitude verliert. Das Abklingen wird auch als Änderungsrate gemessen, so dass ein Ton ein schnelles oder langsames Abklingen haben kann.
    Halten: Der Haltepegel ist der Pegel der Amplitude, mit dem der Ton nach dem Abklingen abfällt. Die Haltezeit ist die Zeitdauer, die der Ton an dem Haltepegel verbringt.
    Nachlassen: Dies ist die Zeit, die der Ton benötigt, um auszuklingen. Sie wird gemessen als Änderungsrate, so dass ein Ton ein schnelles oder langsames Nachlassen haben kann.
  • Die obigen Messungen werden gewöhnlich als ADSR (Attack, Decay, Sustain, Release bzw. Einsatz, Abklingen, Halten, Nachlassen) bezeichnet, die Tonhüllkurve wird manchmal ADSR-Hüllkurve genannt.
  • Die Art, mit der eine Taste gedrückt wird, kann die durch die Taste repräsentierende Note modifizieren. 5 stellt eine Taste in drei unterschiedlichen Stellungen dar, Ruhestellung 50, Anfangs-Anschlagstellung 51 und Nach-Berührungsstellung 52.
  • Die meisten Tasteninstrumente bzw. Keyboards haben geschwindigkeitsempfindliche Tasten. Die Anschlaggeschwindigkeit wird gemessen, wenn die Taste von der Position 50 zur Position 51 gedrückt wird, wie mit dem Pfeil 53 angegeben. Diese Information wird in eine Zahl zwischen 0 und 127 umgewandelt, die nach der Noteneinschalt-MIDI-Meldung zu dem Computer geschickt wird. Auf diese Weise wird die Dynamik mit der Note aufgezeichnet (oder verwendet um die Notenwiedergabe zu modifizieren). Ohne dieses Merkmal werden alle Noten mit demselben Dynamikpegel reproduziert.
  • Der Nachanschlag (aftertouch) ist der Druckbetrag, der auf die Tasten nach dem Anfangsschlag ausgeübt wird. Elektronische Nachanschlag-Sensoren können, wenn die Tastatur mit diesen ausgestattet ist, Druckänderungen nach dem Anfangsanschlag der Taste zwischen Position 51 und 52 erfassen. Zum Beispiel kann der Wechsel zwischen Druckzunahme und -abnahme einen Vibratoeffekt erzeugen. Jedoch können MIDI-Nachanschlag-Mcldungen gesetzt werden, um irgendeine Anzahl von Parametern zu steuern, von Portamento und Tremolo zu jenen, die die Textur des Tons vollständig verändern. Der Pfeil 54 bezeichnet das Loslassen der Taste, was schnell oder langsam sein kann.
  • Ein Tonhöhenbiegerad (pitch blend wheel) 62 von 6 oder ein Synthesizer ist ein sehr nützliches Merkmal. Durch Drehen des Rads, während eine Taste niedergehalten wird, kann die Tonhöhe einer Note aufwärts oder abwärts gebogen werden, in Abhängigkeit davon, wie weit das Rad gedreht wird und mit welcher Geschwindigkeit. Das Biegen kann chromatisch erfolgen, d. h., in unterscheidbaren Halbtonschritten oder als kontinuierliches Gleiten.
  • Ein Modulationssteuerrad 64 schickt gewöhnlich Vibrato- oder Tremoloinformation. Es kann in der Form eines Rads oder eines Joysticks verwendet werden, obwohl die Begriffe „Modulationsrad" häufig allgemein verwendet werden, um Modulation anzuzeigen.
  • Ein „LFO" wird häufig in der Musikerzeugung genannt und ist ein Basisbaublock. Das Wort „Frequenz", wie es in dem Acronym LFO (Low Frequency Oszillator bzw. Niederfrequenzoszillator) repräsentiert ist, wird nicht verwendet, um die Tonhöhe direkt zu bezeichnen, sondern die Oszillationsgeschwindigkeit. Ein LFO wird häufig verwendet, um auf eine gesamte Stimme oder ein gesamtes Instrument einzuwirken, und es beeinflusst die Tonhöhe und/oder Amplitude, indem sie auf eine gewisse Geschwindigkeit und Variationstiefe gesetzt wird, wie es in Tremolo (Amplituden) und Vibrato (Tonhöhe) erforderlich ist.
  • SoundFont® Audioformat Charakteristika
  • Ein SoundFont® Audioformat ist ein Datenformat, das sowohl digitale Audioabtastungen als auch Artikulationsanweisungen für einen Wavetablesynthesizer enthält. Die digitalen Audioabtastungen bestimmen, welcher Ton gespielt wird; die Artikulationsanweisungen bestimmen, welche Modifikationen an diesen Daten durchgeführt werden und wie diese Modifikatio nen durch die Vorstellung des Musikers beeinflusst werden. Zum Beispiel könnten die digitalen Audiodaten eine Aufzeichnung einer Trompete sein. Die Artikulationsdaten würden einschließen, wie diese Daten so zu schleifen sind, dass sie die Aufzeichnung an einer gehaltenen Note verlängern, den Grad einer künstlichen Einsatzhüllkurve, der auf die Amplitude anzuwenden ist, wie diese Daten in der Tonhöhe transponiert werden, wenn unterschiedliche Noten gespielt würden, wie die Lautstärke und Filterung des Tons in Antwort auf die „Geschwindigkeit" eines Tastaturtasten-Drucks ändern soll, und wie auf die Fortlaufregler des Musikers (zum Beispiel Modulationsrad) mit Vibrato oder anderen Modifikationen auf den Ton reagiert werden soll.
  • Alle Wavetablesynthesizer brauchen irgend einen Weg, um diese Daten zu speichern. Alle Wavetablesynthesizer, die es dem Verwender erlauben, Töne und Artikulationsdaten zu speichern und zu wechseln, brauchen irgend eine Form eines Dateiformats, in dem diese Daten arrangiert sind. Jedoch ist das SoundFont® Audioformat Version 2.0 in drei spezifischen Arten einzigartig: Es verwendet eine Vielzahl von Techniken, um das Format plattformunabhängig machen zu können, ist leicht editierbar und ist mit künftigen Verbesserungen aufwärts und abwärts kompatibel.
  • Das Sound Font® Audioformat ist ein Austauschformat. Es würde typischerweise auf einer CD ROM, Platte oder einem anderen Austauschformat verwendet werden, um die darunter liegenden Daten von zum Beispiel einem Computer oder Synthesizer zu einem anderen zu bewegen. Sobald es sich in einem bestimmten Computer, Synthesizer oder einer anderen Audioverarbeitungsvorrichtung befindet, kann es typischerweise in ein Format umgewandelt werden, das kein SoundFont® Audioformat ist, durch Zugriff durch ein Anwenderprogramm, das die Daten tatsächlich spielt und artikuliert oder diese anderweitig manipuliert.
  • 7 ist ein Diagramm, das die Hierarchie des SoundFont® Audioformats der vorliegenden Erfindung zeigt. Es sind drei Ebenen gezeigt, eine Abtast(sample)ebene 70, eine Instrumentenebene 72 und eine Voreinstellungs(preset)ebene 74. Die Abtastebene 70 enthält eine Mehrzahl von Abtastungen 76, jeweils mit ihren entsprechenden Abtastparametern 78. An der Instrumentenebene enthält jedes einer Mehrzahl von Instrumenten 80 zumindest eine Instrumentenaufteilung (split) 82. Jeder Instrumentenaufteiler enthält einen Zeiger 84 zu einer Abtastung, zusammen mit, falls anwendbar, entsprechenden Generatoren 86 und Modulatoren 88. Falls gewünscht, können mehrere Instrumente auf die gleiche Abtastung zeigen.
  • In der Voreinstellungsebene enthalten eine Mehrzahl von Voreinstellungen 88 jeweils zumindest eine Voreinstellungsebene 90. Jede Voreinstellungsebene 90 enthält einen Instrumentenzeiger 92 zusammen mit den zugeordneten Generatoren 94 und Modulatoren 96.
  • Ein Generator ist ein Artikulationsparameter, während ein Modulator eine Verbindung zwischen einem Echtzeitsignal und einem Generator ist. Die Abtastparameter tragen zusätzliche Information, die zum Editieren der Abtastung nützlich ist.
  • Generatoren
  • Ein Generator ist ein einziger Artikulationsparameter mit einem Festwert. Zum Beispiel ist die Einsatzzeit der Lautstärkenhüllkurve ein Generator, dessen Absolutwert 1,0 Sekunden betragen könnte.
  • Während die Liste von SoundFont® Audioformatgeneratoren willkürlich erweiterbar ist, folgt eine Basisliste. Der Anhang II enthält eine Liste und eine kurze Beschreibung von SoundFont® Audioformat Version 2.0-Generatoren.
  • Die Basistonhöhe, Filtergrenze und Resonanz sowie die Dämpfung des Tons können gesteuert werden. Es sind zwei Hüllkurven vorgesehen, von denen eine der Lautstärkesteuerung zugeordnet ist und eine der Steuerung von Tonhöhe und/oder Filtergrenze. Diese Hüllkurven haben traditionelle Einsatz-, Abkling-, Halte- und Nachlassphasen, plus einer Verzögerungsphase vor dem Einsatz und einer Haltephase zwischen Einsatz und Abklingen. Es sind zwei LFOs vorgesehen, von denen eine dem Vibrato zugeordnet ist und eine für zusätzliches Vibrato-, Filtermodulation oder Tremolo. Die LFOs können zur Tiefe der Modulation, Frequenz und Verzögerung ab dem Tastendruck bis zum Start programmiert werden. Schließlich wird der Linksrechtsschwenk des Signals, plus der Grad, mit dem es zu den Chor- und Nachhallprozessoren geschickt wird, definiert.
  • Es existieren fünf Arten von Generator-Enumeratoren: Indexgeneratoren, Bereichgeneratoren, Ersatz-Generatoren, Abtastgeneratoren und Wertgeneratoren.
  • Der Betrag eines Indextgenerators ist ein Index in eine andere Datenstruktur. Die nur zwei Indexgeneratoren sind Instrument und Abtast-ID (Sample-ID).
  • Ein Bereichsgenerator definiert einen Bereich von Noteneinschalt-Parametern, außerhalb deren die Ebene oder Aufteilung undefiniert ist. Gegenwärtig sind zwei Bereichsgeneratoren definiert, Tastenbereich (keyRange) und Kel-Bereich (kelRange).
  • Ersatzgeneratoren sind Generatoren, die einen Wert für einen Noteneinschalt-Parameter ersetzen. Gegenwärtig sind zwei Ersatzgeneratoren definiert, ÜberlaufTastennummer (overridingKeyNumber) und Überlaufgeschwindigkeit (overridingVelocity).
  • Abtastgeneratoren sind Generatoren, die die Abtasteigenschaften direkt beeinflussen. Diese Generatoren sind in dem Ebenen-Niveau undefiniert. Die gegenwärtig definierten Abtastgeneratoren sind die acht Adressversatz(address offset)-Generatoren und der Abtastmodi(sampleModes)-Generator).
  • Wertgeneratoren sind Generatoren, deren Wert einen Signalprozessparameter direkt beeinflusst. Die meisten Generatoren sind Wertgeneratoren.
  • Modulatoren
  • Ein wichtiger Aspekt realistischer Musiksynthese ist die Fähigkeit, Instrumentencharakteristiken in Echtzeit zu modulieren. Dies kann auf zwei fundamental unterschiedlichen Wegen erfolgen. Erstens können Signalquellen innerhalb der Synthesemaschine selbst, wie etwa Niederfrequenzoszillatoren (LFOs) und Hüllkurvengeneratoren, die Syntheseparameter wie etwa Tonhöhe, Timbre und Lautheit modulieren. Jedoch kann der Künstler diese Quellen explizit modulieren, gewöhnlich mit MIDI-Fortlaufreglern (MIDI Continuous Controllers) (Ccs).
  • Das SoundFont® Audioformat Version 2.0 bietet eine enorme Flexibilität in der Auswahl und dem Routing der Modulation durch die Verwendung der Modulationsparameter. Ein Modulator drückt eine Verbindung zwischen einem Echtzeitsignal und einem Generator aus. Zum Beispiel ist die Abtasttonhöhe ein Generator. Eine Verbindung von einem Bipolar MIDI Tonhöhenrad-Echtzeit-Fortlaufregler zu einer Abtasttonhöhe mit einer voll skalierten Oktave wäre ein typischer Modulator. Jeder Modulationsparameter spezifiziert eine Modulationssignalquelle, zum Beispiel einen bestimmten MIDI Fortlaufregler und eine Modulationszielstelle, zum Beispiel einen bestimmten SoundFont® Audioformat Generator, wie etwa Filtergrenzfrequenz. Der spezifizierte Modulationsbetrag bestimmt, um welchen Grad (und mit welcher Polarität) die Quelle die Zielstelle moduliert. Eine optionale Modulationstransformation kann die Kurve oder Konizität der Quelle nicht linear verändern, was für zusätzliche Flexibilität sorgt. Schließlich kann die zweite Quelle (Betragsquelle) optional so spezifiziert werden, dass die mit dem Betrag multipliziert wird. Anzumerken ist, dass dann, wenn der zweite Quellenenumerator eine Quelle spezifiziert, die an der Einheit logisch fest ist, der Betrag lediglich den Grad der Modulation steuert.
  • Modulatoren sind unter Verwendung von fünf Nummern spezifiziert, wie in 11 dargestellt. Die Beziehungen zwischen den Nummern sind in 12 dargestellt. Die erste Nummer ist ein Enumerator 140, der die Quelle und das Format der dem Modulator zugeordneten Echtzeitinformation spezifiziert. Die zweite Nummer ist ein Enumerator 142, der den von dem Modulator beeinflussten Generatorparameter spezifiziert. Die dritte Nummer ist ein Zeitquellen(Betragsquellen)-Enumerator 146, wobei aber dieser spezifiziert, dass diese Quelle den Betrag verändert, mit dem die erste Quelle den Generator beeinflusst. Die vierte Nummer 144 spezifiziert den Grad, um den die zweite Quelle die erste Quelle 140 beeinflusst. Die fünfte Nummer ist ein Enumerator 148, der eine Transformationsoperation an der ersten Quelle spezifiziert.
  • Das SoundFont® Audioformat Version 1.0 verwendete Enumeratoren nur für die Generatoren. Da neue Generatoren und Modulatoren etabliert und implementiert sind, wird Software, die diese neuen Merkmale nicht implementiert, ihre Enumeratoren nicht erkennen. Wenn die Software so ausgestaltet ist, dass sie unbekannte Enumeratoren einfach ignoriert, wird eine bidirektionelle Kompatibilität erreicht.
  • Durch Verwendung des Modulationsschemas können extrem komplizierte Modulationsmaschinen spezifiziert werden, wie etwa solche, die in den fortschrittlichsten Abtasttonsynthesizern verwendet werden. In der Anfangsimplementierung des SoundFont® Audioformats Version 2.0 sind verschiedene Standard-Modulatoren definiert. Diese Modulatoren können ausgeschaltet werden oder modifiziert werden, indem dieselbe Quelle, Zielstelle und Transformation mit Null oder Nicht-Standard-Modulationsbetragparametern spezifiziert werden.
  • Die Modulatorstandards schließen die Standard MIDI Regler ein, wie etwa Tonhöhenrad, Vibratotiefe und Lautstärke, sowie auch die MIDI Geschwindigkeitsregelung von Lautheit (Loudness) und Filtergrenze.
  • Die SoundFont® Audioformat-Abtastparameter
  • Die Abtastparameter, die in dem SoundFont® Audioformat Version 2.0 repräsentiert sind, tragen zusätzliche Information, die nicht ausdrücklich erforderlich ist, um den Ton zu reproduzieren, sondern nützlich ist darin, die SoundFont® Audioformatbank weiter zu editieren. 12 ist ein Diagramm des Abtastprogramms. Die ursprüngliche Abtastrate 149 der Abtastung und Zeiger zu dem Abtaststart 150, Halteschleifenstart 152, Halteschleifenende 154 und Abtastende 156-Datenpunkte sind in den Abtastparametern enthalten. Zusätzlich ist die Ursprungstaste 158 der Abtastung in den Abtastparametern spezifiziert. Dies gibt die MIDI Tastennummer an, die dieser Abtastung natürlich entspricht. Ein Null-Wert wird für Töne erlaubt, die der MIDI Tastennummer nicht sinnvoll entsprechen. Schließlich ist eine Tonhöhenkorrektur 160 in den Abtastparametern enthalten, um eine etwaige Fehlstimmung zu erlauben, die in der Abtastung selbst inhärent sein könnte. Auch sind ein Stereoindikator 162 und ein Kopplungskennzeichen (link tag) 164, unten diskutiert, enthalten.
  • SoundFont® Audioformat
  • SoundFont® Audioformat ermöglicht, in einer zu Schriftzeichen analogen Art, die tragbare Herstellung einer Musikkomposition mit den vom Künstler oder Komponisten gewünschten tatsächlichen Timbres. Das SoundFont® Audioformat ist ein portabler erweiterbarer allgemeiner Austauschstandard für Wavetablesynthesizertöne und ihre zugeordneten Artikulationsdaten.
  • Eine SoundFont® Audioformatbank ist eine RIFF-Datei, die Kopfinformation enthält, 16 Bit lineare Abtastdaten und hierarchisch organisierte Artikulationsinformation über die in der Bank enthaltenen MIDI Voreinstellungen. Die RIFF-Dateistruktur ist in 8 gezeigt. Parameter werden auf präzise definierter wahrnehmbar relevanter Basis mit einer adäquaten Auflösung spezifiziert, in Anpassungen an die besten Wiedergabemaschinen. Die Struktur des SoundFont® Audioformats ist sorgfältig gestaltet worden, um eine Erweiterung für beliebig komplizierte Modulations- und Synthesenetzwerke zu erlauben.
  • 9 zeigt das Dateiformatbild für die RIFF-Dateistruktur von B. Der Anhang I enthält eine weitere Beschreibung jeder der Strukturen von 9.
  • 10 stellt die Artikulationsdatenstruktur gemäß der verliegenden Erfindung dar. Die Voreinstellungsebene 74 ist als drei Spalten dargestellt, die die Voreinstellungsköpfe 100, die Voreinstellungsebenen-Indizes 102 und die Voreinstellungsgeneratoren und Modulatoren 104 zeigen. In dem gezeigten Beispiel zeigt ein Voreinstellungskopf 106 auf einen einzigen Generatorindex und Modulatorindex 108 in dem Voreinstellungsebenenindex 102. In einem anderen Beispiel zeigt der Voreinstellungskopf 110 auf zwei Indizes 112 und 114. Es können unterschiedliche Voreinstellungsgeneratoren verwendet werden, wie durch den Ebenenindex 108 dargestellt, der auf den Generator und Betrag 116 zeigt, und ein Generator und Instrumentenindex 118. Andererseits zeigt der Index 112 nur auf einen Generator und Betrag 120 (allgemeine Voreinstellungsebene).
  • Auf die Instrumentenebene 72 wird durch Instrumentenindexzeiger in den Voreinstellungsgeneratoren 104 zugegriffen. Die Instrumentenebene enthält Instrumentenköpfe 122, die auf Instrumentenaufteileranzeigen 124 zeigen. Einem jeden Instrumentenkopf kann ein oder mehrere Aufteilungsindizes zugeordnet werden. Die Instrumentenaufteilungsindizes zeigen wiederum auf bestimmte Instrumentengeneratoren 126. Die Generatoren können nur einen Generator und Betrag (somit eine allgemeine Aufteilung) aufweisen, wie etwa einen Instrumentengenerator 128, oder können einen Zeiger auf eine Abtastung, wie etwa einen Instrumentengenerator 130 enthalten. Schließlich zeigen die Instrumentengeneratoren auf Audioabtastköpfe 132. Die Audioabtastköpfe bieten Information über die Audioabtastung und die Audioabtastung selbst.
  • Einheit-Definitionen
  • Es gibt eine Vielzahl spezifischer Einheiten, die in dieser Schrift genannt werden. Einige dieser Einheiten sind in der Musik- und Tonindustrie üblich. Andere wurden für vorliegende Erfindung gesondert erzeugt. Die Einheiten haben zwei Grundcharakteristiken. Erstens sind alle Einheiten wahrnehmbar additiv. Die verwendeten primären Einheiten sind Prozentanteile, Dezibel (dB) und zwei neu definierte Einheiten, absolute Cents (im Gegensatz zu an sich bekannten Musik-Cents, die die Tonhöhenabweichung messen) und Zeit-Cents.
  • Zweitens haben die Einheiten entweder eine absolute Bedeutung und Bezug auf ein physikalisches Phänomen, oder eine relative Bedeutung in Bezug auf eine andere Einheit. Die Einheiten des Instruments oder die Abtastebene haben häufig eine absolute Bedeutung, d. h., sie bestimmen einen absoluten physikalischen Wert, wie etwa Hz. Jedoch hat in der Voreinstellungsebene derselbe SoundFont® Audioformatparamter nur eine relative Bedeutung, wie etwa Halbtöne und Tonhöhenverschiebung.
  • Relative Einheiten
  • Centibels: Centibels (abgekürzt Cb) sind eine relative Einheit der Verstärkung oder Dämpfung, mit dem Zehnfachen der Empfindlichkeit von Dezibel (dB). Für zwei Amplituden A und B ist die Cb-äquivalente Verstärkungsänderung: Cb = 200 log10 (A/B);ein negativer Cb-Wert gibt an, dass A leiser ist als B. Anzumerken ist, dass in Abhängigkeit von der Definition der Signale A und B eine positive Zahl entweder eine Verstärkung oder Dämpfung anzeigen kann.
  • Cents: Cents sind eine relative Einheit der Tonhöhe. Ein Cent ist 1/1200 einer Oktave. Für zwei Frequenzen F und G werden die Cent der Tonhöhenänderung ausgedrückt durch: Cents = 1200 log2 (F/G);eine negative Zahl von Cents gibt an, dass die Frequenz F niedriger ist als die Frequenz G.
  • Zeit-Cents: Zeit-Cents sind eine neu definierte Einheit, die eine relative Einheit der Dauer sind, das ist eine relative Einheit der Zeit. Für zwei Zeitdauern T und U werden die Zeit-Cents der Zeitänderung ausgedrückt durch: Zeit-Cents = 1200 log2 (T/U);eine negative Zahl von Zeit-Cents gibt an, dass die Zeit T kürzer ist als die Zeit U. Die Ähnlichkeit der Zeit-Cents mit Cents ist aus der Formel ersichtlich. Zeit-Cent ist eine besonders nützliche Einheit zum Ausdrücken der Hüllkurven und Verzögerungszeiten. Sie sind eine wahrnehmbar relevante Einheit mit Skalierungen mit dem Faktor Cents. Insbesondere wenn die Wellenformtonhöhe in Cents geändert wird und die Hüllkurvenzeitparameter in Zeit-Cents, wird die resultierende Wellenform Form-unveränderlich für eine zusätzliche Einstellung eines positiven Versatzes zur Tonhöhe und eine negative Einstellung derselben Größe für alle Zeitparameter.
  • Prozentsatz: Zehntel Prozent der Vollskala ist ein anderes nützliches relatives (und absolutes) Maß. Die Vollskalaeinheit kann dimensionslos sein oder kann in dB, Cents oder Zeit-Cents gemessen werden. Ein relativer Wert von Null gibt an, dass es keine Änderung im Effekt gibt; ein relativer Wert von 1000 gibt an, dass der Effekt um einen vollen Skalenbetrag vergrößert wurde. Ein relativer Wert von –1000 gibt an, dass der Effekt um den vollen Skalenbetrag verringert wurde.
  • Absolute Einheiten
  • Alle Parameter sind in einer physikalisch sinnvollen und gut definierten Art spezifiziert worden. In früheren Formaten, einschließlich dem SoundFont® Audioformat, sind einige der Parameter in maschinenabhängiger Weise spezifiziert worden. Zum Beispiel könnte die Frequenz eines Niederfrequenz modulationsoszillators (LFO) bisher in beliebigen Einheiten von 0 bis 255 ausgedrückt worden sein. In dem SoundFont® Audioformat Version 2.0 sind alle Einheiten in physikalisch referenzierter Form spezifiziert, so dass die LFO-Frequenz in Cents (ein Cent ist ein Hundertstel eines musikalischen Halbtons) relativ zur Frequenz der tiefsten Taste auf der MIDI-Tastatur ausgedrückt wird.
  • Wenn man irgend eine dieser Einheiten absolut spezifiziert, ist eine Referenz erforderlich.
  • Centibels: In dem SoundFont® Audioformat Version 2.0 ist dies allgemeine eine „volle" Note für Centibeleinheiten. Ein Wert von 0 Cb für einen Sound-Font® Audioformatparameter gibt an, dass die Note laut herauskommen wird, wenn diesem der Instrumentenkonstrukteur eine Note „voller" Lautheit zugeordnet hat.
  • Zeit-Cents: Absolute Zeit-Cents werden durch die Formel angegeben:
    Absolute Zeit-Cents = 1200log2 (t), wobei t = Zeit in Sekunden.
  • In dem SoundFont® Audioformat Version 2.0 beträgt die Zeit-Cents-Absolutreferenz 1 Sekunde. Ein Wert von Null repräsentiert eine 1 Sekundenzeit oder 1 Sekunde für einen vollen (96 dB) Übergang.
  • Absolute Cents: Alle Frequenzeinheiten sind in „absoluten Cents". Absolute Cents sind durch die MIDI-Tastennummerskala definiert, wobei 0 die absolute Frequenz der MIDI-Tastennummer 0 ist oder 8,1758 Hz. SoundFont® Audioformat Version 2.0-Parametereinheiten sind gestaltet worden, um eine Spezifikation von gleich oder über die minimale Differenz für den Parameter hinaus zu ermöglichen. Die Einheit von „Cent" ist bei Musikern als 1/100 eines Halbtons gut bekannt, was unter der minimal wahrnehmbaren Differenz der Frequenz liegt.
  • Absolute Cents werden nicht nur für die Tonhöhe verwendet, sondern auch für weniger wahrnehmbare Frequenz, wie etwa die Filtergrenzfrequenz. Obwohl wenige Synthesemaschinen Filter mit dieser Grenzgenauigkeit unterstützen würden, wurde die Einfachheit, eine einzige wahrnehmbare Frequenzeinheit zu haben, als konsistent mit der SoundFont® Audioformat Version 2.0-Philosopie ausgewählt. Synthesemaschinen mit geringeren Auflösungen runden einfach die spezifizierte Filtergrenzfrequenz auf ihr nächstes Äquivalent.
  • Reproduzierbarkeit des SoundFont® Audioformats
  • Die präzise Definition von Parametern ist wichtig, um für die Reproduzierbarkeit einer Vielzahl von Plattformen zu sorgen. Verschiedene Hardwareplattformen haben unterschiedliche Fähigkeiten, wobei aber, wenn die gewünschte Parameterdefinition bekannt ist, eine geeignete Übersetzung der Parameter erlaubt, dass die bestmögliche Wiedergabe des SoundFont® Audioformats auf jeder Plattform möglich ist.
  • Zum Beispiel betrachte man die Definition der Lautstärkehüllkurven-Einsatzzeit. Diese ist in dem SoundFont® Audioformat Version 2.0 definiert als die Zeit ab dann, wenn die Lautstärkehüllkurvenabklingzeit ausläuft, bis die Lautstärkenhüllkurve ihre Spitzenamplitude erreicht hat. Die Einsatzform definiert als lineare Zunahme der Amplitude während der gesamten Einsatzphase. So wird das Verhalten des Audio innerhalb der Einsatzphase komplett definiert.
  • Eine bestimmte Synthesemaschine kann ohne lineare Amplitudenzunahme als physikalischer Eigenschaft konstruiert werden. Insbesondere erzeugen einige Synthesemaschinen ihre Hüllkurven als Sequenzen mit konstanten dB/sec-Rampen, die auf feste dB-Endpunkte fixiert sind. Eine solche Synthesemaschine würde einen linearen Einsatz als eine Folge. mehrerer seiner ursprünglichen Rampen simulieren müssen. Die gesamte abgelaufene Zeit dieser Rampen würde auf die Einsatzzeit gesetzt, und die relativen Höhen der Rampenendpunkte würden auf angenäherte Punkte der linearen Amplitudeneinsatztrajektorie gesetzt. Es können ähnliche Techniken verwendet werden, um andere SoundFont® Audioformat Version 2.0 Parameterdefinitionen zu simulieren, wenn dies erforderlich ist.
  • Wahrnehmbar additive Einheiten
  • Alle SoundFont® Version 2.0 Audioformateinheiten, die editiert werden können, werden in Einheiten ausgedrückt, die „wahrnehmbar additiv" sind. Allgemein gesagt bedeutet dies, dass durch Addition desselben Betrags zu zwei unterschiedlichen Werten eines gegebenen Parameters die Wahrnehmung sein wird, dass die Änderung in beiden Fällen den gleichen Grad hat. Wahrnehmbar additive Einheiten sind besonders nützlich, weil sie das Editieren oder die Veränderung von Werten in einfacher Weise erlauben.
  • Die Eigenschaft der wahrnehmbaren Additivität kann genauer wie folgt definiert werden. Wenn die Messeinheiten eines wahrnehmbaren Phänomens in einem bestimmten Kontext wahrnehmbar additiv sind, wird für einen beliebigen von vier Messwerten W, X, Y und Z, wobei W = D + X und Y = D + Z (D ist eine Konstante) ist, die wahrgenommene Differenz von X zu W die gleiche sein wie die wahrgenommene Differenz von Z zu Y.
  • Für die meisten Phänomene, die über einen weiten Bereich von Werten wahrgenommen werden können, sind wahrnehmbar additive Einheiten typischerweise logarithmisch. Wenn eine logarithmische Skala verwendet wird, gelten die folgenden Beziehungen:
    Figure 00280001
  • Der Logarithmus von 0.1 ist somit –1, und der Logarithmus von 100 ist gleich 2. Wie ersichtlich, erhöht die Addition desselben Werts von zum Beispiel 1 zu jedem Log (Wert) den darunter liegenden Wert in jedem Falle um das Zehnfache.
  • Wenn wir versuchen, zum Beispiel wahrnehmbar additive Einheiten der Tonintensität zu bestimmen, stellen wir fest, dass diese logarithmische Einheiten sind. Eine übliche logarithmische Einheit der Tonintensität ist das Dezibel (dB). Es ist definiert als das Zehnfache des Logarithmus zur Basis 10 des Intensitätsverhältnisses zweier Töne. Indem man einen Ton als Referenz definiert, kann auch ein Absolutmaß der Tonintensität etabliert werden. Es kann experimentell verifiziert werden, dass die wahrgenommene Differenz in der Lautheit zwischen einem Ton bei 40 Dezibel und einem bei 50 Dezibel in der Tat die gleiche ist wie die wahrgenommene Differenz zwischen einem Ton bei 80 dB und einem bei 90 dB. Dies wäre nicht der Fall, wenn die Tonintensität in physikalischer CGS-Einheit von Erg pro Kubikzentimeter gemessen würde.
  • Eine andere wahrnehmbar additive Einheit ist die Messung der Tonhöhe in Musik-Cents. Die ist leicht ersichtlich, indem man sich erinnert, dass ein Musik-Cent 1/100 eines Halbtons ist und ein Halbton 1/12 einer Oktave ist. Eine Oktave ist natürlich ein logarithmisches Maß der Frequenz, die eine Verdopplung impliziert. Musiker werden leicht erkennen, dass das Transponieren einer Sequenz von Noten um eine feste Anzahl von Cents, Halbtönen oder Oktaven alle Tonhöhen um eine wahrnehmbar identische Differenz verändert, was die Melodie in Takt lässt.
  • Eine SoundFont® Audioformateinheit, die nicht strikt logarithmisch ist, ist das Maß des Grads von Nachhall und Chorprozessen. Die Einheiten dieser Generatoren sind ausgedrückt als Prozentsatz der Gesamtamplitude eines Tons, der zu dem zugeordneten Prozessor geschickt werden soll. Jedoch ist es richtig, dass die wahrgenommene Differenz zwischen einem. Ton mit 0% Nachhall und einem solchen mit 10% Nachhall die gleiche ist wie die Differenz zwischen einem solchen mit 90% Nachhall und einem solchen mit 100% Nachhall. Der Grund für diese Abweichung von strikt logarithmischen Beziehung (wir könnten erwartet haben, dass die Differenz zwischen 1% und 2% gleich den 50% und 100%, die wahrnehmbar additiven Einheiten logarithmisch hatte) ist, dass wir den Grad des Nachhalls gegenüber dem vollen Pegel des direkten oder unverarbeiteten Tons vergleichen.
  • Da die Zeit typischerweise in linearen Einheiten wie etwa Sekunden ausgedrückt wird, sieht die vorliegende Erfindung ein neues Maß der Zeit vor, genannt „Zeit-Cents", oben definiert auf einer logarithmischen Skala. Wenn Phänomene wie etwa der Einsatz und das Abklingen von Musiknoten wahrgenommen werden, ist die Zeit in einer logarithmischen Skala wahrnehmbar additiv. Es kann gesehen werden, dass diese, wie Intensität und Tonhöhe, einer proportionalen Änderung in dem Wert entspricht. In anderen Worten, die wahrgenommene Differenz zwischen 10 Millisekunden und 20 Millisekunden ist die gleiche wie jene zwischen einer Sekunde und zwei Sekunden; sie sind beide eine Verdopplung.
  • Zum Beispiel wird die Hüllkurvenabklingzeit nicht nur in Sekunden oder Millisekunden gemessen, sondern in Zeit-Cents. Ein absolutes Zeit-Cent ist definiert als das 1200fache des Zweier-Logarithmus der Zeit in Sekunden. Ein relatives Zeit-Cent ist das 1200fache des Zweier-Logarithmus des Verhältnisses der Zeiten.
  • Die Spezifikation der Hüllkurvenabklingzeit in Zeit-Cent erlaubt eine additive Modifikation der Abklingzeit. Wenn zum Beispiel ein bestimmtes Instrument, das in einem Satz von Instrumentenaufteilungen enthalten ist, die Hüllkurvenabklingzeiten von 200 msec. am tiefen Ende der Tastatur und 20 msec. am hohen Ende überspannen, könnte eine Voreinstellung ein relatives Zeit-Cent addieren, das ein Verhältnis von 1,5 repräsentiert, und eine Voreinstellung erzeugen, die eine Verzögerungszeit von 300 msec. am tiefen Ende der Tastatur und 30 msec. am hohen Ende ergäbe. Wenn ferner die MIDI Tastennummer angewendet wird, um die Hüllkurvenabklingzeit zu modulieren, ist es zweckdienlich, mit einem gleichen Verhältnis pro Oktave zu skalieren anstatt einer festen Anzahl von msec. pro Oktave. Dies bedeutet, dass eine feste Anzahl von Zeit-Cents pro MIDI Tastennummer-Abweichung zu der Standardabklingzeit in Zeit-Cents addiert werden.
  • Die gewählten Einheiten sind alle wahrnehmbar additiv. Dies bedeutet, dass dann, wenn ein relativer Ebenen-Parameter zu einer Vielzahl darunter liegender Aufteilungsparameter addiert wird, die resultierenden Parameter wahrnehmbar mit Abstand voneinander angeordnet sind, in der gleichen Weise wie in dem ursprünglichen Instrument. Wenn zum Beispiel die Lautstärkehüllkurveneinsatzzeit in msec. ausgedrückt würde, hätte eine typische Tastatur sehr schnelle Einsatzzeiten von 10 msec. bei den hohen Noten und langsamere Einsatzzeiten von 100 msec. an den tiefen Noten. Wenn die relative Ebene auch in den wahrnehmbar nicht additiven Millisekunden ausgedrückt würde, dann würde ein additiver Wert von 10 msec. die Einsatz zeit für die hohen Noten verdoppeln, während er die tiefen Noten um nur 10% verändern würde. Das SoundFont® Audioformat Version 2.0 löst dieses besondere Dilemma durch die Erfindung eines logarithmischen Zeitmaßes, gedoppelter „Zeit-Cents", was wahrnehmbar additiv ist.
  • Im gesamten SoundFont® Audioformat Version 2.0 sind ähnliche Einheiten (Cents, dB und Prozentsätze) angewendet worden. Durch die Verwendung wahrnehmbar additiver Einheiten sorgt das SoundFont® Audioformat Version 2.0 für die Fähigkeit, ein vorhandenes „Instrument" anwenderbezogen zu machen, indem einfach ein relativer Parameter zu diesem Instrument hinzugefügt wird. In dem obigen Beispiel wurde die Einsatzzeit verlängert, während die charakteristische Einsatzzeitbeziehung über die Tastatur hinweg noch beibehalten wurde. Es kann jeder andere Parameter ähnlich eingestellt werden, um hierdurch für ein leichtes und effizientes Editieren von Voreinstellungen zu sorgen.
  • Tonhöhe der Abtastung
  • Ein einzigartiger Aspekt des SoundFont® Audioformats Version 2.0 ist die Art, in der die Tonhöhe der abgetasteten Daten beibehalten wird. In früheren Formaten gab es zwei Ansätze. In dem einfachsten Ansatz wird in einer „Grund(root)" Tastaturtaste eine einzige Zahl beibehalten, die die gewünschte Tonhöhenverschiebung ausdrückt. Diese einzige Zahl muss aus der Abtastrate der Abtastung berechnet werden, der Ausgabeabtastrate des Synthesizers, der gewünschten Tonhöhe der Grundtaste und einem etwaigen Stimmfehler der Abtastung selbst.
  • In anderen Ansätzen wird die Abtastrate der Abtastung sowie auch eine etwaig gewünschte Tonhöhenkorrektur beibehalten. Wenn die „Grund"-Taste gespielt wird, ist die Tonhöhenverschiebung gleich dem Verhältnis der Abtastrate der Abtastung zu der Ausgabe-Abtastrate, die durch eine etwaige Korrektur verändert ist. Korrekturen aufgrund von Abtaststimmfehlern sowie denen, die willkürlich benötigt werden, um einen speziellen Effekt zu erzeugen, werden kombiniert.
  • Das SoundFont® Audioformat Version 2.0 behält für jede Abtastung nicht nur die Abtastrate der Abtastung bei, sondern auch die ursprüngliche Taste, die dem Ton entspricht, eine etwaige Stimmkorrektur, die der Probe zugeordnet ist, und eine etwaige willkürliche Stimmänderung (die willkürliche Stimmänderung wird auf der Instrumentenebene beibehalten). Wenn zum Beispiel eine 44,1 kHz-Abtastung des mittleren C eines Klaviers durchgeführt wurde, würde die dem MIDI mittleren C zugeordnete Zahl 60 als die „ursprüngliche Taste" zusammen mit 44100 gespeichert. Wenn ein Tondesigner bestimmt hat, dass die Aufzeichnung um zwei Cents zu tief war, würde auch eine zwei Cent-positive Tonhöhenkorrektur gespeichert werden. Diese drei Zahlen würden auch dann nicht verändert, wenn die Platzierung der Abtastung im SoundFont® Audioformat nicht so war, dass das mittlere C der Tastatur die Probe ohne Tonhöhenverschiebung gespielt wurde. Das SoundFont® Audioformat hält eine „Grund"-Taste separat bei, der Standardwert diese natürliche Taste ist, die jedoch verändert werden kann, um die effektive Platzierung der Abtastung auf der Tastatur zu verändern und eine Grob- und Feinstimmung, um beliebige Tonhöhenänderungen zu erlauben.
  • Der Vorteil eines solchen Formats kommt dann zum Tragen, wenn ein SoundFont® Audioformat editiert werden soll. Auch wenn in diesem Fall die Platzierung der Abtastung verändert wird, wenn der Tondesigner die Abtastung in einem anderen Instrument verwenden will, sind die korrekte Abtastrate (die die natürliche Bandbreite angibt), die ursprüngliche Taste (die die Quelle des Tons angibt) und die Tonhöhenkorrektur (so dass er die exakte Tonhöhe nicht erneut bestimmen muss) verfügbar.
  • Das SoundFont® Audioformat Version 2.0 sorgt dafür, dass ein „unverstellter" Wert (üblich –1) für die ursprüngliche Taste verwendet wird, wenn der Ton keine musikalische Tonhöhe hat.
  • Stereo-Kennungen
  • Ein anderer einzigartiger Aspekt des SoundFont® Audioformats Version 2.0 ist die Art, in der Stereoabtastungen gehandhabt werden. Stereoabtastungen sind besonders nützlich, wenn ein Musikinstrument wiedergegeben wird, das ein zugeordnetes Tonfeld aufweist. Ein Klavier ist ein gutes Beispiel. Die tiefen Noten eines Klaviers erscheinen so, dass sie von links kommen, während die hohen Noten von rechts kommen. Stereoabtastungen können dem Ton auch ein Raumgefühl geben, das fehlt, wenn eine einzige monophone Abtastung verwendet wird.
  • in früheren Formaten sind spezielle Vorkehrungen in dem Äquivalent der Instrumentenebene vorgesehen, um Stereoabtastungen aufzunehmen. In dem SoundFont® Audioformat Version 2.0 wird die Abtastung selbst als Stereo gekennzeichnet (Indikator 162 in 12), und hat den Ort seiner Passung in derselben Kennung (Kennung 164 in 12). Dies bedeutet, dass dann, wenn das SoundFont® Audioformat editiert wird, eine Stereoabtastung als Stereo beibehalten werden kann, ohne sich auf das Instrument beziehen zu müssen, in dem die Abtastung verwendet wird.
  • Das Format kann auch erweitert werden, um noch größere Grade der Abtastungs-Zuordnungsfähigkeit zu unterstützen. Wenn eine Abtastung einfach als „gekoppelt" gekennzeichnet wird, mit einem Zeiger zu einem ande ren Element des gekoppelten Satzes, die alle auf ähnliche Weise kreisförmig gekoppelt (gelinkt) sind, dann können dreifache, vierfache oder noch mehr Abtastungen für eine spezielle Bearbeitung beibehalten werden.
  • Verwendung identischer Daten zum Beseitigen von Interpolator-Inkompatibilität
  • Wavetablesynthesizer verschieben typischerweise die Tonhöhe der Audioabtastdaten, die sie spielen, durch einen als Interpolation bekannten Prozess. Dieser Prozess nähert den Wert des ursprünglichen analogen Audiosignals durch Ausführung mathematischer Operationen auf irgend eine Anzahl bekannter Abtastdatenpunkten an, die den erforderlichen analogen Datenort umgeben.
  • Eine billige, jedoch etwas schwache Methode der Interpolation entspricht dem, zwischen zwei benachbarten Datenpunkten eine Linie zu ziehen. Diese Methode wird „lineare Interpolation" genannt. Eine teurere und hörbar bessere Methode berechnet statt dessen eine Kurvenfunktion unter Verwendung von N benachbarten Daten, angenähert eine gedoppelte N Interpolation.
  • Weil diese Methoden üblicherweise benutzt werden, muss jedes Format, das zwischen beiden Systemtypen portabel sein soll, in beiden adäquat arbeiten. Während die Qualität der linearen Interpolation die letztendliche Wiedergabetreue von dieser Technik verwendeten Systemen begrenzt, tritt eine tatsächliche Umkehr der Wiedergabetreue auf, wenn ein Schleifenpunkt in einer Abtastung definiert und unter Verwendung linearer Interpolation strikt getestet wird.
  • Abtastungen werden geschleift, um beliebig lang dauernde Noten zu erzeugen. Wenn in einer Abtastung eine Schleife auftritt, wird der Schleifenendpunkt (170 in 3) logisch gegenüber dem (hoffentlich äquivalenten) Schleifenstartpunkt (172 in 3) gespleißt. Wenn ein solcher Spleiß ausreichend glatt ist, tritt kein Schleifenartefakt auf.
  • Leider ist, wenn eine Interpolation ins Spiel kommt, mehr als eine Abtastung in der Reproduktion der Ausgabe involviert. Bei einer linearen Interpolation reicht es aus, dass der Wert des Abtastdatenpunkts am Ende der Schleife (scheinbar) identisch mit dem Wert des Abtastdatenpunkts am Start ist. Wenn jedoch die Berechnung der interpolierten Audiodaten sich über die benachbarten zwei Punkte hinaus erstreckt, beginnen Daten außerhalb der Schleifengrenze damit, den Ton der Schleife zu beeinträchtigen. Wenn diese Daten keine artefaktfreie Schleife unterstützt, kann während der Schleifenwiedergabe ein Klicken und Summen auftreten.
  • Der SoundFont® Audioformat Version 2.0 Standard bietet eine neue Technik zur Beseitigung solcher Probleme. Der Standard verlangt, dass die benachbarten acht Punkte, die die Schleifenstart- und -endpunkte umgeben, zwangsweise entsprechend identisch gemacht werden. Mehr als acht Endpunkte sind nicht erforderlich; Experimente zeigen, dass die durch solche entfernten Daten erzeugten Artefakte nicht hörbar sind, auch wenn sie in der Interpolation verwendet werden. Das Erzwingen, dass die Datenpunkte entsprechend identisch sind, garantiert, dass alle Interpolatoren, unabhängig der Ordnung, artefaktfreie Schleifen erzeugen.
  • Es kann eine Vielzahl von Techniken zum Ändern der Audioabtastdaten angewendet werden, so dass sie zu dem Standard passen. Ein Beispiel wird wie folgt angegeben. Durch ihre Eigenschaft sind die Schleifenstart- und endpunkte in ihren Zeitdomänen-Wellenformen ähnlich. Wenn ein kurzes (5 bis 20 Millisekunden) Dreieckfenster mit einer flachen Neun-Abtastungs-Oberseite auf beide Schleifen angewendet wird, werden die resultierenden zwei Wellenformen gemittelt, indem jedes Punktepaar addiert und durch zwei geteilt wird, wird ein resultierendes Schleifenkorrektursignal erzeugt. Wenn dieses Signal nun in den Start und das Ende der Schleife übergeblendet wird, werden die Daten zwangsweise identisch, mit scheinbar keiner Unterbrechung der ursprünglichen Daten.
  • Mathematisch ausgedrückt, wenn Xs der Abtastdatenpunkt am Start der Schleife ist, Xθ der Abtastdatenpunkt am Schleifenende ist und die Abtastrate 50 kHz beträgt, dann können wir das Schleifenkorrektursignal Ln bilden:
    Für n von –253 bis –5: Ln = (254 + n)(X(s+n) + X(e+n))/500
    Für n von –4 bis 4: Ln = (X(s+n) + X(e+n))/2
    Für n von 5 bis 253: Ln = (259 – n)(X(s+n) + X(e+n))/500
  • Das Überblenden erfolgt ähnlich um sowohl den Schleifenstart als auch das Schleifenende herum:
    Für n von –253 bis –5: X'(s+n) = (245 + n)Ln/250 + (–4 – n)X(s+n)/250Für n von –4 bis 4: X'(s+n) = Ln
    Für n von 5 bis 253: X'(s+ n) = (259 – n)Ln/250 + (–4 + n)X(s+n)/250Für n von –253 bis –5: X'(e+n) = (254 + n)Ln/250 + (–4 – n)X(e+n)/250Für n von –4 bis 4: X'(e+n) = Ln
    Für n von 5 bis 253: X'(e+n) = (254 – n)Ln/250 + (–4 + n)X(e+n)/250
  • Aus den mathematischen Gleichungen sollte klar sein, dass die Funktionen vereinfacht werden können, indem die Mittelwertbildungs- und Überblendoperationen kombiniert werden.
  • Wie für den Fachmann verständlich ist, kann die vorliegende Erfindung in anderen spezifischen Formen verkörpert werden, ohne von ihren Charakteristika abzuweichen, wie sie in den beigefügten Ansprüchen definiert sind. Zum Beispiel könnten andere Einheiten, die wahrnehmbar additiv sind, anstatt derjenigen verwendet werden, die oben angegeben sind. Zum Beispiel könnte die Zeit als logarithmischer Wert ausgedrückt werden, multipliziert mit etwas anderem als 1200, oder könnte in Form eines Prozentsatzes ausgedrückt werden. Dementsprechend dient die vorstehende Beschreibung zur Veranschaulichung der Erfindung, und zum Verständnis des Umfangs der Erfindung sollte auf die folgenden Ansprüche Bezug genommen werden.
  • ANHANG 1
  • 4 SoundFond 2 RIFF Dateiformat
  • 4.1 SoundFond 2 RIFF Dateiformatebene 0
    Figure 00390001
  • 4.2 SoundFound 2 RIFF Dateiformatebene 1
    Figure 00390002
  • Figure 00400001
  • 4.3 SoundFont 2 RIFF Dateiformatebene 2
    Figure 00400002
  • 4.4 SoundFont 2 RIFF Dateiformatebene 3
    Figure 00410001
  • Figure 00420001
  • 4.5 SoundFont 2 RIFF Dateiformat-Typdefinitionen
  • Die sfModulator, sfGenerator und sfTransformationstypen sind alle Enumeratortypen, deren Werte in den nachfolgenden Abschnitten definiert sind.
  • Ein genAmountType ist eine Einheit, die signierte 16 Bit, unsignierte 16 Bit und zwei unsignierte 8 Bit Felder zulässt:
    Figure 00430001
  • Das SFSampleLink ist ein Enumeratortyp, der sowohl den Typ der Abtastung beschreibt (Mono, Stereo links, etc.), und ob die Abtastung einem RAM- oder ROM-Speicher lokalisiert ist:
    Figure 00430002
  • 5 Das INFO-list Chunk
  • Das INFO-list chunk in einer SoundFont 2 kompatiblen Datei enthält drei obligate und eine Vielzahl optionaler Subchunks, wie unten definiert. Das INFO-list chunk gibt Basisinformation über die SoundFont kompatible Bank, die in der Datei enthalten ist.
  • 5.1 Das ifil-Subchunk
  • Das ifil-Subchunk ist ein obligates Subchunk, das die SoundFont Spezifikationsversions-Ebene identifiziert, zu der die Datei gehört. Es hat immer eine Länge von vier Bytes und enthält Daten entsprechend der Struktur:
    Figure 00440001
  • Das Wort wMajor enhält den Wert links des Dezimalpunkts der SoundFont Spezifikations-Version, das Wort wMinor enthält den Wert rechts des Dezimalpunkts. Zum Beispiel wäre die Version 2.11 impliziert, wenn wMajor = 2 und wMinor = 11.
  • Diese Werte können durch Anwendungen benutzt werden, die SoundFont kompatible Dateien lesen, um zu bestimmen, ob das Format der Datei von dem Programm verwendbar ist. Innerhalb eines festen wMajor sind die einzigen Änderungen in dem Format die Zuführung von Generator-, Quell- und Transformations-Enumeratoren und zusätzliche Informations-Subchunks. Diese sind alle so definiert, dass sie ignoriert werden, wenn sie für das Programm unbekannt sind. Demzufolge können viele Anwendungen so konstruiert werden, dass sie innerhalb eines gegebenen wMajor vollständig aufwärts kompatibel sind. Im Falle von Editoren oder anderen Programmen, in denen alle Enumeratoren bekannt sein sollten, könnte der Wert von wMinor wichtig sein. Allgemein wird das Anwenderprogramm die Datei entweder als verwendbar akzeptieren (gegebenenfalls mit einer geeigneten transpa renten Übersetzung), die Datei als unbenutzbar zurückweisen oder den Verwender warnen, dass in der Datei uneditierbare Daten vorhanden sein können.
  • Wenn das ifil-subchunk fehlt oder seine Größe nicht vier Bytes beträgt, sollte die Datei als strukturell schlecht zurückgewiesen werden.
  • 5.2 Das isng-Subchunk
  • Das isng-Subchunk ist ein obligates Subchunk, das die Wavetable-Soundmaschine identifiziert, für die die Datei optimiert war. Es enthält einen ASCII-Strang von 256 oder weniger Bytes, einschließlich einem oder zweier Terminatoren vom Wert Null, um die Bytezahl insgesamt gerade zu machen. Das Standard-isng-Feld sind die acht Bytes, die „EMU8000" repräsentieren, als sieben ASCII-Zeichen, gefolgt durch ein Null-Byte.
  • Das ASCII sollte fallabhängig behandelt werden. In anderen Worten, „emu8000" ist nicht dasselbe wie „EMU8000".
  • Der isgn-Strang kann optional durch Chiptreiber benutzt werden, um ihre Synthesealgorithmen zu verändern, um die gewünschte Soundmaschine zu emulieren.
  • Wenn das isng-Subchunk fehlt, nicht durch ein nullwertiges Byte beendet ist oder seine Inhalte eine unbekannte Soundmaschine sind, sollte das Feld ignoriert werden und EMU8000 angenommen werden.
  • 5.3 Das INAM-Subchunk
  • Das INAM-Subchunk ist ein obligates Subchunk, das den Namen der SoundFont kompatiblen Bank vorsieht. Es enthält einen ASCII-Strang von 256 oder weniger Bytes einschließlich einem oder zweier Terminatoren vom Wert Null, um die gesamte Bytezahl gerade zu machen. Ein typisches INAM-Subchunk würde daher vierzehn Bytes betragen, die „General MIDI" repräsentieren, als zwölf ASCII-Zeichen, gefolgt durch zwei Null-Bytes.
  • Das ASCII sollte als fallabhängig behandelt werden. In anderen Worten „General MIDI" ist nicht dasselbe wie „GENERAL MIDI".
  • Der inam-Strang wird typischerweise zum Identifizieren von Bänken benutzt, auch wenn die Dateinamen verändert werden.
  • Wenn das inam-Subchunk fehlt oder nicht in einem nullwertigen Byte endet, sollte das Feld ignoriert werden und dem Benutzer eine geeignete Fehlermitteilung gegeben werden, wenn der Name abgefragt wird. Wenn die Datei umgeschrieben ist, sollte ein gültiger Name in das INAM-Feld eingesetzt werden.
  • 5.4 Das irom-Subchunk
  • Das irom-Subchunk ist ein optionales Subchunk, das ein bestimmtes Wavetable-Sounddaten-ROM identifiziert, auf das sich etwaige ROM-Abtastungen beziehen. Es enthält einen ASCII-Strang von 256 oder weniger Bytes einschließlich einem oder zweier Terminatoren vom Wert Null, um die gesamte Bytezahl gerade zu machen. Ein typisches irom-Feld würde sechs Bytes betragen, die „IMGM" repräsentieren, sowie vier ASCII-Zeichen, gefolgt durch zwei Null-Bytes.
  • ASCII sollte als fallabhängig behandelt werden. In anderen Worten „1 mgm" ist nicht dasselbe wie „1 MGM".
  • Der irom-Strang wird von Treibern benutzt, um zu verifizieren, dass die durch diese Datei referenzierten ROM-Daten für die Soundmaschine verfügbar sind.
  • Wenn das irom-Subchunk fehlt oder nicht in einem nullwertigen Byte endet oder seine Inhalte ein unbekanntes ROM sind, sollte das Feld ignoriert werden und angenommen werden, dass die Datei sich auf keine ROM-Abtastungen bezieht. Wenn auf ROM-Abtastungen zugegriffen wird, sollte ein etwaiger Zugriff zu solchen Instrumenten beendet werden und nicht ertönen. Es sollte keine Datei geschrieben werden, die versucht, auf ROM-Abtastungen zuzugreifen, ohne dass sowohl irom als auch iver vorhanden und gültig sind.
  • 5.5 Das iver-Subchunk
  • Das iver-Subchunk ist ein optionales Subchunk, das die jeweilige Wavetable-Sounddaten-ROM-Version identifiziert, auf das sich etwaige ROM-Abtastungen beziehen. Es hat immer eine Länge von vier Bytes und enthält Daten entsprechend der Struktur:
    Figure 00470001
  • Das Wort wMajor enthält den Wert links des Dezimalpunkts in der ROM-Version, und das Wort wMinor enthält den Wert rechts des Dezimalpunkts. Zur Beispiel würde die Version 1.36 impliziert, wenn wMajor = 1 und wMinor = 36.
  • Das iver-Subchunk wird von Treibern benutzt, um zu verifizieren, dass die durch die Datei referenzierten ROM-Daten in den exakten Orten lokalisiert sind, die durch die Soundköpfe spezifiziert sind.
  • Wenn das iver-Subchunk fehlt, nicht vier Bytes lang ist oder seine Inhalte ein unbekanntes oder unkorrektes ROM anzeigen, sollte das Feld ignoriert werden und angenommen werden, dass sich die Datei auf keine ROM-Abtastungen bezieht. Wenn auf ROM-Abtastungen zugegriffen wird, sollte jeder Zugriff auf solche Instrumente beendet werden und nicht ertönen. Damit übrigens ROM-Abtastungen korrekt funktionieren, müssen sowohl iver als auch irom vorhanden und gültig sein. Es sollte keine Datei geschrieben werden, die versucht, auf ROM-Abtastungen zuzugreifen, ohne dass sowohl irom als auch iver vorhanden und gültig sind.
  • 5.6 Das ICRD-Subchunk
  • Das ICRD-Subchunk ist ein optionales Subchunk, das das Entstehungsdatum der SoundFont kompatiblen Bank identifiziert. Es enthält einen ASCII-Strang von 256 oder weniger Bytes, einschließlich einem oder zweier Terminatoren vom Wert Null, um die gesamte Bytezahl gerade zu machen. Ein typisches ICRD-Feld würde zwölf Bytes betragen, die „May 1, 1995" repräsentiert, als elf ASCII-Zeichen, gefolgt durch ein Null-Byte.
  • Herkömmlich ist das Format des Strangs „Monat, Tag, Jahr", wobei der Monat anfänglich groß geschrieben wird und die übliche volle englische Schreibweise des Monats ist, Tag das Datum in Dezimalen ist, gefolgt durch ein Komma, und das Jahr das volle dezimale Jahr ist. Somit sollte das Feld üblicherweise niemals länger sein als 32 Bytes.
  • Der ICRD-Strang ist für Bibliothek-Managementzwecke vorgesehen.
  • Wenn das ICRD-Subchunk fehlt, nicht in einem nullwertigen Byte endet oder aus irgend einem Grund unfähig ist, richtig als ASCII-Strang kopiert zu werden, sollte das Feld ignoriert werden, und sollte, falls umgeschrieben, nicht kopiert werden. Wenn die Inhalte des Felds nicht sinnvoll erscheinen, aber richtig reproduziert werden können, sollte dies gemacht werden.
  • 5.7 Das IENG-Subchunk
  • Das IENG-Subchunk ist ein optionales Subchunk, das die Namen etwaiger Sounddesigner oder Ingenieure identifiziert, die für die SoundFont kompatible Bank verantwortlich sind. Es enthält einen ASCII-Strang von 256 oder weniger Bytes einschließlich einem oder zweier Terminatoren vom Wert Null, um die gesamte Bytezahl gerade zu machen. Ein typisches IENG-Feld würde die zwölf Bytes betragen, die „Tim Swartz" repräsentieren, als zehn ASCII-Zeichen, gefolgt durch zwei Null-Bytes.
  • Der IENG-Strang ist für Bibliotheks-Managementzwecke vorgesehen.
  • Wenn das IENG-Subchunk fehlt, nicht in einem nullwertigen Byte endet oder aus irgend einem Grund unfähig ist, richtig als ASCII-Strang kopiert zu werden, sollte das Feld ignoriert werden, und sollte, falls umgeschrieben, nicht kopiert werden.
  • Wenn die Inhalte des Felds nicht sinnvoll erscheinen, aber richtig reproduziert werden können, sollte dies gemacht werden.
  • 5.8 Das IPRD-Subchunk
  • Das IPRD-Subchunk ist ein optionales Subchunk, das irgend ein spezifisches Produkt identifiziert, für das die SoundFont kompatible Bank dienen soll. Es enthält einen ASCII-Strang von 256 oder weniger Bytes einschließlich einem oder zweier Terminatoren vom Wert Null, um die gesamte Bytezahl gerade zu machen. Ein typisches IPRD-Feld wären die acht Bytes, die „SBAWE32" repräsentieren, als sieben ASCII-Zeichen, gefolgt durch ein Null-Byte.
  • Das ASCII sollte als fallabhängig behandelt werden. In anderen Worten, „sbawe32" ist nicht dasselbe wie „SBAWE32".
  • Der IPRD-Strang ist für Bibliotheks-Managementzwecke vorgesehen.
  • Wenn das IPRD-Subchunk fehlt, nicht in einem nullwertigen Byte endet oder aus irgend einem Grund unfähig ist, richtig als ASCII-Strang kopiert zu werden, sollte das Feld ignoriert werden, und sollte, falls umgeschrieben, nicht kopiert werden. Wenn die Inhalte des Felds nicht sinnvoll erscheinen, aber richtig reproduziert werden können, sollte dies gemacht werden.
  • 5.9 Das ICOP-Subchunk
  • Das ICOP-Subchunk ist ein optionales Subchunk, das einen etwaigen Urheberrecht-Strang enthält, der der SoundFont kompatiblen Bank zugeordnet ist. Es enthält einen ASCII-Strang von 256 oder wenige Byte einschließlich einem oder zweier Terminatoren vom Wert Null, um die gesamte Bytezahl gerade zu machen. Ein typisches ICOP-Feld wären die 40 Byte, die „Copyright (c) 1995 E-mu Systems, Inc." repräsentieren, als 38 ASCII-Zeichen, gefolgt durch zwei Null-Bytes.
  • Der ICOP-Strang ist zu Zwecken des Schutzes von geistigem Eigentum und Management vorgesehen.
  • Wenn das ICOP-Subchunk fehlt, nicht in einem nullwertigen Byte endet oder aus irgend einem Grund unfähig ist, richtig als ASCII-Strang kopiert zu werden, sollte das Feld ignoriert werden, und sollte, falls umgeschrieben, nicht kopiert werden. Wenn die Inhalte des Felds nicht sinnvoll erscheinen, aber richtig reproduziert werden können, sollte dies gemacht werden.
  • 5.10 Das ICMT-Subchunk
  • Das ICMT-Subchunk ist ein optionales Subchunk, das etwaige Kommentare enthält, die der SoundFont kompatiblen Bank zugeordnet sind. Es enthält einen ASCII-Strang von 65.536 oder weniger Byte, einschließlich einem oder zweier Terminatoren vom Wert Null, um die gesamte Bytezahl gerade zu machen. Ein typisches ICMT-Feld wäre die 40 Byte, die „Dieser Raum ist unbeabsichtigt leer geblieben" repräsentiert, als 38 ASCII-Zeichen, gefolgt durch zwei Nullbytes.
  • Der ICMT-Strang dient für etwaige nicht-skatalogische Zwecke.
  • Wenn das ICMT-Subchunk fehlt, nicht in einem nullwertigen Byte endet oder aus irgend einem Grund unfähig ist, richtig als ASCII-Strang kopiert zu werden, sollte das Feld ignoriert werden, und sollte, falls umgeschrieben, nicht kopiert werden. Wenn die Inhalte des Felds nicht sinnvoll erscheinen, aber richtig reproduziert werden können, sollte dies gemacht werden.
  • 5.11 Das ISFT-Subchunk
  • Das ISFT-Subchunk ist ein optionales Subchunk, das die SoundFont kompatiblen Tools identifiziert, die benutzt werden, um die Sound Font kompatible Bank zu erzeugen und am aktuellsten zu modifizieren. Es enthält einen ASCII-Strang von 256 oder weniger Byte einschließlich einem oder zweier Terminatoren vom Wert Null, um die gesamte Bytezahl gerade zu machen. Ein typisches ISFT-Feld wären die dreißig Bytes, die „Preditor 2.00a:Preditor 2.00a" repräsentieren, als neunundzwanzig ASCII-Zeichen, gefolgt von einem Null-Byte.
  • Das ASCII sollte als fallempfindlich behandelt werden. In anderen Worten „Preditor" ist nicht dasselbe wie „PREDITOR".
  • Üblicherweise ist der Toolname und die Versionskontrollzahl zuerst zum Erzeugen des Tools enthalten und dann für das jüngst modifizierte Tool. Die zwei Stränge sind durch einen Doppelpunkt getrennt. Der Strang sollte mit einem Erzeugerprogramm produziert werden, mit einem Null modifizierenden Toolfeld (z. B. „Preditor 2.00a) und jedes Mal, wenn ein Tool die Bank modifiziert, sollte das modifizierende Toolfeld mit seinem eigenen Namen und der Versionkontrollzahl ersetzen.
  • Der ISFT-Strang ist vielmehr zum Zwecke der Fehleraufspürung vorgesehen.
  • Wenn das ISFT-Subchunk fehlt, nicht in einem nullwertigen Byte endet oder aus irgend einem Grund unfähig ist, richtig als ASCII-Strang kopiert zu werden, sollte das Feld ignoriert werden, und sollte, falls umgeschrieben, nicht kopiert werden. Wenn die Inhalte des Felds nicht sinnvoll erscheinen, aber richtig reproduziert werden können, sollte dies gemacht werden.
  • 6 Das sdta-list-Chunk
  • Das sdta-list-Chunk in einer SoundFont 2 kompatiblen Datei enthält ein einziges optionales smpl Simple-Subchunk, das alle die Sounddaten auf RAM-Basis enthält, die der SoundFont kompatiblen Bank zugeordnet sind. Das smpl-Subchunk hat eine beliebige Länge und enthält eine gerade Anzahl von Bytes.
  • 6.1 Abtastdatenformat im smpl-Subchunk
  • Das smpl-Subchunk enthält, falls vorhanden, eine oder mehrere „Abtastungen" von digitaler Audioinformation in der Form linear codierter, sechzehn Byte signierter, kleinendiger (das letzte signifikante Byte zuerst) Worte. Jeder Abtastung folgen minimal sechsundvierzig nullwertige Datenpunkte. Diese nullwertigen Datenpunkte sind notwendig, um zu garantieren, dass eine etwa sinnvolle Aufwärts-Tonhöhenverschiebung unter Verwendung irgend eines sinnvollen Interpolators, am Ende des Tons auf Null Daten schleifen kann.
  • 6.2 Abtastdaten-Schleifenregeln
  • Mit jeder Abtastung können ein oder mehrere Schleifenpunktpaare existieren. Die Orte dieser Punkte sind in dem pdta-list-Chunk definiert, wobei aber die Abtastdaten selbst vollständig mit bestimmten Praktiken übereinstimmen müssen, damit die Schleife quer über mehrfache Plattformen kompatibel ist.
  • Die Schleifen sind in der Abtastung durch „äquivalente Punkte" definiert. Dies bedeutet, dass es zwei Abtastungen gibt, die logisch äquivalent sind, und eine Schleife stattfindet, wenn diese Punkte aufeinander gespleißt sind. In dem Konzept wird der Schleifenendpunkt während der Schleife tatsächlich niemals gespielt; statt dessen folgt der Schleifenstartpunkt dem Punkt direkt vor dem Schleifenendpunkt. Wegen der Bandbegrenzungseigenschaften digitaler Audioabtastungen wird eine artefaktfreie Schleife virtuell identische Daten aufzeigen, die die äquivalenten Punkte umgeben.
  • In Wirklichkeit können, weil die verschiedenen Interpolationsalgoorithmen, die von Wavetable-Synthesizern benutzt werden, die Daten, die sowohl die Schleifenstart- als auch -endpunkte umgeben, den Ton der Schleife beeinträchtigen. Jedoch müssen beide Schleifenstart- und -endpunkte von fortlaufenden Audiodaten umgeben sein. Wenn z. B. der Ton so programmiert ist, dass er während des gesamten Abklingens die Schleife fortsetzt, müssen die Abtastdaten jenseits des Schleifenendpunkts vorgesehen sein. Diese Daten sind typischerweise identisch mit den Daten am Start der Schleife. Es müssen minimal acht gültige Datenpunkte vor dem Schleifenstart und nach dem Schleifenende vorhanden sein.
  • Die acht Datenpunkte (vier an jeder Seite), die die zwei äquivalenten Schleifenpunkte umgeben, soll zwangsweise identisch gemacht werden. Durch Erzwingen, dass die Daten identisch sind, wird garantiert, dass alle Interpolationsalgorithmen eine artefaktfreie Schleife richtig wiedergeben.
  • 7 Das pdta-list-Chunk
  • 7.1 Die HYDRA-Datenstruktur
  • Die Artikulationsdaten innerhalb einer SoundFont 2 kompatiblen Datei sind in neun Subchunks enthalten, genannt „hydra", nach dem mythischen neunköpfigen Scheusal. Die Struktur ist für Austauschzwecke konstruiert worden; sie ist weder für Laufzeitsynthese noch für fliegendes Editieren (on-the-fly) optimiert. Es ist vernünftig und richtig, das SoundFont kompatible Kleinprogramm in die hydra-Struktur und aus dieser übersetzen, wenn sie SoundFont kompatible Dateien lesen und schreiben.
  • 7.2 Das PHDR-Subchunk
  • Das PHDR-Subchunk ist ein erforderliches Subchunk, das alle Voreinstellungen innerhalb der SoundFont kompatiblen Datei auflistet. Es hat immer eine Länge eines Mehrfachen von achtunddreißig Bytes und enthält minimal zwei Aufzeichnungen, eine Aufzeichnung für jede Voreinstellung und eine für eine Endaufzeichnung, entsprechend der Struktur:
    Figure 00530001
  • Das ASCII-Zeichenfeld achPresetName enthält den Namen der Voreinstellung, ausgedrückt in ASCII, wobei nicht benutzte Endzeichen mit nullwertigen Bytes gefüllt werden. Es sollte immer ein eindeutiger Name jeder Voreinstellung in der Sound-Font kompatiblen Bank zugeordnet werden, um eine Identifikation zu ermöglichen. Wenn jedoch eine Bank gelesen wird, die den falschen Status von Voreinstellungen mit identischen Namen enthält, sollten die Voreinstellungen nicht verworfen werden. Sie sollten entweder wie gelesen konserviert werden oder bevorzugt eindeutig umbenannt werden.
  • Das Wort wPreset enthält die MIDI-Voreinstellungsnummer, und das Wort wBank enthält die MIDI-Banknummer, die für diese Voreinstellung gilt. Merke, dass die Voreinstellungen innerhalb der SoundFont kompatiblen Bank nicht geordnet sind. Voreinstellungen sollten einen eindeutigen Satz von wPreset und wBank-Nummern haben. Wenn jedoch zwei Voreinstellungen identische Werte von sowohl wPreset als auch wBank haben, ist die zuerst auftretende Voreinstellung in dem PHDR-Chunk die aktive Voreinstellung, wobei jedoch etwaige andere mit denselben wBank und wPreset-Werten erhalten bleiben sollten, so dass sie zu einem späteren Zeitpunkt umnummeriert und benutzt werden können. Der spezielle Fall einer General MIDI Percussionbank wird herkömmlich durch einen wBank-Wert von 128 gehandhabt. Wenn der Wert in einem dieser Felder kein gültiger MIDI-Wert von Null bis 127 ist, oder 128 für wBank, kann die Voreinstellung nicht gespielt werden, sollte jedoch erhalten bleiben.
  • Das Wort wPresetBagNdx ist ein Index für die Voreinstellungs-Ebenenliste in dem PBAG-Subchunk. Weil die Voreinstellungs-Ebenenliste in derselben Reihenfolge ist wie die Voreinstellungskopfliste, werden die Voreinstellungen bag Indizes mit größer werdenden Voreinstellungsköpfen monoton größer. Die Größe des PBAG-Subchunks in Bytes ist gleich dem Vierfachen dem TerminalvoreinstellungswPresetBagNdx plus vier. Die Voreinstellungsbagindizes sind nicht -monoton, oder wenn das Terminal-Voreinstellungs-wPresetBagNdx nicht zur Größe des PBAG-Subchunk passt, ist die Datei strukturell defekt und sollte beim Laden zurückgewiesen werden. Alle Voreinstellungen, außer die terminate Voreinstellung, müssen zumindest eine Ebene haben, wobei eine etwaige Voreinstellung ohne Ebenen ignoriert werden sollte.
  • Die Doppelworte dwLibrary, dwGenre und dwMorphology sind für künftige Implementierungen in einer Voreinstellungsbibliothek-Managementfunktion reserviert und sollten wie gelesen konserviert werden, und als Null erzeugt werden.
  • Auf die Terminal-sfPresetHeader-Aufzeichnung sollte niemals zugegriffen werden, und sie existiert nur, um ein Terminal wPresetBagNdx vorzusehen, mit dem die Anzahl von Ebenen in der letzten Voreinstellung zu bestimmen ist. Alle anderen Werte sind konventionell Null, mit der Ausnahme von achPresetName, was optional „EOP" sein kann, was das Ende von Voreinstellungen anzeigt.
  • Wenn das PHDR-Subchunk fehlt, weniger als zwei Aufzeichnungen enthält oder seine Größe nicht ein Vielfaches von 38 Bytes ist, sollte die Datei als strukturell schlecht zurückgewiesen werden.
  • 7.3 Das PBAG-Subchunk
  • Das PBAG-Subchunk ist ein erforderliches Subchunk, das alle Voreinstellungs-Ebenen innerhalb der SoundFont kompatiblen Datei auflistet. Seine Länge ist immer ein Vielfaches von vier Byte und enthält eine Aufzeichnung für jede Voreinstellungsebene plus eine Aufzeichnung für eine Terminal-Ebene, entsprechend der Struktur:
    Figure 00550001
  • Die erste Lage in einer gegebenen Voreinstellung ist an diesem Voreinstellungs-wPresetBagNdx lokalisiert. Die Anzahl von Ebenen in der Voreinstellung ist bestimmt durch die Differenz zwischen dem nächsten Voreinstellungs-wPresetBagNdx und dem gegenwärtigen wPresetBagNdx.
  • Das Wort wGenNdx ist ein Index für die Voreinstellungs-Ebenenliste von Generatoren in dem PGEN-Subchunk, und das Wort wModNdx ist ein Index für seine Liste von Modulatoren in dem PMOD-Subchunk. Weil sowohl die Generator- als auch die Modulatorlisten in der gleichen Reihenfolge sind wie die Voreinstellungskopf- und -ebenenlisten, werden diese Indizes mit größer werdenden Voreinstellungs-Ebenen monoton größer. Die Größe des PMOD-Subchunk in Bytes wird gleich dem Zehnfachen des Terminal-Voreinstellungs-wModNdx plus zehn sein, und die Größe des PGEN-Subchunk in Bytes wird gleich dem Vierfachen des Terminal-Voreinstellungs-wGenNdx plus vier sein. Wenn die Generator- oder Modulatorindizes nicht monoton sind oder nicht zur Größe der jeweiligen PGEN oder PMOD-Subchunks passen, ist die Datei strukturell defekt und sollte beim Laden zurückgewiesen werden.
  • Wenn eine Voreinstellung mehr als eine Ebene hat, kann die erste Ebene eine allgemeine Ebene sein. Eine allgemeine Ebene wird durch die Tatsache bestimmt, dass der letzte Generator in der Liste kein Instrumentengenerator ist. Alle Generatorlisten müssen zumindest einen Generator enthalten, mit einer Ausnahme – wenn eine allgemeine Ebene existiert für die keine Generatoren vorhanden sind, sondern nur Modulatoren. Die Modulatorenlisten können Null oder mehr Modulatoren enthalten.
  • Wenn einer Ebene, außer der ersten Ebene, ein Instrumentengenerator als ihr letzter Generator fehlt, sollte diese Ebene ignoriert werden. Eine allgemeine Ebene ohne Modulatoren und ohne Generatoren sollte ebenfalls ignoriert werden.
  • Wenn das PBAG-Subchunk fehlt oder seine Größe nicht ein Vielfaches von vier Bytes ist, sollte die Datei als strukturell schlecht zurückgewiesen werden.
  • 7.4 Das PMOD-Subchunk
  • Das PMOD-Subchunk ist ein erforderliches Subchunk, das alle Voreinstellungs-Ebenen-Modulatoren innerhalb der SoundFont kompatiblen Datei auflistet. Seine Länge ist immer ein Vielfaches von zehn Bytes und enthält Null oder mehr Modulatoren plus einer Terminalaufzeichnung, entsprechend der Struktur:
    Figure 00570001
  • Das Voreinstellungs-Ebenen-wModNdx zeigt auf den ersten Modulator für diese Voreinstellungs-Ebene, und die Anzahl von Modulatoren, die für eine Voreinstellungs-Ebene vorhanden sind, wird bestimmt durch die Differenz zwischen dem nächsthöheren Voreinstellungs-Ebenen-wModNdx und dem gegenwärtigen Voreinstellungs-wModNdx. Eine Differenz von Null zeigt an, dass in dieser Voreinstellungs-Ebene keine Modulatoren vorhanden sind.
  • Das sfModSrcOper ist ein Wert eines der SFModulator-Enumerationstyp-Werte. Unbekannte oder undefinierte Werte werden ignoriert. Dieser Wert indiziert die Datenquelle für den Modulator.
  • Das sfModDestOper ist ein Wert eines der SFGenerator-Enumerationstyp-Werte. Unbekannte oder undefinierte Werte werden ignoriert. Dieser Wert indiziert den Bestimmungsort des Modulators.
  • Das short modAmount ist ein signierter Wert, der den Grad angibt, um den die Quelle den Bestimmungsort moduliert. Ein Null-Wert gibt an, dass kein fester Betrag vorhanden ist.
  • Das sfModAmtSrcOper ist ein Wert eines der SFModulator-Enumerationstyp-Werte. Unbekannte oder undefinierte Werte werden ignoriert. Dieser Wert gibt an, dass der Grad, um den die Quelle den Bestimmungsort moduliert, durch die spezifizierte Modulationsquelle kontrolliert werden sollte.
  • Das sfModTransOper ist ein Wert eines der SFTransform-Enumerationstyp-Werte. Unbekannte oder undefinierte Werte werden ignoriert. Dieser Wert gibt an, dass eine Transformation eines spezifischen Typs auf die Modulationsquelle angewendet werden wird, vor Anwendung auf den Modulator.
  • Die terminale Aufzeichnung enthält konventionell Null in allen Feldern und wird immer ignoriert.
  • Ein Modulator wird durch sein sfModSrcOper, sein sfModDestOper und sein sfModSrcAmtOper definiert. Alle Modulatoren innerhalb einer Ebene müssen einen eindeutigen Satz dieser drei Enumaratoren haben. Wenn ein zweiter Modulator auf dieselben drei Enumeratoren wie einem vorherigen Modulator auf dieselbe Ebene trifft, wird der erste Modulator ignoriert.
  • Modulatoren in dem PMOD-Subchunk wirken als additiv relative Modulatoren in Bezug auf jene in dem IMOD-Subchunk. In anderen Worten, ein PMOD-Modulator kann den Betrag eines IMOD-Modulators vergrößern oder verkleinern.
  • Wenn das PMOD-Subchunk fehlt oder seine Größe nicht ein Vielfaches von zehn Bytes ist, sollte die Datei als strukturell schlecht zurückgewiesen werden.
  • 7.5 Das PGEN-Subchunk
  • Das PGEN-Chunk ist ein erforderliches Chunk, das eine Liste von Voreinstellungs-Ebenen-Generatoren für jede Voreinstellungs-Ebene innerhalb der SoundFont kompatiblen Datei enthält. Seine Länge ist immer ein Vielfaches von vier Byte, und enthält ein oder mehrere Generatoren für jede Voreinstellungs-Ebene (außer eine allgemeine Ebene, die nur Modulatoren enthält) plus eine terminate Aufzeichnung entsprechend der Struktur:
    Figure 00590001
  • Das sfGenOper ist ein Wert eines der SFGenerator-Enumerationstyp-Werte. Unbekannte oder undefinierte Werte werden ignoriert. Dieser Wert gibt den Typ des Generators an, der angegeben werden soll.
  • Das genAmount ist ein dem spezifischen Generator zuzuordnender Wert. Merke, dass dies drei Formate haben kann. Bestimmte Generatoren spezifizieren einen Bereich von MIDI-Tastennummern von MIDI-Geschwindigkeiten, mit einem Minimal- und einem Maximalwert. Andere Generatoren spezifizieren einen unsignierten WORD-Wert. Jedoch spezifizieren die meisten Generatoren einen signierten 16 Bit SHORT-Wert.
  • Das Voreinstellungs-Ebenen-wGenNdx zeigt auf den ersten Generator für diese Voreinstellungs-Ebene. Solange nicht die Ebene eine allgemeine Ebene ist, ist der letzte Generator in der Liste ein „Instrumenten"-Generator, dessen Wert ein Zeiger zu dem Instrument ist, das dieser Ebene zugeordnet ist. Wenn ein „Tastenbereich"-Generator für die Voreinstellungs-Ebene existiert, ist es immer der erste Generator in der Liste für diese Voreinstellungs-Ebene. Wenn ein „Geschwindigkeitsbereich"-Generator für die Voreinstellungs-Ebene existiert, wird diesem nur ein Tastenbereich-Generator vorausgehen. Wenn irgend welche Generatoren einem Instrumenten-Generator folgen, werden sie ignoriert.
  • Ein Generator wird durch sein sfGenOper definiert. Alle Generatoren innerhalb einer Ebene müssen einen eindeutigen sfGenOper-Enumerator haben. Wenn ein zweiter Generator auf denselben sfGenOper-Enumerator wie ein vorheriger Generator auf dieselbe Ebene trifft, wird der erste Generator ignoriert.
  • Generatoren in den PGEN-Subchunk wirken als additiv relativ zu Generatoren in dem IGEN-Subchunk. In anderen Worten, PGEN-Generatoren vergrößern oder verkleinern den Wert eines IGEN-Geneators.
  • Wenn das PGEN-Subchunk fehlt oder seine Größe nicht ein Vielfaches von vier Bytes ist, sollte die Datei als strukturell schlecht zurückgewiesen werden. Wenn ein Tastenbereich-Generator vorhanden ist und nicht der erste Generator, sollte er ignoriert werden. Wenn ein Geschwindigkeitsbereichs-Generator vorhanden ist und ihm ein anderer Generator als der Tastenbereich-Generator vorausgeht, sollte er ignoriert werden. Wenn eine nicht globale Liste nicht in einem Instrumenten-Generator endet, sollte die Ebene ignoriert werden. Wenn der Instrumenten-Generator-Wert gleich oder größer als das terminale Instrument ist, sollte die Datei als strukturell schlecht zurückgewiesen werden.
  • 7.6 Das INST-Subchunk
  • Das inst-Subchunk ist ein erforderliches Subchunk, das alle Instrumente innerhalb der SoundFont kompatiblen Datei auflistet. Seine Länge ist immer ein Vielfaches von zweiundzwanzig Byte, und enthält minimal zwei Aufzeichnungen, eine Aufzeichnung für jedes Instrument und eine für eine terminale Aufzeichnung, gemäß der Struktur:
    Figure 00600001
  • Das ASCII-Zeichenfeld achIstName enthält den Namen des Instruments, ausgedrückt in ASCII, wobei unbenutzte terminale Zeichen mit nullwertigen Bytes gefüllt werden. Es sollte immer ein eindeutiger Name jedem Instrument in der SoundFont kompatiblen Bank zugeordnet werden, um eine Identifikation zu ermöglichen. Wenn jedoch eine Bank gelesen wird, die den fehlerhaften Status von Instrumenten mit identischen Namen enthält, sollten die Instrumente nicht verworfen werden. Sie sollten entweder wie gelesen konserviert werden oder bevorzugt eindeutig umbenannt werden.
  • Das Wort wInstBagNdx ist ein Index zu der Instrumentenaufteilungsliste in dem IBAG-Subchunk. Weil die Instrumentenaufteilungsliste in der gleichen Reihenfolge wie die Instrumentenliste. ist, werden die Instrumenten-bag-Indizes, mit zunehmenden Instrumenten, monoton größer. Die Größe des IBAG-Subchunk in Bytes ist gleich dem Vierfachen des terminalen Instrumenten-wInstBagNdx plus vier. Wenn die Instrumenten-bag-Indizes nicht-monoton sind oder wenn das terminale Instrumenten-wInstBagNdx nicht zu der IBAG-Subchunk-Größe passt, ist die Datei strukturell defekt und sollte beim Laden zurückgewiesen werden. Alle Instrumente, außer dem terminalen Instrument, müssen zumindest eine Aufteilung haben, wobei eine etwaige Voreinstellung ohne Aufteilungen ignoriert werden sollte.
  • Auf die terminale sfInst-Aufzeichnung sollte niemals zugegriffen werden, und sie existiert nur, um ein terminales wInstBagNdx vorzusehen, mit dem die Anzahl von Aufteilungen in dem letzten Instrument bestimmt werden soll. Alle anderen Werte sind konventionell Null, mit der Ausnahme von achInstName, das optional „EOI" sein kann, das das Ende von Instrumenten anzeigt.
  • Wenn das INST-Subchunk fehlt, weniger als zwei Aufzeichnungen enthält oder seine Größe nicht ein Vielfaches von 22 Bytes ist, sollte die Datei als strukturell schlecht zurückgewiesen werden. Alle Instrumente, die in dem INST-Subchunk vorhanden sind, werden typischerweise durch eine Voreinstellungs-Ebene referenziert, wobei jedoch eine Datei, die „verwaiste" Instrumente enthält, nicht zurückgewiesen werden brauchen. SoundFont kompatible Anwendungen können optional diese verwaisten Instrumente, wie vom Verwender gewünscht, ignorieren oder ausfiltern.
  • 7.7 Das IBAG-Subchunk
  • Das IBAG-Subchunk ist ein erforderliches Subchunk, das alle Instrumentenaufteilungen innerhalb der SoundFont kompatiblen Datei auflistet. Seine Länge ist immer ein Vielfaches von vier Byte, und enthält eine Aufzeichnung für jede Instrumentenaufteilung plus einer Aufzeichnung für eine terminale Ebene, gemäß der Struktur:
    Figure 00620001
  • Die erste Aufteilung in einem gegebenen Instrument ist an diesem Instrumenten-wInstBagNdx lokalisiert. Die Anzahl von Aufteilungen in dem Instrument wird bestimmt durch die Differenz zwischen dem nächsten Instrumenten-wInstBagNdx und dem gegenwärtigen wInstBagNdx.
  • Das Wort wInstGenNdx ist ein Index für die Instrumentenaufteilungs-Generatorenliste in dem IGEN-Subchunk, und wInstModNdx ist ein Index für seine Liste von Modulatoren in dem IMOD-Subchunk. Weil sowohl die Generator- als auch die Modulatorlisten in der gleichen Reihenfolge sind wie die Instrumenten- und Aufteilungslisten, werden diese Indizes, mit zunehmenden Aufteilungen, monoton zunehmen. Die Größe des IMOD-Subchunk in Byte wird gleich dem Zehnfachen des terminalen Instrumenten-wModNdx plus zehn sein und die Größe des IGEN-Subchunk in Byte wird gleich dem Vierfachen des terminalen Instrumenten-wGenNdx plus vier sein. Wenn die Generator- oder ModulatorIndizes nicht monoton sind oder nicht zu der Größe der jeweiligen IGEN oder IMOD-Subchunks passen, ist die Datei strukturell defekt und sollte beim Laden zurückgewiesen werden.
  • Wenn ein Instrument mehr als eine Aufteilung hat, könnte die erste Aufteilung eine globale Aufteilung sein. Eine globale Aufteilung wird durch die Tatsache bestimmt, dass der letzte Generator in der Liste kein AbtastID-Generator ist. Alle Generatorlisten müssen zumindest einen Generator enthalten mit einer Ausnahme – wenn eine globale Aufteilung existiert, für die keine Generatoren vorhanden sind, sondern nur Modulatoren. Die Modulatorlisten können Null oder mehr Modulatoren enthalten.
  • Wenn einer Aufteilung, außer der ersten Aufteilung, ein AbtastID-Generator als sein letzter Generator fehlt, sollte die Aufteilung ignoriert werden. Eine globale Aufteilung ohne Modulatoren und ohne Generatoren sollte ebenfalls ignoriert werden.
  • Wenn das IBAG-Subchunk fehlt oder seine Größe nicht ein Vielfaches von vier Bytes ist, sollte die Datei als strukturell schlecht zurückgewiesen werden.
  • 7.8 Das IMOD-Subchunk
  • Das IBAG-Subchunk ist ein erforderliches Subchunk, das alle Instrumentenaufteilungs-Modulatoren innerhalb der SoundFont kompatiblen Datei auflistet. Seine Länge ist immer ein Vielfaches von zehn Byte, und enthält Null oder mehr Modulatoren, plus einer terminalen Aufzeichnung, gemäß der Struktur:
    Figure 00630001
  • Das Aufteilungs-wInstModNdx zeigt auf den ersten Modulator für diese Aufteilung, und die Anzahl von Modulatoren, die für eine Aufteilung vorhanden sind, wird bestimmt durch die Differenz zwischen dem nächsthöheren Aufteilungs-wInstModNdx und dem gegenwärtigen Aufteilungs-wModNdx. Eine Differenz von Null gibt an, dass keine Modulatoren in dieser Aufteilung vorhanden sind.
  • Das sfModSrcOper ist ein Wert eines der SFModulator-Enumerations-Werte. Unbekannte oder undefinierte Werte werden ignoriert. Dieser Wert indiziert die Datenquelle für den Modulator.
  • Das sfModDestOper ist ein Wert eines der SFGenerator-Enumerationstyp-Werte. Unbekannte oder undefinierte Werte werden ignoriert. Dieser Wert indiziert den Bestimmungsort des Modulators.
  • Das short modAmount ist ein signierter Wert zum Anzeigen des Grad, um den die Quelle den Bestimmungsort moduliert. Ein Null-Wert indiziert, dass kein fester Betrag vorhanden ist.
  • Das sfModAmtSrcOper ist ein Wert eines der SFModulator-Enumerationstyp-Werte. Unbekannte oder undefinierte Werte werden ignoriert. Dieser Wert indiziert, dass der Grad, um den die Quelle den Bestimmungsort moduliert, durch die spezifizierte Modulationsquelle kontrolliert werden soll.
  • Das sfModTransOper ist ein Wert eines der SFTransform-Enumerationstyp-Werte. Unbekannte oder undefinierte Werte werden ignoriert. Dieser Wert indiziert, dass eine Transformation eines spezifizierten Typs vor der Anwendung auf den Modulator auf die Modulationsquelle angewendet wird.
  • Die terminale Aufzeichnung enthält konventionell Null in allen Feldern und wird immer ignoriert.
  • Ein Modulator ist durch sein sfModSrcOper, sein sfModDestOper und sein sfModSrcAmtOper definiert. Alle Modulatoren innerhalb einer Aufteilung müssen einen eindeutigen Satz dieser drei Enumeratoren haben. Wenn ein zweiter Modulator auf dieselben drei Enumeratoren wie einen vorherigen Modulator auf dieselbe Aufteilung trifft, wird der erste Modulator ignoriert.
  • Modulatoren in dem IMOD-Subchunk sind absolut. Dies bedeutet, dass ein IMOD-Modulator einen Standardmodulator ersetzt, anstatt zu diesem hinzugefügt wird.
  • Wenn das IMOD-Subchunk fehlt oder seine Größe nicht ein Vielfaches von zehn Bytes ist, sollte die Datei als strukturell schlecht zurückgewiesen werden.
  • 7.9 Das IGEN-Subchunk
  • Das IGEN-Chunk ist ein erforderliches Chunk, das eine Liste von Aufteilungs-Generatoren für jeden Instrumentenaufteilung innerhalb der SoundFont kompatiblen Datei enthält. Seine Länge ist immer ein Vielfaches von vier Byte, und enthält ein oder mehr Generatoren für jede Aufteilung (außer eine globale Aufteilung, die nur Modulatoren enthält) plus eine terminale Aufzeichnung, gemäß der Struktur:
    Figure 00650001
    wobei die Typen wie oben in der PGEN-Ebene definiert sind.
  • Das genAmount ist der Wert, der dem spezifizierten Generator zuzuordnen ist. Merke, dass dieser aus drei Formaten bestehen kann. Bestimmte Generatoren spezifizieren einen Bereich von MIDI-Tastenzahlen von MIDI-Geschwindigkeit mit einem Minimal- und einem Maximalwert. Andere Generatoren spezifizieren einen unsignierten WORD-Wert. Die meisten Generatoren spezifizieren jedoch einen signierten 16 Bit SHORT-Wert.
  • Das Aufteilungs-wInstGenNdx zeigt auf den ersten Generator für diese Aufteilung. Solange nicht die Aufteilung eine globale Aufteilung ist, ist der letzte Generator in der Liste ein „Abtast-ID"-Generator, dessen Wert ein Zeiger auf die Abtastung ist, die dieser Aufteilung zugeordnet ist. Wenn ein „Tastenbereich"-Generator für die Aufteilung vorhanden ist, ist dieser immer der erste Generator in der Liste für diese Aufteilung. Wenn ein „Geschwindigkeitsbereich"-Generator für die Aufteilung vorhanden ist, wird ihm nur ein Tastenbereich-Generator vorausgehen. Wenn irgend ein Generator einem AbtastID-Generator folgt, wird er ignoriert.
  • Ein Generator wird durch sein sfGenOper definiert. Alle Generatoren innerhalb einer Aufteilung müssen einen eindeutigen sfGenOper-Enumerator haben. Wenn ein zweiter Generator auf denselben sfGenOper-Enumerator trifft wie ein vorheriger Generator auf dieselbe Aufteilung, wird der erste Generator ignoriert.
  • Generatoren in dem IGEN-Subchunk haben eine absolute Eigenschaft. Dies bedeutet, dass ein IGEN-Generator den Standardwert für den Generator ersetzt anstatt zu diesem hinzugefügt zu werden.
  • Wenn das IGEN-Subchunk fehlt oder seine Größe nicht ein Vielfaches von vier Bytes ist, sollte die Datei als strukturell schlecht zurückgewiesen werden. Wenn ein Tastenbereich-Generator vorhanden ist und nicht der erste Generator ist, sollte er ignoriert werden. Wenn ein Geschwindigkeitsbereichs-Generator vorhanden ist und ihm ein anderer Generator vorausgeht als ein Tastenbereich-Generator, sollte er ignoriert werden. Wenn eine nicht globale Liste nicht in dem AbtastID-Generator endet, sollte die Aufteilung ignoriert werden. Wenn der AbtastID-Generatorwert gleich oder größer als das terminale AbtastID ist, sollte die Datei als strukturell schlecht zurückgewiesen werden.
  • 7.10 Das SHDR-Subchunk
  • Das SHDR-Subchunk ist ein erforderliches Subchunk, das alle Abtastungen innerhalb des smpl-Subchunk und etwaige referenzierte ROM-Abtastungen auflistet. Seine Länge ist immer ein Vielfaches von sechsundvierzig Byte, und enthält eine Aufzeichnung für jede Abtastung plus eine terminale Aufzeichnung, gemäß der Struktur:
    Figure 00660001
  • Das ASCII-Zeichenfeld achSampleName enthält den Namen der Abtastung, ausgedrückt in ASCII, wobei unbenutzte terminate Zeichen mit nullwertigen Bytes gefüllt sind. Es sollte immer ein eindeutiger Name jeder Abtastung in der SoundFont kompatiblen Bank zugeordnet werden, um eine Identifizierung zu ermöglichen. Wenn jedoch eine Bank gelesen wird, die den fehlerhaften Status von Abtastungen mit identischen Namen enthält, sollten die Abtastungen nicht verworfen werden. Sie sollten statt dessen wie gelesen konserviert werden oder vorzugsweise eindeutig umbenannt werden.
  • Das Doppelwort dwStart enthält den Index, in Abtastungen, vom Beginn des Abtastdatenfelds zu dem ersten Datenpunkt dieser Abtastung.
  • Das Doppelwort dwEnd enhält den Index, in Abtastungen, vom Beginn des Abtastdatenfelds zum ersten des Satzes von 46 nullwertigen Datenpunkten, nach dieser Abtastung.
  • Das Doppelwort dwStartloop enhält den Index, in Abtastungen, vom Beginn des Abtastdatenfelds zu dem ersten Datenpunkt in der Schleife dieser Abtastung.
  • Das Doppelwort dwEndloop enhält den Index, in Abtastungen, vom Beginn des Abtastdatenfelds in dem ersten Datenpunkt nach der Schleife dieser Abtastung. Merke, dass dies der Datenpunkt „äquivalent zu" dem ersten Schleifendatenpunkt ist, und dass, um portable artefaktfreie Schleifen zu erzeugen, die sechzehn proximale Datenpunkte, die sowohl die Startschleifen- als auch Endschleifenpunkte umgeben, identisch sein sollten.
  • Die Werte von dwStart, dwEnd, dwStartloop und dw Endloop müssen alle im Bereich des Abtastdatenfelds liegen, das in der SoundFont kompatiblen Bank eingeschlossen, oder in dem Sound-ROM referenziert sein. Auch um zu ermöglichen, dass eine Vielzahl von Hardwareplattformen in der Lage sind, die Daten zu reproduzieren, haben die Abtastungen eine minimale Länge von 48 Datenpunkten, eine minimale Schleifengröße von 32 Datenpunkten und ein Minimum von 8 gültigen Punkten vor dwStartloop und nach dwEndloop. So muss dwStart kleiner als dwStartloop-7 sein, dwStartloop muss kleiner als dwEndloop-31 sein, und dwEndloop muss kleiner als dwEnd-7 sein. Wenn diese Einschränkungen nicht erfüllt sind, kann der Ton gegebenenfalls nicht gespielt werden, wenn die Hardware keine artefaktfreie Wiedergabe für die gegebenen Parameter unterstützen kann.
  • Das Doppelwort dwSampleRate enthält die Abtastrate in Hertz, mit der die Abtastung erfasst wurde, oder mit der sie zuletzt umgewandet wurde. Werte von größer als 50000 oder kleiner als 400 brauchen von einigen Hardwareplattformen nicht reproduzierbar sein, und sollten vermieden werden. Ein Wert von Null ist illegal. Wenn ein illegaler oder impraktikabler Wert vorgefunden wird, sollte der nächste praktische Wert benutzt werden.
  • Das Byte byOriginalPitch enthält die MIDI-Tastennummer der aufgezeichneten Tonhöhe der Abtastung. Zum Beispiel sollte eine Aufzeichnung eines Instruments, das das mittlere C (261,62 Hz) spielt, einen Wert von 60 erhalten. Dieser Wert wird als Standard "Basistaste" für die Abtastung benutzt, so dass in dem Beispiel ein MIDI-Tasteneinschaltbefehl für die Note Nummer 60 einen Ton mit seiner ursprünglichen Tonhöhe wiedergeben würde. Für nicht tonhöhenveränderte Töne sollte ein konventioneller Wert von 255 benutzt werden. Werte zwischen 128 und 254 sind illegal. Wenn immer ein illegaler Wert oder ein Wert von 255 vorgefunden wird, sollte der Wert 60 benutzt werden.
  • Das Zeichen chPitchCorrection enthält eine Tonhöhenkorrektur in Cent, die auf die wiedergegebene Abtastung angewendet werden sollte. Der Zweck dieses Felds ist es, etwaige Tonhöhenfehler während des Abtastungsaufzeichnungsprozesses zu kompensieren. Der Korrekturwert ist jener der angewendeten Korrektur. Wenn zum Beispiel der Ton 4 Cents zu hoch ist, ist eine Korrektur erforderlich, die ihn 4 Cents tiefer macht, und somit sollte der Wert –4 sein.
  • Der Wert in sfSampleType ist eine Enumeration mit acht definierten Werten: monoSample = 1, rightSample = 2, leftSample = 4, linkedSample = 8, RomMonoSample = 32769, RomRightSample = 32770, RomLeftSample = 32772 und RomLinkedSample = 32776. Ersichtlich ist, dass dies so codiert ist, dass Bit 15 des 16 Bit-Werts gesetzt wird, wenn die Abtastung im ROM ist, und rückgesetzt wird, wenn er in der SoundFond kompatiblen Bank enthalten ist. Die vier LS-Bits des Worts werden dann ausschließlich so gesetzt, dass die mono, links, rechts oder gekoppelt, anzeigen.
  • Wenn der Ton als ROM-Abtastung markiert ist und kein gültiges IROM-Subchunk angeschlossen ist, ist die Datei strukturell fehlerhaft und sollte beim Laden zurückgewiesen werden.
  • Wenn sfSampleType eine Monoabtastung anzeigt, dann ist wSampleLink undefiniert, und sein Wert sollte konventionell auf Null gesetzt werden, wird jedoch unabhängig vom Wert ignoriert. Wenn sfSampleType eine linke oder rechte Abtastung anzeigt, dann ist wSampleLink der Abtastkopfindex der jeweils zugeordneten rechten oder linken Stereoabtastung. Beide Abtastungen sollten gemeinsam gespielt werden, wobei ihr Schwenk zur richtigen Richtung gebracht wird. Der gekoppelte Abtasttyp in der SoundFont 2-Spezifikation ist gegenwärtig nicht vollständig definiert, sondern wird letztendlich eine kreisgekoppelte Liste von Abtastungen unter Verwendung von wSampleLink unterstützen.
  • Die terminale Abtastaufzeichnung ist niemals referenziert, und ist herkömmlich vollständig Null, mit der Ausnahme von achSampleName, das optional „EOS" sein kann, das das Ende der Abtastungen indiziert. Alle Abtastungen, die in dem smpl-Subchunk vorhanden sind, werden typischerweise von einem Instrument referenziert, wobei jedoch eine Datei, die irgendwelche „verwaisten" Abtastungen enthält, nicht zurückgewiesen werden braucht. SoundFont kompatible Anwendungen können gegebenenfalls diese verwaisten Abtastungen, nach Präferenz des Benutzers, ignorieren oder ausfiltern.
  • Wenn das SHDR-Subchunk fehlt oder seine Größe nicht ein Vielfaches von 46 Bytes ist, sollte die Datei als strukturell schlecht zurückgewiesen werden.
  • ANHANG II
  • S.1.2 Generator-Enumeratoren-Definitionen
  • Das Folgende ist eine vollständige Liste von SoundFont 2.00 Generatoren und ihrer genauen Definitionen:
    0 startAddrsOffset Der Versatz, in Abtastungen, jenseits des StartAbtastkopfparameters zu der ersten Abtastung, die für dieses Instrument zu spielen ist. Wenn zum Beispiel Start gleich 7 ist und startAddrOffset gleich 2 ist, wäre die zuerst gespielte Abtastung die Abtastung 9.
    1 endAddrsOffset Dieser Versatz, in Abtastungen, jenseits des End-Abtastungskopfparameters zu der letzten Abtastung, die für dieses Instrument zu spielen ist. Wenn zum Beispiel End gleich 17 ist und endAddrOffset –2 ist, wäre die zuletzt gespielte Abtastung die Abtastung 15.
    2 startloopAddrsOffset Dieser Versatz, in Abtastungen, jenseits des Start-loop-Abtastungskopfparameters zur ersten Abtastung, die in der Schleife für dieses Instrument zu wiederholen ist. Wenn zum Beispiel Startloop gleich 10 ist und startloopAddrOffset gleich –1 ist, wäre die zuerst wiederholte Schleifenabtastung die Abtastung 9.
    3 endloopAddrsOffset Dieser Versatz, in Abtastungen, jenseits des Endloop-Abtastungskopfparameters zu der Abtastung, von der man annimmt, dass sie zu der Startschleifenabtastung für die Schleife dieses Instrument äquivalent ist. Wenn zum Beispiel Endloop gleich 15 ist und endloopAddrOffset gleich 2, würde die Abtastung 17 als zur Startloop-Abtastung äquivalent betrachtet werden, und daher würde die Abtastung 16 während des Schleifens effektiv dem Startloop vorausgehen.
    4 startAddrsCoarseOffset Dieser Versatz, in 32768 Abtastinkrementen, jenseits des Start-Abtastungskopfparameters und der ersten Abtastung, die in diesem Instrument zu spielen ist. Dieser Parameter wird zu dem startAddrOffset-Parameter addiert. Wenn zum Beispiel Start gleich 5 ist, startAddrOffset gleich 3, ist und startAddrCoarseOffset gleich 2 ist, wäre die zuerst abgespielte Abtastung die Abtastung 65544.
    5 modLfoToPitch Dies ist der Grad, in Cents, um den die Vollskala-Exkursion der Modulation LFO die Tonhöhe beeinflusst. Ein positiver Wert gibt eine positive LFO-Exkursion an, die die Tonhöhe erhöht; ein negativer Wert gibt eine positive Exkursion an, die die Tonhöhe verringert. Die Tonhöhe wird immer logarithmisch modifiziert, das ist die Abweichung in Cents, Halbtönen und Oktaven, anstatt in Hz. Zum Beispiel gibt ein Wert von 100 an, dass die Tonhöhe zuerst um einen Halbton ansteigen wird, und dann um einen Halbton abfallen wird.
    6 vibLfoToPitch Dies ist der Grad, in Cents, um den die Vollskala-Exkursion des Vibrato LFO die Tonhöhe beeinflusst. Ein positiver Wert bezeichnet eine positive LFO-Exkursion an, die die Tonhöhe erhöht; ein negativer Wert indiziert eine positive Exkursion an, die die Tonhöhe verringert. Die Tonhöhe wird immer logarithmisch modifiziert, das ist die Abweichung in Cents, Halbtönen und Oktaven, anstatt in Hz. Zum Beispiel gibt ein Wert von 100 an, dass die Tonhöhe zuerst um einen Halbton ansteigen wird, und dann um einen Halbton abfallen wird.
    7 modEnvToPitch Dies ist der Grad, in Cents, um den eine Vollskala-Exkursion der Modulationhüllkurve die Tonhöhe beeinflusst. Ein positiver Wert gibt eine Zunahme der Tonhöhen an; ein negativer Wert gibt eine Abnahme der Tonhöhe an. Die Tonhöhe wird immer logarithmisch modifiziert, das heisst die Abweichung ist in Cents, Halbtönen und Oktaven anstatt in Hz. Zum Beispiel gibt ein Wert von 100 an, dass die Tonhöhe an der Hüllkurvenspitze einen Halbton ansteigen wird.
    8 initialFilterFc Dies ist die Grenze und Resonanzfrequenz des Tiefpassfilters in absoluten Cent-Einheiten. Der Tiefpassfilter ist als resonantes Polpaar zweiter Ordnung definiert, dessen Poolfrequenz in Hz durch den anfänglichen Filtergrenzparameter definiert ist. Wenn die Grenzfrequenz 20 kHz überschreitet und das Q (die Resonanz) des Filters Null ist, beeinflusst der Filter das Signal nicht.
    9 initialFilterQ Dies ist die Höhe oberhalb des DC- bzw. Gleichstromverstärkungsfaktors in Centibel, bei der die Filterresonanz an der Grenzfrequenz arbeitet. Ein Wert von Null oder weniger gibt an, dass der Filter nicht resoniert; der Verstärkungsfaktor an der Grenzfrequenz (Powinkel) kann kleiner als Null sein, wenn Null spezifiziert ist. Der Filterfaktor bei Gleichstrom wird ebenfalls durch diesen Parameter so beeinflusst, dass der Faktor bei Gleichstrom um die Hälfte des spezifizierten Faktors reduziert wird. Zum Beispiel wäre für einen Wert von 100 der Filterfaktor bei Gleichstrom 5 dB unterhalb des Einheitsfaktors, und die Höhe der Resonanzspitze wäre 10 dB über dem DC-Verstärkungsfaktor, oder 5 dB über dem Einheitsfaktor. Merke, dass auch dann, wenn initialFilterQ auf Null oder kleiner gesetzt wird, dann die Filterreaktion flach ist und den Einheitsfaktor hat, wenn die Grenzfrequenz 20 kHz überschreitet.
    10 modLfoToFilterFc Dies ist der Grad, in Cents, um den die Vollskala-Exkursion des Modulation LFO die Filtergrenzfrequenz beeinflusst. Eine positive Zahl gibt eine positive LFO-Exkursion an, die die Grenzfrequenz erhöht, eine negative Zahl gibt eine positive Exkursion an, die die
    Grenzfrequenz senkt. Die Filtergrenzfrequenz wird immer logarithmisch modifiziert, das ist die Abweichung in Cents, Halbtönen und Oktaven, anstatt in Hz. Zum Beispiel gibt ein Wert von 1200 an, dass die Grenzfrequenz zuerst um eine Oktave ansteigen wird und dann um eine Oktave abfallen wird.
    11 modEnvToFilterFc Dies ist der Grad, in Cents, um den die Vollskala-Exkursion der Modulationhüllkurve die Filtergrenze beeinflusst. Eine positive Zahl gibt an, dass die Grenzfrequenz ansteigt, eine negative Zahl gibt an, dass die Filtergrenze absinkt. Eine Filtergrenze wird immer logarithmisch modifiziert, das ist die Abweichung in Cents, Halbtönen und Oktaven, anstatt in Hz. Zum Beispiel gibt ein Wert von 1000 an, dass an der Hüllkurveneinsatzspitze die Grenzfrequenz um eine Oktave ansteigt.
    12 endAddrsCoarseOffset Der Versatz, in 32768 Abtastinkrementen jenseits des Endabtastkopfparameters und der letzten Abtastung, die in diesem Instrument zu spielen ist. Dieser Parameter wird zu dem endAddrsOffset-Parameter addiert. Wenn zum Beispiel End gleich 65536 ist, startAddrOffset gleich –3 ist und startAddr-CoarseOffset gleich –1 ist, wäre die letzte zu spielende Abtastung die Abtastung 32765.
    13 modLfoToVolume Dies ist der Grad, in Gentibel, um den eine Vollskala-Exkursion des Modulation LFO die Lautstärke beeinflusst. Eine positive Zahl gibt eine positive LFO-Exkursion an, die die Lautstärke vergrößert; eine negative Zahl gibt eine positive Exkursion an, die die Lautstärke verringert. Die Lautstärke wird immer logarith
    misch modifiziert, das ist die Abweichung in Dezibel anstatt in der linearen Amplitude. Zum Beispiel gibt ein Wert von 100 an, dass, die Lautstärke zuerst um zehn dB ansteigen wird und dann um zehn dB abfallen wird.
    14 unused1 Unbenutzt, reserviert. Sollte beim Vorfinden ignoriert werden.
    15 chorusEffectsSend Dies ist der Grad, in 0,1%-Einheiten, um den die Audioausgabe der Note zu dem Choreffektprozessor geschickt wird. Ein Wert von 0% oder weniger gibt an, dass von dieser Note kein Signal ausgegeben wird; ein Wert von 100% oder mehr gibt an, dass die Note mit vollem Pegel ausgegeben wird. Merke, dass dieser Parameter keinen Effekt auf den Betrag dieses Signals hat, das zu dem „trockenen" oder unverarbeiteten Abschnitt der Ausgabe geschickt ist. Zum Beispiel gibt ein Wert von 250 an, dass das Signal mit 25% des vollen Pegels (Dämpfung von 12 dB vom vollen Pegel) zu dem Choreffektprozessor geschickt wird.
    16 reverbEffectsSend Dies ist der Grad, in 0,1%-Einheiten, um den die Audioausgabe der Note zu dem Halleffektprozessor geschickt wird. Ein Wert von 0% oder weniger gibt an, dass von dieser Note kein Signal ausgegeben wird; ein Wert von 100% oder mehr gibt an, dass die Note mit vollem Pegel ausgegeben wird. Merke, dass dieser Parameter keinen Effekt auf den Betrag dieses Signals hat, das zu dem „trockenen" oder unverarbeiteten Abschnitt der Ausgabe geschickt ist. Zum Beispiel gibt ein Wert von 250 an, dass das
    Signal mit 25% des vollen Pegels (Dämpfung von 12 dB vom vollen Pegel) zu dem Halleffektprozessor geschickt wird.
    17 pan Dies ist der Grad, in 0,1%-Einheiten, um den die „trockene" Audioausgabe der Note zum linken ode rechten Ausgang positioniert wird. Ein Wert von – 50% oder weniger gibt an, dass das Signal vollständig zum linken Ausgang geschickt wird und nicht zum rechten Ausgang geschickt wird; Ein Wert von + 50% oder mehr gibt an, dass die Note vollständig nach rechts und nicht nach links geschickt wird. Ein Wert von Null platziert das Zentrale in der Mitte zwischen links und rechts. Zum Beispiel gibt ein Wert von – 250 an, dass das Signal mit 75% des vollen Pegels zum linken Ausgang geschickt wird und mit 25% des vollen Pegels zum rechten Ausgang.
    18 unused2 Unbenutzt, reserviert. Sollte beim Vorfinden ignoriert werden.
    19 unused3 Unbenutzt, reserviert. Sollte beim Vorfinden ignoriert werden.
    20 unused4 Unbenutzt, reserviert. Sollte beim Vorfinden ignoriert werden.
    21 delayModLFO Dies ist die Verzögerungszeit, in absoluten Zeit-Cents, vom Einschalten der Taste bis das Modulation LFO seine Aufwärtsrampe vom Nullwert aus beginnt. Ein Wert von 0 indiziert eine 1 Sekundenverzögerung. Ein negativer Wert indiziert eine Verzögerung von weniger als einer Sekunde; ein positiver Wert eine Ver
    zögerung länger als eine Sekunde. Die negativste Zahl (–327681 indiziert konventionell keine Verzögerung. Zum Beispiel wäre eine Verzögerung von 10 msec. gleich 1200log2(0,01) = –7973.
    22 fregModLFO Dies ist die Frequenz, in absoluten Cents, der Dreieckperiode von Modulation LFO. Ein Wert von Null indiziert eine Frequenz von 8,176 Hz. Ein negativer Wert indiziert eine Frequenz von weniger als 8,176 Hz; ein positiver Wert eine Frequenz größer als 8,176 Hz. Zum Beispiel wäre eine Frequenz von 10 mHz gleich 1200log2(0,01/8,176) = –11610.
    23 fdelayVibLFO Dies ist die Verzögerungszeit, in absoluten Zeit-Cents, vom Einschalten der Taste bis das Vibrato LFO seine Aufwärtsrampe vom Nullwert aus beginnt. Ein Wert von 0 indiziert eine 1 Sekundenverzögerung. Ein negativer Wert indiziert eine Verzögerung von weniger als einer Sekunde; ein positiver Wert eine Verzögerung länger als eine Sekunde. Die negativste Zahl (–32768) indiziert konventionell keine Verzögerung. Zum Beispiel wäre eine Verzögerung von 10 msec. gleich 1200log2(0,01) = –7973.
    24 fregVibLFO Dies ist die Frequenz, in absoluten Cents, der Dreieckperiode des Vibrato LFO. Ein Wert von Null indiziert eine Frequenz von 8,176 Hz. Ein negativer Wert indiziert eine Frequenz von weniger als 8,176 Hz; ein positiver Wert eine Frequenz größer als 8,176 Hz. Zum Beispiel wäre eine Frequenz von 10 mHz gleich 1200log2(0,01/8,176) = –11610.
    25 fdelayModEnv Dies ist die Verzögerungszeit, in absoluten Zeit-Cents, zwischen dem Einschalten der Taste und dem Start der Einsatzphase der Modulationhüllkurve. Ein Wert von 0 indiziert eine 1 Sekundenverzögerung. Ein negativer Wert indiziert eine Verzögerung von weniger als einer Sekunde; ein positiver Wert eine Verzögerung länger als eine Sekunde. Die negativste Zahl (–32768) indiziert konventionell keine Verzögerung. Zum Beispiel wäre eine Verzögerung von 10 msec. gleich 1200log2(0,01) = –7973.
    26 attackModEnv Dies ist die Zeit, in absoluten Zeit-Cents, vom Ende der Modulationhüllkurvenverzögerungszeit bis zu dem Punkt, an dem der Modulationshüllkurvenwert seine Spitze erreicht. Merke, dass der Einsatz „konvex" ist, die Kurve ist nominal so, dass dann, wenn sie einen Dezibel- oder Halbtonparameter angewendet wird, das Ergebnis in Amplitude bzw. Hz linear ist. Ein Wert von 0 indiziert eine 1 Sekunden-Einsatzzeit. Ein negativer Wert gibt eine Zeit von weniger als einer Sekunde; ein positiver Wert eine Zeit von länger als eine Sekunde. Die negativste Zahl (–32768) indiziert konventionell einen plötzlichen Einsatz. Zum Beispiel wäre eine Einsatzzeit von 10 msec. gleich 1200log2(0,01) = –7973.
    27 holdModEnv Dies ist die Zeit, in absoluten Zeit-Cents, vom Ende der Einsatzphase bis zum Eintritt in die Abklingphase, während der der Hüllkurvenwert auf seinem Spitzenwert gehalten wird. Ein Wert von 0 indiziert eine eine 1 Sekunden-haltezeit. Ein negativer Wert indiziert eine Zeit von weniger als einer Sekunde; ein positiver Wert eine Zeit länger als eine Sekunde. Die negativste Zahl
    (–32768) indiziert konventionell keine Haltephase. Zum Beispiel wäre eine Einsatzzeit von 10 msec. gleich 1200log2(0,01) = –7973.
    28 decayModEnv Dies ist die Zeit, in absoluten Zeit-Cents, für eine 100%ige Änderung in dem Modulationhüllkurvenwert während der Abklingphase. Für die Modulationshüllkurve neigt sich die Abklingphase linear zu dem Haltepegel hin. Wenn der Haltepegel Null wäre, wäre die Modulationshüllkurvenabklingzeit die Zeit, die in der Abklingphase verbraucht wird. Ein Wert von 0 indiziert eine 1 Sekunden-Abklingzeit für eine Null-Haltepegel. Ein negativer Wert indiziert eine Zeit von weniger als einer Sekunde; ein positiver Wert eine Zeit von länger als einer Sekunde. Zum Beispiel wäre eine Abklingzeit von 10 msec. gleich 1200log2(0,01) = –7973.
    29 sustainModEnv Dies ist die Pegelabsenkung, ausgedrückt in 0,1%-Einheiten, über die sich der Modulationhüllkurvenwert während der Abklingphase neigt. Für die Modulationshülle wird der Haltepegel am Besten in Prozent der vollen Skala ausgedrückt. Zur Übereinstimmung mit der Lautstärkehüllkurve wird der Haltepegel als Abnahme von der vollen Skala ausgedrückt. Ein Wert von 0 indiziert, dass der Haltepegel der volle Pegel ist; dies impliziert eine Nulldauer der Abklingphase unabhängig von der Abklingzeit. Ein positiver Wert indiziert ein Abklingen auf den entsprechenden Pegel. Werte kleiner als Null sind als Null zu interpretieren; Werte über 1000 sind als 1000 zu interpretieren. Zum Beispiel wäre ein Haltepegel, der einem Absolutwert von 40% der Spitze entspricht, gleich 600.
    30 releaseModEnv Dies ist die Zeit, in absoluten Zeit-Cents, für eine 100%ige Änderung in dem Modulationhüllkurvenwert während der Nachlassphase. Für die Modulationshüllkurve neigt sich die Nachlassphase vom gegenwärtigen Pegel linear zu Null hin. Wenn der gegenwärtige Pegel die volle Skala wäre, dann wäre die Modulationshüllkurvennachlasszeit diejenige Zeit, die in der Nachlassphase verbraucht wird, bis der Nullwert erreicht wäre. Ein Wert von 0 indiziert eine 1 Sekunden-Abklingzeit für ein Nachlassen vom vollen Pegel. Ein negativer Wert indiziert eine Zeit von weniger als einer Sekunde; ein positiver Wert eine Zeit von länger als einer Sekunde. Zum Beispiel wäre eine Nachlasszeit von 10 msec. gleich 1200log2(0,01) = –7973.
    31 keynumToModEnvHold Dies ist der Grad, in Zeit-Cent pro Tastennummereinheiten, um die die Haltezeit der Modulationhüllkurve gesenkt wird, indem die MIDI-Tastenzahl erhöht wird. Die Haltezeit an der Tastennummer 60 ist immer unverändert. Die Skalierungseinheit ist so, dass ein Wert von 100 eine Haltezeit vorsieht, die der Tastatur folgt, das heisst eine Aufwärtsoktave bewirkt eine Halbierung der Haltezeit. Wenn zum Beispiel die Modulationhüllkurvenhaltezeit –7973 gleich 10 msec. wäre und die Tastenummer für ModEnvHold 50 wäre, dann wäre, wenn eine Tastenummer 36 gespielt würde, die Haltezeit 20 msec.
    32 keynumToModEnvDecay Dies ist der Grad, in Zeit-Cent pro Tastennummereinheiten, um die die Haltezeit der Modulationhüllkurve gesenkt wird, indem die MIDI-Tastenzahl erhöht wird.
    Die Haltezeit an der Tastennummer 60 ist immer unverändert. Die Skalierungseinheit ist so, dass ein Wert von 100 eine Haltezeit vorsieht, die der Tastatur folgt, das heisst eine Aufwärtsoktave bewirkt eine Halbierung der Haltezeit. Wenn zum Beispiel die Modulationhüllkurvenhaltezeit –7973 gleich 10 msec. wäre und die Tastenummer für ModEnvHold 50 wäre, dann wäre, wenn eine Tastenummer 36 gespielt würde, die Haltezeit 20 msec.
    33 delayVolEnv Dies ist die Verzögerungszeit, in absoluten Zeit-Cents, zwischen dem Einschalten der Taste und dem Start der Einsatzphase der Lautstärkenhüllkurve. Ein Wert von 0 indiziert eine 1 Sekundenverzögerung. Ein negativer Wert indiziert eine Verzögerung von weniger als einer Sekunde; ein positiver Wert eine Verzögerung länger als eine Sekunde. Die negativste Zahl (–32768) indiziert konventionell keine Verzögerung. Zum Beispiel wäre eine Verzögerung von 10 msec. gleich 1200log2(0,01) = –7973.
    34 attackVolEnv Dies ist die Zeit, in absoluten Zeit-Cents, ab dem Ende der Lautstärkehüllkurveverzögerungszeit bis zu dem Punkt, an dem der Lautstärkenhüllkurvenwert seinen Spitzenwert erreicht. Merke, dass der Einsatz „konvex" ist, die Kurve ist nominal so, dass dann, wenn sie einen Dezibel- oder Halbtonparameter angewendet wird, das Ergebnis in Amplitude bzw. Hz linear ist. Ein Wert von 0 indiziert eine 1 Sekunden-Einsatzzeit. Ein negativer Wert gibt eine Zeit von weniger als einer Sekunde; ein positiver Wert eine Zeit von länger als eine Sekunde. Die negativste Zahl (–32768) indiziert konventionell einen plötzlichen Ein
    satz. Zum Beispiel wäre eine Einsatzzeit von 10 msec. gleich 1200log2(0,01) = –7973.
    35 holdVolEnv Dies ist die Zeit, in absoluten Zeit-Cents, ab dem Ende der Einsatzphase bis zum Eintritt in die Abklingphase, während der der Lautstärkenhüllkurvenwert auf seinem Spitzenwert gehalten wird. Ein Wert von 0 indiziert eine 1 Sekundenverzögerung. Ein negativer Wert indiziert eine Verzögerung von weniger als einer Sekunde; ein positiver Wert eine Verzögerung länger als eine Sekunde. Die negativste Zahl (–32768) indiziert konventionell keine Verzögerung. Zum Beispiel wäre eine Verzögerung von 10 msec. gleich 1200log2(0,01) = –7973.
    36 decayVolEnv Dies ist die Zeit, in absoluten Zeit-Cents, für eine 100%ige Änderung in dem Lautstärkenhüllkurvenwert während der Abklingphase. Für die Lautstärkenhüllkurve neigt sich die Abklingphase linear bis zum Haltepegel, was eine konstante dB-Änderung für jede Zeiteinheit hervorruft. Wenn der Haltepegel –100db wäre, wäre die Lautstärkenhüllkurvenabklingzeit jene Zeit, die in der Abklingphase verbraucht wird. Ein Wert von 0 indiziert eine 1 Sekunden-Abklingzeit für einen Null-Haltepegel. Ein negativer Wert indiziert eine Zeit von weniger als einer Sekunde; ein positiver Wert eine Zeit länger als eine Sekunde. Zum Beispiel wäre eine Abklingzeit von 10 msec. gleich 1200log2(0,01) = –7973.
    37 sustainVolEnv Dies ist die Minderung im Pegel, ausgedrückt in Centibel, über den sich der Lautstärkenhüllkurvenwert während der Abklingphase neigt. Für die Lautstärken
    hüllkurve wird der Haltepegel am besten in cB der Dämpfung von der vollen Skala her ausgedrückt. Ein Wert von 0 indiziert, dass der Haltepegel der volle Pegel ist; dies impliziert eine Nulldauer-Abklingphase unabhängig von der Abklingzeit. Ein positiver Wert indiziert ein Abklingen zu dem entsprechenden Pegel. Werte kleiner als Null sind als Null zu interpretieren; konventionell indiziert 1000 die volle Dämpfung. Zum Beispiel wäre ein Haltepegel, der einem Absolutwert von 12 dB unter dem Spitzenwert entspricht, 120.
    38 releaseVolEnv Dies ist die Zeit, in absoluten Zeit-Cents, für eine 100%ige Änderung in dem Lautstärkenhüllkurvenwert während der Nachlassphase. Für die Lautstärkenhüllkurve neigt sich die Nachlassphase von dem gegenwärtigen Pegel linear zu der zu Null hin, was eine konstante dB-Änderung für jede Zeiteinheit hervorruft. Wenn der gegenwärtige Pegel die volle Skala wäre, wäre die Lautstärkenhüllkurvennachlasszeit jene Zeit, die in der Nachlassphase vergeht, bis eine –100 dB-Dämpfung erreicht ist. Ein Wert von 0 indiziert eine 1 Sekunden-Abklingzeit für ein Nachlassen vom vollen Pegel. Ein negativer Wert indiziert eine Zeit von weniger als einer Sekunde; ein positiver Wert eine Zeit länger als eine Sekunde. Zum Beispiel wäre eine Nachlasszeit von 10 msec. gleich 1200log2(0,01) = –7973.
    39 keynumToVolEnvHold Dies ist der Grad, in Zeit-Cents pro Tastennummereinheiten, um den die Haltezeit der Lautstärkenhüllkurve verringert wird, indem die MIDI-Tastennummer erhöht wird. Die Haltezeit an der Tastennummer 60 ist immer unverändert. Die Skalierungseinheit ist so,
    dass ein Wert von 100 eine Haltezeit vorsieht, die der Tastatur folgt, das heisst eine Aufwärtsoktave bewirkt eine Halbierung der Haltezeit. Wenn zum Beispiel die Lautstärkenhüllkurvenhaltezeit –7973 gleich 10 msec. wäre und die Tastenummer für VolEnvHold 50 wäre, dann wäre, wenn eine Tastenummer 36 gespielt wird, die Haltezeit 20 msec.
    40 keynumToVolEnvDecay Dies ist der Grad, in Zeit-Cents pro Tastennummereinheiten, um den die Haltezeit der Lautstärkenhüllkurve verringert wird, indem die MIDI-Tastennummer erhöht wird. Die Haltezeit an der Tastennummer 60 ist immer unverändert. Die Skalierungseinheit ist so, dass ein Wert von 100 eine Haltezeit vorsieht, die der Tastatur folgt, das heisst eine Aufwärtsoktave bewirkt eine Halbierung der Haltezeit. Wenn zum Beispiel die Lautstärkenhüllkurvenhaltezeit –7973 gleich 10 msec. wäre und die Tastenummer für VolEnvHold 50 wäre, dann wäre, wenn eine Tastenummer 36 gespielt wird, die Haltezeit 20 msec.
    41 instrument Dies ist der Index für das INST-Subchunk, das das Instrument vorsieht, das für die gegenwärtige Ebene zu verwenden ist. Ein Wert von Null indiziert das erste Instrument in der Liste. Der Wert sollte niemals die Größe der Instrumentenliste überschreiten. Der Instrumenten-Enumerator ist der terminale Generator für PGEN-Ebenen, insofern sollte er nur in dem PGEN-Subchunk erscheinen, und er muss in allen, bis auf die globale Ebene, als der letzte Generator-Enumerator erscheinen.
    42 reservel1 Unbenutzt, reserviert. Sollte beim Vorfinden ignoriert werden.
    43 keyRange Dies sind die minimalen und maximalen MIDI-Tastennummerwerte, für die diese Voreinstellung, Ebene, dieses Instrument oder diese Aufteilung aktiv sind. Das LS-Byte indiziert die höchste und das MS-Byte die niedrigst gültige Taste. Ein keyRange-Enumerator ist optional, aber wenn er auftaucht, muss er der erste Generator in der Voreinstellung, Ebene, dem Instrument oder der Aufteilung sein.
    44 velRange Dies sind die minimalen und maximalen MIDI-Geschwindigkeitswerte, für die diese Voreinstellung, Ebene, dieses Instrument oder diese Aufteilung aktiv ist. Das LS-Byte indiziert die höchste und das MS-Byte die niedrigst gültige Geschwindigkeit. Der velRange-Enumerator ist optional, aber wenn er auftaucht, darf ihm nur der keyRange in der Voreinstellung, Ebene, dem Instrument oder der Aufteilung vorausgehen.
    45 startloopAddrsCoarseOffset Der Versatz in 32768 Abtastinkrementen jenseits des Startschleifenabtastkopfparameters und der ersten Abtastung, die in dieser Instrumentenschleife wiederholt werden soll. Dieser Parameter wird zu dem startloopAddrsOffset-Parameter addiert. Wenn zum Beispiel Startloop 5 wäre, startloopAddrOffset 3 wäre und startAddrCoarseOffset 2 wäre, dann wäre die erste Abtastung in der Schleife die Abtastung 65544.
    46 keynum Dieser Enumerator erzwingt, dass die MIDI-Tastennummer effektiv als der gegebene Wert interpretiert wird. Gültige Werte betragen von 0 bis 127.
    47 velocity Dieser Enumerator erzwingt, dass die MIDI-Geschwindigkeit effektiv als der gegebene Wert interpretiert wird. Gültige Werte betragen von 0 bis 127.
    48 initialAttenuation Dies ist die Dämpfung, in Centibel, um die eine Note unter die volle Skala gedämpft wird. Ein Wert von Null indiziert keine Dämpfung; die Note wird mit der vollen Skala gespielt. Zum Beispiel indiziert ein Wert von 60, dass die Note mit 6 dB unter der vollen Skala für die Note gespielt wird.
    49 reserved 2 Unbenutzt, reserviert. Sollte beim Vorfinden ignoriert werden.
    50 endloopAddrsCoarseOffset Der Versatz in 32768 Abtastinkrementen jenseits des Endlosschleifenabtastkopfparameters für die Abtastung, die als äquivalent zu der Startschleifenabtastung für die Schleife für dieses Instrument betrachtet wird. Dieser Parameter wird zu dem endloopAddrsOffset-Parameter addiert. Wenn zum Beispiel Endloop 5 wäre, endloopAddrOffset 3 wäre und endAddrCoarseOffset 2 wäre, würde die Abtastung 65544 als zur Startschleifenabtastung äquivalent angesehen und daher würde während der Schleife effektiv die Abtastung 65543 der Startschleife vorausgehen.
    51 coarseTune Dies ist ein Tonhöhenversatz in Halbtönen, der auf die Note angewendet werden sollte. Ein positiver Wert
    indiziert, dass der Ton mit einer höheren Tonlage reproduziert wird; ein negativer Wert indiziert eine tiefere Tonlage. Zum Beispiel würde ein Coarse Tune-Wert von –4 bewirken, dass der Ton vier Halbtöne tiefer wiedergegeben würde.
    52 fineTune Dies ist ein Tonhöhenversatz in Cents, der auf die Note angewendet werden sollte. Er ist zu coarseTune additiv. Ein positiver Wert indiziert, dass der Ton mit einer höheren Tonlage reproduziert wird; ein negativer Wert indiziert eine tiefere Tonlage. Zum Beispiel würde ein Fine Tune-Wert von –5 bewirken, dass der Ton fünf Cents tiefer reproduziert würde.
    53 sampleID Dies ist der Index in das SHDR-Subchunk, das die für die gegenwärtige Aufteilung zu benutzende Abtastung bereitstellt. Ein Wert von Null indiziert die erste Abtastung in der Liste. Der Wert sollte niemals die Größe der abgetasteten Liste überschreiten. Der AbtastID-Enumerator ist der terminale Generator für IGEN-Aufteilungen. Insofern sollte er nur in dem IGEN-Subchunk auftauchen und muss in allen bis auf die globale Aufteilung als der letzte Generator-Enumerator auftauchen.
    54 sampleModes Dieser Enumerator indiziert einen Wert, der eine Vielzahl von Boole'schen Flags angibt, die die Abtastung für die gegenwärtige Instrumentenaufteilung beschreiben. Die sampleModes sollten nur in dem IGEN-Subchunk auftreten und sollen in der globalen Aufteilung nicht auftreten. Die zwei LS-Bits des Werts indizieren den Typ der Schleife in der Abtastung: 0 indiziert einen Ton, der mit keiner Schleife reprodu
    ziert wird, 1 indiziert einen Ton, der fortlaufend geschleift wird, 2 indiziert redundant keine Schleife und 3 indiziert einen Ton, der für die Dauer des Tastendrucks schleift, und der dann weitergeht, um den Rest der Abtastung zu spielen. Das MS-Bit (Bit 15) des Werts indiziert, dass sich diese Abtastung in dem ROM-Speicher der Soundmaschine findet.
    55 reserved3 Unbenutzt, reserviert. Sollte beim Vorfinden ignoriert werden.
    56 scaleTuning Dieser Parameter repräsentiert den Grad, um den die MIDI-Tastennummer die Tonhöhe beeinflusst. Ein Wert von Null indiziert, dass die MIDI-Tastennummer keinen Effekt auf die Tonhöhe hat; ein Wert von 100 repräsentiert die gewöhnliche temperierte Halbtonskala.
    57 exclusiveClass Dieser Parameter sorgt für die Fähigkeit, dass ein Tastendruck in einem gegebenen Instrument die Wiedergabe anderer Instrumente beendet. Dies ist besonders nützlich für Schlaginstrumente, wie etwa ein Hihat-Becken. Ein exclusive class-Wert von Null indiziert keine ausschließliche Klasse; es findet keine besondere Aktion statt. Jeglicher andere Wert indiziert, dass dann, wenn diese Note initiiert wird, eine etwaige andere tönende Note mit demselben exclusive class-Wert, der schnell beendet werden sollte.
    58 overridingRootKey Dieser Parameter repräsentiert die MIDI-Tastennummer, mit der die Abtastung mit ihrer ursprünglichen Abtastrate wiedergegeben werden soll. Falls nicht vorhanden, oder falls mit einem Wert von –1
    vorhanden, dann wird an dessen Stelle der Abtastkopfparameter der ursprünglichen Taste benutzt. Wenn er in dem Bereich von 0–127 liegt, dann wird die indiziert Tastennummer bewirken, dass die Abtastung mit der Abtastkopf-Abtastrate wiedergegeben wird. Wenn zum Beispiel die Abtastung eine Aufzeichnung des mittleren C eines Klaviers (ursprüngliche Taste = 60) mit einer Abtastrate von 22,055 kHz wäre und die Ursprungstaste auf 69 gesetzt wäre, dann würde das Spielen der MIDI-Tastenzahl 69 (A über dem mittleren C) bewirken, dass eine Klaviernote in Höhe des mittleren C zu hören ist.
    59 unused5 Unbenutzt, reserviert. Sollte beim Vorfinden ignoriert werden.
    60 endOper Unbenutzt, reserviert. Sollte beim Vorfinden ignoriert werden. Eindeutiger Name, bildet Wert zum Beenden der definierten Liste.
  • 8.1.3 Zusammenfassung des Generators
  • Die folgenden Tabellen geben Bereiche und Standardwerte für alle SoundFont 2.00 definierten Generatoren an.
  • Figure 00890001
  • Figure 00900001

Claims (20)

  1. Audiodatenverarbeitungssystem, umfassend: einen Prozessor zum Verarbeiten von Audioabtastdaten; einen Speicher zum Speichern von Audioabtastdaten für den Zugang durch ein an dem Prozessor auszuführendes Programm, umfassend: eine Datenformatstruktur, die in dem Speicher gespeichert ist, wobei die Datenformatstruktur von dem Programm verwendete Informationen enthält, und enthält zumindest eine Voreinstellung, wobei jede Voreinstellung zumindest ein Instrument referenziert, wobei die Voreinstellungen optional einen oder mehrere Artikulationsparameter zum Spezifizieren von Aspekten des Instruments enthalten; zumindest ein Instrument, das durch jede der zumindest einen Voreinstellung referenziert wird, wobei jedes der Instrumente eine Audioabtastung referenziert und einen oder mehrere Artikulationsparameter zum Spezifizieren von Aspekten des Instruments enthält; wobei jeder der Artikulationsparameter in Einheiten spezifiziert ist, die sich auf ein physikalisches Phänomen beziehen, das sich auf irgend eine bestimmte Maschine zum Erzeugen oder Abspielen von Audioabtastungen nicht bezieht.
  2. System nach Anspruch 1, wobei die Einheiten wahrnehmbar additiv sind.
  3. System nach Anspruch 2, worin die Einheiten derart spezifiziert sind, dass das Addieren des gleichen Betrags in diesen Einheiten zu zwei verschiedenen Werten in diesen Einheiten die darunterliegenden physikalischen Werte, die durch die Einheiten repräsentiert sind, proportional beeinflusst, wobei die Einheiten Prozentanteile und Dezibel enthalten.
  4. System nach Anspruch 2, worin eine der Einheiten absolute Cents sind, worin ein absoluter Cent 1/100 eines Halbtons ist, referenziert auf einen Null-Wert entsprechend der MIDI-Kennzahl 0, die 8,1758 Hz zugeordnet ist.
  5. System nach Anspruch 4, worin die in absoluten Cents ausgedrückten Instrumentenartikulationsparameter enthalten: Modulation LFO-Frequenz; und Initialfiltersperre.
  6. System nach Anspruch 2, worin eine der Einheiten eine in Zeit-Cents ausgedrückte relative Zeit ist, worin Zeit-Cents für zwei Perioden der Zeit T und U gleich 1200 log2 (T/U) definiert ist.
  7. System nach Anspruch 6, worin in Zeit-Cents ausgedrückte voreingestellte Artikulationsparameter enthalten: Modulation LFO-Verzögerung; Vibrato LFO-Verzögerung; Modulation Hüll-Verzögerungszeit; Modulation Hüll-Einsatzzeit; Lautstärke Hüll-Einsatzzeit; Modulation Hüll-Haltezeit; Lautstärke Hüll-Naltezeit; Modulation Hüll-Abklingzeit; Modulation Hüll-Nachlasszeit;.und Lautstärke Hüll-Nachlasszeit.
  8. System nach Anspruch 2, worin eine der Einheiten eine in Zeit-Cents ausgedrückte absolute Zeit ist, worin Zeit-Cent für eine Zeit T in Sekunden gleich 1200 log2 (T) definiert ist.
  9. System nach Anspruch 8, worin in absoluten Zeit-Cents ausgedrückte Instrumentenartikulationsparameter enthalten: Modulation LFO-Verzögerung; Vibrato LFO-Verzögerung; Modulation Hüll-Verzögerungszeit; Modulation Hüll-Einsatzzeit; Lautstärke Hüll-Einsatzzeit; Modulation Hüll-Haltezeit; Lautstärke Hüll-Haltezeit; Modulation Hüll-Abklingzeit; Modulation Hüll-Nachlasszeit;.und Lautstärke Hüll-Nachlasszeit.
  10. System nach Anspruch 1, worin eine Mehrzahl der Audioabtastungen einen Datenblock aufweisen, umfassend: ein oder mehrere Segmente von digitalisiertem Audio; eine Abtastrate, die jedem der digitalisierten Audiosegmente zugeordnet ist; eine Ursprungstaste, die jedem der digitalisierten Audiosegmente zugeordnet ist; und eine Tonhöhenkorrektur, die der Ursprungstaste zugeordnet ist.
  11. System nach Anspruch 1, worin die Artikulationsparameter Generatoren und Modulatoren aufweisen, wobei zumindest einer der Modulatoren umfasst: einen ersten Quellen-Enumerator, der eine erste Quelle von Echtzeitinformation spezifiziert, die dem einen Modulator zugeordnet ist; einen Generator-Enumerator, der einen der Generatoren spezifiziert, der dem einen Modulator zugeordnet ist; einen Betrag, der einen Grad spezifiziert, um den der erste Quellen-Enumerator den einen Generator beeinflusst; einen zweiten Quellen-Enumerator, der eine zweite Quelle von Echtzeitinformation spezifiziert, um den Grad zu variieren, um den der ersten Quellen-Enumerator den einen Generator beeinflusst; und einen Transformations-Enumerator, der eine Transformationsoperation an der ersten Quelle spezifiziert.
  12. System nach Anspruch 1, worin die Audioabtastungen Stereoaudioabtastungen enthalten, wobei jede der Stereoaudioabtastungen ein Datenblock ist, der einen Zeiger auf einen zweiten Datenblock enthält, der eine passende Stereoaudioabtastung enthält.
  13. Audiodatenverarbeitungssystem nach Anspruch 2, worin die Datenformatstruktur ferner enthält: eine Mehrzahl der Audioabtastungen, die einen Datenblock umfassen, enthaltend: ein oder mehrere Datensegmente von digitalisiertem Audio, eine Abtastrate, die jedem der digitalisierten Audiosegmente zugeordnet ist, eine Ursprungstaste, die jedem der digitalisierten Audiosegmente zugeordnet ist, und eine Tonhöhenkorrektur, die der Ursprungstaste zugeordnet ist, wobei die Artikulationsparameter Generatoren und Modulatoren umfasen, wobei zumindest einer der Modulatoren enthält: einen ersten Quellen-Enumerator, der eine erste Quelle von Echtzeitinformation spezifiziert, die dem einen Modulator zugeordnet ist; einen Generator-Enumerator, der einen der Generatoren spezifiziert, der dem einen Modulator zugeordnet ist; einen Betrag, der einen Grad spezifiziert, um den der erste Quellen-Enumerator den einen Generator beeinflusst; einen zweiten Quellen-Enumerator, der eine zweite Quelle von Echtzeitinformation spezifiziert, um den Grad zu variieren, um den der ersten Quellen-Enumerator den einen Generator beeinflusst; und einen Transformations-Enumerator, der eine Transformationsoperation an der ersten Quelle spezifiziert
  14. Verfahren zum Speichern von Musikabtastdaten für den Zugang durch ein Programm, das an einem Audiodatenverarbeitungssystem auszuführen ist, welches die Schritte aufweist: Speichern einer Datenformatstruktur in dem Speicher, wobei die Datenformatstruktur durch das Programm verwendete Informationen enthält, und enthält: zumindest eine Voreinstellung, wobei die Voreinstellung ein Instrument referenziert, wobei die Voreinstellung optional einen oder mehrere Artikulationsparameter zum Spezifizieren von Aspekten des Instruments enthält; zumindest ein Instrument, das durch jede der zumindest einen Voreinstellung referenziert wird, wobei jedes der Instrumente eine Audioabtastung referenziert und einen oder mehrere Artikulationsparameter zum Spezifizieren von Aspekten des Instruments enthält; wobei jeder der Artikulationsparameter in Einheiten spezifiziert ist, die sich auf ein physikalisches Phänomen beziehen, das sich auf irgend eine bestimmte Maschine zum Erzeugen oder Abspielen von Audioabtastungen nicht bezieht.
  15. Verfahren nach Anspruch 14, das ferner den Schritt aufweist, die Einheiten als wahrnehmbar additiv zu spezifizieren.
  16. Verfahren nach Anspruch 14, das ferner die Schritte aufweist, eine Mehrzahl der Audioabtastungen als Datenblock zu speichern, umfassend: ein oder mehrere Segmente von digitalisiertem Audio; eine Abtastrate, die jedem der digitalisierten Audiosegmente zugeordnet ist; eine Ursprungstaste, die jedem der digitalisierten Audiosegmente zugeordnet ist; und eine Tonhöhenkorrektur, die der Ursprungstaste zugeordnet ist.
  17. Verfahren nach Anspruch 14, worin die Artikulationsparameter Generatoren und Modulatoren aufweisen, wobei zumindest einer der Modulatoren umfasst: einen ersten Quellen-Enumerator, der eine erste Quelle von Echtzeitinformation spezifiziert, die dem einen Modulator zugeordnet ist; einen Generator, der einen der Generatoren spezifiziert, der dem einen Modulator zugeordnet ist; einen Betrag, der einen Grad spezifiziert, um den der erste Quellen-Enumerator den einen Generator beeinflusst; einen zweiten Quellen-Enumerator, der eine zweite Quelle von Echtzeitinformation spezifiziert, um den Grad zu variieren, um den der ersten Quellen-Enumerator den einen Generator beeinflusst; und einen Transformations-Enumerator, der eine Transformationsoperation an der ersten Quelle spezifiziert.
  18. Verfahren nach Anspruch 14, worin die Audioabtastungen Stereoaudioabtastungen enthalten, wobei jede der Stereoaudioabtastungen ein Datenblock ist, der einen Zeiger auf einen zweiten Datenblock enthält, der eine passende Stereoaudioabtastung enthält.
  19. Verfahren nach Anspruch 14, worin zumindest eine der Audioabtastungen einen Schleifenstartpunkt und einen Schleifenendpunkt enthält, und das ferner den Schritt aufweist, zu erzwingen, dass nahegelegene Datenpunkte, die den Schleifenstartpunkt und den Schleifenendpunkt umgeben, im Wesentlichen identisch sind.
  20. Verfahren nach Anspruch 19, worin die Anzahl der im Wesentlichen identischen nahegelegenen Datenpunkte 8 oder weniger ist.
DE69625693T 1995-08-14 1996-08-13 Verfahren und vorrichtung zur formatierung von digitalen, elektrischen daten Expired - Lifetime DE69625693T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US514788 1995-08-14
US08/514,788 US5763800A (en) 1995-08-14 1995-08-14 Method and apparatus for formatting digital audio data
PCT/US1996/013154 WO1997007476A2 (en) 1995-08-14 1996-08-13 Method and apparatus for formatting digital audio data

Publications (2)

Publication Number Publication Date
DE69625693D1 DE69625693D1 (de) 2003-02-13
DE69625693T2 true DE69625693T2 (de) 2004-05-06

Family

ID=24048696

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69625693T Expired - Lifetime DE69625693T2 (de) 1995-08-14 1996-08-13 Verfahren und vorrichtung zur formatierung von digitalen, elektrischen daten

Country Status (7)

Country Link
US (1) US5763800A (de)
EP (1) EP0845138B1 (de)
JP (1) JP4679678B2 (de)
AT (1) ATE230886T1 (de)
AU (1) AU6773696A (de)
DE (1) DE69625693T2 (de)
WO (1) WO1997007476A2 (de)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0827133B1 (de) * 1996-08-30 2001-04-11 Yamaha Corporation Verfahren und Vorrichtung zur Erzeugung von Musiktönen, zur Bearbeitung und Wiedergabe von Musikdaten mit Hilfe von Speichermitteln
JP3910702B2 (ja) * 1997-01-20 2007-04-25 ローランド株式会社 波形発生装置
EP0907160B1 (de) * 1997-09-30 2004-05-19 Yamaha Corporation Verfahren, Vorrichtung und Aufzeichnungsmedium zur Erzeugung von Tondaten
US6093880A (en) * 1998-05-26 2000-07-25 Oz Interactive, Inc. System for prioritizing audio for a virtual environment
DE19833989A1 (de) * 1998-07-29 2000-02-10 Daniel Jensch Verfahren und Vorrichtung zur elektronischen Nachbildung von Harmonien akustischer Instrumente
JP4170458B2 (ja) 1998-08-27 2008-10-22 ローランド株式会社 波形信号の時間軸圧縮伸長装置
US6323797B1 (en) 1998-10-06 2001-11-27 Roland Corporation Waveform reproduction apparatus
US6275899B1 (en) 1998-11-13 2001-08-14 Creative Technology, Ltd. Method and circuit for implementing digital delay lines using delay caches
JP2001075565A (ja) 1999-09-07 2001-03-23 Roland Corp 電子楽器
JP2001084000A (ja) 1999-09-08 2001-03-30 Roland Corp 波形再生装置
JP3840851B2 (ja) 1999-09-27 2006-11-01 ヤマハ株式会社 記録媒体および楽音信号生成方法
JP3654080B2 (ja) * 1999-09-27 2005-06-02 ヤマハ株式会社 波形生成方法及び装置
JP3654082B2 (ja) * 1999-09-27 2005-06-02 ヤマハ株式会社 波形生成方法及び装置
JP3601371B2 (ja) 1999-09-27 2004-12-15 ヤマハ株式会社 波形生成方法及び装置
JP2001100760A (ja) 1999-09-27 2001-04-13 Yamaha Corp 波形生成方法及び装置
JP3654084B2 (ja) * 1999-09-27 2005-06-02 ヤマハ株式会社 波形生成方法及び装置
JP4293712B2 (ja) 1999-10-18 2009-07-08 ローランド株式会社 オーディオ波形再生装置
JP2001125568A (ja) 1999-10-28 2001-05-11 Roland Corp 電子楽器
JP3614061B2 (ja) 1999-12-06 2005-01-26 ヤマハ株式会社 自動演奏装置及び自動演奏プログラムを記録したコンピュータ読取り可能な記録媒体
GB2364161B (en) * 1999-12-06 2002-02-27 Yamaha Corp Automatic play apparatus and function expansion device
US7010491B1 (en) 1999-12-09 2006-03-07 Roland Corporation Method and system for waveform compression and expansion with time axis
JP2001318672A (ja) * 2000-03-03 2001-11-16 Sony Computer Entertainment Inc 楽音発生装置
AT500124A1 (de) * 2000-05-09 2005-10-15 Tucmandl Herbert Anlage zum komponieren
SG118122A1 (en) * 2001-03-27 2006-01-27 Yamaha Corp Waveform production method and apparatus
US6822153B2 (en) 2001-05-15 2004-11-23 Nintendo Co., Ltd. Method and apparatus for interactive real time music composition
US7295977B2 (en) * 2001-08-27 2007-11-13 Nec Laboratories America, Inc. Extracting classifying data in music from an audio bitstream
GB0220986D0 (en) * 2002-09-10 2002-10-23 Univ Bristol Ultrasound probe
US7526350B2 (en) * 2003-08-06 2009-04-28 Creative Technology Ltd Method and device to process digital media streams
US20060200744A1 (en) * 2003-12-08 2006-09-07 Adrian Bourke Distributing and displaying still photos in a multimedia distribution system
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US7519274B2 (en) * 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US7107401B1 (en) 2003-12-19 2006-09-12 Creative Technology Ltd Method and circuit to combine cache and delay line memory
JP2006195043A (ja) * 2005-01-12 2006-07-27 Yamaha Corp 電子音楽装置および同装置に適用されるコンピュータ読み取り可能なプログラム
WO2006085244A1 (en) * 2005-02-10 2006-08-17 Koninklijke Philips Electronics N.V. Sound synthesis
CN101116136B (zh) * 2005-02-10 2011-05-18 皇家飞利浦电子股份有限公司 声音合成的装置和方法
JP4645337B2 (ja) * 2005-07-19 2011-03-09 カシオ計算機株式会社 波形データ補間装置
WO2007106844A2 (en) 2006-03-14 2007-09-20 Divx, Inc. Federated digital rights management scheme including trusted systems
KR100768758B1 (ko) * 2006-10-11 2007-10-22 박중건 음악연주 장치 및 그것을 이용한 음향출력 방법.
JP5513400B2 (ja) 2007-11-16 2014-06-04 ソニック アイピー, インコーポレイテッド マルチメディアファイルのための階層的で簡略なインデックス構造体
US9159325B2 (en) * 2007-12-31 2015-10-13 Adobe Systems Incorporated Pitch shifting frequencies
US8697978B2 (en) 2008-01-24 2014-04-15 Qualcomm Incorporated Systems and methods for providing multi-region instrument support in an audio player
US8759657B2 (en) 2008-01-24 2014-06-24 Qualcomm Incorporated Systems and methods for providing variable root note support in an audio player
US8030568B2 (en) 2008-01-24 2011-10-04 Qualcomm Incorporated Systems and methods for improving the similarity of the output volume between audio players
US7847177B2 (en) * 2008-07-24 2010-12-07 Freescale Semiconductor, Inc. Digital complex tone generator and corresponding methods
US20100162878A1 (en) * 2008-12-31 2010-07-01 Apple Inc. Music instruction system
AU2010203605B2 (en) 2009-01-07 2015-05-14 Divx, Llc Singular, collective and automated creation of a media guide for online content
EP2507995A4 (de) 2009-12-04 2014-07-09 Sonic Ip Inc Systeme und verfahren zum transport eines kryptographischen materials für elementare bitströme
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
US8818171B2 (en) 2011-08-30 2014-08-26 Kourosh Soroushian Systems and methods for encoding alternative streams of video for playback on playback devices having predetermined display aspect ratios and network connection maximum data rates
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
WO2013033458A2 (en) 2011-08-30 2013-03-07 Divx, Llc Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US20130312588A1 (en) * 2012-05-01 2013-11-28 Jesse Harris Orshan Virtual audio effects pedal and corresponding network
US10452715B2 (en) 2012-06-30 2019-10-22 Divx, Llc Systems and methods for compressing geotagged video
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS608759B2 (ja) * 1981-09-24 1985-03-05 日揮株式会社 放射性廃液中の有機化合物を除去する方法
JPS5852598U (ja) * 1981-10-05 1983-04-09 ヤマハ株式会社 電子楽器のプリセツト装置
JPS59131996A (ja) * 1983-01-18 1984-07-28 松下電器産業株式会社 波形発生方法
JPH0772829B2 (ja) * 1986-02-28 1995-08-02 ヤマハ株式会社 電子楽器におけるパラメ−タ供給装置
US5153829A (en) * 1987-11-11 1992-10-06 Canon Kabushiki Kaisha Multifunction musical information processing apparatus
JP2864508B2 (ja) * 1988-11-19 1999-03-03 ソニー株式会社 波形データ圧縮符号化方法及び装置
US5020410A (en) * 1988-11-24 1991-06-04 Casio Computer Co., Ltd. Sound generation package and an electronic musical instrument connectable thereto
US5119711A (en) * 1990-11-01 1992-06-09 International Business Machines Corporation Midi file translation
JP2518464B2 (ja) * 1990-11-20 1996-07-24 ヤマハ株式会社 楽音合成装置
JPH05108070A (ja) * 1991-10-14 1993-04-30 Kawai Musical Instr Mfg Co Ltd 電子楽器の音色制御装置
US5563358A (en) * 1991-12-06 1996-10-08 Zimmerman; Thomas G. Music training apparatus
US5243124A (en) * 1992-03-19 1993-09-07 Sierra Semiconductor, Canada, Inc. Electronic musical instrument using FM sound generation with delayed modulation effect
US5331111A (en) * 1992-10-27 1994-07-19 Korg, Inc. Sound model generator and synthesizer with graphical programming engine
JPH07146679A (ja) * 1992-11-13 1995-06-06 Internatl Business Mach Corp <Ibm> 音声データを変換する方法及びシステム
US5444818A (en) * 1992-12-03 1995-08-22 International Business Machines Corporation System and method for dynamically configuring synthesizers
JP2626494B2 (ja) * 1993-09-17 1997-07-02 日本電気株式会社 エッチングダメージの評価方法

Also Published As

Publication number Publication date
EP0845138A4 (de) 1998-10-07
JP4679678B2 (ja) 2011-04-27
ATE230886T1 (de) 2003-01-15
AU6773696A (en) 1997-03-12
WO1997007476A3 (en) 1997-04-17
US5763800A (en) 1998-06-09
DE69625693D1 (de) 2003-02-13
EP0845138A2 (de) 1998-06-03
WO1997007476A2 (en) 1997-02-27
JPH11510917A (ja) 1999-09-21
EP0845138B1 (de) 2003-01-08

Similar Documents

Publication Publication Date Title
DE69625693T2 (de) Verfahren und vorrichtung zur formatierung von digitalen, elektrischen daten
DE69515742T2 (de) Digitale Bearbeitung von Audio-Mustern
DE69823947T2 (de) Verfahren, Vorrichtung und Aufzeichnungsmedium zur Erzeugung von Tondaten
DE3889051T2 (de) Vorrichtung zur Tonsignalerzeugung.
DE69605939T2 (de) System zur echtzeit-generierung von musik
EP1336173B1 (de) Anordnung bzw. anlage zum komponieren
DE102009040540B4 (de) Elektronisches Musikinstrument mit Stegreifaufführungsfunktion und Programm für Stegreifaufführungsfunktion
DE3546665C2 (de)
DE60018626T2 (de) Vorrichtung und Verfahren zur Eingabe von Steuerungsdateien für Musikvorträge
DE69904640T2 (de) Verfahren zum ändern des oberweyllengehalts einer komplexen wellenform
DE60308370T2 (de) Musikalisches notierungssystem
DE69732311T2 (de) Verfahren zur Erzeugung von Musiktönen
DE60024157T2 (de) Vorrichtung und Verfahren zur Eingabe eines Vortragstils
DE60026189T2 (de) Verfahren und Vorrichtung zur Wellenformkomprimierung und Erzeugung
DE112014003260T5 (de) System und Verfahren zum Erzeugen einer rhythmischen Begleitungfür eine musikalische Darbietung
DE3247742A1 (de) Elektronischer schlagsynthesierer
DE112013005807T5 (de) Vorrichtung und Verfahren zur Erzeugung einer Echtzeitmusikbegleitung
DE4310560A1 (de) Gerät zur Erzeugung elektronischer Klänge
DE60318282T2 (de) Methoden und Vorrichtung zur Verarbeitung von Ausführungsdaten und zur Synthetisierung von Tonsignalen
DE60033098T2 (de) Verfahren und Vorrichtung zur Aufnahme/Wiedergabe oder Erzeugung von Wellenformen mittels Zeitlageinformation
DE69921048T2 (de) Vorrichtung zum automatischen Vortrag mit veränderlichen Arpeggiothema
DE3605122C2 (de)
DE2915678C2 (de) Elektronisches Musikinstrument
DE60032844T2 (de) Verfahren und Vorrichtung zur Erzeugung einer Wellenform auf einem Auslegungsstildatenstrom basiert
DE60006131T2 (de) Verfahren und vorrichtung zur erzeugung von improvisierter musik

Legal Events

Date Code Title Description
8364 No opposition during term of opposition