(57)【特許請求の範囲】
【請求項１】
楽曲データを入力する楽曲データ入力手段と、
前記楽曲データ内からほぼ同時期に発音される複数の音符データで構成される和音データを検出する和音検出手段と、
前記楽曲データの再生テンポを検出するテンポ検出手段と、
前記検出した再生テンポに従い、ダウンピッキングとアップピッキングの対を成す音価の時間であるグループ時間を決定するグループ時間決定手段と、
前記複数の音符データが前記決定したグループ時間の前半に位置するか後半に位置するかに応じて発音順を決定する発音順序決定手段と、
前記決定された発音順に基づき前記複数の音符データの発音タイミングを編集する発音タイミング編集手段と
を有する楽曲データ編集装置。
【請求項２】
楽曲データを入力する楽曲データ入力手段と、
前記楽曲データ内からほぼ同時期に発音される複数の音符データで構成される和音データを検出する和音検出手段と、
前記楽曲データの拍子を検出する拍子検出手段と、
前記検出した拍子に従い、ダウンピッキングとアップピッキングの対を成す音価の時間であるグループ時間を決定するグループ時間決定手段と、
前記複数の音符データが前記決定したグループ時間の前半に位置するか後半に位置するかに応じて発音順を決定する発音順序決定手段と、
前記決定された発音順に基づき前記複数の音符データの発音タイミングを編集する発音タイミング編集手段と
を有する楽曲データ編集装置。
【請求項３】
さらに、前記発音タイミングの編集によって前記複数の音符データの発音時間に重なりが生じた場合に、同一の弦に割り当てられた前記複数の音符データの一方の音符データの音符長を、他方の音符データの直前に発音終了するように編集する楽音特性編集手段を有する請求項１又は２記載の楽曲データ編集装置。
【請求項４】
さらに、前記発音タイミングの編集によって前記複数の音符データの発音時間に間隔が生じた場合に、同一の弦に割り当てられた前記複数の音符データの一方の音符データの音符長を、他方の音符データの直前に発音終了するように編集する楽音特性編集手段を有する請求項１又は２記載の楽曲データ編集装置。
【請求項５】
楽曲データを入力する楽曲データ入力工程と、
前記楽曲データ内からほぼ同時期に発音される複数の音符データで構成される和音データを検出する和音検出工程と、
前記楽曲データの再生テンポを検出するテンポ検出工程と、
前記検出した再生テンポに従い、ダウンピッキングとアップピッキングの対を成す音価の時間であるグループ時間を決定するグループ時間決定工程と、
前記複数の音符データが前記決定したグループ時間の前半に位置するか後半に位置するかに応じて発音順を決定する発音順序決定工程と、
前記決定された発音順に基づき前記複数の音符データの発音タイミングを編集する発音タイミング編集工程と
を有する楽曲データ編集方法。
【請求項６】
楽曲データを入力する楽曲データ入力工程と、
前記楽曲データ内からほぼ同時期に発音される複数の音符データで構成される和音データを検出する和音検出工程と、
前記楽曲データの拍子を検出する拍子検出工程と、
前記検出した拍子に従い、ダウンピッキングとアップピッキングの対を成す音価の時間であるグループ時間を決定するグループ時間決定工程と、
前記複数の音符データが前記決定したグループ時間の前半に位置するか後半に位置するかに応じて発音順を決定する発音順序決定工程と、
前記決定された発音順に基づき前記複数の音符データの発音タイミングを編集する発音タイミング編集工程と
を有する楽曲データ編集方法。
【請求項７】
楽曲データを入力する楽曲データ入力手順と、
前記楽曲データ内からほぼ同時期に発音される複数の音符データで構成される和音データを検出する和音検出手順と、
前記楽曲データの再生テンポを検出するテンポ検出手順と、
前記検出した再生テンポに従い、ダウンピッキングとアップピッキングの対を成す音価の時間であるグループ時間を決定するグループ時間決定手順と、
前記複数の音符データが前記決定したグループ時間の前半に位置するか後半に位置するかに応じて発音順を決定する発音順序決定手順と、
前記決定された発音順に基づき前記複数の音符データの発音タイミングを編集する発音タイミング編集手順と
を有する楽曲データ編集手順をコンピュータに実行させるためのプログラム。
【請求項８】
楽曲データを入力する楽曲データ入力手順と、
前記楽曲データ内からほぼ同時期に発音される複数の音符データで構成される和音データを検出する和音検出手順と、
前記楽曲データの拍子を検出する拍子検出手順と、
前記検出した拍子に従い、ダウンピッキングとアップピッキングの対を成す音価の時間であるグループ時間を決定するグループ時間決定手順と、
前記複数の音符データが前記決定したグループ時間の前半に位置するか後半に位置するかに応じて発音順を決定する発音順序決定手順と、
前記決定された発音順に基づき前記複数の音符データの発音タイミングを編集する発音タイミング編集手順と
を有する楽曲データ編集手順をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽曲データ編集装置に関し、より詳しくは、楽曲データに音楽的表情を付与することが出来る楽曲データ編集装置に関する。
【０００２】
【従来の技術】
自動演奏装置等で、音符の情報のみのＭＩＤＩデータ等の楽曲データを演奏すると機械的で無表情な演奏になってしまう。これを、より自然な演奏にする為には、様々な音楽的表現や、楽器らしさを制御データとして楽曲データに付け加えてやる必要がある。
【０００３】
そのような音楽的表情の１つとして、ギター等の撥弦楽器の演奏テクニックであるストローク奏法というものがある。ギターのストローク奏法では、楽譜上において同時発音の和音として表記されるものでも、複数の弦を完全に同時にではなくある程度の時間差を持った順番ではじく為、各音（各弦）の音量や発音開始時間、発音時間に、ばらつきが生じる。
【０００４】
さらには、ストローク奏法のダウンピッキングとアップピッキングとでは、そのばらつきに大きな違いがある。よって、ダウンピッキング主体の奏法や、アップピッキング主体の奏法、又はこれらを交互に繰り返すオルタネートストローク奏法では、それぞれ音楽的表情が異なる。
【０００５】
【発明が解決しようとする課題】
音楽的表情を楽曲データに加える作業では、楽曲のどの部分にどのような表現を加えるのかをユーザが知っている必要がある。また、音楽的表情を付与する為には、１つ１つの音符を表すイベントに対して複数のパラメータを設定する必要があり、例えば、ギターの演奏などでは、６音の和音の１つ１つを編集する必要があった。
【０００６】
本発明の目的は、楽曲データに自動で音楽的表情を付与することの出来る楽曲データ編集装置を提供することである。
【０００７】
【課題を解決するための手段】
本発明の一観点によれば、楽曲データ編集装置は、楽曲データを入力する楽曲データ入力手段と、前記楽曲データ内からほぼ同時期に発音される複数の音符データで構成される和音データを検出する和音検出手段と、前記楽曲データの再生テンポを検出するテンポ検出手段と、前記検出した再生テンポに従い、ダウンピッキングとアップピッキングの対を成す音価の時間であるグループ時間を決定するグループ時間決定手段と、前記複数の音符データが前記決定したグループ時間の前半に位置するか後半に位置するかに応じて発音順を決定する発音順序決定手段と、前記決定された発音順に基づき前記複数の音符データの発音タイミングを編集する発音タイミング編集手段とを有する。
また、本発明の他の観点によれば、楽曲データ編集装置は、楽曲データを入力する楽曲データ入力手段と、前記楽曲データ内からほぼ同時期に発音される複数の音符データで構成される和音データを検出する和音検出手段と、前記楽曲データの拍子を検出する拍子検出手段と、前記検出した拍子に従い、ダウンピッキングとアップピッキングの対を成す音価の時間であるグループ時間を決定するグループ時間決定手段と、前記複数の音符データが前記決定したグループ時間の前半に位置するか後半に位置するかに応じて発音順を決定する発音順序決定手段と、前記決定された発音順に基づき前記複数の音符データの発音タイミングを編集する発音タイミング編集手段とを有する。
【０００８】
【発明の実施の形態】
図１は、本発明の実施例による楽曲データ編集装置１のハードウェア構成を示すブロック図である。
【０００９】
楽曲データ編集装置１はバス２、ＲＡＭ３、ＲＯＭ４、ＣＰＵ５、タイマ６、外部記憶装置７、検出回路８、パネル操作子９、表示回路１０、ディスプレイ１１、音源回路１２、効果回路１３、サウンドシステム１４、演奏操作子１５、ＭＩＤＩインターフェイス１６、通信インターフェイス１７を含んで構成される。
【００１０】
バス２には、ＲＡＭ３、ＲＯＭ４、ＣＰＵ５、外部記憶装置７、検出回路８、表示回路１０、音源回路１２、効果回路１３、ＭＩＤＩインターフェイス１６、通信インターフェイス１７が接続される。
【００１１】
ユーザは、検出回路８に接続される複数のパネル操作子９を用いて、各種設定をすることができる。パネル操作子９は、例えば、ロータリーエンコーダ、スイッチ、パッド、フェーダ、スライダ、マウス、文字入力用キーボード、演奏用の鍵盤、ジョイスティック、ジョグシャトル等、ユーザの入力に応じた信号を出力できるものならどのようなものでもよい。
【００１２】
また、本実施例では、パネル操作子９が、後述する各種処理等で、ユーザが各種設定、選択、自動演奏の開始及び停止等の指示を入力するために用いられる。
【００１３】
また、パネル操作子９は、マウス等の他の操作子を用いて操作するディスプレイ１１上に表示されるソフトスイッチ等でもよい。
【００１４】
表示回路１０は、ディスプレイ１１に接続され、各種情報をディスプレイ１１に表示することができる。ユーザは、このディスプレイ１１に表示される情報を参照して、各種設定を行う。また、ディスプレイ１１は、外部の表示装置を接続することにより構成してもよい。
【００１５】
また、ディスプレイ１１に、タッチパネルを用いることができる。この場合は、ディスプレイ１１上に表示されるスイッチ等をユーザが押すことによりユーザの指示が入力される。
【００１６】
外部記憶装置７は、外部記憶装置用のインターフェイスを含み、そのインターフェイスを介してバス２に接続される。外部記憶装置７は、例えばフロッピディスクドライブ（ＦＤＤ）、ハードディスクドライブ（ＨＤＤ）、光磁気ディスク（ＭＯ）ドライブ、ＣＤ−ＲＯＭ（コンパクトディスク−リードオンリィメモリ）ドライブ、ＤＶＤ（Ｄｉｇｉｔａｌ Ｖｅｒｓａｔｉｌｅ Ｄｉｓｃ）ドライブ、半導体メモリ等である。
【００１７】
外部記憶装置７には、各種パラメータ、各種データ、及び本実施例を実現するためのプログラム等を記憶することができる。また本実施例では、外部記憶装置７に、自動伴奏用の伴奏スタイルデータをプリセットデータ又はユーザデータとして複数記憶している。
【００１８】
ＲＡＭ３は、フラグ、レジスタ又はバッファ、各種パラメータ等を記憶するＣＰＵ５のワーキングエリアを有する。ＲＯＭ４には、各種パラメータ及び制御プログラム、又は本実施例を実現するためのプログラム等を記憶することができる。この場合、プログラム等を重ねて、外部記憶装置７に記憶する必要は無い。ＣＰＵ５は、ＲＯＭ４又は、外部記憶装置７に記憶されている制御プログラム等に従い、演算又は制御を行う。
【００１９】
タイマ６は、ＣＰＵ５に接続されており、基本クロック信号、割り込み処理タイミング等をＣＰＵ５に供給する。
【００２０】
外部記憶装置７として、ハードディスクドライブ（ＨＤＤ）が接続されている場合には、制御プログラム又は本実施例を実現するためのプログラム等は、外部記憶装置７内のハードディスク（ＨＤＤ）に記憶させることもできる。ハードディスクからＲＡＭ３に制御プログラム等を読み出すことにより、ＲＯＭ４に制御プログラム等を記憶させている場合と同様の動作をＣＰＵ５にさせることができる。このようにすると、制御プログラム等の追加やバージョンアップ等が容易に行える。
【００２１】
また、ハードディスクドライブに加えて、ＣＤ−ＲＯＭドライブが接続されている場合には、制御プログラム又は本実施例を実現するためのプログラム等をＣＤ−ＲＯＭに記憶させることもできる。ＣＤ−ＲＯＭからハードディスクに制御プログラムや本実施例を実現するためのプログラム等をコピーすることができる。制御プログラム等の新規インストールやバージョンアップを容易に行うことができる。
【００２２】
音源回路１２は、外部記憶装置７等に記録されたシーケンスデータ又はＭＩＤＩインターフェイスに接続されたＭＩＤＩ機器１８等から供給されるＭＩＤＩ信号、演奏信号等に応じて楽音信号を生成し、効果回路１３を介して、サウンドシステム１４に供給する。
【００２３】
効果回路１３は、音源回路１２から供給されるデジタル形式の楽音信号に各種効果を与える。
【００２４】
サウンドシステム１４は、Ｄ／Ａ変換器及びスピーカを含み、供給されるデジタル形式の楽音信号をアナログ形式に変換し、発音する。
【００２５】
なお、音源回路１２は、波形メモリ方式、ＦＭ方式、物理モデル方式、高調波合成方式、フォルマント合成方式、ＶＣＯ（Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ｏｓｃｉｌｌａｔｏｒ）＋ＶＣＦ（Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ｆｉｌｔｅｒ）＋ＶＣＡ（Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ａｍｐｌｉｆｉｅｒ）のアナログシンセサイザ方式等、どのような方式であってもよい。
【００２６】
また、音源回路１２は、専用のハードウェアを用いて構成するものに限らず、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）＋マイクロプログラムを用いて構成してもよいし、ＣＰＵ＋ソフトウェアのプログラムで構成するようにしてもよいし、サウンドカードのようなものでもよい。
【００２７】
さらに、１つの音源回路を時分割で使用することにより複数の発音チャンネルを形成するようにしてもよいし、複数の音源回路を用い、１つの発音チャンネルにつき１つの音源回路で複数の発音チャンネルを構成するようにしてもよい。
【００２８】
演奏操作子１５は、検出回路８に接続され、ユーザの演奏動作に従い、演奏信号を供給する。本実施例では、演奏操作子１５として、演奏用の鍵盤、パッドが用いられている。なお、演奏操作子１５はこれらに限らず、ユーザが演奏情報を入力できるものであればどのようなものでもよい。例えば、文字入力用のキーボードや、マウス、ジョイスティック等を演奏操作子１５として用いることも出来る。
【００２９】
ＭＩＤＩインターフェイス（ＭＩＤＩ  Ｉ／Ｆ）１６は、電子楽器、その他の楽器、音響機器、コンピュータ等に接続できるものであり、少なくともＭＩＤＩ信号を送受信できるものである。ＭＩＤＩインターフェイス１６は、専用のＭＩＤＩインターフェイスに限らず、ＲＳ−２３２Ｃ、ＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインターフェイスを用いて構成してもよい。この場合、ＭＩＤＩメッセージ以外のデータをも同時に送受信するようにしてもよい。
【００３０】
ＭＩＤＩ機器１８は、ＭＩＤＩインターフェイス１６に接続される音響機器及び楽器等である。ＭＩＤＩ機器１８の形態は鍵盤楽器に限らず、弦楽器タイプ、管楽器タイプ、打楽器タイプ等の形態でもよい。また、音源装置、自動演奏装置等を１つの電子楽器本体に内蔵したものに限らず、それぞれが別体の装置であり、ＭＩＤＩや各種ネットワーク等の通信手段を用いて各装置を接続するものであってもよい。ユーザは、このＭＩＤＩ機器１８を演奏（操作）することにより演奏情報の入力を行うこともできる。
【００３１】
また、ＭＩＤＩ機器１８は、演奏情報以外の各種データ及び各種設定を入力するための操作子としても用いることが出来る。
【００３２】
通信インターフェイス１７は、ＬＡＮ（ローカルエリアネットワーク）やインターネット、電話回線等の通信ネットワーク１９に接続可能であり、該通信ネットワーク１９を介して、サーバコンピュータ２０と接続し、ＨＤＤ等外部記憶装置７、又はＲＡＭ４等内に、サーバコンピュータ２０から制御プログラムや本実施例を実現するためのプログラム、楽曲データ等をダウンロードすることができる。
【００３３】
なお、通信インターフェイス１７及び通信ネットワーク１９は、有線のものに限らず無線でもよい。また双方を備えていてもよい。
【００３４】
図２は、本実施例による楽曲データＭＤのフォーマットを表す概念図である。楽曲データＭＤは、例えばＳＭＦ（Ｓｔａｎｄａｒｄ  ＭＩＤＩ  Ｆｉｌｅ）フォーマットに準拠した、自動楽曲データである。
【００３５】
楽曲データＭＤは、先頭に記録される初期設定情報ＨＣと、発音タイミングを表すタイミングデータと、各タイミング毎のイベントを表すイベントデータとを含んで構成されている。また、楽曲データＭＤは複数のパートで構成することも出来る。
【００３６】
初期設定情報とは、各パート（トラック）の再生時の各種再生態様を設定する為のデータであり、例えば、音色設定データ、音量設定データ、テンポ設定データなどが含まれる。
【００３７】
タイミングデータは、イベントデータで表される各種イベントを処理すべき時間を表すデータである。イベントの処理時間は、演奏開始からの絶対時間で表してもよいし、前のイベントからの経過時間である相対時間で表すようにしてもよい。
【００３８】
イベントデータは、楽曲を再生させる為の各種イベントの内容を表すデータである。イベントには、ノートオンイベントとノートオフイベントの組合せである楽曲の発生に直接関係する音符を表す音符イベント（音符データ）と、ピッチチェンジイベント（ピッチベンドイベント）、テンポチェンジイベント、音色チェンジイベントなどの楽曲の再生態様などを設定するための設定イベントが含まれる。
【００３９】
それぞれの音符イベントには、音高、発音長（ゲートタイム）ＧＴ、音量（ベロシティ）ＶＬが記録されている。発音長ＧＴは４分音符長を「４８０」で表しており、例えば８分音符長は「２４０」であり、２分音符長は「９６０」である。音量ＶＬは設定可能な最低音量を「０」とし最大音量を「１２８」としている。
【００４０】
図２（Ａ）は本実施例で用いる編集前の楽曲データＭＤ１の例である。タイミングＡに同時に発音する６つの音符イベントで構成される和音イベントＣＡが記録されており、又、タイミングＢにも同時に発音する６つの音符イベントで構成される和音イベントＣＢが記録されている。
【００４１】
楽曲データＭＤ１では、和音イベント中の音符イベントがすべて、同時に発音されるようになっており、また、音量も一定である。このようなデータを再生すると、音楽的表情の無い機械的な演奏になってしまう。
【００４２】
この楽曲データＭＤ１を、本実施例による楽曲データ編集装置によりギターのストローク奏法の表情付けを行ったものが、図２（Ｂ）に示す楽曲データＭＤ２である。
【００４３】
楽曲データＭＤ２では、後述のストローク種類決定処理により、和音イベントＣＡを低音源から高音弦に向かって徐々に発音タイミングをずらすダウンピッキングに決定し、和音イベントＣＢを高音源から低音弦に向かって徐々に発音タイミングをずらすアップピッキングに決定している。
【００４４】
さらに、後述のストローク表情付与処理により、和音イベントＣＡ及び和音イベントＣＢ中の音符イベントの発音タイミング、発音長ＧＴ、音量ＶＬが編集されている。
【００４５】
図に示すように発音タイミング、発音長ＧＴ、音量ＶＬにばらつきを持たせることにより、ギターのストローク奏法をシミュレートしている。
【００４６】
なお、本実施例では、完全に同時に発音される複数の音符イベントだけでなく、発音タイミングがほぼ同時期である複数の音符イベントの組を和音イベントとしている。ほぼ同時期に発音される複数の音符イベントとは、再生された場合に音楽的に和音として考えられる時間内に発音される複数の音符イベントの組である。
【００４７】
図３は、図１のＣＰＵ５で行う本実施例によるメイン処理を表すフローチャートである。
【００４８】
ステップＳＡ１ではメイン処理をスタートして、各種フラグやバッファを初期化し、次のステップＳＡ２に進む。
【００４９】
ステップＳＡ２では、図１の表示装置１１に外部記憶装置７等に記録されている楽曲データＭＤの一覧を表示して、編集対象とする楽曲データをユーザに選択させる。ユーザは、一覧表示される楽曲データの中から編集（表情付け）をするものをパネル操作子９等で選択する。なお、楽曲データの選択はこの方法に限らず、ユーザが楽曲データの保存先のパス等を直接指定するようにしてもよい。楽曲データが選択されたら、次のステップＳＡ３に進む。
【００５０】
なお、本実施例では、楽曲データの編集を楽曲データの再生中ではないときに行っているが、楽曲データ再生中にリアルタイムで行うことも出来る。この場合は、このステップＳＡ２で選択した楽曲データの再生を開始する。
【００５１】
ステップＳＡ３では、表示装置１１に選択楽曲データに含まれるパートの一覧を表示して、編集対象とするパート（処理パート）をユーザに選択させる。ユーザは、一覧表示されるパートの中から処理パートをパネル操作子９等で選択する。処理パートが選択されたら次のステップＳＡ４に進む。
【００５２】
ステップＳＡ４では、選択楽曲データを外部記憶装置７等からＲＡＭ３内の読出しバッファに読み込み、楽曲の再生テンポと拍子を検出する。その後、次のステップＳＡ５に進む。
【００５３】
ステップＳＡ５では、タイマ６から供給されるクロック信号に従い、選択楽曲データの処理パートのイベントをＲＡＭ３内の作業領域に読み込む。その後次のステップＳＡ６に進む。
【００５４】
ステップＳＡ６では、ステップＳＡ５で読み出したイベントのタイミングが楽曲データの終了タイミング（最後のイベント）か否かを検出する。終了タイミングであれば、ＹＥＳの矢印で示すステップＳＡ７に進む。終了タイミングでなければ、ＮＯの矢印で示すステップＳＡ９に進む。
【００５５】
ステップＳＡ７では、その他処理を行う。その他処理では、ＲＡＭ３内の再生バッファ内の楽曲データの保存等を行う。他には、楽曲データの再生開始及び停止、その他の編集処理、楽曲データの記録、楽曲データのダウンロード、演奏操作子用による演奏処理、各種設定等を行うことも出来る。その後、次のステップＳＡ８に進みメイン処理を終了する。
【００５６】
ステップＳＡ９では、今回のタイミングのイベントが和音イベントか否かを判断する。今回のタイミングのイベントが和音イベントであればＹＥＳの矢印で示すステップＳＡ１０に進む。今回のタイミングのイベントが和音イベントで無ければＮＯの矢印で示すステップＳＡ１２に進む。
【００５７】
ステップＳＡ１０では、後述するストローク種類決定処理を行う。ストローク種類決定処理が終了したら次のステップＳＡ１１に進む。
【００５８】
ステップＳＡ１１では、後述するストローク表情付与処理を行う。ストローク表情付与処理が終了したら、次のステップＳＡ１２に進む。
【００５９】
ステップＳＡ１２では、今回タイミングのイベントをＲＡＭ３内の再生バッファ等に記録する。リアルタイム処理を行っている場合には、ここで今回タイミングのイベントの発音処理を行う。その後次のステップＳＡ１３に進む。
【００６０】
ステップＳＡ１３では、次のタイミングのイベントをＲＡＭ３内の作業領域に読み込む。その後ステップＳＡ６に戻る。
【００６１】
図４は、図３のステップＳＡ１０で行うストローク種類決定処理を表すフローチャートである。
【００６２】
ステップＳＢ１では、ストローク種類決定処理を開始して、次のステップＳＢ２に進む。
【００６３】
ステップＳＢ２では、図３のステップＳＡ４で検出した選択楽曲データの再生テンポ及び拍子に従い、グループ時間決定テーブルを参照し、グループ時間を決定する。その後、次のステップＳＢ３に進む。
【００６４】
グループ時間とは、ダウンピッキングとアップピッキングの対を成す音価の時間のことであり、グループ時間内では原則としてダウンピッキングとアップピッキングを交互に繰り返す。
【００６５】
グループ時間決定テーブルは、少なくとも図５（Ａ）及び図５（Ｂ）に示すように２種類用意することが好ましい。図５（Ａ）に示すグループ時間決定テーブルは、２拍子系、すなわち２分の２拍子、４分の４拍子等の２の倍数の拍子の楽曲に用いる。図５（Ｂ）に示すグループ時間決定テーブルは、３拍子系、すなわち４分の３拍子、８分の１２拍子等の３の倍数の拍子の楽曲に用いる。
【００６６】
どちらのグループ時間決定テーブルにも、４分音符に換算したテンポと、テンポに対応するグループ時間が音符長で記録されている。つまり、このステップＳＢ２では、選択楽曲データの拍子に従い使用するグループ時間決定テーブルを決定して、そのテーブル中の選択楽曲データのテンポに該当するグループ時間を参照して、グループ時間を決定する。
【００６７】
なお、５拍子系や７拍子系の拍子等が考えられるが、このような場合は、上記の２拍子系と３拍子系のグループ時間決定テーブルを組み合わせて用いる。例えば、５拍子の場合は、「２拍子+３拍子」または「３拍子+２拍子」の組合せであると考えられるので、その順番を指定してやることにより、２拍子系と３拍子系のグループ時間決定テーブルを組み合わせて用いればよい。
【００６８】
なお、２拍子系と３拍子系のグループ時間決定テーブルを組み合わせて用いる場合には、図５（Ｃ）に示すように、４分音符に換算したテンポを同じ境界に設定した方が使いやすいので、図５（Ｃ）に示すような簡略化したテーブルを用意してもよい。
【００６９】
ステップＳＢ３では、今回のタイミングの和音イベントがステップＳＢ２で決定したグループ時間の前半部分に位置するものか否かを判断する。和音イベントがグループ時間の前半に位置するものであるときは、ＹＥＳの矢印で示すステップＳＢ４に進む。和音イベントがグループ時間の前半に位置するものでないとき、すなわち後半に位置するときは、ＮＯの矢印で示すステップＳＢ６に進む。
【００７０】
ステップＳＢ４では、今回のタイミングの和音イベントがステップＳＢ２で決定したグループ時間の最初の和音イベントか否かを判断する。最初の和音イベントであるときは、ＹＥＳの矢印で示すステップＳＢ５に進む。最初の和音イベントではないときは、ＮＯの矢印で示すステップＳＢ７に進む。
【００７１】
ステップＳＢ５では、直前（前回）の和音イベントのタイミングと今回の和音イベントのタイミングの差を検出し、それがグループ時間の半分以上の時間であるか否かを判断する。タイミングの差がグループ時間の半分以上であるときは、ＹＥＳの矢印で示すステップＳＢ８に進んで、今回のタイミングの和音イベントをダウンピッキングに決定する。タイミングの差がグループ時間の半分以上でないときは、ＮＯの矢印で示すステップＳＢ７に進む。
【００７２】
ステップＳＢ６では、グループ時間の後半に位置する今回のタイミングの和音イベントがステップＳＢ２で決定したグループ時間の最初の和音イベントか否かを判断する。グループ時間前半には和音イベントが存在せず今回の和音イベントが、グループ時間の最初の和音イベントであるときは、ＹＥＳの矢印で示すステップＳＢ９に進んで、今回のタイミングの和音イベントをアップピッキングに決定する。グループ時間の最初の和音イベントではないときは、ＮＯの矢印で示すステップＳＢ７に進む。
【００７３】
ステップＳＢ７では、直前（前回）のタイミングの和音イベントがダウンピッキングであるか否かを判断する。前回の和音イベントがダウンピッキングである場合は、ＹＥＳの矢印で示すステップＳＢ９に進んで、今回のタイミングの和音イベントをアップピッキングに決定する。前回の和音イベントがダウンピッキングでない場合、すなわち、アップピッキングである場合は、ＮＯの矢印で示すステップＳＢ８に進んで、今回のタイミングの和音イベントをダウンピッキングに決定する。
【００７４】
ステップＳＢ８では、今回のタイミングの和音イベントをダウンピッキングに決定する。その後、ステップＳＢ１０に進んでストローク種類決定処理を終了する。
【００７５】
ステップＳＢ９では、今回のタイミングの和音イベントをアップピッキングに決定する。その後、ステップＳＢ１０に進んでストローク種類決定処理を終了する。
【００７６】
図６は、本実施例のストローク種類決定処理により、ストローク種類が決定された楽譜の例である。図６（Ａ）及び（Ｂ）の楽譜では、いずれも４分音符の和音が連続している。これをギターで演奏する場合は、各和音をダウンピッキングかアップピッキングのいずれかで演奏する。
【００７７】
図６（Ａ）は、再生テンポが４分音符長に換算して１１０で、４分の４拍子の場合の例である。この場合は、図５（Ａ）に示す２拍子系のグループ時間決定テーブルを参照して、再生テンポに基づきグループ時間が４分音符長に決定される。
【００７８】
グループ時間が４分音符長であるということは、４分音符長の時間ｔ１内でダウンピッキングとアップピッキングが繰り返される。よって、この図６（Ａ）に示す楽譜では、すべての音符イベントのストローク種類が、ダウンピッキングに決定される。
【００７９】
図６（Ｂ）の楽譜は、図６（Ａ）に示す楽譜の再生テンポを４分音符長に換算して１３０に設定したものである。図６（Ｂ）に示す楽譜では、参照するグループ時間決定テーブルは、図６（Ａ）に示す楽譜同様に図５（Ａ）に示す２拍子系のグループ時間決定テーブルであるが、テンポが異なるために、グループ時間は２分音符長に決定される。
【００８０】
グループ時間が２分音符長であるということは、２分音符長の時間ｔ２内でダウンピッキングとアップピッキングが繰り返される。よって、この図６（Ｂ）に示す楽譜では、それぞれの音符イベントのストローク種類は、ダウンピッキング又はアップピッキングに決定される。すなわち、ダウンピッキングとアップピッキングを交互に繰り返す完全なオルタネートピッキングによる演奏となる。
【００８１】
次に、本実施例におけるストローク表情付与処理を図７〜図９を参照して説明する。
【００８２】
図７及び図８は、楽曲データＭＤをピアノロール表示で表した図である。楽曲データＭＤは、和音イベントＣＡ、ＣＢ、ＣＣを含む。和音イベントＣＡは、６つの音符イベントＮＡ１〜ＮＡ６を含み、和音イベントＣＢは、６つの音符イベントＮＢ１〜ＮＢ６を含み、和音イベントＣＣは、６つの音符イベントＮＣ１〜ＮＣ６を含んでいる。
【００８３】
図９は、図３のステップＳＡ１１で行うストローク表情付与処理を表すフローチャートである。
【００８４】
ステップＳＣ１では、ストローク表情付与処理を開始する。その後、次のステップＳＣ２に進む。
【００８５】
ステップＳＣ２では、今回のタイミングの和音イベントに含まれ音符イベントの数（和音の音数）を検出する。その後次のステップＳＣ３に進む。
【００８６】
ステップＳＣ３では、今回のタイミングの和音イベントに含まれ音符イベントのそれぞれにギターの１〜６弦のいずれかを割り当てる。その後次のステップＳＣ４に進む。
【００８７】
このステップＳＣ３の処理により、図７（Ａ）に示すように音符イベントＮＡ１、ＮＢ１、ＮＣ１は、ギターの第１弦（最高音）に割り当てられる。以下、同様に、ＮＡ２、ＮＢ２、ＮＣ２は第２弦（第２高音）に、ＮＡ３、ＮＢ３、ＮＣ３は第３弦（第３高音）に、ＮＡ４、ＮＢ４、ＮＣ４は第４弦（第３低音）に、ＮＡ５、ＮＢ５、ＮＣ５は第５弦（第２低音）に、ＮＡ６、ＮＢ６、ＮＣ６は第６弦（最低音）に割り当てられる。
【００８８】
ステップＳＣ４では、ステップＳＣ２で求めた和音の音数と図４のストローク種類決定処理で決定した今回のタイミングにおける和音イベントのストローク種類とに基づきストローク表情付与を参照して、今回の和音イベントに含まれる各音符イベントの発音タイミングを編集する。その後、次のステップＳＣ５に進む。
【００８９】
このステップＳＣ４の処理により、図７（Ａ）中に１点鎖線の三角で示すように音符イベントの発音時間に重なりが生じる。これは、ダウンピッキングに指定された和音イベントＣＡ及びＣＣは、低音弦に割り当てられた音符イベントほど発音開始時刻が早められおり、一方、アップピッキングに指定された和音イベントＣＢは、高音弦に割り当てられた和音イベントほど発音開始時刻が早められているからである。
【００９０】
ステップＳＣ５では、ステップＳＣ２で求めた和音の音数と図４のストローク種類決定処理で決定した今回のタイミングにおける和音イベントのストローク種類とに基づきストローク表情付与を参照して、今回の和音イベントに含まれる各音符イベントの音量（ベロシティ）を編集する。その後、次のステップＳＣ６に進む。
【００９１】
ステップＳＣ６では、ステップＳＣ５で行った発音タイミングの編集により、直前のタイミングにおける同一の弦に割り当てられた音符イベントと発音時間が重なる音符イベントがあるか否かを検出する。発音時間が重なる音符イベントがある場合は、ＹＥＳの矢印で示すステップＳＣ７に進む。発音時間が重なる音符イベントがない場合は、ＮＯの矢印で示すステップＳＣ８に進む。
【００９２】
ここで検出する発音時間の重なりは、上述した図７（Ａ）中に１点鎖線の三角で示す部分である。
【００９３】
ステップＳＣ７では、発音時間が重なる前回タイミングにおける同一の弦に割り当てられた音符イベントの発音長を、今回のタイミングにおける音符イベントの直前に発音終了するように修正する。すなわち、前回タイミングの音符イベントの発音長を短くする。その後次のステップＳＣ８に進む。
【００９４】
このステップＳＣ７の処理により、楽曲データＭＤは図７（Ｂ）に示すようになる。図７（Ｂ）中１点鎖線の円で示す部分が発音長を修正された部分である。
【００９５】
ステップＳＣ８では、ステップＳＣ５で行った発音タイミングの編集により出来た直前のタイミングにおける同一の弦に割り当てられた音符イベントの発音終了時刻と今回のタイミングにおける音符イベントの発音開始時刻との間に不適切な間隔があるか否かを検出する。不適切な間隔がある場合は、ＹＥＳの矢印で示すステップＳＣ９に進む。不適切な間隔がない場合は、ＮＯの矢印で示すステップＳＣ１０に進んで、ストローク表情付与処理を終了する。
【００９６】
このステップＳＣ８の処理では、図７（Ｂ）中１点鎖線の四角で示す部分を検出する。
【００９７】
本実施例において、不適切な間隔とは、このストローク表情付与処理において作り出された間隔であり、楽曲データの作成者が意図しない間隔のことである。
【００９８】
ステップＳＣ９では、不適切な間隔がある前回タイミングにおける同一の弦に割り当てられた音符イベントの発音長を、今回のタイミングにおける音符イベントの直前に発音終了するように修正する。すなわち、前回タイミングの音符イベントの発音長を長くする。その後次のステップＳＣ１０に進んで、ストローク表情付与処理を終了する。
【００９９】
このステップＳＣ９で発音終了時刻を修正することにより、楽曲データＭＤは図８（Ｃ）に示すようになる。図中１点鎖線の星形で示す部分がステップＳＣ９で修正された部分である。
【０１００】
図１０は、図９のステップＳＣ４で参照するストローク表情付与テーブルの一例である。
【０１０１】
ストローク表情付与テーブルには、それぞれの和音の音数（和音イベント中の音符イベントの数）毎に、ダウンピッキング又はアップピッキングのストローク種類があり、それぞれのストローク種類毎に変更するパラメータ（Ｔ＝発音タイミング、Ｖ＝ベロシティ）の変更値等が記録されている。
【０１０２】
例えば、和音の音数が６音であり、ストローク種類がダウンピッキングである時は、最高音（ギターの第１弦に対応する音符イベント）の発音タイミング（Ｔ）の値に「５」を加算し、ベロシティ値に「８」を加算する。
【０１０３】
第２高音（ギターの第２弦に対応する音符イベント）の発音タイミング（Ｔ）には「０」を加算、すなわち変更せずに、ベロシティ値に「４」を加算する。
【０１０４】
第３高音（ギターの第３弦に対応する音符イベント）の発音タイミング（Ｔ）には「−６」を加算し、ベロシティ値に「０」を加算する、すなわちベロシティ値は変更しない。
【０１０５】
第３低音（ギターの第４弦に対応する音符イベント）の発音タイミング（Ｔ）には「−１２」を加算し、ベロシティ値に「０」を加算する、すなわちベロシティ値は変更しない。
【０１０６】
第２低音（ギターの第５弦に対応する音符イベント）の発音タイミング（Ｔ）には「−１７」を加算し、ベロシティ値に「−４」を加算する。
【０１０７】
最低音（ギターの第６弦に対応する音符イベント）の発音タイミング（Ｔ）には「−２１」を加算し、ベロシティ値に「８」を加算する。
【０１０８】
以上のように、ストローク表情付与テーブルに従い和音イベント中の各音符イベントのパラメータを変更することにより、ギターのストローク奏法の表情を付与することができる。
【０１０９】
なお、発音開始時刻の変更値は、このストローク表情付与テーブルの値をそのまま使用するのではなく、テンポや曲想、ユーザの指示等によって、増減できるようにしてもよい。
【０１１０】
すなわち、早いストロークの表情を付与したいときは、すべての弦に対応する音符イベントの発音開始時刻の変更値（絶対値）を小さくし、逆にゆっくりとしたストロークの表情を付与したいときは、すべての弦に対応する音符イベントの発音開始時刻の変更値を大きくする。
【０１１１】
以上、本実施例に拠れば、和音データを自動的にギターのストローク奏法におけるダウンピッキングとアップピッキングのいずれかに指定することができる。
【０１１２】
また、本実施例に拠れば、ダウンピッキングとアップピッキングのいずれかに指定された和音データ中の音符データの発音タイミング、音量、発音時間を適切なばらつきを与えることができる。
【０１１３】
また、本実施例に拠れば、機械的で無表情な楽曲データに自動でストローク奏法の表情を付与して、自然な表情豊かな演奏を行うことができる。
【０１１４】
なお、本実施例では、表情を付与する和音イベントを自動で検出したが、ユーザが選択するようにしてもよい。
【０１１５】
なお、本実施例では、ストローク種類は、すべて自動的に決定したが、ユーザが任意に指定するようにしてもよい。
【０１１６】
また、曲想によっては、ダウンピッキングを多用したりアップピッキングを多用したりすることがあるので、ダウンピッキングとアップピッキングの出現頻度（指定される頻度）を設定できるようにしてもよい。この場合には、出現頻度を指定するための操作子を設けるとよい。
【０１１７】
さらに、本実施例では、楽曲のテンポに従いグループ時間を決定したが、ユーザが任意にグループ時間を指定することもできる。
【０１１８】
また、本実施例では、音符イベントの発音開始時刻（発音タイミング）及び音量（ベロシティ）をストローク表情付与テーブルを参照して編集したが、それぞれの変化量をユーザが設定・変更できるようにしてもよい。
【０１１９】
この場合、図５のグループ時間決定テーブルのテンポの境界値を可変にし、例えば「オルタネートの起こり易さ」というパラメータにとして、ユーザが変更できるようにすればよい。
【０１２０】
また、ストローク表情付与テーブルは、ダウンピッキング用又はアップピッキング用のものだけを用意して参照するようにしてもよい。例えば、ダウンピッキング用のものだけが用意されている場合は、最高音の設定を最低音に適用するなど、音高順を反対に適用することにより、アップピッキング用に用いることができる。
【０１２１】
さらに、ダウンピッキング用のストローク表情付与テーブルをアップピッキングに適用するときは、数値を５割増にするなどの変更を加えてから適用するようにしてもよい。
【０１２２】
ストローク表情付与テーブルは、６音の和音用のものだけを用意して、その他の音数の和音に適用してもよい。この場合に、例えば２音の和音に適用する時は、最高音と最低音のパラメータの変更値を使用すればよい。
【０１２３】
なお、本実施例では、発音タイミングと発音量の変更値を一定にしたが、これをある程度ランダムに変更することによって、画一的でない人間的な自然なばらつきを与えることができる。
【０１２４】
また、本実施例では、複数の同じ音程の和音イベントに対してストローク表情を付与したが、本実施例は複数の異なる音程の和音イベントに対しても適用することができる。この場合、和音イベント中の次のタイミングの音符イベントと発音時間が重なる音符イベントの発音終了時刻が、次のタイミングの和音イベントの最初に発音される音符イベントの発音開始時刻の直前になるように編集する。こうすることにより、実際のギター等の演奏における和音の構成音が変わる場合の指の押さえ直しをシミュレートすることができる。
【０１２５】
なお、楽曲データ（演奏データ）のフォーマットは、演奏イベントの発生時刻を１つ前のイベントからの時間で表した「イベント＋相対時間」、演奏イベントの発生時刻を曲や小節内における絶対時間で表した「イベント＋絶対時間」、音符の音高と符長あるいは休符と休符長で楽曲データを表した「音高（休符）＋符長」、演奏の最小分解能毎にメモリの領域を確保し、演奏イベントの発生する時刻に対応するメモリ領域に演奏イベントを記憶した「ベタ方式」等、どのような形式でもよい。
【０１２６】
また、楽曲データの処理方法は、設定されたテンポに応じて処理周期を変更する方法、処理周期は一定で、楽曲データ中のタイミングデータの値を設定されたテンポに応じて変更する方法、処理周期は一定で、１回の処理において楽曲データ中のタイミングデータの計数の仕方をテンポに応じて変更する方法等、どのようなものであってもよい。
【０１２７】
さらに、複数チャンネル分の楽曲データの記憶方法としては、複数のチャンネルのデータが混在記憶された形式でもよいし、各チャンネルのデータがトラック毎に分かれて記憶されている形式でもよい。
【０１２８】
さらに、またメモリ上において、時系列の楽曲データが連続する領域に記憶されていてもよいし、飛び飛びの領域に散在して記憶されているデータを、連続するデータとして別途管理するようにしてもよい。すなわち、時系列的に連続するデータとして管理することができればよく、メモリ上で連続して記憶されているか否かは問題ではない。
【０１２９】
なお、本実施例の楽曲データ編集装置１は電子楽器、パソコン＋アプリケーションソフトウェアの形態、カラオケ装置や、ゲーム装置、携帯電話等の携帯型通信端末、自動演奏ピアノなどどのような形態をとってもよい。
【０１３０】
携帯型通信端末に適用した場合、端末のみで所定の機能が完結している場合に限らず、機能の一部をサーバ側に持たせ、端末とサーバとからなるシステム全体として所定の機能を実現するようにしてもよい。
【０１３１】
また、電子楽器の形態を取った場合、その形態は鍵盤楽器に限らず、弦楽器タイプ、打楽器タイプ等の形態でもよい。
【０１３２】
また、音源装置、自動演奏装置等を１つの電子楽器本体に内蔵したものに限らず、それぞれが別体の装置であり、ＭＩＤＩや各種ネットワーク等の通信手段を用いて各装置を接続するものであってもよい。
【０１３３】
なお、本実施例は、本実施例に対応するコンピュータプログラム等をインストールした市販のコンピュータ等によって、実施させるようにしてもよい。
【０１３４】
その場合には、本実施例に対応するコンピュータプログラム等を、ＣＤ−ＲＯＭやフロッピーディスク等の、コンピュータが読み込むことが出来る記憶媒体に記憶させた状態で、ユーザに提供してもよい。
【０１３５】
そのコンピュータ等が、ＬＡＮ、インターネット、電話回線等の通信ネットワークに接続されている場合には、通信ネットワークを介して、コンピュータプログラムや各種データ等をコンピュータ等に提供してもよい。
【０１３６】
以上実施例に沿って本発明を説明したが、本発明はこれらに制限されるものではない。例えば、種々の変更、改良、組合せ等が可能なことは当業者に自明であろう。
【０１３７】
【発明の効果】
以上説明したように、本発明によれば、楽曲データにストローク表情を付与することの出来る楽曲データ編集装置を提供することができる。
【図面の簡単な説明】
【図１】  本発明の実施例による楽曲データ編集装置１のハードウェア構成を示すブロック図である。
【図２】  本発明の実施例による楽曲データＭＤのフォーマットを表す概念図である。
【図３】  図１のＣＰＵ５で行う本発明の実施例によるメイン処理を表すフローチャートである。
【図４】  図３のステップＳＡ１０で行うストローク種類決定処理を表すフローチャートである。
【図５】  本発明の実施例によるグループ時間決定テーブルの１例である。
【図６】  本発明の実施例のストローク種類決定処理により、ストローク種類が決定された楽譜の例である。
【図７】  楽曲データＭＤをピアノロール表示で表した図である。
【図８】  楽曲データＭＤをピアノロール表示で表した図である。
【図９】  図３のステップＳＡ１１で行うストローク表情付与処理を表すフローチャートである。
【図１０】  図９のステップＳＣ４で参照するストローク表情付与テーブルの１例である。
【符号の説明】
１…楽曲データ編集装置、２…バス、３…ＲＡＭ、４…ＲＯＭ、５…ＣＰＵ、６…タイマ、７…外部記憶装置、８…検出回路、９…パネル操作子、１０…表示回路、１１…ディスプレイ、１２…音源回路、１３…効果回路、１４…サウンドシステム、１５…演奏操作子、１６…ＭＩＤＩ  Ｉ／Ｆ、１７…通信Ｉ／Ｆ、１８…ＭＩＤＩ機器、１９…通信ネットワーク、２０…サーバコンピュータ
【図１】
0003680756.tif 000002
【図２】
0003680756.tif 000003
【図３】
0003680756.tif 000004
【図４】
0003680756.tif 000005
【図５】
0003680756.tif 000006
【図６】
0003680756.tif 000007
【図７】
0003680756.tif 000008
【図８】
0003680756.tif 000009
【図９】
0003680756.tif 000010
【図１０】
0003680756.tif 000011