(57)【要約】      （修正有）【課題】楽音の発音から消音までに必要なデータの容量をより少なくする。【解決手段】ＣＰＵ１１は、楽音データを取得し、当該楽音データのうち、１バイト目のデータに基づいて、ステップタイムを算出し、２バイト目のデータに基づいて、音高を算出し、３バイト目のデータに基づいて、音強を算出し、４バイト目及び５バイト目のデータに基づいて、楽音の発音が継続するゲートタイムを算出し、当該ステップタイムの経過後に、当該ゲートタイムの間、当該音高及び当該音強に基づいて、音源１７及び発音回路１８に楽音を発音させる。【選択図】図１
2014059435.tif 000002
【特許請求の範囲】
【請求項１】
取得された少なくとも第１乃至第４のバイト領域を有するイベントデータのうち、第１のバイト領域にあるデータに基づいて待ち時間を算出する第１の時間算出手段と、
この算出された待ち時間経過後に、前記第２及び第３のバイト領域にあるデータに基づき発音すべき楽音のパラメータを取得するパラメータ取得手段と、
前記イベントデータのうち、前記第４のデータに基づいて前記楽音の発音時間を算出する第２の時間算出手段と、
音源に対して、前記取得されたパラメータに基づいた楽音を前記算出された発音時間だけ発音するように指示する発音指示手段と、
を備えた楽音再生装置。
【請求項２】
前記楽音のパラメータとして、前記第２のバイト領域にあるデータに基づいて発音すべき楽音の音高を取得するとともに、前記第３のバイト領域にあるデータに基づいて発音すべき楽音のベロシティを取得することを特徴とする請求項１記載の楽音再生装置。
【請求項３】
前記第２の時間算出手段は、前記第４のバイト領域内の何れかのビットの状態に基づいて、前記第４のバイト領域にあるデータと、当該第４のバイト領域に続く第５のバイト領域にあるデータとに基づいて前記楽音の発音時間を算出することを特徴とする請求項１又は２いずれかに記載の楽音再生装置。
【請求項４】
前記楽音再生装置はさらに、
前記第２のバイト領域にあるデータに基づいて、前記イベントデータが楽音のパラメータであるか否か判別する判別手段を有し、
前記パラメータ取得手段は、前記判別手段により楽音のパラメータであると判別された場合に、前記第２及び第３のバイト領域にあるデータに基づき発音すべき楽音のパラメータを取得することを特徴とする請求項１乃至３いずれか記載の楽音再生装置。
【請求項５】
前記判別手段が、発音を指示するデータであると判別された場合に、少なくとも前記第１のバイト領域及び第３のバイト領域のデータに基づいて、次のイベントデータを取得するまでの待ち時間を算出する第３の時間算出手段を備えたことを特徴とする請求項４記載の楽音再生装置。
【請求項６】
前記第３の時間算出手段は、前記第３のバイト領域内の何れかのビットの状態に基づいて、前記第１及び第３のバイト領域にあるデータと、当該第３のバイト領域に続く第４のバイト領域にあるデータとに次のイベントデータを取得するまでの待ち時間を算出することを特徴とする請求項５記載の楽音再生装置。
【請求項７】
取得された少なくとも第１乃至第４のバイト領域を有するイベントデータのうち、第１のバイト領域にあるデータに基づいて待ち時間を算出する第１の時間算出ステップと、
この算出された待ち時間経過後に、前記第２及び第３のバイト領域にあるデータに基づき発音すべき楽音のパラメータを取得するパラメータ取得ステップと、
前記イベントデータのうち、前記第４のデータに基づいて前記楽音の発音時間を算出する第２の時間算出ステップと、
音源に対して、前記取得されたパラメータに基づいた楽音を前記算出された発音時間だけ発音するように指示する発音指示ステップと、
を備えた楽音再生方法。
【請求項８】
取得された少なくとも第１乃至第４のバイト領域を有するイベントデータのうち、第１のバイト領域にあるデータに基づいて待ち時間を算出する第１の時間算出ステップと、
この算出された待ち時間経過後に、前記第２及び第３のバイト領域にあるデータに基づき発音すべき楽音のパラメータを取得するパラメータ取得ステップと、
前記イベントデータのうち、前記第４のデータに基づいて前記楽音の発音時間を算出する第２の時間算出ステップと、
音源に対して、前記取得されたパラメータに基づいた楽音を前記算出された発音時間だけ発音するように指示する発音指示ステップと、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽音再生装置、楽音再生方法及びプログラムに関する。
【背景技術】
【０００２】
従来から、一般的に用いられている音楽フォーマットであるＳｔａｎｄａｒｄ  ＭＩＤＩ  Ｆｉｌｅが知られている（特許文献１参照）。Ｓｔａｎｄａｒｄ  ＭＩＤＩ  Ｆｉｌｅを用いて、楽音の発音から消音までに必要なデータを作成する場合、最低８バイトのデータが必要である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３２４６３０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の技術では、楽音の発音から消音までに必要なデータを作成する場合、８バイトよりデータの容量を少なくすることができなかった。
【０００５】
本発明は、このような状況に鑑みてなされたものであり、楽音の発音から消音までに必要なデータの容量をより少なくすることを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の一態様の楽音再生装置は、
取得された少なくとも第１乃至第４のバイト領域を有するイベントデータのうち、第１のバイト領域にあるデータが楽音の発音を指示するデータであるか否か判別する判別手段と、
この判別手段により発音を指示するデータであると判別された場合のみ、前記第２のバイト領域にあるデータに基づいて待ち時間を算出する第１の時間算出手段と、
この算出された待ち時間経過後に、少なくとも前記第３のバイト領域にあるデータに基づき発音すべき楽音のパラメータを取得するパラメータ取得手段と、
前記イベントデータのうち、前記第４のデータに基づいて前記楽音の発音時間を算出する第２の時間算出手段と、
音源に対して、前記取得されたパラメータに基づいた楽音を前記算出された発音時間だけ発音するように指示する発音指示手段と、
を備える。
【発明の効果】
【０００７】
本発明によれば、楽音の発音から消音までに必要なデータの容量をより少なくすることができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係る楽音再生装置のハードウェアの構成を示すブロック図である。
【図２】前記実施形態に係る楽音再生装置により楽音の再生時に使用されるデータのデータ構造を示す図である。
【図３】前記実施形態に係る楽音の発音処理が実行される場合に楽音再生装置に使用される楽音データのデータ構造を示す図である。
【図４】前記実施形態に係る楽音の発音の停止処理が実行される場合に楽音再生装置に使用される楽音データのデータ構造を示す図である。
【図５】前記実施形態に係る楽音再生装置が実行する発音制御処理の流れの一例を示すフローチャートである。
【図６】前記実施形態に係る楽音再生装置が実行する発音処理の流れの一例を示すフローチャートである。
【図７】前記実施形態に係る楽音再生装置が実行する楽音データ生成処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、図面を用いて説明する。
【００１０】
図１は、本発明の一実施形態に係る楽音再生装置１のハードウェアの構成を示すブロック図である。
楽音再生装置１は、図１に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３と、入力部１４と、出力部１５と、音源１７と、発音回路１８と、を備えている。
ＣＰＵ１１は、ＲＯＭ１２に記録されているプログラムに従って各種の処理を実行する。
ＲＯＭ１２は、ＣＰＵ１１が実行するプログラム、自動伴奏用の各種コード進行データ、及び各種制御用データを格納する。
ＲＡＭ１３には、ＣＰＵ１１が各種の処理を実行する上において必要なデータ等も適宜記憶される。
入力部１４は、各種釦等で構成され、ユーザの指示操作に応じて各種情報を入力する。
出力部１５は、ディスプレイ等で構成され、画像等を出力する。
記憶部１６は、ハードディスクあるいはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、各種データを記憶する。
音源１７は、ＣＰＵ１１の指示に従ってデジタル楽音用波形データを生成し出力する。
発音回路１８は、音源１７が出力する波形データをアナログ波形信号（オーディオ信号）に変換して、出力する。これにより、楽音が発音される。
【００１１】
図２は、楽音再生装置１により楽音の再生時に使用されるデータ（以下、「楽音データ」と呼ぶ）のデータ構造を示す図である。
楽音データは、原則として５バイトで構成されている。例外として、３バイト目の先頭ビットが「１」である場合、３バイトで構成される。また、３バイト目の先頭ビットが「０」であり、かつ４バイト目の先頭ビットが「１」である場合、４バイトで構成される。したがって、３バイト目と４バイト目の先頭ビットは、フラグとして用いられる。１バイト目には、前回のイベント終了時からの今回のイベント開始時までの発音の停止時間（以下、「ステップタイム」と呼ぶ）が格納されている。本実施形態では、イベントとは、楽音の発音、音高の変更等、楽音再生装置が実行する処理のことをいう。２バイト目には、今回のイベントの種類を表すコマンドが格納されている。３バイト目〜５バイト目には、後述する各種データが格納されている。
楽音が再生されるためには、５バイト（例外として３バイオ又は４バイト）を楽音データの１単位として複数単位を有する複数の楽音データが必要である。ＲＯＭ１２又は記憶部１６の所定の領域には、複数の楽音データが連続して格納されている。
【００１２】
図３は、楽音の発音処理が実行される場合に楽音再生装置１に使用される楽音データのデータ構造を示す図である。
１バイト目には、１０進数で「１２８」を表す２進数のデータが格納されている。これは、ステップタイムが１２８ステップに相当する時間であることを示す。ここで、１ステップとは、９６音符で表される時間の長さである。
２バイト目には、１０進数で「６４」を表す２進数のデータが格納されている。これは、音の高さを表す音高データであるノートナンバが「６４」であること示す。ノートナンバは、「０」〜「１２７」までの数値であり、当該数値が高いほど音が高くなる。本実施形態では、２バイト目に、１０進数で「０」〜「１２７」を表す２進数のデータが格納されている場合、イベントとして楽音の発音が実行される。したがって、２バイト目に格納された、１０進数で「０」〜「１２７」を表す２進数のデータは、音高を表すとともに、楽音が発音されるというコマンドを表す。
３バイト目には、１０進数で「１２７」を表す２進数のデータが格納されている。これは、音の強さを表す音強データであるベロシティが「１２７」であることを示す。ベロシティは、「０」〜「１２７」までの数値であり、当該数値が高いほど発音される音が強くなる。なお、上述したように、３バイト目の先頭ビットは、フラグであるため、先頭ビットを除いた下位７ビットでベロシティが表される。
４バイト目には、１０進数で「１」を表す２進数のデータが格納されている。また、５バイト目には、１０進数で「１２８」を表す２進数のデータが格納されている。これらは、４バイト目と５バイト目とのデータが一体となって、「３８４」ステップの時間の間、楽音を発音させることを示す。このとき、１バイト目に格納されたステップタイムの経過後に、２バイト目に格納されたノートナンバで表される音高、及び３バイト目に格納されたベロシティで表される音強で楽音が発音される。
ところで、４バイト目と５バイト目とで表されるステップの算出方法は、次のとおりである。即ち、４バイト目が８ビット左シフトされ、２進数で「１００００００００」とされる。これは、１０進数での「２５６」である。そして、この「２５６」に、５バイト目のデータで表現される１０進数での「１２８」が加算され、ステップとして「３８４」が得られる。なお、上述したように、４バイト目の先頭ビットは、フラグであるため、先頭ビットを除いた下位７ビットが実際に加算対象となる値である。
【００１３】
図４は、楽音の発音の停止処理が実行される場合に楽音再生装置１に使用される楽音データのデータ構造を示す図である。
図３と同様に、１バイト目には、１０進数で「１２８」を表す２進数のデータが格納されている。この意味は、図３で説明したとおりである。
図４に戻って、２バイト目には、１０進数で「２５５」を表す２進数のデータが格納されている。これは、１バイト目により算出されるステップタイムに、３バイト目〜５バイト目に基づいて算出されるステップタイムが加算されるというコマンド（以下、「ステップタイムコマンド」と呼ぶ）を表す。
３バイト目には、フラグである先頭ビットを除いた下位７ビットに基づいて、１０進数で「２」を表す２進数のデータが格納されている。これは、１バイト目と３バイト目とのデータが一体となって、「６４０」ステップの時間の間、楽音の発音を停止させることを示す。ところで、この「６４０」ステップの算出方法は、以下のとおりである。即ち、３バイト目が８ビット左シフトされ、２進数で「１０００００００００」とされる。これは、１０進数での「５１２」である。そして、この「５１２」に、１バイト目のデータで表現される１０進数での「１２８」が加算され、ステップタイムとして「６４０」が得られる。これにより、ステップタイムとして、１バイト（８ビット）で表される最大値である「２５５（１０進数）」を超える値が表現可能とされる。なお、図４では、３バイト目の先頭ビットが「１」であるため、上述したとおり、楽音データは３バイトで構成される。
更に、３バイト目の先頭ビットが「０」であり、かつ４バイト目の先頭ビットが「１」である場合、１バイト目、３バイト目、及び４バイト目のデータに基づいて、ステップタイムが算出される。具体的には、１バイト目の値と、３バイト目の下位７ビットが８ビット左シフトされた値と、４バイト目の下位７ビットが１５ビット左シフトされた値と、が加算されることにより当該ステップタイムが算出される。また、この場合、３バイト目の先頭ビットが「０」であり、かつ４バイト目の先頭ビットが「１」であるため、上述したとおり、楽音データは４バイトで構成される。
更に、３バイト目及び４バイト目の先頭ビットがともに「０」である場合、１バイト目、３バイト目、４バイト目、及び５バイト目のデータに基づいて、ステップタイムが算出される。具体的には、１バイト目の値と、３バイト目の下位７ビットが８ビット左シフトされた値と、４バイト目の下位７ビットが１５ビット左シフトされた値と、５バイト目が２２ビット左シフトされた値と、が加算されることにより当該ステップタイムが算出される。
【００１４】
［発音制御処理］
続いて、楽音再生装置１が実行する発音制御処理について説明する。
図５は、楽音再生装置１が実行する発音制御処理の流れの一例を示すフローチャートである。
【００１５】
入力部１４を介して楽音の再生を開始させる信号を受信したことに応じて、次のようなステップＳ１１乃至Ｓ２２の処理が実行される。
【００１６】
ステップＳ１１において、ＣＰＵ１１は、変数ｓｔｅｐ、及び変数ｎｅｘｔｓｔｅｐに０を代入することにより、これらの変数の値をクリアする。
ステップＳ１２において、ＣＰＵ１１は、記憶部１６から楽音データとして５バイト分の楽音データを取得する。
ステップＳ１３において、ＣＰＵ１１は、ステップＳ１２にて取得した楽音データの１バイト目の値を変数ｎｅｘｔｓｔｅｐに加算する。
【００１７】
ステップＳ１４において、ＣＰＵ１１は、ステップＳ１２にて取得した楽音データの２バイト目の値がステップタイムコマンドであるか否かを判定する。即ち、ＣＰＵ１１は、当該２バイト目の値が１０進数で「２５５」を表す２進数のデータであるか否かを判定する。当該値がステップタイムコマンドである場合、ＹＥＳと判定され、ＣＰＵ１１は、処理をステップＳ１８に移行させる。
ステップＳ１８において、ＣＰＵ１１は、ステップＳ１２にて取得した楽音データの３バイト目の下位７ビットを８ビット左シフトさせた値を、変数ｎｅｘｔｓｔｅｐに加算する。
ステップＳ１９において、ＣＰＵ１１は、当該３バイト目の先頭ビットのフラグが１か否か判断し、１である場合には、ＹＥＳと判定され、ＣＰＵ１１は、処理をステップＳ１２に移行させる。この際、４バイト目データは、ステップＳ１２において次に取得される楽音データの１バイト目となり、５バイト目データは、ステップＳ１２において次に取得される楽音データの２バイト目となる。一方、１でない場合には、ＮＯと判定され、ＣＰＵ１１は、処理をステップＳ２０に移行させる。
ステップＳ２０において、ＣＰＵ１１は、ステップＳ１２にて取得した楽音データの４バイト目の下位７ビットを１５ビット左シフトさせた値を、変数ｎｅｘｔｓｔｅｐに加算する。
ステップＳ２１において、ＣＰＵ１１は、当該４バイト目の先頭ビットのフラグが１か否か判断し、１である場合には、ＹＥＳと判定され、ＣＰＵ１１は、処理をステップＳ１２に移行させる。この際、５バイト目のデータは、ステップＳ１２において次に取得される楽音データの１バイト目となる。一方、１でない場合には、ＮＯと判定され、ＣＰＵ１１は、処理をステップＳ２２に移行させる。
ステップＳ２２において、ＣＰＵ１１は、ステップＳ１２にて取得した楽音データの５バイト目を２２ビット左シフトさせた値を、変数ｎｅｘｔｓｔｅｐに加算する。その後、ＣＰＵ１１は、処理をステップＳ１２に移行させる。
【００１８】
一方、ステップＳ１４において、ステップＳ１２にて取得した楽音データの２バイト目の値がステップタイムコマンドでない場合、ＮＯと判定され、ＣＰＵ１１は、処理をステップＳ１５に移行させる。
ステップＳ１５において、ＣＰＵ１１は、変数ｓｔｅｐの値が変数ｎｅｘｔｓｔｅｐの値以上であるか否かを判定する。変数ｓｔｅｐの値が変数ｎｅｘｔｓｔｅｐの値未満である場合、ステップＳ１５においてＮＯと判定され、ＣＰＵ１１は、変数ｓｔｅｐの値を１インクリメントさせる（ステップＳ１６）。このステップＳ１６の処理は、ステップＳ１５において、変数ｓｔｅｐの値が変数ｎｅｘｔｓｔｅｐの値以上であると判定されるまで、即ちステップＳ１５においてＹＥＳと判定されるまで、繰り返して実行される。なお、このステップＳ１６の処理が繰り返されている間の経過時間がステップタイムとなる。
ステップＳ１５においてＹＥＳと判定されると、ＣＰＵ１１は、ステップＳ１７に処理を移行させて、図６を参照して後述する発音処理を実行する。この発音処理とは、楽音データに基づいて音源１７及び発音回路１８に楽音を発音させる処理等である。
【００１９】
［発音処理］
次に、楽音再生装置１が実行する発音処理について説明する。
図６は、楽音再生装置１が実行する発音処理（図５のステップＳ１７の処理）の流れの一例を示すフローチャートである。
【００２０】
ステップＳ３１において、ＣＰＵ１１は、図５のステップＳ１２にて取得した楽音データの２バイト目の値がノートデータであるか否かを判定する。即ち、ＣＰＵ１１は、当該２バイト目の値が１０進数で「０」〜「１２７」までの値の２進数のデータであるか否かを判定する。当該２バイト目の値が１０進数で「０」〜「１２７」までの値の２進数のデータでない場合、ＮＯと判定され、ＣＰＵ１１は、ステップＳ３２に処理を移行させる。
ステップＳ３２において、ＣＰＵ１１は、各種のコマンド処理を実行する。その後、ＣＰＵ１１は発音処理を終了させる。コマンド処理には、音色を変更させるプログラムチェンジ、音高を変更させるピッチベンド等の処理がある。
【００２１】
一方、ステップＳ３１において、ＣＰＵ１１は、図５のステップＳ１２にて取得した楽音データの２バイト目の値が１０進数で「０」〜「１２７」までの値の２進数のデータである場合、当該２バイト目の値がノートデータであると判定されるので、ＹＥＳと判定され、ＣＰＵ１１は、ステップＳ３３に処理を移行させる。
ステップＳ３３において、ＣＰＵ１１は、図５のステップＳ１２にて取得した楽音データの４バイト目の下位７ビットを８ビット左シフトさせた値と、当該楽音データの５バイト目の値と、を加算して変数ｇａｔｅｔｉｍｅに代入する。
ステップＳ３４において、ＣＰＵ１１は、当該楽音データの２バイト目の値をノートナンバ（音高）として算出し、当該楽音データの３バイト目の値をベロシティ（音強）として算出して、算出したノートナンバ及びベロシティに基づいて、楽音の発音を、音源１７及び発音回路１８に開始させる。
【００２２】
ステップＳ３５において、ＣＰＵ１１は、変数ｇａｔｅｔｉｍｅの値が０以下であるか否かを判定する。変数ｇａｔｅｔｉｍｅの値が０より大きい場合、ステップＳ３５において、ＮＯと判定され、ＣＰＵ１１は、変数ｇａｔｅｔｉｍｅの値を１デクリメントさせる（ステップＳ３６）。このステップＳ３６の処理は、ステップＳ３５において、変数ｇａｔｅｔｉｍｅの値が０以下であると判定されるまで、即ちステップＳ３５においてＹＥＳと判定されるまで、繰り返して実行される。なお、このステップＳ３６の処理が繰り返されている間の経過時間が発音継続時間（「ゲートタイム」ともいう）となる。
ステップＳ３５においてＹＥＳと判定されると、ＣＰＵ１１は、ステップＳ３７に処理を移行させて、楽音の発音を、音源１７及び発音回路１８に停止させる。その後、ＣＰＵ１１は発音処理を終了させる。
【００２３】
［楽音データ生成処理］
次に、楽音再生装置１が実行する楽音データ生成処理について説明する。
図７は、楽音再生装置１が実行する楽音データ生成処理の流れの一例を示すフローチャートである。
この楽音データ生成処理は、図５で説明した発音制御処理において使用される楽音データを生成する処理である。
【００２４】
ステップＳ４１において、ＣＰＵ１１は、入力部１４からユーザにより入力された楽譜のデータ又は、記憶部１６に記憶された楽譜のデータを読み込む。
ステップＳ４２において、ＣＰＵ１１は、ステップＳ４１において読み込まれた楽譜のデータを解析し、解析した結果に基づいて、楽音データを生成する。その後、ＣＰＵ１１は楽音データ生成処理を終了させる。
【００２５】
この楽音データ生成処理によって作成された楽音データは、楽譜のデータに基づいて機械的に作成されたものであるため、何らの修正もされずに図５の発音制御処理に使用されると、音楽的な表現に乏しい演奏となり易い。そこで、より音楽的な表現で演奏されるようにするために、楽音データ生成処理によって作成された楽音データは、ユーザによって適宜修正された後、図５の発音制御処理に使用される。
【００２６】
以上、本実施形態の演奏装置１の構成及び処理について説明した。
本実施形態においては、ＣＰＵ１１は、楽音データを取得し、当該楽音データのうち、１バイト目のデータに基づいて、ステップタイムを算出し、２バイト目のデータに基づいて、音高を算出し、３バイト目のデータに基づいて、音強を算出し、４バイト目及び５バイト目のデータに基づいて、楽音の発音が継続するゲートタイムを算出し、当該ステップタイムの経過後に、当該ゲートタイムの間、当該音高及び当該音強に基づいて、音源１７及び発音回路１８に楽音を発音させる。
したがって、５バイトのデータを用いることで、所定の音高及び音強に応じた楽音を所定時間発音させ停止させることができる。よって、楽音の発音から消音までに必要なデータの容量をより少なくすることができる。
【００２７】
また、本実施形態においては、ＣＰＵ１１は、楽音データのうち２バイト目のデータに基づいて、当該楽音データがステップタイムを表現したデータであるか否かを判定し、当該楽音データがステップタイムを表現したデータであると判定された場合には、１バイト目のデータ、３バイト目のデータ、４バイト目のデータ、及び５のバイト目のデータに基づいて、ステップタイムを算出する。
したがって、ステップタイムを算出する際に、４つのバイトのデータを用いることで、より長いステップタイムを表現できる。
【００２８】
また、本実施形態においては、ＣＰＵ１１は、楽音データの３バイト目のデータのうち、先頭ビットのフラグが「１」となっている場合、１バイト目のデータ、及び当該３バイト目のデータに基づいて、ステップタイムを算出する。又は、ＣＰＵ１１は、楽音データの４バイト目のデータのうち、先頭ビットのフラグが「１」となっている場合、１バイト目のデータ、３バイト目のデータ及び当該４バイト目のデータに基づいて、ステップタイムを算出する。
したがって、ステップタイムの長さに応じて、楽音データのバイト数を５バイトより小さくできる。
【００２９】
また、本実施形態においては、ＣＰＵ１１は、楽譜のデータに基づいて楽音データを生成する。
したがって、入力部１４を介してユーザにより楽譜のデータが入力された場合や、記憶部１６に楽譜のデータが記憶されている場合等に、当該楽譜のデータを読み出して、楽音データに変換できる。
【００３０】
以上、本発明の実施形態について説明したが、実施形態は例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、更に、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００３１】
また、上記実施形態では、楽音データの生成は、楽音再生装置１において実行されるがこれに限られず、図示しない他の装置によって実行されてもよい。
【００３２】
また、楽音データのデータ構造は上記実施形態における説明に限られず、例えば、楽音データの１バイト目にイベントの種類を示すデータが格納され、２バイト目にステップタイムが格納されているようにしてもよい。即ち、楽音データにおけるバイト領域の並び順は任意の順でよく、アルゴリズムを適宜変更させることで、上記実施形態で説明した発音制御処理は実行可能である。
【００３３】
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［付記１］
取得された少なくとも第１乃至第４のバイト領域を有するイベントデータのうち、第１のバイト領域にあるデータが楽音の発音を指示するデータであるか否か判別する判別手段と、
この判別手段により発音を指示するデータであると判別された場合のみ、前記第２のバイト領域にあるデータに基づいて待ち時間を算出する第１の時間算出手段と、
この算出された待ち時間経過後に、少なくとも前記第３のバイト領域にあるデータに基づき発音すべき楽音のパラメータを取得するパラメータ取得手段と、
前記イベントデータのうち、前記第４のデータに基づいて前記楽音の発音時間を算出する第２の時間算出手段と、
音源に対して、前記取得されたパラメータに基づいた楽音を前記算出された発音時間だけ発音するように指示する発音指示手段と、
を備えた楽音再生装置。
［付記２］
前記楽音のパラメータとして、前記第２のバイト領域にあるデータに基づいて発音すべき楽音の音高を取得するとともに、前記第３のバイト領域にあるデータに基づいて発音すべき楽音のベロシティを取得することを特徴とする付記１記載の楽音再生装置。
［付記３］
前記第２の時間算出手段は、前記第４のバイト領域内の何れかのビットの状態に基づいて、前記第４のバイト領域にあるデータと、当該第４のバイト領域に続く第５のバイト領域にあるデータとに基づいて前記楽音の発音時間を算出することを特徴とする付記１又は２いずれかに記載の楽音再生装置。
［付記４］
前記楽音再生装置はさらに、
前記第２のバイト領域にあるデータに基づいて、前記イベントデータが楽音のパラメータであるか否か判別する判別手段を有し、
前記パラメータ取得手段は、前記判別手段により楽音のパラメータであると判別された場合に、前記第２及び第３のバイト領域にあるデータに基づき発音すべき楽音のパラメータを取得することを特徴とする付記１乃至３いずれか記載の楽音再生装置。
［付記５］
前記判別手段が、発音を指示するデータであると判別された場合に、少なくとも前記第１のバイト領域及び第３のバイト領域のデータに基づいて、次のイベントデータを取得するまでの待ち時間を算出する第３の時間算出手段を備えたことを特徴とする付記４記載の楽音再生装置。
［付記６］
前記第３の時間算出手段は、前記第３のバイト領域内の何れかのビットの状態に基づいて、前記第１及び第３のバイト領域にあるデータと、当該第３のバイト領域に続く第４のバイト領域にあるデータとに次のイベントデータを取得するまでの待ち時間を算出することを特徴とする付記５記載の楽音再生装置。
［付記７］
取得された少なくとも第１乃至第４のバイト領域を有するイベントデータのうち、第１のバイト領域にあるデータに基づいて待ち時間を算出する第１の時間算出ステップと、
この算出された待ち時間経過後に、前記第２及び第３のバイト領域にあるデータに基づき発音すべき楽音のパラメータを取得するパラメータ取得ステップと、
前記イベントデータのうち、前記第４のデータに基づいて前記楽音の発音時間を算出する第２の時間算出ステップと、
音源に対して、前記取得されたパラメータに基づいた楽音を前記算出された発音時間だけ発音するように指示する発音指示ステップと、
を備えた楽音再生方法。
［付記８］
取得された少なくとも第１乃至第４のバイト領域を有するイベントデータのうち、第１のバイト領域にあるデータに基づいて待ち時間を算出する第１の時間算出ステップと、
この算出された待ち時間経過後に、前記第２及び第３のバイト領域にあるデータに基づき発音すべき楽音のパラメータを取得するパラメータ取得ステップと、
前記イベントデータのうち、前記第４のデータに基づいて前記楽音の発音時間を算出する第２の時間算出ステップと、
音源に対して、前記取得されたパラメータに基づいた楽音を前記算出された発音時間だけ発音するように指示する発音指示ステップと、
をコンピュータに実行させるプログラム。
【符号の説明】
【００３４】
１・・・楽音再生装置、１１・・・ＣＰＵ、１２・・・ＲＯＭ、１３・・・ＲＡＭ、１４・・・入力部、１５・・・出力部、１６・・・記憶部、１７・・・音源、１８・・・発音回路
【図１】
2014059435.tif 000003
【図２】
2014059435.tif 000004
【図３】
2014059435.tif 000005
【図４】
2014059435.tif 000006
【図５】
2014059435.tif 000007
【図６】
2014059435.tif 000008
【図７】
2014059435.tif 000009