JP3942719B2 - 波形データ編集装置 - Google Patents
波形データ編集装置 Download PDFInfo
- Publication number
- JP3942719B2 JP3942719B2 JP03053698A JP3053698A JP3942719B2 JP 3942719 B2 JP3942719 B2 JP 3942719B2 JP 03053698 A JP03053698 A JP 03053698A JP 3053698 A JP3053698 A JP 3053698A JP 3942719 B2 JP3942719 B2 JP 3942719B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform data
- waveform
- length
- phrase
- designating
- 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
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は、波形データ編集装置に関し、さらに詳細には、複数の波形データを同時に再生する際の編集に用いて好適な波形データ編集装置に関する。
【0002】
【従来の技術】
一般に、電子楽器においては、例えば、複数の波形データを予め記憶しておき、これら複数の波形データの中から2つ以上の波形データを選択し、選択した2つ以上の波形データを同時に再生することができるようになされている。
【0003】
ところで、2つ以上の波形データを同時に再生する場合には、各波形データのテンポや長さが一致している方が、これら波形データを同時に再生した際に得られる楽音としては聴感上心地よいことが知られている。
【0004】
ところが、一般に、任意の2つ以上の波形データのテンポや長さが一致していることは稀であり、一致していないことの方が遥かに多い。
【0005】
このため、従来の電子楽器においては、2つ以上の波形データを同時に再生する場合には、各波形データを再生した際の長さが一致するように、使用者が電卓やストップウオッチを用いて各波形データ間におけるテンポや長さの割合の計算を行い、この計算に従って各波形データを再生する際の長さを変更するようにしていた。
【0006】
しかしながら、複数の波形データを再生する度毎に、これら波形データを再生する際の長さを一致させるために、上記した各波形データ間におけるテンポや長さの割合の計算をおこなうということは、非常に煩雑であり、かつ、時間がかかるという問題点があった。
【0007】
【発明が解決しようとする課題】
本発明は、上記したような従来の技術の有する種々の問題点に鑑みてなされたものであり、その目的とするところは、複数の波形データを同時に再生する際に、各波形データを再生する際の長さが一致するように、波形データを自動的に編集することができる波形データ編集装置を提供しようとするものである。
【0008】
【課題を解決するための手段】
上記目的を達成するために、本発明のうち請求項1に記載の発明は、複数の波形データを記憶した記憶手段と、上記記憶手段に記憶された複数の波形データの中から編集対象となる第1の波形データと基準となる第2の波形データとを指定する指定手段と、上記第1の波形データの再生部分を指定する第1の再生部分指定手段と、上記第1の波形データの上記第1の再生部分指定手段により指定された再生部分の拍数を指定する第1の拍数指定手段と、上記第1の再生部分指定手段によって指定された再生部分と上記第1の拍数指定手段によって指定された拍数とに基づいて、上記第1の波形データの1拍の長さを演算する第1の波形データ演算手段と、上記第2の波形データの再生部分を指定する第2の再生部分指定手段と、上記第2の波形データの上記第2の再生部分指定手段により指定された再生部分の拍数を指定する第2の拍数指定手段と、上記第2の再生部分指定手段によって指定された再生部分と上記第2の拍数指定手段によって指定された拍数とに基づいて、上記第2の波形データの1拍の長さを演算する第2の波形データ演算手段と、上記第1の波形データ演算手段によって演算された上記第1の波形データの1拍の長さが、上記第2の波形データ演算手段によって演算された上記第2の波形データの1拍の長さと一致するように、上記第1の波形データを圧縮または伸長する編集手段とを有するようにしたものである。
【0011】
従って、本発明のうち請求項1に記載の発明によれば、1拍の長さを単位として第1の波形データの長さが圧縮または伸長されることになる。
【0012】
また、本発明のうち請求項2に記載の発明は、本発明のうち請求項1に記載の発明において、上記編集手段が、上記第1の波形データの1拍の整数分の1の長さを単位として上記第1の波形データを分割し、上記分割された第1の波形データが上記第2の波形データの1拍の上記整数分の1の長さと一致するように上記分割された第1の波形データを圧縮または伸長するものである。
【0013】
従って、本発明のうち請求項2に記載の発明によれば、1拍の長さの整数分の1の長さを単位として第1の波形データの長さが圧縮または伸長されることになる。
【0014】
また、本発明のうち請求項3に記載の発明は、複数の波形データを記憶した記憶手段と、上記記憶手段に記憶された複数の波形データの中から編集対象となる第1の波形データと基準となる第2の波形データとを指定する指定手段と、上記第1の波形データの再生部分を指定する第1の再生部分指定手段と、上記第2の波形データの再生部分を指定する第2の再生部分指定手段と、上記第1の再生部分指定手段によって指定された再生部分の長さが、上記第2の再生部分指定手段によって指定された再生部分の長さと一致するように、上記第1の波形データを圧縮または伸長する編集手段とを有するようにしたものである。
【0015】
従って、本発明のうち請求項3に記載の発明によれば、第1の波形データの再生部分の長さが圧縮または伸長されて、第1の波形データの再生部分の長さと第2の波形データの再生部分の長さとが一致することになる。
【0016】
【発明の実施の形態】
以下、添付の図面を参照しながら、本発明による波形データ編集装置の実施の形態の一例を詳細に説明する。
【0017】
図1には、本発明による波形データ編集装置の実施の形態の一例を備えた電子楽器の全体構成を表すブロック構成図が示されている。
【0018】
この電子楽器は、その全体の動作の制御を中央処理装置(CPU)10を用いて制御するように構成されており、このCPU10には、バス12を介して、予め複数の音声(楽音)をあるサンプリング周波数によりサンプリングすることによって得た複数の波形データを記憶した波形メモリ14と、この電子楽器の動作を制御するためのプログラムなどが記憶されたリードオンリメモリ(ROM)16と、ワーキング用の領域などが設定されたランダム・アクセス・メモリ(RAM)18と、波形データの再生を行う再生器20と、後述する各種の設定を行うための操作子群ならびに表示器などが設けられた操作パネル22とを有して構成されている。
【0019】
即ち、図1に示す電子楽器においては、CPU10によって全体の動作の制御が行われるものであり、再生器20はCPU10の制御の下に波形メモリ14に記憶された波形データを再生し、再生された波形データはデジタル/アナログ変換器やスピーカーなどから構成されるサウンドシステム(図示せず)を経て、音声(楽音)として出力されることになる。
【0020】
図2には、操作パネル22の構成が示されており、操作パネル22には、表示器としての液晶ディスプレイ装置(LCD)30と、LCD30に表示されるカーソルをLCD30において右方向に移動するためのカーソル右方向移動操作子32と、LCD30に表示されるカーソルをLCD30において左方向に移動するためのカーソル左方向移動操作子34と、パラメータを増加(プラス:+)させる場合およびある操作を肯定(Yes)的に確認をする場合に操作する+/Yes操作子36と、パラメータを減少(マイナス:−)させる場合およびある操作を否定(No)的に確認をする場合に操作する−/No操作子38と、波形データの長さを変換するモード(以下、「タイムストレッチモード」と称する。)に入る際に操作するタイムストレッチ(Time Strech)操作子40と、後述する波形パラメータなどの各種パラメータのパラメータ値を設定するためのモード(以下、「サンプルエディットモード」と称する。)に入る際に操作するサンプルエディット(Sample Edit)操作子42と、サンプルエディットモードにおいて波形パラメータなどの各種パラメータのパラメータ値を設定する際に使用するテン・キー44と、図2上において符号a〜dにより示す4個のパッド操作子46とが設けられている。
【0021】
ここで、各パッド操作子46には、波形メモリ14に記憶された波形データがそれぞれ割り当てられているものであり、図2上における符号a〜dに対応してパッド番号a〜dがふられて管理されている。そして、各パッド操作子46の操作に応じて、操作されたパッド操作子46に割り当てられている波形データが波形メモリ14から読み出されて、再生器20により再生されることになる。
【0022】
図3には、波形メモリ14のフォーマットが概念的に示されており、波形メモリ14には、パッド番号aのパッド操作子46に割り当てられる波形データを記憶する領域たる波形aエリアと、パッド番号bのパッド操作子46に割り当てられる波形データを記憶する領域たる波形bエリアと、パッド番号cのパッド操作子46に割り当てられる波形データを記憶する領域たる波形cエリアと、パッド番号dのパッド操作子46に割り当てられる波形データを記憶する領域たる波形dエリアとが設けられており、これら波形aエリア〜波形dエリアに、あるサンプリング周波数でサンプリングされた音声(楽音)の波形データがそれぞれ記憶されている。なお、各波形エリアは、同じ大きさになっている。
【0023】
図4には、RAM18の本発明に関わる記憶領域のフォーマットが概念的に示されており、RAM18には、後述するシステムパラメータを記憶したシステムエリアと、波形パラメータを記憶した波形パラメータエリアと、タイムストレッチモードにおいて使用するタイムストレッチパラメータを記憶するタイムストレッチパラメータエリアと、タイムストレッチモードにおいて使用するタイムストレッチバッファのためのタイムストレッチバッファエリアとが設けられている。
なお、タイムストレッチバッファエリアは、長さの変更された波形データを一時記憶するためのものであり、波形メモリ14の各波形エリアと同じ大きさとなされている。
【0024】
次に、図5に示す波形パラメータの概念説明図を参照しながら、RAM18の波形パラメータエリアに記憶される波形パラメータについて説明するが、波形パラメータエリアに記憶される波形パラメータとしては、以下の(1)〜(7)に示すものがある。
【0025】
なお、本明細書において、「ブロック」とは、タイムストレッチモードにおいて波形データを伸張または圧縮する際の処理単位を意味するものとする。
【0026】
また、各波形パラメータを示す符号の添字「n」は、「a」、「b」、「c」あるいは「d」のいずれかをとるものであり、「n=a」の場合にはその波形パラメータは波形メモリ14の波形aエリアに記憶された波形データに関するものであることを示し、「n=b」の場合にはその波形パラメータは波形メモリ14の波形bエリアに記憶された波形データに関するものであることを示し、「n=c」の場合にはその波形パラメータは波形メモリ14の波形cエリアに記憶された波形データに関するものであることを示し、「n=d」の場合にはその波形パラメータは波形メモリ14の波形dエリアに記憶された波形データに関するものであることを示している。また、本明細書において、波形データを記憶するメモリの1つのアドレスには、波形データの1つのサンプルが記憶されているものとする。
【0027】
(1)Sn:フレーズ(本明細書においては、波形aエリア〜波形dエリアにそれぞれ記憶される波形データの中で、再生対象として指定される領域を意味するものとする。)の開始点(フレーズ再生開始点)を示す波形パラメータである。Snは、使用者がサンプルエディットモードにおいてテン・キー44を用いて任意に設定可能なようになされている。
【0028】
(2)Ln:フレーズをループ(繰り返し)再生する際のループ部分の開始点(フレーズループ点)を示す波形パラメータである。Lnは、使用者がサンプルエディットモードにおいてテン・キー44を用いて任意に設定可能なようになされている。
【0029】
(3)En:フレーズの終了点(フレーズ再生終了点)を示す波形パラメータである。Enは、使用者がサンプルエディットモードにおいてテン・キー44を用いて任意に設定可能なようになされている。
【0030】
(4)Un:波形aエリア〜波形dエリアにそれぞれ記憶される波形データの長さに1ブロック分の長さを加えた値を示す波形パラメータであり、波形データの記憶されるメモリのアドレスを単位としている。Unは、波形エリアに設定されている波形データの長さに基づいて自動的に設定される。
【0031】
(5)Nn:「En−Ln」の長さ、即ち、ループ部分の長さを基準となる音符の何拍分とするかを示す波形パラメータである。Nnは、使用者がサンプルエディットモードにおいてテン・キー44を用いて任意に設定可能なようになされている。
【0032】
(6)On:Nn設定のための基準となる音符を示す波形パラメータである。
Onは、使用者がサンプルエディットモードにおいてテン・キー44を用いて任意に設定可能なようになされている。
【0033】
(7)△Mn:「ブロックの長さ=On×(En−Ln)/Nn/4/Ms」を示す波形パラメータである。△Mnは、波形データの記憶されるメモリのアドレスを単位としており、On、En、Ln、Nn、Ms(Msについては後述する。)に基づいて自動的に設定される。
【0034】
図6には、RAM18の波形パラメータエリアのフォーマットが概念的に示されており、波形メモリ14の波形aエリア〜波形dエリアにそれぞれ記憶された波形データに関して、各波形データ毎に上記した波形パラメータがそれぞれ記憶されている。
【0035】
次に、RAM18のシステムエリアに記憶されるシステムパラメータについて説明する。
【0036】
システムパラメータとしては、以下の(1)〜(2)に示すものがある。
【0037】
(1)Ms:4分音符の何分の1をブロックの長さにするかを示すシステムパラメータである。取り得る値は1〜16であり、使用者がサンプルエディットモードにおいてテン・キー44を用いて任意に設定可能なようになされているが、デフォルト値としては「4」が設定されている。従って、デフォルト値の4においては、4分音符の4分の1をブロックの長さとすることになる。
【0038】
(2)Fl:後述するタイムストレッチモードにおいてクロスフェードさせる際のサンプル数であるフェードサンプル数の半分の値を示すシステムパラメータである。取り得る値は、0〜100であり、使用者がサンプルエディットモードにおいてテン・キー44を用いて任意に設定可能なようになされているが、デフォルト値は20に設定されている。
【0039】
以上の構成において、この電子楽器によって実行される処理について説明するが、再生器18による波形データの再生処理やサンプルエディットモードにおけるテン・キー44を用いた各種パラメータの設定処理に関しては、従来より公知の技術を転用すればよいので、以下の説明においては、この電子楽器を構成する本発明による波形データ編集装置の実施に関連する点のみを説明するものとする。
【0040】
即ち、この電子楽器においては、操作パネル22のタイムストレッチ操作子40を操作すると、タイムストレッチモードに入り、LCD30が図7に示す画面表示に切り換わる。
【0041】
LCD30において、カーソルCは、カーソル右方向移動操作子32とカーソル左方向移動操作子34との操作により、「from Pad[ ]」の領域と「to Pad[ ]」の領域との2箇所に移動可能とされており、所望の領域にカーソルCを移動し、所望のパッド操作子46を押すと、押されたパッド操作子46に割り当てられている波形データが波形メモリ14から読み出されて再生器18により再生されるとともに、カーソルCがある位置の「[ ]内に、押されたパッド操作子46のパッド番号が入る。図7においては、「from Pad[ ]」の領域にはパッド番号aが入れられており、「to Pad[ ]」の領域にはパッド番号bが入れられている場合が示されている。
【0042】
また、LCD30には、
△:「from Pad[ ]」の領域と「to Pad[ ]」の領域とに入れられたパッド番号にそれぞれ対応する波形データに設定されたブロックの長さ△Mn(n=a,b,c,d)
%:「from Pad[ ]」の領域と「to Pad[ ]」の領域とに入れられたパッド番号にそれぞれ対応する波形データに設定されたブロックの長さの割合
を表示するようになされている。
【0043】
従って、図7に示す表示画面には、パッド番号aの波形データたる「ブロックの長さ△=5512.5」の波形データを、パッド番号bの波形データたる「ブロックの長さ△=4725.0」の波形データに合うように、「長さの割合%=85.71」の割合で変換(この場合に「変換」は、パッド番号aの波形データの長さを、パッド番号bの波形データの長さに一致するように、「85.71%」に圧縮することを意味する。)される状態であることが示されている。
【0044】
この図7に示すLCD30の表示状態において、+/Yes操作子36を操作するとタイムストレッチイベントが発生し、後述する図8乃至図10に示すフローチャートのタイムストレッチ処理のルーチンが起動されて実行が開始される。
一方、この図7に示すLCD30の表示状態において、−/No操作子38を操作すると、タイムストレッチモードがキャンセルされて、LCD30の画面表示が従前に表示されていた画面に切り替わる。
【0045】
次ぎに、図8乃至図10に示すタイムストレッチ処理のルーチンのフローチャートを参照しながら、タイムストレッチ処理を説明するが、このフローチャートは、パッド番号aの波形データを、パッド番号bの波形データに合わせるように圧縮または伸長する場合について示しているが、他の場合についても同様な処理を行えばよいことは勿論である。
【0046】
なお、このタイムストレッチ処理のルーチンのフローチャートにおいて使用されるデータとしては、以下の(1)乃至(4)に示すものがある。
【0047】
(1)A(x):パッド番号aの波形データたるフレーズAのアドレスxに対する波形データである。
【0048】
(2)T(x):タイムストレッチバッファの波形データのアドレスxに対するデータである。
【0049】
(3)商(x/y):割り算x/yの解の実数部分を示すデータである。
【0050】
(4)余(x/y):割り算x/yの解の実数部分を示すデータである。
【0051】
また、このタイムストレッチ処理のルーチンのフローチャートにおいて使用されるレジスタまたはフラグとしては、以下の(1)乃至(8)に示すものがある。
【0052】
(1)n:タイムストレッチバッファのアドレスを記憶するレジスタである。
(2)Z:レジスタnの値より算出されるフレーズAのアドレスを記憶するレジスタである
(3)F:最終ブロックであるかを示すフラグであり、「F=0」のときはまだ最終ブロックでないと判断しクロスフェードをすることを示し、「F=1」のときは最終ブロックであると判断しクロスフェードをしないことを示す。
【0053】
(4)X:レジスタnの値をパッド番号bの波形データたるフレーズBのブロックの長さ△Mbで分割した時の番号(自然数)を記憶するレジスタである。
【0054】
(5)Y:X番目のブロックの中でのアドレスを記憶するレジスタである。
【0055】
(6)Y’:Yの値が転送されるレジスタである。
【0056】
(7)J:クロスフェード部分の重みを記憶しておくレジスタである。
【0057】
(8)K:クロスフェード部分の重みを記憶しておくレジスタである。
【0058】
なお、レジスタYの値がフレーズBのブロックの中点△Mb/2を越えたときに、「(X+1)×△Ma+Fl」と「X×△Ma+△Mb+Fl」とのどちらかがパラメータUa(フレーズAの波形データの長さ+1)よりも大きくなった場合にFに「1」をセットし、以後のブロックが複数ブロックあってもこれを単一ブロックと見なして、レジスタZの値のみをインクリメントするようにしている。
【0059】
また、St、Lt、Et、Utは、タイムストレッチバッファ(以下、タイムストレッチバッファをTにより示す。)のアドレスを示すタイムストレッチパラメータである。
【0060】
そして、タイムストレッチイベントが発生されて、図8に示すタイムストレッチ処理のメインルーチンが起動されると、まず、ステップS802において、タイムストレッチパラメータSt、Lt、Et、Utに最大値をセットし、レジスタnに0をセットし、レジスタYに0をセットし、フラグFに0をセットするという初期設定の処理を行う。
【0061】
そして、ステップS802の処理を終了すると、ステップS804へ進み、タイムストレッチ処理のサブルーチンである読み出しアドレス算出処理ルーチン(図9)を実行する。
【0062】
この図9に示す読み出しアドレス算出処理ルーチンにおいては、フラグFに0がセットされているか否かを判断し(ステップS902)、フラグFに0がセットされていないと判断された場合、即ち、フラグFに1がセットされていると判断された場合には、レジスタZを1だけインクリメントして(ステップS904)、タイムストレッチ処理のメインルーチンにリターンする。
【0063】
一方、フラグFに0がセットされている場合には、現在のレジスタYの値をレジスタY’に転送して保存し(ステップS906)、データ「商(n/△Mb)」の値(nを長さ△Mbで分割した時の番号(自然数))をレジスタXに代入し、データ「余(n/Mb)」の値(フレーズBのX番目のブロックの中でのアドレス)をレジスタYに代入し、「X×△Ma+Y」の演算結果(nより算出されるフレーズAのアドレス)をレジスタZに代入する(ステップS908)。
【0064】
それから、前回のレジスタYの値を記憶したレジスタY’の値がフレーズBのブロックの中点△Mb/2より小さく、かつ、フレーズBのブロックの中点△Mb/2がレジスタYの値(フレーズBのX番目のブロックの中でのアドレス)以下であるか否かを判断する(ステップS910)。
【0065】
ここで、前回のレジスタYの値を記憶したレジスタY’の値がフレーズBのブロックの中点△Mb/2より小さく、かつ、フレーズBのブロックの中点△Mb/2がレジスタYの値(フレーズBのX番目のブロックの中でのアドレス)以下であるとは判断されなかった場合には、タイムストレッチ処理のメインルーチンにリターンする。
【0066】
一方、前回のレジスタYの値を記憶したレジスタY’の値がフレーズBのブロックの中点△Mb/2より小さく、かつ、フレーズBのブロックの中点△Mb/2がレジスタYの値(フレーズBのX番目のブロックの中でのアドレス)以下である場合には、パラメータUaの値(フレーズAの波形データの長さ+1)が「X×△Ma+△Mb+Fl」以下であるか、または、パラメータUaの値(フレーズAの波形データの長さ+1)が「(X+1)×△Ma+Fl」以下であるか否かを判断する(ステップS912)。
【0067】
ここで、パラメータUaの値(フレーズAの波形データの長さ+1)が「X×△Ma+△Mb+Fl」以下であるか、または、パラメータUaの値(フレーズAの波形データの長さ+1)が「(X+1)×△Ma+Fl」以下であるとは判断されなかった場合には、タイムストレッチ処理のメインルーチンにリターンする。
【0068】
一方、パラメータUaの値(フレーズAの波形データの長さ+1)が「X×△Ma+△Mb+Fl」以下であるか、または、パラメータUaの値(フレーズAの波形データの長さ+1)が「(X+1)×△Ma+Fl」以下であると判断された場合には、フラグFに1をセットしてから(ステップS914)、タイムストレッチ処理のメインルーチンにリターンする。
【0069】
上記したステップS804の読み出しアドレス算出処理ルーチンを終了すると、ステップS806へ進む。
【0070】
そして、ステップS806では、S点の判定を行うものであり、レジスタZの値(レジスタnより算出されるフレーズAのアドレス)がフレーズAのフレーズ再生開始点Saの値以上であり、かつ、タイムストレッチパラメータStが最大値であるか否かを判断する。
【0071】
ここで、レジスタZの値(レジスタnより算出されるフレーズAのアドレス)がフレーズAのフレーズ再生開始点Saの値以上であり、かつ、タイムストレッチパラメータStが最大値であると判断された場合には、タイムストレッチパラメータStにレジスタnの値を代入し(ステップS808)、それからステップS810へ進む。
【0072】
一方、レジスタZの値(レジスタnより算出されるフレーズAのアドレス)がフレーズAのフレーズ再生開始点Saの値以上であり、かつ、タイムストレッチパラメータStが最大値であるとは判断されなかった場合には、そのままステップS810へ進む。
【0073】
そして、ステップS810では、L点の判定を行うものであり、レジスタZの値(レジスタnより算出されるフレーズAのアドレス)がフレーズAのフレーズループ点Laの値以上であり、かつ、タイムストレッチパラメータLtが最大値であるか否かを判断する。
【0074】
ここで、レジスタZの値(レジスタnより算出されるフレーズAのアドレス)がフレーズAのフレーズループ点Laの値以上であり、かつ、タイムストレッチパラメータLtが最大値であると判断された場合には、タイムストレッチパラメーLtにレジスタnの値を代入し(ステップS812)、それからステップS814へ進む。
【0075】
一方、レジスタZの値(レジスタnより算出されるフレーズAのアドレス)がフレーズAのフレーズループ点Laの値以上であり、かつ、タイムストレッチパラメータLtが最大値であるとは判断されなかった場合には、そのままステップS814へ進む。
【0076】
そして、ステップS814では、E点の判定を行うものであり、レジスタZの値(レジスタnより算出されるフレーズAのアドレス)がフレーズAのフレーズ再生終了点Eaの値以上であり、かつ、タイムストレッチパラメータEtが最大値であるか否かを判断する。
【0077】
ここで、レジスタZの値(レジスタnより算出されるフレーズAのアドレス)がフレーズAのフレーズ再生終了点Eaの値以上であり、かつ、タイムストレッチパラメータEtが最大値であると判断された場合には、タイムストレッチパラメーEtにレジスタnの値を代入し(ステップS816)、それからステップS818へ進む。
【0078】
一方、レジスタZの値(レジスタnより算出されるフレーズAのアドレス)がフレーズAのフレーズ再生終了点Eaの値以上であり、かつ、タイムストレッチパラメータEtが最大値であるとは判断されなかった場合には、そのままステップS818へ進む。
【0079】
そして、ステップS818では、終了判定を行うものであり、レジスタZの値(レジスタnより算出されるフレーズAのアドレス)がパラメータUaの値(フレーズAの波形データの長さ+1)よりも小さいか否かを判断する。
【0080】
ここで、レジスタZの値(レジスタnより算出されるフレーズAのアドレス)がパラメータUaの値(フレーズAの波形データの長さ+1)よりも小さいと判断された場合には、ステップS820へ進み、タイムストレッチ処理のサブルーチンであるデータ処理ルーチン(図10)を実行する。
【0081】
この図10に示すデータ処理ルーチンにおいては、ステップS1002において、レジスタYの値がFl(フェードサンプル数の半分の値)よりも小さく、かつ、レジスタXの値が1より大きく、かつ、フラグFが0にセットされているか否かを判断する。
【0082】
そして、ステップS1002において、レジスタYの値がFl(フェードサンプル数の半分の値)よりも小さく、かつ、レジスタXの値が1より大きく、かつ、フラグFが0にセットされていると判断された場合には、「1/2+Y/Fl」の演算結果をレジスタJに代入し、「1/2−Y/Fl」の演算結果をレジスタKに代入し、「J×A(Z)+K×A(Z−△Ma+△Mb)」の演算によりデータT(n)を得て(ステップS1004)、タイムストレッチ処理のメインルーチンにリターンする。
【0083】
一方、ステップS1002において、レジスタYの値がFl(フェードサンプル数の半分の値)よりも小さく、かつ、レジスタXの値が1より大きく、かつ、フラグFが0にセットされているとは判断されなかった場合には、ステップS1006へ進み、レジスタYの値が「△Mb−Fl」の値よりも大きく、かつ、フラグFが0にセットされているか否かを判断する。
【0084】
そして、ステップS1006において、レジスタYの値が「△Mb−Fl」の値よりも大きく、かつ、フラグFが0にセットされていると判断された場合には、「1/2+(△Mb−Y)/Fl」の演算結果をレジスタJに代入し、「1/2−(△Mb−Y)/Fl」の演算結果をレジスタKに代入し、「J×A(Z)+K×A(Z+△Ma−△Mb)」の演算によりデータT(n)を得て(ステップS1008)、タイムストレッチ処理のメインルーチンにリターンする。
【0085】
一方、ステップS1006において、レジスタYの値が「△Mb−Fl」の値よりも大きく、かつ、フラグFが0にセットされているとは判断されなかった場合には、データA(Z)をデータT(n)として得て(ステップS1010)、タイムストレッチ処理のメインルーチンにリターンする。
【0086】
上記したステップS820のデータ処理ルーチンを終了すると、ステップS822へ進んでレジスタnを1だけインクリメントしてから、ステップS804へ戻る。
【0087】
また、ステップS818において、レジスタZの値(レジスタnより算出されるフレーズAのアドレス)がパラメータUaの値(フレーズAの波形データの長さ+1)よりも小さくない、即ち、レジスタZの値(レジスタnより算出されるフレーズAのアドレス)がパラメータUaの値(フレーズAの波形データの長さ+1)以上であると判断された場合には、タイムストレッチパラメータUtにレジスタnの値を代入する(ステップS824)。
【0088】
それから、タイムストレッチバッファTの波形データを波形メモリ14の波形aエリアに書き込み(ステップS826)、タイムストレッチパラメータSt、Lt、ET、Utを波形パラメータSa、La、Ea、Uaに書き込んで(ステップS828)このタイムストレッチ処理のメインルーチンを終了する。
【0089】
従って、上記したタイムストレッチ処理によれば、図11に示すように、システムパラメータF1が設定され、フレーズAのブロック長さ△Maが「Oa×(Ea−La)/Na/4/Ms」であり、フレーズBのブロック長さ△Mbが「Ob×(Eb−Lb)/Nb/4/Ms」であり、タイムストレッチバッファTのアドレスを示すタイムストレッチパラメータがSt、Lt、Et、Utであるとき、次のようなフレーズAの波形データを変換する処理が行われる。
【0090】
即ち、まず、タイムストレッチバッファTのアドレスを0からカウントアップして行く。
【0091】
そして、各カウント値をアドレスに持つタイムストレッチバッファTの値を求めて格納して行くが、このときに、図12に示すように、求める値が波形パラメータSa(フレーズ再生開始点)よりも後ろのアドレスを参照するようになったときタイムストレッチパラメータStをマークし、求める値が波形パラメータLa(フレーズループ点)よりも後ろのアドレスを参照するようになったときタイムストレッチパラメータLtをマークし、求める値が波形パラメータEa(フレーズ再生終了点)よりも後ろのアドレスを参照するようになったときタイムストレッチパラメータEtをマークし、求める値が波形パラメータUa(フレーズAの波形データの長さ+1)よりも後ろのアドレスを参照するようになったときタイムストレッチパラメータUtをマークする。
【0092】
こうしてタイムストレッチパラメータUtをマークすると、タイムストレッチバッファTおよびタイムストレッチパラメータSt、Lt、Et、Utを、フレーズAの波形データにコピーするものである。
【0093】
ここで、図13(a)(b)を参照しながら、フレーズAの波形データをフレーズBの波形データの長さに圧縮する場合(△Maが△Mbよりも大きい場合)について説明すると、この場合には、フレーズAの波形データをフレーズAにおけるブロック長さ△Maで区切り、ブロック長さ△Maで区切った各ブロックの中で、フレーズBのブロック長さ△Mbを越える部分(図13の「注」に示す模様の部分である。)については使わないようにして、フレーズAの波形データの各ブロックの長さをフレーズBのブロック長さ△Mbに圧縮するものである。そして、図13(b)に示すように、フレーズBのブロック長さ△MbとされたフレーズAの波形データの各ブロックを、ブロック長さ△Mbの幅で配置して、各ブロック間をクロスフェードで接続するものである。
【0094】
また、図14(a)(b)を参照しながら、フレーズAの波形データをフレーズBの波形データの長さに伸長(△Maが△Mbよりも小さい場合)について説明すると、この場合には、フレーズAの波形データをフレーズAにおけるブロック長さ△Maで区切り、ブロック長さ△Maで区切った各ブロックに関して、フレーズBのブロック長さ△Mbに足りない部分(図14の「注」に示す模様の部分である。)については重複して使うようにして、フレーズAの波形データの各ブロックの長さをフレーズBのブロック長さ△Mbに伸長するものである。そして、図14(b)に示すように、フレーズBのブロック長さ△MbとされたフレーズAの波形データの各ブロックを、ブロック長さ△Mbの幅で配置して、各ブロック間をクロスフェードで接続するものである。
【0095】
また、図15を参照しながら、レジスタYの値が△Mb/2を越えたときの処理について説明すると、この場合、レジスタYの値がタイムストレッチデータを△Mbの幅で配置する中点を越えたとき(即ち、レジスタYの値が△Mb/2より大きく、レジスタY’の値(前回の値)が△Mb/2より小さいとき)、次回クロスフェードの終了点でのクロスフェードに使う2つのデータを示す2つのアドレス「(X+1)×△Ma+Fl」、「X×△Ma+△Mb+Fl」がパラメータUaの値以上でないかを判断し、2つのアドレスのうちどちらか一方でもパラメータUaの値以上であればタイムストレッチの終了が近く、次回のクロスフェード区間でクロスフェードがきれいに行えないということを判断して、以後はレジスタnとレジスタZとが1づつ同時にインクリメントされるようにフラグFに「1」をセットするものである。
【0096】
従って、以後のブロックは単一のブロックとして変換され、タイムストレッチデータが不連続になることを防ぐものである。
【0097】
なお、上記した実施の形態においては、タイムストレッチの変換を「1拍の長さ」を基準に変換したが、システムパラメータなどにより「再生部分の長さ」を基準にタイムストレッチの変換を行うようにしてもよい。この場合には、フレーズA、フレーズBに対して、NnやOnは適当な値(例えば、Na=Nb=8、Oa=Ob=4)が共通に代入されたものとして変換を行えばよい。
【0098】
【発明の効果】
本発明は、以上説明したように構成されているので、複数の波形データを同時に再生する際に、各波形データを再生する際のテンポや長さが一致するように、波形データを自動的に編集することができるという優れた効果を奏する。
【0099】
また、本発明は、以上説明したように構成されているので、1拍の整数分の1単位でタイムストレッチの変換を行うことにより、聴覚上自然な圧縮伸長が行われるという優れた効果を奏する。
【図面の簡単な説明】
【図1】本発明による波形データ編集装置の実施の形態の一例を備えた電子楽器の全体構成を表すブロック構成図である。
【図2】操作パネルの構成を示す説明図である。
【図3】波形メモリのフォーマットを概念的に示す説明図である。
【図4】RAMのフォーマットを概念的に示す説明図である。
【図5】波形パラメータの概念説明図である。
【図6】RAMの波形パラメータエリアのフォーマットを概念的に示す説明図である。
【図7】タイムストレッチモードにおけるLCDの画面表示を示す説明図である。
【図8】タイムストレッチ処理のメインルーチンのフローチャートである。
【図9】タイムストレッチ処理のサブルーチンである読み出しアドレス算出処理ルーチンのフローチャートである。
【図10】タイムストレッチ処理のサブルーチンであるデータ処理ルーチンのフローチャートである。
【図11】タイムストレッチ処理の説明図である。
【図12】タイムストレッチ処理の説明図である。
【図13】(a)(b)はフレーズAの波形データをフレーズBの波形データの長さに圧縮する場合のタイムストレッチ処理の説明図である。
【図14】(a)(b)はフレーズAの波形データをフレーズBの波形データの長さに伸長する場合のタイムストレッチ処理の説明図である。
【図15】レジスタYの値が△Mb/2を越えたときの処理の説明図である。
【符号の説明】
10 中央処理装置(CPU)
12 バス
14 波形メモリ
16 ROM
18 RAM
20 再生器
22 操作パネル
30 液晶ディスプレイ装置(LCD)
32 カーソル右方向移動操作子
34 カーソル左方向移動操作子
36 +/Yes操作子
38 −/No操作子
40 タイムストレッチ(Time Strech)操作子
42 サンプルエディット(Sample Edit)操作子
44 テン・キー
46 パッド操作子
Claims (3)
- 複数の波形データを記憶した記憶手段と、
前記記憶手段に記憶された複数の波形データの中から編集対象となる第1の波形データと基準となる第2の波形データとを指定する指定手段と、
前記第1の波形データの再生部分を指定する第1の再生部分指定手段と、
前記第1の波形データの前記第1の再生部分指定手段により指定された再生部分の拍数を指定する第1の拍数指定手段と、
前記第1の再生部分指定手段によって指定された再生部分と前記第1の拍数指定手段によって指定された拍数とに基づいて、前記第1の波形データの1拍の長さを演算する第1の波形データ演算手段と、
前記第2の波形データの再生部分を指定する第2の再生部分指定手段と、
前記第2の波形データの前記第2の再生部分指定手段により指定された再生部分の拍数を指定する第2の拍数指定手段と、
前記第2の再生部分指定手段によって指定された再生部分と前記第2の拍数指定手段によって指定された拍数とに基づいて、前記第2の波形データの1拍の長さを演算する第2の波形データ演算手段と、
前記第1の波形データ演算手段によって演算された前記第1の波形データの1拍の長さが、前記第2の波形データ演算手段によって演算された前記第2の波形データの1拍の長さと一致するように、前記第1の波形データを圧縮または伸長する編集手段と
を有する波形データ編集装置。 - 請求項1に記載の波形データ編集装置において、
前記編集手段は、前記第1の波形データの1拍の整数分の1の長さを単位として前記第1の波形データを分割し、前記分割された第1の波形データが前記第2の波形データの1拍の前記整数分の1の長さと一致するように前記分割された第1の波形データを圧縮または伸長する
ものである波形データ編集装置。 - 複数の波形データを記憶した記憶手段と、
前記記憶手段に記憶された複数の波形データの中から編集対象となる第1の波形データと基準となる第2の波形データとを指定する指定手段と、
前記第1の波形データの再生部分を指定する第1の再生部分指定手段と、
前記第2の波形データの再生部分を指定する第2の再生部分指定手段と、
前記第1の再生部分指定手段によって指定された再生部分の長さが、前記第2の再生部分指定手段によって指定された再生部分の長さと一致するように、前記第1の波形データを圧縮または伸長する編集手段と
を有する波形データ編集装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03053698A JP3942719B2 (ja) | 1998-01-28 | 1998-01-28 | 波形データ編集装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03053698A JP3942719B2 (ja) | 1998-01-28 | 1998-01-28 | 波形データ編集装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11212556A JPH11212556A (ja) | 1999-08-06 |
JP3942719B2 true JP3942719B2 (ja) | 2007-07-11 |
Family
ID=12306531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP03053698A Expired - Fee Related JP3942719B2 (ja) | 1998-01-28 | 1998-01-28 | 波形データ編集装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3942719B2 (ja) |
-
1998
- 1998-01-28 JP JP03053698A patent/JP3942719B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11212556A (ja) | 1999-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4201679B2 (ja) | 波形発生装置 | |
JP3942719B2 (ja) | 波形データ編集装置 | |
JP3980750B2 (ja) | 電子楽器 | |
JPH10260685A (ja) | 波形発生装置 | |
JP4170525B2 (ja) | 波形読出装置 | |
JP4270102B2 (ja) | 自動演奏装置及びプログラム | |
JP2004258564A (ja) | スコアデータ編集装置、スコアデータ表示装置およびプログラム | |
JP4162766B2 (ja) | 演奏情報生成装置および自動演奏装置 | |
JP4685298B2 (ja) | 波形発生装置 | |
JPH09146554A (ja) | 波形圧縮伸長装置 | |
JP3656906B2 (ja) | 時間軸可変の波形データ再生装置 | |
JP3178176B2 (ja) | 自動伴奏装置 | |
JP2005266392A (ja) | 演奏データ再生装置及びプログラム | |
JP3480001B2 (ja) | 自動演奏データ編集装置 | |
JP2001075571A (ja) | 波形生成装置 | |
JPH11219175A (ja) | 自動演奏装置 | |
JP4037973B2 (ja) | 波形再生装置 | |
JP3939421B2 (ja) | テンポ設定装置 | |
JP2005010462A (ja) | 自動演奏装置及び自動演奏処理プログラム並びに自動演奏パターンデータを記録したコンピュータ読み取り可能な記録媒体 | |
JP3758041B2 (ja) | 楽音制御データ発生装置 | |
JP2000206973A (ja) | 波形再生装置 | |
JPH048081A (ja) | 音楽画像情報処理装置 | |
JP2000206972A (ja) | 波形デ―タの演奏制御装置 | |
JP3660379B2 (ja) | 音源制御情報の記憶方法及び音源制御装置 | |
JP4835433B2 (ja) | 演奏パターン再生装置及びそのコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050114 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070104 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070116 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070308 |
|
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: 20070403 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070404 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110413 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110413 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120413 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130413 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130413 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140413 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |