JPH07199930A - 自動演奏装置 - Google Patents

自動演奏装置

Info

Publication number
JPH07199930A
JPH07199930A JP5353288A JP35328893A JPH07199930A JP H07199930 A JPH07199930 A JP H07199930A JP 5353288 A JP5353288 A JP 5353288A JP 35328893 A JP35328893 A JP 35328893A JP H07199930 A JPH07199930 A JP H07199930A
Authority
JP
Japan
Prior art keywords
performance information
timing
variable
performance
time
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.)
Granted
Application number
JP5353288A
Other languages
English (en)
Other versions
JP3119061B2 (ja
Inventor
Tomoyuki Kumagai
智之 熊谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=18429826&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPH07199930(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP05353288A priority Critical patent/JP3119061B2/ja
Publication of JPH07199930A publication Critical patent/JPH07199930A/ja
Application granted granted Critical
Publication of JP3119061B2 publication Critical patent/JP3119061B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【目的】 楽音の発音タイミングを精密に、かつリアル
タイムに制御できる自動演奏装置を提供する。 【構成】 自動演奏メモリ2は、複数トラックの演奏情
報を記憶する。CPU6は、この演奏情報記憶手段から
演奏情報を読出し、各演奏情報の発音タイミングが基準
となるビートタイミングに収束するように、該発音タイ
ミングを演算する。そして、発音タイミングが演算され
た後、この発音タイミングに相当する時間が経過する
と、この発音タイミングに対応する演奏情報がトーンジ
ェネレータ3を介して再生される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、演奏情報に基づいて
自動演奏を行う自動演奏装置に関する。
【0002】
【従来の技術】従来より、シーケンサ等の自動演奏装置
においては、「クォンタイズ」という機能を有するもの
がある。この機能は、図11に示すように、入力された
演奏情報の発音タイミングを、クロックのジャストタイ
ミングに合せるものである。ところで、一般的な自動演
奏装置におけるクォンタイズ機能は、楽曲の最初から最
後に至るまで演奏情報を自動的に編集し、しかる後に楽
曲を再生するものであるから、楽曲を聞きながらリアル
タイムにクォンタイズの強さ等を調節することができな
かった。
【0003】一方、特開平3−282591号公報によ
れば、演奏情報を再生する際のクロック周期を、ビート
タイミング附近では短く、それ以外の場合は長く設定す
ることにより、クォンタイズをリアルタイムに実現する
技術が開示されている。すなわち、元々の演奏情報の発
音タイミングは図12の横軸に示すようになっている
が、上述したようにクロック周期を制御することによ
り、同図の縦軸に示すタイミングで各発音タイミングを
制御する。これにより、楽曲を聞きながらリアルタイム
にクォンタイズの強さ等を調節することが可能になって
いる。また、従来より、ジャズ演奏においては、「スイ
ング」という奏法が知られている。これは、図6に示す
ように、強拍における演奏タイミングを本来のタイミン
グに保持する一方、弱拍における演奏タイミングを若干
遅らせるものである。
【0004】
【発明が解決しようとする課題】ところで、演奏情報は
一般的に複数のトラックから構成されており、これを再
生することによって多種多様な楽音によるアンサンブル
を行うことが可能になっている。その際、一部のトラッ
クに対してのみクォンタイズを施したい場合もある。し
かし、上記特開平3−282591号公報に開示された
技術によれば、クロック周期自体を変化させるため、一
部のトラックについてのみクォンタイズを施すことは不
可能であった。また、複数の全トラックに対して自動的
に同様にスイングを施す自動演奏装置はあったが、複数
トラックのそれぞれに独立してスイングを施すことはで
きなかった。この発明は上述した事情に鑑みてなされた
ものであり、楽音の発音タイミングを精密に、かつリア
ルタイムに制御できる自動演奏装置を提供することを目
的としている。
【0005】
【課題を解決するための手段】上記課題を解決するため
請求項1に記載の構成にあっては、各々が楽音発生タイ
ミングデータを含む複数トラックの演奏情報を記憶する
演奏情報記憶手段と、この演奏情報記憶手段から演奏情
報を読出す読出し手段と、この読出し手段によって読出
された演奏情報の発音タイミングが、対応する楽音発生
タイミングデータと比較して、対応するトラックの基準
となるビートタイミングに収束するように、該発音タイ
ミングを演算する演算手段と、前記発音タイミングが演
算された後、この発音タイミングに相当する時間が経過
すると、この発音タイミングに対応する演奏情報を再生
する再生手段とを具備することを特徴としている。
【0006】また、請求項2に記載の構成にあっては、
各々が楽音発生タイミングデータを含む複数トラックの
演奏情報を記憶する演奏情報記憶手段と、この演奏情報
記憶手段から演奏情報を読出す読出し手段と、この読出
し手段によって読出された演奏情報の楽音発生タイミン
グデータが所定のトラックの所定の時間範囲に属する場
合は、再生時刻が遅れるように発音タイミングを演算す
る演算手段と、前記発音タイミングが演算された後、こ
の発音タイミングに相当する時間が経過すると、この発
音タイミングに対応する演奏情報を再生する再生手段と
を具備することを特徴としている。
【0007】
【作用】請求項1に記載の構成にあっては、読出し手段
が演奏情報記憶手段から演奏情報を読出すと、発音タイ
ミングがビートタイミングに収束するように演算手段は
発音タイミングを演算する。そして、再生手段は、この
発音タイミングに相当する時間が経過すると、この発音
タイミングに対応する演奏情報を再生するから、リアル
タイムに楽音にクォンタイズが施される。
【0008】また、請求項2に記載の構成にあっては、
読出し手段が演奏情報記憶手段から演奏情報を読出す
と、この演奏情報の楽音発生タイミングデータが所定の
トラックの所定の時間範囲に属する場合には、演算手段
は再生時刻が遅れるように発音タイミングを演算する。
そして、再生手段は、この発音タイミングに相当する時
間が経過すると、この発音タイミングに対応する演奏情
報を再生するから、リアルタイムに楽音にスイングが施
される。
【0009】
【実施例】A.実施例の構成 以下、図1を参照してこの発明の一実施例による電子楽
器の構成を説明する。図において1は操作子群であり、
演奏者によって操作される鍵盤や音色操作子、表示器等
が設けられ、これら各種の操作子に対する操作情報をバ
ス9を介して出力するとともに、バス9を介して供給さ
れた情報を表示器に表示する。また、操作子群1におい
ては、(a)クォンタイズ値(クォンタイズを行うビート
タイミングの長さ)の設定を指定するクォンタイズ値設
定スイッチと、(b)クォンタイズ強さ(発音タイミング
がビートタイミングに収束する度合い)の設定を指示す
るクォンタイズ強さ設定スイッチと、(c)スイング率
(スイングの強さ)の設定を指示するスイング率設定ス
イッチと、(d)演奏情報の記憶を指定する記憶スイッチ
と、(e)自動演奏の開始/終了を指示するRUNスイッ
チとが設けられている。なお、上述した各スイッチのう
ち、記憶スイッチはロック式のスイッチであり、他のス
イッチはアンロック式のスイッチである。
【0010】2は自動演奏メモリであり、自動演奏に用
いられる演奏情報が記憶される。3はトーンジェネレー
タであり、バス9を介して供給された演奏情報に基づい
て楽音信号を合成する。合成された楽音信号は、サウン
ドシステム4を介して発音される。6はCPUであり、
プログラムメモリ7内に格納された制御プログラムに基
づいて他の構成要素を制御する。5はタイマであり、C
PU6に対して所定時間毎にタイマ割込を発生させる。
8はワーキングメモリであり、CPU6における各種の
処理に用いられる。
【0011】B.実施例の動作 B−1.実施例の全体動作 次に本実施例の動作について説明する。まず、本実施例
の電子楽器の電源が投入されると、図3,図4に示すメ
インルーチンが起動される。これらの図において処理が
開始されると、まず、ステップSP1において所定の初
期設定が行われる。次に、ステップSP2〜SP19の
処理が繰り返し実行されるが、ステップSP2,5,
8,11,13においては、操作子群1内の所定の各ス
イッチ(クォンタイズ値設定スイッチ、クォンタイズ強
さ設定スイッチ、スイング率設定スイッチ、記憶スイッ
チ、およびRUNスイッチ)の操作状態が判定される。
すなわち、これらのステップが実行された際に対応する
スイッチのオンイベントが有ると、これらのステップに
おいて「YES」と判定され対応する処理が実行され
る。一方、オンイベントが無ければ「NO」と判定され
当該処理が実行されなくなる。なお、操作子群1の操作
状態にかかわらず行うべきその他の処理はステップSP
19において実行される。以下、各スイッチのオンイベ
ントが有った場合の処理を各々説明する。
【0012】記憶スイッチのオンイベントに対する処
本実施例においては、自動演奏メモリ2に記憶された演
奏情報に対してクォンタイズあるいはスイングを施すの
であるが、その前提として、自動演奏メモリ2に処理対
象となる演奏情報を記憶させる必要がある。この演奏情
報はMIDI信号等により外部から入力しても良く、操
作子群1に設けられた鍵盤の演奏によっても入力しても
よい。後者の場合、演奏者は操作子群1に設けられた記
憶スイッチをオン状態に設定する。記憶スイッチがオン
状態に設定されると、ステップSP11が実行された場
合に「YES」と判定され、処理がステップSP12に
進み、演奏情報記憶処理が行われる。すなわち、ステッ
プSP12においては、操作子群1における新たな演奏
イベント(鍵盤、音色設定操作子等のイベント)が随時
検出され、これらイベントに基づいて、演奏情報が生成
され、自動演奏メモリ2に記憶される。演奏者は演奏情
報の入力が終了すると、記憶スイッチをオフ状態にす
る。これにより、以後ステップSP11が実行された場
合は「NO」と判定され、処理がステップSP13に進
む。
【0013】クォンタイズ値設定スイッチのオンイベ
ントに対する処理 演奏者は自動演奏メモリ2に記憶された演奏情報を適宜
再生することができる(詳細は後述する)が、その際、
楽音にクォンタイズを施す場合には、クォンタイズ値設
定スイッチを押下する。クォンタイズ値設定スイッチに
オンイベントが発生すると、次に処理がステップSP2
に進んだ際に「YES」と判定され、処理はステップS
P3に進む。ステップSP3においては、演奏者によっ
て、クォンタイズ値を設定すべきトラックナンバが指定
され、指定された値が変数 TRKに記憶される。なお、本
実施例にあっては演奏情報に最大「16」のトラックを
設けることが可能であり、各トラックは「0」〜「1
5」のトラックナンバに対応している。
【0014】次に、処理がステップSP4に進むと、演
奏者によってクォンタイズ値が設定される。ここで設定
されるクォンタイズ値は、下表1の左欄に示す何れかで
ある。また、ステップSP4においては、設定されたク
ォンタイズ値に応じて、下表1右欄のクロック値が変数
QVCL(TRK) に代入される。すなわち、「4分音符」の
クロック数を「96」とした場合に、クォンタイズ値に
係る音符の長さに応じたクロック値が設定されることに
なる。
【0015】
【表1】
【0016】クォンタイズ強さ設定スイッチのオンイ
ベントに対する処理 次に、クォンタイズ強さ設定スイッチにオンイベントが
発生すると、次にステップSP5が実行された際に「Y
ES」と判定され、処理はステップSP6に進む。ステ
ップSP6においては、演奏者によって、クォンタイズ
強さを設定すべきトラックナンバが指定され、指定され
た値が変数 TRK に記憶される。次に、処理がステップ
SP7に進むと、演奏者によって「0」〜「1.0」の
範囲内でクォンタイズ強さ QSTR(TRK) が設定される。
図5においては、クォンタイズ強さ QSTR(TRK) に応じ
て、演奏情報の発音タイミングがビートタイミングに収
束する様子が示されている。同図(a)は、クォンタイズ
値が「4分音符」である場合のビートタイミングである
(なお、図中の8分音符は発音タイミングを示す)。同
図(c)はクォンタイズを施す前の演奏情報の発音タイミ
ングの一例である。
【0017】詳細は後述するが、ここでクォンタイズ強
さ QSTR(TRK) を「0」に設定すると、クォンタイズが
全く施されない状態になる。また、クォンタイズ強さQS
TR(TRK) を「1.0」に設定すると、同図(e)に示すよ
うに、各演奏情報の発音タイミングは最も近接するビー
トタイミングに一致する。また、クォンタイズ強さ QST
R(TRK) を「0.5」に設定すると、各演奏情報の発音
タイミングは、「ビートタイミング±0.25T(但し
Tはビートタイミングの周期)」の範囲に収束する。こ
のように、所望のクォンタイズ強さ QSTR(TRK) が設定
されると、処理はステップSP8に進み、ステップSP
2〜SP19のループが繰り返される。
【0018】スイング率設定スイッチのオンイベント
に対する処理 演奏者は、演奏情報にスイングを施す場合には、操作子
群1においてスイング率設定スイッチを押下する。スイ
ング率設定スイッチのオンイベントが検出されると、次
に処理がステップSP8に進んだ際に「YES」と判定
され、処理がステップSP9に進む。ステップSP9に
おいては、演奏者によって、スイング率を設定すべきト
ラックナンバが指定され、指定された値が変数 TRK に
記憶される。次に、処理がステップSP10に進むと、
演奏者によって「0.5」〜「0.75」の範囲内でス
イング率 SFLVL(TRK) が設定される。
【0019】ここで、スイング率 SFLVL(TRK) が「0.
5」である場合は全くスイングを行わない場合に等し
く、その値が大となるとともに弱拍における発音タイミ
ングが遅れ、「0.75」の場合はビート周期の半周期
相当だけ弱拍における発音タイミングが遅れる。なお、
その処理の詳細については後述する。このように、所望
のスイング率 SFLVL(TRK) が設定されると、処理はステ
ップSP11に進み、ステップSP2〜SP19のルー
プが繰り返される。
【0020】RUNスイッチのオンイベントに対する
処理 演奏者は、自動演奏を開始または停止する場合は、操作
子群1においてRUNスイッチを押下する。RUNスイ
ッチのオンイベントが検出されると、次に処理がステッ
プSP13に進んだ際に「YES」と判定され、処理が
ステップSP14に進む。ステップSP14において
は、フラグRUNの値が反転される。ここで、フラグR
UNは“1”または“0”の値をとるフラグであり、
“1”の場合は自動演奏が実行中であることを示し、
“0”の場合は自動演奏が停止中であることを示す。な
お、フラグRUNはステップSP1の初期設定において
は“0”に設定されている。次に、処理がステップSP
15に進むと、フラグRUNは“1”であるか否かが判
定される。
【0021】ここで、自動演奏の実行中にRUNスイッ
チのオンイベントが発生すると、ステップSP14にお
いてフラグRUNが“1”から“0”に変更されるか
ら、ステップSP15においては「NO」と判定され
る。この場合、処理はステップSP18に進み、自動演
奏音消音処理が行われる。すなわち、トーンジェネレー
タ3の各チャンネルに対してノートオフ信号が供給され
る。
【0022】一方、自動演奏を行っていない状態でRU
Nスイッチにオンイベントが発生すると、ステップSP
14においてフラグRUNが“0”から“1”に変更さ
れるから、ステップSP15においては「YES」と判
定され、処理がステップSP16に進む。ステップSP
16においては、タイマ割込ルーチン(図7,図8)で
用いられる各種の変数に対して初期設定が行われる。な
お、その詳細については後述する。ところで、本実施例
においては各トラックに対して各々ポインタ変数を設定
し、このポインタ変数によって自動演奏メモリ2内の読
出しアドレスが決定される。次に、処理がステップSP
17に進むと、全てのトラックのポインタが、各トラッ
クの先頭アドレスに設定される。以上の処理が終了する
と、処理はステップSP19に進み、ステップSP2〜
SP19のループが繰り返される。
【0023】B−2.タイマ割込処理 本実施例にあっては、4分音符の長さの「1/96」毎
に、CPU6にタイマ割込が発生し、これによって自動
演奏が行われる。その詳細を図7,図8を参照し説明す
る。タイマ割込が発生すると、図7において処理はステ
ップSPA1に進み、フラグRUNが“1”であるか否
かが判定される。フラグRUNが“0”であれば、自動
演奏を行っていない状態であるため、なんら処理を行わ
ずメインルーチン(図3,図4)に処理が戻る。フラグ
RUNが“1”であれば「YES」と判定され処理がス
テップSPA2に進む。ステップSPA2においては、
変数 TR が「0」に設定される。なお、変数 TR は処理
対象となるトラックナンバを示すものであり、以下「ト
ラックナンバ TR」という。
【0024】次に、処理がステップSPA3に進むと、
変数 PTM(TR) (この時点ではPTM(0))が「0」以下で
あるか否かが判定される。ところで、ステップSPA3
は、先にステップSP14(図4参照)においてフラグ
RUNが“1”に設定された場合にのみ実行されるが、
フラグRUNが“1”になった場合にはステップSP1
6において変数 PTM(i) (但し、i= 0 〜 15)が
「0」に設定される。従って、その後最初にステップS
PA3が実行されると「YES」と判定され処理はステ
ップSPA4に進む。
【0025】ステップSPA4においては、トラックナ
ンバ TR のポインタで指定されるデータが、自動演奏メ
モリ2から読出される。ここで、先にステップSP17
が実行された際に、各トラックナンバについてポインタ
が先頭に設定されたから、ここではトラックナンバ
「0」の最初の演奏情報が自動演奏メモリ2から読出さ
れることになる。次に、処理がステップSPA5に進む
と、当該ポインタが、次の演奏情報を指すようにインク
リメントされる。
【0026】ここで、本実施例における演奏情報のフォ
ーマットを図2を参照し説明する。演奏情報は、発音デ
ータ20と、時間データ30と、エンドデータ40とに
大別される。発音データ20は、識別コード21とキー
コード22と発音時間23とから構成されている。識別
コード21は、この演奏情報(発音データ20)が発音
データであることを示すものであり、キーコード22は
発音すべき音高を示すものであり、発音時間23は、こ
の音高に対して発音を行うべき時間を示すものである。
【0027】また、時間データ30は、識別コード31
とデュレーション32とから構成されている。識別コー
ド31は、この演奏情報(時間データ30)が時間デー
タであることを示すものであり、デュレーション32は
前回の発音イベントから次の発音イベントが生ずるまで
の時間を指定するものである。また、エンドデータ40
は、対応するトラックについて、演奏情報が終了したこ
とを示すものである。以下の処理においては、演奏情報
の種類に応じて処理が分岐するため、場合を分けて動作
を説明する。
【0028】発音データを読出した場合の処理 処理がステップSPA6に進むと、ステップSPA4に
おいて読出された演奏情報がエンドデータであるか否か
が判定される。読出された演奏情報が発音データである
と仮定すると、ここで「NO」と判定され、処理はステ
ップSPA7に進む。ステップSPA7では、読出され
た演奏情報が時間データであるか否かが判定される。こ
こにおいても「NO」と判定され処理はステップSPA
16に進む。ステップSPA16においては、図9に示
す発音処理サブルーチンが呼出される。
【0029】図9において処理が開始されると、ステッ
プSPA51において、キーコード22の内容が変数 K
C に代入される。次に、ステップSPA52において
は、発音時間23の内容が変数 GT(TR) に代入される。
次に、処理がステップSPA53に進むと、キーオン信
号、変数 KC(キーコード)およびトラックナンバ TRが
トーンジェネレータ3に供給される。トーンジェネレー
タ3においては、これらのデータに基づいて楽音信号が
合成され、合成された楽音信号はサウンドシステム4を
介して発音される。
【0030】以上の処理が終了すると、タイマ割込ルー
チン(図7,図8)のステップSPA3に処理が戻る。
ここで変数 PTM(TR) は依然として「0」であるから処
理はステップSPA4に進み、次の演奏情報が読出され
る。そして、ステップSPA5を介して、トラックナン
バ TR に係るポインタがインクリメントされる。図2に
示す例にあっては、発音データ20の後に直ちに時間デ
ータ30が設けられているが、和音を発音する場合等に
おいては、複数の発音データの後に時間データが設けら
れることもある。この場合には、これら複数の発音デー
タに対して発音処理(ステップSPA16)が繰り返さ
れることになる。
【0031】時間データを読出した場合の処理 ステップSPA4で読出された演奏情報が時間データで
あれば、処理はステップSPA6、SPA7を介してス
テップSPA8に進み、デュレーション32の内容が変
数 TM に代入される。次に処理がステップSPA9に進
むと、クロック値 QVCL(TR) が「0」以上であるか否か
が判定される。すなわち、クォンタイズを行う場合はク
ロック値 QVCL(TR) が「1」以上の値になる(表1参
照)から、ステップSPA9においてはクォンタイズを
行うか否かが判定される。ここで、ステップSPA9の
判定内容に応じた処理を各々説明する。
【0032】(a)クォンタイズを行わない場合の処理 クォンタイズを行わない場合はステップSPA9におい
て「NO」と判定され、処理はステップSPA17に進
む。ステップSPA17においては、変数PTM(TR) に対
して、変数 TM の内容(すなわちデュレーション32の
内容)が加算される。これにより、変数 PTM(TR) の内
容は「1」以上になる。従って、次に処理がステップS
PA3に進むと、ここで「NO」と判定されるから処理
はステップSPA13に進み、図10に示すカウントサ
ブルーチンが呼出される。
【0033】図10において処理が開始されると、ステ
ップSPA61において、変数 PTM(TR)が「1」だけデ
クリメントされる。従って、変数 PTM(TR)の内容は、
「TM-1」になる。次に処理がステップSPA62に進む
と、変数 GT(TR) が「0」以下であるか否かが判定され
る。変数 GT(TR) には、先にステップSPA52が実行
された際に発音時間23の内容が代入されている。従っ
て、この時点では変数GT(TR) は「1」以上であるから
「YES」と判定され、処理はステップSPA64に進
む。ステップSPA64においては、変数 GT(TR) の内
容が「1」だけデクリメントされ、処理がタイマ割込ル
ーチン(図7,図8)に戻る。
【0034】ステップSPA14にあっては、トラック
ナンバ TR が「1」だけインクリメントされる。トラッ
クナンバ TR は、「0」であったから、ここで「1」に
設定される。次にステップSPA15を介して処理がス
テップSPA3に進むと、トラックナンバ「1」のトラ
ックに対して、上述したのと同様の処理が行われる。こ
のように、ステップSPA14を介してトラックナンバ
TR がインクリメントされ、トラックナンバ 「1」〜
「15」の各トラックに対する処理が行われる。ステッ
プSPA15においては、トラックナンバ TR が「1
6」になったか否かが判定され、ここで「YES」と判
定されると処理がメインルーチン(図3,図4)に戻
る。
【0035】以降、所定時間毎にタイマ割込が発生する
が、上述したようにステップSPA17およびSPA1
4が実行されたことにより、トラックナンバ TR =
「0」に対して、変数 PTM(TR) は「TM −1」に設定さ
れている。従って、トラックナンバ TR =「0」の時に
ステップSPA3が実行されると「NO」と判定され、
ステップSPA13を介して、変数 PTM(TR) が「TM −
2」に設定される。このように、タイマ割込が発生する
毎に変数 PTM(TR) が「1」づつデクリメントされる。
そして、タイマ割込が「TM 」回繰り返され、変数 PTM
(TR) が「0」になると、ステップSPA3において
「YES」と判定され、ステップSPA4を介して次の
演奏情報が読出される。すなわち、変数 PTM(TR) は、
トラックナンバ TRについて次の演奏情報を読出すまで
の時間(タイマ割込回数)に対応している。そこで、以
下変数 PTM(TR) を「残余デュレーション」といい、変
数 TM を「デュレーション」という。
【0036】(b)クォンタイズを行う場合の処理 一方、クォンタイズを行う場合はステップSPA9にお
いて「YES」判定され、処理はステップSPA10に
進む。ステップSPA10においては、変数QCNT1(TR)
に対してデュレーション TM が加算される。ここで、変
数 QCNT1(i)(但し、i= 0 〜 15)には、ステップS
P16(図4参照)において、各々クロック値 QVCL(i)
の半値に初期設定されている。一例として、クォンタ
イズ値が「4分音符」であれば、クロック値 QVCL(TR)
は「96」であるから、変数 QCNT1(TR) は「48」に
初期設定される。また、デュレーション TM が「16分
音符」に相当する「24」(=96/4)であったとす
ると、ステップSPA10においては、変数 QCNT1(TR)
に「72」が代入される。
【0037】また、ステップSPA10においては、残
余デュレーション PTM(TR) に「TM× ( 1-QSTR(TR) )」
が加算される。上述したように、残余デュレーションPT
M(i) (但し、i= 0 〜 15)はステップSP16にお
いて「0」に初期設定されているから、この時点では残
余デュレーション PTM(TR) に「 TM × ( 1-QSTR(TR)
)」が代入されることになる。なお、ここでクォンタイ
ズ強さQSTR(TR)が「0」である場合には、かかる処理
は、上述のステップSPA17のものと同様になる。こ
のステップSPA10においては、クォンタイズ強さ Q
STR(TR)の値に応じて残余デュレーション PTM(TR) の値
が変更される。上述の例(クロック値 QVCL(TR)=9
6,デュレーション TM =24)において、さらにクォ
ンタイズ強さ QSTR(TR) が「0.5」であったと仮定す
ると、残余デュレーションPTM(TR) は「12」に設定さ
れる。
【0038】また、ステップSPA10においては、変
数 QCNT2(TR) にクォンタイズ強さQSTR(TR) が加算され
る。変数 QCNT2(i) (但し、i= 0 〜 15)には、ステ
ップSP16において、クロック値 QVCL(i) とクォン
タイズ強さ QSTR(i) との乗算結果が代入されている。
上述の例( クロック値 QVCL(TR)=96,デュレーショ
ン TM =24,クォンタイズ強さ QSTR(TR) =0.5)
においては、ステップSPA10が実行される前の変数
QCNT2(TR) の初期値は「48」(=96×0.5)で
あって、ステップSPA10が実行された後の 変数QCN
T2(TR) は「60」(=48+24×0.5)になる。
【0039】次に、処理がステップSPA11に進む
と、変数 QCNT1(TR) がクロック値QVCL(TR) によって整
数レベルで除算され、その商が変数 QTT に代入される
とともに、余りが変数 SRP に代入される。上記例にあ
っては、クロック値 QVCL(TR)は「96」であり、変数
QCNT1(TR) は「72」であったから、変数 QTT は
「0」になり、変数 SRP は「72」になる。次に、処
理がステップSPA12に進むと、変数 QTT は「0」
より大きいか否かが判定される。上記例によれば、変数
QTT は「0」であるから「NO」と判定され、ステッ
プSPA3を介して処理がステップSPA13に進む。
【0040】以下、タイマ割込が発生すると、当該トラ
ックナンバ TR に対しては、ステップSPA3を介して
処理がステップSPA13に進み、残余デュレーション
PTM(TR) が、デクリメントされつつカウント動作が実
行される。残余デュレーション PTM(TR) が「0」にな
った後、ステップSPA4において発音データが読出さ
れると、ステップSPA6,7を介して処理がステップ
SPA16に進み、新たに読出された発音データに対す
る発音処理が行われる。上述の例( クロック値 QVCL(T
R)=96,デュレーション TM =24,クォンタイズ強
さ QSTR(TR) =0.5)においては、デュレーション T
M が「24」であるにもかかわらず残余デュレーション
PTM(TR) は「12」に設定された。図5(c),(d)を
参照して説明すると、原演奏情報において時刻t2 (時
刻t0 から「24」クロック経過後した時刻)に発音さ
れるようにデュレーションが設定されている発音データ
は、かかるクォンタイズが施されることにより、時刻t
1(時刻t0 から「12」クロック経過後した時刻)に
発音されることになる。すなわち、かかる楽音の発音タ
イミングは、ビートタイミングである時刻t0 に向かっ
て収束したことになる。
【0041】ステップSPA16における発音処理が行
われた後、ステップSPA3〜7を介して処理がステッ
プSPA8に進むと、次のデュレーション TM が自動演
奏メモリ2から読出される。図5(c)の例によれば、次
の発音タイミングは時刻t2から「48」クロック経過
した時刻t6 である。すなわち、読出されたデュレーシ
ョン TM は「48」である。次に、ステップSPA9を
介して処理がステップSPA10に進むと、変数 QCNT1
(TR) にデュレーション TM が加算される。変数 QCNT1
(TR) は、先にステップSPA18において「72」に
設定されたから、ここで「120」に設定される。ま
た、残余デュレーション PTM(TR) は、これまでステッ
プSPA14が複数回実行されたことにより「0」にな
っているから、今回は「24」(0+48×0.5)に
設定される。また、変数 QCNT2(TR)は、前回ステップS
PA10が実行された際に「60」に設定されたから、
今回は「84」(=60+48×0.5)に設定され
る。
【0042】次に、処理がステップSPA11に進む
と、変数 QCNT1(TR)がクロック値QVCL(TR) で除算さ
れ、商が変数 QTT に、余りが変数 SRP に代入される。
上記例では変数 QCNT1(TR)は「120」、クロック値 Q
VCL(TR) は「96」であるから、変数 QTT は「1」
に、変数 SRP は「24」に、それぞれ設定される。次
に、処理がステップSPA12に進むと、変数 QTT は
「1」であるから「YES」と判定され、処理がステッ
プSPA18に進む。このように、ステップSPA12
において「YES」と判定される場合は、原演奏情報の
ビートが強拍から弱拍へ、または弱拍から強拍へと少な
くとも1回変化した場合である。
【0043】ステップSPA18においては、変数 QCN
T1(TR) に変数 SRP (上記例では「24」)が代入され
る。次に、処理がステップSPA24に進むと、変数 Q
TTが奇数であるか否かが判定される。変数 QTT は、前
回このステップの処理が行われた後に何回強拍から弱拍
へ、または弱拍から強拍へ変化したかを示す。従って、
変数 QTT が奇数でない(すなわち偶数である)という
ことは、前回このステップの処理が行われた時と同じ
強,弱の拍である、ということになり、この場合は処理
がステップSPA23に進む。一方、変数 QTT が奇数
のときは、前回のこのステップの処理が行われた時と異
なる強,弱の拍であることであり、この場合は処理はス
テップSPA19に進む。
【0044】処理がステップSPA19に進むと、フラ
グ FSFL(TR) の内容が反転される。なお、フラグ FSFL
(i) (但し、i= 0 〜 15)は、ステップSP16にお
いて、“0”に設定されている。従って、今回はフラグ
FSFL(TR) は“1”に設定される。ここで、ステップS
PA19が実行される条件は、ステップSPA24にお
いて「YES」と判定されること、すなわち「ビートの
強拍/弱拍が切り替わること」である。従って、フラグ
FSFL(TR) が“0”の場合は次の発音は強拍であり、
“1”の場合は次の発音は弱拍になることが判る。
【0045】次に、処理がステップSPA20に進む
と、フラグ FSFL(TR) が“1”であるか否か、すなわち
演奏情報が弱拍のものであるか否かが判定される。上記
例では「YES」と判定され、処理がステップSPA2
1に進む。ステップSPA21においては、残余デュレ
ーション PTM(TR) に対して変数 SFLTM(TR) が加算され
る。ところで、変数 SFLTM(i) (但し、i= 0 〜 15)
は、ステップSP16において、「QVCL(i)×2×(SFLV
L(i)-0.5)」に初期設定されている。上記例においては
クロック値 QVCL(TR) は「96」であったが、さらにス
テップSP10(図3参照)において、スイング率 SFL
VL(TR) が「0.5」に設定されたと仮定すると、遅延
クロック数 SFLTM(TR) は「0」に初期設定されること
になる。
【0046】従って、上記例にあっては、ステップSP
A21において実質的な処理が行われず、処理がステッ
プSPA23に進む。ステップSPA23にあっては、
残余デュレーション PTM(TR) に対して、クロック値 QV
CL(TR) とクォンタイズ強さQSTR(TR) の乗算結果が加算
される。すなわち、残余デュレーション PTM(TR) は、
「72」(24+96×0.5)に設定される。そし
て、以上の処理が終了すると、処理がステップSPA3
に戻る。図5(c),(d)を参照して説明すると、原演奏
情報において時刻t6 (時刻t2 から「48」クロック
経過後した時刻)に発音されるようにデュレーションが
設定されている発音データは、かかるクォンタイズが施
されることにより、時刻t7 (時刻t1 から「72」ク
ロック経過後した時刻)に発音されることになる。すな
わち、かかる楽音の発音タイミングは、最も近接するビ
ートタイミングである時刻t10 に向かって収束したこ
とになる。
【0047】スイングに対する処理 上述の例にあっては、スイング率 SFLVL(TR) が「0.
5」であることとしたため、ステップSPA20〜22
において実質的に処理は行われなかったが、ステップS
P10において、「0.5」を越え「0.75」以下の
スイング率SFLVL(i) (但し、i= 0 〜 15)が設定さ
れた場合には、ここで演奏情報にスイング効果が施され
る。その詳細を以下説明する。
【0048】まず、スイング率 SFLVL(TR) が設定され
た後、ステップSP16が実行されると、変数 SFLTM
(i) (但し、i= 0 〜 15)は、「QVCL(i)×2×(SFLV
L(i)-0.5)」に設定される。例えば、スイング率 SFLVL
(TR) が「0.6」に設定されたと仮定すると、「QVCL
(i)×2×(SFLVL(i)-0.5)」は「19.2」(96×2
×(0.6−0.5))になる。但し、ステップSP1
6においては、遅延クロック数 SFLTM(TR) の小数部は
四捨五入され、その結果、遅延クロック数 SFLTM(TR)
は「19」に設定されることになる。
【0049】次に、タイマ割込ルーチン(図7,図8)
において処理がステップSPA20に進むと、フラグ F
SFL(TR) に基づいて、次の発音は強拍であるのか弱拍で
あるのかが判定される。ところで、楽曲の最初のビート
は強拍であるから、最初に発生するビートの変化は、強
拍から弱拍への変化である。従って、ステップSPA2
0において「YES」と判定され、処理はステップSP
A21に進む。ステップSPA21においては、残余デ
ュレーション PTM(TR) に対して、遅延クロック数 SFLT
M(TR) が加算される。これにより、以後、弱拍における
発音タイミングは、遅延クロック数 SFLTM(TR) に相当
する時間だけ遅延する。
【0050】次に、ビートが弱拍から強拍に変化する場
合は、再びステップSPA12において「YES」と判
定され、ステップSPA19を介して、フラグ FSFL(T
R) が“0”に設定される。従って、処理はステップS
PA20を介してステップSPA22に進む。ステップ
SPA22においては、残余デュレーション PTM(TR)か
ら遅延クロック数 SFLTM(TR) が減算される。すなわ
ち、先にステップSPA21が実行された際に残余デュ
レーション PTM(TR) に遅延クロック数 SFLTM(TR) が加
算されていたのに対し、今回は減算されるから、楽音の
発音タイミングは本来のものに戻ることが判る。このよ
うに、ステップSPA20〜22の処理により、強拍に
おいては本来の発音タイミングで、弱拍においては遅延
クロック数 SFLTM(TR) 相当だけ遅れたタイミングで、
発音処理が行われる。
【0051】以上のように、本実施例にあっては「クォ
ンタイズ」または「スイング」効果を楽音に適宜施すこ
とが可能であり、両者を併用することにより、一層興味
深い自動演奏を行うことができる。ところで、演奏者は
最初にクォンタイズ強さ、スイング率等のパラメータを
設定して自動演奏を行うことが一般的であるが、演奏の
途中において、これらパラメータが不適当であるため演
奏が不自然になる場合も考えられる。かかる場合は、操
作子群1内の対応する操作子を適宜操作することによ
り、各種パラメータを変更すると良い。パラメータが変
更されると、次にタイマ割込が発生した際に、変更後の
パラメータに基づいて各種の処理が行われるから、演奏
者は変更後のパラメータの是非について迅速に判断する
ことが可能である。さらに、本実施例においては、「ク
ォンタイズ」および「スイング」に関する各種パラメー
タを演奏情報のトラック毎に設定することが可能である
から、きわめて精密な楽音制御を行うことが可能であ
る。
【0052】C.変形例 本発明は上述した実施例に限定されるものではなく、例
えば以下のように種々の変形が可能である。 上記実施例ではデュレーション式の演奏情報(図2の
ように、発音データ、時間データ等から成る情報)を用
いたが、イベント式の演奏情報(ノートオン・データ、
時間データ、ノートオフ・データ等から成る情報)を用
いてもよい。 上記実施例においては、ステップSPA20〜22の
処理を行った後にステップSPA23の処理を行ってい
た。すなわち、「クォンタイズ」と「スイング」とを併
用した場合は、「スイング」を行った後に「クォンタイ
ズ」を行っていた。しかし、ステップSPA23をステ
ップSPA19の直後に実行し、「クォンタイズ」を行
った後に「スイング」を行ってもよい。
【0053】
【発明の効果】以上説明したように、請求項1に係る自
動演奏装置によればリアルタイムに楽音にクォンタイズ
を施すことができ、請求項2に係る自動演奏装置によれ
ばリアルタイムに楽音にスイングを施すことが可能であ
る。さらに、何れの場合も演算手段はトラックに応じて
発音タイミングを演算するから、楽音の発音タイミング
を精密に、かつリアルタイムに制御することが可能であ
る。
【図面の簡単な説明】
【図1】 一実施例の構成を示すブロック図である。
【図2】 一実施例における演奏情報のフォーマットを
示す図である。
【図3】 一実施例のメインルーチンのフローチャート
である。
【図4】 一実施例のメインルーチンのフローチャート
である。
【図5】 一実施例のタイムチャートである。
【図6】 スイング効果の説明図である。
【図7】 一実施例のタイマ割込ルーチンのフローチャ
ートである。
【図8】 一実施例のタイマ割込ルーチンのフローチャ
ートである。
【図9】 一実施例の発音サブルーチンのフローチャー
トである。
【図10】 一実施例のカウントサブルーチンのフロー
チャートである。
【図11】 クォンタイズ効果の説明図である。
【図12】 従来の自動演奏装置の動作説明図である。
【符号の説明】
2 自動演奏メモリ(演奏情報記憶手段) 3 トーンジェネレータ(再生手段) 6 CPU(読出し手段、演算手段、再生手段)

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 各々が楽音発生タイミングデータを含む
    複数トラックの演奏情報を記憶する演奏情報記憶手段
    と、 この演奏情報記憶手段から演奏情報を読出す読出し手段
    と、 この読出し手段によって読出された演奏情報の発音タイ
    ミングが、対応する楽音発生タイミングデータと比較し
    て、対応するトラックの基準となるビートタイミングに
    収束するように、該発音タイミングを演算する演算手段
    と、 前記発音タイミングが演算された後、この発音タイミン
    グに相当する時間が経過すると、この発音タイミングに
    対応する演奏情報を再生する再生手段とを具備すること
    を特徴とする自動演奏装置。
  2. 【請求項2】 各々が楽音発生タイミングデータを含む
    複数トラックの演奏情報を記憶する演奏情報記憶手段
    と、 この演奏情報記憶手段から演奏情報を読出す読出し手段
    と、 この読出し手段によって読出された演奏情報の楽音発生
    タイミングデータが所定のトラックの所定の時間範囲に
    属する場合は、再生時刻が遅れるように発音タイミング
    を演算する演算手段と、 前記発音タイミングが演算された後、この発音タイミン
    グに相当する時間が経過すると、この発音タイミングに
    対応する演奏情報を再生する再生手段とを具備すること
    を特徴とする自動演奏装置。
JP05353288A 1993-12-28 1993-12-28 自動演奏装置 Expired - Fee Related JP3119061B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05353288A JP3119061B2 (ja) 1993-12-28 1993-12-28 自動演奏装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05353288A JP3119061B2 (ja) 1993-12-28 1993-12-28 自動演奏装置

Publications (2)

Publication Number Publication Date
JPH07199930A true JPH07199930A (ja) 1995-08-04
JP3119061B2 JP3119061B2 (ja) 2000-12-18

Family

ID=18429826

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05353288A Expired - Fee Related JP3119061B2 (ja) 1993-12-28 1993-12-28 自動演奏装置

Country Status (1)

Country Link
JP (1) JP3119061B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002215151A (ja) * 2001-01-22 2002-07-31 Sega Corp 音響信号出力方法及びbgm生成方法
JP2009192619A (ja) * 2008-02-12 2009-08-27 Nintendo Co Ltd 楽曲修正プログラムおよび楽曲修正装置
JP2025033407A (ja) * 2023-08-29 2025-03-13 カシオ計算機株式会社 電子楽器、方法およびプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002215151A (ja) * 2001-01-22 2002-07-31 Sega Corp 音響信号出力方法及びbgm生成方法
JP2009192619A (ja) * 2008-02-12 2009-08-27 Nintendo Co Ltd 楽曲修正プログラムおよび楽曲修正装置
JP2025033407A (ja) * 2023-08-29 2025-03-13 カシオ計算機株式会社 電子楽器、方法およびプログラム

Also Published As

Publication number Publication date
JP3119061B2 (ja) 2000-12-18

Similar Documents

Publication Publication Date Title
US6687674B2 (en) Waveform forming device and method
US7259315B2 (en) Waveform production method and apparatus
US7432435B2 (en) Tone synthesis apparatus and method
US4785707A (en) Tone signal generation device of sampling type
US7557288B2 (en) Tone synthesis apparatus and method
US7750230B2 (en) Automatic rendition style determining apparatus and method
US7816599B2 (en) Tone synthesis apparatus and method
JP2007011217A (ja) 楽音合成装置及びプログラム
JP3625880B2 (ja) 音源装置
JP3119061B2 (ja) 自動演奏装置
JP4407473B2 (ja) 奏法決定装置及びプログラム
JP2862062B2 (ja) カラオケ装置
JP3316866B2 (ja) 楽音処理装置
JP2674452B2 (ja) 楽曲再生装置
JP3261982B2 (ja) カラオケ装置
JP3459016B2 (ja) オーディオ信号処理方法および装置
JP4685298B2 (ja) 波形発生装置
JPH05289662A (ja) エフェクト自動選択装置
JP4278733B2 (ja) 波形データの演奏制御装置
JP2008058796A (ja) 奏法決定装置及びプログラム
JPH09244645A (ja) 自動伴奏装置
JPH07110689A (ja) 電子楽器
JPH1091182A (ja) カラオケ装置
JPH08160958A (ja) 音源装置
JPH08160957A (ja) 音源制御情報の記憶方法及び音源制御装置

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071013

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081013

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091013

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101013

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101013

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111013

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111013

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121013

Year of fee payment: 12

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121013

Year of fee payment: 12

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131013

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees