JP4572980B2 - 自動演奏装置及びプログラム - Google Patents
自動演奏装置及びプログラム Download PDFInfo
- Publication number
- JP4572980B2 JP4572980B2 JP2008275958A JP2008275958A JP4572980B2 JP 4572980 B2 JP4572980 B2 JP 4572980B2 JP 2008275958 A JP2008275958 A JP 2008275958A JP 2008275958 A JP2008275958 A JP 2008275958A JP 4572980 B2 JP4572980 B2 JP 4572980B2
- Authority
- JP
- Japan
- Prior art keywords
- tempo
- performance
- operator
- sound
- sound generation
- 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
各操作子を操作する操作者は、操作子を「振る」といった簡単な操作により、該操作子に割り当てられたパートの演奏を制御することができ、これにより楽器演奏初心者であってもアンサンブル演奏の充実感を味わうことができる。
また、前記発音処理制御手段は、前記従となる操作子から操作信号が出力された場合、当該時点における前記従となる操作子に対応する発音イベントの位置が前記発音処理手段によって次に処理される前記主となる操作子に対応する発音イベントの位置の直前まで達しているか否かを確認し、直前に達していない場合には、前記従となる操作子に対応する発音イベントの位置が前記発音処理手段によって次に処理される前記主となる操作子に対応する発音イベントの位置を越えない範囲で、前記操作信号に従って前記発音処理手段による発音処理を進めてもよい。
<実施形態の構成>
図1は、本実施形態の構成を示す図である。同図において、操作子1−1,1−2,…,1−n(nは整数)は、図3に示すように操作者Aが手に持って自由に動かすことができる棒状の形状をしている。なお、操作子1−1〜1−nについて総称するときは、単に操作子1と記すことにする。
この操作子1には、その動きを検出するためのセンサが内蔵されている。本実施形態においては操作子1が振られていることを検出するための速度センサが内蔵されている。操作子1は振り下ろされた瞬間の速度センサの出力信号の変化に応じたピーク信号SP(すなわち、操作子1の操作状況に応じた操作信号)を出力するようになっている。なお、本実施形態においては、操作子1の振り下ろしが検出されればよいので、センサとしては他のもの(例えば加速度センサなど)を用いてもよい。また、操作子1は、各々自己を識別するための識別情報SIDを出力するようになっている。なお、各操作子1−1〜1−nの識別情報をSID(1−1)〜SID(1−n)と表記する。
操作子1は、ピーク信号SPと識別情報SIDを含んだセンサ情報SIを無線によって受信装置2に送信し、受信装置2はセンサ信号SIをパーソナルコンピュータ3に供給するようになっている。なお、本実施形態においては、Bluetooth(登録商標)による無線伝送方式が採用されるが、この伝送方式は任意である。
同図において、CPU301は、RAM303の記憶領域をワークエリアとして利用し、ROM302に格納されている各種プログラムを実行することで装置各部を制御する。
ハードディスク装置(以下、HDDと記す)304には複数の演奏データが記憶されており、また、外部記憶装置310に挿入されるCD−ROMにも複数の演奏データが記録されている。本実施形態において用いる演奏データは、MIDI規格によるものであるが、演奏データは楽音を指定する楽音パラメータの集合となっている。
自動演奏が指示されたときは、指定された演奏データがHDD304またはCD−ROMより呼び出されて、RAM303の演奏データ格納領域に格納される。演奏データ格納領域に格納された演奏データの各楽音パラメータは、CPU301によって演奏の進行に沿って順次読み出されるようになっている。
次に、図1に示す音源装置4はパーソナルコンピュータ3から出力されたMIDI規格の楽音パラメータを受信して、これに基づいて楽音信号を生成する。この楽音信号の生成においては、楽音パラメータデータが示す音高、音量、残響、ブライトネス、音像等に従って楽音信号が形成される。この楽音信号は、アンプ5へと供給され、アンプ5において楽音信号が増幅された後にスピーカ6にて放音される。
以上説明した受信装置2,パーソナルコンピュータ3,音源装置4,アンプ5,スピーカ6によって自動演奏装置100が構成されている。
ここで、HDD304またはCD−ROMに記憶されている演奏データの構造について説明する。
本実施形態においては、上述したようにMIDI規格による演奏データを用いて自動演奏を行う。演奏データを構成する楽音パラメータには、一つひとつの音符について音高、音長、ベロシティ(つよさ)などを示すもの、楽曲全体に影響を与えるもの(全体の音量、テンポ、残響や音像定位など)、あるいは特定のパートの全体に影響を与えるもの(パート別の残響や音像定位など)がある。
本実施形態においては、演奏の進行に応じて楽音パラメータを順次読み出して自動演奏処理を行うが、操作子1の操作に応じて楽曲の進行を制御するようになっている。
第1列のデルタタイムは、イベントとイベントとの時間間隔を示しており、テンポクロックの数で表される。デルタタイムが「0」の場合は、直前のイベントと同時に実行される。
第2列には演奏データの各イベントが持つメッセージの内容が記述されている。このメッセージには、例えば発音イベントを示すノートオンメッセージ(NoteOn)や消音イベントを示すノートオフメッセージ(NoteOff)の他、音量やパンポット(音像定位)を指示するコントロールチェンジメッセージ(ControlChange)等が含まれる。
第4列には、ノートナンバ(NoteNum)、プログラムナンバ(ProgNum)あるいはコントロールナンバ(CtrlNum)が記述されるが、どれが記述されるかはメッセージの内容により異なる。例えばノートオンメッセージまたはノートオフメッセージであれば、ここには音階を表すノートナンバが記述され、またコントロールチェンジメッセージであればその種類(音量やパンポット等)を示すコントロールナンバが記述されている。
第5列にはMIDIメッセージの具体的な値(データ)が記述されている。例えばノートオンメッセージまたはノートオフメッセージであれば、ここには音の強さを表すベロシティの値が記述され、またコントロールチェンジメッセージであればコントロールナンバに応じたパラメータの値が記述されている。
第2行のテンポ指令値(SetTempo)は、演奏の速さを指定し、4分音符の長さをマイクロ秒で表す。例えば、4分音符=120のテンポの場合、4分音符が1分間に120拍であるため、60(秒)/120(拍)×1000000=500000(マイクロ秒)の値が、テンポ指令値の値としてセットされる。自動演奏はテンポクロックに基づく速さで行われるが、テンポクロックの周期は、テンポ指令値と時間単位の値に応じて制御されるようになっている。したがって、テンポ指令値(SetTempo)が「500000」で時間単位が「480」の場合は、テンポクロックの周期は「1/960」となる。
第3行から第6行にはシステムエクスクルーシブメッセージが記述され、第7行から第11行にはプログラムチェンジメッセージとコントロールチェンジメッセージが記述されている。これらは、楽曲全体に影響を与える楽音パラメータであるが、本実施形態の動作には関係がないので、その説明は割愛する。
ここで、図4に示す音符列がどのように演奏されるかを説明すると、まずチャネル「1」で「C4」、チャネル「2」で「E4」、チャネル「3」で「G4」、チャネル「4」で「B4」、チャネル「5」で「C3」が同時に発音される。それからデルタタイム「240」の後にチャネル「2」から「5」が一斉に消音する。このときチャネル「1」にはノートオフイベントが記述されていないので、チャネル「1」では引き続き「C4」の音が発音される。チャネル「2」から「5」においては、消音と同時に次の音が発音される。具体的にはチャネル「2」、「4」、「5」で「F4」、チャネル「3」で「A4」の音が発音される。
以上のような手順で各チャネルの発音と消音が繰り返され、演奏が進行する。
すなわち、MIDIデータを用いた一般的な自動演奏処理は、デルタタイムによって示される時間を待って次々とイベントを実行する、という処理を演奏が終了するまで繰り返す。ただし、本実施形態においては、デルタタイムに基づいた楽曲の進行の制御よりも、操作子1の操作に応じた楽曲の進行制御の方が優先される。その詳細については後述する。
次に、RAM303に設定されるテーブルについて説明する。パーソナルコンピュータ3の電源投入時に起動されるROM302のプログラムに基づき、CPU301は、初期設定を行うが、このときRAM303の記憶領域にそれぞれ図5、図6に示されるようなテーブルを作成する。
図5に示すTB1はチャネル設定テーブルであり、操作子とチャネルの対応関係が設定されている。なお、この対応関係は、キーボード306やポインティングデバイス307を操作することによって自由に変更することができる。
図6に示すTB2は現在テンポテーブルであり、操作子1の操作(振り下ろしの間隔)に応じたテンポ値Tempo・Rが格納される。このテンポ値Tempo・Rは操作子1が振り下ろされる度に更新されるようになっている。なお、初期状態においては、演奏データに含まれているテンポ指令値(SetTempo)の値が書き込まれるようになっている。
上記の構成によるこの実施形態の動作について説明する。
まず、この自動演奏装置100には、各種の演奏モードが備わっており、操作者がキーボード306等を用いてモードの選択操作をすることにより、モードの選択や組み合わせが設定される。
各モードについて簡単に説明すると、まず、操作者が単独で演奏をする単独演奏モードと複数の操作者が異なるパートを同時に演奏する複数演奏モードがある。また、単独演奏モードと複数演奏モードのそれぞれにおいては、操作子1が振り下ろされる間隔(いわゆる楽曲の拍タイミング)に基づいてテンポが制御されるマニュアルモードと、操作子1が振り下ろされる度に、対応するチャネルのノートオンイベント(NoteOn)が読み出されて発音されるノートモードとがある。以下、それぞれのモードの動作について説明する。
このモードは、一人の操作者が単一の操作子を操作して一つまたは複数のパートの演奏を制御するモードである。この単一操作子演奏モードにおいては、ノートモードとマニュアルモードを選択することができる。さらに、単一操作子演奏モードにおいて複数のパートの演奏を制御する場合のノートモードには、ノート自動モードとノート伴奏モードの二つのモードがある。
(1)ノートモード
このモードは、操作子1が振り下ろされる度に、例えばメロディパートなど操作子に対応するチャネルのノートオンイベント(NoteOn)が読み出されて発音されるとともに、例えば伴奏パートに対応するチャネルのノートオンイベント(NoteOn)を操作子1の振り下ろしタイミングに応じて読み出して発音することにより、アンサンブル演奏を自動的に行うモードである。
初めに、単独のパートを演奏する場合を例にとる。図7は単独のパートの一例を示す楽譜であり、図8はそれに対応した演奏データの一部である。なお、図8に示す演奏データにおいては、「時間単位」が「480」に設定されており(図4参照)、4分音符に相当するデルタタイムは「480」になっている。
まず、図8に示す演奏データを用いて、一般的な自動演奏を行った場合の動作を説明する。演奏の開始が指示されると、図2に示すCPU301は、図8に示す演奏データをRAM303の演奏データ格納領域に格納し、先頭のデータから順次読み出して処理してゆく。ノートイベントについては、まず、E3音のノートオンイベント(NoteOn)が読み出され、MIDIインターフェイス308を介して音源装置4に転送される。音源装置4は、E3音の楽音信号を生成し、この楽音信号はアンプ5で増幅された後にスピーカ6で放音される。
次に、本実施形態における操作子1を用いた演奏について説明する。操作者は、まず、演奏開始を自動演奏装置100に指示するために操作子1を振り下ろす(以下、この操作を前うち操作という)。操作者によって前うち操作がなされると、操作子1からは、上から下へ振り下ろした時の速度変化を表すピーク信号SPが出力される。ピーク信号SPは受信装置2を介してCPU301に供給される。CPU301は、操作子1から最初のピーク信号SPを受け取ると、操作者によって前うち操作がなされたと判断し、図6に示す現在テンポテーブルTB2の現在テンポTempo・Rの値をテンポ指令値(SetTempo)の値に設定する。そして、テンポクロックの周期を現在テンポTempoの値に従って決定する。なお、前うち操作がなされた段階においては、自動演奏は開始されず、この段階においては演奏データ内のテンポ指令値(SetTempo)に従ってテンポクロックが決定されていることになる。
そして、発音されたE3音は、デルタタイム「480」をカウントしている間は発音が継続されるが、操作者が時刻t2より早いタイミングで操作子1を再度振り下ろすと、この振り下ろしによってピーク信号SPが出力されたタイミングでE3音のノートオフイベント(NoteOff)、F3音のノートオンイベント(NoteOn)が読み出され、それぞれ消音処理、発音処理がなされる。例えば、時刻t11で2度目の振り下ろし(前うち操作のための振り下ろしを除く;以下同様)があると、この時刻においてE3音が消音され、F3音が発音される。
そして、自動演奏が中止された後に、操作者が操作子1を振り下ろすと、このタイミングにおいてピーク信号SPが出力される。このピーク信号SPがCPU301に検出されると、CPU301はポインタから、次に発音すべき音のイベントが格納されているアドレスを読み出し、そのアドレスにあるノートオンイベント(NoteOn)を実行する。図7、図8に示す例において時刻t21にピーク信号SPが検出された場合は、この時刻においてF3音のノートオンイベント(NoteOn)を読み出し、発音処理を行う。
新しいテンポは、ピーク信号SPが出力された間隔と、その時発音していた音符の長さから決定される。図7,図8に示すE3音の場合は、4分音符であり、デルタタイムは「480」であるから、このデルタタイムに対するピーク信号SPの出力間隔からテンポを求める。
上記の例の場合は、「時間単位」が「480」でテンポ指令値SetTempo(初期値)が「500000」であるから、4分音符であるE3音の発音時間は「500000」マイクロ秒であり、テンポクロック周期は「1/960」である。そして、ピーク信号SPの時間差(t11−t1)が「400000」マイクロ秒であれば、テンポ値Tempo・Rを「400000」に書き換える。そして、更新されたテンポ値Tempo・Rに応じてテンポクロックの周期を変更する。これにより、テンポが早くなり、次の音であるF4音の発音時間は当初のテンポの場合より短くなる。一方、ピーク信号SPの時間差(t21−t1)が「600000」マイクロ秒であれば、テンポ値Tempo・Rを「600000」に書き換える。そして、更新されたテンポ値Tempo・Rに応じてテンポクロックの周期を変更する。これにより、テンポが遅くなり、次の音であるF4音の発音時間は当初のテンポの場合より長くなる。つまり、CPU(発音長制御手段)301は、次の音であるF3音の発音長さについては、上記の如く更新したテンポに対応する長さに制御する。
なお、E3音が8分音符であったとすると、時間差(t11−t1)あるいは(t21−t1)は新たなテンポにおける8分音符の長さを示すものとなるから、これを4分音符に換算してテンポ値Tempo・Rを更新する。
また、E3音のノートオフイベント(NoteOff)が検出されるまでの間に、複数のデルタタイムが存在している場合は、それらのデルタタイムを全て加算したものとピーク信号の時間差とから、新しいテンポを求める。
また、上記処理においては、発音中の音のノートオフイベント(NoteOff)が読み出されるまでにピーク信号SPが検出されない場合は、自動演奏を一時中止するようにしたが、一時中止の状態が所定時間以上継続した場合は、テンポの更新を行わず、現在テンポテーブルTBに記憶されている一つ前のテンポ値Temp・Rの値でテンポクロックの周期を決めるようにしてもよい。これは、長時間曲が中断した場合に、その中断時間に基づいてテンポを設定すると、不自然に遅いテンポとなってしまい、楽曲の演奏にふさわしくないからである。なお、この場合には、初期のテンポであるテンポ指令値SetTempoを用いてもよい。
(1−1)ノート自動モード
次に、一人の操作者が単一の操作子を操作して複数のパートを演奏する場合を説明するが、説明の簡略化のために2つのパートからなる曲を演奏する場合を例にとる。ここで、図9は2つのパートからなる曲を示す楽譜である。図9における上段がメロディ、下段が伴奏のパートであり、それぞれチャネル1(特定チャネル),チャネル2(他のチャネル)に割り振られている。なお、上段のメロディは、図7に示した楽譜と同じである。また、図10は図9に示す楽譜に対応した演奏データを示す図である。
まず、メロディのパートについての操作子1の操作と演奏との関係は、上述の単独のパートを演奏する場合と同じである。伴奏のパートについては、メロディパートで発音されている音に対応する音のノートオンイベント(NoteOn)が読み出されて同期を取りながら発音処理されるようになっている。別言するとこの複数の演奏パートの同時演奏においては、同時発音すべきイベントが複数ある場合(メロディパートのみに同時発音すべきイベントがある場合のみならず、メロディパート及び伴奏パートに同時に発音すべきイベントがある場合も含む)があり、かかる場合にはそれらが全て読み出されて発音処理されるようになっている。
また、上記とは逆に時刻t4では操作子1が振り下ろされず、少し遅れた時刻t41において操作子1が振り下ろされた場合は、時刻t3で発音されたメロディパートのG3音は、その時のテンポに応じた長さだけ発音された後、消音処理され、これに対応する伴奏パートのE3音、G3音もメロディパートのG3音とともに消音処理される。その後は、ピーク信号SPの検出待ちとなり、時刻t41でピーク信号SPが検出された時点でメロディパートのB3音、D4音および伴奏パートのG3音,B3音が発音される。
また、時刻t6でメロディパートのC4音が発音され、これに伴って伴奏パートのG3音が発音、消音処理され、続いてA3音が発音、消音処理された後、時刻t61においてピーク検出信号SPが検出されると、CPU301はメロディパートの次の音であるE3音のノートオンイベントを読み出して発音処理するとともに、伴奏パートのB3音、C4音(8分音符)の処理をスキップし、発音を行わない。
以上のように、メロディパートの演奏が優先され、伴奏パートの発音、消音処理はメロディパートに追従するように制御される。
次に、ノート伴奏モードについて説明する。このモードは伴奏パートについては、演奏データによって指定されるテンポに基づいて自動演奏を行う、いわゆる通常の自動演奏処理となる。そして、メロディパートについては、前述した単独の演奏パートの動作と同じである。このモードにおいては、伴奏パートとメロディパートの同期は取られない。なお、いずれのチャネルを伴奏パートにするかメロディパートにするかは操作者が任意に設定すればよい。
このモードは、操作者が伴奏パートの自動演奏を聞きながら、自由にメロディの発音タイミングを指示するときに用いられるモードである。
このモードは全てのチャネルについて、通常の自動演奏と同じ動作を行うが、テンポについては操作者の操作に従って変化する。
すなわち、操作者が1拍(あるいは2拍)のタイミングで操作子1を振り下ろすと、その振り下ろし間隔に相当するピーク信号の間隔等がCPU301によって検出され、上述の場合と同様にして、ピーク信号の間隔等からテンポを逐次更新してゆく。この更新されたテンポは現在テンポテーブルTB2にテンポ値Tempo・Rとして格納され、このテンポ値Tempo・Rによってテンポクロックの周期が決定される。したがって、操作子1が振り下ろされる間隔に応じて自動演奏のテンポが変化する。なお、この動作は演奏するパートが単一・複数にかかわらず、同様である。
以上説明した動作例では、操作子1の振り下ろし操作を検出する毎に(すなわち1回のピークを検出する毎に)、1音符ずつ演奏を進める場合について説明したが、上記振り下ろし操作を検出する毎に複数の音符を進めるようにしても良い。かかる場合には、検出したピークに続く音符については、既に求めたテンポ値Tempo・Rを利用して演奏を進めれば良い。なお、検出したピークに続く音符が休符(4分休符等)である場合も上記テンポ値Tempo・Rを利用して演奏を進めれば良い。
このモードは、複数の操作者がそれぞれ操作子を操作して、各自に割り当てられたパートの演奏を制御することにより、複数パートからなる楽曲の演奏を制御するモードである。この複数演奏モードにおいては、例えばメロディパートについてはノートモードで演奏制御を行う一方、伴奏パートについてはマニュアルモードで演奏制御を行うといった選択を行うことができる。
複数操作子演奏モードにて演奏を試みる操作者は、まず、自動演奏装置100のキーボード306等を操作して楽曲の選択、及び各操作子に対するパートの割り当てを行う。例えば、2人の操作者(第1操作者及び第2操作者)で演奏する場合には、操作者は操作子1−1(第1操作者用)に対してメロディパートを割り当て、操作子1−2(第2操作者用)に対して伴奏パートを割り当てるといった選択を行う。なお、以下の説明では、メロディパートが割り当てられた操作子1−1をマスタ操作子1−1と呼び、伴奏パートが割り当てられた操作子1−2をスレーブ操作子1−2と呼ぶ。
かかる操作を行うと、操作者は、さらにキーボード306等を操作してメロディパート及び伴奏パートの各々についてノートモード若しくはマニュアルモードの選択を行う。この結果、RAM(記憶手段)303の所定エリアには、チャネル番号、各操作子を識別するための識別情報、各操作子に対する演奏パートの割り当て、各演奏パートの演奏制御モードの割り当て(属性情報)等が記述された複数演奏モード管理テーブルTA1が格納される(図11参照)。いいかえると、RAM303の所定エリアには、各操作子と各チャネルとの対応関係及び各操作子の主従関係(いずれの操作子がマスタ操作子となり、いずれの操作子がスレーブ操作子となるか)等が記述された複数演奏モード管理テーブル(操作関連情報)TA1が格納される。
以下、マスタ操作子1−1及びスレーブ操作子1−2がともにノートモードに設定された場合の動作について説明する。
この演奏について図12を参照しながら説明すると、メロディパートの演奏については、CPU301は、マスタ操作子1−1の操作を検出する度に(すなわち、操作情報を受信する度に)、この検出タイミングで対応する楽音を発音し、1音符ずつ演奏を進める(図に示すt1〜t7参照)。なお、この際、マスタ操作子1−1の操作(ピーク)を検出してから次の操作(ピーク)を検出するまでの時間と音符の長さとに基づいて逐次テンポ計算するのは前述したとおりである。
CPU(発音処理制御手段)301は、常にマスタ操作子(主となる操作子)1−1の次演奏位置(次に処理される発音イベントの位置)を確認し、スレーブ操作子(従となる操作子)1−2の現演奏位置(発音イベントの位置)が、マスタ操作子1−1の次演奏位置を越えないように制御する。例えば、図13のAに示すように、CPU301がマスタ操作子1−2から操作情報を受け取った時点において、マスタ演奏の演奏位置(現演奏位置)が「2」まで進んでおり、スレーブ演奏の演奏位置がマスタ演奏の未演奏位置(次演奏位置)「3」の直前まで進んでいる状態においてスレーブ操作端末1−2の操作を検出した場合には、スレーブ演奏についてはマスタ演奏よりも先に進ませないという原則のもと、スレーブ演奏を進ませない。かかる場合には、図13のBに示すように、マスタ演奏が演奏位置「3」に進んでからスレーブ操作子1−2の操作を検出したときにスレーブ演奏を進ませる。ただし、この場合にスレーブ演奏を進ませることができるのは、あくまでマスタ演奏の未演奏位置「4」の直前までに限られる。いいかえれば、上記の場合、スレーブ演奏については、マスタ演奏の未演奏位置「4」を越えない範囲でスレーブ演奏を進ませることができる。
また、図14のAに示すように、楽曲の途中の間奏部分など、メロディパートの演奏が途切れて伴奏パートの演奏のみが行われるような部分においてスレーブ操作子1−2の操作を検出すると、CPU301は、このスレーブ操作子1−2の操作を検出するタイミングでスレーブ演奏を進ませる。ただし、スレーブ演奏を進ませることができるのは、あくまで伴奏パートの演奏のみが行われる部分に限られる。いいかえれば、スレーブ演奏を進ませることができるのは、図14のBに示すようにマスタ演奏が再開される未演奏位置「1」の直前までに限られる。なお、スレーブ演奏の演奏位置が間奏部分の演奏位置であるか否かについては、楽曲データ中のメロディパートの楽音パラメータと伴奏パートの楽音パラメータとを比較等して判断すれば良い。
また、CPU301は、スレーブ操作子1−2の操作を検出するタイミングがマスタ操作子1−1の操作を検出するタイミングと同時、若しくはマスタ操作子1−1の操作を検出してから所定時間(300(ms)等)内である場合には、スレーブ操作子1−2の操作を検出するタイミングでスレーブ演奏を進ませる。例えば、図15のAに示すように、スレーブ演奏の演奏位置がマスタ演奏の未演奏位置「3」の直前まで進んでいる場合、マスタ操作子1−1の操作を検出すると同時にスレーブ操作子1−2の操作を検出すると、CPU301は、図15のBに示すように、マスタ演奏を演奏位置「3」に進ませるとともに、スレーブ演奏をマスタ演奏の演奏位置「3」に対応する位置まで進ませる。なお、上記所定時間内にさらにスレーブ操作子1−2の操作を検出した場合には、スレーブ演奏を進ませることができるが、進ませることができるのは、あくまでマスタ演奏の未演奏位置「4」の直前までに限られる。
また、CPU(発音位置制御手段)301は、スレーブ演奏がマスタ演奏から所定量以上遅れている場合(例えばスレーブ演奏が停止されていた等により4分音符1つ分以上等)にスレーブ操作子1−2の操作を検出すると、スレーブ演奏の演奏位置をマスタ演奏の演奏位置までスキップして進ませる。例えば、図16のAに示すように、マスタ演奏の演奏位置が「3」であり、かつ、スレーブ演奏の演奏位置がマスタ演奏の演奏位置「2」に対応する位置に存在する場合、マスタ操作子1−1の操作を検出すると同時にスレーブ操作子1−2の操作を検出すると、CPU301は、図16のBに示すように、マスタ演奏を演奏位置「4」に進ませるとともに、スレーブ演奏をマスタ演奏の演奏位置「4」に対応する位置までスキップさせる。この結果、スキップしてとばされた音符列(図16に示すM参照)については演奏されずにスキップ後の演奏位置に対応する音符が発音されることになる。
CPU(発音位置制御手段)301は、上記ケース4と同様、スレーブ演奏がマスタ演奏から所定量以上遅れている場合(例えばスレーブ演奏が停止されていた等により1拍分以上等)にスレーブ操作子1−2の操作を検出すると、スレーブ演奏の演奏位置をマスタ演奏の演奏位置に対応する拍子位置までスキップして進ませる。詳述すると、例えば、図17のAに示すように、マスタ演奏の演奏位置が「5」であり、かつ、スレーブ演奏の演奏位置がマスタ演奏の演奏位置「2」に対応する位置に存在する場合、マスタ操作子1−1の操作を検出すると同時にスレーブ操作子1−2の操作を検出すると、CPU301は、図17のBに示すように、マスタ演奏を演奏位置「6」に進ませるとともに、スレーブ演奏をマスタ演奏の演奏位置に対応する拍子位置(図17では3拍目の頭の位置)までスキップさせる。このように、スレーブ操作子1−2がマニュアルモードに設定された場合には、スレーブ演奏の演奏位置をマスタ演奏の演奏位置と同じ位置までスキップさせるのではなく、マスタ演奏の演奏位置に対応する拍子位置までスキップさせる。この結果、スキップしてとばされた音符列(図17に示すM参照)については演奏されずにスキップ後の演奏位置に対応する音符が発音されることになる。このように、スレーブ操作子1−2がマニュアルモードに設定されている場合についても、スレーブ演奏とマスタ演奏とを同期させることが可能となる。
以上説明した動作例では、マスタ操作子1−1をノートモードに設定し、スレーブ操作子1−2をノートモード若しくはマニュアルモードに設定した場合について説明したが、例えばマスタ操作子1−1をマニュアルモードに設定し、スレーブ操作子1−2をノートモード若しくはマニュアルモードに設定しても良いのはもちろんである。また、上記動作例では、メロディパートが割り当てられた操作子1−1をマスタ操作子1−1とし、伴奏パートが割り当てられた操作子1−2をスレーブ操作子1−2としたが、これとは逆に伴奏パートが割り当てられた操作子をマスタ操作子とし、メロディパートが割り当てられた操作子をスレーブ操作子とするなど、どのパートが割り当てられた操作子をマスタ操作子若しくはスレーブ操作子とするかは適宜変更可能である。また、該動作例では2人の操作者が2つの操作子1を利用して同期演奏する場合について説明したが、3人以上の操作者が3つ以上の操作子1を利用して同期演奏しても良いのはもちろんである。
ボリューム管理テーブルTA2には、ピーク信号SPの値pspとボリューム値vとが対応づけて登録されている。図18に示すように、ボリューム値vは、ピーク信号SPの値pspに略比例して大きくなるように設定されている。CPU301は、各操作子1から操作情報を受信すると、この操作情報に示されるピーク信号SPの値とボリューム管理テーブルTA2とを参照し、ボリューム値vを決定する。この結果、例えば、操作者が操作子1を上から下に小さく振り下ろした場合には制御対象となるパート(例えばメロディパート)の演奏音は小さくなり、逆に大きく振り下ろした場合には該パートの演奏音は大きくなる。このように、操作子1の操作を演奏音のボリュームに反映させるようにしても良い。なお、ピークの大きさをボリュームに反映させる点については単独演奏モードについても適用可能である。
Claims (5)
- 楽音の発音内容を示す発音イベントが複数のチャネルに配されている演奏データから前記各チャネルの発音イベントを順次読み出し、読み出した発音イベントを処理することによりアンサンブル演奏をする自動演奏装置において、
各操作者によって操作されると、操作状況に応じた操作信号及び当該操作子を識別するための識別情報を出力する複数の操作子と、
前記各操作子と前記各チャネルとの対応関係及び前記各操作子の主従関係とをあらわす操作関連情報を記憶する記憶手段と、
前記操作信号及び前記識別情報が前記各操作子から出力されると、前記操作関連情報を参照し、前記識別情報に対応するチャネルについて、次に発音すべき楽音の発音イベントを読み出して発音処理する発音処理手段と、
前記主となる操作子から操作信号が出力された出力時刻を検出するとともに、前回の出力時刻との時間間隔を算出する時間間隔算出手段と、
前記各チャネルの楽音の発音長を制御するためのテンポを記憶するテンポ記憶手段と、
前記時間間隔算出手段が算出した時間間隔が所定時間未満である場合には、当該時間間隔、および前記主となる操作子に対応するチャネルについて前回発音処理された発音イベントの音符の長さに基づきテンポを算出し、前記テンポ記憶手段に記憶されたテンポを更新する一方、当該時間間隔が前記所定時間以上である場合には、前記テンポ記憶手段に記憶されたテンポを更新しないテンポ更新手段と、
前記発音処理手段が処理をする発音イベントの発音長を、前記テンポ記憶手段に記憶されたテンポに対応した長さに制御する発音長制御手段と
を具備し、
前記発音処理手段は、前記従となる操作子からの操作信号が、所定時間以上出力されない場合には、当該操作子に対応するチャネルについては、次に当該操作子から操作信号が出力されるまでは、前記主となる操作子からの操作信号に応じて発音イベントを読み出して発音処理する
ことを特徴とする自動演奏装置。 - 前記従となる操作子に対応する発音イベントの位置が、前記発音処理手段によって次に処理される前記主となる操作子に対応する発音イベントの位置を越えないように前記発音処理手段による発音処理を制御する発音処理制御手段
をさらに具備することを特徴とする請求項1に記載の自動演奏装置。 - 前記発音処理制御手段は、前記従となる操作子から操作信号が出力された場合、当該時点における前記従となる操作子に対応する発音イベントの位置が前記発音処理手段によって次に処理される前記主となる操作子に対応する発音イベントの位置の直前まで達しているか否かを確認し、直前に達していない場合には、前記従となる操作子に対応する発音イベントの位置が前記発音処理手段によって次に処理される前記主となる操作子に対応する発音イベントの位置を越えない範囲で、前記操作信号に従って前記発音処理手段による発音処理を進める
ことを特徴とする請求項2に記載の自動演奏装置。 - 前記従となる操作子に対応する発音イベントの位置が、前記発音処理手段によって次に処理される前記主となる操作子に対応する発音イベントの位置よりも所定量以上遅れている場合、前記従となる操作子に対応する発音イベントの位置を前記主となる操作子に対応する発音イベントの位置までスキップさせる発音位置制御手段
をさらに具備することを特徴とする請求項1に記載の自動演奏装置。 - コンピュータを、
各操作者によって操作されると操作状況に応じた操作信号及び当該操作子を識別するための識別情報を出力する複数の操作子と複数のチャネルとの対応関係及び前記各操作子の主従関係とをあらわす操作関連情報を記憶する記憶手段と、
前記操作信号及び前記識別情報が前記各操作子から出力されると、前記操作関連情報を参照し、前記識別情報に対応するチャネルについて、次に発音すべき楽音の発音イベントを読み出して発音処理する発音処理手段と、
前記主となる操作子から操作信号が出力された出力時刻を検出するとともに、前回の出力時刻との時間間隔を算出する時間間隔算出手段と、
前記各チャネルの楽音の発音長を制御するためのテンポを記憶するテンポ記憶手段と、
前記時間間隔算出手段が算出した時間間隔が所定時間未満である場合には、当該時間間隔、および前記主となる操作子に対応するチャネルについて前回発音処理された発音イベントの音符の長さに基づきテンポを算出し、前記テンポ記憶手段に記憶されたテンポを更新する一方、当該時間間隔が前記所定時間以上である場合には、前記テンポ記憶手段に記憶されたテンポを更新しないテンポ更新手段と、
前記発音処理手段が処理をする発音イベントの発音長を、前記テンポ記憶手段に記憶されたテンポに対応した長さに制御する発音長制御手段
として機能させ、
前記発音処理手段は、前記従となる操作子からの操作信号が、所定時間以上出力されない場合には、当該操作子に対応するチャネルについては、次に当該操作子から操作信号が出力されるまでは、前記主となる操作子からの操作信号に応じて発音イベントを読み出して発音処理する
ことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008275958A JP4572980B2 (ja) | 2008-10-27 | 2008-10-27 | 自動演奏装置及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008275958A JP4572980B2 (ja) | 2008-10-27 | 2008-10-27 | 自動演奏装置及びプログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007001680A Division JP4241833B2 (ja) | 2007-01-09 | 2007-01-09 | 自動演奏装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009020539A JP2009020539A (ja) | 2009-01-29 |
JP4572980B2 true JP4572980B2 (ja) | 2010-11-04 |
Family
ID=40360155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008275958A Expired - Fee Related JP4572980B2 (ja) | 2008-10-27 | 2008-10-27 | 自動演奏装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4572980B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7383943B2 (ja) * | 2019-09-06 | 2023-11-21 | ヤマハ株式会社 | 制御システム、制御方法、及びプログラム |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000276141A (ja) * | 1999-03-25 | 2000-10-06 | Yamaha Corp | 電子楽器および電子楽器の制御装置 |
JP2001188535A (ja) * | 1999-12-28 | 2001-07-10 | Yamaha Corp | テンポ設定装置及び方法 |
JP2001195060A (ja) * | 2000-01-11 | 2001-07-19 | Yamaha Corp | 演奏インターフェイス |
JP2002023743A (ja) * | 2000-07-12 | 2002-01-25 | Yamaha Corp | 発音制御システム |
JP2002278552A (ja) * | 2001-03-22 | 2002-09-27 | Roland Corp | テンポ設定装置 |
JP2003122355A (ja) * | 2001-10-10 | 2003-04-25 | Kawai Musical Instr Mfg Co Ltd | 電子楽器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0876760A (ja) * | 1994-08-31 | 1996-03-22 | Kawai Musical Instr Mfg Co Ltd | 自動演奏装置のテンポスピード制御装置 |
JPH09258649A (ja) * | 1996-03-19 | 1997-10-03 | Sukeo Kimura | 合奏・合唱用の体感リズムテンポ親子調整器 |
-
2008
- 2008-10-27 JP JP2008275958A patent/JP4572980B2/ja not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000276141A (ja) * | 1999-03-25 | 2000-10-06 | Yamaha Corp | 電子楽器および電子楽器の制御装置 |
JP2001188535A (ja) * | 1999-12-28 | 2001-07-10 | Yamaha Corp | テンポ設定装置及び方法 |
JP2001195060A (ja) * | 2000-01-11 | 2001-07-19 | Yamaha Corp | 演奏インターフェイス |
JP2002023743A (ja) * | 2000-07-12 | 2002-01-25 | Yamaha Corp | 発音制御システム |
JP2002278552A (ja) * | 2001-03-22 | 2002-09-27 | Roland Corp | テンポ設定装置 |
JP2003122355A (ja) * | 2001-10-10 | 2003-04-25 | Kawai Musical Instr Mfg Co Ltd | 電子楽器 |
Also Published As
Publication number | Publication date |
---|---|
JP2009020539A (ja) | 2009-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8502057B2 (en) | Electronic musical instrument | |
JPH09160551A (ja) | 電子楽器 | |
JP3922224B2 (ja) | 自動演奏装置及びプログラム | |
JP2006243102A (ja) | 演奏補助装置及び演奏補助プログラム | |
JP2005266350A (ja) | 演奏情報表示装置およびプログラム | |
JP5228315B2 (ja) | 自動伴奏生成装置および自動伴奏生成方法を実現するためのプログラム | |
JP4572980B2 (ja) | 自動演奏装置及びプログラム | |
JP4241833B2 (ja) | 自動演奏装置及びプログラム | |
JP4858504B2 (ja) | カラオケ装置 | |
JP2010117419A (ja) | 電子楽器 | |
JP2000221967A (ja) | 電子楽器等における設定制御装置 | |
JP5590350B2 (ja) | 楽曲演奏装置及び楽曲演奏用プログラム | |
JP2006031056A (ja) | 自動演奏装置 | |
JP2017015957A (ja) | 演奏記録装置およびプログラム | |
JP5164401B2 (ja) | 自動演奏装置および自動演奏プログラム | |
JP6427447B2 (ja) | カラオケ装置 | |
JP2007072387A (ja) | 演奏補助装置及びプログラム | |
JP2002182647A (ja) | 電子楽器 | |
JP3788457B2 (ja) | 自動演奏装置 | |
JP3760940B2 (ja) | 自動演奏装置 | |
JP6343911B2 (ja) | 電子楽器、プログラム及び発音音高選択方法 | |
JP6264660B2 (ja) | 音源制御装置、カラオケ装置、音源制御プログラム | |
JP6427439B2 (ja) | カラオケ装置 | |
JP3931874B2 (ja) | 自動演奏装置 | |
JP2005189899A (ja) | 電子楽器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081027 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091201 |
|
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: 20100720 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100802 |
|
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: 20130827 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |