JP2013152477A - 電子楽器デジタルインターフェースハードウェア命令セット - Google Patents
電子楽器デジタルインターフェースハードウェア命令セット Download PDFInfo
- Publication number
- JP2013152477A JP2013152477A JP2013044659A JP2013044659A JP2013152477A JP 2013152477 A JP2013152477 A JP 2013152477A JP 2013044659 A JP2013044659 A JP 2013044659A JP 2013044659 A JP2013044659 A JP 2013044659A JP 2013152477 A JP2013152477 A JP 2013152477A
- Authority
- JP
- Japan
- Prior art keywords
- midi
- voice
- machine code
- digital waveform
- instruction
- 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.)
- Pending
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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/002—Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
- G10H7/004—Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof with one or more auxiliary processor in addition to the main processing unit
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/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
- G10H1/0066—Transmission between separate instruments or between individual components of a musical system using a MIDI interface
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10K—SOUND-PRODUCING DEVICES; METHODS OR DEVICES FOR PROTECTING AGAINST, OR FOR DAMPING, NOISE OR OTHER ACOUSTIC WAVES IN GENERAL; ACOUSTICS NOT OTHERWISE PROVIDED FOR
- G10K15/00—Acoustics not otherwise provided for
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2230/00—General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
- G10H2230/025—Computing or signal processing architecture features
- G10H2230/031—Use of cache memory for electrophonic musical instrument processes, e.g. for improving processing capabilities or solving interfacing problems
-
- 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
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/541—Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Electrophonic Musical Instruments (AREA)
- Advance Control (AREA)
Abstract
【解決手段】プロセッサは、MIDIボイスのデジタル波形を生成するソフトウェアプログラムを実行する。ソフトウェアプログラムの命令は、MIDIボイスのデジタル波形の生成用にスペシャライズされた命令セットからの機械コード命令とする。
【選択図】図2
Description
本出願は、2007年3月22日に出願された米国仮出願第60/896,402号の優先権を主張するものである。
I構成要素間の同期に使用されるシステムリアルタイムメッセージ、他のシステム関連メッセージなど、システムメッセージを含むことができる。MIDIイベントは、MIDIショーコントロールメッセージ(例えば、ライトエフェクトキュー(lighting effect cues)、スライドプロジェクションキュー、マシーナリエフェクト(machinery effect)キュー、パイロテクニカル(pyrotechnical)キュー、および他のエフェクトキュー)とすることもできる。
構文:MULTSS Rx,Ry,shift,Rz,ACC
機能:制御ユニット280に、レジスタRxとRyの符号付き値の乗算を実行し、積を「shift」によって指定された量だけ左にシフトするようALU282に命令する制御信号を出力させる。積をシフトした後、ALU282はACCによって指定されたビットを積から抽出する。次いで、ALU282はこれらのビットを出力する。ACC=0の場合、ALU282は積の下位32ビットを抽出する。ACC=1の場合、ALU282は積の中位32ビットを抽出する。ACC=2の場合、ALU282は積の上位32ビットを抽出する。この命令はまた、ALU282からの出力をレジスタ286中のRzに導くために、制御ユニット280にマルチプレクサ284への制御信号を出力させる。
構文:MULTSU Rx,Ry,shift,Rz,ACC
機能:制御ユニット280に、Rxの符号付き値とRyの符号なし値の乗算を実行し、積を「shift」によって指定された量だけ左にシフトするようALU282に命令する制御信号を出力させる。積をシフトした後、ALU282はACCによって指定されたビットを積から抽出する。次いで、ALU282はこれらのビットを出力する。ACC=0の場合、ALU282は積の下位32ビットを抽出する。ACC=1の場合、ALU282は積の中位32ビットを抽出する。ACC=2の場合、ALU282は積の上位32ビットを抽出する。この命令はまた、ALU282からの出力をレジスタ286中のRzに導くために、制御ユニット280にマルチプレクサ284への制御信号を出力させる。
構文:MULTUU Rx,Ry,shift,Rz,ACC
機能:制御ユニット280に、レジスタRxとRyの符号なし値の乗算を実行し、積を「shift」によって指定された量だけ左にシフトするようALU282に命令する制御信号を出力させる。積をシフトした後、ALU282はACCによって指定されたビットを積から抽出する。次いで、ALU282はこれらのビットを出力する。ACC=0の場合、ALU282は積の下位32ビットを抽出し、これらの32ビットをRzに記憶する。ACC=1の場合、ALU282は積の中位32ビットを抽出する。ACC=2の場合、ALU282は積の上位32ビットを抽出する。この命令はまた、ALU282からの出力をレジスタ286中のRzに導くために、制御ユニット280にマルチプレクサ284への制御信号を出力させる。
構文:MACSS Rx,Ry,shift,Rz,ACC
機能:制御ユニット280に、レジスタRxとRyの符号付き値の乗算を実行し、積を「shift」によって指定された量だけ左にシフトするようALU282に命令する制御信号を出力させる。積をシフトした後、ALU282はACCによって指定された32ビットを積から抽出し、これらの32ビットをRzの値に加算し、得られたビットを出力する。ACC=0の場合、ALU282は積の下位32ビットを抽出する。ACC=1の場合、ALU282は積の中位32ビットを抽出する。ACC=2の場合、ALU282は積の上位32ビットを抽出する。この命令はまた、ALU282からの出力をレジスタ286中のRzに導くために、制御ユニット280にマルチプレクサ284への制御信号を出力させる。
構文:MACSU Rx,Ry,shift,Rz,ACC
機能:制御ユニット280に、Rxの符号付き値とRyの符号なし値の乗算を実行し、積を「shift」によって指定された量だけ左にシフトするようALU282に命令する制御信号を出力させる。積をシフトした後、ALU282はACCによって指定された32ビットを積から抽出する。次いで、ALU282は、これらの32ビットをRzの値に加算し、得られたビットを出力する。ACC=0の場合、ALU282は積の下位32ビットを抽出する。ACC=1の場合、ALU282は積の中位32ビットを抽出する。ACC=2の場合、ALU282は積の上位32ビットを抽出する。この命令はまた、ALU282からの出力をレジスタ286中のRzに導くために、制御ユニット280にマルチプレクサ284への制御信号を出力させる。
構文:MACUU Rx,Ry,shift,Rz,ACC
機能:制御ユニット280に、レジスタRxとRyの符号なし値の乗算を実行し、積を「shift」によって指定された量だけ左にシフトするようALU282に命令する制御信号を出力させる。積をシフトした後、ALU282はACCによって指定された32ビットを積から抽出し、これらの32ビットをRzの値に加算する。次いで、ALU282は得られたビットを出力する。ACC=0の場合、ALU282は積の下位32ビットを抽出する。ACC=1の場合、ALU282は積の中位32ビットを抽出する。ACC=2の場合、ALU282は積の上位32ビットを抽出する。この命令はまた、ALU282からの出力をレジスタ286中のRzに導くために、制御ユニット280にマルチプレクサ284への制御信号を出力させる。
構文:MULTUUMIN Rx,Ry,shift,Rz,ACC
機能:制御ユニット280に、レジスタRxとRyの符号なし値の乗算を実行し、積を「shift」によって指定された量だけ左にシフトするようALU282に命令する制御信号を出力させる。次いで、ALU282はACCによって指定されたビットを積から抽出し、これらのビットがRzに記憶された数よりも少ない数を表すかどうかを判断する。これらのビットがRzに記憶された数よりも少ない数を表す場合、ALU282はこれらのビットを出力する。ACC=0の場合、ALU282は積の下位32ビットを抽出する。ACC=1の場合、ALU282は積の中位32ビットを抽出する。ACC=2の場合、ALU282は積の上位32ビットを抽出する。この命令はまた、ALU282からの出力をレジスタ286中のRzに導くために、制御ユニット280にマルチプレクサ284への制御信号を出力させる。
構文:MACSSD Rx,Ry,shift,Rz,ACC
機能:制御ユニット280に、レジスタRxとRyの符号付き値の乗算を実行し、積を「shift」によって指定された量だけ左にシフトするようALU282に命令する制御信号を出力させる。次いで、ALU282はACCによって指定された32ビットを積から抽出する。これらのビットを積から抽出した後、ALU282はこれらの32ビットをRzの後のレジスタ(すなわち、Rz+1)に記憶された値に加算する。これらの値を加算した後、ALU282は和を出力する。ACC=0の場合、ALU282は積の下位32ビットを抽出する。ACC=1の場合、ALU282は積の中位32ビットを抽出する。ACC=2の場合、ALU282は積の上位32ビットを抽出する。この命令はまた、ALU282からの出力をレジスタ286中のRzに導くために、制御ユニット280にマルチプレクサ284への制御信号を出力させる。
構文:MACSUD Rx,Ry,shift,Rz,ACC
機能:制御ユニット280に、レジスタRxの符号付き値とレジスタRyの符号なし値の乗算を実行し、積を「shift」によって指定された量だけ左にシフトするようALU282に命令する制御信号を出力させる。次いで、ALU282はACCによって指定された32ビットを積から抽出する。これらのビットを積から抽出した後、ALU282はこれらの32ビットをRzの後のレジスタ(すなわち、Rz+1)に記憶された値に加算する。これらの値を加算した後、ALU282は和を出力する。ACC=0の場合、ALU282は積の下位32ビットを抽出する。ACC=1の場合、ALU282は積の中位32ビットを抽出する。ACC=2の場合、ALU282は積の上位32ビットを抽出する。この命令はまた、ALU282からの出力をレジスタ286中のRzに導くために、制御ユニット280にマルチプレクサ284への制御信号を出力させる。
構文:MACUUD Rx,Ry,shift,Rz,ACC
機能:制御ユニット280に、レジスタRxとRyの符号なし値の乗算を実行し、積を「shift」によって指定された量だけ左にシフトするようALU282に命令する制御信号を出力させる。次いで、ALU282はACCによって指定された32ビットを積から抽出する。これらのビットを積から抽出した後、ALU282はこれらの32ビットをRzの後のレジスタ(すなわち、Rz+1)に記憶された値に加算する。これらの値を加算した後、ALU282は和を出力する。ACC=0の場合、ALU282は積の下位32ビットを抽出する。ACC=1の場合、ALU282は積の中位32ビットを抽出する。ACC=2の場合、ALU282は積の上位32ビットを抽出する。この命令はまた、ALU282からの出力をレジスタ286中のRzに導くために、制御ユニット280にマルチプレクサ284への制御信号を出力させる。
構文:MASSS Rx,Ry,shift,Rz,ACC
機能:制御ユニット280に、レジスタRxとRyの符号付き値の乗算を実行し、積を「shift」によって指定された量だけ左にシフトするようALU282に命令する制御信号を出力させる。次いで、ALU282はACCによって指定された32ビットを積から抽出する。ビットを抽出した後、ALU282は、これらのビットをRzの値から減算し、得られたビットを出力する。ACC=0の場合、ALU282は積の下位32ビットを抽出する。ACC=1の場合、ALU282は積の中位32ビットを抽出する。ACC=2の場合、ALU282は積の上位32ビットを抽出する。この命令はまた、ALU282からの出力をレジスタ286中のRzに導くために、制御ユニット280にマルチプレクサ284への制御信号を出力させる。
構文:MASSU Rx,Ry,shift,Rz,ACC
機能:制御ユニット280に、レジスタRxの符号付き値とレジスタRyの符号なし値の乗算を実行し、積を「shift」によって指定された量だけ左にシフトするようALU282に命令する制御信号を出力させる。次いで、ALU282はACCによって指定された32ビットを積から抽出する。ビットを抽出した後、ALU282は、これらのビットをRzの値から減算し、得られたビットを出力する。ACC=0の場合、ALU282は積の下位32ビットを抽出する。ACC=1の場合、ALU282は積の中位32ビットを抽出する。ACC=2の場合、ALU282は積の上位32ビットを抽出する。この命令はまた、ALU282からの出力をレジスタ286中のRzに導くために、制御ユニット280にマルチプレクサ284への制御信号を出力させる。
構文:MASUU Rx,Ry,shift,Rz,ACC
機能:制御ユニット280に、レジスタRxとRyの符号なし値の乗算を実行し、積を「shift」によって指定された量だけ左にシフトするようALU282に命令する制御信号を出力させる。制御信号はまた、ALU282に、ACCによって指定された32ビットを積から抽出させる。ビットを抽出した後、ALU282は、これらのビットをRzの値から減算し、得られた値を出力する。ACC=0の場合、ALU282は積の下位32ビットを抽出する。ACC=1の場合、ALU282は積の中位32ビットを抽出する。ACC=2の場合、ALU282は積の上位32ビットを抽出する。この命令はまた、ALU282からの出力をレジスタ286中のRzに導くために、制御ユニット280にマルチプレクサ284への制御信号を出力させる。
構文:EGCOMP Rx,Ry,shift,Rz,ACC
機能:制御ユニット280に、処理要素34Aが現在処理しているMIDIボイスを定義するボイスパラメータセットの組の制御ワードに基づいて操作を選択させる。EGCOMP命令はまた、制御ユニット280に、選択された動作を実行するようALU280に命令する制御信号を出力させる。第1のモードでは、ALU282は、Rxの値とRyの値を加算し、得られた和を出力する。第2のモードでは、ALU282は、Rxの値とRyの値の符号なし乗算を実行し、積をshiftで指定された量だけ左にシフトし、シフトされた積の最上位32ビットを出力する。第3のモードでは、ALU282は、Rxの値を出力する。第4のモードでは、ALU282は、Ryの値を出力する。EGCOMP命令のコンテキストでは、ACC値0は、制御ユニット280に、現在のMIDIボイスの音量エンベロープの新しい値を計算するようALU282に命令する制御信号を出力させることができる。ACC値1は、制御ユニット280に、現在のMIDIボイスの新しい変調エンベロープを計算するようALU282に命令する制御信号を出力させることができる。EGCOMP命令はまた、ALU282からの出力をレジスタ286中のRzに導くために、制御ユニット280にマルチプレクサ284への制御信号を出力させる。
構文:LOADDATA address,Ry,Rz
機能:RyがRzに等しい場合、addressにおける値をRyにロードする。アドレスが偶数である場合、addressおよび(address+1)における値をそれぞれレジスタRyおよびRzにロードする。addressが奇数である場合、(address−1)およびaddressにおける値をそれぞれRyおよびRzにロードする。
構文:STOREDATA address,Ry,Rz
機能:RyがRzに等しい場合、Ryの値をaddressにストアする。addressが偶数である場合、RyおよびRzにおける値をそれぞれaddressおよび(address+1)にストアする。addressが奇数である場合、RyおよびRzにおける値をそれぞれ(address−1)およびアドレスにストアする。
構文:LOADSUM Rx,Ry
機能:サンプルカウントによって示された総和バッファ40中の値をレジスタRyおよびRzにロードする。LOADSUM命令で使用されるサンプルカウントは、下記のSTORESUM命令で使用されるカウントと同じである。
構文:LOADFIFO fifo_low_high,fifo_signed_unsigned,Rx
機能:WFUインターフェースFIFO298のヘッドから値を削除し、その値をRxにストアする。値がロードされるレジスタ286のうちの1つ、および値がどのようにレジスタにロードされるかは、fifo_low_highフラグおよびfifo_signed_unsignedフラグに依存する。fifo_low_highが0である場合、値はRxの下位16ビットにロードされる。fifo_low_highが1である場合、値はRxの上位16ビットにロードされる。fifo_signed_unsignedが0である場合、値は符号なし数値としてストアされる。fifo_signed_unsignedが1である場合、値は符号付き数値としてストアされ、その値は32ビットに符号付き拡張される。ただし、fifo_low_highフラグが1に設定された場合、fifo_signed_unsignedフラグは効果をもたない。
構文:STOREWFU Rx
機能:Rx中の値をWFU36に送信する。
構文:STORESUM acc_sat_mode,Rx,Ry
機能:レジスタRxおよびRy中の値を総和バッファ40にストアする。さらに、この命令は、第1および第2のループカウンタに絶対的(implicitly)に依存するサンプルカウンタを送信する。このサンプルカウンタは、処理要素34Aによって現在、デジタル波形のどのサンプルが処理されているかを記述する。制御ユニット280は、調整モジュール32からリセットコマンドを受け取ると、この値を0に初期化する。その後、制御ユニット280は、STORESUM命令に遭遇するたびにサンプルカウンタを1ずつインクリメントする。制御ユニット280は、サンプルカウンタを制御信号として総和バッファ40に出力することができる。acc_sat_modeパラメータは、総和バッファ40がサンプル用の値を飽和するかどうかを規定することができる。飽和は、サンプル用の値が、サンプルに対してストアできる最高数を上回るか、または最低数を下回るときに起こることができる。飽和がイネーブルである場合、Rxの値とRyの値を加算することにより、サンプル用の値が、サンプルに対して表し得る最高数を上回るか、または最低数を下回るときには、総和バッファ40は、その値を最高数または最低数に維持することができる。飽和がイネーブルでない場合、総和バッファ40は、Rxの値とRyの値を加算するとき、サンプル用の数をロールオーバすることができる。さらに、acc_sat_modeパラメータは、総和バッファ40が、サンプル用の値の代わりにレジスタRxおよびRy中の値を使用するか、あるいはレジスタRxおよびRy中の値を総和バッファ40中のサンプル用の値に加算するかを決定することができる。以下の表は、acc_sat_modeパラメータの例示的な動作を示す。
構文:LOADLFO lfo_id,lfo_update,Rx
ここで、
{lfo_id}=読み取るLFOのタイプ:2ビット
00:modLfo→ピッチ
01:modLfo→利得
10:modLfo→周波数コーナ
11:vibLfo→ピッチ
{lfo_update}=現在の出力後に更新するパラメータ:2ビット
00:更新なし
01:LFO値のみを更新する
10:LFO位相のみを更新する
11:LFO値とLFO位相の両方を更新する
機能:「lfo_id」によって指定された識別子を有するLFO38からの値をRxにロードする。さらに、この命令は、その値をRxにロードした後、どのパラメータを更新すべきかをLFO38に命令する。
構文:JUMPD address,mask
機能:[mask]とVPS RAMユニット46A中の制御ワードのビット27:24とのビット毎の論理積演算が、0でない値に評価される場合、この命令は、[address]の値をプログラムカウンタ290にロードすることを制御ユニット280に行わせる。制御ワードのビット27は、波形がループされているかどうかを示すことができる。制御ワードのビット26は、波形が8ビット長であるか16ビット長であるかを示すことができる。制御ワードのビット25は、波形がステレオであるかどうかを示す。制御ワードのビット24は、フィルタがイネーブルであるかどうかを示すことができる。制御ユニット280はJUMPD命令に続く命令をすでにロードしているので、プログラムカウンタ290の値の更新は、JUMPD命令に続く命令の後に有効になることができる。
構文:JUMPND address,mask
機能:[mask]とVPS RAMユニット46A中の制御ワードのビット27:24とのビット毎の論理積演算が、0の値に評価される場合、この命令は、[address]の値をプログラムカウンタ290にロードすることを制御ユニット280に行わせる。ビット毎の論理積演算の結果は、その結果が1をまったく含まない場合、偽に評価される。制御ユニット280はJUMPND命令に続く命令をすでにロードしているので、プログラムカウンタ290の値の更新は、JUMPND命令に続く命令の後に有効になることができる。
構文:LOOP1BEGIN count
機能:第1のループの開始を始動する。制御ユニット280は、LOOP1ENDD命令に[count]+1回遭遇すると、プログラムカウンタ290の値を、LOOP1BEGIN命令に続く命令のメモリアドレスに設定する。さらに、制御ユニット280は、第1のループカウンタ304の値を[count]に等しくなるように設定する。例えば、制御ユニット280は、命令「LOOP1BEGIN 119」に遭遇すると、プログラムカウンタ290の値を、120回のLOOP1BEGIN命令に続く命令のメモリアドレスに設定する。
構文:LOOP1ENDD
機能:LOOP1ENDDの後の命令は第1のループ中の最後の命令である。制御ユニット280は、第1のループカウンタ304の値が0よりも大きいかどうかを判断する。第1のループカウンタ304の値が0よりも大きい場合、制御ユニット280は、第1のループカウンタ304の値をデクリメントし、プログラムカウンタ290の値を、LOOP1BEGIN命令に続く命令のメモリアドレスに設定する。そうではなく、第1のループカウンタ304の値が0よりも大きくない場合、制御ユニット280は単にプログラムカウンタ290の値をインクリメントする。
構文:LOOP2BEGIN count
機能:第2のループの開始を始動する。制御ユニット280は、LOOP2ENDD命令に[count]+1回だけ遭遇すると、プログラムカウンタ290の値を、LOOP2BEGIN命令に続く命令のメモリアドレスに設定する。さらに、制御ユニット280は、第2のループカウンタ306の値を[count]に等しくなるように設定する。
構文:LOOP2ENDD
機能:LOOP2ENDDの後の命令は第2のループ中の最後の命令である。制御ユニット280は、第2のループカウンタ306をデクリメントし、第2のループカウンタが0でない場合、プログラムカウンタ290の値をLOOP2BEGIN命令のメモリアドレスに設定する。
構文:CTRL_NOP
機能:制御ユニット280は何も行わない。
構文:EXIT
機能:制御ユニット280は、EXIT命令に遭遇すると、処理要素34AがMIDIフレームの全体的なデジタル波形の生成を完了したことを調整モジュール32に通知するために、調整モジュール32に制御信号を出力する。制御信号を送信した後、調整モジュール32が、プログラムカウンタ290の値を初期値(例えば0)にリセットする信号を制御ユニット280に送信するまで、制御ユニット280は待機する。
(2)1ワードでのロード/ストア命令および第2のロード/ストア命令、
(3)1ワードでの制御命令およびロード/ストア命令、または
(4)1ワードでのALU命令および制御命令。
コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスできる任意の使用可能な媒体とすることができる。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、または、命令もしくはデータ構造の形態の所望のプログラムコードを運搬または記憶するために使用でき、コンピュータによってアクセスできる他の任意の媒体を備えることができる。本明細書では、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、一方、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含むべきである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
(1) 電子楽器デジタルインターフェース(MIDI)フレーム中に存在するMIDIボイスのデジタル波形を生成するために、処理要素を用いて機械コード命令の組を並列に実行することであって、前記機械コード命令の組中の機械コード命令が、MIDIボイスのデジタル波形の生成用にスペシャライズされた命令セットにおいて定義された機械コード命令のインスタンスである、機械コード命令の組を並列に実行することと、
前記MIDIフレームの全体的なデジタル波形を生成するために前記MIDIボイスの前記デジタル波形を統合することと、
前記全体的なデジタル波形を出力することと、
を備える方法。
(2) 機械コード命令の組を実行することは、前記処理要素のうちの1つの中で、複数の機械コード命令を含むワードをメモリユニットから取り出すことを含む、(1)の方法。
(3) 機械コード命令の組を実行することは、前記処理要素のうちの前記1つを用いて、前記ワード中の前記機械コード命令を並列に実行することをさらに含む、(2)の方法。
(4) 機械コード命令の組を実行することは、MIDIボイスのベース波形を得るために、前記処理要素中の制御ユニットを用いて、波形フェッチユニットに制御信号を出力することを含む、(1)の方法。
(5) 機械コード命令の組を実行することは、前記MIDIフレームの前記全体的なデジタル波形を生成するために、前記処理要素中の制御ユニットを用いて、総和バッファに値を記憶して他の値と統合するための制御信号を前記総和バッファに出力することを含む、(1)の方法。
(6) 機械コード命令の組を実行することは、
前記処理要素中の制御ユニットを用いて、算術動作を行うよう前記処理要素中の論理演算ユニット(ALU)に命令するための制御信号を前記ALUに出力すること
を備え、
前記ALUは、MIDIボイスのデジタル波形を生成するために特殊なユーティリティを有する算術動作の実行用にスペシャライズされている、
(1)の方法。
(7) 制御信号を出力することは、前記ALUに、レジスタの組中のレジスタ中の符号なし値と前記レジスタの組中のレジスタ中の符号なし値とを乗算することによって積を計算させ、シフトされた積を作るために前記積をシフトさせ、前記シフトされた積のビットのうちのいくつかを抽出させ、前記抽出されたビットが前記レジスタの組中のレジスタ中に記憶された数よりも小さい数を表すかどうかを判断させる制御信号を出力することを含む、(6)の方法。
(8) 機械コード命令の組を実行することは、前記処理要素がデジタル波形を生成しているMIDIボイスを定義するボイスパラメータセットのパラメータ中のビットの組とマスクパラメータとのビット毎の論理積演算から0でない値が得られたとき、前記処理要素のうちの1つのプログラムカウンタに機械コード命令のアドレス値をロードすることを含む、(1)の方法。
(9) 機械コード命令の組を実行することは、前記処理要素のうちの1つにおける制御ユニットを用いて、前記処理要素がMIDIボイスのデジタル波形の生成を終了したことを調整モジュールに示すための制御信号を前記調整モジュールに出力することを含む、(1)の方法。
(10) 前記方法は、デジタル信号プロセッサ(DSP)を用いて、前記機械コード命令の組を前記処理要素のプログラムメモリユニットにロードすることをさらに備える、(1)の方法。
(11) 前記方法は、前記DSPを用いて、前記MIDIフレームの前記全体的なデジタル波形を含む連続デジタル波形を出力することをさらに備え、
前記MIDIフレームの前記デジタル波形に基づいてサウンドを出力することは、前記DSPによって出力された前記連続デジタル波形に基づいてサウンドを出力することを含む、
(11)の方法。
(12) 前記方法は、
汎用プロセッサを使用して前記MIDIファイルを解析し、前記MIDIファイルに関連するMIDIイベントをスケジュールすることと、
連続デジタル波形を出力するためにデジタル信号プロセッサ(DSP)を使用して前記MIDIイベントを処理することと、
をさらに備え、
ハードウェアユニットが前記機械コード命令の組を実行する、
(1)の方法。
(13) 前記デジタル波形に基づいてサウンドを出力することは、
前記全体的なデジタル波形をアナログ出力に変換することと、
前記アナログ出力をサウンドとして出力することと、
を含む、(1)の方法。
(14) 前記方法は、ボイスインジケータのリンクリストを生成することをさらに備え、前記リンクリスト中の前記ボイスインジケータの各々は、前記MIDIボイスを定義するボイスパラメータセットを記憶するメモリ位置を指定することによってMIDIフレームのMIDIボイスを示し、前記リンクリスト中の前記ボイスインジケータによって示された前記MIDIボイスは、前記MIDIフレーム中で最大の音響的重要性を有するMIDIボイスであり、
前記リンクリストは、現在のMIDIボイスを示すボイスインジケータを含む、
(1)の方法。
(15) 機械コード命令の組を実行することは、
前記機械コード命令の組のうちの1つの中の機械コード命令を実行すること
を備え、
前記機械コード命令を実行することは、
制御ユニットを用いて前記機械コード命令を読み込むことと、
現在のMIDIボイスを定義するボイスパラメータの組に基づいて動作を選択することと、
前記選択された動作を行わせる制御信号を出力することと、
を備える、
(1)の方法。
(16) 動作を選択することは、前記ボイスパラメータの組中の制御パラメータ中のビットの値を識別することを含む、(15)の方法。
(17) 動作を選択することは、エンベロープ生成動作を選択することを含む、(15)の方法。
(18) 前記機械コード命令を実行することは、モジュールにパラメータ値を供給することをさらに備え、
前記モジュールは、前記動作を選択し、前記選択された動作を行う、
(17)の方法。
(19) モジュールにパラメータ値を供給することは、低周波発振器(LFO)モジュールに前記パラメータ値を供給することを含み、
前記命令を実行することは、
前記LFOモジュール中のレジスタからの値をローカルレジスタに記憶することと、
前記LFOモジュール中の前記レジスタの値を更新することと、
をさらに備える、
(18)の方法。
(20) 機械コード命令の組中の機械コード命令が、MIDIボイスのデジタル波形の生成用にスペシャライズされた命令セットにおいて定義された機械コード命令のインスタンスである、前記機械コード命令の組を記憶するプログラムメモリユニットの組と、
MIDIフレーム中のMIDIボイスのデジタル波形を生成するために前記機械コード命令の組を並列に実行する処理要素の組と、
前記MIDIフレームの全体的なデジタル波形を生成するために前記MIDIボイスの前記デジタル波形を統合する総和バッファと、
を備える装置。
(21) 前記処理要素は、ワードを読み込むことによって前記プログラムメモリユニットから命令を読み込む制御ユニットを備え、前記ワードの各々が複数の命令を含む、(20)の装置。
(22) 前記処理要素のうちの1つは、前記ワードのうちの1つに含まれる前記命令を並列に実行する、(21)の装置。
(23) 前記装置は、
MIDIボイスのベース波形の組を含むメモリユニットと、
前記メモリユニットから前記ベース波形の各々を得る波形フェッチユニットと
をさらに備え、
前記処理要素の各々は、前記命令のうちの1つに遭遇したときにMIDIボイスのベース波形を得るための制御信号を前記波形フェッチユニットに出力する制御ユニットを備える、
(20)の装置。
(24) 前記処理要素の各々は、前記総和バッファに値を記憶するための制御信号を前記総和バッファに出力する制御ユニットを備え、
前記総和バッファは、前記MIDIフレームの前記全体的なデジタル波形を生成するために前記値を統合する、
(20)の装置。
(25) 前記処理要素の各々は、
MIDIボイスのデジタル波形を生成するために特殊なユーティリティを有する算術動作の実行用にスペシャライズされた論理演算ユニット(ALU)と、
算術動作を行うよう前記ALUに命令するための制御信号を前記ALUに出力する制御ユニットと、
を備える、(20)の装置。
(26) 前記処理要素の各々は、レジスタの組をさらに備え、
前記制御ユニットは、前記ALUに、前記レジスタのうちの1つにおける符号なし値と前記レジスタのうちの1つにおける符号なし値とを乗算することによって積を計算させ、シフトされた積を作るために前記積をシフトさせ、前記シフトされた積のビットのうちのいくつかを抽出させ、次いで前記抽出されたビットが前記レジスタのうちの1つに記憶された数よりも小さい数を表すかどうかを判断させる制御信号を出力する、
(25)の装置。
(27) 前記処理要素の各々は、
前記プログラムメモリユニットのうちの1つにおける次の命令のメモリアドレスを含むプログラムカウンタと、
前記処理要素がデジタル波形を生成しているMIDIボイスを定義するボイスパラメータセットのパラメータ中のビットの組とマスクパラメータとのビット毎の論理積演算から0でない値が得られたとき、前記プログラムカウンタに機械コード命令のアドレス値をロードする制御ユニットと、
をさらに備える、(20)の装置。
(28) 前記装置は、前記MIDIフレーム中の前記MIDIボイスを前記処理要素の各々に割り当てる調整モジュールをさらに備え、
前記処理要素の各々は、前記処理要素がMIDIボイスのデジタル波形の生成を終了したことを前記調整モジュールに示すための制御信号を前記調整モジュールに出力する制御ユニットをさらに備える、
(20)の装置。
(29) 前記装置は、前記機械コード命令の組を前記プログラムメモリユニットにロードするデジタル信号プロセッサ(DSP)をさらに備える、(20)の装置。
(30) 前記DSPは、前記MIDIフレームの前記全体的なデジタル波形を含む連続デジタル波形を出力し、
スピーカが前記連続デジタル波形に基づいてサウンドを出力する、
(29)の装置。
(31) 前記装置は、
MIDIフレーム中のMIDIボイスの組のデジタル波形を生成するMIDIハードウェアユニットであって、前記処理要素が前記MIDIハードウェアユニットの構成要素である、MIDIハードウェアユニットと、
MIDIファイルを解析し、前記MIDIファイルに関連するMIDIイベントをスケジュールする汎用プロセッサと、
前記MIDIイベントに基づいて連続デジタル波形を出力するために前記MIDIイベントを処理するDSPと、
をさらに備える、(20)の装置。
(32) 前記装置は、
前記連続デジタル波形をアナログオーディオ信号に変換するデジタルアナログ変換器と、
サウンドを出力するためのスピーカを駆動するために前記アナログオーディオ信号を使用する駆動回路と、
をさらに備える、(31)の装置。
(33) 前記DSPは、
ボイスインジケータのリンクリストを生成するリストジェネレータモジュールであって、前記リンクリスト中の前記ボイスインジケータの各々が、前記MIDIボイスを定義するボイスパラメータセットを記憶するメモリ位置を指定することによってMIDIフレームのMIDIボイスを示す、リストジェネレータモジュール
を備え、
前記リンクリスト中の前記ボイスインジケータによって示された前記MIDIボイスは、前記MIDIフレーム中で最大の音響的重要性を有するMIDIボイスであり、
前記リンクリストは、現在のMIDIボイスを示すボイスインジケータを含み、
前記処理要素が、前記リンクリスト中の前記ボイスインジケータによって示されたMIDIボイスのデジタル波形を生成する、
(32)の装置。
(34) 前記処理ユニットの各々は、制御ユニットを備え、
前記命令の少なくとも1つは、現在のMIDIボイスを定義するボイスパラメータの組に基づいて動作を選択するための制御信号を出力することと、前記選択された動作を行わせる信号を出力することとを前記制御ユニットに行わせる、
(20)の装置。
(35) 前記処理要素は、数学的動作を行う論理演算ユニット(ALU)をさらに備え、
前記制御ユニットは、前記動作を選択し、
前記制御ユニットは、前記選択された動作を行うよう前記ALUに命令する制御信号を前記ALUに出力する、
(34)の装置。
(36) 前記制御ユニットは、エンベロープ生成計算命令を読み取ったとき、前記動作を選択する、(35)の装置。
(37) 前記装置は、三角デジタル波形を生成する低周波発振器(LFO)をさらに備え、
前記LFOは、前記動作を選択し、
前記LFOは、前記選択された動作を行う、
(34)の装置。
(38) 前記処理要素は、レジスタの組を備え、
前記制御ユニットは、前記三角波形のサンプルを前記レジスタのうちの1つに記憶し、前記LFOによって生成された前記三角波形を更新するための制御信号を前記LFOに出力する、
(37)の装置。
(39) 前記装置は、前記デジタル波形に基づいてサウンドを出力する1つまたは複数のスピーカをさらに備える、(20)の装置。
(40) プログラマブルプロセッサに、
MIDIフレーム中に存在するMIDIボイスのデジタル波形を生成するために、処理要素を用いて機械コード命令の組を並列に実行することを処理要素の組に行わせることと、
ここで、前記機械コード命令の組中の機械コード命令は、MIDIボイスのデジタル波形の生成用にスペシャライズされた命令セットにおいて定義された機械コード命令のインスタンスであり、
前記MIDIフレームの全体的なデジタル波形を生成するために前記MIDIボイスの前記デジタル波形を統合することを総和バッファに行わせることと、
前記全体的なデジタル波形を出力することを前記総和バッファに行わせることと、
を行わせる命令を備えるコンピュータ可読媒体。
(41) 機械コード命令の組を並列に実行することを処理要素の組に行わせることを前記プログラマブルプロセッサに行わせる前記命令は、MIDIボイスのベース波形を得るための制御信号を波形フェッチユニットに出力することを前記処理要素中の制御ユニットに行わせることを前記プログラマブルプロセッサに行わせる、(40)のコンピュータ可読媒体。
(42) 機械コード命令の組を並列に実行することを処理要素の組に行わせることを前記プログラマブルプロセッサに行わせる前記命令は、算術動作を行うよう前記処理要素中の論理演算ユニット(ALU)に命令するための制御信号を前記ALUに出力することを前記処理要素中の制御ユニットに行わせることを前記プログラマブルプロセッサに行わせ、前記ALUは、MIDIボイスのデジタル波形を生成するために特殊なユーティリティを有する算術動作の実行用にスペシャライズされている、(40)のコンピュータ可読媒体。
(43) 機械コード命令の組中の機械コード命令が、MIDIボイスのデジタル波形の生成用にスペシャライズされた命令セットにおける機械コード命令のインスタンスである、前記機械コード命令の組を記憶するための手段と、
MIDIボイスのデジタル波形を生成するために前記機械コード命令の組を並列に実行するための手段と、
前記MIDIフレームの全体的なデジタル波形を生成するために前記MIDIボイスの前記デジタル波形を統合するための手段と、
前記全体的なデジタル波形を出力するための手段と、
を備える装置。
(44) 前記装置は、
MIDIボイスのベース波形の組を収容するための手段と、
前記ベース波形の組を収容するための前記手段から前記ベース波形の各々を得るための手段と、
をさらに備え、
前記処理要素の各々は、前記命令のうちの1つに遭遇したときにMIDIボイスのベース波形を得るための制御信号を、前記ベース波形の各々を得るための前記手段に出力する手段を備える、
(43)の装置。
(45) 前記機械コード命令の組を実行するための前記手段は、
MIDIボイスのデジタル波形を生成するために特殊なユーティリティを有する算術動作を行うための手段と、
算術動作を行うよう前記算術動作を行うための手段に命令するための制御信号を、前記算術動作を行うための手段に出力するための手段と、
を備える、(43)の装置。
Claims (45)
- 電子楽器デジタルインターフェース(MIDI)フレーム中に存在するMIDIボイスのデジタル波形を生成するために、処理要素を用いて機械コード命令の組を並列に実行することであって、前記機械コード命令の組中の機械コード命令が、MIDIボイスのデジタル波形の生成用にスペシャライズされた命令セットにおいて定義された機械コード命令のインスタンスであり、前記ペシャライズされた命令セットにおいて定義された機械コード命令が汎用命令セット中または複合命令セットアーキテクチャ命令セット中に見つからないプログラム命令を含む、機械コード命令の組を並列に実行することと、
前記MIDIフレームの全体的なデジタル波形を生成するために前記MIDIボイスの前記デジタル波形を統合することと、
前記全体的なデジタル波形を出力することと、
を備える方法。 - 機械コード命令の組を実行することは、前記処理要素のうちの1つの中で、複数の機械コード命令を含むワードをメモリユニットから取り出すことを含む、請求項1の方法。
- 機械コード命令の組を実行することは、前記処理要素のうちの前記1つを用いて、前記ワード中の前記機械コード命令を並列に実行することをさらに含む、請求項2の方法。
- 機械コード命令の組を実行することは、MIDIボイスのベース波形を得るために、前記処理要素中の制御ユニットを用いて、波形フェッチユニットに制御信号を出力することを含む、請求項1の方法。
- 機械コード命令の組を実行することは、前記MIDIフレームの前記全体的なデジタル波形を生成するために、前記処理要素中の制御ユニットを用いて、総和バッファに値を記憶して他の値と統合するための制御信号を前記総和バッファに出力することを含む、請求項1の方法。
- 機械コード命令の組を実行することは、
前記処理要素中の制御ユニットを用いて、算術動作を行うよう前記処理要素中の論理演算ユニット(ALU)に命令するための制御信号を前記ALUに出力すること
を備え、
前記ALUは、MIDIボイスのデジタル波形を生成するために特殊なユーティリティを有する算術動作の実行用にスペシャライズされている、
請求項1の方法。 - 制御信号を出力することは、前記ALUに、レジスタの組中のレジスタ中の符号なし値と前記レジスタの組中のレジスタ中の符号なし値とを乗算することによって積を計算させ、シフトされた積を作るために前記積をシフトさせ、前記シフトされた積のビットのうちのいくつかを抽出させ、前記抽出されたビットが前記レジスタの組中のレジスタ中に記憶された数よりも小さい数を表すかどうかを判断させる制御信号を出力することを含む、請求項6の方法。
- 機械コード命令の組を実行することは、前記処理要素がデジタル波形を生成しているMIDIボイスを定義するボイスパラメータセットのパラメータ中のビットの組とマスクパラメータとのビット毎の論理積演算から0でない値が得られたとき、前記処理要素のうちの1つのプログラムカウンタに機械コード命令のアドレス値をロードすることを含む、請求項1の方法。
- 機械コード命令の組を実行することは、前記処理要素のうちの1つにおける制御ユニットを用いて、前記処理要素がMIDIボイスのデジタル波形の生成を終了したことを調整モジュールに示すための制御信号を前記調整モジュールに出力することを含む、請求項1の方法。
- 前記方法は、デジタル信号プロセッサ(DSP)を用いて、前記機械コード命令の組を前記処理要素のプログラムメモリユニットにロードすることをさらに備える、請求項1の方法。
- 前記方法は、前記DSPを用いて、前記MIDIフレームの前記全体的なデジタル波形を含む連続デジタル波形を出力することをさらに備え、
前記全体的なデジタル波形を出力することは、前記DSPによって出力された前記連続デジタル波形に基づいてサウンドを出力することを含む、
請求項10の方法。 - 前記方法は、
汎用プロセッサを使用して前記MIDIファイルを解析し、前記MIDIファイルに関連するMIDIイベントをスケジュールすることと、
連続デジタル波形を出力するためにデジタル信号プロセッサ(DSP)を使用して前記MIDIイベントを処理することと、
をさらに備え、
ハードウェアユニットが前記機械コード命令の組を実行する、
請求項1の方法。 - 前記全体的なデジタル波形を出力することは、
前記全体的なデジタル波形をアナログ出力に変換することと、
前記アナログ出力をサウンドとして出力することと、
を含む、請求項1の方法。 - 前記方法は、ボイスインジケータのリンクリストを生成することをさらに備え、前記リンクリスト中の前記ボイスインジケータの各々は、前記MIDIボイスを定義するボイスパラメータセットを記憶するメモリ位置を指定することによってMIDIフレームのMIDIボイスを示し、前記リンクリスト中の前記ボイスインジケータによって示された前記MIDIボイスは、前記MIDIフレーム中で最大の音響的重要性を有するMIDIボイスであり、
前記リンクリストは、現在のMIDIボイスを示すボイスインジケータを含む、
請求項1の方法。 - 機械コード命令の組を実行することは、
前記機械コード命令の組のうちの1つの中の機械コード命令を実行すること
を備え、
前記機械コード命令を実行することは、
制御ユニットを用いて前記機械コード命令を読み込むことと、
現在のMIDIボイスを定義するボイスパラメータの組に基づいて動作を選択することと、
前記選択された動作を行わせる制御信号を出力することと、
を備える、
請求項1の方法。 - 動作を選択することは、前記ボイスパラメータの組中の制御パラメータ中のビットの値を識別することを含む、請求項15の方法。
- 動作を選択することは、エンベロープ生成動作を選択することを含む、請求項15の方法。
- 前記機械コード命令を実行することは、モジュールにパラメータ値を供給することをさらに備え、
前記モジュールは、前記動作を選択し、前記選択された動作を行う、
請求項17の方法。 - モジュールにパラメータ値を供給することは、低周波発振器(LFO)モジュールに前記パラメータ値を供給することを含み、
前記命令を実行することは、
前記LFOモジュール中のレジスタからの値をローカルレジスタに記憶することと、
前記LFOモジュール中の前記レジスタの値を更新することと、
をさらに備える、
請求項18の方法。 - 機械コード命令の組中の機械コード命令が、MIDIボイスのデジタル波形の生成用にスペシャライズされた命令セットにおいて定義された機械コード命令のインスタンスであり、前記ペシャライズされた命令セットにおいて定義された機械コード命令が汎用命令セット中または複合命令セットアーキテクチャ命令セット中に見つからないプログラム命令を含む、前記機械コード命令の組を記憶するプログラムメモリユニットの組と、
MIDIフレーム中のMIDIボイスのデジタル波形を生成するために前記機械コード命令の組を並列に実行する処理要素の組と、
前記MIDIフレームの全体的なデジタル波形を生成するために前記MIDIボイスの前記デジタル波形を統合する総和バッファと、
を備える装置。 - 前記処理要素は、ワードを読み込むことによって前記プログラムメモリユニットから命令を読み込む制御ユニットを備え、前記ワードの各々が複数の命令を含む、請求項20の装置。
- 前記処理要素のうちの1つは、前記ワードのうちの1つに含まれる前記命令を並列に実行する、請求項21の装置。
- 前記装置は、
MIDIボイスのベース波形の組を含むメモリユニットと、
前記メモリユニットから前記ベース波形の各々を得る波形フェッチユニットと
をさらに備え、
前記処理要素の各々は、前記命令のうちの1つに遭遇したときにMIDIボイスのベース波形を得るための制御信号を前記波形フェッチユニットに出力する制御ユニットを備える、
請求項20の装置。 - 前記処理要素の各々は、前記総和バッファに値を記憶するための制御信号を前記総和バッファに出力する制御ユニットを備え、
前記総和バッファは、前記MIDIフレームの前記全体的なデジタル波形を生成するために前記値を統合する、
請求項20の装置。 - 前記処理要素の各々は、
MIDIボイスのデジタル波形を生成するために特殊なユーティリティを有する算術動作の実行用にスペシャライズされた論理演算ユニット(ALU)と、
算術動作を行うよう前記ALUに命令するための制御信号を前記ALUに出力する制御ユニットと、
を備える、請求項20の装置。 - 前記処理要素の各々は、レジスタの組をさらに備え、
前記制御ユニットは、前記ALUに、前記レジスタのうちの1つにおける符号なし値と前記レジスタのうちの1つにおける符号なし値とを乗算することによって積を計算させ、シフトされた積を作るために前記積をシフトさせ、前記シフトされた積のビットのうちのいくつかを抽出させ、次いで前記抽出されたビットが前記レジスタのうちの1つに記憶された数よりも小さい数を表すかどうかを判断させる制御信号を出力する、
請求項25の装置。 - 前記処理要素の各々は、
前記プログラムメモリユニットのうちの1つにおける次の命令のメモリアドレスを含むプログラムカウンタと、
前記処理要素がデジタル波形を生成しているMIDIボイスを定義するボイスパラメータセットのパラメータ中のビットの組とマスクパラメータとのビット毎の論理積演算から0でない値が得られたとき、前記プログラムカウンタに機械コード命令のアドレス値をロードする制御ユニットと、
をさらに備える、請求項20の装置。 - 前記装置は、前記MIDIフレーム中の前記MIDIボイスを前記処理要素の各々に割り当てる調整モジュールをさらに備え、
前記処理要素の各々は、前記処理要素がMIDIボイスのデジタル波形の生成を終了したことを前記調整モジュールに示すための制御信号を前記調整モジュールに出力する制御ユニットをさらに備える、
請求項20の装置。 - 前記装置は、前記機械コード命令の組を前記プログラムメモリユニットにロードするデジタル信号プロセッサ(DSP)をさらに備える、請求項20の装置。
- 前記DSPは、前記MIDIフレームの前記全体的なデジタル波形を含む連続デジタル波形を出力し、
スピーカが前記連続デジタル波形に基づいてサウンドを出力する、
請求項29の装置。 - 前記装置は、
MIDIフレーム中のMIDIボイスの組のデジタル波形を生成するMIDIハードウェアユニットであって、前記処理要素が前記MIDIハードウェアユニットの構成要素である、MIDIハードウェアユニットと、
MIDIファイルを解析し、前記MIDIファイルに関連するMIDIイベントをスケジュールする汎用プロセッサと、
前記MIDIイベントに基づいて連続デジタル波形を出力するために前記MIDIイベントを処理するDSPと、
をさらに備える、請求項20の装置。 - 前記装置は、
前記連続デジタル波形をアナログオーディオ信号に変換するデジタルアナログ変換器と、
サウンドを出力するためのスピーカを駆動するために前記アナログオーディオ信号を使用する駆動回路と、
をさらに備える、請求項31の装置。 - 前記DSPは、
ボイスインジケータのリンクリストを生成するリストジェネレータモジュールであって、前記リンクリスト中の前記ボイスインジケータの各々が、前記MIDIボイスを定義するボイスパラメータセットを記憶するメモリ位置を指定することによってMIDIフレームのMIDIボイスを示す、リストジェネレータモジュール
を備え、
前記リンクリスト中の前記ボイスインジケータによって示された前記MIDIボイスは、前記MIDIフレーム中で最大の音響的重要性を有するMIDIボイスであり、
前記リンクリストは、現在のMIDIボイスを示すボイスインジケータを含み、
前記処理要素が、前記リンクリスト中の前記ボイスインジケータによって示されたMIDIボイスのデジタル波形を生成する、
請求項32の装置。 - 前記処理ユニットの各々は、制御ユニットを備え、
前記命令の少なくとも1つは、現在のMIDIボイスを定義するボイスパラメータの組に基づいて動作を選択するための制御信号を出力することと、前記選択された動作を行わせる信号を出力することとを前記制御ユニットに行わせる、
請求項20の装置。 - 前記処理要素は、数学的動作を行う論理演算ユニット(ALU)をさらに備え、
前記制御ユニットは、前記動作を選択し、
前記制御ユニットは、前記選択された動作を行うよう前記ALUに命令する制御信号を前記ALUに出力する、
請求項34の装置。 - 前記制御ユニットは、エンベロープ生成計算命令を読み取ったとき、前記動作を選択する、請求項35の装置。
- 前記装置は、三角デジタル波形を生成する低周波発振器(LFO)をさらに備え、
前記LFOは、前記動作を選択し、
前記LFOは、前記選択された動作を行う、
請求項34の装置。 - 前記処理要素は、レジスタの組を備え、
前記制御ユニットは、前記三角波形のサンプルを前記レジスタのうちの1つに記憶し、前記LFOによって生成された前記三角波形を更新するための制御信号を前記LFOに出力する、
請求項37の装置。 - 前記装置は、前記デジタル波形に基づいてサウンドを出力する1つまたは複数のスピーカをさらに備える、請求項20の装置。
- プログラマブルプロセッサに、
MIDIフレーム中に存在するMIDIボイスのデジタル波形を生成するために、処理要素を用いて機械コード命令の組を並列に実行することを処理要素の組に行わせることと、
ここで、前記機械コード命令の組中の機械コード命令は、MIDIボイスのデジタル波形の生成用にスペシャライズされた命令セットにおいて定義された機械コード命令のインスタンスであり、
前記ペシャライズされた命令セットにおいて定義された機械コード命令は、汎用命令セット中または複合命令セットアーキテクチャ命令セット中に見つからないプログラム命令を含み、
前記MIDIフレームの全体的なデジタル波形を生成するために前記MIDIボイスの前記デジタル波形を統合することを総和バッファに行わせることと、
前記全体的なデジタル波形を出力することを前記総和バッファに行わせることと、
を行わせる命令を備えるコンピュータ可読媒体。 - 機械コード命令の組を並列に実行することを処理要素の組に行わせることを前記プログラマブルプロセッサに行わせる前記命令は、MIDIボイスのベース波形を得るための制御信号を波形フェッチユニットに出力することを前記処理要素中の制御ユニットに行わせることを前記プログラマブルプロセッサに行わせる、請求項40のコンピュータ可読媒体。
- 機械コード命令の組を並列に実行することを処理要素の組に行わせることを前記プログラマブルプロセッサに行わせる前記命令は、算術動作を行うよう前記処理要素中の論理演算ユニット(ALU)に命令するための制御信号を前記ALUに出力することを前記処理要素中の制御ユニットに行わせることを前記プログラマブルプロセッサに行わせ、前記ALUは、MIDIボイスのデジタル波形を生成するために特殊なユーティリティを有する算術動作の実行用にスペシャライズされている、請求項40のコンピュータ可読媒体。
- 機械コード命令の組中の機械コード命令が、MIDIボイスのデジタル波形の生成用にスペシャライズされた命令セットにおける機械コード命令のインスタンスであり、前記ペシャライズされた命令セットにおいて定義された機械コード命令が汎用命令セット中または複合命令セットアーキテクチャ命令セット中に見つからないプログラム命令を含む、前記機械コード命令の組を記憶するための手段と、
MIDIボイスのデジタル波形を生成するために前記機械コード命令の組を並列に実行するための手段と、
前記MIDIフレームの全体的なデジタル波形を生成するために前記MIDIボイスの前記デジタル波形を統合するための手段と、
前記全体的なデジタル波形を出力するための手段と、
を備える装置。 - 前記装置は、
MIDIボイスのベース波形の組を収容するための手段と、
前記ベース波形の組を収容するための前記手段から前記ベース波形の各々を得るための手段と、
をさらに備え、
前記実行するための手段の各々は、前記ベース波形の各々を得るための前記手段に、前記命令のうちの1つに遭遇したときにMIDIボイスのベース波形を得るための制御信号を出力する手段を備える、
請求項43の装置。 - 前記機械コード命令の組を実行するための前記手段は、
MIDIボイスのデジタル波形を生成するために特殊なユーティリティを有する算術動作を行うための手段と、
算術動作を行うよう前記算術動作を行うための手段に命令するための制御信号を、前記算術動作を行うための手段に出力するための手段と、
を備える、請求項43の装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US89640207P | 2007-03-22 | 2007-03-22 | |
US60/896,402 | 2007-03-22 | ||
US11/780,040 US7663052B2 (en) | 2007-03-22 | 2007-07-19 | Musical instrument digital interface hardware instruction set |
US11/780,040 | 2007-07-19 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010501070A Division JP2010522359A (ja) | 2007-03-22 | 2008-03-17 | 電子楽器デジタルインターフェースハードウェア命令セット |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013152477A true JP2013152477A (ja) | 2013-08-08 |
Family
ID=39775902
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010501070A Pending JP2010522359A (ja) | 2007-03-22 | 2008-03-17 | 電子楽器デジタルインターフェースハードウェア命令セット |
JP2013044659A Pending JP2013152477A (ja) | 2007-03-22 | 2013-03-06 | 電子楽器デジタルインターフェースハードウェア命令セット |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010501070A Pending JP2010522359A (ja) | 2007-03-22 | 2008-03-17 | 電子楽器デジタルインターフェースハードウェア命令セット |
Country Status (7)
Country | Link |
---|---|
US (1) | US7663052B2 (ja) |
EP (1) | EP2126896A2 (ja) |
JP (2) | JP2010522359A (ja) |
KR (1) | KR101120968B1 (ja) |
CN (1) | CN101641732B (ja) |
TW (1) | TWI361425B (ja) |
WO (1) | WO2008118669A2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8295957B2 (en) * | 2007-12-05 | 2012-10-23 | Disney Enterprises, Inc. | Method and system providing a customized audio presentation tailored to a predetermined event sequence |
CN109119053B (zh) * | 2018-08-08 | 2021-07-02 | 瓦纳卡(北京)科技有限公司 | 一种信号传输方法、装置、电子设备以及计算机可读存储介质 |
CN110351927A (zh) * | 2019-07-16 | 2019-10-18 | 浙江创意声光电科技有限公司 | 灯光秀控制方法及系统 |
JP2021066199A (ja) * | 2019-10-17 | 2021-04-30 | 本田技研工業株式会社 | 制御装置 |
US11317203B2 (en) * | 2020-08-04 | 2022-04-26 | Nuvoton Technology Corporation | System for preventing distortion of original input signal |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05274143A (ja) * | 1992-03-30 | 1993-10-22 | Toshiba Corp | 複合条件処理方式 |
JPH06301380A (ja) * | 1993-04-12 | 1994-10-28 | Kawai Musical Instr Mfg Co Ltd | 電子楽器 |
JPH07191671A (ja) * | 1993-12-27 | 1995-07-28 | Yamaha Corp | 楽音信号発生装置 |
JPH0922287A (ja) * | 1995-07-05 | 1997-01-21 | Yamaha Corp | 楽音波形生成方法 |
JP2000089759A (ja) * | 1995-05-19 | 2000-03-31 | Yamaha Corp | 音生成方法 |
JP2003223316A (ja) * | 2002-01-31 | 2003-08-08 | Matsushita Electric Ind Co Ltd | 演算処理装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69514629T2 (de) | 1994-11-29 | 2000-09-07 | Yamaha Corp., Hamamatsu | Automatische Vorrichtung zum Abspielen von Musik mit Ersetzung eines fehlenden Musters durch ein verfügbares Muster |
EP0722162B1 (en) | 1995-01-13 | 2001-12-05 | Yamaha Corporation | Digital signal processing device for sound signal processing |
US6326537B1 (en) | 1995-09-29 | 2001-12-04 | Yamaha Corporation | Method and apparatus for generating musical tone waveforms by user input of sample waveform frequency |
US6209096B1 (en) * | 1996-07-02 | 2001-03-27 | Yamaha Corporation | Method and device for storing main information with associated additional information incorporated therein |
JP3285137B2 (ja) * | 1996-08-05 | 2002-05-27 | ヤマハ株式会社 | 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体 |
EP1026661B1 (en) | 1996-08-05 | 2005-04-13 | Yamaha Corporation | Software sound source |
US6034314A (en) | 1996-08-29 | 2000-03-07 | Yamaha Corporation | Automatic performance data conversion system |
US6055619A (en) | 1997-02-07 | 2000-04-25 | Cirrus Logic, Inc. | Circuits, system, and methods for processing multiple data streams |
US5913258A (en) | 1997-03-11 | 1999-06-15 | Yamaha Corporation | Music tone generating method by waveform synthesis with advance parameter computation |
US6610917B2 (en) * | 1998-05-15 | 2003-08-26 | Lester F. Ludwig | Activity indication, external source, and processing loop provisions for driven vibrating-element environments |
US6740804B2 (en) | 2001-02-05 | 2004-05-25 | Yamaha Corporation | Waveform generating method, performance data processing method, waveform selection apparatus, waveform data recording apparatus, and waveform data recording and reproducing apparatus |
US7126051B2 (en) * | 2001-03-05 | 2006-10-24 | Microsoft Corporation | Audio wave data playback in an audio generation system |
CA2411622A1 (en) | 2002-11-12 | 2004-05-12 | Catena Networks Canada Inc. | Silent ringing with reduced device sizes |
US7112737B2 (en) * | 2003-12-31 | 2006-09-26 | Immersion Corporation | System and method for providing a haptic effect to a musical instrument |
JP4315110B2 (ja) * | 2005-02-16 | 2009-08-19 | ヤマハ株式会社 | 電子音楽装置及びプログラム |
-
2007
- 2007-07-19 US US11/780,040 patent/US7663052B2/en not_active Expired - Fee Related
-
2008
- 2008-03-17 EP EP08714258A patent/EP2126896A2/en not_active Withdrawn
- 2008-03-17 CN CN2008800088049A patent/CN101641732B/zh not_active Expired - Fee Related
- 2008-03-17 TW TW097109346A patent/TWI361425B/zh not_active IP Right Cessation
- 2008-03-17 KR KR1020097022039A patent/KR101120968B1/ko not_active IP Right Cessation
- 2008-03-17 WO PCT/US2008/057201 patent/WO2008118669A2/en active Application Filing
- 2008-03-17 JP JP2010501070A patent/JP2010522359A/ja active Pending
-
2013
- 2013-03-06 JP JP2013044659A patent/JP2013152477A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05274143A (ja) * | 1992-03-30 | 1993-10-22 | Toshiba Corp | 複合条件処理方式 |
JPH06301380A (ja) * | 1993-04-12 | 1994-10-28 | Kawai Musical Instr Mfg Co Ltd | 電子楽器 |
JPH07191671A (ja) * | 1993-12-27 | 1995-07-28 | Yamaha Corp | 楽音信号発生装置 |
JP2000089759A (ja) * | 1995-05-19 | 2000-03-31 | Yamaha Corp | 音生成方法 |
JPH0922287A (ja) * | 1995-07-05 | 1997-01-21 | Yamaha Corp | 楽音波形生成方法 |
JP2003223316A (ja) * | 2002-01-31 | 2003-08-08 | Matsushita Electric Ind Co Ltd | 演算処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US20080235494A1 (en) | 2008-09-25 |
EP2126896A2 (en) | 2009-12-02 |
WO2008118669A2 (en) | 2008-10-02 |
KR101120968B1 (ko) | 2012-03-13 |
CN101641732A (zh) | 2010-02-03 |
KR20090130864A (ko) | 2009-12-24 |
WO2008118669A3 (en) | 2009-04-09 |
US7663052B2 (en) | 2010-02-16 |
JP2010522359A (ja) | 2010-07-01 |
TW200844977A (en) | 2008-11-16 |
CN101641732B (zh) | 2013-02-13 |
TWI361425B (en) | 2012-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5134078B2 (ja) | 楽器ディジタルインタフェースハードウエア命令 | |
US7069058B2 (en) | Musical composition reproducing apparatus portable terminal musical composition reproducing method and storage medium | |
JP2013152477A (ja) | 電子楽器デジタルインターフェースハードウェア命令セット | |
US7718882B2 (en) | Efficient identification of sets of audio parameters | |
JP5566876B2 (ja) | オーディオ・デバイスにおける参照波形の取得のための帯域幅制御 | |
JP2010522362A5 (ja) | ||
KR100502639B1 (ko) | 채널들간에 파라미터들을 공유하는 톤 발생기 장치 | |
JPH08160961A (ja) | 音源装置 | |
JP2010522364A (ja) | 楽器用デジタルインターフェース(midi)ファイルを処理するためのパイプライン技法 | |
US7893343B2 (en) | Musical instrument digital interface parameter storage | |
JP2004309521A (ja) | Pcm音源装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140117 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140304 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20140417 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20140422 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20141007 |