JP3714397B2 - Waveform data processing apparatus and waveform data processing method - Google Patents

Waveform data processing apparatus and waveform data processing method Download PDF

Info

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
Application number
JP2000071149A
Other languages
Japanese (ja)
Other versions
JP2001265351A (en
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.)
Yamaha Corp
Original Assignee
Yamaha Corp
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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP2000071149A priority Critical patent/JP3714397B2/en
Publication of JP2001265351A publication Critical patent/JP2001265351A/en
Application granted granted Critical
Publication of JP3714397B2 publication Critical patent/JP3714397B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、波形メモリに記憶されていて楽音信号を生成するための複数の波形サンプル値からなる波形データを修正処理する波形データ処理装置及び同方法に関する。
【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…パネルスイッチ。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a waveform data processing apparatus and method for correcting waveform data composed of a plurality of waveform sample values stored in a waveform memory and used to generate a musical tone signal.
[0002]
[Prior art]
Conventionally, one musical sound waveform is divided into a plurality of temporally different parts, for example, divided into an attack part and a sustain part, and waveform data consisting of a plurality of waveform sample values representing the musical sound waveform of each part is independent. A musical tone signal generating apparatus that stores data in a waveform memory and continuously reads out the waveform data of each part to generate one musical tone waveform signal is well known. In this case, the pitch of the musical sound signal generated based on the waveform data of each part read at the same rate may be different, and in order to avoid this, when reading the waveform data of each part, the reading is performed. Musical tone signal generators that allow the rate to be adjusted for each part have also appeared.
[0003]
[Problems to be solved by the invention]
However, even in a musical tone signal generator that can adjust the readout rate for each part, the change of the readout rate is accurately synchronized with the switching of the readout of the waveform data of each part and the readout rate is accurately changed. It is difficult to do this, and there is a problem that the pitch of the tone signal generated when switching the reading of the waveform data of each part becomes discontinuous. Further, in a musical tone signal generating apparatus that does not have the function of adjusting the reading rate for each part, there is a possibility that a large pitch fluctuation occurs when switching the reading of the waveform data of each part.
[0004]
[Outline of the present invention]
The present invention has been made in order to cope with the above-described problem. The object of the present invention is to correct the waveform data of each part stored in the waveform memory in advance, and to perform the waveform data of each part at the same rate. Provided is a waveform data processing apparatus and method for preventing pitch fluctuations even when a musical tone signal is generated by continuously reading.
[0005]
In order to achieve the above object, the structural features of the present invention are: Music waveform data that has been sampled at a predetermined sampling rate and has an attack part and a sustain part is input and read sequentially after the attack waveform data and the attack waveform data are read out to form the attack part of the tone signal. And loop waveform data that forms the sustain part of the musical sound signal Waveform data processor In the above-mentioned input musical sound waveform data, musical sound waveform data from the attack start point specified by the user to the attack end point is stored as attack waveform data, and from the loop start point specified by the user to the loop end point Waveform memory for storing the musical tone waveform data up to the above as loop waveform data, and an attack unit for calculating the pitch of the attack portion of the musical tone waveform signal obtained by reproducing the attack waveform data stored in the waveform memory by frequency analysis The pitch calculation means, the pitch of the loop portion of the musical sound waveform signal reproduced by repeatedly reading out the loop waveform data stored in the waveform memory, the pitch of the loop portion obtained by frequency analysis, the loop start point Loop portion pitch calculating means for calculating using a loop size representing the number of samples from the loop end point and the predetermined sampling rate, and at least one of the first attack waveform data and the loop waveform data, The pitch of the attack part and the pitch of the loop part of the calculated tone waveform signal Change the sampling rate according to the ratio of Resampling And resampling means. Another structural feature of the present invention is also a method for realizing the function of each of the above means.
[0006]
In the present invention configured as described above, Sampling rate changed according to the ratio of the pitch of the attack portion of the musical sound waveform signal obtained by reproducing the attack waveform data and the pitch of the loop portion of the musical sound waveform signal reproduced by repeatedly reading the loop waveform data At least one of the attack waveform data and the loop waveform data is resampled. It will be stored in the waveform memory. Therefore, when generating a musical sound signal, Attack waveform data as well as loop Even if waveform data is read continuously at the same rate, attack From waveform data loop Pitch fluctuation when switching waveform data can be avoided, Attack waveform data as well as loop When generating a musical sound signal using waveform data, it is possible to always provide a musical sound signal in which pitch fluctuations associated with the switching are suppressed as much as possible.
[0007]
DETAILED DESCRIPTION OF THE INVENTION
DESCRIPTION OF EXEMPLARY EMBODIMENTS Hereinafter, an embodiment of the present invention will be described with reference to the drawings. FIG. 1 schematically shows a musical sound waveform processing apparatus according to the embodiment in a block diagram.
[0008]
This musical tone waveform processing apparatus includes a CPU 11, a timer 12, a ROM 13, and a RAM 14 that are connected to a bus 10 and constitute a computer main body. The CPU 11 controls the entire musical sound waveform processing apparatus and executes various programs. The timer 12 provides the CPU 11 with information related to the time necessary for executing the program. The ROM 13 stores a part of the program and various information necessary for generating musical sounds. The RAM 14 temporarily stores a part of the program and information necessary for executing the program.
[0009]
The musical tone waveform processing apparatus also includes a waveform memory 21, an access management circuit 22, a writing circuit 23, a buffer circuit 24, a tone generator circuit 25, and a sound system 26. The writing circuit 23, the buffer circuit 24, and the sound source circuit 25 are connected to the bus 10. The waveform memory 21 is composed of a rewritable nonvolatile memory (memory that can store data even when power supply is cut off), and stores waveform data representing a musical sound waveform and accompanying data accompanying the waveform data. is there. The access management circuit 22 manages writing and reading of waveform data and accompanying data to the waveform memory 21.
[0010]
The writing circuit 23 includes an A / D converter, samples an analog external sound signal supplied to the external sound input terminal 27 at a predetermined sampling frequency (standard sampling frequency) fs, and outputs the sampled external sound signal. The sound signal is A / D converted and supplied to the access management circuit 22. The external sound signal may be input from a microphone or recorded on a tape recorder. The writing circuit 23 can also input an external sound signal that has been converted into a digital signal in advance, and in this case, the A / D conversion is not necessary. The buffer circuit 24 temporarily stores waveform data between the bus 10 and the access management circuit 22.
[0011]
The tone generator circuit 25 generates and outputs a musical sound signal according to an instruction from the CPU 11. In response to the instruction, the tone generator circuit 25 reads out the waveform data stored in the waveform memory 21 via the access management circuit 22 and reads out the same. A musical tone signal is formed and output based on the waveform data. In this case, the waveform data is composed of two waveform data of the attack part and the loop part for one musical tone, the waveform data of the attack part is read sequentially from the head, and then the waveform data of the loop part is repeatedly read. Then, the read waveform data is D / A converted and output as a tone signal. The sound system 26 includes an amplifier, a speaker, and the like, and converts the musical sound signal output from the sound source circuit 25 into an acoustic signal and outputs the sound signal.
[0012]
The musical tone waveform processing apparatus also includes a display 31, a panel switch 32, an interface 33, and a drive circuit 34 connected to the bus 10. The display 31 is controlled by the CPU 11 to display instructions for the user, graphics representing various data, characters, and the like. The panel switch 32 is used for inputting a user instruction and various data to the CPU 11. The interface 33 is connected to other musical tone generators, electronic musical instruments, sequencers, automatic performance devices, personal computers, communication lines, etc., and is used to transmit and receive various information including MIDI information. The drive circuit 34 can write and read various data and programs to various disks such as a hard disk, a compact disk, and a flexible disk as an external memory.
[0013]
In this musical sound waveform processing apparatus, the program shown in FIG. 3 and a program (not shown) which will be described later may be stored in the ROM 13 in advance, and what is recorded on the disk 35 is stored in the RAM 14. It may be used after writing. Alternatively, the program may be used after being input from the outside via the interface 33 and written to the RAM 14 or the disk 35.
[0014]
Next, the operation of the musical tone waveform processing apparatus configured as described above will be described. First, as shown in step 102 of FIG. 2, the user operates the panel switch 32 in order to acquire musical sound waveform data for one sound from the outside. In this case, an external sound signal having a desired pitch frequency (for example, a natural musical instrument sound signal) is input to the writing circuit 23 via the external sound input terminal 27 by playing a natural musical instrument or playing a tape recorder. Further, an external sound signal (external sound waveform data) for one sound recorded on the disk 35 as an external recording medium may be read by the drive circuit 34 and supplied to the writing circuit 23 via the bus 10. .
[0015]
If the input external sound signal is in an analog format, the writing circuit 23 samples the external sound signal input at a predetermined sampling frequency (standard sampling frequency) fs and performs A / D conversion. The converted external sound signal is written into the waveform memory 21. If the input external sound signal is in digital format, the external sound signal is written in the waveform memory 21 as it is. In this case, there is no problem as long as the external sound signal converted into the digital format is sampled at the same sampling frequency as the sampling frequency fs. Data representing the sampling frequency is written in the waveform memory 21 together with the sound signal. The external sound signal may be stored in another writable memory such as the buffer circuit 24 and the RAM 14 instead of the waveform memory 21.
[0016]
Next, in step 104, the user inputs a note number NN corresponding to the pitch frequency of the input external sound signal using the panel switch 32, and displays a waveform diagram of the input external sound signal on the display. 31 is displayed. When the note number NN is input together with the external sound signal, the input of the note number NN using the panel switch 32 is omitted. Next, in step 104, the user performs the cut-out operation of the attack portion and the loop portion using the panel switch 32 while looking at the waveform diagram of the external sound signal on the display device 31 in units of each sample value.
[0017]
In this cut-out operation, the user designates the attack start point P1, attack end point P2, loop start point P3, and loop end point P4 of the external sound signal on the display 31. The attack start point P1 is designated as a timing position at which the amplitude envelope of the musical sound signal starts rising from “0”. The attack end point P2 is designated as a timing position (sustain portion start timing position) at which the change of the amplitude envelope almost disappeared and began to stabilize. The loop start point P3 and the loop end point P4 are designated as the start and end timing positions of the section where the tone signal waveform repeatedly changes in the sustain portion. In this case, one period or a plurality of periods of the tone signal waveform of the sustain section may be designated as the section.
[0018]
By this designation, the CPU 11 executes a program (not shown), among a series of sample values representing an external sound signal written in the waveform memory 21 (or other writable memory such as the buffer circuit 24 and the RAM 14). The sample values belonging to the designated attack start point P1 to attack end point P2 are written in the waveform memory 21 as attack waveform data ADT, and the sample values belonging to the loop start point P3 to loop end point P4 are written to the loop waveform data. Write to the waveform memory 21 as LDT. At this time, the start and end addresses of the attack waveform data ADT, the start and end addresses of the loop waveform data LDT, and the inputted note number NN are attached to the attack waveform data ADT and the loop waveform data LDT to be a waveform memory. Write to 21. Hereinafter, the start and end addresses of these attack waveform data ADT are referred to as an attack start address and an attack end address, and the start and end addresses of the loop waveform data LDT are referred to as a loop start address and a loop end address. Note that a series of sample values representing the external sound signal are deleted at this point, but when the sampling frequency of the external sound signal is written together with the external sound signal as described above, the sampling frequency is set to the sampling frequency. The data is written in the waveform memory 21 together with each data.
[0019]
Here, the necessity of adjusting the pitch of the attack part and the loop part (sustain part) by resampling described later will be described. In the formation of the musical tone signal, the attack waveform data ADT is sequentially read out, and then the loop waveform data LDT is repeatedly read out to form the musical tone signal. However, in this case, if both the read rates of the attack waveform data ADT and the loop waveform data LDT are the same, a large pitch fluctuation may occur at the time of switching from the attack portion of the generated musical sound signal to the sustain portion (loop portion). is there.
[0020]
That is, in the attack portion of the tone signal that is formed, a tone signal having a frequency that is exactly proportional to the ratio between the sampling rate of the external tone signal and the readout rate is obtained. However, since the waveform data is cut out in units of sample values, in the sustain portion (loop portion), as shown in FIG. 4B, the loop start point P3 and the loop end point P4 are the sustain of the external sound signal. It does not exactly match the front and rear edges of the repetitive waveform of the part. For example, when the loop start point is set to P3, the ideal loop end point corresponding to the point P3 is P4 *, but the sampling frequency fs is not exactly an integral multiple of the external sound signal. Waveform data from P3 to loop end point P4 * cannot be cut out, and an error Δt shown in FIG. 4B occurs. This is apparent from the fact that the newly formed musical sound signal does not have the same frequency as the external sound signal even when the loop waveform data LDT is read out with the read rate being the same as the sampling rate of the external sound signal. Therefore, if the attack waveform data ADT is read out at a constant readout rate (for example, the same readout rate as the sampling rate of the external sound signal) and then the loop waveform data LDT is repeatedly read out, the sustain from the attack portion of the generated musical sound signal is sustained. There is a possibility that a large pitch fluctuation may occur at the time of switching to the portion (loop portion).
[0021]
After the processing of step 104 in FIG. 2, the user instructs the resampling of the waveform data stored in the waveform memory 21 using the panel switch 32 in step 106. In response to this instruction, the CPU 11 starts the resampling program of FIG. 3 at step 200, and determines whether or not the loop setting processing is performed on the external sound signal written to the waveform memory 21 at step 202. That is, it is determined whether or not the attack waveform data ADT and the loop waveform data LDT are stored in the waveform memory 21. This is because the above-mentioned loop waveform data setting processing is applied to musical tone waveforms that are damped and whose pitch is not clear, that is, tones that are difficult to specify a loop (for example, waveforms related to percussion instrument sounds such as bass drums and sound effects such as gunshots). This is because the external sound signal is stored as it is. If the loop setting process has not been performed, “NO” is determined in step 202, and the execution of the resampling program is terminated in step 204.
[0022]
On the other hand, if the loop setting process has been performed on the external sound signal written in the waveform memory 21, “YES” is determined in the step 202, and the program proceeds to the steps 206 to 210. In step 206, sample values for a plurality of cycles in a portion close to the attack end are extracted from a series of sample values constituting the attack waveform data ADT, and the waveform data represented by the extracted sample values is used as the attack end waveform. The data is AEDT. Specifically, a plurality of sample values that are traced back by a plurality of cycles from the attack end address stored in the waveform memory 21 are read, and the waveform data represented by the read sample values is used as the attack end waveform data AEDT. The attack end waveform data AEDT is subjected to a fast Fourier transform (FFT) process, and the waveform signal represented by the waveform data AEDT is subjected to frequency analysis to detect a frequency component included in the waveform signal. Thereby, in the normal case, an analysis result having peaks corresponding to a plurality of specific frequencies as shown in FIG. 5 is obtained. The peak may not be detected due to many noise components.
[0023]
Next, at step 208, the note number NN stored in the waveform memory 21 along with the attack and loop waveform data ADT, LDT is read out, and the pitch Fnn (corresponding to the note number NN is read from the frequency analysis result. A peak in a frequency band in the vicinity of the pitch frequency of the external sound signal) is detected. If the corresponding peak is detected, the detected peak is set as the fundamental wave peak PK1, the frequency at which the peak PK1 appears is set as the fundamental wave frequency PF1, and the level of the peak PK1 is set as the fundamental wave level PL1. . The pitch Fnn corresponding to the note number NN is stored in advance in the ROM 13 or the waveform memory 21 corresponding to each note number NN.
[0024]
Next, in step 210, a peak in a frequency band near twice the pitch Fnn corresponding to the note number NN is detected from the frequency analysis result. If a corresponding peak is detected, the detected peak is set as the second harmonic peak PK2, the frequency at which the peak PK2 appears is set as the second harmonic frequency PF2, and the level of the peak PK2 is set as the second harmonic level PL2. .
[0025]
After the process of step 210, in step 212, the next determination process based on the detection results of steps 206 to 210 is performed. First, when neither the fundamental wave nor the second harmonic peak PK1, PK2 is detected, the program proceeds to step 214 by the determination process of step 212. In step 214, the attack pitch AP is set to the pitch Fnn (pitch frequency of the external sound signal) corresponding to the note number NN derived in the same manner as described above, and the harmonic number HN is set to “1”.
[0026]
If the second overtone peak PK2 is not detected and only the fundamental wave peak PK1 is detected by the processing of steps 206 to 210, the program proceeds to step 216 by the determination processing of step 212. In step 216, the attack pitch AP is set to the fundamental frequency PF1, and the harmonic number HN is set to “1”. If the fundamental wave peak PK1 is not detected by the processing of steps 206 to 210 and only the second harmonic peak PK2 is detected, the program proceeds to step 218 by the determination processing of step 212. In step 218, the attack pitch AP is set to the second harmonic frequency PF2, and the harmonic number HN is set to “2”.
[0027]
If both the fundamental wave and the second harmonic peaks PK1 and PK2 are detected by the processing of steps 206 to 210, the program proceeds to step 220 by the determination processing of step 212. In step 220, it is determined which of the peaks is dominant. In this case, the pitch stability and continuity determined based on the magnitude relationship between the fundamental wave level PL1 and the second harmonic level PL2, the level around the fundamental wave and the second harmonic peaks PK1, PK2, and the like are determined. The higher the effectiveness of, the more effective.
[0028]
If it is determined that the fundamental wave peak PK1 is influential, the program proceeds to step 220 under the determination of “YES” in step 220. In step 220, as in step 216, the attack pitch AP is set to the fundamental frequency PF1, and the harmonic number HN is set to “1”. If it is determined that the second overtone peak PK2 is dominant, the program proceeds to step 222 under the determination of “NO” in step 220. In step 222, as in the case of step 218, the attack pitch AP is set to the second harmonic frequency PF2, and the harmonic number HN is set to “2”.
[0029]
By the processing of these steps 206 to 222, the pitch (frequency) of the attack part (more precisely, the attack end part) of the external sound signal is detected. In other words, when the attack waveform data ADT stored in the waveform memory 21 is read out at the same reading rate as the sampling frequency fs of the external sound signal to form a musical sound signal, the attack portion of the same musical sound signal (more precisely, the attack is performed). The pitch (frequency) of the end portion is detected.
[0030]
Next, the pitch (frequency) of the musical tone signal when the musical tone signal is formed by reading the loop waveform data LDT at the same readout rate is detected by the processing of steps 224 to 228.
[0031]
In step 224, the pitch Fnn corresponding to the note number NN read from the waveform memory 21 is derived in the same manner as in steps 206 and 208, and the sampling frequency fs obtained by sampling the external sound signal is calculated using the derived pitch Fnn. By dividing, the number of samples fs / Fnn per cycle of the external sound signal is calculated. Next, in step 224, the loop start address and loop end address of the loop waveform data LDT stored in the waveform memory 21 are read out, and the loop size LS (the set loop waveform data LDT of the set loop waveform data LDT is read from both of the read addresses). Calculate the number of samples). Then, the wave size WN (= LS · Fnn / fs) included in the loop waveform data LDT is calculated by dividing the loop size LS by the number of samples fs / Fnn in one period. Specifically, the first decimal place of the calculation result (LS · Fnn / fs) may be rounded off to calculate an integer value.
[0032]
In step 226, the loop frequency LP (= fs / LS) indicating the pitch (frequency) per loop of the loop portion is calculated by dividing the sampling frequency fs by the calculated loop size LS. In step 228, the pitch (frequency) LWP (= WN · LP) of the waveform signal included in the loop portion is calculated by multiplying the calculated wave number WN by the loop pitch LP. As a result, when the tone signal is formed by repeatedly reading out the loop waveform data LDT stored in the waveform memory 21 at the same reading rate as the sampling frequency fs of the external sound signal, the pitch of the loop portion (sustain portion) of the same tone signal is formed. (Frequency) is detected.
[0033]
After calculating the pitch (frequency) AP, LWP of the musical sound signal based on the both waveform data ADT, LDT in the case of reading at the same reading rate in this way, the CPU 11 determines in step 230 that the harmonic number HN is “1”. It is determined whether or not.
[0034]
If the harmonic number HN is “1”, that is, the pitch (frequency) of the fundamental wave is detected as the pitch (frequency) of the attack portion, “YES” is determined in step 230, and the program proceeds to step 232. In step 232, the attack waveform data ADT stored in the waveform memory 21 is resampled according to the pitch AP of the attack portion and the pitch LWP of the loop portion. That is, the attack waveform data ADT stored in the waveform memory 21 and sampled at the sampling frequency fs is resampled at the resampling frequency fs · AP / LWP corresponding to the ratio between the two pitches AP and LWP (resampling). Then, the attack waveform data ADT previously stored in the waveform memory 21 is rewritten to the resampled attack waveform data ADT ′. When the resampled attack waveform data ADT ′ is written to the waveform memory 21, the data ADT ′ is written forward from the attack end address of the waveform memory 21. In step 236, the attack start address in the waveform memory 21 is rewritten to the head address of the attack waveform data ADT '.
[0035]
On the other hand, if the harmonic number HN is “2”, that is, if the pitch (frequency) of the second harmonic is detected as the pitch (frequency) of the attack portion, “NO” is determined in step 230 and the program proceeds to step 234. . In step 234, the attack waveform data ADT stored in the waveform memory 21 is resampled at a resampling frequency fs · AP / 2 · LWP corresponding to “½” of the resampling frequency fs · AP / LWP. . This is because the pitch corresponding to the second overtone of the external sound signal is detected in the pitch detection of the attack portion. Then, the attack waveform data ADT previously stored in the waveform memory 21 is rewritten to the attack waveform data ADT ′ resampled as described above. Also in this case, in step 236, the attack start address in the waveform memory 21 is rewritten to the head address of the attack waveform data ADT ′ in the same manner as described above.
[0036]
By such resampling processing, the attack waveform data ADT (FIG. 6A) stored in the waveform memory 21 is rewritten to the resampled attack waveform data ADT ′ as shown in FIG. 6B. . The example of FIG. 6B shows an example in which the pitch of the attack part (accurately, the attack end part) is higher than the pitch of the loop part. In this case, the pitch AP of the attack portion is larger than the pitch LWP of the loop portion, and the re-sampling frequency fs · AP / LWP is larger than the original sampling frequency fs. Therefore, the sample of the attack waveform data ADT ′ after the resampling The number is larger than the original attack waveform data ADT by an amount corresponding to the ratio AP / LWP of both pitches. Conversely, if the pitch of the attack portion is lower than the pitch of the loop portion, the number of samples of the attack waveform data ADT ′ after resampling is an amount corresponding to the ratio AP / LWP of both pitches than the original attack waveform data ADT. Less.
[0037]
In the above description, the standard sampling frequency fs determined in advance is used. However, when the sampling frequency is written in the waveform memory 21 when sampling the external sound signal as described above, the same is true. The written sampling frequency may be used in place of the sampling frequency fs.
[0038]
Then, after the processing in step 236, execution of the resampling program is terminated in step 238. When a new external sound signal is processed as a musical sound waveform, the attack waveform data ADT, the loop waveform data LDT, and data associated therewith are stored in the waveform memory 21 in accordance with the operation shown in FIG. Remember me.
[0039]
When the waveform data written in the waveform memory 21 is read in this way to form a musical tone signal, the CPU 11 instructs the tone generator circuit 25 to generate a musical tone having a desired pitch frequency. In response to this instruction, the sound source circuit 25 performs re-sampling from the waveform memory 21 via the access management circuit 22 at a read rate corresponding to the pitch frequency (for example, the same read rate as the original sampling frequency fs). The attack waveform data ADT ′ is read out, and then the loop waveform data LDT is repeatedly read out. A musical tone signal is formed on the basis of the read attack waveform data ADT ′ and loop waveform data LDT, and is output via the sound system 26. In this case, when the release start is instructed by the instruction of the CPU 11, the sound source circuit 25 may gradually attenuate and output the amplitude envelope of the sample value represented by the loop waveform data LDT.
[0040]
As a result of the musical sound signal being generated in this way, when the pitch of the attack part (accurately, the attack end part) is higher than the pitch of the loop part (sustain part), it is stored in the waveform memory 21 as described above. Since the number of samples of the resampled attack waveform data ADT ′ is larger in proportion to the pitch ratio AP / LWP than the number of samples of the original attack waveform data ADT, the attack waveform data ADT ′ and Even if the loop waveform data LDT is continuously read, it is possible to avoid the pitch fluctuation at the switching timing between the attack part and the loop part. On the contrary, when the pitch of the attack portion (accurately, the attack end portion) is lower than the pitch of the loop portion (sustain portion), the number of samples of the resampled attack waveform data ADT ′ is the number of samples of the original attack waveform data ADT. Since the number is smaller in proportion to the pitch ratio AP / LWP than the number, even if the attack waveform data ADT ′ and the loop waveform data LDT are continuously read out at the same readout rate, the switching timing between the attack part and the loop part It is possible to avoid pitch fluctuations in
[0041]
As can be understood from the above operation description, according to the above embodiment, the attack waveform data ADT and the loop waveform data LDT formed by sampling the external sound signal are processed by the processing of steps 206 to 222 and the processing of steps 224 to 228. The pitches (frequencies) AP and LWP of each musical tone signal when read out and formed at the same rate were detected. Then, by the processing of steps 230 to 236, the attack waveform data ADT 'is resampled according to the ratio AP / LWP of both pitches AP and LWP, thereby forming new attack waveform data ADT' in which the number of samples is changed. The original attack waveform data ADT was rewritten with the resampled attack waveform data ADT ′. As a result, even if the attack waveform data ADT ′ and the loop waveform data LDT are read at the same rate and continuously read at the rate, no pitch difference is generated in the tone signal based on both waveform data ADT ′ and LDT. Pitch fluctuation at the time of switching between the attack part and the loop part can be avoided without taking a method such as switching the reading rate according to the data.
[0042]
In addition, since the pitch of the musical sound signal is detected using a plurality of peaks obtained by FFT processing as in the processing of steps 206 to 222 above, the pitch of the musical sound signal is calculated even when only one of the peaks is detected. it can. If a plurality of peaks can be detected, a more appropriate value can be calculated as the pitch of the musical sound signal using the plurality of detected peaks. As a result, the pitch of the musical sound signal can be detected widely and the pitch can be detected with high accuracy.
[0043]
In the above embodiment, the resampling process is performed on the attack waveform data ADT. However, the resampling process may be performed on the loop waveform data LDT. In this case, both pitches AP and LWP are reversed in steps 232 and 234 of the above embodiment, and the loop waveform data LDT is resampled by fs · LWP / AP and fs · 2 · LWP / AP, respectively. That's fine. FIG. 6C shows such an example. When the pitch of the attack portion (accurately, the attack end portion) is lower than the pitch of the loop portion (sustain portion), a sample of the resampled loop waveform data LDT ′ is shown. The number is smaller in proportion to the pitch ratio LWP / AP than the number of samples of the original loop waveform data LDT. Conversely, when the pitch of the attack portion is higher than the pitch of the loop portion, the number of samples of the resampled loop waveform data LDT ′ is proportional to the pitch ratio LWP / AP rather than the number of samples of the original loop waveform data LDT. And increase.
[0044]
In the above-described embodiment, the waveform data is subjected to FFT processing in steps 206 to 222 so as to detect only the fundamental wave peak PK1 and the second harmonic peak PK2. However, the third harmonic, the fourth harmonic,. The peaks PK3, PK4, etc. relating to many overtones may be detected by FFT processing, and the pitch of the musical sound signal may be detected by selectively and effectively using these detected many peaks. . According to this, even if the fundamental wave peak PK1 and the second harmonic peak PK2 are not detected, the pitch of the musical sound signal can be detected based on the peaks PK3, PK4,. . In addition, by using more peaks in combination, it is possible to improve the pitch detection accuracy of the musical sound signal.
[0045]
Further, in the above embodiment, the pitch (frequency) of the attack part is calculated by the process including steps 206 to 222 using the fast Fourier transform (FFT) process, and the pitch (frequency) of the loop part is calculated as the sampling frequency fs and the loop size. The calculation was performed by the processing including steps 224 to 228 using LS, wave number WN, and the like. However, when connecting waveform data set to loop readout, the pitch for both waveform data may be calculated by the latter process for both waveform data. When connecting waveform data for which loop reading is not set, the pitch for both waveform data may be calculated by the former processing for both waveform data. In this case, instead of performing the FFT processing on the attack end waveform data AEDT of the above embodiment, waveform data corresponding to a predetermined period or a predetermined number of samples are respectively extracted from the connecting points for each waveform data, and the extracted waveform data is obtained. Each may be subjected to FFT processing. In addition, when trying to connect waveform data that is not loop-read after waveform data that is set to loop readout, the pitch for the waveform data that is set to loop readout is calculated by the latter processing, The pitch of waveform data that is not performed may be calculated by the former process. Furthermore, the pitch of the attack part, the loop part, and each of the waveform data divided into a plurality of parts described later may be calculated by any method as long as the reproduction pitch is calculated.
[0046]
In particular, when the waveform data for which loop reading is not set is connected, as described above, the pitch for both waveform data by FFT processing may be calculated for both waveform data. That is, as described above, a plurality of peaks such as the fundamental wave peak PK1 and the second overtone peak PK2, or the third overtone peak PK3 and the fourth overtone peak PK4 according to these peaks are detected, and the detected plurality of peaks are determined. It is good to calculate the pitch for both waveform data. According to this, both waveform data will be connected based on the overtone with high possibility of being recognized as a pitch, and appropriate connection of both waveform data is implement | achieved.
[0047]
Moreover, although the said embodiment solves the problem which arises because the extraction of a loop part was performed per sample value, this resampling process of waveform data is applied widely. That is, when a plurality of waveform data that are stored in the waveform memory 21 at a predetermined sampling rate and are each composed of a plurality of waveform sample values are continuously read and a musical tone signal is formed based on the read waveform data. Widely applicable. Although there is no problem in cutting out the waveform data and the pitch (frequency) of the musical sound signal should be the same, multiple waveform data were collected under different conditions, so the pitch (frequency) of the musical sound signal was May shift slightly. For example, when the attack waveform data ADT and the loop waveform data LDT are collected independently from the natural instrument sound under different environments such as different temperatures and slightly changed tuning conditions, the loop waveform data for the waveform data with different touches This is the case when trying to use LDT in common. Even in such a case, if one of the two waveform data continuously read out as described above is resampled according to the pitch ratio as described above, the musical tone signal based on the two waveform data is used. Playback pitch (frequency) can be adjusted.
[0048]
In the above embodiment, the waveform data is divided into the attack part and the loop part (sustain part), but in addition to the attack part and the loop part (sustain part), the release part is also handled as one part. Release waveform data consisting of a plurality of sample values may be prepared. Further, the attack part, the sustain part, and the release part may be further subdivided.
[Brief description of the drawings]
FIG. 1 is an overall block diagram of a musical sound waveform processing apparatus according to an embodiment of the present invention.
FIG. 2 is a flowchart showing a procedure for creating sound source waveform data by a user.
FIG. 3 is a flowchart of a program executed in response to a resampling instruction in FIG.
4A is a waveform diagram showing an external sound signal, and FIG. 4B is an enlarged waveform diagram showing a front end and a rear end of a loop portion of the external sound signal.
FIG. 5 is a spectrum diagram obtained by FFT processing in FIG. 3;
FIG. 6 is an amplitude envelope waveform diagram of a musical sound waveform for explaining resampling.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 10 ... Bus, 11 ... CPU, 13 ... ROM, 14 ... RAM, 21 ... Waveform memory, 23 ... Write circuit, 25 ... Sound source circuit, 31 ... Display, 32 ... Panel switch.

Claims (2)

所定のサンプリングレートでサンプリングされてアタック部及びサステイン部を有する楽音波形データを入力し、順次読み出されて楽音信号のアタック部を構成するアタック波形データと、アタック波形データの読み出し後に繰り返し読み出されて楽音信号のサステイン部を構成するループ波形データとを生成する波形データ処理装置において、
前記入力した楽音波形データのうちで、ユーザによって指定されたアタックスタートポイントからアタックエンドポイントまでの楽音波形データをアタック波形データとして記憶するとともに、ユーザによって指定されたループスタートポイントからループエンドポイントまでの楽音波形データをループ波形データとして記憶する波形メモリと、
前記波形メモリに記憶されているアタック波形データを再生することによって得られる楽音波形信号のアタック部のピッチを周波数解析によって計算するアタック部ピッチ計算手段と、
前記波形メモリに記憶されているループ波形データを繰り返し読み出すことによって再生される楽音波形信号のループ部のピッチを、周波数解析によって得たループ部のピッチ、ループスタートポイントからループエンドポイントまでのサンプル数を表すループサイズ及び前記所定のサンプリングレートを用いて計算するループ部ピッチ計算手段と、
前記第アタック波形データ及び前記ループ波形データのうちの少なくともいずれか一方を、前記計算された楽音波形信号のアタック部のピッチとループ部のピッチとの比に応じたサンプリングレートに変更してリサンプリングするリサンプリング手段と
を備えたことを特徴とする波形データ処理装置。
Music waveform data that has been sampled at a predetermined sampling rate and has an attack part and a sustain part is input and read sequentially after the attack waveform data and the attack waveform data are read out to form the attack part of the tone signal. In the waveform data processing device for generating the loop waveform data constituting the sustain portion of the musical sound signal ,
Among the input musical sound waveform data, the musical sound waveform data from the attack start point specified by the user to the attack end point is stored as attack waveform data, and from the loop start point specified by the user to the loop end point. A waveform memory for storing musical sound waveform data as loop waveform data;
Attack part pitch calculating means for calculating the pitch of the attack part of the musical sound waveform signal obtained by reproducing the attack waveform data stored in the waveform memory by frequency analysis;
The pitch of the loop portion of the musical sound waveform signal reproduced by repeatedly reading out the loop waveform data stored in the waveform memory, the pitch of the loop portion obtained by frequency analysis, the number of samples from the loop start point to the loop end point Loop part pitch calculating means for calculating using a loop size representing the predetermined sampling rate;
Wherein at least either one of the attack waveform data and the loop waveform data, the calculated resampled by changing the sampling rate according to the ratio of the pitch of the loop portion of the attack portion of the musical tone waveform signal And a resampling means for performing the waveform data processing.
所定のサンプリングレートでサンプリングされてアタック部及びサステイン部を有する楽音波形データを入力し、順次読み出されて楽音信号のアタック部を構成するアタック波形データと、アタック波形データの読み出し後に繰り返し読み出されて楽音信号のサステイン部を構成するループ波形データとを生成する波形データ処理方法において、
前記入力した楽音波形データのうちで、ユーザによって指定されたアタックスタートポイントからアタックエンドポイントまでの楽音波形データをアタック波形データとして波形メモリに記憶するとともに、ユーザによって指定されたループスタートポイントからループエンドポイントまでの楽音波形データをループ波形データとして波形メモリに記憶し、
前記波形メモリに記憶されているアタック波形データを再生することによって得られる楽音波形信号のアタック部のピッチを周波数解析によって計算し、
前記波形メモリに記憶されているループ波形データを繰り返し読み出すことによって再生される楽音波形信号のループ部のピッチを、周波数解析によって得たループ部のピッチ、ループスタートポイントからループエンドポイントまでのサンプル数を表すループサイズ及び前記所定のサンプリングレートを用いて計算し、
前記第アタック波形データ及び前記ループ波形データのうちの少なくともいずれか一方を、前記計算された楽音波形信号のアタック部のピッチとループ部のピッチとの比に応じたサンプリングレートに変更してリサンプリングする
ようにしたことを特徴とする波形データ処理方法。
Music waveform data that has been sampled at a predetermined sampling rate and has an attack part and a sustain part is input and read sequentially after the attack waveform data and the attack waveform data are read out to form the attack part of the tone signal. In the waveform data processing method for generating the loop waveform data constituting the sustain portion of the musical sound signal ,
Of the input musical sound waveform data, musical sound waveform data from the attack start point specified by the user to the attack end point is stored in the waveform memory as attack waveform data, and from the loop start point specified by the user to the loop end. Music waveform data up to the point is stored in the waveform memory as loop waveform data,
Calculating the pitch of the attack portion of the musical sound waveform signal obtained by reproducing the attack waveform data stored in the waveform memory by frequency analysis;
The pitch of the loop portion of the musical sound waveform signal reproduced by repeatedly reading out the loop waveform data stored in the waveform memory, the pitch of the loop portion obtained by frequency analysis, the number of samples from the loop start point to the loop end point Using the loop size representing and the predetermined sampling rate,
Wherein at least either one of the attack waveform data and the loop waveform data, the calculated resampled by changing the sampling rate according to the ratio of the pitch of the loop portion of the attack portion of the musical tone waveform signal A waveform data processing method characterized by the above.
JP2000071149A 2000-03-14 2000-03-14 Waveform data processing apparatus and waveform data processing method Expired - Fee Related JP3714397B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000071149A JP3714397B2 (en) 2000-03-14 2000-03-14 Waveform data processing apparatus and waveform data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000071149A JP3714397B2 (en) 2000-03-14 2000-03-14 Waveform data processing apparatus and waveform data processing method

Publications (2)

Publication Number Publication Date
JP2001265351A JP2001265351A (en) 2001-09-28
JP3714397B2 true JP3714397B2 (en) 2005-11-09

Family

ID=18589773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000071149A Expired - Fee Related JP3714397B2 (en) 2000-03-14 2000-03-14 Waveform data processing apparatus and waveform data processing method

Country Status (1)

Country Link
JP (1) JP3714397B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5751421B2 (en) * 2011-08-31 2015-07-22 株式会社Jvcケンウッド Audio playback device, audio playback method, and program

Cited By (2)

* Cited by examiner, † Cited by third party
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 (en) 2001-09-28

Similar Documents

Publication Publication Date Title
JP2020056977A (en) Electronic music instrument, tone generation method, and program
JP2017049349A (en) Musical sound signal generation device
JP7331344B2 (en) Electronic musical instrument, musical tone generating method and program
JP2010113278A (en) Music processing device and program
JP3714397B2 (en) Waveform data processing apparatus and waveform data processing method
JPH0798586A (en) Sound source device for electronic music instrument
JP4736046B2 (en) Waveform data production method, waveform data production apparatus, program, and waveform memory production method
JP3659053B2 (en) Waveform data generation method, recording medium recording waveform data generation program, and waveform data generation apparatus
JP2007248518A (en) Waveform editing device
JPH07121181A (en) Sound information processor
JP4687517B2 (en) Waveform editing device
JP3658826B2 (en) Music generation method
JP4968120B2 (en) Electronic music device, program
JP4133064B2 (en) Waveform playback device
JP3620396B2 (en) Information correction apparatus and medium storing information correction program
JP3620405B2 (en) Musical sound fluctuation information generating method, musical sound fluctuation information generating apparatus, and recording medium
JP3755385B2 (en) Sound source device and recording medium readable by sound source device
JPH05297866A (en) Electronic musical instrument and its musical tone generating method
JP3659002B2 (en) Musical sound data processing apparatus and computer system
US6235980B1 (en) Apparatus and method for generating waveform data for musical tone signal generating apparatus
JP2546202B2 (en) Waveform generator
JP3636056B2 (en) Waveform data processing method
JP2000214852A (en) Waveform reproducing apparatus and waveform storage medium
JP4345010B2 (en) Pitch change amount determination method, pitch change amount determination device, and program
JP4957591B2 (en) Electronic music device, program

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