(57)【要約】【課題】アルペジオパターンデータの一部を用いてアルペジオを生成することが可能となるアルペジオ生成装置およびアルペジオ生成方法を実現するためのプログラムを提供する。【解決手段】ユーザが、アルペジオパターンデータを選択し、（ａ）のように、切り出し開始位置として第２小節の先頭を、切り出し終了位置として第５小節の末尾を指定した後、アルペジオ発音データの生成開始を指示すると、（ｂ）のように、アルペジオパターンデータ中の発音パターンデータが「開始位置」から「終了位置」まで切り出されて、新たな発音パターンデータが作成される。そして、この新発音パターンデータおよび入力された押鍵音に基づいて発音データリストが生成され、この発音データリストに基づいてアルペジオが生成される。【選択図】図４
2010237509.tif 000002
【特許請求の範囲】
【請求項１】
タイミング情報を含むイベントデータ複数からなるアルペジオパターンデータを供給する供給手段と、
該供給手段によって供給されたアルペジオパターンデータの切り出し開始位置および切り出し終了位置を設定する設定手段と、
音高情報を含む音符情報を１つ以上入力する入力手段と、
該入力手段によって入力された音符情報および前記供給手段によって供給されたアルペジオパターンデータ内のイベントデータに基づいてアルペジオデータを生成する生成手段と
を有し、
前記設定手段によって切り出し開始位置および切り出し終了位置が設定されている場合、前記生成手段は、前記供給されたアルペジオパターンデータ内のイベントデータのうち、前記切り出し開始位置から前記切り出し終了位置までに含まれるイベントデータを、先頭のイベントデータから順次読み出し、末尾のイベントデータを読み出すと、前記先頭のイベントデータに戻って読み出しを続け、当該読み出したイベントデータに基づいてアルペジオデータを生成することを特徴とするアルペジオ生成装置。
【請求項２】
前記切り出し開始位置を時間的に遅い位置に変更する変更手段をさらに有し、
前記変更手段によって前記切り出し開始位置が変更されている場合、前記生成手段は、前記供給されたアルペジオパターンデータ内のイベントデータのうち、前記切り出し開始位置から前記切り出し終了位置までに含まれるイベントデータを、前記変更後の切り出し開始位置にあるイベントデータから順次読み出し、末尾のイベントデータを読み出すと、先頭のイベントデータに戻って読み出しを続け、当該読み出したイベントデータに基づいてアルペジオデータを生成することを特徴とする請求項１に記載のアルペジオ生成装置。
【請求項３】
タイミング情報を含むイベントデータ複数からなるアルペジオパターンデータを供給する供給手段と、
該供給手段によって供給されたアルペジオパターンデータの切り出し開始位置および切り出し終了位置を設定する設定手段と、
該設定手段によって切り出し開始位置および切り出し終了位置が設定されている場合、前記供給されたアルペジオパターンデータ内のイベントデータのうち、前記切り出し開始位置から前記切り出し終了位置までに含まれるイベントデータをコピーするコピー手段と、
前記コピー手段によってコピーされたイベントデータに含まれるタイミング情報の値を、前記アルペジオパターンデータの先頭から前記切り出し開始位置までの時間分、時間的に早い方向にシフトするシフト手段と、
保存の指示が検出されたことに応じて、前記シフト手段によってタイミング情報の値がシフトされたイベントデータからなる新たなアルペジオパターンデータを生成し、記憶手段に記憶させる記録手段と
を有することを特徴とするアルペジオ生成装置。
【請求項４】
前記切り出し開始位置を時間的に遅い位置に変更する変更手段をさらに有し、
前記変更手段によって前記切り出し開始位置が変更されている場合、前記コピー手段は、前記供給されたアルペジオパターンデータ内のイベントデータのうち、前記変更後の切り出し開始位置から前記切り出し終了位置までのイベントデータをコピーし、さらに前記切り出し開始位置から前記変更後の切り出し開始位置までのイベントデータを、前記コピーに続くようにタイミング情報の値を調整しながらコピーし、
前記シフト手段は、前記コピー手段によってコピーされたイベントデータに含まれるタイミング情報の値を、前記アルペジオパターンデータの先頭から前記変更後の切り出し開始位置までの時間分、時間的に早い方向にシフトする
ことを特徴とする請求項３に記載のアルペジオ生成装置。
【請求項５】
タイミング情報を含むイベントデータ複数からなるアルペジオパターンデータを供給する供給手順と、
該供給手順によって供給されたアルペジオパターンデータの切り出し開始位置および切り出し終了位置を設定する設定手順と、
音高情報を含む音符情報を１つ以上入力する入力手段によって入力された音符情報および前記供給手順によって供給されたアルペジオパターンデータ内のイベントデータに基づいてアルペジオデータを生成する生成手順と
をコンピュータに実行させるためのプログラムであって、
前記設定手順によって切り出し開始位置および切り出し終了位置が設定されている場合、前記生成手順では、前記供給されたアルペジオパターンデータ内のイベントデータのうち、前記切り出し開始位置から前記切り出し終了位置までに含まれるイベントデータを、先頭のイベントデータから順次読み出し、末尾のイベントデータを読み出すと、前記先頭のイベントデータに戻って読み出しを続け、当該読み出したイベントデータに基づいてアルペジオデータを生成することを特徴とするプログラム。
【請求項６】
タイミング情報を含むイベントデータ複数からなるアルペジオパターンデータを供給する供給手順と、
該供給手順によって供給されたアルペジオパターンデータの切り出し開始位置および切り出し終了位置を設定する設定手順と、
該設定手順によって切り出し開始位置および切り出し終了位置が設定されている場合、前記供給されたアルペジオパターンデータ内のイベントデータのうち、前記切り出し開始位置から前記切り出し終了位置までに含まれるイベントデータをコピーするコピー手順と、
前記コピー手順によってコピーされたイベントデータに含まれるタイミング情報の値を、前記アルペジオパターンデータの先頭から前記切り出し開始位置までの時間分、時間的に早い方向にシフトするシフト手順と、
保存の指示が検出されたことに応じて、前記シフト手順によってタイミング情報の値がシフトされたイベントデータからなる新たなアルペジオパターンデータを生成し、記憶手段に記憶させる記録手順と
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、供給されたアルペジオパターンデータおよび入力された音符情報に基づいてアルペジオを生成するアルペジオ生成装置およびアルペジオ生成方法を実現するためのプログラムに関する。
【背景技術】
【０００２】
供給されたアルペジオパターンデータおよび入力された音符情報に基づいてアルペジオを生成するアルペジオ生成装置は、従来から知られている。
【０００３】
このようなアルペジオ生成装置、いわゆるアルペジエータは、複数のキー番号（音高に対応したノートナンバではなく、単純な番号）とその発音タイミングからなるアルペジオパターンデータを記憶し、同時に押鍵されて入力された複数の音の各音高に、所定のルール（たとえば、音高の低い順）に従って番号を割り振り、アルペジオパターンデータ中のキー番号に対応した番号が割り振られた音高を、その発音タイミングで発生させるようにして、押鍵音を基にアルペジオを生成している。このようにアルペジエータは、ユーザによる押鍵があると、その押鍵音およびアルペジオパターンデータに応じて順次発音データを生成して出力し、アルペジオパターンデータの最後のデータに対応する発音データが生成されて出力されると、再びアルペジオパターンデータの先頭のデータに戻って、そのデータに対応する発音データの生成および出力を繰り返す。これにより、ユーザの押鍵が続く限り、その押鍵音およびアルペジオパターンデータに応じた発音データの生成および出力が継続する。
【０００４】
ところで、上記アルペジエータは、押鍵によって複数の音、たとえば和音が入力されると、入力された和音を発音するとともに、その和音に基づいてアルペジオを生成して発音する。そしてアルペジオの生成および発音は、上述のように押鍵が続く限り続くので、押鍵が続いている間、その和音も継続して発音するようにした場合には、押鍵が続いている間、常に和音にアルペジオが重なって発音される。したがって上記アルペジエータでは、ユーザが和音の発音を継続させながら、そのアルペジオを装飾的に（具体的には、アルペジオの発音回数を制限して）付加した音作りをしようとしても、和音の押鍵が続いている間、常にその和音にアルペジオが重なって発音される（つまり、アルペジオの発音回数を制限できない）ので、このユーザの要求に応えることはできなかった。
【０００５】
このユーザの要求に応えるために本出願人は、アルペジオパターンデータを繰り返し使用する回数をユーザが指定できるようにして、アルペジオの発音回数を制限できるようにしたアルペジエータを提案した（たとえば、特許文献１参照）。このアルペジエータでは、ユーザが指定した回数分、アルペジオパターンデータが繰り返し使用されると、その後ユーザの押鍵が続いたとしても、アルペジオは発音されずに、その押鍵音だけが発音される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１３９４５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上記従来のアルペジエータでは、アルペジオパターンデータ全体のデータ長を最小単位としてアルペジオを生成するようにしているので、アルペジオパターンデータの一部を、たとえば繰り返し用いてアルペジオを生成することはできなかった。
【０００８】
本発明は、この点に着目してなされたものであり、アルペジオパターンデータの一部を用いてアルペジオを生成することが可能となるアルペジオ生成装置およびアルペジオ生成方法を実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、請求項１に記載のアルペジオ生成装置は、タイミング情報を含むイベントデータ複数からなるアルペジオパターンデータを供給する供給手段と、該供給手段によって供給されたアルペジオパターンデータの切り出し開始位置および切り出し終了位置を設定する設定手段と、音高情報を含む音符情報を１つ以上入力する入力手段と、該入力手段によって入力された音符情報および前記供給手段によって供給されたアルペジオパターンデータ内のイベントデータに基づいてアルペジオデータを生成する生成手段とを有し、前記設定手段によって切り出し開始位置および切り出し終了位置が設定されている場合、前記生成手段は、前記供給されたアルペジオパターンデータ内のイベントデータのうち、前記切り出し開始位置から前記切り出し終了位置までに含まれるイベントデータを、先頭のイベントデータから順次読み出し、末尾のイベントデータを読み出すと、前記先頭のイベントデータに戻って読み出しを続け、当該読み出したイベントデータに基づいてアルペジオデータを生成することを特徴とする。
【００１０】
請求項２に記載のアルペジオ生成装置は、請求項１のアルペジオ生成装置において、前記切り出し開始位置を時間的に遅い位置に変更する変更手段をさらに有し、前記変更手段によって前記切り出し開始位置が変更されている場合、前記生成手段は、前記供給されたアルペジオパターンデータ内のイベントデータのうち、前記切り出し開始位置から前記切り出し終了位置までに含まれるイベントデータを、前記変更後の切り出し開始位置にあるイベントデータから順次読み出し、末尾のイベントデータを読み出すと、先頭のイベントデータに戻って読み出しを続け、当該読み出したイベントデータに基づいてアルペジオデータを生成することを特徴とする。
【００１１】
上記目的を達成するため、請求項３に記載のアルペジオ生成装置は、タイミング情報を含むイベントデータ複数からなるアルペジオパターンデータを供給する供給手段と、該供給手段によって供給されたアルペジオパターンデータの切り出し開始位置および切り出し終了位置を設定する設定手段と、該設定手段によって切り出し開始位置および切り出し終了位置が設定されている場合、前記供給されたアルペジオパターンデータ内のイベントデータのうち、前記切り出し開始位置から前記切り出し終了位置までに含まれるイベントデータをコピーするコピー手段と、前記コピー手段によってコピーされたイベントデータに含まれるタイミング情報の値を、前記アルペジオパターンデータの先頭から前記切り出し開始位置までの時間分、時間的に早い方向にシフトするシフト手段と、保存の指示が検出されたことに応じて、前記シフト手段によってタイミング情報の値がシフトされたイベントデータからなる新たなアルペジオパターンデータを生成し、記憶手段に記憶させる記録手段とを有することを特徴とする。
【００１２】
請求項４に記載のアルペジオ生成装置は、請求項３のアルペジオ生成装置において、前記切り出し開始位置を時間的に遅い位置に変更する変更手段をさらに有し、前記変更手段によって前記切り出し開始位置が変更されている場合、前記コピー手段は、前記供給されたアルペジオパターンデータ内のイベントデータのうち、前記変更後の切り出し開始位置から前記切り出し終了位置までのイベントデータをコピーし、さらに前記切り出し開始位置から前記変更後の切り出し開始位置までのイベントデータを、前記コピーに続くようにタイミング情報の値を調整しながらコピーし、前記シフト手段は、前記コピー手段によってコピーされたイベントデータに含まれるタイミング情報の値を、前記アルペジオパターンデータの先頭から前記変更後の切り出し開始位置までの時間分、時間的に早い方向にシフトすることを特徴とする。
【００１３】
上記目的を達成するため、請求項５に記載のプログラムは、請求項１と同様の技術的思想によって実現できる。
【００１４】
上記目的を達成するため、請求項６に記載のプログラムは、請求項３と同様の技術的思想によって実現できる。
【発明の効果】
【００１５】
請求項１または５に記載の発明によれば、切り出し開始位置および切り出し終了位置が設定されている場合、供給されたアルペジオパターンデータ内のイベントデータのうち、前記切り出し開始位置から前記切り出し終了位置までに含まれるイベントデータが、先頭のイベントデータから順次読み出され、末尾のイベントデータが読み出されると、前記先頭のイベントデータに戻って読み出しが続けられ、当該読み出されたイベントデータおよび入力された音符情報に基づいてアルペジオデータが生成されるので、アルペジオパターンデータの一部を用いてアルペジオを生成することが可能となる。
【００１６】
請求項２に記載の発明によれば、前記切り出し開始位置が時間的に遅い位置に変更されている場合、前記供給されたアルペジオパターンデータ内のイベントデータのうち、前記切り出し開始位置から前記切り出し終了位置までに含まれるイベントデータが、前記変更後の切り出し開始位置にあるイベントデータから順次読み出され、末尾のイベントデータが読み出されると、先頭のイベントデータに戻って読み出しが続けられ、当該読み出されたイベントデータおよび入力された音符情報に基づいてアルペジオデータが生成されるので、アルペジオパターンデータの特性などによって、アルペジオパターンデータの切り出しを設定された切り出し開始位置より時間的に遅い位置から始めたいときに有効である。そして、切り出し開始位置から切り出し終了位置までに含まれるイベントデータの読み出しは、変更後の切り出し開始位置にあるイベントデータから開始されるものの、末尾のイベントデータに到達すると、変更後の切り出し開始位置にあるイベントデータに戻らずに、それより時間的に早い位置にある先頭のイベントデータ、つまり変更前の切り出し開始位置にあるイベントデータに戻るので、切り出し開始位置を時間的に遅い位置に変更したとしても、変更前の切り出し開始位置から切り出し終了位置までの時間長を維持しつつ、新たなアルペジオを生成することができる。
【００１７】
請求項３または６に記載の発明によれば、切り出し開始位置および切り出し終了位置が設定されている場合、供給されたアルペジオパターンデータ内のイベントデータのうち、前記切り出し開始位置から前記切り出し終了位置までに含まれるイベントデータがコピーされ、該コピーされたイベントデータに含まれるタイミング情報の値が、前記アルペジオパターンデータの先頭から前記切り出し開始位置までの時間分、時間的に早い方向にシフトされ、保存の指示が検出されたことに応じて、前記タイミング情報の値がシフトされたイベントデータからなる新たなアルペジオパターンデータが生成され、記憶手段に記憶されるので、アルペジオパターンデータの一部を用いて新たなアルペジオパターンデータを作成することが可能となる。
【００１８】
請求項４に記載の発明によれば、前記切り出し開始位置が時間的に遅い位置に変更されている場合、前記供給されたアルペジオパターンデータ内のイベントデータのうち、前記変更後の切り出し開始位置から前記切り出し終了位置までのイベントデータがコピーされ、さらに前記切り出し開始位置から前記変更後の切り出し開始位置までのイベントデータが、前記コピーに続くようにタイミング情報の値を調整しながらコピーされ、該コピーされたイベントデータに含まれるタイミング情報の値が、前記アルペジオパターンデータの先頭から前記変更後の切り出し開始位置までの時間分、時間的に早い方向にシフトされ、保存の指示が検出されたことに応じて、前記タイミング情報の値がシフトされたイベントデータからなる新たなアルペジオパターンデータが生成され、記憶手段に記憶されるので、アルペジオパターンデータの特性などによって、アルペジオパターンデータの切り出しを設定された切り出し開始位置より時間的に遅い位置から始めたいときに有効である。そして、切り出し開始位置から変更後の切り出し開始位置までにあるイベントデータは、変更後の切り出し開始位置から切り出し終了位置までにあるイベントデータの後に追加されるので、切り出し開始位置を時間的に遅い位置に変更したとしても、変更前の切り出し開始位置から切り出し終了位置までの時間長を維持しつつ、新たなアルペジオパターンデータを作成することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施の形態に係るアルペジオ生成装置（アルペジエータ）の概略構成を示すブロック図である。
【図２】図１のアルペジエータが実行する制御処理の制御構成を示すブロック図である。
【図３】アルペジオパターンデータに含まれる発音パターンデータから作成された新発音パターンデータのフォーマットの一例と、その新発音パターンデータとユーザの押鍵操作によって入力された押鍵音の音高に基づいて生成した発音データリストを示す図である。
【図４】図１のアルペジエータが実行する制御処理を説明するための図である。
【図５】図１のアルペジエータが実行する他の制御処理を説明するための図である。
【図６】図１のアルペジエータ、特にＣＰＵが実行するアルペジオ再生モード処理の手順を示すフローチャートである。
【図７】図６中の新発音パターンデータ作成処理の詳細な手順を示すフローチャートである。
【図８】図６中の発音データリスト生成処理の詳細な手順を示すフローチャートである。
【図９】図１のアルペジエータ、特にＣＰＵが実行するアルペジオパターンデータ記録処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００２１】
図１は、本発明の一実施の形態に係るアルペジエータの概略構成を示すブロック図である。
【００２２】
同図に示すように、本実施の形態のアルペジエータは、鍵盤等の演奏操作子および各種スイッチ等の設定操作子からなる操作子群１と、該操作子群１の各操作子の操作状態を検出する検出回路２と、装置全体の制御を司るＣＰＵ３と、該ＣＰＵ３が実行する制御プログラムや各種テーブルデータ等を記憶するＲＯＭ４と、前記演奏操作子から入力された演奏情報（音符情報）、アルペジオパターンデータ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ５と、前記制御プログラムを含む各種アプリケーションプログラムや各種アルペジオパターンデータ、各種データ等を記憶する外部記憶装置６と、各種情報等を表示する、たとえば液晶ディスプレイ（ＬＣＤ）および発光ダイオード（ＬＥＤ）等を備えた表示装置７と、外部ＭＩＤＩ（Musical Instrument Digital Interface）機器等の外部機器１００を接続し、この外部機器１００とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）８と、前記演奏操作子から入力された演奏情報および前記ＲＡＭ５に記憶されたアルペジオパターンデータに基づいて生成したアルペジオ発音データ等を楽音信号に変換する音源回路９と、該音源回路９からの楽音信号に各種効果を付与するための効果回路１０と、該効果回路１０からの楽音信号を音響に変換する、たとえば、ＤＡＣ（Digital-to-Analog Converter）やアンプ、スピーカ等のサウンドシステム１１とにより構成されている。
【００２３】
上記構成要素２〜１０は、バス１２を介して相互に接続され、通信Ｉ／Ｆ８には外部機器１００が接続され、音源回路９には効果回路１０が接続され、効果回路１０にはサウンドシステム１１が接続されている。
【００２４】
外部記憶装置６は、たとえば、フレキシブルディスク（ＦＤ）、ハードディスク（ＨＤ）、ＣＤ−ＲＯＭ、ＤＶＤ（digital versatile disc）、光磁気ディスク（ＭＯ）および半導体メモリなどの記憶媒体とその駆動装置である。記憶媒体は、駆動装置から着脱可能であってもよいし、外部記憶装置６自体が、本実施の形態のアルペジエータから着脱可能であってもよい。あるいは、記憶媒体も外部記憶装置６も着脱不可能であってもよい。なお、外部記憶装置６（の記憶媒体）には、前述のように、ＣＰＵ３が実行する制御プログラムも記憶でき、ＲＯＭ４に制御プログラムが記憶されていない場合には、この外部記憶装置６に制御プログラムを記憶させておき、それをＲＡＭ５に読み込むことにより、ＲＯＭ４に制御プログラムを記憶している場合と同様の動作をＣＰＵ３にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００２５】
通信Ｉ／Ｆ８には、図示例では、外部機器１００が接続されているが、これに限られず、たとえばＬＡＮ（local area network）やインターネット、電話回線等の通信ネットワークを介して、サーバコンピュータが接続されるようにしてもよい。この場合、外部記憶装置６に上記各プログラムや各種パラメータが記憶されていなければ、通信Ｉ／Ｆ８は、サーバコンピュータからプログラムやパラメータをダウンロードするために用いられる。クライアントとなるアルペジエータは、通信Ｉ／Ｆ８および通信ネットワークを介してサーバコンピュータへとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワークを介してアルペジエータへと配信し、アルペジエータが通信Ｉ／Ｆ８を介して、これらプログラムやパラメータを受信して外部記憶装置６に蓄積することにより、ダウンロードが完了する。
【００２６】
なお、本実施の形態のアルペジエータは、上述の構成から分かるように、電子鍵盤楽器上に構築されたものであるが、これに限らず、鍵盤を外部接続した汎用的なパーソナルコンピュータ上に構築してもよい。また、鍵盤楽器の実施形態に限らず、弦楽器タイプ、管楽器タイプ、打楽器タイプ等の他の実施形態でもよい。
【００２７】
以上のように構成されたアルペジエータが実行する制御処理を、まず図２〜図５を参照してその概要（ただし、一部は詳細）を説明し、次に図６〜図９を参照して詳細に説明する。
【００２８】
本実施の形態のアルペジエータは、主として
（Ａ）ユーザによって選択されたアルペジオパターンデータ中の発音パターンデータに基づいて新発音パターンデータを作成する新発音パターンデータ作成処理
（Ｂ）上記（Ａ）の新発音パターンデータ作成処理によって作成された新発音パターンデータおよびユーザの押鍵操作によって入力された演奏情報（本実施の形態では、音高）に基づいて発音データリストを生成する発音データリスト生成処理
（Ｃ）上記（Ｂ）の発音データリスト生成処理によって生成された発音データリストを再生する発音データリスト再生処理
（Ｄ）ユーザの押鍵／離鍵操作に応じてノートオン／ノートオフイベントを生成して前記音源回路９に出力することで、押鍵音の発音／離鍵音の消音を行う発音／消音処理
を行う。
【００２９】
図２は、本実施の形態のアルペジエータが実行する制御処理、つまり上記（Ａ）〜（Ｄ）の処理の制御構成を示すブロック図であり、図３は、アルペジオパターンデータに含まれる発音パターンデータから作成された新発音パターンデータのフォーマットの一例と、その新発音パターンデータとユーザの押鍵操作によって入力された押鍵音の音高に基づいて生成した発音データリストを示す図である。
【００３０】
アルペジオパターンデータは、たとえば前記外部記憶装置６内に予め複数種類（たとえば、音色毎に複数種類）記憶され、その中からユーザがいずれかを選択すると、選択されたアルペジオパターンデータが、外部記憶装置６から読み出されて、前記ＲＡＭ５の所定位置に確保されたアルペジオパターンデータ格納領域（図示せず）に格納される。図２には、ユーザがアルペジオパターンデータ群から選択したアルペジオパターンデータＮに基づいてアルペジオ発音データを生成する様子が示されている。
【００３１】
各アルペジオパターンデータにはそれぞれ、発音パターンデータが含まれている。発音パターンデータは、図３に示すように、発音タイミング（Ｔｉｍｉｎｇ）、ゲートタイム（Ｇａｔｅ）、キーナンバ（Ｋｅｙ）、オクターブ（Ｏｃｔ）およびベロシティ（Ｖｅｌ）を１組のデータ（以下、「イベントデータ」と言う）とする複数組のイベントデータによって構成されている（ただし図３は、上述のように新発音パターンデータのフォーマットを示し、その作成基となる発音パターンデータのフォーマットを示していないが、両者のフォーマットは同じとする）。ここで、発音タイミングは、対応する（つまり、同じ組に属する）キーナンバの押鍵音を発音するタイミングを「小節：拍：クロック数」で表したものであり、本実施の形態では、４８０クロックが１拍分の時間に相当する。ゲートタイムは、上記発音タイミングで発音が開始された押鍵音の発音継続時間（つまり音長）をクロック数で表したものである。キーナンバは、ユーザが複数の鍵を同時に押したとき（押鍵開始タイミングは、同時でもよいし、ずれていてもよく、要は複数鍵が同時に押されている期間があればよい。以下、同様）に入力される押鍵音に対して、音高の低い順に番号付けしたものである。オクターブは、対応するキーナンバの押鍵音をどれだけオクターブシフトするかを示したものである。ベロシティは、対応するキーナンバの押鍵音を発音する際のベロシティの値を示したものである。
【００３２】
図３には、ユーザの押鍵により３つの音高“Ｃ３”，“Ｅ３”および“Ｇ３”が同時に入力されたときに、新発音パターンデータ、つまり前記（Ａ）の新発音パターンデータ作成処理によって作成された新発音パターンデータを用いて生成した発音データリストが記載されている。図示例の新発音パターンデータは４小節長であるが、元のアルペジオパターンデータ（ここでは、アルペジオパターンデータＮ）中の発音パターンデータは４小節長以上である。
【００３３】
押鍵音“Ｃ３”，“Ｅ３”および“Ｇ３”には、前記ルールに従ってそれぞれ“１”，“２”および“３”のキーナンバが付与されるので、発音データリストの、たとえば先頭（“１：１：０００”）から第２拍の末尾（“１：２：４７９”）までのノートナンバ（Ｎｏｔｅ）は、次のように生成される。すなわち、
タイミング“１：１：０００”：Ｃ４（発音パターンデータの発音タイミング“１：１：０００”におけるキーナンバ“１”の押鍵音の音高（“Ｃ３”）を“１”オクターブシフトしたもの）
タイミング“１：１：２４０”：Ｇ３（発音パターンデータの発音タイミング“１：１：２４０”におけるキーナンバ“３”の押鍵音の音高（“Ｇ３”）を“０”オクターブシフトしたもの）
タイミング“１：２：０００”：Ｅ３（発音パターンデータの発音タイミング“１：２：０００”におけるキーナンバ“２”の押鍵音の音高（“Ｅ３”）を“０”オクターブシフトしたもの）
タイミング“１：２：２４０”：Ｃ３（発音パターンデータの発音タイミング“１：２：２４０”におけるキーナンバ“１”の押鍵音の音高（“Ｃ３”）を“０”オクターブシフトしたもの）
他の拍の各タイミングのノートナンバも、同様にして生成される。
【００３４】
なお本実施の形態では、新発音パターンデータとして元の発音パターンデータから４小節長（図３の例では、４／４拍子）分切り出したものを採用しているが、発音データリストの生成は、後述するようにユーザの押鍵操作で開始された後、その離鍵操作があるまで停止されないので、ユーザの押鍵操作から離鍵操作に至るまでの時間が４小節長を超えると、発音データリストは４小節長を超えて生成される。したがって、押鍵音が変更されないまま、発音データリストが４小節長を超えて生成されたときには、第５小節目以降のノートナンバは、第１〜第４小節で生成されたノートナンバが繰り返し生成される。ただし、発音データリストに登録される第５小節目以降の発音データのタイミングは、発音パターンデータ中の対応する発音タイミングをそのまま使うことができず、新発音パターンデータをループして使用する回数（以下、「ループ回数」と言う）×新発音パターンデータの時間長分、当該発音タイミングを時間的に遅く（後ろ）にシフトする必要がある。たとえば、ループ回数が２回目の先頭の発音データのタイミングは、図３に示すように、新発音パターンデータ中の対応する発音タイミング“１：１：０００”に対して４小節分後ろにシフトされ、“５：１：０００”となっている。ここで、ループ回数は“０”を初期値としているので、図３の「ループ２回目」とは、ループ回数＝１のことである（この事情は、図４および図５でも同様である）。なお、新発音パターンデータとして切り出す時間長は、元の発音パターンデータ全体の時間長より短ければ、上記４小節長に限られないことは言うまでもない。
【００３５】
図２に戻り、ユーザの指示に応じてアルペジオ再生モードに移行し、ユーザが、アルペジオパターンデータを選択するとともに開始位置、終了位置および開始位置シフト量を設定し（ブロック１ｂ）、アルペジオ発音データの生成開始を指示した後、押鍵操作によって、少なくとも１つ以上の押鍵音を入力する（ブロック１ａ）と、入力された押鍵音（少なくともキーコードおよびベロシティを含む）は、前記ＲＡＭ５の所定位置に確保されたキーオンバッファ（図示せず）に格納される。前記ＣＰＵ３はキーオンバッファの状態を常にチェックし、キーオンバッファに押鍵音が格納されると、その押鍵音に対応するノートオンイベントを生成して前記音源回路９に出力する。これに応じて音源回路９は、入力されたノートオンイベントに対応する楽音信号を生成して、前記効果回路１０に出力する。これにより、サウンドシステム１１から押鍵音が発音される。
【００３６】
次にＣＰＵ３は、新発音パターンデータ、つまりアルペジオパターンデータＮ中の発音パターンデータを前記開始位置から前記終了位置まで切り出すことによって得られた発音パターンデータと、キーオンバッファに格納された押鍵音の音高（キーコード）に基づいて、前述のようにして発音データリストを生成する（ブロック３ａ）。なお前記ブロック１ｂでは、「開始位置シフト量」も設定できるように構成されているが、これに基づいた制御処理については、後述する。また本発明は、アルペジオパターンデータ（の発音パターンデータ）の一部を使用することで、新たなアルペジオパターンデータを生成して再生したり、保存したりすることに特徴があるので、本実施の形態では常に、アルペジオパターンデータの一部を使用することにする。つまり、「開始位置」および「終了位置」のうち、少なくとも一方が常に設定されるものとする。しかし、これは説明の都合上であって、「開始位置」および「終了位置」のいずれも設定されず（この場合、「開始位置シフト量」は設定できてもできなくてもよい）、前記従来のアルペジエータのようにアルペジオパターンデータ全体を用いて発音データリストを生成できるように構成してもよい。
【００３７】
このようにして生成された（あるいは生成中の）発音データリストは、図示しないタイマ割り込み処理内に埋め込まれた前記（Ｃ）の発音データリスト再生処理によって再生される。この（Ｃ）発音データリスト再生処理は、具体的には、次のようにして実現される。すなわち、タイマ割り込み処理は、たとえば前記クロックの１周期毎に起動されるとして、
（ｉ）ＲＡＭ５の所定位置に設けたフリーランカウンタ（図示せず）を、タイマ割り込み処理が起動される度にカウントアップする
（ｉｉ）フリーランカウンタのカウント値と発音データリスト中の発音タイミングとを比較し、その結果、両者が一致すると、発音データリストから、その発音タイミングのノートナンバおよびベロシティを読み出し、このノートナンバおよびベロシティを含むノートオンイベントを生成して、音源回路９へ出力する
（ｉｉｉ）上記（ｉｉ）でノートオンイベントを生成した場合、フリーランカウンタが、その生成時点を起点として現時点までカウントした値を検出し、その検出値と、生成したノートオンイベントに対応するゲートタイムとを比較し、その結果、両者が一致すると、生成したノートオンイベントに対応するノートオフイベントを生成して、音源回路９に出力する。
【００３８】
なおフリーランカウンタは、押鍵が開始されたタイミングなどの所定のタイミングでリセットする必要があることは言うまでもない。そしてリセットは通常、フリーランカウンタの値を“０”に設定することによって行うが、本実施の形態では、フリーランカウンタの値を“−１”に設定することによって行う。これは、本実施の形態では上述のように、フリーランカウンタがカウントアップされてから、そのカウント値と発音タイミングとが比較されるため、フリーランカウンタを“０”でリセットすると、発音タイミングが“００００”の位置にあるイベントを検出できないからである。また本実施の形態では、発音タイミングの表現形式として「小節：拍：クロック数」を採用する一方、フリーランカウンタのカウントは単純な（たとえば、“１”ずつの）カウントアップであるため、前記（ｉｉ）の処理における「比較」は、一方の表現形式を他方の表現形式に合わせた後に行う必要がある。どちらをどちらに合わせても構わないが、本実施の形態では説明の都合上、フリーランカウンタのカウント値を「小節：拍：クロック数」の表現形式に変換した後、発音タイミングと比較することにする。
【００３９】
図４は、本実施の形態のアルペジエータが実行する制御処理を説明するための図であり、同図（ａ）は、選択された６小節長のアルペジオパターンデータの一部を切り出す様子を示し、同図（ｂ）は、同図（ａ）のアルペジオパターンデータ中の発音パターンデータに基づいて新たに作成した発音パターンデータを示し、同図（ｃ）は、同図（ｂ）の発音パターンデータを使用して生成した発音データリストに基づいて再生を行ったときの様子を示している。
【００４０】
前述のように、ユーザによって選択されたアルペジオパターンデータは前記アルペジオパターンデータ格納領域に格納されるが、このとき、そのアルペジオパターンデータ中の発音パターンデータを構成する各イベントデータの時間的位置が、たとえば図４（ａ）に示すように前記表示装置７上に表示される。その表示画面上には、切り出し開始位置および切り出し終了位置をそれぞれ示す矢印とともに、図示しないカーソルも表示される。ユーザは、このカーソルを切り出し開始位置または切り出し開始位置を示す矢印に合わせてドラッグ操作することで、切り出し開始位置または切り出し終了位置を指定する。図示例では、切り出し開始位置として第２小節の先頭が、切り出し終了位置として第５小節の末尾が指定されている。これにより、前記図２のブロック１ｂにおける「開始位置」として第２小節の先頭が、同「終了位置」として第５小節の末尾が設定される。なお、切り出し開始位置および切り出し終了位置の指定をドラッグ操作で行うと、切り出し開始位置が切り出し終了位置より時間的に遅く指定されたり、切り出し開始位置が当該アルペジオパターンデータの先頭を超えて指定されたり、切り出し終了位置が当該アルペジオパターンデータの末尾を超えて指定されたりすることがあり得る。このようなエラー指定については、ユーザに警告したり、指定そのものをできなくしたりすればよい。
【００４１】
次にユーザが、アルペジオ発音データの生成開始を指示すると、図４（ｂ）に示すように、アルペジオパターンデータ中の発音パターンデータが「開始位置」から「終了位置」まで切り出されて、新たな発音パターンデータが作成される。
【００４２】
そして、この新発音パターンデータおよび入力された押鍵音に基づいて発音データリストが生成され、この発音データリストに基づいて楽音、つまりアルペジオが生成される。図４（ｃ）は、新発音パターンデータを２回使用してアルペジオを生成したときの様子を示している。ただし図示例では、新発音パターンデータ内のキーナンバが読み出される様子が示され、発音データリスト内のノートナンバが再生される様子は示されていない。これは、本発明ではアルペジオパターンデータ（の発音パターンデータ）の一部をどのように切り出し、切り出し後のアルペジオパターンデータ（の発音パターンデータ内のキーナンバ）をどのように読み出してアルペジオを生成するかが問題であって、切り出し後のアルペジオパターンデータ（の発音パターンデータ内のキーナンバ）から発音データリスト内のノートナンバをどのように生成するかは問題ではない（つまり、発音パターンデータ内のキーナンバから発音データリスト内のノートナンバを生成する方法は、前記従来のアルペジエータによってなされている方法をそのまま用いている）からである。
【００４３】
図５は、図４の制御処理と異なる他の制御処理を説明するための図である。図５の制御処理は、図４の制御処理に対して、ユーザがタイミングシフト量を指定した点が異なっている。図５（ａ）〜（ｃ）はそれぞれ、図４（ａ）〜（ｃ）に対応している。
【００４４】
図５（ａ）に示すように、まずユーザが、図４（ａ）と同じアルペジオパターンデータを選択して、図４（ａ）と同じ区間の切り出しを指定した上で、さらに２拍分のタイミングシフト量を指定すると、前記図２のブロック１ｂの「開始位置」、「終了位置」および「開始位置シフト量」にはそれぞれ、「第２小節の先頭」、「第５小節の末尾」および「２拍分」が設定される。
【００４５】
次にユーザが、アルペジオ発音データの生成開始を指示すると、図５（ｂ）に示すように、アルペジオパターンデータ中の発音パターンデータが「開始位置」＋「開始位置シフト量」から「終了位置」まで切り出され、さらに「開始位置」から「開始位置」＋「開始位置シフト量」まで切り出され、前者の切り出された発音パターンデータの後ろに後者の切り出された発音パターンデータを追加して、新たな発音パターンデータが生成される。
【００４６】
そして、この新発音パターンデータおよび入力された押鍵音に基づいて発音データリストが生成され、この発音データリストに基づいて楽音、つまりアルペジオが生成される。図５（ｃ）は、新発音パターンデータを２回使用してアルペジオを生成したときの様子を示している。
【００４７】
なお、図４（ｂ）および図５（ｂ）の新発音パターンデータは、ユーザの保存の指示により、新たなアルペジオパターンデータとして所定の記憶媒体に記録できるように構成されている。
【００４８】
このように本実施の形態のアルペジエータでは、アルペジオパターンデータの一部を用いてアルペジオを生成することができる。そして、使用したアルペジオパターンデータ（の発音パターンデータ）の一部は、新たなアルペジオパターンデータとして保存するようにしたので、１つのアルペジオパターンデータから複数のアルペジオパターンデータを作成することができる。具体的には、たとえばドラム用のアルペジオパターンでは、７小節間の通常のパターンの後、フィルイン的なパターンが８小節目に入るような構成になっていることがある。このとき、ユーザが８小節目でなく、もっと先にフィルイン的なパターンを入れたい場合には、フィルイン的なパターンの前の通常のパターンの部分を切り出して使い、最後にフィルイン的なパターンを使うというように、切り出したパターンと元のパターンを簡単に組み合わせて利用することができる。
【００４９】
またパターンの切り出しは、基本的には小節の先頭タイミングから始めるが、パターンの特性などによっては小節の途中から始めたいこともある。この場合、本実施の形態のアルペジエータではタイミングシフト量を指定することができるので、ユーザは、そのパターンの特性などを考慮してタイミングシフト量を指定することで、そのパターンの切り出し開始位置を適宜（たとえば、１６分音符単位毎に）後ろにずらすことができる。これにより、たとえば切り出した発音パターンデータの先頭に休符が入っている場合など、休符を飛ばしてアルペジオ生成を開始することができる。さらに、このように切り出し開始位置をずらしたアルペジオパターンをループ再生する場合、本実施の形態のアルペジエータでは、再生が進行して切り出し終了位置に到達すると、ずらす前の切り出し開始位置、つまり、図５の例では小節の先頭タイミングに戻るようにしているので、全体として見たときに小節がずれることなくアルペジオ生成を行うことができる。
【００５０】
次に、この制御処理を詳細に説明する。
【００５１】
図６は、本実施の形態のアルペジエータ、特にＣＰＵ３が実行するアルペジオ再生モード処理の手順をそれぞれ示すフローチャートであり、本アルペジオ再生モード処理は、ユーザが前記アルペジオ再生モードを選択したときに起動される。
【００５２】
本アルペジオ再生モード処理は、主として
（１）初期設定処理（ステップＳ１〜Ｓ３）
（２）前記（Ａ）の新発音パターンデータ作成処理（ステップＳ４）
（３）前記（Ｄ）の発音／消音処理（ステップＳ５，Ｓ６，Ｓ１１，Ｓ１２）
（４）アルペジオ再生のスタート／ストップ処理（ステップＳ７〜Ｓ１０，Ｓ１３，Ｓ１４）
によって構成されている。
【００５３】
上記（１）の初期化処理では、まずＣＰＵ３は、前記外部記憶装置６に記憶されているアルペジオパターンデータ群の一覧を、たとえば前記表示装置７上に表示することでユーザに提示し、ユーザがその中からいずれかのアルペジオパターンデータを選択すると、選択されたアルペジオパターンデータを外部記憶装置６から前記アルペジオパターンデータ格納領域に読み込む（ステップＳ１）。
【００５４】
次にＣＰＵ３は、前述のようにしてアルペジオパターンデータ格納領域内のアルペジオパターンデータを前記表示装置７上に表示し、ユーザによって切り出し開始位置および切り出し終了位置が指定されるのを待つ。ユーザが切り出し開始位置および切り出し終了位置を指定すると、ＣＰＵ３は、その切り出し開始位置および切り出し終了位置をそれぞれ、前記ＲＡＭ５の所定位置に確保された切り出し開始位置格納領域および切り出し終了位置格納領域（ともに図示せず）に格納する（ステップＳ３）。
【００５５】
切り出し開始位置および切り出し終了位置の指定は、図４（ａ）を用いて前述したように、たとえばアルペジオパターンデータ（中の発音パターンデータを構成する各イベントデータの時間的位置）が表示された画面上の矢印およびカーソルを用いてなされる。この位置の指定は、小節単位や拍単位、さらに細かくクロック単位など、いずれの単位を採用してもよいが、本実施の形態ではクロック単位で指定できるものとする。もちろん、ユーザがその単位をいずれにするか設定できるようにしてもよい。なお、切り出し開始位置および切り出し終了位置が指定されたときに、少なくとも一方の位置が、当該発音パターンデータ内のいずれかのイベントデータの発音継続時間の途中になっていることがある。この場合、そのイベントデータは、切り出し位置で分割してもよいし、切り出し対象から除外するようにしてもよいし、クオンタイズ処理を施した後に切り出すようにしてもよい。また、このようなルールをいくつか用意しておき、ユーザあるいはメーカがいずれかを選択設定できるようにしてもよい。
【００５６】
なお、本実施の形態では前述のように、切り出し開始位置および切り出し終了位置のうちのいずれか一方が設定されない場合があり得るが、設定されない方の格納領域にはデフォルト位置（たとえば、切り出し終了位置が設定されない場合には、元のアルペジオパターンデータの終了位置）を設定しておけばよい。
【００５７】
さらにＣＰＵ３は、ユーザによってタイミングシフト量（前記図２の「開始位置シフト量」に相当）が指定されるのを待つ。ユーザがタイミングシフト量を指定すると、ＣＰＵ３は、そのタイミングシフト量を、ＲＡＭ５の所定位置に確保されたタイミングシフト量格納領域（図示せず）に格納する（ステップＳ３）。タイミングシフト量の指定も、前記切り出し開始位置および切り出し終了位置の指定と同様に、表示画面上の矢印およびカーソルを用いて行われる。しかしその指定単位は、前記切り出し開始位置および切り出し終了位置の指定単位より細かく、たとえば、１６分音符単位や８分音符単位、４分音符単位、さらに細かくクロック単位のいずれかを採用すればよい。本実施の形態では、クロック単位で指定できるものとするが、ユーザがその単位をいずれにするか設定できるようにしてもよい。なお、前記図４を用いて説明したように、タイミングシフト量は指定されない場合があり、その場合、タイミングシフト量格納領域には“ＦＦ”（１バイトで表現される場合）を設定しておけばよい。
【００５８】
次にＣＰＵ３は、処理を前記（２）の新発音パターンデータ作成処理に進める。
【００５９】
図７は、この（２）新発音パターンデータ作成処理の詳細な手順を示すフローチャートである。同図に示すように、まずＣＰＵ３は、新発音パターンデータを作成するためにＲＡＭ５の所定位置に新発音パターンデータ格納領域（図示せず）を確保する（ステップＳ２１）。次にＣＰＵ３は、前記タイミングシフト量格納領域をチェックすることで、タイミングシフト量が設定されているかどうかを判別し（ステップＳ２２）、タイミングシフト量が設定されていないとき、つまりタイミングシフト量格納領域に“ＦＦ”が格納されているときには、ステップＳ２３〜Ｓ２５の処理を実行する一方、タイミングシフト量が設定されているとき、つまりタイミングシフト量格納領域に“ＦＦ”以外の値が格納されているときには、ステップＳ２６〜Ｓ２８およびＳ２５の処理を実行する。
【００６０】
タイミングシフト量が設定されていないときには、ＣＰＵ３は、前記アルペジオパターンデータ格納領域に格納されているアルペジオパターンデータ中の発音パターンデータ内のイベントデータのうち、発音タイミングが前記切り出し開始位置から前記切り出し終了位置までの時間内にあるイベントデータをコピーして、前記新発音パターンデータ格納領域の先頭から書き込む（ステップＳ２３）。そしてＣＰＵ３は、このようにして書き込まれた各イベントデータの発音タイミングを切り出し開始位置分、つまり当該アルペジオパターンデータ中の発音パターンデータの先頭から切り出し開始位置までの時間（に相当するクロック数）分前にシフトさせる（ステップＳ２４）。さらにＣＰＵ３は、必要に応じて新発音パターンデータ格納領域内の末尾のイベントデータの終了時間を調整する（ステップＳ２５）。末尾のイベントデータは、その発音タイミングが切り出し終了位置より時間的に早い位置にあるために、新発音パターンデータ格納領域に書き込まれているものの、そのゲートタイムで、つまり発音継続時間だけ発音させたときには、切り出し終了位置を超えることがあり得る。上記ステップＳ２５の「調整」とは、末尾のイベントデータをそのゲートタイムで発音させたときに切り出し終了位置を超えないように、そのゲートタイムを調整することを意味する。なお、このような「調整」は、末尾のイベントデータだけでなく、末尾に近いいくつかのイベントデータについても行う必要があり得るが、その場合には、当該イベントデータについても同様の「調整」を行うことは言うまでもない。このようにして新発音パターンデータは、前記図４（ｂ）のように作成される。
【００６１】
一方、タイミングシフト量が設定されているときには、ＣＰＵ３は、前記アルペジオパターンデータ格納領域に格納されているアルペジオパターンデータ中の発音パターンデータ内のイベントデータのうち、発音タイミングが前記切り出し開始位置にタイミングシフト量分加算した結果の位置（切り出し開始位置＋タイミングシフト量）から前記切り出し終了位置までの時間内にあるイベントデータをコピーして、前記新発音パターンデータ格納領域の先頭から書き込む（ステップＳ２６）。そしてＣＰＵ３は、当該アルペジオパターンデータ中の発音パターンデータ内のイベントデータのうち、発音タイミングが切り出し開始位置から該切り出し開始位置にタイミングシフト量分加えた位置（切り出し開始位置＋タイミングシフト量）までの時間内にあるイベントデータのコピーであって、その各イベントデータの発音タイミングをそれぞれ、切り出し終了位置から切り出し開始位置を減算した結果（切り出し終了位置−切り出し開始位置）分だけ時間的に遅くシフトしたコピーを新発音パターンデータ格納領域に追加する（ステップＳ２７）。さらにＣＰＵ３は、このようにして書き込まれた各イベントデータの発音タイミングを切り出し開始位置にタイミングシフト量を加算した結果（切り出し開始位置＋タイミングシフト量）分、つまり当該アルペジオパターンデータ中の発音パターンデータの先頭から切り出し開始位置＋タイミングシフト量までの時間（に相当するクロック数）分前にシフトさせる（ステップＳ２８）。そしてＣＰＵ３は、処理を前記ステップＳ２５に進める。ステップＳ２５の処理については前述したので、ここでは繰り返さない。
【００６２】
次にＣＰＵ３は、処理を前記（３）の発音／消音処理に進める。この（３）発音／消音処理では、まずＣＰＵ３は、ユーザの押鍵操作に応じて前記検出回路２から出力された演奏情報（押鍵音）を取得し、前記キーオンバッファに格納する（図６のステップＳ５）。次にＣＰＵ３は、キーオンバッファに格納された押鍵情報に基づいてノートオンイベントを生成し、音源回路９に出力する（ステップＳ６）。なおユーザの押鍵操作は、複数の鍵に対するもののみである必要はなく、１つの鍵に対するものでもよい。そしてＣＰＵ３は、ユーザの離鍵操作に応じて検出回路２から出力された離鍵情報（離鍵音）を取得すると、その取得された離鍵情報に基づいてノートオフイベントを生成し、音源回路９に出力する（ステップＳ１１→Ｓ１２）。これにより、ユーザの押鍵から離鍵に至るまで、その押鍵音が継続して発音される。
【００６３】
前記（４）のアルペジオ生成のスタート／ストップ処理では、ＣＰＵ３は、前記ステップＳ５で検出された押鍵がニューキーオンであるか否かを判別する（ステップＳ７）。この判別の結果、ニューキーオンであれば、ＣＰＵ３は、ループ回数をカウントするためにＲＡＭ５の所定位置に設けられたループカウンタ（図示せず）をリセット（“０”）するとともに、前記新発音パターンデータ格納領域内の発音パターンデータから読み出すべき１組のイベントデータの位置を示すためにＲＡＭ５の所定位置に設けられた読み出しポインタ（図示せず）をリセット（“０”）し（ステップＳ８）、さらに発音データリストを初期化（クリア）する（ステップＳ９）。なお発音データリストも、ＲＡＭ５の所定位置に確保された領域上に形成される。そしてＣＰＵ３は、アルペジオ再生をスタートさせて、アルペジオ再生を動作状態とした（ステップＳ１０）後、発音データリスト生成処理（前記（Ｂ）の発音データリスト生成処理に相当する）を実行する。
【００６４】
図８は、発音データリスト生成処理の詳細な手順を示すフローチャートである。本発音データリスト生成処理は、アルペジオ再生の動作中に１回起動されると、新発音パターンデータ格納領域内の新発音パターンデータを１回使って発音データリストを生成するものである。
【００６５】
図８において、まずＣＰＵ３は、アルペジオ再生が動作中かどうかを判別し（ステップＳ３１）、動作中でなければ、直ちに本発音データリスト生成処理を終了する一方、動作中であれば、新発音パターンデータ格納領域内の新発音パターンデータから、読み出しポインタが示す位置の１組のイベントデータを読み出す（ステップＳ３２）。
【００６６】
次にＣＰＵ３は、読み出した１組のイベントデータと押鍵音の音高に基づいて、前述した方法により発音データを生成し、ループカウンタの値を考慮して発音データリストに書き込む（ステップＳ３３）。図３を用いて前述したように、１回目のループ（ループカウンタ＝０の場合）では、発音データリストに登録する発音データのタイミング（Ｔｉｍｉｎｇ）は新発音パターンデータ内の対応するイベントデータの発音タイミングをそのまま使うことができる。しかし２回目以降のループ（ループカウンタ≧１の場合）では、当該イベントデータの発音タイミングをループカウンタの値×新発音パターンデータ全体の時間長（＝切り出し終了位置−切り出し開始位置）分だけ時間的に遅くシフトさせてから発音データリストに登録する必要がある。上記ステップＳ３３の「ループカウンタの値を考慮して」とは、発音データを発音データリストに登録するに際して、ループカウンタの値によっては（ループカウンタ≠０の場合）発音データのタイミングを換算する必要があることを意味する。
【００６７】
次にＣＰＵ３は、読み出しポインタの値を“１”だけ進める（ステップＳ３４）。そしてＣＰＵ３は、読み出した１組のイベントデータが発音パターンデータの末尾のデータになるまで、前記ステップＳ３２〜Ｓ３４の処理を繰り返す（ステップＳ３５→Ｓ３２）。一方、読み出した１組のイベントデータが発音パターンデータの末尾のデータになると、ＣＰＵ３は、ループカウンタを“１”だけカウントアップするとともに、読み出しポインタをリセットした（ステップＳ３５→Ｓ３６）後、本発音データリスト生成処理を終了する。
【００６８】
このようにして生成された発音データリストを再生して、アルペジオを発音させる処理については、既に説明したので、繰り返さない。ただし、発音データリストに登録された最後の（あるいは、それより前であって、それに近い位置の）発音データが読み出されたときには、ＣＰＵ３に本発音データリスト生成処理を１回実行させる必要がある。これにより、新発音パターンデータを使った２回目以降のループでも、アルペジオを正しく発音させることができる。
【００６９】
図６に戻り、アルペジオ動作中に、前記ステップＳ１１で検出された離鍵がオールキーオフ（押鍵されていた状態からすべての鍵が離鍵された状態になること）であれば、アルペジオ生成をストップさせて、アルペジオを非動作状態とする（ステップＳ１３→Ｓ１４）。このときＣＰＵ３は、発音データリスト内でユーザの離鍵タイミング以降に消音される発音データについて、必要があればその消音タイミングを調整する。ここで、消音タイミングを調整する必要がある場合とは、たとえば、新発音パターンデータが１度も末尾まで使われずに離鍵操作がされた場合である。この場合には、離鍵操作が検出された後、最初に到来する切りのよい位置（小節や拍の終了位置やパターンの末尾など）までアルペジオ生成を続けた方が望ましい。もちろんこれに限らず、消音タイミングの調整を行わずに、離鍵操作が検出された時点で、アルペジオ生成も即座に停止するようにしてもよい。
【００７０】
このように新発音パターンデータを使ってアルペジオ再生を行ったときに、ユーザがその新発音パターンデータを、新たなアルペジオパターンデータとして前記外部記憶装置６に記録しておきたいことがある。
【００７１】
図９は、アルペジオパターンデータ記録処理の手順を示すフローチャートであり、本アルペジオパターンデータ記録処理は、ユーザが、たとえば前記操作子群１に含まれる保存スイッチ（図示せず）を操作したときに起動される。
【００７２】
本アルペジオパターンデータ記録処理では、まずＣＰＵ３は、アルペジオパターンデータの枠組み（たとえば、ファイル）を新規作成する（ステップＳ４１）。新規作成する場所は、たとえば前記ＲＡＭ５のワークエリアである。
【００７３】
次にＣＰＵ３は、作成中のアルペジオパターンデータを識別する識別情報（名前や番号）を決定し、当該アルペジオパターンデータに付与する（ステップＳ４２）。ここで識別情報は、ユーザによって入力されたものを用いてもよいし、ＣＰＵ３によって自動的に付けられたものを用いてもよい。
【００７４】
次にＣＰＵ３は、切り出し開始位置と切り出し終了位置より、新発音パターンデータの長さを抽出し、作成中のアルペジオパターンデータに付与する（ステップＳ４３）。ここで、切り出し開始位置および切り出し終了位置は、前記切り出し開始位置格納領域および切り出し終了位置格納領域にそれぞれ格納されているものを読み出して用いればよい。
【００７５】
次にＣＰＵ３は、元のアルペジオパターンデータ、つまり前記アルペジオパターンデータ格納領域に格納されているアルペジオパターンデータを参照して、その他の必要な情報（音色や拍子など）を抽出し、作成中のアルペジオパターンデータに付与する（ステップＳ４４）。なお、ステップＳ４２〜Ｓ４４の処理は、作成中のアルペジオパターンデータのフォーマットを本実施の形態で採用したアルペジオパターンデータのフォーマットに合わせるための処理である。したがって、本実施の形態で言及したアルペジオパターンデータには、ステップＳ４２〜Ｓ４４の処理によって付与される情報が付与されている。
【００７６】
次にＣＰＵ３は、新発音パターンデータ格納領域から、そこに格納されている新発音パターンデータを読み出して、作成中のアルペジオパターンデータ内に取り込む（ステップＳ４５）。
【００７７】
次にＣＰＵ３は、作成中のアルペジオパターンデータを所定の記憶媒体に記録する（ステップＳ４６）。ここで所定の記憶媒体とは、前記外部記憶装置６であるが、外部記憶装置６には、前述のように各種の記憶媒体が存在するので、ユーザにそのいずれかを指定させ、指定された記憶媒体に作成中のアルペジオパターンデータを記録させている。
【００７８】
このように本実施の形態では、アルペジオパターンデータの記録は、ユーザの操作に応じて行うようにしたが、これに限らず、別のアルペジオパターンデータが選択されるときに自動的に行うようにしてもよいし、ある一定時間（たとえば、５分間）いずれのユーザ操作も検出されなかったときに自動的に行うようにしてもよい。自動的に記録する場合、新たなアルペジオパターンデータの識別情報（番号）としては、空いている番号を付けるようにすればよい。
【００７９】
なお本実施の形態では、アルペジオパターンデータ記録処理は、アルペジオ再生モード内の一処理としたが、これに限らず、アルペジオ再生モードとは独立したアルペジオパターンデータ記録モードを設け、そのモード内でアルペジオパターンデータの記録を単独で行うようにしてもよい。この場合、上記図９のアルペジオパターンデータ記録処理の先頭に、前記図６のステップＳ１〜Ｓ４の処理を追加すればよい。
【００８０】
また本実施の形態では、アルペジオ再生を行うに際して、常に新発音パターンデータを作成するようにしたが、新発音パターンデータを作成せず、アルペジオパターンデータ格納領域に格納されているアルペジオパターンデータ中の発音パターンデータ内のイベントデータのうち、切り出し開始位置から切り出し終了位置までに含まれるものを読み出すことで、アルペジオ再生を行うようにしてもよい。具体的には、前記図８の発音データリスト生成処理を次のように変更する。つまり、
ａ．「新発音パターンデータ」を「アルペジオパターンデータ格納領域に格納されているアルペジオパターンデータ中の発音パターンデータ」に変更
ｂ．読み出しポインタの初期値を“０”（図６のステップＳ８および図８のステップＳ３６）から「切り出し開始位置のイベントデータの位置」に変更
ｃ．生成した発音データを発音データリストに書き込むときの「ループカウンタの値を考慮して」（ステップＳ３３）を「読み出した１組のイベントデータに含まれる発音タイミングを切り出し開始位置分時間的に早い方向にシフトした上で、ループカウンタの値を考慮して」に変更
ｄ．ステップＳ３５の「読み出した１組のイベントデータは新発音パターンデータの末尾の１組のイベントデータ？」を「読み出した１組のイベントデータは切り出し終了位置までにある最後の１組のイベントデータ？」に変更。
【００８１】
ただし、タイミングシフト量が指定されている場合には、上記ｂ．をさらに「読み出しポインタの初期値を『切り出し開始位置のイベントデータの位置』から『切り出し開始位置＋タイミングシフト量のイベントデータの位置』に変更し、ステップＳ３５とステップＳ３６の間に、「切り出し開始位置から切り出し開始位置＋タイミングシフト量までに含まれるイベントデータを１組ずつ読み出して、ステップＳ３３の処理と同様の処理を行う（ただし、生成した発音データを発音データリストに書き込むときには、当該発音タイミングを切り出し終了位置−切り出し開始位置−タイミングシフト量分時間的に遅い方向にシフトした上で、ループカウンタの値を考慮する）」処理を追加する。
【００８２】
この場合、新発音パターンデータは作成されないので、前記アルペジオパターンデータ記録モードを設け、そのモード内でアルペジオパターンデータの記録を単独で行う必要がある。
【００８３】
さらに本実施の形態では、アルペジオパターンデータは、外部記憶装置６に予め複数種類記憶されているとしたが、これに限らず、前記ＲＯＭ４に予め複数種類記憶されていてもよいし、ネットワーク上にあるものを、前記通信Ｉ／Ｆ８を介して取得するようにしてもよい。
【００８４】
また本実施の形態では、ループカウンタは設けられているものの、ループ回数を設定し、その設定したループ回数で、切り出したアルペジオパターンデータを繰り返し用いる回数を制限できるようには構成されていないが、前記従来のアルペジエータと同様にして、切り出したアルペジオパターンデータを繰り返し用いる回数を制限できるように構成してもよい。
【００８５】
さらに本実施の形態では、アルペジオパターンデータが参照する音符情報として、ユーザがリアルタイム演奏することによって入力したもの（つまり、押鍵音）を用いるようにしたが、これに限らず、ユーザが事前に作成した演奏情報ファイルや既製の演奏情報ファイルを再生して得られたものを用いてもよい。
【００８６】
また本実施の形態では、アルペジオパターンデータ中の発音パターンデータの「切り出し開始位置」、「切り出し終了位置」および「タイミングシフト量」の各指定は、画面上の矢印およびカーソルを用いて行うようにしたが、これに限らず、小節数や拍数、音符長などの数値を、たとえば前記操作子群１に含まれるテンキー（図示せず）などを用いて直接入力するようにしてもよい。さらに本実施の形態では、選択されたアルペジオパターンデータ中の発音パターンデータ（を構成する各イベントデータの時間的位置）を表示装置７上に表示するようにしたが、表示しないようにしてもよい。ただしこの場合、上記「切り出し位置」などを指定するための便宜上、アルペジオパターンデータ中の発音パターンデータの長さを数値で表示できるようにした方が好ましい。
【００８７】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００８８】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８９】
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
【００９０】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００９１】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【符号の説明】
【００９２】
１…操作子群（設定手段、入力手段、変更手段），３…ＣＰＵ（供給手段、設定手段、生成手段、変更手段、コピー手段、シフト手段、記録手段），４…ＲＯＭ（供給手段），６…外部記憶装置（供給手段、記憶手段），８…通信Ｉ／Ｆ（供給手段）
【図１】
2010237509.tif 000003
【図２】
2010237509.tif 000004
【図３】
2010237509.tif 000005
【図４】
2010237509.tif 000006
【図５】
2010237509.tif 000007
【図６】
2010237509.tif 000008
【図７】
2010237509.tif 000009
【図８】
2010237509.tif 000010
【図９】
2010237509.tif 000011