JP3714397B2 - 波形データ処理装置及び波形データ処理方法 - Google Patents
波形データ処理装置及び波形データ処理方法 Download PDFInfo
- Publication number
- JP3714397B2 JP3714397B2 JP2000071149A JP2000071149A JP3714397B2 JP 3714397 B2 JP3714397 B2 JP 3714397B2 JP 2000071149 A JP2000071149 A JP 2000071149A JP 2000071149 A JP2000071149 A JP 2000071149A JP 3714397 B2 JP3714397 B2 JP 3714397B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform data
- attack
- loop
- waveform
- pitch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000003672 processing method Methods 0.000 title claims 3
- 230000005236 sound signal Effects 0.000 claims description 73
- 238000005070 sampling Methods 0.000 claims description 42
- 238000012952 Resampling Methods 0.000 claims description 17
- 238000004458 analytical method Methods 0.000 claims description 10
- 239000011295 pitch Substances 0.000 description 104
- 238000000034 method Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000009527 percussion Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は、波形メモリに記憶されていて楽音信号を生成するための複数の波形サンプル値からなる波形データを修正処理する波形データ処理装置及び同方法に関する。
【0002】
【従来の技術】
従来から、一つの楽音波形を時間的に異なる複数の部分に分割して、例えばアタック部とサステイン部に分割して、各部分の楽音波形を表す複数の波形サンプル値からなる波形データを独立して波形メモリにそれぞれ記憶しておき、これらの各部分の波形データを連続して読み出して一つの楽音波形信号を生成するようにした楽音信号生成装置はよく知られている。この場合、同一レートで読み出した各部分の波形データに基づいて生成される楽音信号のピッチが異なってしまうことがあり、これを回避するために、前記各部分の波形データを読み出す際に、読出しレートを各部分毎に調整できるようにした楽音信号生成装置も出現してきている。
【0003】
【発明が解決しようとする課題】
しかし、上記読出しレートを各部分毎に調整できるようにした楽音信号生成装置にあっても、読み出しレートの変更を各部分の波形データの読出しの切り替えに精度よく同期させるとともに精度よく読出しレートを変更することは難しく、各部分の波形データの読出しの切り替え時に生成される楽音信号のピッチが不連続になるという問題があった。また、上記読出しレートを各部分毎に調整できる機能を備えていない楽音信号生成装置にあっては、各部分の波形データの読出しの切り替えの際に大きなピッチ変動が発生する可能性もある。
【0004】
【本発明の概要】
本発明は、上記問題に対処するためになされたもので、その目的は、波形メモリに記憶されている各部分の波形データを予め修正処理しておいて、各部分の波形データを同一レートで連続して読出して楽音信号を生成しても、ピッチ変動が生じないようにする波形データ処理装置及び同方法を提供するものである。
【0005】
上記目的を達成するために、本発明の構成上の特徴は、所定のサンプリングレートでサンプリングされてアタック部及びサステイン部を有する楽音波形データを入力し、順次読み出されて楽音信号のアタック部を構成するアタック波形データと、アタック波形データの読み出し後に繰り返し読み出されて楽音信号のサステイン部を構成するループ波形データとを生成する波形データ処理装置において、前記入力した楽音波形データのうちで、ユーザによって指定されたアタックスタートポイントからアタックエンドポイントまでの楽音波形データをアタック波形データとして記憶するとともに、ユーザによって指定されたループスタートポイントからループエンドポイントまでの楽音波形データをループ波形データとして記憶する波形メモリと、前記波形メモリに記憶されているアタック波形データを再生することによって得られる楽音波形信号のアタック部のピッチを周波数解析によって計算するアタック部ピッチ計算手段と、前記波形メモリに記憶されているループ波形データを繰り返し読み出すことによって再生される楽音波形信号のループ部のピッチを、周波数解析によって得たループ部のピッチ、ループスタートポイントからループエンドポイントまでのサンプル数を表すループサイズ及び前記所定のサンプリングレートを用いて計算するループ部ピッチ計算手段と、前記第アタック波形データ及び前記ループ波形データのうちの少なくともいずれか一方を、前記計算された楽音波形信号のアタック部のピッチとループ部のピッチとの比に応じたサンプリングレートに変更してリサンプリングするリサンプリング手段とを備えたことにある。また、本発明の他の構成上の特徴は、上記各手段の機能を実現する方法にもある。
【0006】
上記のように構成した本発明においては、アタック波形データを再生することによって得られる楽音波形信号のアタック部のピッチと、ループ波形データを繰り返し読み出すことによって再生される楽音波形信号のループ部のピッチとの比に応じて変更されたサンプリングレートで、アタック波形データ及びループ波形データのうちの少なくともいずれか一方がリサンプリングされて波形メモリに記憶されることになる。したがって、楽音信号の生成の際には、アタック波形データ及びループ波形データを同一レートで連続して読出しても、アタック波形データからループ波形データの切り替えの際におけるピッチ変動を回避することができ、アタック波形データ及びループ波形データを用いた楽音信号の生成の際、常に前記切り替えに伴うピッチ変動を極力抑えた楽音信号を提供できるようになる。
【0007】
【発明の実施の形態】
以下、本発明の一実施形態について図面を用いて説明すると、図1は、同実施形態に係る楽音波形処理装置をブロック図により概略的に示している。
【0008】
この楽音波形処理装置は、バス10に接続されて、コンピュータ本体部を構成するCPU11、タイマ12、ROM13及びRAM14を備えている。CPU11は、この楽音波形処理装置全体の制御を行うものであって、各種プログラムを実行する。タイマ12は、CPU11に対し前記プログラムを実行する際に必要な時間に関する情報を提供する。ROM13は、前記プログラムの一部と、楽音発生に必要な諸情報とを記憶している。RAM14は、前記プログラムの一部と、プログラムの実行時において必要な情報等とを一時的に記憶する。
【0009】
また、この楽音波形処理装置は、波形メモリ21、アクセス管理回路22、書き込み回路23、バッファ回路24、音源回路25及びサウンドシステム26を備えている。書き込み回路23、バッファ回路24及び音源回路25は、バス10に接続されている。波形メモリ21は、書き換え可能な不揮発性メモリ(電力供給を遮断してもデータを保存可能なメモリ)で構成され、楽音波形を表す波形データ及び同波形データに付随した付随データを記憶するものである。アクセス管理回路22は、波形メモリ21に対する波形データ及び付随データの書き込みと読み出しを管理するものである。
【0010】
書き込み回路23は、A/D変換器を含み、外部音入力端子27に供給されるアナログ形式の外部音信号を予め決められたサンプリング周波数(標準サンプリング周波数)fsでサンプリングするとともに、同サンプリングした外部音信号をA/D変換してアクセス管理回路22に供給する。なお、外部音信号としては、マイクから入力したものでも、テープレコーダに記録されているものでもよい。また、書き込み回路23は、予めディジタル信号に変換された外部音信号も入力可能としており、この場合には前記A/D変換は不要となる。バッファ回路24は、バス10とアクセス管理回路22との間で、波形データを一時的に記憶する。
【0011】
音源回路25は、CPU11の指示により楽音信号を形成して出力するもので、同指示に応答して、アクセス管理回路22を介して波形メモリ21に記憶されている波形データを読み出して、同読み出した波形データに基づいて楽音信号を形成して出力する。この場合、波形データは、一つの楽音に対してアタック部及びループ部の2つの波形データからなり、アタック部の波形データは先頭から順次読み出され、その後にループ部の波形データが繰り返し読み出されて、同読み出された波形データはD/A変換されて楽音信号として出力される。サウンドシステム26は、アンプ、スピーカなどからなり、音源回路25から出力された楽音信号を音響信号に変換して出力する。
【0012】
また、この楽音波形処理装置は、バス10に接続された表示器31、パネルスイッチ32、インターフェース33及びドライブ回路34も備えている。表示器31は、CPU11により制御されて、ユーザに対する指示、各種データを表す図形、文字などを表示するものである。パネルスイッチ32は、ユーザのCPU11に対する指示及び各種データを入力するものである。インターフェース33は、他の楽音発生装置、電子楽器、シーケンサ、自動演奏装置、パーソナルコンピュータ、通信回線などに接続されて、MIDI情報を含む種々の情報を送受信するためのものである。ドライブ回路34は、外部メモリとしてのハードディスク、コンパクトディスク、フレキシブルディスクなどの各種ディスクに対して、各種データ及びプログラムを書き込み及び読み出し可能とするものである。
【0013】
なお、この楽音波形処理装置においては、後述する図3のプログラム及び図示しないプログラムを、予めROM13に記憶させておいて使用するようにしてもよいし、ディスク35に記録されているものをRAM14に書き込んだ後に使用するようにしてもよい。また、同プログラムをインターフェース33を介して外部から入力してRAM14又はディスク35に書き込んだ後に、使用するようにしてもよい。
【0014】
次に、上記のように構成した楽音波形処理装置の動作について説明する。まず、図2のステップ102に示すように、ユーザは、外部から一音分の楽音波形データを取得するためにパネルスイッチ32を操作する。この場合、所望の音高周波数を有する外部音信号(例えば、自然楽器音信号)を、自然楽器の演奏又はテープレコーダの再生により外部音入力端子27を介して書き込み回路23に入力する。また、外部記録媒体としてのディスク35に記録された一音分の外部音信号(外部音波形データ)をドライブ回路34で読み出して、バス10を介して書き込み回路23に供給するようにしてもよい。
【0015】
書き込み回路23は、入力された外部音信号がアナログ形式であれば、所定のサンプリング周波数(標準サンプリング周波数)fsで同入力された外部音信号をサンプリングするとともにA/D変換し、同A/D変換した外部音信号を波形メモリ21に書き込む。入力された外部音信号がディジタル形式であれば、同外部音信号をそのまま波形メモリ21に書き込む。この場合、ディジタル形式に変換されている外部音信号が前記サンプリング周波数fsと同じサンプリング周波数でサンプリングされていれば問題ないが、そうでない場合には、前記と同じサンプリング周波数でリサンプリングするか、外部音信号と共にサンプリング周波数を表すデータを波形メモリ21に書き込んでおく。なお、前記外部音信号を波形メモリ21に代えて、バッファ回路24、RAM14などの他の書き込み可能なメモリに記憶させておいてもよい。
【0016】
次に、ユーザは、ステップ104にて、前記入力した外部音信号の音高周波数に対応したノートナンバNNをパネルスイッチ32を用いて入力するとともに、前記入力した外部音信号の波形図を表示器31に表示させる。なお、前記外部音信号と共にノートナンバNNが入力される場合には、前記パネルスイッチ32を用いたノートナンバNNの入力は省略される。次に、ユーザは、同ステップ104にて、表示器31における外部音信号の波形図を見ながら、パネルスイッチ32を用いてアタック部及びループ部の切り出し作業を各サンプル値を単位として行う。
【0017】
この切り出し作業においては、ユーザは、表示器31上にて、外部音信号のアタックスタートポイントP1、アタックエンドポイントP2、ループスタートポイントP3及びループエンドポイントP4を指定する。アタックスタートポイントP1は、楽音信号の振幅エンベロープが「0」から立ち上がり始めるタイミング位置に指定される。アタックエンドポイントP2は、振幅エンベロープの変化がほぼなくなって安定し始めたタイミング位置(サステイン部の開始タイミング位置)に指定される。ループスタートポイントP3及びループエンドポイントP4は、サステイン部の中で楽音信号波形が繰り返して変化する区間の開始及び終了タイミング位置に指定される。なお、この場合、サステイン部の楽音信号波形の1周期又は複数周期を前記区間として指定するとよい。
【0018】
この指定により、CPU11は、図示しないプログラムの実行により、前記波形メモリ21(又はバッファ回路24、RAM14などの他の書き込み可能なメモリ)に書き込まれた外部音信号を表す一連のサンプル値のうちで、前記指定されたアタックスタートポイントP1からアタックエンドポイントP2までに属するサンプル値をアタック波形データADTとして波形メモリ21に書き込むとともに、ループスタートポイントP3からループエンドポイントP4までに属するサンプル値をループ波形データLDTとして波形メモリ21に書き込む。そして、このときのアタック波形データADTの先頭及び最終アドレス、ループ波形データLDTの先頭及び最終アドレス、並びに前記入力したノートナンバNNを、前記アタック波形データADT及びループ波形データLDTに付随させて波形メモリ21に書き込む。以降において、これらのアタック波形データADTの先頭及び最終アドレスをアタックスタートアドレス及びアタックエンドアドレスと呼び、ループ波形データLDTの先頭及び最終アドレスをループスタートアドレス及びループエンドアドレスと呼ぶ。なお、前記外部音信号を表す一連のサンプル値は、この時点で消去されるが、前記のように外部音信号のサンプリング周波数が外部音信号と共に書き込まれている場合には、このサンプリング周波数を前記各データと共に波形メモリ21に書き込んでおく。
【0019】
ここで、後述するリサンプリングによるアタック部とループ部(サステイン部)のピッチ調整の必要性について説明しておく。楽音信号の形成においては、アタック波形データADTを順次読み出した後、ひきつづいてループ波形データLDTを繰り返し読み出して、楽音信号を形成するものである。しかし、この場合、アタック波形データADT及びループ波形データLDTの両読み出しレートを同じにすると、発生される楽音信号のアタック部からサステイン部(ループ部)に切り替わる時点において大きなピッチ変動が発生するおそれがある。
【0020】
すなわち、形成される楽音信号のアタック部においては、外部音信号のサンプリングレートと前記読み出しレートの比に正確に比例した周波数の楽音信号が得られる。しかし、前記波形データの切り出しをサンプル値単位で行ったので、サステイン部(ループ部)においては、図4(B)に示すように、ループスタートポイントP3及びループエンドポイントP4が外部音信号のサステイン部の繰り返し波形の前端及び後端に正確に一致しない。例えば、ループスタートポイントをP3に設定した場合、同ポイントP3に対応する理想的なループエンドポイントはP4*になるが、サンプリング周波数fsが正確に外部音信号の整数倍ではないので、ループスタートポイントP3〜ループエンドポイントP4*までの波形データを切り出すことができず、図4(B)に示す誤差Δtが生じる。このことは、読み出しレートを外部音信号のサンプリングレートと同じにしてループ波形データLDTを読み出しても、新たに形成された楽音信号が外部音信号と同じ周波数にならないことを考えれば明らかである。したがって、一定の読み出しレート(例えば、外部音信号のサンプリングレートと同じ読み出しレート)でアタック波形データADTを読み出した後、ループ波形データLDTを繰り返し読み出せば、発生される楽音信号のアタック部からサステイン部(ループ部)に切り替わる時点において大きなピッチ変動が発生するおそれがある。
【0021】
前記図2のステップ104の処理後、ユーザは、ステップ106にて、パネルスイッチ32を用いて波形メモリ21に記憶した波形データのリサンプリングを指示する。この指示に応答して、CPU11は、図3のリサンプリングプログラムをステップ200にて開始し、ステップ202にて波形メモリ21に書き込んだ外部音信号に対してループ設定処理が行われているか否か、すなわち波形メモリ21にアタック波形データADT及びループ波形データLDTが記憶されているか否かを判定する。なぜならば、減衰系でかつピッチの明確でない、すなわちループを指定し難い音色の楽音波形(例えば、バスドラなどの打楽器音、銃声のような効果音に関する波形)には上述のループ波形データの設定処理が行われずに、外部音信号がそのまま記憶されているからである。ループ設定処理が行われていなければ、ステップ202にて「NO」と判定して、ステップ204にてこのリサンプリングプログラムの実行を終了する。
【0022】
一方、波形メモリ21に書き込んだ外部音信号に対してループ設定処理が行われていれば、ステップ202にて「YES」と判定して、プログラムをステップ206〜210に進める。ステップ206においては、アタック波形データADTを構成する一連のサンプル値のうちでアタックエンドに近い部分の複数周期分のサンプル値を取り出して、同取り出したサンプル値により表された波形データをアタックエンド波形データAEDTとする。具体的には、波形メモリ21に記憶されているアタックエンドアドレスから複数周期分遡った複数のサンプル値を読み出して、同読み出したサンプル値により表された波形データをアタックエンド波形データAEDTとする。そして、このアタックエンド波形データAEDTに高速フーリェ変換(FFT)処理を施して、同波形データAEDTにより表された波形信号を周波数分析して、同波形信号に含まれる周波数成分を検出する。これにより、通常の場合、図5に示すような複数の特定の周波数にそれぞれ対応してピークを有する解析結果が得られる。なお、ノイズ成分などが多くて、前記ピークが検出されないこともある。
【0023】
次に、ステップ208にて、波形メモリ21にアタック及びループ波形データADT,LDTに付随して記憶されているノートナンバNNを読み出して、前記周波数解析結果から同ノートナンバNNに対応したピッチFnn(外部音信号の音高周波数)近傍の周波数帯域にあるピークを検出する。そして、該当するピークが検出されれば、同検出ピークを基本波ピークPK1とし、同ピークPK1の現れる周波数を基本波周波数PF1として設定するとともに、同ピークPK1のレベルを基本波レベルPL1として設定する。なお、前記ノートナンバNNに対応したピッチFnnは、各ノートナンバNNに対応してROM13又は波形メモリ21に予め記憶されている。
【0024】
次に、ステップ210にて、前記周波数解析結果から、前記ノートナンバNNに対応したピッチFnnの2倍近傍の周波数帯域にあるピークを検出する。そして、該当するピークが検出されれば、同検出ピークを2倍音ピークPK2とし、同ピークPK2の現れる周波数を2倍音周波数PF2として設定するとともに、同ピークPK2のレベルを2倍音レベルPL2として設定する。
【0025】
前記ステップ210の処理後、ステップ212にて、前記ステップ206〜210の検出結果に基づく次の判定処理を行う。まず、基本波及び2倍音ピークPK1,PK2が共に検出されなかった場合、ステップ212の判定処理により、プログラムはステップ214に進められる。ステップ214においては、アタックピッチAPを前記と同様にして導出されたノートナンバNNに対応したピッチFnn(外部音信号の音高周波数)に設定するとともに、倍音ナンバHNを「1」に設定する。
【0026】
また、前記ステップ206〜210の処理により、2倍音ピークPK2が検出されず、基本波ピークPK1のみが検出された場合には、ステップ212の判定処理により、プログラムはステップ216に進められる。ステップ216においては、アタックピッチAPを基本波周波数PF1に設定するとともに、倍音ナンバHNを「1」に設定する。また、前記ステップ206〜210の処理により、基本波ピークPK1が検出されず、2倍音ピークPK2のみが検出された場合には、ステップ212の判定処理により、プログラムはステップ218に進められる。ステップ218においては、アタックピッチAPを2倍音周波数PF2に設定するとともに、倍音ナンバHNを「2」に設定する。
【0027】
また、前記ステップ206〜210の処理により、基本波及び2倍音ピークPK1,PK2が共に検出された場合には、ステップ212の判定処理により、プログラムはステップ220に進められる。ステップ220においては、前記いずれのピークが有力であるかが判定される。この場合、基本波レベルPL1と2倍音レベルPL2の大小関係、基本波及び2倍音ピークPK1,PK2の周辺のレベルに基づいて判定されるピッチの安定度、継続性などが判断されて、各ピークの有効度の高い方が有力とみなされる。
【0028】
基本波ピークPK1が有力であると判定されると、ステップ220における「YES」との判定のもとに、プログラムはステップ220に進められる。ステップ220においては、ステップ216の場合と同様に、アタックピッチAPを基本波周波数PF1に設定するとともに、倍音ナンバHNを「1」に設定する。また、2倍音ピークPK2が有力であると判定されると、ステップ220における「NO」との判定のもとに、プログラムはステップ222に進められる。ステップ222においては、ステップ218の場合と同様に、アタックピッチAPを2倍音周波数PF2に設定するとともに、倍音ナンバHNを「2」に設定する。
【0029】
これらのステップ206〜222の処理により、外部音信号のアタック部(正確には、アタックエンド部)のピッチ(周波数)が検出される。言いかえれば、波形メモリ21に記憶されたアタック波形データADTを外部音信号のサンプリング周波数fsと同一の読み出しレートで読み出して楽音信号を形成したとき、同楽音信号のアタック部(正確には、アタックエンド部)のピッチ(周波数)が検出される。
【0030】
次に、ステップ224〜228の処理により、ループ波形データLDTを前記同一の読み出しレートで読み出して楽音信号を形成した場合における楽音信号のピッチ(周波数)を検出する。
【0031】
ステップ224においては、前記ステップ206,208の場合と同様にして波形メモリ21から読み出したノートナンバNNに対応したピッチFnnを導出し、外部音信号をサンプリングしたサンプリング周波数fsを前記導出したピッチFnnで除算して、外部音信号の1周期当たりのサンプル数fs/Fnnを計算する。次に、同ステップ224にて、波形メモリ21に記憶されているループ波形データLDTのループスタートアドレス及びループエンドアドレスを読み出して、同読み出した両アドレスからループサイズLS(設定したループ波形データLDTのサンプル数)を計算する。そして、このループサイズLSを前記1周期のサンプル数fs/Fnnで除算して、ループ波形データLDTに含まれる波数WN(=LS・Fnn/fs)を計算する。具体的に、前記計算結果(LS・Fnn/fs)の小数部1桁目を四捨五入して整数値として計算するとよい。
【0032】
ステップ226においては、サンプリング周波数fsを前記計算したループサイズLSで除算することにより、ループ部の1ループ当たりのピッチ(周波数)を示すループピッチLP(=fs/LS)を計算する。ステップ228においては、前記計算した波数WNとループピッチLPとを乗算することにより、ループ部内に含まれる波形信号のピッチ(周波数)LWP(=WN・LP)を計算する。これにより、波形メモリ21に記憶されたループ波形データLDTを外部音信号のサンプリング周波数fsと同一の読み出しレートで繰り返し読み出して楽音信号を形成したとき、同楽音信号のループ部(サステイン部)のピッチ(周波数)が検出される。
【0033】
このようにして同一の読み出しレートで読み出した場合における両波形データADT,LDTに基づく楽音信号のピッチ(周波数)AP,LWPを計算した後、CPU11は、ステップ230にて倍音ナンバHNが「1」であるか否かを判定する。
【0034】
倍音ナンバHNが「1」すなわちアタック部のピッチ(周波数)として基本波のピッチ(周波数)が検出されていれば、ステップ230にて「YES」と判定して、プログラムをステップ232に進める。ステップ232においては、波形メモリ21に記憶されているアタック波形データADTをアタック部のピッチAPとループ部のピッチLWPに応じてリサンプリング処理する。すなわち、波形メモリ21に記憶されていてサンプリング周波数fsでサンプリングされたアタック波形データADTを、前記両ピッチAP,LWPの比に応じたリサンプリング周波数fs・AP/LWPでサンプリングし直して(リサンプリングして)、波形メモリ21に以前から記憶されていたアタック波形データADTを前記リサンプリングしたアタック波形データADT’に書き換える。このリサンプリングしたアタック波形データADT’を波形メモリ21に書き込む際には、同データADT’を波形メモリ21のアタックエンドアドレスから前方に向かって書き込む。そして、ステップ236にて波形メモリ21内のアタックスタートアドレスをアタック波形データADT’の先頭アドレスに書き換えておく。
【0035】
一方、倍音ナンバHNが「2」すなわちアタック部のピッチ(周波数)として2倍音のピッチ(周波数)が検出されていれば、ステップ230にて「NO」と判定して、プログラムをステップ234に進める。ステップ234においては、波形メモリ21に記憶されているアタック波形データADTを前記リサンプリング周波数fs・AP/LWPの「1/2」に相当するリサンプリング周波数fs・AP/2・LWPでリサンプリングする。これは、アタック部のピッチ検出において、外部音信号の2倍音に相当するピッチが検出されているためである。そして、波形メモリ21に以前から記憶されていたアタック波形データADTを前記のようにしてリサンプリングしたアタック波形データADT’に書き換える。この場合も、ステップ236にて、前記と同様に、波形メモリ21内のアタックスタートアドレスをアタック波形データADT’の先頭アドレスに書き換えておく。
【0036】
このようなリサンプリング処理により、波形メモリ21に記憶されているアタック波形データADT(図6(A))は、図6(B)に示すようなリサンプリングされたアタック波形データADT’に書き換えられる。図6(B)の例は、アタック部(正確にはアタックエンド部)のピッチがループ部のピッチよりも高い場合の例を示すものである。この場合、アタック部のピッチAPはループ部のピッチLWPよりも大きく、前記リサンプリング周波数fs・AP/LWPは元のサンプリング周波数fsよりも大きくなるので、リサンプリング後のアタック波形データADT’のサンプル数は元のアタック波形データADTよりも両ピッチの比AP/LWPに応じた量だけ多くなる。逆に、アタック部のピッチがループ部のピッチよりも低ければ、リサンプリング後のアタック波形データADT’のサンプル数は元のアタック波形データADTよりも両ピッチの比AP/LWPに応じた量だけ少なくなる。
【0037】
なお、前記説明では予め決められた標準のサンプリング周波数fsを用いた場合であるが、上述したように外部音信号のサンプリングの際に波形メモリ21にサンプリング周波数を書き込んでおいた場合には、同書き込んだサンプリング周波数を前記サンプリング周波数fsに代えて用いるとよい。
【0038】
そして、前記ステップ236の処理後、ステップ238にて、このリサンプリングプログラムの実行を終了する。そして、新たな外部音信号を楽音波形処理する場合には、上述した図2の操作にしたがって、波形メモリ21にアタック波形データADT、ループ波形データLDT、及びこれらに付随するデータを波形メモリ21に記憶させる。
【0039】
このようにして波形メモリ21に書き込んだ波形データを読み出して楽音信号を形成する場合、CPU11は音源回路25に対して所望の音高周波数の楽音の発生を指示する。この指示に応答して、音源回路25は、前記音高周波数に対応した読み出しレート(例えば、元のサンプリング周波数fsと同じ読み出しレート)で、波形メモリ21からアクセス管理回路22を介してリサンプリング後のアタック波形データADT’を読み出し、その後にループ波形データLDTを繰り返し読み出す。そして、これらの読み出したアタック波形データADT’及びループ波形データLDTに基づいて楽音信号を形成して、サウンドシステム26を介して出力する。なお、この場合、CPU11の指示により、リリース開始が指示されたときには、音源回路25はループ波形データLDTにより表されたサンプル値の振幅エンベロープを徐々に減衰させて出力するようにすればよい。
【0040】
このようにして楽音信号が発生される結果、アタック部(正確にはアタックエンド部)のピッチがループ部(サステイン部)のピッチよりも高い場合、前記のように波形メモリ21に記憶されていてリサンプリングされたアタック波形データADT’のサンプル数は元のアタック波形データADTのサンプル数よりもピッチ比AP/LWPに比例して多くなっているので、同一の読み出しレートでアタック波形データADT’及びループ波形データLDTを連続して読み出しても、アタック部とループ部との切り替えタイミングにおけるピッチ変動を回避することができる。逆に、アタック部(正確にはアタックエンド部)のピッチがループ部(サステイン部)のピッチよりも低い場合、リサンプリングされたアタック波形データADT’のサンプル数は元のアタック波形データADTのサンプル数よりもピッチ比AP/LWPに比例して少なくなっているので、同一の読み出しレートでアタック波形データADT’及びループ波形データLDTを連続して読み出しても、アタック部とループ部との切り替えタイミングにおけるピッチ変動を回避することができる。
【0041】
上記作動説明からも理解できるとおり、上記実施形態によれば、ステップ206〜222の処理及びステップ224〜228の処理により、外部音信号をサンプリングして形成したアタック波形データADT及びループ波形データLDTを同一レートで読み出して形成した場合の各楽音信号のピッチ(周波数)AP,LWPをそれぞれ検出した。そして、ステップ230〜236の処理により、前記アタック波形データADTを両ピッチAP,LWPの比AP/LWPに応じてリサンプリングすることによりサンプル数を変更した新たなアタック波形データADT’を形成して、元のアタック波形データADTを前記リサンプリングしたアタック波形データADT’に書き換えた。これにより、前記アタック波形データADT’及びループ波形データLDTを同一読み出してレートで連続して読み出しても、両波形データADT’,LDTに基づく楽音信号にピッチ差が生じないようにしたので、波形データに応じて読み出しレートを切り替えるなどの方法をとらなくても、アタック部とループ部との切り替え時におけるピッチ変動を避けることができる。
【0042】
また、上記ステップ206〜222の処理のように、FFT処理による複数のピークを用いて楽音信号のピッチを検出するようにしたので、いずれかのピークしか検出されない場合でも、楽音信号のピッチを計算できる。また、複数のピークを検出できた場合には、同複数の検出ピークを用いて楽音信号のピッチとしてより適切な値を計算できる。その結果、楽音信号のピッチが広く検出できるようになるとともに、同ピッチを精度よく検出できるようになる。
【0043】
なお、上記実施形態においては、アタック波形データADTに対してリサンプリング処理を施すようにしたが、ループ波形データLDTにリサンプリング処理を施すようにしてもよい。この場合、上記実施形態のステップ232,234にて両ピッチAP,LWPを逆にして、ループ波形データLDTをfs・LWP/AP,fs・2・LWP/APでそれぞれリサンプリング処理するようにすればよい。図6(C)はその例を示しており、アタック部(正確にはアタックエンド部)のピッチがループ部(サステイン部)のピッチよりも低い場合、リサンプリングされたループ波形データLDT’のサンプル数は元のループ波形データLDTのサンプル数よりも前記ピッチ比LWP/APに比例して少なくなる。また、逆にアタック部のピッチがループ部のピッチよりも高い場合、リサンプリングされたループ波形データLDT’のサンプル数は元のループ波形データLDTのサンプル数よりも前記ピッチ比LWP/APに比例して多くなる。
【0044】
また、上記実施形態では、ステップ206〜222の処理により、波形データをFFT処理して基本波ピークPK1及び2倍音ピークPK2のみを検出するようにしたが、3倍音、4倍音・・などのさらに多くの倍音に関するピークPK3,PK4・・などをFFT処理により検出するようにして、これらの検出された多数のピークを選択的かつ効果的に用いて楽音信号のピッチを検出するようにしてもよい。これによれば、基本波ピークPK1及び2倍音ピークPK2が検出されなくても、3倍音、4倍音・・などに関するピークPK3,PK4・・などに基づいて楽音信号のピッチを検出できるようになる。また、より多くのピークを組み合わせて用いることにより、楽音信号のピッチの検出精度を良好にできる。
【0045】
また、上記実施形態では、アタック部のピッチ(周波数)を高速フーリェ変換(FFT)処理を用いたステップ206〜222からなる処理により計算し、ループ部のピッチ(周波数)をサンプリング周波数fs、ループサイズLS、波数WN等を用いたステップ224〜228からなる処理により計算した。しかし、ループ読み出しが設定された波形データ同士を接続する場合には、両方の波形データについて後者の処理により両波形データに関するピッチを計算すればよい。また、ループ読み出しが設定されない波形データ同士を接続する場合には、両方の波形データについて前者の処理により両波形データに関するピッチを計算すればよい。この場合、上記実施形態のアタックエンド波形データAEDTをFFT処理するのに代えて、各波形データについて接続するポイントから所定周期又は所定サンプル数分の波形データをそれぞれ取り出して、同取り出した波形データをそれぞれFFT処理するようにすればよい。また、ループ読み出しが設定された波形データの後にループ読み出しが行われない波形データを接続しようとする場合には、ループ読み出しが設定された波形データに関するピッチを後者の処理によって計算し、ループ読み出しが行われない波形データのピッチを前者の処理によって計算するようにすればよい。さらに、前記アタック部、ループ部、及び後述する複数に区分した各波形データのピッチを、再生ピッチが計算されるものであればどのような方法で計算してもよい。
【0046】
特に、前記ループ読み出しが設定されない波形データ同士を接続する場合には、上述のように、両方の波形データについてFFT処理による両波形データに関するピッチを計算するとよい。すなわち、上述したように、基本波ピークPK1及び2倍音ピークPK2、又はこれらのピークに応じて3倍音ピークPK3及び4倍音ピークPK4などの複数のピークを検出して、同検出した複数のピークを用いて両波形データに関するピッチを計算するとよい。これによれば、両波形データは、ピッチとして認識される可能性の高い倍音に基づいて接続されることになり、両波形データの適切な接続が実現される。
【0047】
また、上記実施形態は、ループ部の切り出しをサンプル値単位で行ったために生じる問題を解決するものであるが、この波形データのリサンプリング処理は広く応用されるものである。すなわち、波形メモリ21に所定のサンプリングレートで記憶されていてそれぞれ複数の波形サンプル値からなる複数の波形データを連続して読み出して、同読み出した波形データに基づいて楽音信号を形成する場合には広く応用できる。波形データの切り出しに問題がなく、かつ楽音信号のピッチ(周波数)が同一であるべきにもかかわらず、異なる条件のもとで複数の波形データを採取したために、同楽音信号のピッチ(周波数)が若干ずれることがある。例えば、異なる気温、チューニングの若干変化した状態などの異なる環境下でアタック波形データADTとループ波形データLDTを自然楽器音からそれぞれ独立して採取した場合、タッチの異なる波形データに対してループ波形データLDTを共通に利用しようとする場合などである。このような場合であっても、前記のように連続して読み出される2つ波形データの一方を上記のようなピッチ比に応じてリサンプリングしておけば、前記2つの波形データに基づく楽音信号の再生ピッチ(周波数)を合わせることができる。
【0048】
また、上記実施形態においては、波形データの区分をアタック部とループ部(サステイン部)に分けるようにしたが、アタック部及びループ部(サステイン部)に加え、リリース部も一つの区分として扱って複数のサンプル値からなるリリース波形データを用意するようにしてもよい。また、アタック部、サステイン部及びリリース部をさらに小区分化するようにしてもよい。
【図面の簡単な説明】
【図1】 本発明の一実施形態に係る楽音波形処理装置の全体ブロック図である。
【図2】 ユーザによる音源用波形データの作成手順を示すフローチャートである。
【図3】 図2のリサンプリング指示により実行されるプログラムのフローチャートである。
【図4】 (A)は外部音信号を示す波形図であり、(B)は同外部音信号のループ部の前端及び後端部を拡大して示す波形図である。
【図5】 図3のFFT処理によるスペクトル図である。
【図6】 リサンプリングを説明するための楽音波形の振幅エンベロープ波形図である。
【符号の説明】
10…バス、11…CPU、13…ROM、14…RAM、21…波形メモリ、23…書き込み回路、25…音源回路、31…表示器、32…パネルスイッチ。
Claims (2)
- 所定のサンプリングレートでサンプリングされてアタック部及びサステイン部を有する楽音波形データを入力し、順次読み出されて楽音信号のアタック部を構成するアタック波形データと、アタック波形データの読み出し後に繰り返し読み出されて楽音信号のサステイン部を構成するループ波形データとを生成する波形データ処理装置において、
前記入力した楽音波形データのうちで、ユーザによって指定されたアタックスタートポイントからアタックエンドポイントまでの楽音波形データをアタック波形データとして記憶するとともに、ユーザによって指定されたループスタートポイントからループエンドポイントまでの楽音波形データをループ波形データとして記憶する波形メモリと、
前記波形メモリに記憶されているアタック波形データを再生することによって得られる楽音波形信号のアタック部のピッチを周波数解析によって計算するアタック部ピッチ計算手段と、
前記波形メモリに記憶されているループ波形データを繰り返し読み出すことによって再生される楽音波形信号のループ部のピッチを、周波数解析によって得たループ部のピッチ、ループスタートポイントからループエンドポイントまでのサンプル数を表すループサイズ及び前記所定のサンプリングレートを用いて計算するループ部ピッチ計算手段と、
前記第アタック波形データ及び前記ループ波形データのうちの少なくともいずれか一方を、前記計算された楽音波形信号のアタック部のピッチとループ部のピッチとの比に応じたサンプリングレートに変更してリサンプリングするリサンプリング手段と
を備えたことを特徴とする波形データ処理装置。 - 所定のサンプリングレートでサンプリングされてアタック部及びサステイン部を有する楽音波形データを入力し、順次読み出されて楽音信号のアタック部を構成するアタック波形データと、アタック波形データの読み出し後に繰り返し読み出されて楽音信号のサステイン部を構成するループ波形データとを生成する波形データ処理方法において、
前記入力した楽音波形データのうちで、ユーザによって指定されたアタックスタートポイントからアタックエンドポイントまでの楽音波形データをアタック波形データとして波形メモリに記憶するとともに、ユーザによって指定されたループスタートポイントからループエンドポイントまでの楽音波形データをループ波形データとして波形メモリに記憶し、
前記波形メモリに記憶されているアタック波形データを再生することによって得られる楽音波形信号のアタック部のピッチを周波数解析によって計算し、
前記波形メモリに記憶されているループ波形データを繰り返し読み出すことによって再生される楽音波形信号のループ部のピッチを、周波数解析によって得たループ部のピッチ、ループスタートポイントからループエンドポイントまでのサンプル数を表すループサイズ及び前記所定のサンプリングレートを用いて計算し、
前記第アタック波形データ及び前記ループ波形データのうちの少なくともいずれか一方を、前記計算された楽音波形信号のアタック部のピッチとループ部のピッチとの比に応じたサンプリングレートに変更してリサンプリングする
ようにしたことを特徴とする波形データ処理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000071149A JP3714397B2 (ja) | 2000-03-14 | 2000-03-14 | 波形データ処理装置及び波形データ処理方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000071149A JP3714397B2 (ja) | 2000-03-14 | 2000-03-14 | 波形データ処理装置及び波形データ処理方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2001265351A JP2001265351A (ja) | 2001-09-28 |
| JP3714397B2 true JP3714397B2 (ja) | 2005-11-09 |
Family
ID=18589773
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000071149A Expired - Fee Related JP3714397B2 (ja) | 2000-03-14 | 2000-03-14 | 波形データ処理装置及び波形データ処理方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3714397B2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210043180A1 (en) * | 2019-08-08 | 2021-02-11 | Harmonix Music Systems, Inc. | Techniques for digitally rendering audio waveforms and related systems and methods |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5751421B2 (ja) * | 2011-08-31 | 2015-07-22 | 株式会社Jvcケンウッド | 音声再生装置、音声再生方法、プログラム |
-
2000
- 2000-03-14 JP JP2000071149A patent/JP3714397B2/ja not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210043180A1 (en) * | 2019-08-08 | 2021-02-11 | Harmonix Music Systems, Inc. | Techniques for digitally rendering audio waveforms and related systems and methods |
| US11594207B2 (en) * | 2019-08-08 | 2023-02-28 | Harmonix Music Systems, Inc. | Techniques for digitally rendering audio waveforms and related systems and methods |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2001265351A (ja) | 2001-09-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111009228B (zh) | 电子乐器以及使电子乐器执行的方法 | |
| JP2017049349A (ja) | 楽音信号発生装置 | |
| JP3714397B2 (ja) | 波形データ処理装置及び波形データ処理方法 | |
| JPH0798586A (ja) | 電子楽器の音源装置 | |
| JP2010113278A (ja) | 楽曲処理装置およびプログラム | |
| JP7331344B2 (ja) | 電子楽器、楽音発生方法及びプログラム | |
| JP3659053B2 (ja) | 波形データ生成方法、波形データ生成プログラムを記録した記録媒体および波形データ生成装置 | |
| JPH07121181A (ja) | 音声情報処理装置 | |
| JP4968120B2 (ja) | 電子音楽装置、プログラム | |
| JP3658826B2 (ja) | 楽音生成方法 | |
| JP4876645B2 (ja) | 波形編集装置 | |
| JP4736046B2 (ja) | 波形データ生産方法、波形データ生産装置、プログラムおよび波形メモリ生産方法 | |
| JP3620396B2 (ja) | 情報修正装置及び情報修正プログラムを記録した媒体 | |
| JP4687517B2 (ja) | 波形編集装置 | |
| JP4133064B2 (ja) | 波形再生装置 | |
| JP4345010B2 (ja) | ピッチ変更量決定方法、ピッチ変更量決定装置およびプログラム | |
| JPH05297866A (ja) | 電子楽器および電子楽器における楽音発音方法 | |
| JP3620405B2 (ja) | 楽音変動情報生成方法、楽音変動情報生成装置および記録媒体 | |
| JP3755385B2 (ja) | 音源装置および音源装置において読み取り可能な記録媒体 | |
| JP3659002B2 (ja) | 楽音データ処理装置およびコンピュータシステム | |
| JP2000214852A (ja) | 波形再生装置および波形記憶媒体 | |
| US6235980B1 (en) | Apparatus and method for generating waveform data for musical tone signal generating apparatus | |
| JP2546202B2 (ja) | 波形発生装置 | |
| JP3636056B2 (ja) | 波形データ処理方法 | |
| JP4957591B2 (ja) | 電子音楽装置、プログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041109 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041116 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041206 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050322 |
|
| 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: 20050803 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050816 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090902 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100902 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100902 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110902 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120902 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130902 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |