JP4679678B2 - ディジタルオーディオデータをフォーマットするための方法及び装置 - Google Patents
ディジタルオーディオデータをフォーマットするための方法及び装置 Download PDFInfo
- Publication number
- JP4679678B2 JP4679678B2 JP50944097A JP50944097A JP4679678B2 JP 4679678 B2 JP4679678 B2 JP 4679678B2 JP 50944097 A JP50944097 A JP 50944097A JP 50944097 A JP50944097 A JP 50944097A JP 4679678 B2 JP4679678 B2 JP 4679678B2
- Authority
- JP
- Japan
- Prior art keywords
- sample
- instrument
- data
- value
- audio
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/0033—Recording/reproducing or transmission of music for electrophonic musical instruments
- G10H1/0041—Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
- G10H1/0058—Transmission between separate instruments or between individual components of a musical system
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/18—Selecting circuits
- G10H1/24—Selecting circuits for selecting plural preset register stops
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/02—Instruments 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2210/00—Aspects 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/155—Musical effects
- G10H2210/195—Modulation 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/201—Vibrato, i.e. rapid, repetitive and smooth variation of amplitude, pitch or timbre within a note or chord
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2210/00—Aspects 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/155—Musical effects
- G10H2210/265—Acoustic effect simulation, i.e. volume, spatial, resonance or reverberation effects added to a musical sound, usually by appropriate filtering or delays
- G10H2210/295—Spatial effects, musical uses of multiple audio channels, e.g. stereo
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2210/00—Aspects 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/325—Musical pitch modification
- G10H2210/331—Note 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
発明の背景
本発明は、ディジタルオーディオデータの使用に関し、特にサンプルベースの音楽の音データを記憶するためのフォーマットに関する。
【0002】
電子的音楽シンセサイザーは、1960年代の初期に多くの個人により同時に発明され、最も著名なのはロバート・ムーグ及びドナルド・ブクラである。1970年代後期にはコンピュータ制御がポピュラーになっていたが、1960年代及び1970年代のシンセサイザーは、主としてアナログであった。
【0003】
VLSI及びディジタル信号処理(DSP)により可能となった消費者電子製品のために、1980年代初期には、シンセサイザーの音発生用発振器に使用する固定的一サイクル波形をディジタル化波形で置き換えることが実用的になった。この発展は2つの径路に分岐していった。職業的音楽社会では、E-muシステムのエミュレータラインとして著名な「サンプルベース音楽シンセサイザー」のラインに追従している。これらの楽器は、自然音の完全な記録を再生し、キーボード範囲に移調し、エンベロープやフィルタ及び増幅器により適当に変調する大規模メモリを備えている。これに対して、低価格の個人用コンピュータ社会では、小規模メモリを使用し、記憶した波形をダイナミックに変えることにより、合成又はコンピュータ音の音色変化を生成させるようにした「波テーブル」対応に追従している。
【0004】
1980年代には、周波数変調(FM)を使用する低価格音楽合成技術が、最初は職業音楽社会において、後にはPCに移るような形で普遍的になってきた。FMは低価格で高度に融通性のある技術であったが、サンプルベースの合成におけるリアリズムにはマッチできず、職業的スタジオにおいては、究極的にはサンプルベースの手法に代わられることとなった。
【0005】
同じ時間フレームの間に、楽器用ディジタルインターフェース(MIDI)標準が考案され、職業的音楽社会全体において楽器性能のリアルタイム制御として受け入れられた。それ以来、MIDIはPCマルチメディア産業においても標準となった。
【0006】
職業的用途のサンプルベースのシンセサイザーは、1990年代初期には、その能力をDSPにまで拡げることとなった。メモリの価格低下は、波テーブル手法にサンプル音を使用する能力を与えるようになり、直ぐに、波テーブル技術とサンプル音合成は同義になった。90年代中頃には、波テーブル合成は、大量市場製品に採用するのに十分なほど低廉価格になった。これらの波テーブル合成チップは、非常に良好な品質の音楽合成を汎用的な価格で提供できるようにし、現在では多くの業者から入手することができる。これらチップの多くはリードオンリーメモリ(ROM)に記憶されたサンプルすなわち波テーブルにより作動するものであるが、任意のサンプルをRAMメモリにダウンロードできるものは僅かである。
【0007】
楽器ディジタルインターフェース(MIDI)言語は、PC産業において音楽スコアを表すための標準となった。MIDIは、音楽スコアの各ラインがプリセットと呼ばれる異なる楽器を制御するのを可能にする。MIDI標準の汎用MIDIエキステンションは、多数の通常使用される楽器に対応して128のプリセットからなる組を確立する。
【0008】
汎用MIDIは、作曲家に一定のセットの楽器を与えるものであるが、これら楽器が生成する音の性質や品質について保証を与えるものではなく、使用できる基礎音についてさらにバライアティを得る方法を与えるものでもない。種々の楽器製造業者が、プリセットの組により多くのバリエーションを与えるために、汎用MIDIのエキステンションを製造した。しかし、究極的な融通性は、基本サンプルについてダウンロード可能なディジタルオーディオフアイルを使用することによってのみえられることは明らかである。
【0009】
汎用MIDI標準は、MIDI作曲において、作曲家が、歌を再生でき、音楽が種々の合成プラットフォームで許容できる程度に再生できること、の合理的な期待を持つことができるような方法で利用可能な楽器を定義する試みであった。これは明らかに、意欲的なゴールであり、初期のPCシンセサイザーの2人用FM合成チップからサンプル音及び「波テーブル」合成、及び「物理的モデル化」合成においてさえも、非常に多くの技術と可能性が含まれている。
【0010】
音楽家がMIDI楽器のキーボードを押すと、複雑なプロセスが開始される。キーを押すことは、特定の時点で生じるキー番号と「速度」として単にコード化されるだけである。しかし、生成された音の性質を表すのには、他に多くのパラメーターがある。MIDI「チャンネル」又は音のキーボードの16の可能性の各々が、それぞれの時点での特定の群及びプリセットに組み合わされており、演奏すべきノートの性質を表す。さらに、各MIDIチャンネルは又、MIDI「連続コントローラー」の形態の種々のパラメーターを有し、これらがある意味で音を変える。特定のプリセットを著作した音デザイナーは、これらの要因のすべてがどのようにして生成される音に影響するか、を決定する。
【0011】
音デザイナーは、そのプリセットについての興味ある音色を生成するために、種々の技術を使用する。異なるキーは、合成パラメーターと演奏されるサンプルの両方の意味において、全く異なるイベントのシーケンスをトリガする。2つの特に著名な技術は層状化及びマルチサンプリングと呼ばれるものである。マルチサンプリングは、同じプリセット内の異なるキーに種々のディジタルサンプルを充てるものである。層状化を使用すると、一回のキーの押し込みが、多数のサンプルの演奏を生じさせることになる。
【0012】
1993年に、E-muシステムズは、サンプルベースの楽器においてダウンロード可能な音の単一の汎用標準を確立することが重要であることを認識した。マルチメディアオーディオ市場が急激に成長したので、このような標準が必要になった。E-muは、解決策として、SoundFont(登録商標)1.0オーディオフォーマットを考案した。(SoundFontはE-muシステムズインコーポレーテッドの登録商標である。)SoundFont1.0オーディオフォーマットは、Creative Technology Sound-Blaster AWE32製品においてEMU8000シンセサイザーエンジンを使用する形で最初に導入された。
【0013】
SoundFontオーディオフォーマットは、波テーブル(サンプリング)合成における問題に特に対応するように設計されている。このSoundFontオーディオフォーマットは、楽器サンプル自体を表すディジタルオーディオデータを含むだけでなく、このディジタルオーディオを構築するのに必要な合成情報も含む点で従来のディジタルオーディオファイルフォーマットとは異なる。SoundFontオーディオフォーマットの群は、各々がMIDIプリセットに組み合わされた音楽キーボードの組を表す。音の各MIDI「プリセット」すなわちキーボードは、該SoundFontオーディオフォーマット内に含まれる一又はそれ以上の適切なサンプルのディジタルオーディオ再生を生じさせる。この音がMIDIキーオンコマンドによりトリガされるとき、該音は又、ノート番号、速度、及び適用できる連続コントローラーのMIDIパラメーターによって適切に制御される。SoundFontオーディオフォーマットの特異さの多くは、このアーティキュレーションデータが処理される手法にある。
【0014】
SoundFontオーディオフォーマットは、PC産業において使用されている標準リソースインターチェンジファイルフォーマット(RIFF)の「チャック」概念を使用するようにフォーマットされている。この標準フォーマットシェルを使用することで、SoundFontオーディオフォーマットには容易に理解できる階層レベルが備えられる。
【0015】
SoundFontオーディオフォーマットは、単一のSoundFontオーディオフォーマット群を含む。SoundFontオーディオフォーマット群は、一又はそれ以上のMIDIプセットの集合からなり、各々が独自のMIDIプリセット番号及び群番号を持っている。2つの別々のファイルからのSoundFontオーディオフォーマット群は、適切なプリセット識別コンフリクトを解くことが求められる抵当なソフトウエアによってのみ組み合わせることができる。MIDI群番号が含まれているので、SoundFontオーディオフォーマット群は、多数のMIDI群からのプリセットを含むことができる。
【0016】
SoundFontオーディオフォーマット群は、多数の情報ストリングを含み、これらには、該群が関連するSoundFontオーディオフォーマットリビジョンレベル、該群が参照する音ROM、生成日、著作者、著作権の主張、ユーザーコメントストリングが含まれる。
【0017】
SoundFontオーディオフォーマット群内の各MIDIプリセットは、独特の名前、MIDIプリセット番号及びMIDI群番号が付けられるMIDIプリセットは、音とキーボードキーの対応を表し、いずれかのMIDIチャンネルのMIDIキーオンイベントは、問題のMIDIチャンネルに生じる最も新しいMIDIプリセット変更及びMIDI群変更による、一つ、そして只一つのMIDIプリセットを指すものである。
【0018】
SoundFontオーディオフォーマット群内の各MIDIプリセットは、任意のグローバルプセットパラメーターリスト及び一又はそれ以上のプリセット層からなる。全地球的プセットパラメーターリストは、プリセット層パラメーターのデフォルト値を含む。プリセット層は、該プリセット層の適用されるキー及び速度範囲と、プリセット層パラメーターのリストと、楽器の表示とを含む。
【0019】
各楽器は、任意の全地球的プセットパラメーターリストと一又はそれ以上の楽器スプリットを含む。全地球的プセットパラメーターリストは、楽器層パラメーターのデフォルト値を含む。各楽器スプリットは、該楽器スプリットの適用できるキー及び速度範囲と、楽器スプリットパラメーターリスト及びサンプルの表示を含む。該楽器スプリットパラメーターリストと、いずれかのデフォルト値は、ノートのアーティキュレーションを記述するパラメーターの絶対値を含む。
【0020】
各サンプルは、サンプルデータの再生に適切なサンプルパラメーター及びサンプルパラメーター自体へのポインターを含む。
【0021】
(発明の概要)
本発明は、サウンド・サンプルと、サウンド・サンプルに対してなされる変更を決定する調音命令の組合せを用いてインストルメントが記載されるようなオーディオ・データ・フォーマットを提供する。インストルメントは、インストルメント・レベルで調音命令を変更することができる更なる調音命令供給すべくユーザ指定することができるプリセットを有している第2の層を伴う、第1の、初期層を形成する。調音命令は、種々のパラメータを用いて特定される。本発明は、パラメータの全てが物理現象に関するユニットで特定される、それゆえにオーディオ・サンプルを生成または演奏するための特定の装置に拘束されないようなフォーマットを提供する。
【0022】
調音命令は、ジェネレータ及びモジュレータを含むのが好ましい。ジェネレータは、調音パラメータであり、モジュレータは、リアルタイム信号(即ち、ユーザ入力コード)とジェネレータの間の接続を供給する。ジェネレータ及びモジュレータの両方は、パラメータの型式である。
【0023】
本発明の更なる形態は、パラメータ・ユニットが付加的なものであるということである。これは、付加的な単位(ユニット)で特定された量がパラメータの二つの異なる値に加えられる場合に、その基礎を成している物理値への影響が比例するということを意味する。特に、パーセンテージまたは対数に関連する単位(ユニット)は、しばしばこの特性を有する。ある一定の新しいユニットは、ここのおいてパラメータ・ユニットとして用いられる時間の対数量である“タイム・センツ(time cents)”のような、これを収容すべく生成される。
【0024】
物理現象に関連しかつ特定の装置に関連しないパラメータ・ユニットの使用は、オーディオ・データ・フォーマットを小型化して、変更なしでそれを装置間で転送しかつ異なる人々によって用いることができる。パラメータ・ユニットの付加的な特質は、そのようなパラメータ・ユニットで表現される基礎を成す楽譜における音色の簡略化された編集または変更を許容する。それゆえに、プリセット・レベルで広域な調整(global adjustments)を行う機能を伴って、特定のインストルメント設定を個別に調整することの必要性がなくなる。
【0025】
本発明のモジュレータは、それを付加的なフォーマットにマップするためにリアルタイム・ソースを変形させるエニュメレータ(enumerator)を含んでいる、4つのエニュメレータで特定される。各エニュメレータは、(1)それが適用されるジェネレータを識別するジェネレータ・エニュメレータ、(2)ジェネレータを変更すめに用いられるソースを識別するエニュメレータ、(3)それを付加的な形態にすべくソースを変更するための変形エニュメレータ、(4)モジュレータがジェネレータに影響を及ぼす程度を示す量、及び(5)どの位の第2のソースが量を変調するかを示すソース量エニュメレータを用いて特定される。
【0026】
また、本発明は、オーディオ・サンプルに対するピッチ情報が、あらゆるオリジナル・チューニング訂正と共に、オリジナル・サンプル・レートだけでなく、サンプルを生成するために用いられるオリジナル・キーも記憶することによって小型化されかつ編集可能であるということを確実にする。
本発明は、また、そのメートをポイントするステレオ・オーディオ・サンプルにおいてタグを含むフォーマットを提供する。これは、サンプルが用いられるようなインストルメントへの参照を必要としないで編集することを許容する。
【0027】
本発明の目的及び利点の更なる理解について、添付した図面に関する後述の説明を参照すべきである。
【0028】
(実施例)
シンセサイザー及びコンピュータ
図1は、そのメモリに本発明によるオーディオ・データ構造を組み込む一般的なミュージック・シンセサイザー10を示す。シンセサイザーは、それぞれを、例えば、データ・メモリにおけるサウンド・サンプルによって表される特定のインストルメントの異なる音符(note)に割り当てることができる、多数のキー12を含む。記憶された音符は、例えば、キーが押し下げられた程度及びそれが押し下げられたまま保持された時間によって、リアルタイムで変更することができる。また、他の入力も、音符を変調しうる、変調ホイール14及び16のような、変調データを供給する。
【0029】
図2Aは、内部サウンドボードを有することができるパーソナル・コンピュータ18を示す。図2Bに示す、メモリ・ディスク20は、本発明によるオーディオ・データ・サンプルを組み込み、コンピュータ18にロードすることができる。コンピュータ18またはシンセサイザー10のいずれも、サウンド・サンプルを生成し、それらを編集し、それらを演奏するために、またはあらゆる組合せに用いることができる。
【0030】
オーディオサンプル・モディファイアの基本エレメント
図3は、メモリ内の代表的なオーディオサンプルの構造の図を示している。このオーディオサンプルは、実際のサウンドをレコードし、それをデジタル化したフォーマットで記憶することによって、あるいは、コンピュータプログラムの制御の下で直接デジタル表現を生成することによって、サウンドを合成(シンセサイズ)することによって、作られる。そのオーディオサンプルの基本的な特徴のいくつかと、如何にしてジェネレータ及びモジュレータを用いてオーディオサンプルがアーティキュレートされるのかを理解することが、本発明を理解するのに役立つ。オーディオサンプルは、一般に容認された一定の特性を有し、これらの特性は、別々にモディファイされるサンプルの特徴を識別するのに用いられる。基本的に、サウンドサンプルは振幅とピッチの両方を含む。振幅は、サウンドの大きさであり、他方、ピッチは波長又は周波数である。オーディオサンプルは、振幅とピッチの両方についてのエンベロープをもつことができる。いくつかの代表的なエンベロープが図4A及び図4Bに示されている。エンベロープの4つの特徴は、以下の通り定義される。
アタック
これは、サウンドがピーク値に達するのにかかる時間である。これは、変化のレートとして測定されて、サウンドが遅いアタックあるいは早いアタックを有することとなる。
ディケイ
これは、サウンドがアタック後に振幅を損失するレートを示している。ディケイも変化のレートとして測定されて、サウンドが遅いディケイあるいは早いディケイを有することとなる。
サステイン
サステインレベルは、サウンドがディケイ後に降下する振幅のレベルである。サステインタイムは、サステインレベルにおいてサウンドによって消費された時間の大きさである。
リリーズ
これは、ダイアウト(消滅)へのサウンドによってかかる時間である。これは、変化のレートとして測定されて、サウンドが遅いリリーズあるいは早いリリーズを有することとなる。
【0031】
上記の測定は、通常、ADSR(アタック(A)、ディケイ(D)、サステイン(S)、リリーズ(R))と呼ばれており、サウンドエンベロープは、ときどき、ADSRエンベロープと呼ばれている。
【0032】
キーが押されるやり方は、キーによって表示されるノート(音符)をモディファイできる。図5は、休止位置50と初期打鍵位置51とアフタータッチの位置52との3つの異なる位置を示している。
【0033】
大抵のキーボードはベロシティー感度のあるキーを有する。打鍵のベロシティーすなわち速度は、矢印55に図示のように、キーが位置50から位置51に押されるときに測定される。この情報は、0から127までの数字に変換されて、その数字がノート・オン・MIDIメッセージ後に、コンピュータに送られる。このようにして、ダイナミックレベルが、ノートを用いて(又はノート・プレイバックをモディファイするように用いて)記録される。この特徴がない場合、全ノートは同じダイナミックレベルで再生される。
【0034】
アフタータッチは、初期打鍵後にキーに加えられた圧力の大きさである。キーボードが電子アフタータッチセンサを装備している場合、アフタータッチセンサは、位置51と52との間のキーの初期打鍵後の圧力の変化を感知できる。例えば、圧力を増大することと減少することを交互に行うことにより、ビブラート効果を得ることができる。しかし、MIDIアフタータッチメッセージは、ポルタメント及びトレモロからサウンドのテクスチャを完全に変化させるものへ、任意の数のパラメータを制御するために送ることができる。矢印54は、早く又は遅くできるキーのリリーズを示している。
【0035】
シンセサイザー上の図6のピッチベンドホイール62は、大変有用な特徴である。キーを押しながらホイールを回転させることにより、ノートのピッチは、如何に多く且つどんな速度でホイールが回転させられるかに依存して上方に又は下方にベンドさせられる。このベンド操作は、区別しうる半音のステップで、又は連続的な推移音(グライド)グライドとして、半音階にすることができる。
【0036】
モジュレーション制御ホイール64は、通常、ビブラート又はトレモロ情報を送る。一般的にモジュレーションホイールという用語はしばしば変調を指示するように使用されるけれど、前記のモジュレーション制御ホイール64は、ホイール又はジョイスティックの形態で使用され得る。用語“LFO”は、しばしば、音楽の生成に引用されて基本的な構築ブロックとなっている。頭字語“LFO”(低周波数発振器)に示される用語“周波数”は、ピッチを直接示すのには用いられていないが、振動の速度を示すのに用いられている。LFOは、音声全体又はインスツルメント全体に作用するのにしばしば用いられており、これは、トレモロ(振幅)及びビブラート(ピッチ)に必要とされるとき、振動の一定の速度と深さに送られることによって、ピッチ及び/又は振幅に影響を及ぼす。
【0037】
サウンドフォント(SoundFont)オーディオフォーマット特性
サウンドフォント(SoundFont)オーディオフォーマットは、ウエーブテーブルシンセサイザーへのデジタルオーディオサンプルとアーティキュレーションインストラクションの両方を含んでいる。デジタルオーディオサンプルは、どんなサウンドがプレイ中であるかを決定し、アーティキュレーションインストラクションは、そのデータに対してどんな変調が行われ及び如何にその変調がミュージシャンの演奏によって影響されるかを決定する。例えば、デジタルオーディオデータはトランペットのレコーディングであるとする。アーティキュレーションデータは、サステインしたノートのレコーディングを延長するようにそのデータのループのさせかたと、振幅へ加えられる人工的なアタックエンベロープの程度と、異なるノートが再生されているようにピッチ内でのこのデータの移調(トランスポーズ)のさせかたと、キーボードのキーの押圧のベロシティーに応答してサウンドの大きさ及びフィルタ操作の変更のさせかたと、ビブラートや他のサウンドへのモディフィケーションを持つミュージシャン連続コントローラ(例えば、モジュレーションホイール)への応答のしかたとを含む。
【0038】
全ウエーブテーブルシンセサイザーはこのデータを格納するある方法を必要とする。ユーザによってサウンド及びアーティキュレーションデータをセーブして交換できる全ウエーブテーブルシンセサイザーは、このデータをいずれかにアレンジするファイルフォーマットのあるフォームを要求する。しかし、2.0改訂版サウンドフォント(SoundFont)オーディオフォーマットは、3つの特定のやりかたでユニークである。その1つは、フォーマットがプラットフォーム独立であることが可能なように種々の技術が適用されることであり、他の1つは、容易に編集できることであり、別の1つは、将来の改良に上方にも下方にもコンパチブルであることである。
【0039】
サウンドフォント(SoundFont)オーディオフォーマットは、交換フォーマットである。これは、代表的には、CD−ROM、ディスク、又は他の交換フォーマット上で用いられ、その中のデータを1つのコンピュータ又はシンセサイザーから別のものへ移動できるようにしている。ある特定のコンピュータ、シンセサイザー又は他のオーディオ処理装置においては、普通に、データが、サウンドフォント(SoundFont)オーディオフォーマットではないフォーマットに変換され得、そのデータを実際にプレイしアーティキュレートしたりそのデータを操作したりするアプリケーションプログラムによってアクセスすることができる。
【0040】
図7は、本発明のサウンドフォント(SoundFont)オーディオフォーマットの階層を示す図である。サンプルレベル70とインスツルメントレベル72とプリセットレベル74の3つのレベルが示されている。サンプルレベル70は、複数のサンプル76を含んでいて、各サンプルは、対応するサンプルパラメータ78を有する。インスツルメントレベル72では、複数のインスツルメント80の各々が、少なくとも1つのインスツルメントスプリット82を含んでいる。各インスツルメントスプリットは、サンプルへのポインタ84を含んでおり、適用可能な場合には、対応するジェネレータ86とモジュレータ88とを有している。所望なら、多数のインスツルメントが同じサンプルへポイント可能である。
【0041】
プリセットレベル74において、複数のプリセット88の各々が、少なくとも1つのプリセット層90を含んでいる。各プリセット層90は、インスツルメントポインタ92を含み、また、関連するジェネレータ94とモジュレータ96とを有している。
【0042】
ジェネレータ94は、アーティキュレーションパラメータであり、他方、モジュレータ96は、リアルタイム信号とジェネレータとの間を接続する。サンプルパラメータは、サンプルを編集するのに有用な付加情報を支持する。
【0043】
ジェネレータ
ジェネレータは、固定値を有する単一のアーティキュレーションパラメータである。例えば、ボリュームエンベロープのアタック時間はジェネレータであって、その絶対値は1.0秒であるかもしれない。
【0044】
Soundfountのオーディオフォーマットジェネレータのリストは、任意に拡大できるが、基本リストが続く。付録IIは、リビジョン2.0のSoundfountのオーディオフォーマットジェネレータのリスト及び詳細な説明を含む。基本ピッチ、フィルタの遮断及び共振並びにサウンドの減衰を接続できる。2つのエンベロープ、1つはボリュームの制御専用のもの、一つはピッチ及び/又はフィルタの遮断の制御のためのもの、が設けられている。これらのエンベロープは、伝統的なアタック、ディケイ、サステイン及びリリーズフェーズ、さらにアタック前の遅延フェーズ及びアタックと減衰の間のホールドフェーズを有する。2つのLFO、一つはビブラート専用のもの、一つは他のビブラート、フィルタモジュレーション、又はトレモロ用のもの、が設けられている。これらのLFOは、モジュレーションの深さ、周波数及びスタートのためのキー押圧による減衰についてプログラムすることができる。最後に、信号の左右のパン、さらに、その信号がコーラス及び反響プロセッサに送られる程度が定められる。
【0045】
5種類のジェネレータエニュメレータが存在する:すなわち、インデックスジェネレータ、レンジジェネレータ、置換ジェネレータ、サンプルジェネレータ及びバリュージェネレータである。
【0046】
インデックスジェネレータの量は、別のデータ構造内へのインデックスである。2つだけのインデックスジェネレータがインスツルメントおよびサンブルIDである。
【0047】
レンジジェネレータは、外側の層及びスプリットが末定であるノートオンパラメータの範囲を定める。現在、2つのレンジジェネレータ、すなわち、keyRange、kelRangeが定められている。
【0048】
置換ジェネレータは、或る値をノートオンパラメータで置換するジェネレータである。2つの置換ジェネレータ、すなわち、overridingKeynumber及びoverridingVelocityが現在定められている。
【0049】
サンプルジェネレータは、サンプルの特性に直接影響を及ぼすジェネレータである。これらのジェネレータは、層レベルでは未定である。現在定められているサンプルジェネレータは、8アドレスオフセットジェネレータとsampleModesジェネレータである。
【0050】
バリュージェネレータは、その値が信号処理パラメータに直接影響を及ぼすジェネレータである。たいていのジェネレータはバリュージェネレータである。
【0051】
モジュレータ
現実的な音楽合成の重要な特徴は、インスツルメントの特性をリアルタイムで変調する能力である。これは、2つの基本的に相違する方法で行うことができる。第1に、合成エンジン自体内の信号ソース、例えば、低周波数発振器(LFO)及びエンベロープジェネレータが、ピッチ、音色及びラウドネスのような合成パラメータを変調できる。しかしながら、そのパラメータは、通常MIDI連続コントローラ(Ccs)によりこれらのソースを明瞭に変調できる。
【0052】
リビジョン2.0Soundfontのオーディオフォーマットは、モジュレーションパラメータの使用によりモジュレーションの選択及びルーティングに大きな柔軟性を与える。モジュレータは、1つのリアルタイム信号と1つのジェネレータとの間の関係を表わしている。例えば、サンプルピッチは、一つのジェネレータである。1オクターブフルスケールにおけるMIDIピッチホイールのリアルタイムバイポーラ連続コントローラからサンプルピッチまでの接続は、代表的なモジュレータである。各モジュレーションのパラメータは、モジュレーション信号ソース、例えば、特定のMIDI連続コントローラ及びモジュレーション宛先、例えば、フィルタ遮断周波数のような特定のSoundFontのオーディオフォーマットジェネレータを特定する。特定されたモジュレーション量は、ソースが宛先をどの程度(どのような極性で)変調するかを決定する。選択的なモジュレーション変形がソースの曲線又は傾斜を非線形的に変えて、付加的な柔軟性を与える。最後に、第2のソース(量ソース)が選択的に特定されてその量だけ乗算することができる。第2のソースのエニュメレータが一致して論理的に固定されるソースを特定する場合には、その量は単にモジュレーションの程度を制御するだけであることに注目されたい。
【0053】
モジュレータは、図11に示されるように、5つの数を使用して特定される。これらの数の間の関係は、図13に示されている。第1の数は、モジュレータに関連するリアルタイム情報のソース及びフォーマットを特定するエニュメレータ140である。第2の数は、モジュレータにより影響されるジェネレータパラメータを特定するエニュメレータ142である。第3の数は、第2のソース(量ソース)のエニュメレータ146であるが、これは、このソースが、第1ソースがジェネレータに影響を及ぼす量を変えることを特定する。第4の数144は、第2のソースが第1のソース140に影響を及ぼす程度を特定する。第5の数は、第1のソースに関する変形動作を特定するエニュメレータ148である。
【0054】
リビジョン1.0のSoundFontのオーディオフォーマットが、ジェネレータだけについてエニュメレータを使用した。新しいジェネレータ及びモジュレータは確立されて実施されるので、これらの新しい特徴を実現しないソフトウェアがそのエニュメレータを認識しないであろう。ソフトウェアは末知のエニュメレータを簡単に無視するように設計される場合には、両方向の互換性が達成される。
【0055】
モジュレータスキームを使用することにより、最も進歩したサンプルされた音声合成で使用されるもののような非常に複雑なモジュレーションエンジンを特定することができる。リビジョン2.0のSoundFontのオーディオフォーマットが初期インプリメンテーションにおいて、幾つかのデフォルトモジュレータが定められる。これらのモジュレータは、同じソース、宛先及び変形を零又は無デフォルトのモジュレーション量パラメータで特定することにより、ターンオフするか又は変形することができる。
【0056】
モジュレータのデフォルトは、ピッチホイール、ビブラートの深さ、及びボリューム、並びに、ラウドネスのMIDI速度制御及びフィルタ遮断のような標準のMIDIコントローラを含む。
【0057】
SoundFontのオーディオサンプルフォーマット
リビジョン2.0のSoundFontのオーディオフォーマットにおいて表されるサンプルパラメータは、サウンドを複製するのに特に要求されないが、SoundFontのオーディオフォーマットのバンクの更なる編集には有用である付加的な情報を運ぶ。図12は、サンプルフォーマットのダイアグラムである。サンプルのオリジナルサンプルレート149及びサンプルスタート150、サステインループスタート152、サステインループエンド154、及びサンプルエンド156のデータポイントに対するポインタがサンプルパラメータに含まれている。付加的に、サンプルのオリジナルキー158が、サンプルパラメータにおいて特定される。これは、このサンプルが必然的に一致するMIDIキー番号を指示している。MIDIのキー番号に有意に一致しないサウンドについてナル値が許される。最後に、ピッチコレクション160は、サンプルパラメータに含まれて、そのサンプル自身について固有であるかもしれない任意のミスチューニング(チューニング誤差)を許す。また、後述するように、ステレオインジケータ162及びリンクタグ164も含まれる。
【0058】
SoundFontオーディオフォーマット
SoundFontオーディオフォーマットは、文字フォントに類似した方法により、演奏者又は作曲者により意図される実際の音色で音楽的合成のポータブルなレンダリングを可能にする。SoundFontオーディオフォーマットは、ウェーブテーブルシンセサイザサウンド及びそれと関連するアーティキュレーションデータについてのポータブルで拡大可能な汎用インターチェンジ標準である。
【0059】
SoundFontのオーディオフォーマットバンクは、ヘッダ情報、16ビット線形サンプルデータ、及び、バンク内に含まれるMIDIプリセットに関する階層構造的に構成されたアーティキュレーション情報を含むRIFFファイルである。RIFFファイル構造は図8に示されている。パラメータは、最良のレンダリングエンジンを満たすために正確に定義され意味があるように適当な解決を用いて特定される。SoundFontのオーディオフォーマットの構造は、任意の複雑なモジュレーション及び合成ネットワークに拡大できるように注意深く設計されている。
【0060】
図9は、図8のRIFFファイル構造についてのファイルフォーマット像を示している。付録Iは、図9の構造の各々の記述を示している。
【0061】
図10は、本発明によるアーティキュレーションデータ構造を示している。プリセットレベル74は、プリセットヘッダ100、プリセット層インデックス102、並びに、プリセットジェネレータ及びモジュレータ104を示す3つの列として示されている。示された例では、プリセットヘッダ106は、プリセット層インデックス102における単一のジェネレータインデックス及びモジュレータインデックス108を指示する。別の例では、プリセットヘッダ110は、2つのインデックス112及び114の指示する。異なるプリセットジェネレータは、図示されるように、ジェネレータ及び量116と、ジェネレータ及びインスツルメントインデックス118を指示する層インデックス108により使用される。他方、インデックス112は、ジェネレータ及び量120(グローバルプリセット層)のみを指示する。
【0062】
インスツルメントレベル72は、プリセットジェネレータ104のインスツルメントインデックスポインタによりアクセスされる。インスツルメントレベルは、インスツルメントスプリットインデックス124を指示するインスツルメントヘッダ122を含む。任意の1つのインスツルメントヘッダに1つ若しくはそれ以上のスプリットインデックスを割り当てることができる。インスツルメントスプリットインデックスは、さらに、特定のインスツルメントジェネレータ126を指示する。ジェネレータは、インスツルメントジェネレータ128のようなジェネレータ及び量を有する(従ってグローバルスプリットになる)か又はインスツルメントジェネレータ130のようなサンプルに対するポインタを含むこともできる。最後に、インスツルメントジェネレータはオーディオサンプルヘッダ132を指示する。オーディオサンプルヘッダはオーディオサンプル及びオーディオサンプル自身に関する情報を与える。
【0063】
ユニットの定義
この文書には引用されているいろいろな特定のユニットがある。これらのユニットの幾つかは音楽やサウンド産業内で知られている。他のものは本発明のために特別作られている。これらのユニットは2つの基本特性を有している。第1に、全てのユニットは、付加的である。使用される一次ユニットは、パーセンテージ、デシベル(dB)と2つの新しく定義されたユニット、絶対セント(ピッチのずれを計測する公知の音楽的セントと対照される)、およびタイムセントである。
【0064】
第2に、ユニットは各々物理現象に関連する絶対的意味、或いは他のユニットに関連する相対的意味を有している。楽器やサンプルレベルにおけるユニットはしばしば絶対的意味を有している。即ちそれらはヘルツ(Hz)のような絶対的な物理的値を決定する。しかし、プリセットレベルにおいて、同じサウンドフォント(登録商標)のオーディオフォーマットパラメーターは、例えばピッチシフトの半音のような相対的意味を有しているだけである。
【0065】
相対的ユニット
センチベルス(Centibels):センチベルス(省略して、Cb)は、センチベルスの10倍の感度を有する、利得や減衰の相対的ユニットである。2つのAとBに対して、Cbの等価な利得変化は、
Cb=200log10(A/B)
である。負のCbの値は、AがBより静かであることを示す。信号AとBの定義に依存して、正の数は利得か減衰の何れかを示すことができることを留意されたい。
セント: セントはピッチの相対的ユニットである。セントはオクターブの1/1200である。2つの周波数FとGに対して、ピッチの変化のセントは、
セント=1200log2(F/G)
によって表現される。セントの負の数は、周波数Fが周波数Gより低いことをしめす。
タイムセント: タイムセントは、間隔の相対的ユニット、即ち時間の相対的ユニットである新しく定義されたユニットである。2つの時間期間TとUに対して、時間変化のタイムセントは、
タイムセント=1200log2(T/U)
によって表される。タイムセントの負の数は、時間Tが時間Uより短いことを示す。タイムセントとセントの類似性はそれらの式から明らかである。タイムセントはエンベロープと遅延時間を表現するために特に有用なユニットである。それは、適したユニットであり、セントの係数を用いて測るものである。特に、もし波形のピッチはセントが変えられ、タイムセントにおけるエンベロープの時間パラメーターが変えられるなら、生じる波形は正のオフセットとピッチの付加的な調整および同じ大きさと全ての時間パラメーターの負の調整に対して形は不変である。
パーセンテージ: 1パーセントの1/10は、他の有用な相対的な(および絶対的な)単位である。フルスケールユニットは、ディメンジョンがなく、或いはdB、セント、あるいはタイムセントで測られる。ゼロの相対的値は、効果音に変化がないことを示している;1000の相対的な値は、効果音がフルスケールの量によって増大されていることを示す。−1000の相対的な値は、効果音がフルスケールの量によって減少されていることを示す。
絶対ユニット: 全てのパラメーターは、物理的に意味のある、良く定義された方法で特定される。サウンドフォントのオーディオフォーマットを含む前のフォーマットにおいて、パラメーターの幾つかは、マシンに依存した方法で特定されている。例えば、低周波変調発振器(LFO)の周波数は、0から255の任意のユニットにおいて前述のように表される。改定2.0サウンドフォントのオーディオフォーマットにおいて、全てのユニットは物理的に参照されたフォームに特定されるので、LFOの周波数はMIDIキーボード上の最も低いキーの周波数に関するセント(セントは音の半音の1000倍である)で現わされる。
【0066】
これらのユニットのいずかを絶対的に特定するときは、基準が必要とされる。
センチベルス: 改定2.0サウンドフォントのオーディオフォーマットにおいて、これは一般にセンチベルユニットに対する“フルレベル”のノートである。サウンドフォントのオーディオフォーマットパラメーターに対する0Cbの値は、楽器の設計者はフルの音量のノートに対して指定される程度に大きく、ノートがでることを示している。
タイムセント: 絶対的なタイムセントは、以下の式によって表される。
絶対的なタイムセント=1200log2(t),tは秒
改定2.0サウンドフォントのオーディオフォーマットにおいて、タイムセントの絶対基準は1秒である。ゼロの値は1秒、或いはフル(96dB)変換に対する1秒を表す。
【0067】
絶対的なセント: 周波数の全てのユニットは“絶対的なセント”にある。絶対的なセントは、MIDIキーナンバー0、或いは8.1758Hzの絶対周波数である0と共にMIDIキーの数スケールによって定義される。改定2.0サウンドフォントのオーディオフォーマットのパラメーターユニットは、スペシフィケーションが等しいか、パラメーターに対して最小の知覚可能な差に等しいか又はそれを越える仕様を許容するように設計されている。“セント”のユニットは、周波数の最小の知覚可能な差以下である半音の1/100としてミュージシャンに良く知られている。
【0068】
絶対的なセントはピッチに対してばかりでなく、フィルターのカットオフ周波数のような、知覚することが殆どできない周波数に対しても用いられる。幾つかの合成エンジンはこのカットオフの正確性のあるフィルターをサポートし、周波数の単一の知覚ユニットを有する単純さが改定2.0サウンドフォントのオーディオフォーマットの原理と一致して選択された。低い解像度の合成エンジンは、特定されたフィルターのカットオフ周波数をそれらの最も近い同等値に単純に丸める。
【0069】
サウンドフォントのオーディオフォーマットの再生
パラメーターの正確な定義は、いろいろなプラットフォームによって生成のために与えるように重要である。ハードウェアのプラットフォームを変化することは異なった能力を有しているが、意図されたパラメーターの定義が知られているなら、各プラットフォームに関するサウンドフォントのオーディオフォーマットの最良の可能な表現を可能にするパラメーターの適切な翻訳が可能である。
【0070】
例えば、ボリュームエンベロープのアタック時間の定義を考慮されたい。これは、ボリュームエンベロープのアタック時間は、ボリュームエンベロープがそのピークの振幅に到達するまで、消滅するときから時間として改定2.0サウンドフォントのオーディオフォーマットに定義される。アタック形状はアタックフェーズを通る振幅のリニアな増加として定義される。従って、アタックフェーズ内のオーディオの振る舞いは完全に定義される。
【0071】
特別な合成エンジンは、物理的能力としてリニアな振幅増加なく設計されてもよい。特に、ある合成エンジンは、固定されたdBの終点への一定のdB/秒の傾斜のシーケンスとして、それらのエンベロープを作る。このような合成エンジンは、その本来の傾斜の幾つかのシーケンスとしてリニアアタックをシミュレートしなければならない。これらの傾斜の全経過時間は、アタック時間に対してセットされ、且つ傾斜の終点の相対的高さは、リニア振幅のアタック軌跡上の近似的な点にセットされる。同様な技術が、必要とされるとき、他の改定2.0サウンドフォントのオーディオフォーマットパラメーターの定義をシミュレートするために用いられる。
【0072】
付加されるユニット
編集され得る全ての改定2.0サウンドフォントのオーディオフォーマットユニットは“付加できる”ユニットにおいて表現される。一般的に言えば、これは与えられたパラメーターの2つの異なる値と同じ量を加えることによって、知覚は二つのケースにおける変化が同じ程度であることを意味している。付加したユニットは特に有用である。何故なら、それらは易しい方法で値の変更や編集を可能にするからである。
【0073】
知覚付加の特性は以下のように厳密に定義される。特別なコンテキストにおける知覚可能な現象の計測ユニット(単位)が付加しているならば、全ての4つの計測された値W,X,YおよびZ(ここでW=D+X,Y=D+Z(Dは定数))に対して、XからWまでの知覚された違いはZからYまでの知覚された相違を同じである。
【0074】
値の広い範囲にわたって知覚されることができる殆どの現象に対して、付加したユニットは典型的に対数的である。対数的なスケールが用いられたとき、以下の関係が保たれる。
【0075】
従って、0.1の対数は−1であり、100の対数は2である。表からわかるように、各対数(値)に例えば1を加えることは、おのおの場合において10倍だけ増加する。
【0076】
もし、我々が、例えばサウンドの強さの付加的ユニットを決定しようとすれば、これらは対数のユニットであることがわかる。サウンドの強さの共通の対数ユニットはデシベル(dB)である。2つのサウンドの強さの比の底に対する対数の10倍として定義される。基準として1つのサウンドを定義することによって、サウンドの強さの絶対的な測定も確立される。40デシベルのサウンドと50デシベルのサウンド間の大きさの知覚される相違は、80デシベルのサウンドと90デシベルのサウンド間の大きさの知覚される相違と実際は同じである。もし、サウンドの強さが立方センチメメートル当たりのエルグのCGS物理ユニットにおいて計測されるなら、これは問題でない。
【0077】
他の付加的な単位(ユニット)は音楽セントにおけるピッチの測定である。これは音楽セントが半音の1/100であること、及び、半音がオクターブの1/12であることを思い起こすことによって容易に分かる。オクターブは、勿論、ダブリングを含む周波数の対数測定である。一連のノートを一定数のセント、半音、若しくはオクターブだけ移調することにより、メロディーを残したまま全てのピッチが同一の差だけ変更されることは、演奏家なら容易に分かることであろう。
【0078】
厳密な対数ではないサウンドフォント(登録商標)オーディオフォーマットユニットは、余韻、若しくは、コーラス処理の度合いの測定である。これらの発生器のユニットは、関連するプロセッサへ送られるべきサウンドの総振幅のパーセンテージによる。しかしながら、0%の余韻を持つサウンドと10%の余韻を持つサウンドとの間の知覚上の差は、90%の余韻を持つサウンドと100%の余韻を持つサウンドとの間の差と実は同じである。厳密な対数関係からのこのずれ(付加的な単位(ユニット)が対数的である場合、我々は1%と2%の間の差は50%と100%の差と同じであると予想する)の理由は、我々が余韻の度合いを直接的な、即ち、未処理のサウンドの完全なレベルと比較していることである。
【0079】
時間は、一般には、秒のような線型ユニットで表現されることから、本発明は、上に定義された、対数目盛上での「タイムセント」と呼ばれる新たな時間測定を提供する。音楽ノートのアタックや減衰のような現象が知覚された場合、時間は対数目盛において付加できる。これは強度やピッチと同様に値における比例変化に対応することが分かる。換言すれば、10ミリ秒と20ミリ秒の間で知覚される差は、1秒と2秒の間のそれと同じであり、それらは共に2倍である。
【0080】
例えば、エンベロープ減衰時間は、秒やミリ秒では測定されず、タイムセントで測定される。絶対的タイムセントは、秒時間の2を底とする対数の1200倍として定義される。相対的タイムセントは、これらの時間の比の2を底とする対数の1200倍である。
【0081】
エンベロープ減衰時間のタイムセントにおける特定によって減衰時間の付加的変調が可能とされる。例えば、ある特定の楽器が、キーボードの低端で200ミリ秒、高端で20ミリ秒に及ぶ楽器スプリットのセットを含んでいるとき、プリセットは、1.5の比を表す相対的タイムセントを付加して、キーボードの低端で300ミリ秒、高端で30m秒の減衰時間を与えるようなプリセットを生成することができる。更に、エンベロープ減衰時間を変調するためにMIDIキー数が付加されたときは、1オクターブにつき一定数のミリ秒ではなく、1オクターブにつき1つの等比によって、音階を奏する方が適当である。このことは、1つのMIDIキー数のずれにつき一定数のタイムセントが、タイムセントにて、デフォルト減衰時間に付加されることを意味する。
【0082】
選択されるユニットは全て付加できる。このことは、相対的レイヤパラメータが、下に存在する様々なスプリットパラメータに付加された場合、この結果生じるパラメータは、元の楽器と同じ方法で離間されることを意味する。例えば、ボリュームエンベロープアタック時間がミリ秒で表現された場合、一般のキーボードは、高いノートでは10ミリ秒の非常に早いアタック時間を有し、低いノートでは100ミリ秒のより遅いアタック時間を有する。相対的レイヤが非付加的ミリ秒で表現された場合にも、10ミリ秒の付加値は、高いノートについてはアタック時間を2倍にし、その一方で、低いノートを10%だけ変化させる。改訂版2.0サウンドフォント(登録商標)オーディオフォーマットは、時間の対数測定、即ち、付加できる、追加録音される「タイムセント」を発明することによって、この特別なジレンマを解決する。
【0083】
同様のユニット(セント、dB、及びパーセンテージ)が、改訂版2.0サウンドフォント(登録商標)オーディオフォーマットを通じて使用される。付加的な単位(ユニット)を使用することによって、改訂版2.0サウンドフォント(登録商標)オーディオフォーマットは、その楽器に相対的なパラメータを付加するだけによって現存の「楽器」を個人の希望に合わせる機能を提供する。上の例では、アタック時間は拡張されるが、その一方、キーボード上の特有のアタック時間関係はそのまま維持される。他のいずれのパラメータも同様に調整することが可能であり、こうして、複数のプリセットを非常に容易且つ効率的に編集する。
【0084】
サンプルのピッチ
改訂版2.0サウンドフォント(登録商標)オーディオフォーマットのある特有の特徴は、サンプルされたデータのピッチを保持する方法である。従前のフォーマットでは、2つのアプローチが採用されていた。最も簡単なアプローチでは、「ルート」キーボードキーで所望されるピッチシフトを表すような単一の数字が保持される。この単一の数字は、サンプルのサンプルレートと、合成器の出力サンプルレート、ルートキーにおける所望のピッチ、及び、サンプル自身におけるいずれかのチューニング誤差から算出されなければならない。
【0085】
もう一方のアプローチでは、所望とするいずれかのピッチ修正に加えてサンプルのサンプルレートが保持される。「ルート」キーを奏したとき、ピッチシフトは、いずれかの修正によって変更された出力サンプルレートに対するサンプルのサンプルレートの比に等しい。ある特定の効果を生じさせるために計画的に必要とされる修正に加えてサンプルチューニングエラーによる修正が結合される。
【0086】
改訂版2.0サウンドフォーマット(登録商標)オーディオフォーマットは、各サンプルについて、サンプルのサンプルレートのみならず、サウンドや、サンプルに関連付けられたいずれかのチューニング修正、及び、いずれかの計画的なチューニング変更(この計画的チューニング変更は楽器レベルで保持される)をも保持する。例えば、ピアノのミドルCの44.1Khzサンプルが作られた場合、MIDIミドルCに関連付けられた数60が、44100とともに、「元のキー」として記憶される。記録を2セントだけ半音下げることをサウンド設計者が決定した場合には、2セントのポジティブ(正の)ピッチ修正も記憶される。サウンドフォントオーディオフォーマットにおけるサンプルの配置が、ピッチにおけるシフトを何ら有しないサンプルをキーボードミドルCが奏するものでない場合であっても、これら3つの数字は変更されない。サウンドフォントオーディオフォーマットは、「ルート」キー(この「ルート」キーのデフォルト値はこの元のキーであるが、この「ルート」キーは、キーボードにおけるサンプルの効果的な配置を改めるように変更され得る)と、ピッチにおける計画的な変更を可能にする大まかな及び微妙なチューニングとを別個に保持する。
【0087】
このフォーマットの利点は、サウンドフォント(登録商標)オーディオフォーマットが編集されるべきときに現れる。この場合、たとえサンプルの配置が変更された場合であっても、サウンド設計者が他の楽器におけるサンプルを使用しようとするときは、修正サンプルレート(元のバンド幅を表示する)、元のキー(サウンドのソースを表示する)、及び、ピッチ修正(正確なピッチを再び決定する必要がないようにする)を利用することができる。
【0088】
改訂版2.0サウンドフォント(登録商標)オーディオフォーマットは、サウンドが音楽ピッチを有しないときに使用される元のキーに対する「ピッチされていない」値(慣習的には−1)を与える。
【0089】
ステレオ タグ
改訂版サウンドフォント(登録商標)オーディオフォーマットの他の特有の特徴は、ステレオサンプルが処理される方法である。ステレオサンプルは関連する音界を有した楽器を再生するときに特に有用である。ピアノがよい例である。ピアノの低いノートは、左から生じ、一方、高いノートは右から生じるように現れる。ステレオサンプルは、単一の単旋律のサンプルが使用されたときには失われている広大な感じをもサウンドに付加する。
【0090】
従前のフォーマットでは、ステレオサンプルを調整するために楽器レベルの同等物にて特別の対策がなされる。改訂版2.0サウンドフォント(登録商標)オーディオフォーマットでは、サンプル自体がステレオとしてタグ付けされ(図12のインジケータ162)、同じタグ(図12のタグ164)にその片方の位置を有する。このことは、サウンドフォントオーディオフォーマットを編集するときは、サンプルが使用される楽器を参照する必要なしに、ステレオサンプルがステレオとして保持され得ることを意味する。
【0091】
このフォーマットはより大きな度合いのサンプル結合さえも支持するように拡張され得る。全てが同じ様に循環方法でリンクされたリンクドセットの中の他の部材へのポインタを用いて、サンプルが単に「リンクド」としてタグ付けされた場合には、トリプル(triples)、クオッド(quads)、若しくは、それ以上のサンプルが特別な処理のために保持され得る。
【0092】
内挿非両立性を排除するための同じデータの使用
内挿法として知られている方法によりウエーブテーブル・シンセサイザーがプレイしているオーデイオ・サンプルデータのピッチをウエーブテーブル・シンセサイザーはシフトするのが典型的である。この方法は、所要のアナログデータのロケーションの周りの幾つかの既知のサンプルデータ・ポイントに対して数学的処理を行うことによって元のアナログオーデイオ信号の値を近似する。
【0093】
費用のかからない、やや欠陥のある内挿法は2つの近いデータポイントの間に線引きすることと同じである。この方法は「線形内挿」と称する。費用はかかるが、オーディオ的に優れている方法はいみじくもN点内挿と称するN個の近いデータポイントを使う曲線関数を計算することである。
【0094】
これら両方の方法は普通に使われているので、両方の形式のシステムの中でポータブルであることをもくろんでいるフォーマットならば両方で十分作動しなければならない。線形内挿の質はこの技術を使用しているシステムの究極の忠実性を限定するけれども、厳密に線形内挿を利用してサンプル内のループポイントが限定され、そしてテストされるのであれば、忠実性の実際の反転が生じる。
【0095】
サンプルはループとされて任意の長さの音長ノートをつくる。ループがサンプル内で発生するとき、(等価であるのが望ましい)ループスタートポイント(図3の172)に対してループエンドポイント(図3の170)を論理的につなぐ。もしもそのようなつなぎまたはスプライスが十分に滑らかであると、ループをつくったようにはならない。
【0096】
運悪く、内挿がプレイに入ってくると、出力の再生に一つより多いサンプルが入り込んでくる。線形内挿ではループの終わりでのサンプルデータポイントの値がスタートにおけるサンプルデータポイントの値と(殆ど)同じであるということで十分足りる。しかしながら、内挿されたオーデイオデータの計算が近い2つのポイントを越えているとき、ループ境界の外側のデータがループの音に影響を与え始める。もしそのデータが人工的構造の自然なループをサポートしないと、ループ・プレイバック中にカチッと音を立て又はブンブンというノイズが生じる。
【0097】
改定2.0サウンド・フォント(商標)オーデイオ・フォーマット基準がそのような問題を排除するための新規な技術をもたらしている。この基準は、ループスタートポイントとエンドポイントとの周りの近い8個のポイントを強制的に同じにすることを要求している。8個よりも多いポイントは必要としない。そのような離れたデータによりつくられる人為的なものは内挿で使用されたとしても聞こえないということが実験で判っている。データポイントを強制的に同じにすることによってすべての内挿が、オーダーとは関わりなく、人為的なもののないループをつくることを保証する。
【0098】
オーデイオサンプルデータを変えて基準に一致させるため様々なテクニックを使うことができる。その一例を以下に説明する。それらの性質からループスタートポイントとエンドポイントとは同じ時間領域の波形内にある。もしも9個のサンプル・フラットトップを持つ短い(5ないし20ミリ秒)三角形の窓が両方のループに適用され、そしてその結果としての2つの波形が、各対のポイントを加え、2で割ることにより平均されると、その結果一つのループ修正信号がつくられる。もしもこの信号がクロス・フエードされてループのスタートとエンドとになると、そのデータは殆ど***していないもとのデータと同じになる。
【0099】
数学的に言えば、もしXsがループのスタートにおけるサンプルデータポイントであると、Xeはループエンドにおけるサンプルデータポイントであり、そしてサンプルレートは50kHzであり、その場合ループ修正信号Lnは、
nが−253から−5では、
Ln=(254+n)(X(s+n)+X(e+n))/500
nが−4から4では、
Ln=(X(s+n)+X(e+n))/2
nが5から253では、
Ln=(254−n)(X(s+n)+X(e+n))/500
である。
【0100】
クロス・フエードはループスタートとループエンドの両方の周りで同じ様に行われる。
【0101】
nが−253から−5では、
X’(s+n)=(254+n)Ln/250+(−4−n)X(s+n)/250
nが−4から4では、
X’(s+n)=Ln
nが5から253では、
X’(s+n)=(254−n)Ln/250+(−4+n)X(s+n)/250
nが−253から−5では、
X’(e+n)=(254+n)Ln/250+(−4−n)X(e+n)/250
nが−4から4では、
X’(e+n)=Ln
nが5から253では、
X’(e+n)=(254−n)Ln/250+(−4+n)X(e+n)/250
平均操作とクロス・フエージング操作とを組み合わせることによりこれらの関数は簡単化されることは数式から明らかである。
【0102】
当業者には理解されることであるが、本発明の思想もしくは本質的特徴から逸脱することなく他の形で本発明を実施できる。例えば、上に説明したもの以外のユニットを追加して使用できる。例えば、1200以外の何かを掛けた対数値として時間を表すことができ、または百分率で表すこともできる。従って、本文の説明は本発明の例示に過ぎず、本発明の技術範囲については特許請求の範囲の記載を参照すべきである。
【0103】
【0104】
【0105】
【0106】
【0107】
【0108】
5 情報−リストのチャンク
サウンドフォント(SoundFont)2コンパチブルファイルの情報−リストチャンクは、以下に定義される3つの必須のサブチャンク及び様々な任意のサブチャンクを含む。情報−リストチャンクは、ファイルに含まれるサウンドフォントコンパチブルバンクに関する基本情報を与える。
5.1 ifilサブチャンク
ifilサブチャンクは、ファイルが満たすサウンドフォント仕様バージョンレベルを確定する必須のサブチャンクである。それは、常に長さが4バイトであり、以下の構造体に従うデータを含む。
【0109】
word wMajorはサウンドフォント仕様バーションの小数点の左側の値を含み、word wMinorは小数点の右側の値を含む。例えば、もし、word wMajor=2、word wMinor=11ならば、バージョン2.11を意味する。
【0110】
サウンドフォントコンパチブルファイルを読み出すアプリケーションによって、これらの値を使用して、ファイルのフォーマットがプグラムによって使用可能かどうかを決定できる。固定のwMajor内で、フォーマットへの唯一の変更は、ジェネレータ、ソース及び変換計数器(transform enumerator)の付加及び更なるサブチャンクである。もし、プログラムにとって未知ならば、これらは全て無視されると定義される。結果、与えられたwMajor内で、十分に上方でコンパチブルであるように、多くのアプリケーションを設計することができる。全ての計数器が知られていなければならないエディターもしくは他のプログラムの場合には、wMinorの値は重要である。一般的に、アプリケーションプログラムは、使用可能(恐らく、適切な透過翻訳)としてファイルを受け入れ、また、使用不可能としてファイルを拒絶するか、もしくは、ファイルにエディット不可のデータがあることをユーザに警告する。
【0111】
もし、ifilサブチャンクが見つからないか、もしくは4バイトでないならば、ファイルは構造的に不正であるとして拒絶される。
5.2 isngサブチャンク
isngサブチャンクは、ウェーブテーブル(wavetable)サウンドエンジンを確定する必須のサブチャンクであり、そのテーブルのために、ファイルは最適化される。それは、総バイト数を偶数にするように、1つもしくは2つの値ゼロのターミネーターを含む256バイトもしくはそれ以下のバイト数のASCIIストリングを含む。デフォルトのisngフィールドは、ゼロの1バイトが続く7のASCIIキャラクタとして「EMU8000」を表す8バイトである。
【0112】
ASCIIは、ケースセンサティブ(case-sensitive)に取り扱われなければならない。言い換えると、「emu8000」は、「EMU8000」とは同じでない。
【0113】
目的のサウンドエンジンをエミュレートするための合成アルゴリズムを変えるために、チップドライバーは、任意に、isngストリングを使用できる。
【0114】
もし、isngサブチャンクが見つからないか、ゼロ値の1バイトで終結されていないか、もしくはその内容がサウウンドエンジンに末知であるならば、そのフィールドは無視され、EMU8000が仮定されなければならない。
5.3 INAMサブチャンク
INAMサブチャンクは、サウンドフォントコンパチブルバンクのネームを提供する必須のサブチャンクである。それは、総バイト数を偶数にするように、1つもしくは2つの値ゼロのターミネーターを含む256バイトもしくはそれ以下のバイト数のASCIIストリングを含む。典型的なinamサブチャンクは、ゼロの2バイトが続く12のASCIIキャラクタとして「General MIDI」を表す14バイトである。
【0115】
ASCIIは、ケースセンサティブ(case-sensitive)に取り扱われなければならない。言い換えると、「General MIDI」は、「GENERAL MIDI」とは同じでない。
【0116】
たとえ、ファイルネームが変えられたとしても、一般的に、inamストリングは、バンクの確定のために使用される。
【0117】
もし、inamサブチャンクが見つからないか、ゼロ値の1バイトで終結されていないならば、そのフィールドは無視され、もし、そのネームが問い合わせられたならば、ユーザーは、適切なエラーメッセージを提供されなければならない。もし、そのフィールドが再書き込みされたならば、有効なネームがINAMフィールドに配置されなければならない。
5.4 iromサブチャンク
iromサブチャンクは、全てのROMサンプルが参照する特定のウェーブテーブルサウンドデータROMを確定する任意のサブチャンクである。それは、総バイト数を偶数にするように、1つもしくは2つの値ゼロのターミネーターを含む256バイトもしくはそれ以下のバイト数のASCIIストリングを含む。典型的なiromフィールドは、ゼロの2バイトが続く4のASCIIキャラクタとして「IMGM」を表す6バイトである。
【0118】
ASCIIは、ケースセンサティブ(case-sensitive)に取り扱われなければならない。言い換えると、「1mgm」は、「1MGM」とは同じでない。
【0119】
ファイルによって参照されるデータがサウンドエンジンにとって使用可能であることを確認するために、ドライバーは、iromストリングを使用する。
【0120】
もし、iromサブチャンクが見つからないか、ゼロ値の1バイトで終結されていないか、もしくはそれは未知のROMを含むならば、そのフィールドは無視され、ROMサンプルを載せていないと仮定されなければならない。もし、ROMサンプルがアクセスされたならば、このような楽器への全てのアクセスは終結されなければならず、そして、発音するべきではない。iromもiverも存在して有効であるという状態でないならば、どれがROMサンプルにアクセスを試みるかをファイルに書き込むべきではない。
5.5 iverサブチャンク
iverサブチャンクは、全てのROMサンプルが参照する特定のウェーブテーブルサウンドデータROM修正を確定する任意のサブチャンクである。それは、常に長さが4バイトであり、以下の構造体に従うデータを含む。
【0121】
word wMajorはROMバーションの小数点の左側の値を含み、word wMinorは小数点の右側の値を含む。例えば、もし、word wMajor=1、word wMinor=36ならば、バージョン1.36を意味する。
【0122】
フィールドによって参照されるROMデータが、サウンドヘッダー(sound header)によって特定されるまさにその位置に位置することを確認するために、ドライバーは、iverサブチャンクを使用する。
【0123】
もし、iverサブチャンクが見つからないか、長さが4バイトでないか、もしくはその内容が末知のROMもしくは不正のROMを示すならば、フィールドは無視され、ファイルはROMサンプルを載せていないと仮定される。もし、ROMサンプルがアクセスされるならば、このような楽器への全てのアクセスは、終結されなければならず、そして、発音すべきではない。ROMサンプルが正しく機能するためには、iver及びiromが存在し、有効でなければならないということを注記する。iromもiverも存在して、有効であるという状態でないならば、どれがROMサンプルにアクセスを試みるかをファイルに書き込むべきではない。
5.6 ICRDサブチャンク
ICRDサブチャンクは、サウンドフォントコンパチブルバンクの創造データ(creation data)を確認する任意のサブチャンクである。それは、総バイト数を偶数にするように、1つもしくは2つの値ゼロのターミネーターを含む256バイトもしくはそれ以下のバイト数のASCIIストリングを含む。典型的なICRDフィールドは、ゼロの1バイトが続く11のASCIIキャラクタとして「May 1,1995」を表す12バイトである。
【0124】
通常通り、ストリングのフォーマットは「Month Day,Year」であり、ここで、最初、Monthは、大文字でかかれ、それは月の通常の英語の全てのスペルであり、Dayは、コンマが続く十進法数の日付であり、Yearは、全ての十進法数の年である。このように、通常通り、そのフィールドは、決して32バイトよりも長くはならない。
【0125】
ICRDストリングは、ライブラリー管理の目的のために提供される。
【0126】
もし、ICRDサブチャンクが見つからないか、ゼロ値の1バイトで終結されていないか、もしくは何らかの理由で、ASCIIストリングとして正確にコピーできないならば、そのフィールドは無視されなければならず、もし、再書き込みされたならば、コピーされるべきではない。もし、見たところ、フィールドの内容は重要でないが、正確に、再度、創造可能であるならば、これはされるべきである。
5.7 IENGサブチャンク
IENGサブチャンクは、サウンドフォントコンパチブルバンクに責任を負う全てのサウンド設計者もしくは技術者のネームを確定する任意のサブチャンクである。それは、総バイト数を偶数にするように、1つもしくは2つの値ゼロのターミネーターを含む256バイトもしくはそれ以下のバイト数のASCIIストリングを含む。典型的なIENGフィールドは、ゼロの2バイトが続く10のASCIIキャラクタとして「Tim Swartz」を表す12バイトである。
【0127】
IENGストリングは、ライブラリー管理の目的のために提供される。
【0128】
もし、IENGサブチャンクが見つからないか、ゼロ値の1バイトで終結されていないか、もしくは何らかの理由で、ASCIIストリングとして正確にコピーできないならば、そのフィールドは無視されなければならず、もし、再書き込みされたならば、コピーされるべきではない。もし、見たところ、フィールドの内容は重要でないが、正確に、再度、創造可能であるならば、これはされるべきである。
5.8 IPRDサブチャンク
IPRDサブチャンクは、意図してサウンドフォントコンパチブルバンクでつくる全ての特定のプロダクトを確定する任意のサブチャンクである。それは、総バイト数を偶数にするように、1つもしくは2つの値ゼロのターミネーターを含む256バイトもしくはそれ以下のバイト数のASCIIストリングを含む。典型的なIPRDフィールドは、ゼロの1バイトが続く7のASCIIキャラクタとして「SBAWE32」を表す8バイトである。
【0129】
ASCIIは、ケースセンサティブに取り扱われなければならない。言い換えると、「sbawe32」は、「SBAWE32」とは同じでない。
【0130】
IPRDストリングは、ライブラリー管理の目的のために提供される。
【0131】
もし、IENGサブチャンクが見つからないか、ゼロ値の1バイトで終結されていないか、もしくは何らかの理由で、ASCIIストリングとして正確にコピーできないならば、そのフィールドは無視されなければならず、もし、再書き込みされたならば、コピーされるべきではない。もし、見たところ、フィールドの内容は重要でないが、正確に、再度、創造可能であるならば、これはされるべきである。
5.9 ICOPサブチャンク
ICOPサブチャンクは、サウンドフォントコンパチブルバンクに関連する全ての版権主張ストリングを含む任意のサブチャンクである。それは、総バイト数を偶数にするように、1つもしくは2つの値ゼロのターミネーターを含む256バイトもしくはそれ以下のバイト数のASCIIストリングを含む。典型的なICOPフィールドは、ゼロの2バイトが続く38のASCIIキャラクタとして「Copyright (c) 1995 E−mu Systems,Inc.」を表す40バイトである。
【0132】
ICOPストリングは、知的所有権保護及び管理の目的のために提供される。
【0133】
もし、ICOPサブチャンクが見つからないか、ゼロ値の1バイトで終結されていないか、もしくは何らかの理由で、ASCIIストリングとして正確にコピーできないならば、そのフィールドは無視されなければならず、もし、再書き込みされたならば、コピーされるべきではない。もし、見たところ、フィールドの内容は重要でないが、正確に、再度、創造可能であるならば、これはされるべきである。
5.10 ICMTサブチャンク
ICMTサブチャンクはサウンドフォント互換バンクと関係する何らかのコメントを含む動作チャンクである。このICMTチャンクは、バイト総数を偶数にする様に、値ゼロの1つ又は2つの終端を含む65,536又はそれ以下のバイトのASCII列を含む。典型的なICMTフィールドは、38個のASCII文字の後に2つのゼロバイトが続く“This space unintentionally left blank.(この空間は故意でなく空白に残される)”を表す40バイトである。
【0134】
ICMT列は如何なる非スカトロジー(non-scatological)使用に提供される。
【0135】
ICMTサブチャンクが失われたり、ゼロ値バイトで終わらなかったり、又は或る理由からASCII列として忠実にコピーされることが出来ない場合、そのフィールドは無視されるべきであり、修正される場合は、コピーさるべきではない。フィールドの内容が表面上重要ではなくが、忠実に再発生することができる場合、このことが達成されるべきである。
5.11 ISFTサブチャンク
ISFTサブチャンクは、サウンドフォント互換バンクを発生し、且つ最新のものに修正するために使用されるサウンドフォント互換ツールを識別する動作サブチャンクである。ISFTサブチャンクは、バイト総数を偶数にする様に、値ゼロの1つ又は2つの終端を含む256又はそれ以下のバイトのASCIIストリング(列)を含む。典型的なISFTフィールドは、29個のASCII文字の後に2つのゼロバイトが続く“Preditor 2.00a:Preditor 2.00a”を表す30バイトである。
【0136】
ASCIIは大文字小文字に反応して取り扱われるべきである。換言すると、“Preditor”は“PREDITOR”とは同じではない。
【0137】
従来、ツール名称と修正制御番号が、先ず発生ツールそして最新修正ツールに対して含まれる。2つのストリングはコロンによって分離される。このストリングは、空修正ツールフィールド(例えば、“Preditor 2.00a:)を用いて発生ツールによって発生されるべきである。ツールがバンクを修正する毎に、ツールは、修正ツールフィールドを、自身の名称及び修正制御番号と置き換えるべきである。
【0138】
ISFTストリングは主にエラートレーシングの目的に提供される。
【0139】
ISFTサブチャンクが失われたり、ゼロ値バイトで終わらなかったり、又は或る理由からASCII列として忠実にコピーされることが出来ない場合、そのフィールドは無視されるべきであり、修正される場合は、コピーさるべきではない。フィールドの内容が表面上重要ではなく、忠実に再発生することができる場合、このことが達成されるべきである。
【0140】
6 sdtaリストチャンク
サウンドフォント2互換ファイル内のsdtaリストチャンクは、サウンド互換バンクと関係するRAMベースのサウンドデータの全てを含む単一の動作amplサブチャンクを含む。smplサブチャンクは任意の長さを有しており、偶数のバイトを含む。
6.1 smplサブチャンク内のサンプルデータフォーマット
smplサブチャンクは、存在すると、線型コード化16ビットの符号付のリトルエンディアン(最下位バイト最初)ワードの形態でデジタルオーティオ情報の1つ以上の“サンプル”を含む。各サンプルには、最小46個のゼロの値のデータポイントが続く。これらのゼロの値のデータポイントは、合理的な内挿器を使用する合理的な上方へのピッチのシフトが、サウンドの終了時点でゼロデータ上でループを作ることを保証するために必要である。
6.2 サンプルデータルーピングルール
各サンプルで、1つ以上のループポイント対が存在することができる。これらのポイントの位置は、pdtaリストチャック内で定められる。しかし、サンプルデータ自体は、ループが複数のプラットフォームで互換であるためには、或る規則に従う必要がある。
【0141】
ループは、サンプル内の“等価ポイント”によって、定められる。このことは、論理的に等価な2つのサンプルが存在し、これらのポイントが互いに繋がる場合ループが発生することを意味している。概念としては、ループ終了ポイントは、ルーピングの際は決して実際はプレイされない。むしろ、ループ開始ポイントはループ終了ポイントの直前のポイントに続く。デジタルオーディオサンプリングの帯域制限の特徴のために、アーチファクトの無いループが、等価なポイントを囲む仮想的に同一のデータを表示する。
【0142】
実際は、波形表合成器によって使用される種々の内挿アルゴリズムのために、ループ開始及び終了ポイントの両方を囲むデータがループのサウンドに影響する場合がある。従って、ループ開始及び終了ポイントの両方が、連続するオーディオデータによって囲まれる必要がある。例えば、サウンドが減衰を通してループを続ける様にプログラムされる場合であっても、サンプルデータを、ループ終了ポイントを越えて、提供する必要がある。このデータは、典型的には、ループの開始点でのデータと同じである。最小で8つの有効なデータポイントが、ループ開始以前及びループ終了後に、存在することが要求される。
【0143】
2つの等価なループポイントを囲む8つのデータポイント(各側で4つ)は、同一である様に強制されるべきである。データを同一なるように強制することによって、全ての内挿アルゴリズムが、アーチファクトの無いループを正しく再発生することが保証される。
【0144】
7 pdta リストチャンク
7.1 HYDRAデータ構造
サウンドフォント2互換ファイル内の調音(articulation)データは、9つのサブチャンク内に含まれ、神話の9つの頭を有する動物の名を取って“hydra”と呼ばれる。この構造は交換の目的のために設計された。実行時間合成及びオンザフライ編集の何れに対しても最適化されない。サウンドフォント互換クライアントプログラムが、サウンドフォント互換ファイルを読出し且つ書き込む時に、hydra構造から及びこれへと翻訳することが合理的であり且つ適当である。
7.2PHDRサブチャンク
PHDRサブチャンクは、サウンドフォント互換ファイル内の全てのプリセットをリストする所望のサブチャンクである。PHDRサブチャンクは38バイトの長さであり、最小で、2つのレコード、各プリセット毎に対する1つのレコードと構造に従ったターミナルレコードに対する1つのレコードとを含む。
【0145】
ASCII文字フィルードachPresetNameは、ASCIIで表現されたプリセットの名称を、ゼロの値のバイドが充填された未使用のターミナル文字を使用して、含む。一義的な名称が、識別を可能にするために、サウントフォント互換バンク内の各プリセットに割り当てられる。しかしながら、同じ名称を有するプリセットの誤り状態を含むバンクが読み取られる場合、これらプリセットは捨て去られるべきではない。これらプリセットは、読み出されて保存されるか、好ましくは一義的な名称を再度付けられるべきである。
【0146】
WORD wPresetは、MIDIプリセット番号を含み、WORD wBankは、このプリセットに適用されるMIDIバンク番号を含む。プリセットは、サウンドフォント互換バンク内では順序付けられない。プリセットはwPreset及びwBank番号の一義的な番号を有するべきである。しかしながら、2つのプリセットがwPreset及びwBankの両方で同じ値を有する場合、PHDRチャンク内の最初に生じるプリセットは活動しているプリセットであるが、同じwBank及びwPreset値を有する他のものは、それらが再度番号付けされて後で使用できる様に維持される必要がある。General MIDIパーカッションバンクの特別の場合は、128のwBank値によって従来通り扱われる。何れのフィールド内の値も、wBankに対して127又は128を通してゼロである正しいMIDI値ではない場合、プリセットはプレイすることはできず、保守される必要がある。
【0147】
WORD wPresetBagNdxは、PBAGサブチャンク内のプリセットのレイヤーに対するインデックスである。プリセットレイヤーのリストはプリセットヘッダーリストと同じ順番であるので、プリセットバックは、プリセットヘッダが増大すると共に、単調に増加する。PBAGサブチャンクのバイトのサイズは、ターミナルプリセットのwPresetBagNdx+4の4倍に等しい。プリセットバックの指示子は非単調であるか、又はターミナルプリセットのwPresetBagNdxがPBAGサブチャンクのサイズに一致しない場合、ファイルは構造的に不完全であり、ロード時間に除去される必要がある。ターミナルプリセットを除く全てのプリセットは少なくとも一つのレイヤーを有する必要があり、レイヤーを有さない如何なるプリセットも無視される必要がある。
【0148】
2倍ワードdwLibrary,dwGenre及びdwMorphologyは、プリセットライブラリー管理機能内に更なる実行のために保存され、読取りの時に保存される必要があり、ゼロとして作り出される。
【0149】
ターミナルsfPresetHeader記録は、決してアクセスされず、最後のプリセットにおけるレイヤーの数を決めるターミナルwPresetBagNdxを与えるためだけに存在する。全ての他の値は従来はゼロであるが、achPresetNameは例外的に、オプションにより、プリセットの終わりを示す“EOP”とすることができる。
【0150】
PHDRサブチャンクが失われたり、2レコードよりも少なかったり、そのサイズが38バイトでない場合、ファイルは構造的にサウンドを発生し無いとして除去されるべきである。
7.3 PBAG
サブシャンクPBAGサブシャンクは、サウンドフォントコンパチブルファイル内の全プリセット層を列挙する必要とされるサブシャンクである。長さが常時4バイトの倍数であり、構造体に従って、各プリセット毎に1レコードとターミナル層毎に1レコードが加えたものを含む。
【0151】
所定のプリセットの第1層がプリセットのwPresetBagNdxに配置される。プリセット内の層の数は、次のプリセットのwPresetBagNdxと現在のwPresetBagNdxとの差により判断される。
【0152】
wGenNdxとは、PGENサブシャンク内のジェネレータのプリセット層リストに対するインデックスであり、wModNdxとは、PMODサブシャンク内のモジュレータのプリセット層リストに対するインデックスである。ジェネレータリフトおよびモジュレータリストの双方ともが、プリセットヘッダーと層リフトと同じ順位にあるので、プリセット層が増大するとともに、これらインデックスが単調に増大し続ける。PMODサブシャンクのバイトの大きさは、ターミナルプリセットのwModNdxの10倍に10を加算したものに等しく、PGENサブシャンクのバイトの大きさは、ターミナルプリセットのwGenNdxの4倍に4を加算したものに等しい。ジェネレータまたはモジュレータのインデックスが単調なものではなかったり、すなわちPGENまたはPMODサブシャンクのそれぞれの大きさに適合しない場合には、ファイルは構造的に欠陥があり、ロード時に拒絶されなければならない。
【0153】
プリセットが2つ以上の層を有する場合には、第1の層は、グローバル層であればよい。グローバル層は、リスト内の最後のジェネレータがインスツルメントジェネレータではないという事実により決定される。全ジェネレータリストは、ジェネレータはないがモジュレータのみがあるというグローバル層が存在する場合を除いて、少なくとも1つのジェネレータを含んでいなければならない。モジュレータリストは、ゼロまたは1つ以上のモジュレータを含むことができる。
【0154】
第1の層以外の層に、最後のジェネレータとしてのインスツルメントジェネレータが欠如している場合には、その層を無視すべきである。モジュレータとジェネレータとを有さないグローバル層も無視しなければならない。
【0155】
PBAGサブシャンクがない状態の場合、あるいは大きさが4バイトの倍数ではない場合には、ファイルは、構造的に欠陥がある状態として拒絶される。
7.4 PMODサブシャンク
PMODサブシャンクは、サウンドフォントコンパチブルファイル内の全プリセット層モジュレータを列挙する必要とされるサブシャンクである。長さが常時10バイトの倍数であり、構造体に従って、ゼロか、1つ以上のモジュレータにターミナルレコードを加算したものを含む。
【0156】
プリセット層のwModNdxは、そのプリセット層に関する第1のモジュレータを示し、プリセット層に存在するモジュレータの数が、次の高い方のプレセット層のwModNdxと現在のプリセットwModNdxとの差により判断される。この差がゼロということは、このプリセット層内にモジュレータが存在しないことを表している。
【0157】
sfModSrcOperは、SFModulator列挙型値のうちの一つの値である。末知または定義されていない値は無視される。この値は、モジュレータに関するデータソースを表す。
【0158】
sfModDestOperは、SFGenerator列挙型値のうちの一つの値である。未知または定義されていない値は無視される。この値は、モジュレータのデスチネーションを表す。
【0159】
short modAmountは、データソースがデスチネーションを変調する程度を表す符合がつけられた値である。値ゼロは、一定量がない状態であることを表す。
【0160】
fsModAmtSreOperは、SFModulator列挙型値のうちの一つの値である。未知または定義されていない値は無視される。この値は、データソースがデスチネーションを変調する程度が、固有変調ソースにより制御されるべきであることを表す。
【0161】
sfModTransOperは、SFTransform列挙型値のうちの一つの値である。末知または定義されていない値は無視される。この値は、特定の型の変換が、モジュレータに行なわれる前にモジュレーションソースに対し行なわれることを示す。
【0162】
ターミナルレコードは、従来全領域においてゼロを含み、常に無視される。
【0163】
モジュレータは、sfModSrcOper、sfModDestOperおよびsfModSrcArntOperとにより定義される。層内の全モジュレータは、特定の組になったこれらの3つの列挙型を有していなければならない。第2のモジュレータが、同一の層に関し先のモジュレータとして同一の3つの列挙型に一致すると、第1のモジュレータは無視される。
【0164】
PMODサブシャンク内のモジュレータがIMODサブシャンク内のモジュレータに対し付加的に相対的モジュレータとして作用する。言い換えれば、PMODモジュレータが、IMODモジュレータの値を増減させることができる。
【0165】
PMODサブシャンクがない状態の場合には、すなわち大きさが10バイトの倍数でない場合には、ファイルは構造的に不良状態として拒絶されることになる。
7.5 PGENサブシャンクPGENシャンクは、サウンドフォントコンパチブルファイル内の各プリセット層に関するプリセット層ジェネレータのリストを含む必要とされるシャンクである。これは長さが常時4バイトの倍数であり、構造体に従って、各プリセット層に関する1つか、2つ以上のジェネレータ(グローバル層が1つだけのモジュレータオを含む場合を除いて)にタミーナルレコードを加算したものを含む。
ここで型が決定される:
【0166】
sfGenOperは、SFGenerator列挙型値のうちの一つの値である。未知または定義されていない値は無視される。この値は、ジュネレータの型が示されることを表す。
【0167】
genAmountは、特定のジェネレータに指定されるべき値であり、3つのフォーマットとできることを示す。所定のジェネレータは、最低および最高値を有するMIDI速度のMIDIキー数の範囲を特定する。別のジェネレータは、符合が付けられていないWORD値を特定する。しかしながら、ほとんどのジェネレータは、符合がつけられた16ビットSHORT値を特定する。
【0168】
プリセット層のsGenNdxは、プリセット層に関する第1のジェネレータを示す。層がグローバル層ではない場合には、リスト内の最後のジェネレータが「インスツルメント」ジェネレータであり、この値は、その層に関連したインスツルメントに対するポインタである。「キー範囲」ジェネレータがプリセット層に存在する場合には、これは、常に該プリセット層に関するリスト内の第1のジェネレータとなる。「速度範囲」ジェネレータがプリセット層に関し存在する場合には、キー範囲ジェネレータにより先行されるだけである。インスツルメントジェネレータの後にジェネレータがある場合には、これらは無視される。
【0169】
ジェネレータがsfGenOperにより定義される。層内の全ジェネレータが特定のsfGenOper列挙型有する。第2のジェネレータが、同一層に関する先のジェネレータとして同一のsfGenOper列挙型に一致する場合には、第1のジェネレータは無視される。
【0170】
PGENサブシャンク内のジェネレータがIGENサブシャンク内のジェネレータに対し付加的なものとして作用する。言い換えれば、PGENジェネレータは、IGENジェネレータの値を増減する。
7.6 INSTサブシャンク
INSTサブシャンクは、サウンドフォントコンパチブルファイル内の全インスツルメントを列挙する必要とされるサブシャンクである。これは長さが常時22バイトの倍数であり、構造体に従って、各インスツルメントに関し1つのレコードとターミナルレコードに関し1つのレコードの最低2つのレコードを含む。
【0171】
ASCIIキャラクタフィールドachInstNamegas、ASCIIで表示されたインスツルメントの名前を含んでおり、不使用のターミナルキャラクタには値ゼロのバイトで充填された状態になっている。特定のネームが、常にサウンドフォントコンパチブルバンク内の各インスツルメントに付与され、識別できるようにしなければならない。しかし、バンクが、もし同一名前を有するインスツルメントのエラー状態を含むことが読み取られる場合には、インスツルメントは捨てられるべきではない。これらは、読み出しとして保管されるか、もしくは優先的に特有の名前が付与されるか、のいずれかである。
【0172】
sInstBagNdxは、PGAGサブシャンク内のインスツルメントのスプリットリストに対するインデックスである。インスツルメントスプリットリストは、インスツルメントリストと同一の順位にあるので、インスツルメントバッグインデックスは、インスツルメントが増大するとともに、単調に増大する。IBAGサブシャンクのバイトの大きさは、ターミナルインスツルメントのwInstBagNdxの4倍に4を加算したものに等しくなる。インスツルメントバッグインデックスが単調ではなったり、多インスツルメントのsInstBagNdxがIBAGサブシャンクの大きさと適合しない場合には、ファイルが構造的に不良状態であり、ロード時に拒絶されるべきである。ターミナルインスツルメントを除いた全インスツルメントは、少なくとも1つのスプリットを有していなければならず、スプリットを有さないプリセットはいかなるものも無視されるべきである。
【0173】
ターミナルsflnstレコードは決してアクセスされず、ターミナルwInstBagNdxを形成するためだけに存在し、最後のインスツルメント内のスプリットの数を求めるようになっている。全別の値は、achInstNameを除いては、ゼロであるのが一般的であり、任意的には、インスツルメントの終了を表す「EOI」ともできる。
【0174】
INSTサブシャンクが存在しない、2つのレコード以下を含む場合には、あるいは、その大きさが22バイトの倍数ではない場合には、ファイルは構造的に不良状態として拒絶あれるであろう。instサブシャンク内に存在する全インスツルメントが、一般的にプリセット層にあてはまるが、孤児状態のインスツルメントを含むファイルは、必ずしも拒絶される必要はない。サウンドフォントコンパチブルの応用では、ユーザの好みに応じてこれらの孤児インスツルメントを任意的に無視したり、フィルタにかけることができる。
7.7 IBAGサブチャンク
IBAGサブチャンクは、サウンドフォントコンパティブルファイル内の全ての楽器不和をリストする必要とされたサブチャンクである。IBAGサブチャンクは、常時、長さが複数の4バイトであり、各楽器不和の1つのレコード及び構造に従ってターミナルレーヤーの1つのレコードを収容する。
【0175】
或る楽器の第1不和は、かかる楽器のwInstBagNdxに配置される。楽器の不和の数は、次の楽器のwInstBagNdxと現在のwInstBagNdxとの間の差によって判定される。
【0176】
word wInstGenNdxは、IGENサブチャンクのジェネレータの楽器不和のリストのインデックスであり、wInstModNdxは、IMODサブチャンクのモジュレータのリストのインデックスである。ジェネレータ、モジュレータのリストの両方が楽器、不和リストと同じオーダにあり、これらのインデックスは不和の増大と共に単調に増大することになる。バイトのIMODのサイズは、ターミナルの楽器のwGenNdxプラス10の10倍に等しくなり、バイトのIGENサブチャンクのサイズは、ターミナルの楽器のwGenNdxプラス4の4倍に等しくなる。ジェネレータ又はモジュレータのインデックスが、非単調であるか、或いは、各IGEN又はIMODサブチャンクのサイズに合致しないならば、ファイルは、構造的に欠陥があり、ロード時間でリジェクトされる筈である。
【0177】
楽器が1つ以上の不和を有する場合には、第1不和はグローバル不和であるかも知れない。グローバル不和は、リストの最後のジェネレータがサンプルIDジェネレータでないことによって判定される。全てのジェネレータリストjoint E-mu/Creative Technology Center-CONFIDENTLAL-Rage 22-Printed 8/11/95 at 6:08 PMは、ジェネレータはなくモジュレータのみがあるグローバル不和が存在する場合を除いて、少なくとも1つのジェネレータを含まなければならない。
【0178】
第1不和以外の不和が最後のジェネレータとしてのサンプルIDジェネレータを欠く場合には、かかる不和は無視すべきである。モジュレータもジェネレータもないグローバル不和もまた無視すべきである。
【0179】
IBAGサブチャンクが欠けている、または、そのサイズが複数の4バイトでない場合には、ファイルは構造的非サウンドとしてリジェクトすべきである。
7.8 IMODサブチャンク
IMODサブチャンクは、サウンドフォントコンパティブルファイル内の全ての楽器不和モジュレータをリストする必要とされたサブチャンクである。IMODサブチャンクは、常時、長さが複数の10バイトであり、構造に従って0又は1以上のモジュレータ及びターミナルレコードを収容する。
【0180】
不和のwInstModNdxは、かかる不和の第1モジュレータを示し、不和に関して存在するモジュレータの数はは、次の高い不和のwInstModNdxと現在の不和のwModNdxとの間の差によって判定される。0の差は、この不和にモジュレータがないことを示す。
【0181】
sfModSrcOperは、SFModulatorのエニュメレーションタイプの値のうちの1つの値である。知られていない又は定められていない値は無視される。この値は、モジュレータのデータの源を示す。
【0182】
stModDestOperは、SFGeneratorのエニュメレーションタイプの値のうちの1つの値である。この値は、モジュレータのデスティネーションを示す。
【0183】
shortmodAmountは、ソースがデスティネーションをモジュレートする度合いを示すサイン化された値である。0値は一定量がないことを示す。
【0184】
sfModAmtSrcOperは、SFModulatorのエニュメレーションタイプの値のうちの1つの値である。知られていない又は定められていない値は無視される。この値は、ソースがデスティネーションをモジュレートする度合いが、特定のモジュレーションソースによって制御されることになる。
【0185】
sfModTransOperは、SFTransformのエニュメレーションタイプの値のうちの1つの値である。知られていない又は定められていない値は無視される。この値は、特定タイプのトランスフォームが、モジュレータへの適用前に、モジュレーションソースに適用されることを示す。
【0186】
joint E-mu/Creative Technology Center-CONFIDENTLAL-Rage 23-Printed 8/11/95 at 6:08 PMターミナルレコードは、在来的には、全てのフィールドで0を含み、常時無視される。
【0187】
モジュレータは、そのsfModSrcOperと、sfModDesOperと、sfModSrcAmcOperとによって定義される。スプリット内のすべてのモジュレータは、唯一の組のこれらの3つのエニュメレータを有する。もしも同じスプリットを備えた前のモジュレータと同じ3つのエニュメレータをもつ第2モジュレータに遭遇した場合には、第1モジュレータは無視される。
【0188】
IMODサブシャンクにおけるモジュレータは絶対的である。これは、IMODモジュレータが、省略時モジュレータに加わるのではなく、省略時モジュレータに代わって用いられることを意味する。
【0189】
もしもIMODサブシャンクが失われていたり、或いは、そのサイズが10バイトの倍数でない場合には、ファイルは、構造的に信用できないものとして拒絶されるべきである。
7.9 IGENサブシャンク
IGENサブシャンクは、SoundFontコンパチブルファイル内の各インストメントスプリットのためのスプリットジェネレータのリストを収容した必須のシャンクである。IGENサブシャンクは、常に長さが4バイトの倍数であり、(モジュレータだけを収容するグローバルスプリットを除いて)各スプリットのための1以上のジェネレータと、以下の構造に従ったターミナルレコードとを収容する:
【0190】
ここで、タイプは既述のPGEN層におけるように定義される。
【0191】
genAmountは、特定のジェネレータに割り当てられるべき値である。これは、3つのフォーマットからなることができることに留意されたい。あるジェネレータが、最大および最小値をもつMIDI速度のMIDIキーナンバーの範囲を特定する。他のジェネレータが無署名のWORD値を特定する。しかしながら、大部分のジェネレータは、署名された16ビットSHORT値を特定する。
【0192】
スプリットのwInstGenNdxは、そのスプリットのための第1ジェネレータを指す。スプリットがグローバルスプリットでない場合には、リストにおける最後のジェネレータは、“sampleID”ジェネレータであり、“sampleID”ジェネレータの値は、そのスプリットに関連したサンプルのポインターである。もしも“key range”ジェネレータがスプリットのために存在するならば、“key range”ジェネレータは常にそのスプリットのためのリストにおける第1ジェネレータである。もしも“velocity range”ジェネレータがそのスプリットのために存在するならば、“velocity range”ジェネレータは、key rangeジェネレータによって先行されるだけである。ジェネレータがsanlpleIDジェネレータの後にくる場合には、それらのジェネレータは無視される。
【0193】
ジェネレータは、sfGenOperによって定義される。スプリット内のすべてのジェネレータは、唯一のsfGenOperエニュメレータである。もしも同じスプリットを備えた前のジェネレータと同じsfGenOperエニュメレータをもつ第2ジェネレータに遭遇した場合には、第1ジェネレータは無視される。
【0194】
IGENサブシャンクにおけるジェネレータは性質において絶対的である。これは、IGENジェネレータが、ジェネレータのための省略時値に加わるのではなく、ジェネレータのための省略時値に代わって用いられることを意味する。
【0195】
もしもIGENサブシャンクが失われていたり、或いは、そのサイズが4バイトの倍数でない場合には、ファイルは、構造的に信用できないものとして拒絶されるべきである。もしもkey rangeジェネレータが存在し、かつ、第1ジェネレータでない場合には、このkey rangeジェネレータは無視されるべきである。もしもvelocity rangeジェネレータが存在し、かつ、key rangeジェネレータ以外のジェネレータによって先行されている場合には、このvelocity rangeジェネレータは無視されるべきである。もしも非グローバルリストがsampleIDジェネレータに終わっていない場合には、スプリットは無視されるべきである。もしもsampleIDジェネレータ値がターミナルsampleIDジェネレータ以上である場合には、ファイルは構造的に信頼できないものとして拒絶されるべきである。
7.10 SHDRサブチャンク
SHDRチャンクは、smplサブチャンク及びいかなる参照されたROMサンプル内の全てのサンプルをリストする所望のサブチャンクである。それは、通常、長さが複数の46バイトであり、各サンプルパルスに関する1レコードを、その構造によるターミナルレコードに包含する。
【0196】
アスキーキャラクタ・フィールド・achSampleNameは、0値バイトで満たされた使用されていないターミナルキャラクタを備える、ASCIIにおけるサンプル表現の名前を含む。一意性の名前が、識別を可能にするために、SoundFont互換バンクに各サンプルを通常割り当てるべきである。しかしながら、バンクが、同一の名前を持ったサンプルの誤った状態を包含する読み出しならば、サンプルは記述されるべきではない。それらは、読み出しとして保存されるべきか、又は、優先的に一意的にリネームされるべきかのいずれかである。
【0197】
ダブルワードdwStartはインデックスを含み、例えば、サンプルデータフィールドの開始から、このサンプルの第1データポイントまでである。
【0198】
ダブルワードdwEndは、インデックスを含み、例えば、サンプルデータフィールドの開始から、このサンプルに続く0値データポイントの46のセットの第1までである。
【0199】
ダブルワードdwStartloopは、インデックスを含み、例えば、サンプルデータフィールドの開始から、このサンプルのループにおける第1のデータポイントまでである。
【0200】
ダブルワードdwEndloopはインデックスを含み、例えば、サンプルデータフィールドの開始から、このサンプルのループに続く第1のデータポイントまでである。これは、第1のループデータポイントと「等しい」データポイントであることを注意し、ポータブル人工フリーループを作り出し、スタートループとエンドループの両方の回りの16近位データポイントが同一であるべきである。
【0201】
dwStart、dwEnd、dwStartloop及びdwEndloopの値は、SoundFont互換バンクに含まれ、又は、サウンドROMに参照されるサンプルデータフィールドレンジ内に全てあるべきである。また、データを再生することができる種々のハードウェアプラットフォームを可能にするために、サンプルは、最小の48データポイントの長さと、32データポイントの最小ループサイズと、dwStartloopの前、及び、dwEndloopの後に最小の8有効ポイントを有する。従って、dwStartは、dwStartloop−7以下でなくてはならず、dwStartloopはdwEndloop−31以下でなくてはならず、dwEndloopは、dwEnd−7以下でなくてはならない。もしこれらの制約が、満たされていないならば、ハードウェアが、所定のパラメータに関して人工フリープレイバックをサポートできないとき、サウンドは任意に再生されないであろう。
【0202】
ダブルワードdwSampleRateは、サンプルレートの周波数を含み、このサンプルが、獲得され、又は、それが最も最近コンバートされたものである。50000より大きな値又は400より小さな値は、あるハードウェアプラットフォームによって再生可能ではなく、避けられるべきである。0の値は、不正である。不正又は非実用的な値に出くわしたならば、最も近い実用的な値が用いられるべきである。
【0203】
バイトbyOriginalPitchは、サンプルのレコードピッチのMIDIキー番号を包含する。例えば、インストゥルメンタル演奏ミドルC(261.62Hz)のレコーディングは、60の値をレシーブすべきである。この値は、サンプルに関するデフォルト「ルートキー」として使用されており、この場合、例えば、ノート番号60に関するコマンドのMIDIキーは、そのオリジナルピッチでサウンドを再生するであろう。アンピッチサウンドに関しては、255の在来の値が使用されるべきである。128と254の間の値は、不正である。不整な値又は255の値に出くわしたときはいつでも、値60が使用されるべきである。
【0204】
キャラクタchPitchCorrectionは、プレイバックのサンプルに適用されるべきセントにおけるピッチ補正を包含する。このフィールドの目的は、サンプルレコーディングプロセス中に、いかなるピッチエラーを補償することである。補正値は、適用されるべき補正のものである。例えば、サウンドが4セントシャープならば、それを4セントフラットにもっていく補正が要求され、従って、値は−4であるべきである。
【0205】
sfSampleにおける値は、8つの定義された値で数え上げられる、即ち、monoSample=1、rightSample=2、leftSample=4、linkedSample=8、RomMonoSample=32769、RomRightSample=32770,RomLeftSample=32772,及び、RomLinkedSample=32776である。サンプルがROMにあるならば、16ビット値のビット15がセットされ、SoundFont互換バンクに含まれるならば、リセットされるようにエンコードされることが理解できる。ワードの4LSビットが、次いで、mono、left、right、又は、linkedを含む排他的なセットである。
【0206】
サウンドがROMサンプルとしてフラグが立てられ、有効なIROMサブチャンクが含まれていないならば、ファイルは構造的に欠陥があり、ロード時間で拒絶されるべきである。
【0207】
sfSampleがmonoサンプルを示すならば、次いで、wSampleLinkは定義されておらず、その値は典型的には0であるべきであるが、値にかまわずに無視されるべきである。sfSampleTypeがleft又はrightサンプルを示すならば、次いで、wSampleLinkは、それぞれ、関連するright又はleftステレオサンプルのサンプルヘッダインデックスである。両サンプルが、適切な方向に向けられたそれらのパンを伴って、一緒に演奏されるべきである。リンクされたサンプルタイプは、SoundFont2仕様に、現在完全に定義されていないが、wSampleLinkを使用するサンプルの循環的にリンクされたリストを最終的にサポートする。
【0208】
ターミナルサンプルレコードは決して参照されないが、サンプルのエンドを示す任意の「EOS」であってよい、arcSampleNameを除いて、在来通り完全に0である。smplサブチャンクの全てのサンプルプレゼントは、インストウルメントによって典型的に参照されるが、しかし、いかなる「親の無い」サンプルを含むファイルは拒絶されない。SoundFont互換アプリケーションは、ユーザプリファレンスに従って、それらの親の無いサンプルを任意に無視することができ、又は、流し出すことができる。
【0209】
SHDRサブチャンクが除かれ、又は、複数の46バイトでないサイズならば、ファイルは、構造的に不合理であるとして拒絶されるべきである。
【0210】
付録II
S.1.2.定義されたジェネレータエニュメレータ
SoundFont 2.00ジェネレータの網羅的リストおよびそれらの厳密な定義は、次のようである。
0 startAddrsOffset
このインストルメントのためにプレイされるべき最初のサンプルに対するStartサンプルヘッダパラメータを越えたサンプルにおけるオフセット。例えば、Startが7であり、startAddrOffsetが2であった場合には、そのプレイされる最初のサンプルはサンプル9であろう。
1 endAddrsOffset
このインストルメントのためにプレイされるべき第1のサンプルに対するEndサンプルヘッダパラメータを越えたサンプルにおけるオフセット。例えば、もし、Endが17であり、endAddrsOffsetが2であった場合には、プレイされる最後のサンプルは、サンプル15であろう。
2 startloopADDRSOffset
このインストルメントのためにループにおいて繰り返されるべき最初のサンプルに対するStartloopサンプルヘッダパラメータを越えたサンプルにおけるオフセット。例えば、もし、Startloopが10であり、startloopADDROffsetが−1であった場合には、その最初の繰り返されるループサンプルは、サンプル9であろう。
3 endloopAddrsOffset
このインストルメントのためのループのStartloopサンプルに等価と考えられるサンプルに対するEndlooPサンプルヘッダパラメータを越えたサンプルにおけるオフセット。例えば、もし、Endloopが15であり、endloopAddrOffsetが2であった場合には、サンプル17が、Startloopサンプルと等価であると考えられ、したがって、サンプル16がルーピング中にStartloopに実効的に先んずるであろう。
4 startAddrsCoarseOffset
このインストルメントにおいてプレイされるべきStartサンプルヘッダパラメータおよび最初のサンプルを越えた32768のサンプルインクレメントにおけるオフセット。このパラメータは、startAddrsCoarseOffsetパラメータに加えられる。例えば、もし、Startが5であり、startAddrOffsetが3であり、startAddrCoarseOffsetが2であった場合には、プレイされる最初のサンプルは、サンプル65544であろう。
5 modLfoToPitch
これは、ModulationLFOのフルスケールエクスカーションがピッチに影響するセントにおける度合いである。正の値は、正のLFOエクスカーションがピッチを増大させることを示しており、負の値は、正のエクスカーションがピッチを減少させることを示す。ピッチは、常に、対数関数的に修正される。すなわち、偏差は、Hzにおけるのでなく、セントにおけるセミトーンおよびオクターブである。例えば、100の値は、ピッチが最初に1セミトーン上昇し、次に、1セミトーン下降することを示している。
6 vibLfoToPitch
これは、VibratoLFOのフルスケールエクスカーションがピッチに影響するセントにおける度合いである。正の値は、正のLFOエクスカーションがピッチを増大させることを示しており、負の値は、正のエクスカーションがピッチを減少させることを示している。ピッチは、常に、対数関数的に修正される。すなわち、偏差は、Hzにおけるのでなく、セントにおけるセミトーンおよびオクターブである。例えば、100の値は、ピッチが最初に1セミトーン上昇し、次に、1セミトン下降することを示している。
7 modEnvToPitch
これは、Modulation Envelopeのフルスケールエクスカーションがピッチに影響するセントにおける度合いである。正の値は、ピッチの増大を示し、負の値は、ピッチの減少を示している。ピッチは、常に、対数関数的に修正される。すなわち、偏差は、Hzにおけるのでなく、セントにおけるセミトーンおよびオクターブである。例えば、100の値は、ピッチがエンベローブピークで1セミトーン上昇することを示している。
8 initialFilterFc
これは、絶対セント単位におけるローパスフィルタのカットオフおよび共振周波数である。ローパスフィルタは、Hzにおけるポール周波数がInitial Filter Cutoffパラメータによって定められる二次共振ポール対として定義される。カットオフ周波数が20kHzを越え、且つフィルタのQ(共振)が零であるときに、フィルタは、その信号に影響しない。
9 initialFilterQ
これは、フィルタ共振がカットオフ周波数で示すセンチベルにおけるDCゲイン以上の高さである。零またはそれより小さい値は、フィルタが共振でなく、零が特定されているときに、カットオフ周波数(ポール角)が零より小さいことを示している。DCでのフィルタゲインもまた、このパラメータによって影響され、DCでのゲインは、特定ゲインの半分だけ減少させられる。例えば、100の値の場合、DCでのフィルタゲインは、単位ゲイン以下5dBであり、共振ピークの高さは、DCゲイン以上10dBまたは単位ゲイン以上5dBである。また、ここで注意すべきことは、もし、initialFilterQが零またはそれ以下にセットされる場合には、そのフィルタ応答は、カットオフ周波数が20kHzであるならば、フラットであり、単位ゲインである。
10 modLfoToFilterFc
これは、Modulation LFOのフルスケールエクスカーションがフィルタカットオフ周波数に影響するセントにおける度合いである。正の数は、正のLFOエクスカーションがカットオフ周波数を増大させることを示しており、負の数は、正のエクスカーションがカットオフ周波数を減少させることを示している。フィルタカットオフ周波数は、常に、対数関数的に修正される。すなわち、偏差は、Hzにおけるのでなく、セントにおけるセミトーンおよびオクターブである。例えば、1200の値は、カットオフ周波数が最初に1オクターブ上昇し、次に、1オクターブ下降することを示している。
11 modEnvToFilterFc
これは、Modulation Envelopeのフルスケールエクスカーションがフィルタカットオフに影響するセントにおける度合いである。正の数は、カットオフ周波数の増大を示し、負の数は、フィルタカットオフの減少を示している。フィルタカットオフは、常に、対数関数的に修正される。すなわち、その偏差は、Hzにおけるのでなく、セントにおけるセミトーンおよびオクターブである。例えば、1000の値は、カットオフ周波数がエンベロープアタックピークでの1オクターブ上昇することを示している。
12 endAddrsCoarseOffset
このインストルメントにおいてプレイされるべきEndサンプルヘッダパラメータおよび最後のサンプルを越えた32768のサンプルインクリメントにおけるオフセット。このパラメータは、endAddrsOffsetパラメータに加えられる。例えば、もし、Endが65536であり、startAddrOffsetが−3であり、startAddrCoarseOffsetが−1である場合には、ブレイされる最後のサンプルは、サンプル32765であろう。
13 modLfoToVolume
これは、ModulationLFOのフルスケールエクスカーションがボリュームに影響するセンチベルにおける度合いである。正の数は、正のLFOエクスカーションがボリュームを増大させることを示しており、負の数は、製のエクスカーションがボリュームを減少させることを示している。ボリュームは、常に、対数関数的に修正される。すなわち、その偏差は、直線振幅におけるのでなく、デシベルにおけるものである。例えば、100の値は、ボリュームが最初に10dB上昇し、次に、10dB下降することを示している。
14 unusedl
未使用、予備。もし、遭遇する場合には、無視して下さい。
15 chorusEffectsSend
これは、ノートのオーディオ出力がコーラス効果プロセッサへ送られる0.1%ユニットにおける度合いである。0%またはそれ以下の値は、このノートから信号が送られないことを示しており、100%またはそれ以上の値は、そのノートがフルレベルで送られることを示している。ここで注意すべきことは、このパラメータは、その出力の“ドライ”または処理されていない部分へ送られるこの信号の量に影響を持たないということである。例えば、250の値は、その信号がコーラス効果プロセッサへフルレベルの25パーセント(フルレベルから12dBの減衰)で送られることを示している。
16 reverbEffectsSend
これは、ノートのオーディオ出力がリバーブ効果プロセッサに送られる0.1%ユニットにおける度合いである。0%またはそれ以下の値は、このノートから信号が送られないことを示している。100%またはそれ以上の値は、そのノートがフルレベルで送られることを示している。ここで注意すべきことは、このパラメータは、その出力の“ドライ”または処理されていない部分へ送られるこの信号の量に影響を持たないということである。例えば、250の値は、その信号がリバーブ効果プロセッサへフルレベルの25パーセント(フルレベルから12dBの減衰)で送られることを示している。
17 pan
これは、ノートの“ドライ”オーディオ出力が左または右出力へ配分される0.1%ユニットにおける度合いである。−50%またはそれ以下の値は、その信号が左出力へ全部送られ、左へは送られないことを示している。+50パーセントまたはそれ以上の値は、そのノートが右へ全部送られ、左へは送られないことを示している。零の値は、その信号を左と右との間の中心に置くようにする。例えば、−250の値は、その信号がフルレベルの75%で左出力へ、フルレベルの25%で右出力へ送られることを示している。
18 unused2
未使用、予備。もし、遭遇する場合には、無視して下さい。
19 unused3
未使用、予備。もし、遭遇する場合には、無視して下さい。
20 unused4
未使用、予備。もし、遭遇する場合には、無視して下さい。
21 delayModLFO
これは、Modulation LFOが零値からその上方ランプを始めるまでのキーオンからの絶対タイム、セントにおける遅延時間である。0の値は、1秒遅延を示している。負の値は、1秒よりも小さい遅延を示している。正の値は、1秒よりも長い遅延を示している。通常、最も負の数(−32768)は、遅延なしを示している。例えば、10ミリ秒の遅延は、1200log2(.01)=−7973であろう。
22 freqModLFO
これは、Modulation LFOのトライアングル期間の絶対セントにおける周波数である。零の値は、8.176Hzの周波数を示している。負の値は、8.176Hzより低い周波数を示している。正の値は、8.176Hzより高い周波数を示している。例えば、10mHzの周波数は、1200log2(.01/8.176)=−11610であろう。
23 delayVibLFO
これは、Vibrato LFOが零値から上方ランプを開始するまでのキーオンからの絶対タイムセントにおける遅延時間である。0の値は、1秒遅延を示している。負の値は、1秒より小さい遅延を示している。正の値は、1秒より長い遅延を示している。最も負の数(−32768)は、通常、遅延なしを示している。例えば、10ミリ秒の遅延は、1200log2(.01)=−7973であろう。
24 freqVibLFO
これは、Vibrato LFOのトライアングル期間の絶対セントにおける周波数である。零の値は、8.176Hzの周波数を示している。負の値は、8.176Hzより低い周波数を示しており、正の値は、8.176Hzより高い周波数を示している。例えば、10mHzの周波数は、120 0log2(.01/8.176)=−11610であろう。
25 delayModEnv
これは、Modulationエンベローブのアッタクフェーズのスタートとキーオンとの間の絶対タイムセントにおける遅延時間である。0の値は、1秒遅延を示している。負の値は、1秒より小さい遅延を示している。正の値は、1秒より長い遅延を示している。最も負の数(−32768)は、通常、遅延なしを示している。例えば、10ミリ秒の遅延は、1200log2).01)=−7973であろう。
26 attackModEnv
これは、Modulation Envelope Delay Timeの終わりから、Modulation Envelope値がそのピークに達するまでの絶対タイムセントにおける時間である。ここで注意すべきことは、アタックは、“コンベックス”であり、その曲線は、公称、デシベルまたはセミトーンパラメータに適用されるときに、その結果がそれぞれ振幅またはHzにおいて直線であるようなものであるということである。0の値は、1秒アタック時間を示している。負の値は、1秒より短い時間を示しており、正の値は、1秒より長い時間を示している。最も負の数(−32768)は、通常、瞬時アタックを示している。例えば、10ミリ秒のアタック時間は、1200log2(.01)=−7973であろう。
27 holdModEnv
これは、アタックフェーズの終わりから減衰フェーズへ入るまでの絶対タイムセントにおける時間であり、この時間中は、エンベロープ値がそのピークに保持される。0の値は、1秒保持時間を示している。負の値は、1秒より短い時間を示している。正の値は、1秒よりも長い時間を示している。最も負の数(−32768)は、通常、保持フェーズなしを示している。例えば、10ミリ秒の保持時間は、1200log2(.01)=−7973であろう。
28 decayModBnv
これは、減衰フェーズ中のModulation Envelope値における100%変化のための絶対タイムセントにおける時間である。Modulation Bnvelopeに対して、減衰フェーズは、維持レベルに向かって直線的に傾斜する。もし、維持レベルがゼロであった場合には、Modulation Envelope Decay時間は、減衰フェーズにて経過する時間であろう。0の値は、零維持レベルに対する1秒減衰時間を示している。負の値は、1秒より短い時間を示している。正の値は、1秒よりも長い時間を示している。例えば、10ミリ秒の減衰時間は、1200log2(.01)=−7973であろう。
29 sustainModBnv
これは、減衰フェーズ中にModulation Envelope値が傾斜するレベルの減少を0.1%単位にて表したものである。Modulation Envelopeに対して、維持レベルは、フルスケールのパーセントにて最も良く表される。ボリュームエンベロープと協調させるために、維持レベルは、フルスケールからの減少として表される。0の値は、維持レベルがフルレベルであることを示しており、これは、減衰時間とは関係なしに、減衰フェーズの零持続時間を意味している。正の値は、対応するレベルまでの減衰を示している。零よりも小さい値は、ゼロと解釈されるべきである。1000より上の値は、1000として解釈されるべきである。例えば、ピークの40%絶対値に対応する維持レベルは、600であろう。
30 releaseModBnv
これは、レリーズフェーズ中のModulation Envelope値の100%変化のための絶対タイムセントにおける時間である。Modulation Envelopeに対して、レリーズフェーズは、現在のレベルから零に向かって直線的に傾斜する。もし、現在のレベルがフルスケールであった場合には、Modulation Envelope Timeは、零値に達するまでにレリーズフェーズに費やされる時間であろう。0の値は、フルレベルからのレリーズに対する1秒減衰時間を示している。負の値は、1秒よりも短い時間を示しており、正の値は、1秒より長い時間を示している。例えば、10ミリ秒のレリーズ時間は、1200log2(.01):−7973であろう。
31 keynumToModEnvHold
これは、Modulation Envelopeの保持時間がMIDIキーナンバーを増大することによって減少されるキーナンバー単位当たりのタイムセントにおける度合いである。キーナンバー60での保持時間は、常に、不変である。単位スケーリングは、100の値がキーボードをトラックする保持時間を与え、すなわち、上方オクターブにより、保持時間が半分とさせられるようにするようなものである。例えば、もし、Modulation Envelope Hold Timeが7973=10ミリ秒であり、Key Number to Mod Env Holdが50であり、キーナンバー36がプレイされていた時には、保持時間は、20ミリ秒であろう。
32 keynumToModEnvDecay
これは、Modulation Envelopeの保持時間がMIDIキーナンバーを増大させることによって減少されるキーナンバー当たりのタイムセントにおける度合いである。キーナンバー60での保持時間は、常に不変である。単位スケーリングは、100の値がキーボードをトラックする保持時間を与え、すなわち、上方オクターブにより、保持時間が半分とさせられるようにするようなものである。例えば、もし、Modulation Envelope Hold Timeが7973=10ミリ秒であり、Key Number to Mod Env Holdが50であり、キーナンバー36がプレイされていた時には、保持時間は、20ミリ秒であろう。
33 遅延VolEnv
これは、キー・オンからボリューム・エンベロープのアタック相のスタートまでの遅延時間を絶対タイムセントであらわしたものである。0の値は、1秒の遅延をあらわす。負の値は、1秒未満の遅延をあらわす。正の値は、1秒より大きい遅延をあらわす。最大の負の数(−32768)は、憤習的に遅延のないことを示す。例えば、10m秒の遅延は、1200log2(.01)=−7973となる。
34 アタックVolEnv
これは、ボリューム・エンベロープ遅延時間の終わりからボリューム・エンベロープの値がピークに達する点までの時間を絶対タイムセントであらわしたものである。アタックは、「凸面」であり、曲線は、名目的にデシベル・ボリューム・パラメーターに適用したときに結果の大きさが線形となるようなものであることに留意が必要である。負の値は、負の値は、1秒未満の時間をあらわす。正の値は、1秒より大きい時間をあらわす。最大の負の数(−32768)は、慣習的に瞬間的なアタックを示す。例えば、10m秒のアタック時間は、1200log2(.01)=−7973となる。
35 ホールドVolEnv
これは、アタック相の終わりからディケー相に入る間での時間を絶対タイムセントであらわしたものである。0の値は、1秒のホールド時間をあらわす。負の値は、1秒未満の時間をあらわす。正の値は、1秒より大きい時間をあらわす。最大の負の数(−32768)は、慣習的に遅延のないことを示す。例えば、10m秒のホールド時間は、1200log2(.01)=−7973となる。
36 ディケーVolEnv
これは、ディケー相の間のボリューム・エンベロープの値の100%の変化のための時間を絶対タイムセントであらわしたものである。ボリューム・エンベロープに関して、ディケー相は、持続レベルに向かって直線的に飛び跳ね(ランプし)、各時間単位ごとに一定のdB変化を生じさせる。持続レベルが−100dBとすると、ボリューム・エンベロープ・ディケー時間は、ディケー相で費やされた時間となる。0の値は、ゼロの持続レベルに対する1秒のディケー時間をあらわす。負の値は、1秒未満の時間をあらわす。正の値は、1秒より大きい時間をあらわす。例えば、10m秒のディケー時間は、1200log2(.01)=−7973となる。
37 持続VolEnv
これは、ディケー相の間にボリューム・エンベロープの値が飛び跳ねるレベルの低下をセンチベルであらわしたものである。ボリューム・エンベロープに関して、持続レベルは、目盛りいっぱいの値からの減衰をcBであらわすのが最善である。0の値は、持続レペルがいっぱいのレベルであることをあらわし、これは、ディケー時間のいかんにかかわらずディケー相の持続時間がゼロであることを意味する。正の値は、対応するレベルへのディケーを示す。ゼロより小さい値は、ゼロと解釈される。慣習的に、1000は、いっぱいの減衰あらわす。例えば、ピークより絶対値で12dB低い値に対応する持続レベルは、120となる。
38 レリースVolEnv
これは、レリース相の問のボリューム・エンベロープの値の100%の変化のための時間を絶対タイムセントであらわしたものである。ボリューム・エンベロープに関して、レリース相は、現在のレベルからゼロに向かって直線的に飛び跳ね(ランプし)、各時間単位ごとに一定のdB変化を生じさせる。現在のレベルが目盛りいっぱいの値とすると、ボリューム・エンベロープ・レリース時間は、−100dBの減衰に達するまでにレリース相で費やされた時間となる。0の値は、いっぱいのレベルからのレリースのための1秒のディケー時間をあらわす。負の値は、1秒未満の時間をあらわす。正の値は、1秒より大きい時間をあらわす。例えば、10m秒のレリース時間は、1200log2(.01)=−7973となる。
39 VolEnvホールドへのキーナム
これは、MIDIキーナンバーを増大させることによってボリューム・エンベロープのホールド時間が減少する程度をキーナンバー単位あたりのタイムセントであらわしたものである。キーナンバー60でのホールド時間は、常に変化しない。単位目盛は、100の値がキーボードに追随するホールド時間となるように、すなわち上方に1オクターブ移動するとホールド時間が半減するように設定される。例えば、ボリューム・エンベロープ・ホールド時間が−7973=10m秒でVolEnvホールドへのキーナンバーが50であり、キーナンバー36が操作された場合、ホールド時間は、20m秒となる。
40 VolEnvディケーへのキーナム
これは、MIDIキーナンバーを増大させることによってボリューム・エンベロープのホールド時間が減少する程度をキーナンバー単位あたりのタイムセントであらわしたものである。キーナンバー60でのホールド時間は、常に変化しない。単位目盛は、100の値がキーボードに追随するホールド時間となるように、すなわち上方に1オクターブ移動するとホールド時間が半減するように設定される。例えば、ボリューム・エンベロープ・ホールド時間が−7973=10m秒でVolEnvホールドへのキーナンバーが50であり、キーナンバー36が操作された場合、ホールド時間は、20m秒となる。
41 楽器
これは、現在の層のために用いられる楽器を提供するINSTサブチャンクの中を示す指標である。ゼロの値は、リストの中の最初の楽器を示す。その値は、楽器のリストの大きさを決して越えてはならない。楽器計数装置は、PGEN層のための端末発生装置である。したがって、この計数装置は、PGENサブチャンクの中にしかあらわれないはずであり、大域層をのぞいた全体の中で最後の発生装置計数装置としてあらわれなければならないものである。
42 保留1
使用されず保留されるものである。遭遇しても無視しなければならない。
43 キーレンジ
これは、このプリセット、層、楽器、またはスプリットが活動状態にあるMIDIキーナンバーの値の最小および最大である。LSバイトは、最高の有効キーを示し、MSバイトは、最低の有効キーを示す。キーレンジ計数装置は、オプションであるが、あらわれた場合には、プリセット、層、楽器、またはスプリットの中の最初の発生装置でなければならない。
44 velレンジ
これは、このプリセット、層、楽器、またはスプリットが活動状態にあるMIDI速度値の最小および最大である。LSバイトは、最高の有効速度を示し、MSバイトは、最低の有効速度を示す。velレンジ計数装置は、オプションであるが、あらわれた場合には、プリセット、層、楽器、またはスプリットの中でキーレンジ以外に前にくるものがあってはならない。
45 スタートループAddrsコース・オフセット
スタートループ・サンプル・ヘッダ・パラメーターを越える32768のサンプル増分の中のオフセットおよびこの楽器のループの中で繰り返される最初のサンプル。このパラメーターは、スタートループAddrsオフセット・パラメーターに付加される。例えば、スタートループが5である場合、スタートループAddrオフセットは、3であり、スタートAddrコース・オフセットは、2であり、ループの中の最初のサンプルは、サンプル65544である。
46 キーナム
この計数装置は、MIDIキーナンバーを強制的にあたえられた値として有効に解釈されるようにする。有効な値は、0から127までである。
47 速度
この計数装置は、MIDI速度を強制的にあたえられた値として有効に解釈されるようにする。有効な値は、0から127までである。
48 初期減衰
これは、ある音が目盛りいっぱいから下方に減衰する減衰量をセンチベルであらわしたものである。ゼロの値は、減衰なしをあらわし、その音は、目盛りいっぱいで演奏される。例えば、60という値は、その音符に関して音が目盛りいっぱいから6dB下方で操作されることを示す。
49 保留2
使用されず保留されるものである。遭遇しても無視しなければならない。
50 エンドループAddrsコース・オフセット
この楽器のためのループに関するスタートループ・サンプルと等価と考えられるサンプルまでのエンドループ・サンプル・ヘッダ・パラメーターを越える32768のサンプル増分の中のオフセット。このパラメーターは、エンドループAddrsオフセット・パラメーターに付加される。例えば、エンドループが5である場合、エンドループAddrオフセットは、3であり、エンドAddrコース・オフセットは、2であり、サンプル65544は、スタートループと等価であるとみなされ、したがって、サンプル66543は、ルーピング中有効にスタートループに先行する。
51 コース・チューン
これは、その音符に適用されるべきピッチ・オフセットを半音であらわしたものである。正の値は、その音符がより高いピッチで再生されることを示し、負の値は、より低いピッチで再生されことを示す。例えば、コース・チューンの値が−4であれば、その音符が4半音分だけフラットに再生される。
52 ファイン・チューン
これは、その音符に適用されるべきピッチ・オフセットをセントであらわしたものである。これは、コース・チューンと加法的に作用する。正の値は、その音符がより高いピッチで再生されることを示し、負の値は、より低いピッチで再生されことを示す。例えば、ファイン・チューニングの値が−5であれば、その音符が5セント分だけフラットに再生される。
53 サンプルID
これは、現在のスプリットのために用いられる楽器を提供するSHDRサブチャンクの中を示す指標である。ゼロの値は、リストの中の最初のサンプルを示す。その値は、サンプル・リストの大きさを決して越えてはならない。サンプルID計数装置は、IGENスプリットのための端末発生装置である。したがって、この計数装置は、IGENサブチャンクの中にしかあらわれないはずであり、大域スプリットをのぞいた全体の中で最後の発生装置計数装置としてあらわれなければならないものである。
54 サンプル・モード
この計数装置は、現在の計数装置のスプリットのためのサンプルを記述するさまざまなプール・フラッグをあたえる値を示す。サンプル・モードは、IGENサブチャンクの中にしかあらわれないはずであり、大域スプリットの中にあらわれてはならない。この値の2つのLSビットは、サンプル内のループの種類を示す。0は、ループなしに再生される音を示し、1は、連続してループする音を示し、2は、冗長的にループなしを示し、3は、キーが押されている間ループしてから先に進んでサンプルの残りを演奏する音を示す。この値のMSピット(ピット15)は、このサンプルがサウンド・エンジンのROM目盛の中にあることを示す。
55 保留3
使用されず保留されるものである。遭遇しても無視しなければならない。
56 音階調律
このパラメーターは、MIDIキーナンバーがピッチに影響する程度をあらわす。ゼロの値は、MIDIキーナンバーがピッチに影響しないことを示す。100の値は、通常に調律された半音目盛りを示す。
57 排他的クラス
このパラメーターは、あたえられた楽器のキーを押して他の楽器の再生を終わらせる機能を提供するものである。これは、ヒハット・シンバルのようなパーカッション楽器の場合にとくに有用である。排他的クラスの値がゼロの場合は、排他的クラスがないことを示す。他の値は、その音符が開始されると、同じ排他的クラスで鳴っている他の音符が迅速に終わらなければならないことを示す。
58 繰り越しルート・キー
このパラメーターは、サンプルがその最初のサンプル率で再生されるMIDIキーナンバーをあらわす。存在しない場合あるいは−1の値で存在する場合には、その代わりにサンプル・ヘッダー・パラメーターのオリジナル・キーが用いられる。0−127の範囲で存在する場合には、示されたキーナンバーによって、そのサンプルがそのサンプル・ヘッダーのサンプル率で再生される。例えば、サンプルが22.050kHzのサンプル率でのピアノ・ミドルC(最初のキー=60)のレコーディングであり、ルート・キーが69にセットされている場合、MIDIキーナンバー69(ミドルCの上のA)を操作すれば、ミドルCのピッチのピアノの音が聞こえることになる。
59 未使用5
使用されず保留されるものである。遭遇しても無視しなければならない。
60 エンドOper
使用されず保留されるものである。遭遇しても無視しなければならない。この退くとくの名称は、定義されたリストを終わらせる値を示す。
【0211】
S.1.3 発生装置の要約下の表は、サウンド・フォント2.00で定義される全発生装置とデフォールト値を示す。
【0212】
【0213】
【0214】
【0215】
*レンジは、サンプル・ヘッダーの中のスタート、ループ、およびエンド点の値によって異なる。
**レンジは、ピット・フラッグにもとづく個別の値をもつ。
【図面の簡単な説明】
【図1】図1は、本発明を組み込んでいるミュージック・シンセサイザーの図である。
【図2】図2A及び2Bは、本発明を組み込んでいるパーソナル・コンピュータ及びメモリ・ディスクの図である。
【図3】図3は、オーディオ・サンプル構造の図である。
【図4】図4A及び4Bは、オーディオ・サンプルの異なる部分を示す図である。
【図5】図5は、異なるキー入力特性を示すキーの図である。
【図6】図6は、例証的な変調入力としての変調ホイール及びピッチ・ベンド・ホイールの図である。
【図7】図7は、本発明を組み込んでいるインストルメント・レベル及びプリセット・レベルのブロック図である。
【図8】図8は、本発明を組み込んでいるRIFFファイル構造の図である。
【図9】図9は、本発明によるファイル・フォーマット・イメージの図である。
【図10】図10は、本発明による調音データ構造の図である。
【図11】図11は、モジュレータ・フォーマットの図である。
【図12】図12は、オーディオ・サンプル・フォーマットの図である。
【図13】図13は、モジュレータ・エニュメレータとモジュレータ量の関係を示す図である。
Claims (4)
- オーディオデータ処理システム上で実行されるプログラムによってアクセスされる音楽サンプルデータをストアし、前記データを再生してオーディオ出力を生成する方法であって、
前記方法は、
メモリ内に所定フォーマット構造のデータをストアするステップと、アーティキュレーションインストラクションを用いて前記データを処理することによって、前記所定フォーマット構造のデータからオーディオ出力を生成するステップとを備えており、
前記所定フォーマット構造のデータが、
前記プログラムによって使用される情報と、
プリセットレベルの情報を含む少なくとも1つのプリセットであって、前記プリセットレベルの情報がインスツルメントレベルの情報を含むインスツルメントを参照し、前記インスツルメントレベルの特徴を特定する1つ以上のアーティキュレーションパラメータを選択的に含んでいるプリセット部と、
前記プリセットの各プリセットレベルの情報によって参照されるインスツルメントレベルの情報を含む少なくとも1つのインスツルメントであって、各インスツルメントについてのインスツルメントレベルの情報が、オーディオサンプルを参照し、前記インスツルメントレベルの特徴を特定する1つ以上のアーティキュレーションパラメータを選択的に含んでいるインスツルメントとを含み、
前記アーティキュレーションパラメータのそれぞれが、オーディオサンプルを作成し演奏するためのオーディオの物理的な特性に関係する単位(ユニット)であって、特定のマシンに無関係である単位(ユニット)で特定されており、
前記単位(ユニット)の少なくとも1つは、付加的な単位(ユニット)であり、
前記付加的な単位(ユニット)は、与えられたアーティキュレーションパラメータの異なる値が前記付加的な単位(ユニット)で測定される同じ量によって変更されるとき、与えられたアーティキュレーションパラメータの変化の程度が同じであるように選定され、
オーディオ出力を生成するステップは、前記インスツルメントレベルのアーティキュレーションパラメータ及び前記プリセットレベルのアーティキュレーションパラメータに基づいてオーディオ出力を生成することを含み、
前記アーティキュレーションインストラクションは、少なくとも1つのアーティキュレーションパラメータと任意数の選択的なモジュレータパラメータとを特定しており、
前記モジュレータパラメータが、
前記モジュレータパラメータと関係する第1情報ソースを特定する第1ソースエニューメレータと、
前記モジュレータパラメータと関係する前記ジェネレータパラメータの一つを特定するジェネレータエニューメレータと、
前記第1ソースエニューメレータが前記一つのジェネレータパラメータに影響を与える度合いを変化させるための第2情報ソースを特定する第2ソースエニューメレータと、
前記第2ソースエニューメレータが前記第1ソースエニューメレータに影響を与える度合いを特定する数値と、
前記第1ソースエニューメレータに関する変形操作を特定するトランスフォームエニューメレータとを備え、
前記オーディオ出力を生成するステップは、前記モジュレータパラメータと関連するエニュメレータに基づいて前記音楽サンプルデータを変調することを含んでいることを特徴とする方法。 - さらに、1つのブロックのデータとして複数の前記オーディオサンプルをストアするステップを備えており、
前記データが、デジタル化されたオーディオの1つ以上のデータセグメントと、
前記デジタル化されたオーディオセグメントと関係するサンプルレートと、
前記デジタル化されたオーディオセグメントのそれぞれと関係するオリジナルキーと、
前記オリジナルキーと関係するピッチ修正の情報を有していることを特徴とする請求項1記載の方法。 - 前記オーディオサンプルがステレオオーディオサンプルを備えており前記各ステレオオーディオサンプルが対となる他方のステレオオーディオサンプルを含む第2のブロックのデータに対するポインタを含んだ一つのブロックのデータであることを特徴とする請求項1に記載の方法。
- 前記オーディオサンプルの少なくとも1つがループスタートポイントとループエンドポイントとを備え、さらに、前記ループスタートポイントを取り囲む最近接データポイントのそれぞれがループエンドポイントとを取り囲む対応する最近接データポイントの値とほぼ同一となるようにさせるステップをさらに備えていることを特徴とする請求項1に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/514,788 | 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 |
---|---|
JPH11510917A JPH11510917A (ja) | 1999-09-21 |
JP4679678B2 true JP4679678B2 (ja) | 2011-04-27 |
Family
ID=24048696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50944097A Expired - Lifetime JP4679678B2 (ja) | 1995-08-14 | 1996-08-13 | ディジタルオーディオデータをフォーマットするための方法及び装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5763800A (ja) |
EP (1) | EP0845138B1 (ja) |
JP (1) | JP4679678B2 (ja) |
AT (1) | ATE230886T1 (ja) |
AU (1) | AU6773696A (ja) |
DE (1) | DE69625693T2 (ja) |
WO (1) | WO1997007476A2 (ja) |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69704528T2 (de) * | 1996-08-30 | 2002-03-28 | Yamaha Corp., Hamamatsu | 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 | ローランド株式会社 | 波形発生装置 |
SG81938A1 (en) * | 1997-09-30 | 2001-07-24 | Yamaha Corp | Tone data making method and device and recording medium |
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 | 波形再生装置 |
JP3654084B2 (ja) * | 1999-09-27 | 2005-06-02 | ヤマハ株式会社 | 波形生成方法及び装置 |
JP2001100760A (ja) | 1999-09-27 | 2001-04-13 | Yamaha Corp | 波形生成方法及び装置 |
JP3840851B2 (ja) | 1999-09-27 | 2006-11-01 | ヤマハ株式会社 | 記録媒体および楽音信号生成方法 |
JP3601371B2 (ja) | 1999-09-27 | 2004-12-15 | ヤマハ株式会社 | 波形生成方法及び装置 |
JP3654080B2 (ja) * | 1999-09-27 | 2005-06-02 | ヤマハ株式会社 | 波形生成方法及び装置 |
JP3654082B2 (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 | 電子音楽装置および同装置に適用されるコンピュータ読み取り可能なプログラム |
EP1851752B1 (en) * | 2005-02-10 | 2016-09-14 | Koninklijke Philips N.V. | Sound synthesis |
WO2006085243A2 (en) * | 2005-02-10 | 2006-08-17 | Koninklijke Philips Electronics N.V. | Sound synthesis |
JP4645337B2 (ja) * | 2005-07-19 | 2011-03-09 | カシオ計算機株式会社 | 波形データ補間装置 |
JP5200204B2 (ja) | 2006-03-14 | 2013-06-05 | ディブエックス リミテッド ライアビリティー カンパニー | 高信頼性システムを含む連合型デジタル権限管理機構 |
KR100768758B1 (ko) * | 2006-10-11 | 2007-10-22 | 박중건 | 음악연주 장치 및 그것을 이용한 음향출력 방법. |
WO2009065137A1 (en) | 2007-11-16 | 2009-05-22 | Divx, Inc. | Hierarchical and reduced index structures for multimedia files |
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 |
CA2749170C (en) | 2009-01-07 | 2016-06-21 | Divx, Inc. | Singular, collective and automated creation of a media guide for online content |
EP2507995A4 (en) | 2009-12-04 | 2014-07-09 | Sonic Ip Inc | SYSTEMS AND METHODS FOR TRANSPORTING ELEMENTARY BIT TRAIN CRYPTOGRAPHIC MATERIAL |
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 |
CN103875248B (zh) | 2011-08-30 | 2018-09-07 | 帝威视有限公司 | 用于编码和流处理通过使用多个最大比特率级别编码的视频的***和方法 |
US8964977B2 (en) | 2011-09-01 | 2015-02-24 | Sonic Ip, Inc. | Systems and methods for saving encoded media streamed using adaptive bitrate streaming |
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 |
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 |
US9313510B2 (en) | 2012-12-31 | 2016-04-12 | Sonic Ip, Inc. | Use of objective quality measures of streamed content to reduce streaming bandwidth |
US9191457B2 (en) | 2012-12-31 | 2015-11-17 | Sonic Ip, Inc. | Systems, methods, and media for controlling delivery of content |
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)
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 | 日本電気株式会社 | エッチングダメージの評価方法 |
-
1995
- 1995-08-14 US US08/514,788 patent/US5763800A/en not_active Expired - Lifetime
-
1996
- 1996-08-13 EP EP96928161A patent/EP0845138B1/en not_active Expired - Lifetime
- 1996-08-13 WO PCT/US1996/013154 patent/WO1997007476A2/en active IP Right Grant
- 1996-08-13 AU AU67736/96A patent/AU6773696A/en not_active Abandoned
- 1996-08-13 DE DE69625693T patent/DE69625693T2/de not_active Expired - Lifetime
- 1996-08-13 AT AT96928161T patent/ATE230886T1/de not_active IP Right Cessation
- 1996-08-13 JP JP50944097A patent/JP4679678B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5763800A (en) | 1998-06-09 |
WO1997007476A3 (en) | 1997-04-17 |
EP0845138B1 (en) | 2003-01-08 |
DE69625693D1 (de) | 2003-02-13 |
WO1997007476A2 (en) | 1997-02-27 |
AU6773696A (en) | 1997-03-12 |
DE69625693T2 (de) | 2004-05-06 |
EP0845138A2 (en) | 1998-06-03 |
JPH11510917A (ja) | 1999-09-21 |
EP0845138A4 (en) | 1998-10-07 |
ATE230886T1 (de) | 2003-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4679678B2 (ja) | ディジタルオーディオデータをフォーマットするための方法及び装置 | |
US5792971A (en) | Method and system for editing digital audio information with music-like parameters | |
US5703311A (en) | Electronic musical apparatus for synthesizing vocal sounds using format sound synthesis techniques | |
US6392135B1 (en) | Musical sound modification apparatus and method | |
EP1512140B1 (en) | Musical notation system | |
CN1750116B (zh) | 自动表演风格确定设备和方法 | |
US7432435B2 (en) | Tone synthesis apparatus and method | |
JP2001092464A (ja) | 楽音生成方法、楽音生成用データ記録方法および楽音生成用データを記録した記録媒体 | |
EP2232478A1 (en) | Systems and methods for providing multi-region instrument support in an audio player | |
CA2573434C (en) | Tone synthesis apparatus and method | |
JP3829780B2 (ja) | 奏法決定装置及びプログラム | |
US6355871B1 (en) | Automatic musical performance data editing system and storage medium storing data editing program | |
EP2232479A1 (en) | Systems and methods for providing variable root note support in an audio player | |
Rossum et al. | The SoundFont 2.0 file format | |
US6459028B2 (en) | Performance data modifying method, performance data modifying apparatus, and storage medium | |
JP2008058796A (ja) | 奏法決定装置及びプログラム | |
JP3760909B2 (ja) | 楽音生成装置及び方法 | |
JP3820817B2 (ja) | 楽音信号発生装置 | |
JP2002149159A (ja) | 楽音信号合成方法、楽音信号合成装置および記録媒体 | |
JP3832422B2 (ja) | 楽音生成装置及び方法 | |
JP3499672B2 (ja) | 自動演奏装置 | |
Zacky | Creation and performance of music structures | |
Petelin et al. | Cubase SX 2: Virtual MIDI and Audio Studio | |
Ludovico | IEEE 1599 and Sound Synthesis | |
JP2004334240A (ja) | 音信号分析装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060411 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060711 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060828 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061011 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070206 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070507 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070625 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070806 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090609 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090908 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20091026 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091209 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100616 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100721 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100729 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20100826 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110106 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110202 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140210 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |