電子楽器
【目的】この発明はパターンデータを組み合わせて自動演奏のためのソングデータを構成する電子楽器で、個別のパターンデータの再生時にも適当なテンポで自動演奏する。
【構成】ソングデータのテンポデータのみならず、各パターンデータにも独自のテンポデータを記憶しておき、パターンのみ再生時にはこのテンポで再生する。
【構成】ソングデータのテンポデータのみならず、各パターンデータにも独自のテンポデータを記憶しておき、パターンのみ再生時にはこのテンポで再生する。
【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はパターンデータを組み合わせたソングデータを自動演奏する電子楽器に関する。
【0002】
【従来の技術】従来より、ソングデータ内にテンポデータが記憶され、自動的に適当なテンポを設定して自動演奏する自動演奏装置が提案されている(特開平3−126086号等)。また、複数のパターンデータを組み合わせてソングデータを作成する自動演奏装置(特開平1−182891号等)も提案されている。
【0003】
【発明が解決しようとする課題】上記のように複数のパターンデータを組み合わせてソングデータを作成した場合、その曲(ソングデータ)を自動演奏する場合には、その曲のテンポデータを記憶しておけばよいが、一部のパターンデータのみを試聴する場合には、曲としてのテンポではなくそのパターンに適したテンポで再生するのが好ましい。
【0004】しかし、従来の装置ではソングデータを再生するときはそのソングデータに適したテンポに設定し、さらに、パターンデータのみを再生する場合にはそのパターンデータに適したテンポに自動的に設定することができなかった。このため、演奏者が操作してテンポを調節する必要があり面倒であった。
【0005】この発明は、ソングデータとパターンデータとを共に最適なテンポで再生することができる電子楽器を提供することを目的とする。
【0006】
【課題を解決するための手段】この発明は、複数のパターンデータを記憶するパターンデータ記憶手段と、前記複数のパターンデータのシーケンスからなるソングデータを記憶するソングデータ記憶手段と、前記複数のパターンデータのテンポを記憶するパターンテンポデータ記憶手段と、前記ソングデータのテンポを記憶するソングテンポデータ記憶手段と、各パターンデータを個別に再生するモードと前記ソングデータに基づいて前記複数のパターンデータを順次読み出すソングモードとを選択するモード選択手段と、を備え、さらに、前記モード選択手段でパターンモードが選択されたときは各パターンデータに対応するパターンテンポデータに基づく速度でパターンを読み出し、ソングモードが選択されたときは前記ソングテンポデータに基づく速度でパターンデータを読み出す手段を設けたことを特徴とする。
【0007】
【作用】この発明の電子楽器は、パターンデータを記憶するとともに、このパターンデータのシーケンスからなるソングデータを記憶している。ソングデータを再生する場合(ソングモード)には、その曲(ソングデータ)のために記憶されているソングテンポデータに基づいてテンポ設定してデータを読み出し自動演奏する。
【0008】また、パターンデータを個別に再生する場合(パターンモード)にはそのパターンデータのために記憶されているパターンテンポデータに基づいてテンポ設定してデータを読み出し自動演奏する。これにより、パターンを指定して再生するときはそのパターンに適したテンポで再生でき、ソングデータを指定して再生するときはそのソングデータに適したテンポで再生することができる。
【0009】
【実施例】図面を参照してこの発明を適用した実施例である電子ドラムについて説明する。この電子ドラムは演奏用のパッドを備え、これを手や棒で打撃することによってリズム音を発音することができる。また、この電子ドラムは自動演奏機能を備えており、スタート/ストップスイッチをオンすることによって予め記憶されている演奏データ(ソングデータ,パターンデータ)を自動演奏することができる。パターンデータはリズム(打楽器)パートとベースパートからなっており、その長さは1小節である。パターンデータは、種々のリズム種類や曲の場面(イントロ,曲中,間奏,エンディング等)に合わせて複数記憶されている。また、ソングデータは複数のパターンデータを種々に組み合わせたものである。パターンデータを再生するモード(パターンモード)時にはそのパターン固有のテンポでそのパターン(1小節単位)が繰り返し演奏される(図4(B)参照)。また、ソングモードの場合には、そのソングについて各々指定されているテンポ(図4(A)参照)で各パターンが連続して再生される。この場合、各パターンに記憶されているこの固有のテンポは無視される。また、パターンはベースパートとリズムパートからなっているが、パターンデータの再生時にリズムパートのみを再生し、これに同期して他のパターン(リプレイスパターン)のベースパートを再生するモード(リプレイスパターンモード)の機能も備えている。
【0010】図1は上記電子ドラムのブロック図である。この電子ドラムはCPU10によって全体の動作が制御される。CPU10にはバス11を介してプログラムメモリ12,アサインテーブル13,ソングパターンメモリ14,ワーキングメモリ15,パッドイベント検出回路17,ドライバ19,スイッチイベント検出回路20およびトーンジェネレータ23が接続されている。プログラムメモリ12はROMで構成されており、後述のフローチャートで示されるプログラムが記憶されている。アサインテーブル13は図3に示すように、リズムパートのノートデータから打楽器音色を割り出すためのテーブルメモリである。ソングパターンメモリ14は図4R>4,図5に示すように自動演奏データとしてソングデータ,パターンデータおよび各ソング,パターンのテンポデータ,拍子,分解能が記憶されている。アサインテーブル13およびソングパターンメモリ14はROMで構成されているが、バッテリバックアップされたSRAMに置き換えることもできる。
【0011】パッドイベント検出回路17は演奏用のパッド18の打撃を検出し、演奏データとして取り込む回路である。ドライバ19は操作パネル30のLCD21に接続されている。また、スイッチイベント検出回路20は操作パネル30のスイッチ群22に接続されている。また、トーンジェネレータ23は複数の発音チャンネルを備えておりCPU10から入力される波形データや演奏データに基づいて楽音信号を形成する。形成された楽音信号はサウンドシステム24に出力される。
【0012】また、CPU10にはタイマ16に接続されており、一定時間毎にCPU10に対して割り込みをかける。
【0013】図2は操作パネルの構成を示す図である。操作パネル30には前記LCD表示器21を備えている。スイッチ群22としては、スタート/ストップスイッチ31,テンポスイッチ32,パターンスイッチ33,ソングスイッチ34,テンキー35およびベース音色設定スイッチ群36などが設けられている。パターンスイッチ33をオンするとパターンモードに切り換わり、ソングスイッチ34をオンするとソングモードに切り換わる(後述の図10,図11参照)。テンポスイッチ32は自動演奏のテンポを上下するためのスイッチである。テンキー35はソングナンバやパターンナンバを入力するためのスイッチである(後述の図12参照)。
【0014】同図(B)および(C)は前記LCD表示器21の表示例を示す図である。パターンモードのときには同図(B)に示すようなパターンナンバの表示が行われ、ソングモード時には同図(C)に示すようになソングナンバの表示が行われる。
【0015】図3,図4,図5はメモリの一部構成を示す図である。図3はアサインテーブルTBL(i) を示す図である。このテーブルはパターンデータのキーコードデータから打楽器を割り出すテーブルである。なお、引数iとしては後述のPTNSQの下位7ビットのノートナンバが与えられる(図5(B),図16参照)。図4(A),(B)はソングテンポメモリおよびパターンテンポメモリである。ソングテンポメモリには各ソングデータの初期テンポが記憶されている。また、パターンテンポメモリには各パターン固有ののテンポが記憶されている。パターンのテンポはパターンモード時のみ有効で、ソング内でそのパターンが演奏されるときにはこのパターンテンポデータは無視される。同図(C)はパターン拍子分解能メモリを示している。このメモリは各パターンごとに設けられており、そのパターンの拍子と分解能(リズムを刻む最小単位)を記憶している。1バイトのデータエリアの前半(上位4ビット)が拍子を表し、後半(下位4ビット)が分解能を表している。上位4ビットが0であれば4/4拍子を表し、1であれば3/4拍子を表す。また、下位4ビットが0であれば分解能が16分音符であることを示し、1であれば8分音符であることを示している。
【0016】図5(A)はソングデータSNGSQ(SNQ,i)を示す図である。1つのソングは複数のパターンデータのシーケンスによって表現されている。各シーケンスデータは1または2バイトで構成されている。各シーケンスデータは1小節の長さのパターンデータに対応し、2バイトのシーケンスデータとは、1小節に2つのパターンデータが割り当てられていることを示す。1バイトのパターンシーケンスデータは最上位ビットが0であり、このデータが読み出されたとき下位7ビットに記録されているパターンナンバのパターンデータを読み出してベースパターン,リズムパターンとも発音する。また、2バイトからなるパターンシーケンスデータは1バイト目の最上位ビットが1であり、2バイト目の最上位ビットが0である。1バイト目(最上位ビットが1)の下位7ビットに記憶されているパターンナンバのパターンでリズムパターンを再生し、2バイト目(最上位ビットが0)の下位7ビットに記憶されているパターンナンバのリプレイスパターンでベースパターンを再生する。すなわち、ソングデータを読み出しているとき、最上位ビットによってリプレイスパターンモードの識別を行う。
【0017】同図(B)はパターンデータPTNSQ(PTN,i)を示す図である。各パターンデータ(PTN=0,1,…)は各分解能(8分音符または16分音符ごと)のタイミングに発音する1または複数の演奏データを記憶するエリアをFFH で区切った構成になっている。各演奏データは先頭ビットでリズムパートかベースパートかが識別される。先頭ビットが0であれば打楽器(リズムパート)でありこのバイトに記憶されているノートナンバは前記アサインテーブルによって打楽器の音色ナンバに変換される。また、先頭ビットが1の場合はベースパートでありこのノートナンバが音高データとなる。
【0018】図6〜図17は同電子楽器の動作を示すフローチャートである。
【0019】図6はメインルーチンを示すフローチャートである。この電子楽器の電源がオンされるとまず初期設定動作を実行する(n1)。この初期設定動作はレジスタのリセット等の動作である。こののち、パッドオンイベント、パターンスイッチオンイベント、ソングスイッチオンイベント、スタート/ストップスイッチオンイベント、テンキーオンイベント、テンポスイッチオンイベント、ベース音色設定スイッチオンイベントの有無を判断し(n2〜n8)、これらのイベントがあることを判断した場合には対応する処理動作(n10〜n16)を実行する。ここで、パッドオンイベントがあったときには、そのパッドに対応する打楽器音を発音する。
【0020】図7はスタート/ストップスイッチオンイベントを検出したときの動作を示すフローチャートである。このスイッチがオンされると自動演奏動作中を示すRUNフラグを反転する(n20)。反転の結果RUN=1になれば自動演奏をスタートするためn22〜n29の動作を実行する。一方、反転の結果RUN=0になればモードレジスタMODに最新にオンされたモードスイッチ(ソングモードスイッチ/パターンモードスイッチ)のモードNMODをセットして(n31)リターンする。NMODについては図10〜図12で詳述する。
【0021】一方、自動演奏を開始する場合にはモードフラグMODを判断する(n22)。MOD=1(ソングモード)であればn23〜n26の動作を実行し、MOD=0(パターンモード)であればn27〜n29,n26の動作を実行する。
【0022】n23ではSNGレジスタにパネルスイッチのテンキー35から入力されているソングナンバ(INSNGの内容)をセットし、このソングSNGのテンポSNGTMP(SNG)をソングテンポメモリ図4(A)から読み出してテンポレジスタTMPにセットするとともにソングポインタSNGPTをリセットする(n24)。つぎに読出パターン設定処理(n25:後述の図8)およびパターン初期設定処理(n26:後述の図9))の動作を実行する。
【0023】また、n27ではPTNレジスタにテンキー35から入力されているパターンナンバ(INPTNの内容)をセットし、このパターンのテンポデータPTNTMP(PTN)をパターンテンポメモリ図4(B)から読み出してテンポレジスタTMPにセットする(n28)。つぎにパターンモードにおいてはリプレイスパターンを演奏することがないのでリプレイスパターンナンバレジスタRPTNにFFH をセットしたのち(n29)、n26に進む。
【0024】図8はパターン初期設定動作を示すフローチャートである。ここでは決定されたPTNに応じて拍子数,分解能を読み出している。まず、演奏するパターンの拍子をPTNMT(PTN)から判断する(n40)。引数PTNはパターンモードの場合は、前述図7のn27で説明したようにテンキー35から入力されたパターンナンバであり、ソングモードの場合には後述のn51,n53(図9)に示されるようにシーケンスデータから読み出されたパターンナンバである。4拍子であればMTRに4をセットする(n41)。3拍子であればMRTに3をセットする(n42)。つぎに、そのパターンの分解能を示すデータPTNQTZ(PTN)を読み出してQTZレジスタにセットする(n43)。つぎにパターンポインタPTNPT,クロックレジスタCLKをリセットし、TIMEにINTVLをセットして(n44)、リターンする。
【0025】図9は読出パターン設定動作を示すフローチャートである。ここでは、ソングポインタSNGPTにしたがってソングデータから次に演奏するリズムパターンを読み出し、そのパターンナンバをレジスタPTNやRPTNに格納する。まず、SNGSQ(SNG,SNGPT)の第1ビットからリプレイスパターンがあるか否かを判断する(n50)。これが1であればリプレイスパターンがあることであるため、パターンレジスタPTNにSNGSQ(SNG,SNGPT)の下位7ビットに記憶されているパターンナンバをセットしリプレイスパターンレジスタRPTNにSNGSQ(SNG,SNGPT+1)に記憶されているパターンナンバをセットしたのち(n53)、ソングデータポインタを2進めて(n54)、リプレイスパターン分解能データPTNQTZ(RPTN)をRQTZレジスタにセットし、リプレイスパターンポインタRPTNPTをリセットして(n55)リターンする。RPTNPTについては図1717で詳述する。
【0026】一方、リプレイスパターンがない場合にはパターンレジスタPTNにSNGSQ(SNG,SNGPT)に記憶されているパターンナンバをセットしリプレイスパターンレジスタRPTNには、リプレイスパターンがないことを示すFFH をセットしたのち(n51)、ソングデータポインタを1進めて(n52)リターンする。
【0027】図10はパターンスイッチオンイベントによる表示器21の動作を示すフローチャートである。まず最新にスイッチ入力されたモードを記憶するレジスタNMODにパターンモードを示す“0”をセットする(n60)。つぎに自動演奏中であるか否か(RUN)を判断し(n61)、RUN=1であればMODを書き換えないでそのままn64に進む。一方、RUN=0であればMODに0をセットしたのち(n63)n64に進む。n64ではLCD21の表示モードをパターン表示モードにして最新に入力されたパターンナンバ(INPTNの内容)を表示してリターンする。
【0028】図11はソングスイッチオンイベントによる表示器21の動作を示すフローチャートである。まず最新にスイッチ入力されたモードを記憶するレジスタNMODにソングモードを示す“1”をセットする(n65)。つぎに自動演奏中であるか否かを判断し(n66)、自動演奏中であればMODを書き換えないでそのままn69に進む。一方、自動演奏中でなければMODに1をセットしたのち(n68)n69に進む。n69ではLCD21の表示モードをソング表示モードにし、最新に入力されたソングナンバ(INSNGの内容)を表示してリターンする。
【0029】図12はテンキーオンイベント動作を示すフローチャートであり、パターンナンバであるかソングナンバであるかをNMODで判別し、入力された数字をINPTN,INSNGに格納する。イベントがあったキーの数値をEKレジスタにセットする(n70)。つぎに最新にスイッチ指定されたモード(表示モード)をNMODから判断する(n71)。NMOD=0であればパターン表示モードであるため、入力パターンナンバINPTNの内容を桁送りして1桁目にEKをセットする(n72)。次にこのパターンナンバINPTNをLCDに表示する(n73)。また、NMOD=1であればソング表示モードであるため、入力ソングナンバINSNGの内容を桁送りして1桁目にEKをセットする(n75)。次にこのソングナンバINSNGをLCDに表示する(n76)。
【0030】図13はテンポスイッチイベント動作を示すフローチャートである。まず、オンされたスイッチがアップスイッチかダウンスイッチかを判断する(n80)。
【0031】アップスイッチであればTMPが最高値か否かを判断する(n81)。最高値であればそのままリターンする。最高値でなければTMPに1を加算し(n82)、1回のテンポの間隔INTVLを算出する(n85)。INTVLは((60×103)/TMP)×(1/4)で算出される。また、ダウンスイッチがオンされた場合には、TMPが最低値か否かを判断する(n83)。最低値であればそのままリターンする。最低値でなければTMPから1を減算し(n84)、INTVLを算出する(n85)。
【0032】図14は割り込み処理動作を示すフローチャートである。この動作は自動演奏動作(RUN=1)のときのみ有効であるため、RUN=0のときにはそのままリターンする。RUN=1の場合、まず時間カウンタTIMEがテンポ間隔レジスタINTVL以上になっているか否かを判断する(n91)。TIME≧INTVLでなければパターンデータから発音データを読み出すタイミングでないためTIMEに1を加算して(n100)リターンする。TIME≧INTVLであればTIMEをリセットし(n92)、MODを判断する(n93)。MOD=1であればソングモードであるためソング再生動作(n94)を実行してリターンする。一方、MOD=0であればパターンモードであるためn95〜n99の動作を実行する。まず、分解能に対応するタイミングであるか否かを判断する(n95)。すなわち、分解能が16分音符であれば毎回発音データを読み出すが、分解能が8分音符であれば2回に1回であるためこれを判断する。発音データを読み出すタイミングであればパターン再生動作を実行する(n96)。こののち、クロックレジスタCLKに1を加算する(n97)。CLKがMTR×4になったときには1小節分のパターンが終了したことを意味するためPTNPTおよびLCKをクリアして(n98,n99)パターンの読み出しをこのパターンの先頭に戻してリターンする。
【0033】図15はソング再生動作を示すフローチャートである。まず、現在読み出しているパターンの分解能に対応するタイミングであるか否かを判断する(n110)。このタイミングであれば発音データを読み出すためパターン再生動作を実行する(n111)。このタイミングでなければn111をスキップする。つぎにリプレイスパターンモードか否かを判断する(n112)。リプレイスパターンモードの場合にはリプレイスパターンの分解能に対応するタイミングであるか否かを判断し(n113)、このタイミングであればリプレイスパターン再生動作を実行する(n114)。このタイミングでなければn114をスキップする。
【0034】こののち、クロックレジスタCLKに1を加算する(n115)。この結果CLKがMTR×4になった場合(n116)には現在読み出しているパターンが終了したことを意味するためソングが終了か否かを判断する(n117)。ソングが終了すればRUNに0をセットしてリターンする(n121)。ソングが終了でなければ次のパターンを読み出すためCLKに0をセットし(n118)、読出パターン設定(n119)およびパターン初期設定(n120)を実行する。
【0035】なお、n116でCLK=MTR×4でなければパターンが終了していないためそのままリターンする。
【0036】図16はパターン再生動作を示すフローチャートである。この動作ではパターンシーケンスデータPTNSQ(PTN,PTNPT)を読み出して対応する楽音を発音する。読み出したデータが区切りデータ(FFH )であれば(n130)、ポインタPTNPTに1を加算して(n138)リターンする。読み出したデータがFFH でない場合には発音データであるため、PTNSQ(PTN,PTNPT)の下位7ビットをNTにセットする(n131)。最上位ビットが0であれば打楽器音であり、1であればベース音である(図5(B)参照)。打楽器の場合にはアサインテーブルから打楽器ナンバを割り出してNSTにセットする(n133)。そののち、キーオン信号、打楽器ナンバINSTなどからなる楽音形成用のデータをTGに出力する(n134)。また、ベースの場合にはリプレイスパターンがあるか否か(RPTN≠/=FFH )を判断し(n135)、リプレイスパターンがなければキーオン信号,キーコードNT,音色BASSなどからなる楽音形成用のデータをTGに出力する(n136)。リプレイスパターンがある場合にははこのベース音を発音せず、次のリプレイスパターンのベース音を発音するためn136をスキップする。こののちポインタPTNPTに1を加算して(n137)、n130にもどる。
【0037】図17はリプレイスパターン再生動作を示すフローチャートである。この動作ではリプレイスパターンデータRPTNSQ(RPTN,RPTNPT)を読み出して対応する楽音を発音する。読み出したデータが区切りデータ(FFH )であれば(n140)、ポインタRPTNPTに1を加算して(n145)リターンする。読み出したデータがFFH でない場合には発音データであるため、このデータがベースパートのデータがリズムパートのデータかをRPTNSQ(RPTN,RPTNPT)の最上位ビットで判断する(n141)。リプレイスパターンではリズムパートは発音対象とならないので、リズムパートであれば発音処理をスキップする。RPTNSQ(RPTN,RPTNPT)の最上位ビットが1であればベースパートであるため、RPTNSQ(RPTN,RPTNPT)の下位7ビットをNTにセットし(n142)、キーオン信号,キーコードNT,音色BASSなどからなる楽音形成用のデータをTGに出力する(n143)。こののちポインタRPTNPTに1を加算して(n144)、n140にもどる。
【0038】
【発明の効果】以上のようにこの発明によれば、ソングデータのみならず個別のパターンデータにもテンポデータを記憶し、パターンデータを個別に再生するときにはこのテンポデータに基づいた速度で読み出しを行うため、パターンのみの再生でも最適のテンポで再生が可能となる。
【図面の簡単な説明】
【図1】この発明の実施例である電子楽器のブロック図
【図2】同電子楽器の操作パネルを示す図
【図3】同電子楽器のメモリの構成を示す図
【図4】同電子楽器のメモリの構成を示す図
【図5】同電子楽器のメモリの構成を示す図
【図6】同電子楽器の動作を示すフローチャート
【図7】同電子楽器の動作を示すフローチャート
【図8】同電子楽器の動作を示すフローチャート
【図9】同電子楽器の動作を示すフローチャート
【図10】同電子楽器の動作を示すフローチャート
【図11】同電子楽器の動作を示すフローチャート
【図12】同電子楽器の動作を示すフローチャート
【図13】同電子楽器の動作を示すフローチャート
【図14】同電子楽器の動作を示すフローチャート
【図15】同電子楽器の動作を示すフローチャート
【図16】同電子楽器の動作を示すフローチャート
【図17】同電子楽器の動作を示すフローチャート
【符号の説明】
【0001】
【産業上の利用分野】この発明はパターンデータを組み合わせたソングデータを自動演奏する電子楽器に関する。
【0002】
【従来の技術】従来より、ソングデータ内にテンポデータが記憶され、自動的に適当なテンポを設定して自動演奏する自動演奏装置が提案されている(特開平3−126086号等)。また、複数のパターンデータを組み合わせてソングデータを作成する自動演奏装置(特開平1−182891号等)も提案されている。
【0003】
【発明が解決しようとする課題】上記のように複数のパターンデータを組み合わせてソングデータを作成した場合、その曲(ソングデータ)を自動演奏する場合には、その曲のテンポデータを記憶しておけばよいが、一部のパターンデータのみを試聴する場合には、曲としてのテンポではなくそのパターンに適したテンポで再生するのが好ましい。
【0004】しかし、従来の装置ではソングデータを再生するときはそのソングデータに適したテンポに設定し、さらに、パターンデータのみを再生する場合にはそのパターンデータに適したテンポに自動的に設定することができなかった。このため、演奏者が操作してテンポを調節する必要があり面倒であった。
【0005】この発明は、ソングデータとパターンデータとを共に最適なテンポで再生することができる電子楽器を提供することを目的とする。
【0006】
【課題を解決するための手段】この発明は、複数のパターンデータを記憶するパターンデータ記憶手段と、前記複数のパターンデータのシーケンスからなるソングデータを記憶するソングデータ記憶手段と、前記複数のパターンデータのテンポを記憶するパターンテンポデータ記憶手段と、前記ソングデータのテンポを記憶するソングテンポデータ記憶手段と、各パターンデータを個別に再生するモードと前記ソングデータに基づいて前記複数のパターンデータを順次読み出すソングモードとを選択するモード選択手段と、を備え、さらに、前記モード選択手段でパターンモードが選択されたときは各パターンデータに対応するパターンテンポデータに基づく速度でパターンを読み出し、ソングモードが選択されたときは前記ソングテンポデータに基づく速度でパターンデータを読み出す手段を設けたことを特徴とする。
【0007】
【作用】この発明の電子楽器は、パターンデータを記憶するとともに、このパターンデータのシーケンスからなるソングデータを記憶している。ソングデータを再生する場合(ソングモード)には、その曲(ソングデータ)のために記憶されているソングテンポデータに基づいてテンポ設定してデータを読み出し自動演奏する。
【0008】また、パターンデータを個別に再生する場合(パターンモード)にはそのパターンデータのために記憶されているパターンテンポデータに基づいてテンポ設定してデータを読み出し自動演奏する。これにより、パターンを指定して再生するときはそのパターンに適したテンポで再生でき、ソングデータを指定して再生するときはそのソングデータに適したテンポで再生することができる。
【0009】
【実施例】図面を参照してこの発明を適用した実施例である電子ドラムについて説明する。この電子ドラムは演奏用のパッドを備え、これを手や棒で打撃することによってリズム音を発音することができる。また、この電子ドラムは自動演奏機能を備えており、スタート/ストップスイッチをオンすることによって予め記憶されている演奏データ(ソングデータ,パターンデータ)を自動演奏することができる。パターンデータはリズム(打楽器)パートとベースパートからなっており、その長さは1小節である。パターンデータは、種々のリズム種類や曲の場面(イントロ,曲中,間奏,エンディング等)に合わせて複数記憶されている。また、ソングデータは複数のパターンデータを種々に組み合わせたものである。パターンデータを再生するモード(パターンモード)時にはそのパターン固有のテンポでそのパターン(1小節単位)が繰り返し演奏される(図4(B)参照)。また、ソングモードの場合には、そのソングについて各々指定されているテンポ(図4(A)参照)で各パターンが連続して再生される。この場合、各パターンに記憶されているこの固有のテンポは無視される。また、パターンはベースパートとリズムパートからなっているが、パターンデータの再生時にリズムパートのみを再生し、これに同期して他のパターン(リプレイスパターン)のベースパートを再生するモード(リプレイスパターンモード)の機能も備えている。
【0010】図1は上記電子ドラムのブロック図である。この電子ドラムはCPU10によって全体の動作が制御される。CPU10にはバス11を介してプログラムメモリ12,アサインテーブル13,ソングパターンメモリ14,ワーキングメモリ15,パッドイベント検出回路17,ドライバ19,スイッチイベント検出回路20およびトーンジェネレータ23が接続されている。プログラムメモリ12はROMで構成されており、後述のフローチャートで示されるプログラムが記憶されている。アサインテーブル13は図3に示すように、リズムパートのノートデータから打楽器音色を割り出すためのテーブルメモリである。ソングパターンメモリ14は図4R>4,図5に示すように自動演奏データとしてソングデータ,パターンデータおよび各ソング,パターンのテンポデータ,拍子,分解能が記憶されている。アサインテーブル13およびソングパターンメモリ14はROMで構成されているが、バッテリバックアップされたSRAMに置き換えることもできる。
【0011】パッドイベント検出回路17は演奏用のパッド18の打撃を検出し、演奏データとして取り込む回路である。ドライバ19は操作パネル30のLCD21に接続されている。また、スイッチイベント検出回路20は操作パネル30のスイッチ群22に接続されている。また、トーンジェネレータ23は複数の発音チャンネルを備えておりCPU10から入力される波形データや演奏データに基づいて楽音信号を形成する。形成された楽音信号はサウンドシステム24に出力される。
【0012】また、CPU10にはタイマ16に接続されており、一定時間毎にCPU10に対して割り込みをかける。
【0013】図2は操作パネルの構成を示す図である。操作パネル30には前記LCD表示器21を備えている。スイッチ群22としては、スタート/ストップスイッチ31,テンポスイッチ32,パターンスイッチ33,ソングスイッチ34,テンキー35およびベース音色設定スイッチ群36などが設けられている。パターンスイッチ33をオンするとパターンモードに切り換わり、ソングスイッチ34をオンするとソングモードに切り換わる(後述の図10,図11参照)。テンポスイッチ32は自動演奏のテンポを上下するためのスイッチである。テンキー35はソングナンバやパターンナンバを入力するためのスイッチである(後述の図12参照)。
【0014】同図(B)および(C)は前記LCD表示器21の表示例を示す図である。パターンモードのときには同図(B)に示すようなパターンナンバの表示が行われ、ソングモード時には同図(C)に示すようになソングナンバの表示が行われる。
【0015】図3,図4,図5はメモリの一部構成を示す図である。図3はアサインテーブルTBL(i) を示す図である。このテーブルはパターンデータのキーコードデータから打楽器を割り出すテーブルである。なお、引数iとしては後述のPTNSQの下位7ビットのノートナンバが与えられる(図5(B),図16参照)。図4(A),(B)はソングテンポメモリおよびパターンテンポメモリである。ソングテンポメモリには各ソングデータの初期テンポが記憶されている。また、パターンテンポメモリには各パターン固有ののテンポが記憶されている。パターンのテンポはパターンモード時のみ有効で、ソング内でそのパターンが演奏されるときにはこのパターンテンポデータは無視される。同図(C)はパターン拍子分解能メモリを示している。このメモリは各パターンごとに設けられており、そのパターンの拍子と分解能(リズムを刻む最小単位)を記憶している。1バイトのデータエリアの前半(上位4ビット)が拍子を表し、後半(下位4ビット)が分解能を表している。上位4ビットが0であれば4/4拍子を表し、1であれば3/4拍子を表す。また、下位4ビットが0であれば分解能が16分音符であることを示し、1であれば8分音符であることを示している。
【0016】図5(A)はソングデータSNGSQ(SNQ,i)を示す図である。1つのソングは複数のパターンデータのシーケンスによって表現されている。各シーケンスデータは1または2バイトで構成されている。各シーケンスデータは1小節の長さのパターンデータに対応し、2バイトのシーケンスデータとは、1小節に2つのパターンデータが割り当てられていることを示す。1バイトのパターンシーケンスデータは最上位ビットが0であり、このデータが読み出されたとき下位7ビットに記録されているパターンナンバのパターンデータを読み出してベースパターン,リズムパターンとも発音する。また、2バイトからなるパターンシーケンスデータは1バイト目の最上位ビットが1であり、2バイト目の最上位ビットが0である。1バイト目(最上位ビットが1)の下位7ビットに記憶されているパターンナンバのパターンでリズムパターンを再生し、2バイト目(最上位ビットが0)の下位7ビットに記憶されているパターンナンバのリプレイスパターンでベースパターンを再生する。すなわち、ソングデータを読み出しているとき、最上位ビットによってリプレイスパターンモードの識別を行う。
【0017】同図(B)はパターンデータPTNSQ(PTN,i)を示す図である。各パターンデータ(PTN=0,1,…)は各分解能(8分音符または16分音符ごと)のタイミングに発音する1または複数の演奏データを記憶するエリアをFFH で区切った構成になっている。各演奏データは先頭ビットでリズムパートかベースパートかが識別される。先頭ビットが0であれば打楽器(リズムパート)でありこのバイトに記憶されているノートナンバは前記アサインテーブルによって打楽器の音色ナンバに変換される。また、先頭ビットが1の場合はベースパートでありこのノートナンバが音高データとなる。
【0018】図6〜図17は同電子楽器の動作を示すフローチャートである。
【0019】図6はメインルーチンを示すフローチャートである。この電子楽器の電源がオンされるとまず初期設定動作を実行する(n1)。この初期設定動作はレジスタのリセット等の動作である。こののち、パッドオンイベント、パターンスイッチオンイベント、ソングスイッチオンイベント、スタート/ストップスイッチオンイベント、テンキーオンイベント、テンポスイッチオンイベント、ベース音色設定スイッチオンイベントの有無を判断し(n2〜n8)、これらのイベントがあることを判断した場合には対応する処理動作(n10〜n16)を実行する。ここで、パッドオンイベントがあったときには、そのパッドに対応する打楽器音を発音する。
【0020】図7はスタート/ストップスイッチオンイベントを検出したときの動作を示すフローチャートである。このスイッチがオンされると自動演奏動作中を示すRUNフラグを反転する(n20)。反転の結果RUN=1になれば自動演奏をスタートするためn22〜n29の動作を実行する。一方、反転の結果RUN=0になればモードレジスタMODに最新にオンされたモードスイッチ(ソングモードスイッチ/パターンモードスイッチ)のモードNMODをセットして(n31)リターンする。NMODについては図10〜図12で詳述する。
【0021】一方、自動演奏を開始する場合にはモードフラグMODを判断する(n22)。MOD=1(ソングモード)であればn23〜n26の動作を実行し、MOD=0(パターンモード)であればn27〜n29,n26の動作を実行する。
【0022】n23ではSNGレジスタにパネルスイッチのテンキー35から入力されているソングナンバ(INSNGの内容)をセットし、このソングSNGのテンポSNGTMP(SNG)をソングテンポメモリ図4(A)から読み出してテンポレジスタTMPにセットするとともにソングポインタSNGPTをリセットする(n24)。つぎに読出パターン設定処理(n25:後述の図8)およびパターン初期設定処理(n26:後述の図9))の動作を実行する。
【0023】また、n27ではPTNレジスタにテンキー35から入力されているパターンナンバ(INPTNの内容)をセットし、このパターンのテンポデータPTNTMP(PTN)をパターンテンポメモリ図4(B)から読み出してテンポレジスタTMPにセットする(n28)。つぎにパターンモードにおいてはリプレイスパターンを演奏することがないのでリプレイスパターンナンバレジスタRPTNにFFH をセットしたのち(n29)、n26に進む。
【0024】図8はパターン初期設定動作を示すフローチャートである。ここでは決定されたPTNに応じて拍子数,分解能を読み出している。まず、演奏するパターンの拍子をPTNMT(PTN)から判断する(n40)。引数PTNはパターンモードの場合は、前述図7のn27で説明したようにテンキー35から入力されたパターンナンバであり、ソングモードの場合には後述のn51,n53(図9)に示されるようにシーケンスデータから読み出されたパターンナンバである。4拍子であればMTRに4をセットする(n41)。3拍子であればMRTに3をセットする(n42)。つぎに、そのパターンの分解能を示すデータPTNQTZ(PTN)を読み出してQTZレジスタにセットする(n43)。つぎにパターンポインタPTNPT,クロックレジスタCLKをリセットし、TIMEにINTVLをセットして(n44)、リターンする。
【0025】図9は読出パターン設定動作を示すフローチャートである。ここでは、ソングポインタSNGPTにしたがってソングデータから次に演奏するリズムパターンを読み出し、そのパターンナンバをレジスタPTNやRPTNに格納する。まず、SNGSQ(SNG,SNGPT)の第1ビットからリプレイスパターンがあるか否かを判断する(n50)。これが1であればリプレイスパターンがあることであるため、パターンレジスタPTNにSNGSQ(SNG,SNGPT)の下位7ビットに記憶されているパターンナンバをセットしリプレイスパターンレジスタRPTNにSNGSQ(SNG,SNGPT+1)に記憶されているパターンナンバをセットしたのち(n53)、ソングデータポインタを2進めて(n54)、リプレイスパターン分解能データPTNQTZ(RPTN)をRQTZレジスタにセットし、リプレイスパターンポインタRPTNPTをリセットして(n55)リターンする。RPTNPTについては図1717で詳述する。
【0026】一方、リプレイスパターンがない場合にはパターンレジスタPTNにSNGSQ(SNG,SNGPT)に記憶されているパターンナンバをセットしリプレイスパターンレジスタRPTNには、リプレイスパターンがないことを示すFFH をセットしたのち(n51)、ソングデータポインタを1進めて(n52)リターンする。
【0027】図10はパターンスイッチオンイベントによる表示器21の動作を示すフローチャートである。まず最新にスイッチ入力されたモードを記憶するレジスタNMODにパターンモードを示す“0”をセットする(n60)。つぎに自動演奏中であるか否か(RUN)を判断し(n61)、RUN=1であればMODを書き換えないでそのままn64に進む。一方、RUN=0であればMODに0をセットしたのち(n63)n64に進む。n64ではLCD21の表示モードをパターン表示モードにして最新に入力されたパターンナンバ(INPTNの内容)を表示してリターンする。
【0028】図11はソングスイッチオンイベントによる表示器21の動作を示すフローチャートである。まず最新にスイッチ入力されたモードを記憶するレジスタNMODにソングモードを示す“1”をセットする(n65)。つぎに自動演奏中であるか否かを判断し(n66)、自動演奏中であればMODを書き換えないでそのままn69に進む。一方、自動演奏中でなければMODに1をセットしたのち(n68)n69に進む。n69ではLCD21の表示モードをソング表示モードにし、最新に入力されたソングナンバ(INSNGの内容)を表示してリターンする。
【0029】図12はテンキーオンイベント動作を示すフローチャートであり、パターンナンバであるかソングナンバであるかをNMODで判別し、入力された数字をINPTN,INSNGに格納する。イベントがあったキーの数値をEKレジスタにセットする(n70)。つぎに最新にスイッチ指定されたモード(表示モード)をNMODから判断する(n71)。NMOD=0であればパターン表示モードであるため、入力パターンナンバINPTNの内容を桁送りして1桁目にEKをセットする(n72)。次にこのパターンナンバINPTNをLCDに表示する(n73)。また、NMOD=1であればソング表示モードであるため、入力ソングナンバINSNGの内容を桁送りして1桁目にEKをセットする(n75)。次にこのソングナンバINSNGをLCDに表示する(n76)。
【0030】図13はテンポスイッチイベント動作を示すフローチャートである。まず、オンされたスイッチがアップスイッチかダウンスイッチかを判断する(n80)。
【0031】アップスイッチであればTMPが最高値か否かを判断する(n81)。最高値であればそのままリターンする。最高値でなければTMPに1を加算し(n82)、1回のテンポの間隔INTVLを算出する(n85)。INTVLは((60×103)/TMP)×(1/4)で算出される。また、ダウンスイッチがオンされた場合には、TMPが最低値か否かを判断する(n83)。最低値であればそのままリターンする。最低値でなければTMPから1を減算し(n84)、INTVLを算出する(n85)。
【0032】図14は割り込み処理動作を示すフローチャートである。この動作は自動演奏動作(RUN=1)のときのみ有効であるため、RUN=0のときにはそのままリターンする。RUN=1の場合、まず時間カウンタTIMEがテンポ間隔レジスタINTVL以上になっているか否かを判断する(n91)。TIME≧INTVLでなければパターンデータから発音データを読み出すタイミングでないためTIMEに1を加算して(n100)リターンする。TIME≧INTVLであればTIMEをリセットし(n92)、MODを判断する(n93)。MOD=1であればソングモードであるためソング再生動作(n94)を実行してリターンする。一方、MOD=0であればパターンモードであるためn95〜n99の動作を実行する。まず、分解能に対応するタイミングであるか否かを判断する(n95)。すなわち、分解能が16分音符であれば毎回発音データを読み出すが、分解能が8分音符であれば2回に1回であるためこれを判断する。発音データを読み出すタイミングであればパターン再生動作を実行する(n96)。こののち、クロックレジスタCLKに1を加算する(n97)。CLKがMTR×4になったときには1小節分のパターンが終了したことを意味するためPTNPTおよびLCKをクリアして(n98,n99)パターンの読み出しをこのパターンの先頭に戻してリターンする。
【0033】図15はソング再生動作を示すフローチャートである。まず、現在読み出しているパターンの分解能に対応するタイミングであるか否かを判断する(n110)。このタイミングであれば発音データを読み出すためパターン再生動作を実行する(n111)。このタイミングでなければn111をスキップする。つぎにリプレイスパターンモードか否かを判断する(n112)。リプレイスパターンモードの場合にはリプレイスパターンの分解能に対応するタイミングであるか否かを判断し(n113)、このタイミングであればリプレイスパターン再生動作を実行する(n114)。このタイミングでなければn114をスキップする。
【0034】こののち、クロックレジスタCLKに1を加算する(n115)。この結果CLKがMTR×4になった場合(n116)には現在読み出しているパターンが終了したことを意味するためソングが終了か否かを判断する(n117)。ソングが終了すればRUNに0をセットしてリターンする(n121)。ソングが終了でなければ次のパターンを読み出すためCLKに0をセットし(n118)、読出パターン設定(n119)およびパターン初期設定(n120)を実行する。
【0035】なお、n116でCLK=MTR×4でなければパターンが終了していないためそのままリターンする。
【0036】図16はパターン再生動作を示すフローチャートである。この動作ではパターンシーケンスデータPTNSQ(PTN,PTNPT)を読み出して対応する楽音を発音する。読み出したデータが区切りデータ(FFH )であれば(n130)、ポインタPTNPTに1を加算して(n138)リターンする。読み出したデータがFFH でない場合には発音データであるため、PTNSQ(PTN,PTNPT)の下位7ビットをNTにセットする(n131)。最上位ビットが0であれば打楽器音であり、1であればベース音である(図5(B)参照)。打楽器の場合にはアサインテーブルから打楽器ナンバを割り出してNSTにセットする(n133)。そののち、キーオン信号、打楽器ナンバINSTなどからなる楽音形成用のデータをTGに出力する(n134)。また、ベースの場合にはリプレイスパターンがあるか否か(RPTN≠/=FFH )を判断し(n135)、リプレイスパターンがなければキーオン信号,キーコードNT,音色BASSなどからなる楽音形成用のデータをTGに出力する(n136)。リプレイスパターンがある場合にははこのベース音を発音せず、次のリプレイスパターンのベース音を発音するためn136をスキップする。こののちポインタPTNPTに1を加算して(n137)、n130にもどる。
【0037】図17はリプレイスパターン再生動作を示すフローチャートである。この動作ではリプレイスパターンデータRPTNSQ(RPTN,RPTNPT)を読み出して対応する楽音を発音する。読み出したデータが区切りデータ(FFH )であれば(n140)、ポインタRPTNPTに1を加算して(n145)リターンする。読み出したデータがFFH でない場合には発音データであるため、このデータがベースパートのデータがリズムパートのデータかをRPTNSQ(RPTN,RPTNPT)の最上位ビットで判断する(n141)。リプレイスパターンではリズムパートは発音対象とならないので、リズムパートであれば発音処理をスキップする。RPTNSQ(RPTN,RPTNPT)の最上位ビットが1であればベースパートであるため、RPTNSQ(RPTN,RPTNPT)の下位7ビットをNTにセットし(n142)、キーオン信号,キーコードNT,音色BASSなどからなる楽音形成用のデータをTGに出力する(n143)。こののちポインタRPTNPTに1を加算して(n144)、n140にもどる。
【0038】
【発明の効果】以上のようにこの発明によれば、ソングデータのみならず個別のパターンデータにもテンポデータを記憶し、パターンデータを個別に再生するときにはこのテンポデータに基づいた速度で読み出しを行うため、パターンのみの再生でも最適のテンポで再生が可能となる。
【図面の簡単な説明】
【図1】この発明の実施例である電子楽器のブロック図
【図2】同電子楽器の操作パネルを示す図
【図3】同電子楽器のメモリの構成を示す図
【図4】同電子楽器のメモリの構成を示す図
【図5】同電子楽器のメモリの構成を示す図
【図6】同電子楽器の動作を示すフローチャート
【図7】同電子楽器の動作を示すフローチャート
【図8】同電子楽器の動作を示すフローチャート
【図9】同電子楽器の動作を示すフローチャート
【図10】同電子楽器の動作を示すフローチャート
【図11】同電子楽器の動作を示すフローチャート
【図12】同電子楽器の動作を示すフローチャート
【図13】同電子楽器の動作を示すフローチャート
【図14】同電子楽器の動作を示すフローチャート
【図15】同電子楽器の動作を示すフローチャート
【図16】同電子楽器の動作を示すフローチャート
【図17】同電子楽器の動作を示すフローチャート
【符号の説明】
【特許請求の範囲】
【請求項1】複数のパターンデータを記憶するパターンデータ記憶手段と、前記複数のパターンデータのシーケンスからなるソングデータを記憶するソングデータ記憶手段と、前記複数のパターンデータのテンポを記憶するパターンテンポデータ記憶手段と、前記ソングデータのテンポを記憶するソングテンポデータ記憶手段と、各パターンデータを個別に再生するモードと前記ソングデータに基づいて前記複数のパターンデータを順次読み出すソングモードとを選択するモード選択手段と、を備え、前記モード選択手段でパターンモードが選択されたときは各パターンデータに対応するパターンテンポデータに基づく速度でパターンを読み出し、ソングモードが選択されたときは前記ソングテンポデータに基づく速度でパターンデータを読み出す手段を設けたことを特徴とする電子楽器。
【請求項1】複数のパターンデータを記憶するパターンデータ記憶手段と、前記複数のパターンデータのシーケンスからなるソングデータを記憶するソングデータ記憶手段と、前記複数のパターンデータのテンポを記憶するパターンテンポデータ記憶手段と、前記ソングデータのテンポを記憶するソングテンポデータ記憶手段と、各パターンデータを個別に再生するモードと前記ソングデータに基づいて前記複数のパターンデータを順次読み出すソングモードとを選択するモード選択手段と、を備え、前記モード選択手段でパターンモードが選択されたときは各パターンデータに対応するパターンテンポデータに基づく速度でパターンを読み出し、ソングモードが選択されたときは前記ソングテンポデータに基づく速度でパターンデータを読み出す手段を設けたことを特徴とする電子楽器。
【図3】
【図1】
【図2】
【図8】
【図10】
【図4】
【図7】
【図5】
【図6】
【図9】
【図11】
【図12】
【図13】
【図15】
【図14】
【図16】
【図17】
【図1】
【図2】
【図8】
【図10】
【図4】
【図7】
【図5】
【図6】
【図9】
【図11】
【図12】
【図13】
【図15】
【図14】
【図16】
【図17】
【公開番号】特開平5−188943
【公開日】平成5年(1993)7月30日
【国際特許分類】
【出願番号】特願平4−4992
【出願日】平成4年(1992)1月14日
【出願人】(000004075)ヤマハ株式会社 (5,930)
【公開日】平成5年(1993)7月30日
【国際特許分類】
【出願日】平成4年(1992)1月14日
【出願人】(000004075)ヤマハ株式会社 (5,930)
[ Back to top ]