JP5104522B2 - 波形発生装置および波形発生処理プログラム - Google Patents

波形発生装置および波形発生処理プログラム Download PDF

Info

Publication number
JP5104522B2
JP5104522B2 JP2008118145A JP2008118145A JP5104522B2 JP 5104522 B2 JP5104522 B2 JP 5104522B2 JP 2008118145 A JP2008118145 A JP 2008118145A JP 2008118145 A JP2008118145 A JP 2008118145A JP 5104522 B2 JP5104522 B2 JP 5104522B2
Authority
JP
Japan
Prior art keywords
pitch
data
waveform
limit
playback
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.)
Active
Application number
JP2008118145A
Other languages
English (en)
Other versions
JP2009265546A (ja
Inventor
浩明 長坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2008118145A priority Critical patent/JP5104522B2/ja
Publication of JP2009265546A publication Critical patent/JP2009265546A/ja
Application granted granted Critical
Publication of JP5104522B2 publication Critical patent/JP5104522B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

本発明は、電子楽器の音源に用いて好適な波形発生装置および波形発生処理プログラムに関する。
従来より、差分PCM符号化された差分波形データをメモリから読み出して楽音波形を発生する波形発生装置が知られている。この種の装置として、例えば特許文献1には、メモリに記憶された差分波形データを読み出す波形アドレスの歩進量が「1」より大きく、これにより更新される波形アドレス整数部が、更新前の波形アドレス整数部に対して不連続となった場合、更新前の波形アドレス整数部から更新された波形アドレス整数部まで連続して対応する差分波形データを逐次積分しつつ、波形アドレス小数部に基づく補間演算を施すことによって、原音ピッチ以上の再生ピッチで楽音波形を発生させる技術が開示されている。
特許第3223560号公報
ところで、昨今のマルチティンバー音源では、ポリフォニック数の増加により1つの発音チャンネルに割当てられる処理スロットの期間が短い。そうした音源に、差分波形に基づき楽音波形を生成する波形発生装置を搭載した場合、時分割動作する1つの処理スロット期間中に波形メモリから差分波形データを読み出す回数が制限される。波形読み出し回数の制限は、波形アドレス歩進値の制限となる。したがって、最大再生ピッチ(最大アドレス歩進値に対応した再生ピッチ)を超える発音が指示されると、1つの処理スロット期間内で波形アドレスを所望値まで歩進させることが出来なくなり、この結果、例えば音切れや発音遅れなどの不自然な楽音を発生する虞が生じる。
本発明は、このような事情に鑑みてなされたもので、最大再生ピッチを超える発音が指示された場合の不自然さを回避することができる波形発生装置および波形発生処理プログラムを提供することを目的としている。
上記目的を達成するため、請求項1に記載の発明では、再生ピッチを表すピッチデータと、再生ピッチの上限を指定するピッチ制限データとを大小比較する比較手段と、前記比較手段によりピッチデータがピッチ制限データより大きいと判断された場合に、ピッチ制限データを超えない値になるまでピッチデータをオクターブシフトして出力する再生ピッチ制限手段と、前記再生ピッチ制限手段から出力されるピッチデータに基づく差分波形再生にて波形発生する波形発生手段とを具備することを特徴とする。
上記請求項1に従属する請求項2に記載の発明では、前記再生ピッチ制限手段は、前記比較手段によりピッチデータがピッチ制限データより小さいと判断された場合に、ピッチデータをそのまま出力することを特徴とする。
上記請求項1に従属する請求項3に記載の発明では、時分割動作する複数の発音チャンネルに対応したチャンネルスロット毎に、再生ピッチを表すピッチデータと、再生ピッチの上限を指定するピッチ制限データとを記憶する記憶手段を更に備え、前記比較手段は、処理すべきチャンネルスロット毎に、前記記憶手段から対応するピッチデータとピッチ制限データとを読み出して大小比較することを特徴とする。
上記請求項1に従属する請求項4に記載の発明では、時分割動作する複数の発音チャンネルに対応したチャンネルスロットの全てに共通したピッチ制限データを記憶するピッチ制限データ記憶手段と、時分割動作する複数の発音チャンネルに対応したチャンネルスロット毎に、再生ピッチを表すピッチデータを記憶するピッチデータ記憶手段とを更に備え、前記比較手段は、処理すべきチャンネルスロットに対応して前記ピッチデータ記憶手段から読み出されるピッチデータと、前記ピッチ制限データ記憶手段から読み出される、全てのチャンネルスロットに共通のピッチ制限データとを大小比較することを特徴とする。
請求項5に記載の発明では、再生ピッチを表すピッチデータが、再生ピッチの上限を指定するピッチ制限データに対応した再生ピッチ上限値を超えた場合に、その再生ピッチ上限値をピッチデータとして出力する再生ピッチ制限手段と、前記再生ピッチ制限手段から出力されるピッチデータに基づく差分波形再生にて波形発生する波形発生手段とを具備することを特徴とする。
上記請求項5に従属する請求項6に記載の発明では、前記再生ピッチ制限手段は、ピッチデータが再生ピッチ上限値より小さい場合に、ピッチデータをそのまま出力することを特徴とする。
上記請求項5に従属する請求項7に記載の発明では、時分割動作する複数の発音チャンネルに対応したチャンネルスロット毎に、再生ピッチを表すピッチデータと、再生ピッチの上限を指定するピッチ制限データとを記憶する記憶手段を更に備え、前記再生ピッチ制限手段は、処理すべきチャンネルスロット毎に、前記記憶手段から対応するピッチデータとピッチ制限データとを読み出し、ピッチデータが再生ピッチの上限を指定するピッチ制限データに対応した再生ピッチ上限値を超えた場合に、その再生ピッチ上限値をピッチデータとして出力することを特徴とする。
上記請求項5に従属する請求項8に記載の発明では、時分割動作する複数の発音チャンネルに対応したチャンネルスロットの全てに共通したピッチ制限データを記憶するピッチ制限データ記憶手段と、時分割動作する複数の発音チャンネルに対応したチャンネルスロット毎に、再生ピッチを表すピッチデータを記憶するピッチデータ記憶手段とを更に備え、前記再生ピッチ制限手段は、処理すべきチャンネルスロットに対応して前記ピッチデータ記憶手段から読み出されるピッチデータが、前記ピッチ制限データ記憶手段から読み出される全てのチャンネルスロットに共通のピッチ制限データに対応した再生ピッチ上限値を超えた場合に、その再生ピッチ上限値をピッチデータとして出力することを特徴とする。
請求項9に記載の発明では、コンピュータに、再生ピッチを表すピッチデータと、再生ピッチの上限を指定するピッチ制限データとを大小比較する比較処理と、前記比較処理によりピッチデータがピッチ制限データより大きいと判断された場合には、ピッチ制限データを超えない値になるまでピッチデータをオクターブシフトして出力する再生ピッチ制限処理と、前記再生ピッチ制限処理にて出力されるピッチデータに基づく差分波形再生にて波形発生する波形発生処理とを実行させることを特徴とする。
請求項10に記載の発明では、コンピュータに、再生ピッチを表すピッチデータが、再生ピッチの上限を指定するピッチ制限データに対応した再生ピッチ上限値を超えた場合には、その再生ピッチ上限値をピッチデータとして出力する再生ピッチ制限処理と、前記再生ピッチ制限処理にて出力されるピッチデータに基づく差分波形再生にて波形発生する波形発生処理とを実行させることを特徴とする。
本発明では、最大再生ピッチを超える発音が指示された場合の不自然さを回避することができる。
以下、図面を参照して本発明の実施の形態について説明する。
[第1実施形態]
(1)構成
図1は、本発明の第1実施形態の要部構成を示すブロック図であり、電子楽器の音源に搭載される波形発生装置の一構成例を示している。この図において、クロック発生部100は、基本クロックckをカウントする10ビットのカウンタから構成され、当該カウンタの下位4ビット出力(3SB〜0SB(LSB))であるクロックmc[3:0]と、上位6ビット出力(9SB(MSB)〜4SB)であるクロックmc[9:4]とを発生する。
ここで、図2を参照して基本クロックck、クロックmc[3:0]およびクロックmc[9:4]の対応関係について説明する。この図に示すように、クロックmc[9:4]は、音源において時分割動作する64個(0h〜3Fh)の発音チャンネルに各々対応するチャンネルスロットCH0〜CH63を形成する。チャンネルスロットCH0〜CH63の期間は、差分波形データの1サンプリング周期1/Fs(Fs:サンプリング周波数)に相当する。
クロックmc[3:0]は、上記クロックmc[9:4]が形成する1つのチャンネルスロットCHを、16個の処理スロット「0h(0)」〜「Fh(15)」に分割する。こうしたクロックmc[9:4]およびクロックmc[3:0]に基づき、図1に図示する波形発生装置の各構成要素の動作タイミングが制御される。
図1において、RAM200は、波形発生装置のワークメモリとして用いられる。RAM200は、図3に図示するように、音源が備える64個の発音チャンネルに各々対応付けられたチャンネルエリアCH0〜CH63を備える。これらチャンネルエリアCH0〜CH63におけるデータ読み出し/書き込みは、上述したクロックmc[3:0]が形成する処理スロットに同期して行われ、その読み出し/書き込み動作は制御部300によって指示される。
RAM200の各チャンネルエリアCH0〜CH63には、整数部アドレスA、小数部アドレスa、整数部ピッチデータP、小数部ピッチデータp、整数部ピッチ制限データQ、小数部ピッチ制限データqおよび波高値Wが格納される。16ビットの整数部アドレスAと16ビットの小数部アドレスaとは、現在の波形アドレス(現在指定している差分波形の位相)を表す。整数部アドレスAおよび小数部波形アドレスaを現波形アドレスADと総称する。
3ビットの整数部ピッチデータPと16ビットの小数部ピッチデータpとは、再生ピッチ(発音音高)に対応したアドレス歩進値を表す。整数部ピッチデータPおよび小数部ピッチデータpをピッチデータPitchと総称する。19ビット長のピッチデータPitch[18:0]は、「10000h」の場合に原音ピッチ再生を、「08000h」の場合に発音音高が原音ピッチの半分となる1/2ピッチ再生を、「20000h」の場合に発音音高が原音ピッチの2倍となる+1オクターブ再生をそれぞれ指定する。
整数部ピッチ制限データQおよび小数部ピッチ制限データqは、ピッチデータPitchと同様に19ビット長のデータであり、再生ピッチ(発音音高)の上限を指定する。整数部ピッチ制限データQおよび小数部ピッチ制限データqをピッチ制限データPLと総称する。16ビットの波高値Wは、更新前の現波形アドレスADに対応して差分波形データが積分された波高値である。
再生ピッチ制限回路10は、ピッチ制限レジスタ11、比較器12、シフト制御部13、セレクタ14およびピッチレジスタ15から構成される。ピッチ制限レジスタ11には、制御部300の読み出し指示に従ってRAM200から読み出されるピッチ制限データPL(整数部ピッチ制限データQおよび小数部ピッチ制限データq)がストアされる。ピッチレジスタ15には、セレクタ14を介して、RAM200から読み出されるピッチデータPitch(整数部ピッチデータPおよび小数部ピッチデータp)あるいはシフト制御部13から出力されるピッチデータPitchのいずれかがストアされる。
比較器12は、ピッチ制限レジスタ11にストアされるピッチ制限データPLと、ピッチレジスタ15にストアされるピッチデータPitchとを比較し、ピッチデータPitchがピッチ制限データPLより大きい場合にシフト指示信号を発生する。シフト制御部13は、比較器12からシフト指示信号が供給された場合には、ピッチレジスタ15にストアされるピッチデータPitchを1ビット右シフト(−1オクターブシフト)して出力し、一方、比較器12からシフト指示信号が供給されなければ、ピッチレジスタ15にストアされるピッチデータPitchをスルー出力する。セレクタ14は、制御部300からの切り替え指示に応じて、RAM200から読み出されるピッチデータPitchあるいはシフト制御部13から出力されるピッチデータPitchのいずれかを選択して出力する。
このように、再生ピッチ制限回路10では、RAM200から読み出されるピッチデータPitchがピッチ制限データPLを超えると、当該ピッチ制限データPLを超えない値になるまでピッチデータPitchをオクターブシフトする。つまり、ピッチデータPitchで指定される再生ピッチの音名を維持しながら、ピッチ制限データPL以下になるまでオクターブ単位で発音音高を下げる。なお、本実施形態では、後述の動作説明で述べるように、シフト制御部13は最大3回のオクターブシフトを行う。
次に、セレクタ17は、制御部300からの切り替え指示に従い、所定の処理スロットにおいてRAM200から読み出される現波形アドレスAD(整数部アドレスAおよび小数部アドレスa)または加算器16の出力のいずれかを選択して次段のADCレジスタ18にストアする。セレクタ17がRAM200から読み出される現波形アドレスADを選択した場合には、ピッチレジスタ15の出力と、ADCレジスタ18から出力される現波形アドレスADとが加算器16で加算され、これにより現波形アドレスADが更新される。加算器16では、ピッチレジスタ15の出力と、ADCレジスタ18の出力(現波形アドレスAD)との加算時に小数部桁上がりが生じると、小数部キャリーを発生する。
更新された現波形アドレスADは、セレクタ17を介してADCレジスタ18にストアされる。ADCレジスタ18にストアされた更新後の現波形アドレスAD(整数部アドレスAおよび小数部アドレスa)は、セレクタ40を介してRAM200の対応するチャンネルエリアCHに書き込まれる。また、ADCレジスタ18にストアされた更新後の現波形アドレスADの整数部アドレスAの最下位ビットLSBがADC LSBレジスタ19にストアされる。さらに、ADCレジスタ18にストアされた更新後の現波形アドレスADの小数部アドレスaがADC decレジスタ27にストアされる。
加算器20は、ピッチレジスタ15の出力に、加算器16が発生する小数部キャリーを加算して波形アドレス歩進値を発生する。加算器20が発生する波形アドレス歩進値は、STEPレジスタ21にストアされる。退避レジスタ22は、STEPレジスタ21の遅延バッファとして機能し、STEPレジスタ21の波形アドレス歩進値を退避格納する。
ADCレジスタ18にストアされた更新後の現波形アドレスADの整数部アドレスAは、セレクタ23を介して加算器24に供給される。セレクタ23、加算器24およびWADRレジスタ25は、波形メモリ26から差分波形データを読み出す4つの読み出しアドレスWADR1〜WADR4を発生する。
すなわち、最初にセレクタ23を介して加算器24に現波形アドレスADの整数部アドレスAが供給されると、「−6」を加算して読み出しアドレスWADR1(整数部アドレスA−6)を発生する。読み出しアドレスWADR1は、WADRレジスタ25にストアされる。WADRレジスタ25から読み出される読み出しアドレスWADR1は、セレクタ23を介して加算器24に入力される一方、その最下位ビットLSBを除いた上位15ビット分が波形メモリ26に供給される。
加算器24では、セレクタ23を介して読み出しアドレスWADR1が供給されると、当該読み出しアドレスWADR1に「2」を加算した読み出しアドレスWADR2(整数部アドレスA−4)を発生する。読み出しアドレスWADR2は、WADRレジスタ25にストアされる。WADRレジスタ25から読み出される読み出しアドレスWADR2は、セレクタ23を介して加算器24に入力される一方、その最下位ビットLSBを除いた上位15ビット分が波形メモリ26に供給される。
加算器24では、セレクタ23を介して読み出しアドレスWADR2が供給されると、当該読み出しアドレスWADR2に「2」を加算した読み出しアドレスWADR3(整数部アドレスA−2)を発生する。読み出しアドレスWADR3は、WADRレジスタ25にストアされる。WADRレジスタ25から読み出される読み出しアドレスWADR3は、セレクタ23を介して加算器24に入力される一方、その最下位ビットLSBを除いた上位15ビット分が波形メモリ26に供給される。
加算器24では、セレクタ23を介して読み出しアドレスWADR3が供給されると、当該読み出しアドレスWADR2に「2」を加算した読み出しアドレスWADR4(整数部アドレスA)を発生する。読み出しアドレスWADR4は、WADRレジスタ25にストアされる。WADRレジスタ25から読み出される読み出しアドレスWADR4は、その最下位ビットLSBを除いた上位15ビット分が波形メモリ26に供給される。
波形メモリ26は、図4に図示するように、16ビット幅の格納エリアを有する。1つの格納エリアには、2の補数で仮数表現された8ビット幅の差分波形データが上位バイトおよび下位バイトに格納される。なお、この8ビット幅の差分波形データは、後述の差分波形積分演算回路30においてビットシフトされ、16ビットで実数表現される差分波形データとなる。
波形メモリ26は、WADRレジスタ25が順次発生する4つの読み出しアドレスWADR1〜WADR4に応じて、差分波形データD0〜D3を読み出す。差分波形データD0は、上位バイトの差分波形データD0Hおよび下位バイトの差分波形データD0Lから構成される。同様に、差分波形データD1は差分波形データD1H,D1L、差分波形データD2は差分波形データD2H,D2L、差分波形データD3は差分波形データD3H,D3Lから構成される。
差分波形積分回路30は、構成要素31〜38およびコントローラ28から構成される。DW0レジスタ31a〜DW3レジスタ31dには、上述した波形メモリ26から読み出される差分波形データD0〜D3がストアされる。すなわち、DW0レジスタ31aには差分波形データD0H,D0Lが、DW1レジスタ31bには差分波形データD1H,D1Lが、DW2レジスタ31cには差分波形データD2H,D2Lが、DW3レジスタ31dには差分波形データD3H,D3Lがそれぞれストアされる。
コントローラ28は、退避レジスタ22に格納される波形アドレス歩進値と、ADC LSBレジスタ19の値(現波形アドレスADにおける整数部アドレスAの最下位ビットLSB)とで定まる積分演算パターンに従い、積分演算を施す差分波形データを指定する。セレクタ32は、DW0レジスタ32〜DW3レジスタ35にそれぞれストアされる差分波形データの内、コントローラ28が積分演算パターンに従って指定した差分波形データを選択的に出力する。加算器35では、セレクタ32から出力される差分波形データに、Xレジスタ34から出力される波高値Wを加算(積分)する。
ここで、図5〜図6を参照して積分演算パターンの内容について説明する。図5はADC LSBレジスタ19の値が「1」の場合の積分演算パターン、図6はADC LSBレジスタ19の値が「0」の場合の積分演算パターンを示す図である。これらの図に示す積分演算パターンは、退避レジスタ22に格納される波形アドレス歩進値「0」〜「8」と、処理スロットに対応する加算順番「0」〜「7」とに応じて定まる積分演算の内容を示している。
例えば、ADC LSBレジスタ19の値が「1」の時に、退避レジスタ22に格納される波形アドレス歩進値が「8」(最大アドレス歩進値)であったとする。そうすると、まず加算順番「0」では「W+D0L」なる積分演算を実行する。「W+D0L」とは、DW0レジスタ31aにストアされる差分波形データD0Lを16ビットにビットシフトさせた後、この16ビットの差分波形データD0Lと、Xレジスタ34から出力される波高値Wとを加算器35で積分し、積分された波高値をセレクタ33を介してXレジスタ34にストアすることを意味する。
次に、加算順番「1」では「W+D0H」なる積分演算を実行する。「W+D0H」とは、DW0レジスタ31aにストアされる差分波形データD0Hを16ビットにビットシフトさせた後、この16ビットの差分波形データD0Hと、Xレジスタ34から出力される波高値Wとを加算器35で積分し、積分された波高値をセレクタ33を介してXレジスタ34にストアすることを意味する。以降、同様にして、加算順番「2」では「W+D1L」、加算順番「3」では「W+D1H」、加算順番「4」では「W+D2L」、加算順番「5」では「W+D2H」、加算順番「6」では「W+D3L」、加算順番「7」では「W+D3H」なる積分演算を各々実行することを表している。
さて、こうした積分演算によりXレジスタ34にストアされる波高値Wは、次に積分される波高値として加算器35および加算器37に供給される一方、セレクタ40を介してRAM200の対応するチャンネルエリアCHに書き込まれる。乗算器36、加算器37およびYレジスタ38は、ADC decレジスタ27にストアされる現波形アドレスADの小数部アドレスaに基づき、Xレジスタ34にストアされる波高値Wに対して直線補間演算を実行し、これにより算出される波高値YをYレジスタ38にストアする。
加算器50、Mレジスタ51およびセレクタ52は、ミキサ回路を構成する。ミキサ回路では、Yレジスタ38から出力される各発音チャンネル毎の波高値Yを全て累算して波形出力waveを形成する。この波形出力waveは、図示されていない音源において、1サンプリング周期毎にD/A変換出力される。
(2)動作
次に、図7に図示するタイミングチャートを参照して、上記構成による第1実施形態の動作を説明する。なお、以下の動作説明では、チャンネルスロットCH0中の処理スロットをCH0処理スロットと称し、チャンネルスロットCH1中の処理スロットをCH1処理スロットと称す。
先ずCH0処理スロット「0」に同期したデータ期間ro0おいて、RAM200のチャンネルエリアCH0からピッチ制限データPL(整数部ピッチ制限データQおよび小数部ピッチ制限データq)が読み出される。読み出されたピッチ制限データPLは、CH0処理スロット「1」に同期してピッチ制限レジスタ11にストアされる。
次いで、CH0処理スロット「1」に同期したデータ期間ro1では、RAM200のチャンネルエリアCH0からピッチデータPitch(整数部ピッチデータPおよび小数部ピッチデータp)が読み出される。読み出されたピッチデータPitchは、CH0処理スロット「2」に同期したデータ期間p0においてピッチレジスタ15にストアされる。
こうして、ピッチ制限データPLがピッチ制限レジスタ11に、ピッチデータPitchがピッチレジスタ15にそれぞれストアされると、比較器12はCH0処理スロット「2」のデータ期間c0において、ピッチ制限レジスタ11のピッチ制限データPLと、ピッチレジスタ15のピッチデータPitchとを比較し、ピッチデータPitchがピッチ制限データPLより大きければ、シフト制御部13にシフト指示信号を発生する。
シフト制御部13では、比較器12からシフト指示信号が供給されなければ、ピッチレジスタ15にストアされるピッチデータPitchをスルー出力する。したがって、ピッチデータPitchがピッチ制限データPLを超えなければ、CH0処理スロット「3」〜「5」のデータ期間p1〜p3の間、ピッチレジスタ15にストアされるピッチデータPitchは維持される。
一方、ピッチデータPitchがピッチ制限データPLより大きく、比較器12からシフト指示信号が供給されると、シフト制御部13はピッチレジスタ15にストアされるピッチデータPitchを1ビット右シフト(−1オクターブシフト)する。1ビット右シフトされたピッチデータPitchは、CH0処理スロット「3」のデータ期間p1においてピッチレジスタ15にストアされる。
以後、比較器12およびシフト制御部13では、CH0処理スロット「3」〜「4」のデータ期間c1〜c2において、ピッチデータPitchがピッチ制限データPLを超えない値になるまでピッチデータPitchを1ビット右シフトする。つまり、本実施形態では、都合3回の1ビット右シフトを可能とし、ピッチ制限データPLを超えないようにピッチデータPitchを最大で−3オクターブシフトさせるようになっている。
このように、再生ピッチ制限回路10では、RAM200から読み出されるピッチデータPitchがピッチ制限データPLを超えた場合、当該ピッチ制限データPLを超えない値になるまでピッチデータPitchを−1オクターブずつ下げる。すなわち、ピッチデータPitchで指定される再生ピッチの音名を維持しながら、ピッチ制限データPL以下になるまでオクターブ単位で発音音高を下げるようにした為、最大再生ピッチを超える発音が指示された場合の不自然さを回避することが可能になっている。
さて一方、CH0処理スロット「2」に同期したデータ期間ro2では、RAM200のチャンネルエリアCH0から現波形アドレスAD(整数部アドレスAおよび小数部波形アドレスa)が読み出される。また、CH0処理スロット「3」以降のデータ期間a0では、上記データ期間ro2においてRAM200から読み出された現波形アドレスAD(整数部アドレスAおよび小数部波形アドレスa)がADCレジスタ18にストアされる。
CH0処理スロット「5」以降のデータ期間p3では、上述したように、ピッチ制限データPLを超えた場合に、当該ピッチ制限データPL以下になるようにオクターブシフトされるピッチデータPitchがピッチレジスタ15にストアされる。そして、CH0処理スロット「6」以降のデータ期間s0では、ピッチレジスタ15の出力に、加算器16が発生する小数部キャリーを加算して得られる波形アドレス歩進値がSTEPレジスタ21にストアされる。
また、CH0処理スロット「6」以降のデータ期間a1では、上記データ期間a0においてADCレジスタ18にストアされた現波形アドレスADに、ピッチレジスタ15の出力を加算してADCレジスタ18の現波形アドレスADを更新する。そして、更新された現波形アドレスADの整数部アドレスAおよび小数部アドレスaを、CH0処理スロット「6」に同期したデータ期間ri0において、セレクタ17を介してRAM200のチャンネルエリアCH0にストアする。
そして、CH0処理スロット「7」以降のデータ期間WADR1では、ADCレジスタ18から出力される更新後の現波形アドレスADの整数部アドレスAと「−6」とが加算器24で加算され、これにて生成される波形読み出しアドレスWADR1(整数部アドレスA−6)がWADRレジスタ25にストアされる。このWADRレジスタ25にストアされる波形読み出しアドレスWADR1は、セレクタ23を介して加算器24に入力される一方、その最下位ビットLSBを除いた上位15ビット分が波形メモリ26に供給される。
次に、CH0処理スロット「B」以降のデータ期間WADR2では、セレクタ23を介して入力される読み出しアドレスWADR1と「2」とが加算器24で加算されて波形読み出しアドレスWADR2(整数部アドレスA−4)を発生し、WADRレジスタ25にストアされる。WADRレジスタ25にストアされる波形読み出しアドレスWADR2は、セレクタ23を介して加算器24に入力される一方、その最下位ビットLSBを除いた上位15ビット分が波形メモリ26に供給される。
以後、CH0処理スロット「F」以降のデータ期間WADR3と、CH1処理スロット「3」以降のデータ期間WADR4とでは、上記データ期間WADR2と同様に、波形読み出しアドレスWADR3(整数部アドレスA−2)および波形読み出しアドレスWADR4(整数部アドレスA)を発生する。そして、これら波形読み出しアドレスWADR3〜WADR4の最下位ビットLSBを除いた上位15ビット分がそれぞれ波形メモリ26に供給される。
さて一方、CH1処理スロット「0」以降のデータ期間s1では、STEPレジスタ21から読み出した波形アドレス歩進値が退避レジスタ22に退避格納される。また、CH1処理スロット「0」以降のデータ期間a2では、CH0処理スロット「6」のデータ期間a1においてADCレジスタ18にストアした現波形アドレスADの最下位ビットLSBを、ADC LSBレジスタ19にストアする。さらに、CH1処理スロット「0」以降のデータ期間a3では、CH0処理スロット「6」のデータ期間a1においてADCレジスタ18にストアした現波形アドレスADの小数部アドレスaを、ADC decレジスタ27にストアする。
WADRレジスタ25から順次出力される4つの波形読み出しアドレスWADR1〜WADR4に応じて、波形メモリ26から読み出される差分波形データD0(D0H,D0L)〜D3(D3H,D3L)は、図7に図示するタイミングでDW0レジスタ31a〜DW3レジスタ31dに格納される。すなわち、DW0レジスタ31aには差分波形データD0H,D0Lが、DW1レジスタ31bには差分波形データD1H,D1Lが、DW2レジスタ31cには差分波形データD2H,D2Lが、DW3レジスタ31dには差分波形データD3H,D3Lがそれぞれ格納される。
そして、CH0処理スロット「F」に同期したデータ期間ro3では、RAM200のチャンネルエリアCH0から波高値Wが読み出され、これがCH1処理スロット「0」以降のデータ期間w0に、Xレジスタ34にストアされる。以後、退避レジスタ22に格納される波形アドレス歩進値と、ADC LSBレジスタ19の値(現波形アドレスADにおける整数部アドレスAの最下位ビットLSB)とに応じて定まる積分演算パターン(図5又は図6参照)に従って積分演算を行う。
例えば、前述したように、ADC LSBレジスタ19の値が「1」の時に、退避レジスタ22に格納される波形アドレス歩進値が「8」(最大アドレス歩進値)の場合には、図5に図示する積分パターンに従って差分波形データを積分する。先ずCH1処理スロット「3」に同期したデータ期間w1では「W+D0L」なる積分演算、すなわちDW0レジスタ31aにストアされる差分波形データD0Lを16ビットにビットシフトさせた後、この16ビットの差分波形データD0Lと、Xレジスタ34の波高値Wとを積分(加算)し、積分された波高値をセレクタ33を介してXレジスタ34にストアする。
以後、CH1処理スロット「4」に同期したデータ期間w2では「W+D0H」を、CH1処理スロット「5」に同期したデータ期間w3では「W+D1L」を、CH1処理スロット「6」に同期したデータ期間w4では「W+D1H」を、CH1処理スロット「7」に同期したデータ期間w5では「W+D2L」を、CH1処理スロット「8」に同期したデータ期間w6では「W+D2H」を、CH1処理スロット「9」に同期したデータ期間w7では「W+D3L」を、CH1処理スロット「A」に同期したデータ期間w8では「W+D3H」を各々実行する。
こうした積分演算によりXレジスタ34に累算された波高値Wは、CH1処理スロット「A」に同期したデータ期間ri1において、次に積分される波高値WとしてRAM200のチャンネルエリアCH0にストアされる。また、積分演算によりXレジスタ34に累算された波高値Wは、次に積分される波高値として加算器35および加算器37に供給される。
そして、乗算器36、加算器37およびYレジスタ38は、ADC decレジスタ27にストアされる現波形アドレスADの小数部アドレスaに基づき、Xレジスタ34にストアされる波高値Wに対し、直線補間演算を図7に図示するタイミングで実行し、これにより算出される波高値YがYレジスタ38にストアされる。この後、波高値Yは、加算器50、Mレジスタ51およびセレクタ52から構成されるミキサ回路においてチャンネル累算されて波形出力waveを形成する。
以上のように、第1実施形態では、発音すべき音高を表すピッチデータPitchが、ピッチ制限データPLを超えると、ピッチデータPitchで指定される再生ピッチの音名を維持しながら、ピッチ制限データPL以下になるまで当該ピッチデータPitchをオクターブ単位で発音音高を下げるので、最大再生ピッチ(最大アドレス歩進値に対応した再生ピッチ)を超える発音が指示された時に生じる音切れや発音遅れなどの不自然さを回避することが可能になる。
[第2実施形態]
次に、図8〜図10を参照して第2実施形態について説明する。上述した第1実施形態では、ピッチ制限データPLとピッチデータPitchとを比較し、ピッチデータPitchがピッチ制限データPLを超えると、当該ピッチ制限データPLを超えない値になるまでピッチデータPitchを−1オクターブずつ低減シフトするのに対し、第2実施形態では、ピッチデータPitchが、3ビットの整数部ピッチ制限データQで指定される再生ピッチ上限値を超えた場合に、ピッチデータPitchを再生ピッチ上限値に置き換える点で相違する。
図8は、こうした第2実施形態の構成を示すブロック図である。この図において、図1に図示した第1実施形態と共通する構成要素には同一の番号を付し、その説明を省略する。図9に図示する第2実施形態の構成が、第1実施形態と相違する点は、ピッチ制限レジスタ11、ピッチレジスタ15およびピッチリミッタ401から構成される再生ピッチ制限回路400を設け、かつ再生ピッチ制限回路400に対応してRAM200が図9に図示するデータ構造を有することにある。
すなわち、図9に図示するように、第2実施形態によるRAM200には、現在の波形アドレス(現在指定している差分波形の位相)を表す現波形アドレスAD(整数部アドレスAおよび小数部アドレスa)と、再生ピッチ(発音音高)に対応したアドレス歩進値を表すピッチデータPitch(整数部ピッチデータPおよび小数部ピッチデータp)と、再生ピッチ(発音音高)の上限となる再生ピッチ上限値を指定する3ビットの整数部ピッチ制限データQと、現波形アドレスADに対応して差分波形データが積分された波高値Wとが発音チャンネルに対応付けられた各チャンネルエリアCH0〜CH63毎に格納される。
再生ピッチ制限回路400において、ピッチ制限レジスタ11には、制御部300の読み出し指示に従ってRAM200から読み出される3ビットの整数部ピッチ制限データQがストアされる。ピッチレジスタ15には、RAM200から読み出されるピッチデータPitch(整数部ピッチデータPおよび小数部ピッチデータp)がストアされる。
ピッチリミッタ401は、ピッチ制限レジスタ11の出力(整数部ピッチ制限データQ)に対応する再生ピッチ上限値を設定しておき、ピッチレジスタ15から出力されるピッチデータPitchが、設定された再生ピッチ上限値未満ならば当該ピッチデータPitchを次段の加算器16へスルー出力し、一方、設定された再生ピッチ上限値以上ならば、当該再生ピッチ上限値を次段の加算器16に出力する。
具体的には、図10に図示するように、ピッチ制限レジスタ11の出力(整数部ピッチ制限データQ)が「0」の場合には再生ピッチ上限値「7FFFFh」を、ピッチ制限レジスタ11の出力が「1」の場合には再生ピッチ上限値「78000h」を、ピッチ制限レジスタ11の出力が「2」の場合には再生ピッチ上限値「70000h」を、ピッチ制限レジスタ11の出力が「3」の場合には再生ピッチ上限値「68000h」をそれぞれ発生して内部設定する。
さらに、ピッチ制限レジスタ11の出力が「4」の場合には再生ピッチ上限値「60000h」を、ピッチ制限レジスタ11の出力が「5」の場合には再生ピッチ上限値「58000h」を、ピッチ制限レジスタ11の出力が「6」の場合には再生ピッチ上限値「50000h」を、ピッチ制限レジスタ11の出力が「7」の場合には再生ピッチ上限値「48000h」をそれぞれ発生して内部設定する。なお、整数部ピッチ制限データQに対応した再生ピッチ上限値を生成する態様としては、例えば整数部ピッチ制限データQを読み出しアドレスとして、対応する再生ピッチ上限値を読み出す周知のデータテーブルにて具現する。
このように、第2実施形態では、再生ピッチ(発音音高)を指定するピッチデータPitchが、3ビットの整数部ピッチ制限データQで指定される再生ピッチ上限値を超えると、ピッチデータPitchを再生ピッチ上限値に置換して差分波形再生するので、最大再生ピッチ(最大アドレス歩進値に対応した再生ピッチ)を超える発音が指示された時に生じる音切れや発音遅れなどの不自然さを回避し得る。
[第1実施形態の変形例]
次に、図11〜図12を参照して第1実施形態の変形例について説明する。前述した第1実施形態の再生ピッチ制限回路10では、発音チャンネルに対応してRAM200から読み出されるピッチ制限データPL(整数部ピッチ制限データQおよび小数部ピッチ制限データq)がピッチ制限レジスタ11にストアされるのに対し、変形例では、図11に図示する通り、全ての発音チャンネルに共通するピッチ制限データPL(整数部ピッチ制限データQおよび小数部ピッチ制限データq)が図示せぬCPUからピッチ制限レジスタ11にストアされる点で相違する。
したがって、図12に図示するように、RAM200には、ピッチ制限データPL(整数部ピッチ制限データQおよび小数部ピッチ制限データq)を除く、現波形アドレスAD(整数部アドレスAおよび小数部アドレスa)と、ピッチデータPitch(整数部ピッチデータPおよび小数部ピッチデータp)と、波高値Wとが各チャンネルエリアCH0〜CH63毎にストアされるデータ構造となる。こうすることによって、第1実施形態と同様に最大再生ピッチを超える発音が指示された場合の不自然さを回避しつつ、RAM200のメモリサイズ低減を図ることが可能になる。
[第2実施形態の変形例]
次に、図13を参照して第2実施形態の変形例について説明する。前述した第2実施形態の再生ピッチ制限回路400では、発音チャンネルに対応してRAM200から読み出される整数部ピッチ制限データQがピッチ制限レジスタ11にストアされるのに対し、変形例では、図13に図示する通り、全ての発音チャンネルに共通する整数部ピッチ制限データQが図示せぬCPUからピッチ制限レジスタ11にストアされる点で相違する。このようにすることで第2実施形態と同様に最大再生ピッチを超える発音が指示された場合の不自然さを回避しつつ、RAM200のメモリサイズ低減を図ることが可能になる。
なお、前述の第1〜第2実施形態およびこれらの変形例にあっては、いずれもハードウェアで構成される波形発生装置として説明したが、本発明の主旨はハードウェアに限定されものではなく、その機能をソフトウェアで具現する場合であっても勿論適用可能であることは言うまでもない。
本発明による第1実施形態の構成を示すブロック図である。 基本クロックck、クロックmc[3:0]およびクロックmc[9:4]の対応関係を示す図である。 第1実施形態におけるRAM200のデータ構成を示すメモリマップである。 波形メモリ26のデータ構造を示すメモリマップである。 ADC LSBレジスタ19の値が「1」の場合の積分演算パターンを示す図である。 ADC LSBレジスタ19の値が「0」の場合の積分演算パターンを示す図である。 第1実施形態の動作を説明するためのタイムチャートである。 第2実施形態の構成を示すブロック図である。 第2実施形態におけるRAM200のデータ構成を示すメモリマップである。 ピッチ制限レジスタ11の出力(整数部ピッチ制限データQ)に対応してピッチリミッタ401に内部設定される再生ピッチ上限値を示す図である。 第1実施形態の変形例の構成を示すブロック図である。 第1実施形態の変形例におけるRAM200のデータ構成を示すメモリマップである。 第2実施形態の変形例の構成を示すブロック図である。
符号の説明
10 再生ピッチ制限回路
11 ピッチ制限レジスタ
12 比較器
13 シフト制御部
14,17,23,32,33,40,52 セレクタ
15 ピッチレジスタ
16,20,24,35,37,50 加算器
18 ADCレジスタ
19 ADC LSBレジスタ
21 STEPレジスタ
22 退避レジスタ
25 WADRレジスタ
26 波形メモリ
27 ADC decレジスタ
28 コントローラ
30 差分波形積分演算回路
31a〜31d DW0〜DW3レジスタ
34 Xレジスタ
36 乗算器
38 Yレジスタ
51 Mレジスタ
100 クロック発生部
200 RAM
300 制御部

Claims (10)

  1. 再生ピッチを表すピッチデータと、再生ピッチの上限を指定するピッチ制限データとを大小比較する比較手段と、
    前記比較手段によりピッチデータがピッチ制限データより大きいと判断された場合に、ピッチ制限データを超えない値になるまでピッチデータをオクターブシフトして出力する再生ピッチ制限手段と、
    前記再生ピッチ制限手段から出力されるピッチデータに基づく差分波形再生にて波形発生する波形発生手段と
    を具備することを特徴とする波形発生装置。
  2. 前記再生ピッチ制限手段は、前記比較手段によりピッチデータがピッチ制限データより小さいと判断された場合に、ピッチデータをそのまま出力することを特徴とする請求項1記載の波形発生装置。
  3. 時分割動作する複数の発音チャンネルに対応したチャンネルスロット毎に、再生ピッチを表すピッチデータと、再生ピッチの上限を指定するピッチ制限データとを記憶する記憶手段を更に備え、
    前記比較手段は、処理すべきチャンネルスロット毎に、前記記憶手段から対応するピッチデータとピッチ制限データとを読み出して大小比較することを特徴とする請求項1記載の波形発生装置。
  4. 時分割動作する複数の発音チャンネルに対応したチャンネルスロットの全てに共通したピッチ制限データを記憶するピッチ制限データ記憶手段と、
    時分割動作する複数の発音チャンネルに対応したチャンネルスロット毎に、再生ピッチを表すピッチデータを記憶するピッチデータ記憶手段とを更に備え、
    前記比較手段は、処理すべきチャンネルスロットに対応して前記ピッチデータ記憶手段から読み出されるピッチデータと、前記ピッチ制限データ記憶手段から読み出される、全てのチャンネルスロットに共通のピッチ制限データとを大小比較することを特徴とする請求項1記載の波形発生装置。
  5. 再生ピッチを表すピッチデータが、再生ピッチの上限を指定するピッチ制限データに対応した再生ピッチ上限値を超えた場合に、その再生ピッチ上限値をピッチデータとして出力する再生ピッチ制限手段と、
    前記再生ピッチ制限手段から出力されるピッチデータに基づく差分波形再生にて波形発生する波形発生手段と
    を具備することを特徴とする波形発生装置。
  6. 前記再生ピッチ制限手段は、ピッチデータが再生ピッチ上限値より小さい場合に、ピッチデータをそのまま出力することを特徴とする請求項5記載の波形発生装置。
  7. 時分割動作する複数の発音チャンネルに対応したチャンネルスロット毎に、再生ピッチを表すピッチデータと、再生ピッチの上限を指定するピッチ制限データとを記憶する記憶手段を更に備え、
    前記再生ピッチ制限手段は、処理すべきチャンネルスロット毎に、前記記憶手段から対応するピッチデータとピッチ制限データとを読み出し、ピッチデータが再生ピッチの上限を指定するピッチ制限データに対応した再生ピッチ上限値を超えた場合に、その再生ピッチ上限値をピッチデータとして出力することを特徴とする請求項5記載の波形発生装置。
  8. 時分割動作する複数の発音チャンネルに対応したチャンネルスロットの全てに共通したピッチ制限データを記憶するピッチ制限データ記憶手段と、
    時分割動作する複数の発音チャンネルに対応したチャンネルスロット毎に、再生ピッチを表すピッチデータを記憶するピッチデータ記憶手段とを更に備え、
    前記再生ピッチ制限手段は、処理すべきチャンネルスロットに対応して前記ピッチデータ記憶手段から読み出されるピッチデータが、前記ピッチ制限データ記憶手段から読み出される全てのチャンネルスロットに共通のピッチ制限データに対応した再生ピッチ上限値を超えた場合に、その再生ピッチ上限値をピッチデータとして出力することを特徴とする請求項5記載の波形発生装置。
  9. コンピュータに、
    再生ピッチを表すピッチデータと、再生ピッチの上限を指定するピッチ制限データとを大小比較する比較処理と、
    前記比較処理によりピッチデータがピッチ制限データより大きいと判断された場合には、ピッチ制限データを超えない値になるまでピッチデータをオクターブシフトして出力する再生ピッチ制限処理と、
    前記再生ピッチ制限処理にて出力されるピッチデータに基づく差分波形再生にて波形発生する波形発生処理と
    実行させることを特徴とする波形発生処理プログラム。
  10. コンピュータに、
    再生ピッチを表すピッチデータが、再生ピッチの上限を指定するピッチ制限データに対応した再生ピッチ上限値を超えた場合には、その再生ピッチ上限値をピッチデータとして出力する再生ピッチ制限処理と、
    前記再生ピッチ制限処理にて出力されるピッチデータに基づく差分波形再生にて波形発生する波形発生処理と
    実行させることを特徴とする波形発生処理プログラム。
JP2008118145A 2008-04-30 2008-04-30 波形発生装置および波形発生処理プログラム Active JP5104522B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008118145A JP5104522B2 (ja) 2008-04-30 2008-04-30 波形発生装置および波形発生処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008118145A JP5104522B2 (ja) 2008-04-30 2008-04-30 波形発生装置および波形発生処理プログラム

Publications (2)

Publication Number Publication Date
JP2009265546A JP2009265546A (ja) 2009-11-12
JP5104522B2 true JP5104522B2 (ja) 2012-12-19

Family

ID=41391441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008118145A Active JP5104522B2 (ja) 2008-04-30 2008-04-30 波形発生装置および波形発生処理プログラム

Country Status (1)

Country Link
JP (1) JP5104522B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011113603A (ja) * 2009-11-26 2011-06-09 Victor Co Of Japan Ltd 音声再生装置、音声再生方法およびプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2716088B2 (ja) * 1986-04-15 1998-02-18 ヤマハ株式会社 楽音信号発生装置
JP3223560B2 (ja) * 1992-03-30 2001-10-29 カシオ計算機株式会社 波形データ読出し装置
JP2790160B2 (ja) * 1992-12-26 1998-08-27 ヤマハ株式会社 波形生成装置および波形記憶装置
JP2748784B2 (ja) * 1992-07-27 1998-05-13 ヤマハ株式会社 波形生成装置
JP3252296B2 (ja) * 1992-12-22 2002-02-04 カシオ計算機株式会社 波形データ出力装置
JPH09198049A (ja) * 1996-01-24 1997-07-31 Matsushita Electric Ind Co Ltd 楽音合成装置
JP4191073B2 (ja) * 2004-03-19 2008-12-03 株式会社河合楽器製作所 波形データ出力装置
JP4656326B2 (ja) * 2006-08-11 2011-03-23 カシオ計算機株式会社 波形発生装置

Also Published As

Publication number Publication date
JP2009265546A (ja) 2009-11-12

Similar Documents

Publication Publication Date Title
US7612281B2 (en) Reverberation effect adding device
EP0454047A2 (en) Tone generation apparatus
JP5104522B2 (ja) 波形発生装置および波形発生処理プログラム
JP4656326B2 (ja) 波形発生装置
US5559298A (en) Waveform read-out system for an electronic musical instrument
JPH07306681A (ja) 楽音生成装置
US5639978A (en) Musical tone signal generating apparatus for electronic musical instrument
US5245126A (en) Waveform generation system with reduced memory requirement, for use in an electronic musical instrument
JP2608938B2 (ja) 波形補間装置
JP2944069B2 (ja) 楽音信号発生装置
JP2904576B2 (ja) 波形発生装置
JP3016470B2 (ja) 音源装置
JP3223555B2 (ja) 波形読出装置
JP3435702B2 (ja) 楽音発生装置
JP3104873B2 (ja) 音源装置
US20030128102A1 (en) Method and device for generating electronic sounds and portable apparatus utilizing such device and method
JP2910632B2 (ja) 波形メモリ音源装置
JP3097324B2 (ja) デジタル音響データ出力装置
JPS5921038B2 (ja) 電子楽器
JP3288500B2 (ja) 電子楽器の楽音発生装置
JP2684820B2 (ja) サラウンド回路
JP5573465B2 (ja) 楽音生成装置
JP3567767B2 (ja) 圧縮波形サンプルを用いたループ再生装置
JP3567766B2 (ja) 圧縮波形サンプルを用いたピッチシフト再生装置
JP2940440B2 (ja) 電子楽器の波形データ圧縮記録方法および波形データ再生方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120801

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: 20120904

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: 20120917

R150 Certificate of patent or registration of utility model

Ref document number: 5104522

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151012

Year of fee payment: 3