JP2773638B2 - 自動演奏装置 - Google Patents

自動演奏装置

Info

Publication number
JP2773638B2
JP2773638B2 JP6068007A JP6800794A JP2773638B2 JP 2773638 B2 JP2773638 B2 JP 2773638B2 JP 6068007 A JP6068007 A JP 6068007A JP 6800794 A JP6800794 A JP 6800794A JP 2773638 B2 JP2773638 B2 JP 2773638B2
Authority
JP
Japan
Prior art keywords
automatic performance
event
timing
counter
data
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
Application number
JP6068007A
Other languages
English (en)
Other versions
JPH07248766A (ja
Inventor
弘 宮本
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
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP6068007A priority Critical patent/JP2773638B2/ja
Priority to US08/402,149 priority patent/US5571981A/en
Publication of JPH07248766A publication Critical patent/JPH07248766A/ja
Application granted granted Critical
Publication of JP2773638B2 publication Critical patent/JP2773638B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • G10H1/40Rhythm
    • G10H1/42Rhythm comprising tone forming circuits

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、自動演奏音に人間的な
ノリを与えることが可能な自動演奏装置に関する。
【0002】
【従来の技術】従来の自動演奏装置において、機械的な
自動演奏音にいわゆるノリを与える方法としては、例え
ば、自動演奏のテンポクロックをランダムに揺らせる方
法、該テンポクロックを所定の関数に従って揺らせる方
法、特定の拍の楽音の発音タイミングを所定のタイミン
グだけ後ろへずらす方法等が知られている。
【0003】
【発明が解決しようとする課題】しかしながら、上記従
来の方法では、ノリの種類は限られており、新たなノリ
を与えることができる自動演奏装置が求められていた。
【0004】本発明は、上記問題に鑑みてなされたもの
で、自動演奏音に従来にない新たなノリを与えることが
可能な自動演奏装置を提供することを目的とする。
【0005】
【課題を解決するための手段】上記目的を達成するため
本発明は、複数パートの自動演奏データをパート毎に記
憶する記憶手段と、該記憶された自動演奏データを読み
出して再生する再生手段と、前記記憶された自動演奏デ
ータから、異なるパート間で発音タイミングの重なった
イベントを検出する検出手段と、該検出手段により発音
タイミングの重なったイベントが検出されたときには、
該イベントの発音タイミングをずらすように制御する制
御手段とを有することを特徴とする。
【0006】
【0007】また、自動演奏データを記憶し、読み出し
て再生する自動演奏装置において、前記自動演奏データ
から読み出されたイベントの発音タイミングをずらす制
御手段を備え、該制御手段は、所定の演奏区間を2分割
し、前半部分に存在するイベントの発音タイミングを前
へずらし、後半部分に存在するイベントの発音タイミン
グを後ろへずらすことを特徴とする。
【0008】さらに、好ましくは、前記発音タイミング
をずらすために、操作者がずれ量を設定できるずれ量設
定手段を有し、前記制御手段は、該設定されたずれ量に
応じて当該イベントの発音タイミングをずらすことを特
徴とする。また、上記目的を達成するため本発明は、複
数音色の自動演奏データを音色毎に記憶する記憶手段
と、該記憶された自動演奏データを読み出して再生する
再生手段と、前記記憶された自動演奏データから、異な
る音色間で発音タイミングの重なったイベントを検出す
る検出手段と、該検出手段により発音タイミングの重な
ったイベントが検出されたときには、該イベントの発音
タイミングをずらすように制御する制御手段とを有する
ことを特徴とする。
【0009】
【作用】請求項1記載の発明の構成に依れば、記憶手段
にパート毎に記憶された自動演奏データから、検出手段
により異なるパート間で発音タイミングの重なったイベ
ントが検出されると、制御手段により該イベントの発音
タイミングがずらされた楽音が発音される。
【0010】好ましくは、発音タイミングの重なったイ
ベントが少なくとも2つ以上あるときには、制御手段に
より所定のパートのイベントの発音タイミングのずらす
幅が漸次増加された楽音が発音される。
【0011】請求項3記載の発明の構成に依れば、制御
手段により、所定の演奏区間が2分割され、イベントが
前半部分に存在するときには発音タイミングが前へずら
され、一方、イベントが後半部分に存在するときには発
音タイミングが後へずらされた楽音が発音される。
【0012】さらに、好ましくは、操作者がずれ量設定
手段を用いてずれ量を設定すると、制御手段により、そ
の設定されたずれ量に応じて当該イベントの発音タイミ
ングがずらされた楽音が発音される。また、請求項5記
載の発明の構成に依れば、記憶手段に音色毎に記憶され
た自動演奏データから、検出手段により異なる音色間で
発音タイミングの重なったイベントが検出されると、制
御手段により該イベントの発音タイミングがずらされた
楽音が発音される。
【0013】
【実施例】以下、本発明の実施例を図面に基づいて詳細
に説明する。
【0014】図1は、本発明の第1実施例に係る自動演
奏装置の概略構成を示すブロック図であり、本実施例
は、本発明を電子リズム楽器に適用したものである。
【0015】同図に示すように、本実施例の自動演奏装
置は、音高情報を入力するための鍵盤1と、各種情報を
入力するためのスイッチ群2と、前記鍵盤1の押下状態
を検出するための鍵盤検出回路3と、前記スイッチ群2
の各スイッチの状態を検出するためのスイッチ検出回路
4と、装置全体の制御を司るCPU5と、CPU5が実
行する制御プログラムやテーブルデータ等を記憶するR
OM6と、自動演奏データ、各種入力情報および演算結
果等を一時的に記憶するRAM7と、タイマ割り込み処
理における割り込み時間や各種時間等を計時するタイマ
8と、各種情報等を表示する表示部9と、外部からのM
IDI信号を入力したり、MIDI信号として外部に出
力したりするMIDIインターフェース(I/F)10
と、前記鍵盤1からの演奏データや自動演奏データ等を
楽音信号に変換する音源回路11と、音源回路11から
の楽音信号を音響に変換する、スピーカ等から成るサウ
ンドシステム12とにより構成されている。
【0016】上記構成要素3〜11は、バス13を介し
て相互に接続され、CPU5にはタイマ8が接続され、
音源回路11にはサウンドシステム12が接続されてい
る。また、前記スイッチ群2には、図示しないが、自動
演奏の開始/停止を指示するためのスタート/ストップ
スイッチや自動演奏データのイベントの発音タイミング
のずれ量を変更するためのアップ(UP)/ダウン(D
OWN)スイッチ等が含まれている。
【0017】図2は、本実施例の自動演奏装置により演
奏される自動演奏データのデータフォーマットを示す図
である。
【0018】同図に示すように、自動演奏データは、タ
イミングデータTk(k=1,…)とイベントデータE1
(l=1,…)とにより構成されている。
【0019】前記タイミングデータTkは、イベントデ
ータとイベントデータとの間隔を示すデータ(数値デー
タ)であり、本実施例では、4分音符を96等分した時
間(以下、「384分長」という)を1単位としてその
間隔が表されているが、この他の長さを単位としてもよ
い。後述するように、この1単位は割り込み間隔であ
り、テンポに応じてその時間は変化する。
【0020】前記イベントデータE1は、打楽器音の種
類を示すノートナンバとその打楽器音の強さを示すベロ
シティとにより主として構成されている。
【0021】そして、図2の自動演奏データを1トラッ
クとして、4トラック分が前記図1のRAM7に記憶さ
れる。例えば、第1トラックにはバスドラム(BD)に
対応する自動演奏データが記憶され、第2トラックには
スネアドラム(SD)に対応する自動演奏データが記憶
され、第3トラックにはハイハット(HH)に対応する
自動演奏データが記憶され、第4トラックにはその他
(Others)に対応する自動演奏データが記憶される。か
かる自動演奏データは、例えば、1小節から数小節分が
記憶され、周知の方法により繰り返し読み出されて演奏
される。
【0022】以上のように構成された自動演奏装置が実
行する制御処理を、図3〜図8のフローチャートに基づ
いて説明する。
【0023】図3は、本実施例の自動演奏装置のCPU
5(図1)が実行するメインルーチンの手順を示すフロ
ーチャートである。
【0024】まず、前記RAM7等のクリアや図示しな
い入出力ポートのクリア等のイニシャライズ処理を行っ
た(ステップS1)後に、前記スイッチ群2の各スイッ
チに応じた各種スイッチ処理を行い(ステップS2)、
前記鍵盤1の状態に応じて発音または消音等を行う鍵処
理を行い(ステップS3)、その他の処理を行った(ス
テップS4)後に、前記ステップS2に戻って前述の処
理を繰り返す。
【0025】図4は、図3のステップS2の各種スイッ
チ処理の一部を構成するタイミング変更処理サブルーチ
ンの手順を示すフローチャートであり、本サブルーチン
処理は、前記アップ(UP)/ダウン(DOWN)スイ
ッチの操作に応じて、イベントの発音タイミングのずれ
量を変更する処理を行うものである。
【0026】まず、アップ(UP)スイッチがオンされ
たか否かを判別し(ステップS11)、オンされたとき
には、ずれ量を設定するために前記RAM7中に確保し
たソフトカウンタTIMINGを“1”だけインクリメ
ントした(ステップS12)後に本サブルーチン処理を
終了する。
【0027】一方、前記ステップS11の判別でUPス
イッチがオフのときには、ダウン(DOWN)スイッチ
がオンされたか否かを判別し(ステップS13)、オン
されたときには前記カウンタTIMINGを“1”だけ
デクリメントした(ステップS14)後に本サブルーチ
ン処理を終了する。前記ステップS13の判別でDOW
Nスイッチがオフのときには何もせずに本サブルーチン
処理を終了する。
【0028】ここで、本実施例では、ずれ量を変更でき
る最小単位は、前記384分長である。
【0029】図5は、前記CPU5が実行するタイマ割
り込み処理の手順を示すフローチャートである。
【0030】本実施例において、タイマ割り込み要求
は、図1のタイマ8により、384分長毎に1回の割合
でなされるように構成されている。即ち、タイマ8は3
84分長に相当する時間を計時すると、CPU5に対し
て割り込み要求を出力し、CPU5は、この割り込み要
求を受けてメインルーチンからタイマ割り込みルーチン
へ処理を移行させる。この384分長に相当する時間は
テンポの変更に従って変化するため、テンポにより割り
込み要求がなされる時間間隔は変化することになる。
【0031】図5において、まず、イベントのずれ量を
決定するために前記RAM7中に確保したソフトカウン
タCOUNTをリセットする(ステップS21)。この
カウンタCOUNTは、発音タイミングが重なったイベ
ントが複数個あるときにそのイベントのタイミングのず
れ量を決定するためのものであり、具体的には、前記カ
ウンタTIMINGの値を整数(カウンタCOUNTで
示される値)倍するためのものである。カウンタCOU
NTを用いてイベントのタイミングのずれ量を決定する
詳細な制御方法については後述する。
【0032】次に、バスドラム(BD)に対応する自動
演奏データの読み出し処理(BD読み出し処理)サブル
ーチンを実行し(ステップS22)、スネアドラム(S
D)に対応する自動演奏データの読み出し処理(SD読
み出し処理)サブルーチンを実行し(ステップS2
3)、ハイハット(HH)に対応する自動演奏データの
読み出し処理(HH読み出し処理)サブルーチンを実行
する(ステップS24)。これらの読み出し処理サブル
ーチンの詳細な処理手順は後述する。
【0033】さらに、前記カウンタCOUNTをリセッ
トし(ステップS25)、その他(Others)に対応する
自動演奏データの読み出し処理(Others読み出し処理)
サブルーチンを実行し(ステップS26)、上記自動演
奏データの読み出し処理により読み出され、所定のバッ
ファに記憶された自動演奏データを適当なタイミングで
音源に出力するための処理である出力待ちイベント処理
サブルーチンを実行した(ステップS27)後に、本割
り込み処理を終了する。
【0034】図6は、前記ステップS22のBD読み出
し処理サブルーチンの詳細な手順を示すフローチャート
である。
【0035】まず、前記RAM7中に確保したソフトカ
ウンタBDTIMEが“0”であるか否かを判別する
(ステップS31)。ここで、カウンタBDTIME
は、前述したバスドラムに対応する自動演奏データが記
憶されているトラック(以下、「バスドラムトラック」
という)において、そのイベントデータを読み出すタイ
ミングを決定するためのカウンタであり、具体的には、
バスドラムトラック内のタイミングデータを読み出し、
その値をデクリメントすることによりイベントデータの
読み出しタイミングを決定する。
【0036】前記ステップS31の判別で、カウンタB
DTIMEの値が“0”のとき、即ち、イベントデータ
の読み出しタイミングのときには、当該イベントデータ
を読み出し(ステップS32)、そのイベントデータを
前記図1の音源回路11へ出力し(ステップS33)、
次に記憶されているデータを読み出す(ステップS3
4)。このとき、読み出されたデータがタイミングデー
タであるか否かを判別し(ステップS35)、タイミン
グデータでないとき、即ち、イベントデータのときには
前記ステップS33に戻って上述の処理を繰り返す。一
方、前記ステップS35の判別において、読み出された
データがタイミングデータのときには、そのタイミング
データを前記カウンタBDTIMEに格納し(ステップ
S36)、前記カウンタCOUNTを“1”だけインク
リメントする(ステップS37)。ここで、カウンタC
OUNTをインクリメントするのは、他のトラック(ス
ネアドラムトラック、ハイハットトラック)において同
タイミングで読み出されるイベントがあった場合に、該
他のトラックのイベントのタイミングを予め設定した量
だけずらすためである。
【0037】次に、カウンタBDTIMEを“1”だけ
デクリメントした(ステップS38)後に本サブルーチ
ン処理を終了する。
【0038】一方、前記ステップS31の判別で、カウ
ンタBDTIMEが“0”でないとき、即ち、イベント
データの読み出しタイミングでないときには前記ステッ
プS38に進み、カウンタBDTIMEのデクリメント
だけを行った後に本サブルーチン処理を終了する。
【0039】なお、自動演奏データの読み出しは、例え
ば、図示しない読み出しポインタをインクリメントする
ことにより順次行われる。この処理は周知の方法であ
り、また、本発明の特徴ではないので、本サブルーチン
処理中には示されていない。後述する前記ステップS2
3,S24,S26の詳細な手順の説明中でも同様であ
る。
【0040】図7は、前記図5のステップS23のSD
読み出し処理サブルーチンの詳細な手順を示すフローチ
ャートである。前記ステップS24のHH読み出し処理
サブルーチンもステップS26のOthers読み出し処理サ
ブルーチンも、その処理中で使用されるカウンタおよび
読み出しトラックを除けば、本SD読み出し処理サブル
ーチンと同様の処理であるので、本サブルーチンの説明
と同時に他の読み出し処理についても説明する。なお、
ステップ中、本読み出し処理サブルーチンと他の読み出
し処理サブルーチンの処理が異なるとき、即ち、使用す
るカウンタが異なるときには、そのカウンタの名称をか
っこ内に示すことにする。
【0041】図7において、まず、前記図6のステップ
S31で説明したソフトカウンタBDTIMEと同様の
構成および作用を成すソフトカウンタSDTIMEが
“0”であるか否かを判別し(ステップS41)、
“0”のとき、即ち、イベントデータの読み出しタイミ
ングのときには当該イベントデータを読み出し(ステッ
プS42)、前記図6のステップS37で説明したカウ
ンタCOUNTの値と前記図4のステップS11で説明
したカウンタTIMINGの値とを乗算して、前記RA
M7中に確保したソフトカウンタWAITに格納する
(ステップS43)。
【0042】次に、カウンタWAITの値と前記ステッ
プS42で読み出したイベントデータとを、RAM7中
に確保した出力待ちバッファへ書き込み(ステップS4
4)、同時タイミングで記憶された他のイベントデータ
(同一トラック内にある場合でもハイハットトラックに
ある場合でもよい)がある場合に、そのイベントの出力
をさらに所定のタイミングだけずらすために、カウンタ
COUNTを“1”だけインクリメントし(ステップS
45)、スネアドラムトラックに記憶された次の自動演
奏データを読み出す(ステップS46)。
【0043】次に、前記ステップS46で読み出された
データがタイミングデータであるか否かを判別し(ステ
ップS47)、読み出されたデータがタイミングデータ
でないときには前記ステップS43に戻り、上述の処理
を繰り返し、読み出されたデータがタイミングデータで
あるときには、そのデータを前記カウンタSDTIME
に格納し(ステップS48)、カウンタSDTIMEの
値を“1”だけデクリメントした(ステップS49)後
に、本サブルーチン処理を終了する。
【0044】他のトラック、即ち、ハイハット(HH)
トラックおよびその他(Others)トラックにおける自動
演奏データの読み出し処理は、前記ステップS41,S
48,S49のカウンタSDTIMEを、ぞれぞれカウ
ンタHHTIMEおよびカウンタOTTIMEに変更
し、各トラックで読み出されたイベントデータは、前記
ステップS44で説明した出力待ちバッファにカウンタ
WAITの値とともに格納することにより実現できる。
ここで、本実施例では、その他(Others)トラックに記
憶された自動演奏データの読み出し処理は、そのサブル
ーチンが読み出される前に、カウンタCOUNTをリセ
ットしている(図5のステップS25)ために、出力待
ちバッファに格納されるカウンタWAITの値は最初は
“0”であるが、当該トラック内に複数のイベントデー
タが同時に存在する時は、そのイベント数に応じてカウ
ンタCOUNTがインクリメントされていくため所定タ
イミングだけずらされるようになる。
【0045】図8は、図5のステップS27の出力待ち
イベント処理サブルーチンの詳細な手順を示すフローチ
ャートである。
【0046】まず、前記出力待ちバッファにイベントと
ともに記憶されているカウンタWAIT(このカウンタ
WAITは、単数とは限らず、記憶されているイベント
の個数だけ存在する)の値を1つずつ検査し(ステップ
S51)、カウンタWAITの値が“0”か否か判別す
る(ステップS52)。その結果、カウンタWAITの
値が“0”であるときには、対応するイベントデータを
前記音源回路11へ出力し(ステップS53)、このイ
ベントデータを出力待ちバッファから削除する(ステッ
プS54)。ここで、カウンタWAITの値が“0”で
あるイベントデータは複数個ある場合があり、この場合
には当該複数個のイベントデータを音源回路11に出力
することになる。一方、前記ステップS52の判別で、
カウンタWAITの値が“0”であるイベントデータが
ないときには、ステップS53およびステップS54を
スキップしてステップS55に進む。
【0047】ステップS55では、出力待ちバッファ内
に格納されているすべてのイベントデータに対応するカ
ウンタWAITを“1”だけデクリメントした(ステッ
プS55)後に、本サブルーチン処理を終了する。
【0048】図9は、本実施例の処理動作を説明するた
めの図であり、(a)は、変更前のイベントデータの出
力タイミングを示し、(b)は、変更後のイベントデー
タの出力タイミングを示している。
【0049】(a)において、イベントe1〜e14
内、e1およびe2、e3〜e6、e7およびe8、e9およ
びe10、e11およびe12が、それぞれ同一タイミングで
出力されるように設定されている。各トラックに記憶さ
れたこれらの自動演奏データに、上述した本実施例の制
御処理を施すと、(b)で示されるタイミングに変更さ
れる。
【0050】即ち、イベントe2,e4,e8,e10,e
12は、前記スイッチ群2の前記アップ(UP)/ダウン
(DOWN)スイッチで指定されたずれ量だけ元の出力
タイミングから遅れて出力され、イベントe5は、さら
にそれから前記ずれ量だけ遅れて、即ち、イベントe3
に比較して2倍のずれ量だけ遅れて出力される。しか
し、イベントe6は、前述したように、変更前の出力タ
イミングと同じタイミングで出力される。ただし、その
他トラック中にイベントe6と同タイミングのイベント
が含まれていた場合にはそのイベントは遅れて出力され
ることとなる。
【0051】以上説明したように、本実施例に依れば、
所定のトラックに記憶されたイベントデータの出力タイ
ミングと他のイベントデータの出力タイミングが同じ場
合に、該他のイベントデータを予め設定されたずれ量だ
け遅らせたので、自動演奏音に従来にない人間的なノリ
を付与することが可能となる。即ち、人間の演奏におい
て同一タイミングに複数楽音を発生させるような場合で
あっても、多少タイミングのばらつきが生じるものであ
る。本実施例では、このような人間的な演奏の特徴を自
動演奏に付与することができる。
【0052】なお、本実施例では、バスドラムトラック
のイベントは、同一タイミングに複数個存在してもずら
さないように構成したが、スネアドラムトラックやハイ
ハット、その他のトラックのイベントと同様に、2個目
以降のイベントをさらに所定量だけずらすようにしても
よい。また、バスドラムトラックのイベントと他のトラ
ックのイベントとが同一タイミングであった場合に、バ
スドラムトラックのイベントは全くずらさないようにし
たが、バスドラムトラック以外の他のトラックのイベン
トを全くずらさないようにしてもよい。
【0053】本実施例では、ずれ量は、同時出力タイミ
ングのイベントの内、1つ目のイベントが“0”、2つ
目のイベントが“1×TIMIMGの値”、3つ目のイ
ベントが“2×TIMIMGの値”、‥‥ となるよう
に構成したが、これに限らず、他の方法、例えば、ラン
ダムにずらす等の方法によりずらしてもよい。また、本
実施例では、ずれ量は、読み出しの最小単位、即ち、割
り込み時間間隔により設定したが、これより細かい単位
でずらしてもよいし、これより荒い単位でずらしてもよ
い。
【0054】さらに、拍の先頭のみのイベントが同時タ
イミングのときにのみずらす等、イベントの場所によっ
てずらし方を異ならせてもよく、ずらす方向は、遅らせ
る方向に限らず、進ませる方向であってもよく、遅らせ
る方向と進ませる方向とを混在させてもよい。
【0055】次に、本発明の第2実施例に係る自動演奏
装置を説明する。
【0056】本実施例は、前記第1実施例に対して、イ
ベントをずらす方法が異なるのみであるので、第1実施
例と同一の構成(図1)およびメインルーチン(図3)
を使用し、割り込み処理を図10〜図15で示されるフ
ローチャートに変更することにより実現される。なお、
第2実施例においては全てのトラックについて同様の処
理を施すものとして説明する。
【0057】以下、本実施例の自動演奏装置が実行する
制御処理を、図10〜図15のフローチャートおよび図
16のイベント出力タイミング図を参照して説明する。
図10は、本実施例のCPU5が実行する割り込み処
理の手順を示すフローチャートであり、本割り込み処理
も、前記図5の割り込み処理と同様に、384分長に1
回の割合で割り込み処理が実行される。
【0058】まず、1拍内の位置をカウントするための
図1のRAM7に確保されたソフトカウンタCLOCK
1の値を判別し(ステップS61)、その値が0〜47
のとき、即ち、1拍内の前半部にイベントが存在すると
きには後述する読み出し処理1サブルーチンを実行し
(ステップS62)、その値が“48”のとき、即ち、
1拍内の中間点にイベントが存在するときには後述する
読み出し処理2サブルーチンを実行し(ステップS6
3)、その値が49〜95のとき、即ち、1拍内の後半
部にイベントが存在するときには後述する読み出し処理
3サブルーチンを実行する(ステップS64)。
【0059】次に、カウンタCLOCK1の値が“9
5”か否か、即ち、1拍分カウントし終わったか否かを
判別し(ステップS65)、カウンタCLOCK1の値
が“95”でないとき、即ち、まだ1拍分カウントし終
わっていないときにはカウンタCLOCK1の値を
“1”だけインクリメントし(ステップS66)、一
方、カウンタCLOCK1の値が“95”のとき、即
ち、1拍分カウントし終わったときにはカウンタCLO
CK1の値をリセット(“0”)し(ステップS6
7)、本割り込み処理を終了する。
【0060】前述したように、図16は、自動演奏デー
タの出力タイミングを示す図であり、(a)は、変更前
のイベントデータの出力タイミングを示し、(b)は、
変更後のイベントデータの出力タイミングを示してい
る。
【0061】そして、前記読み出し処理1サブルーチン
は、1拍内の前半部にタイミングがあるイベント、具体
的には図16に示すイベントe21〜e23の処理、即ち、
1拍の開始位置にあるイベントe21以外のイベント
22,e23を所望のタイミング、即ち、前記第1実施例
の図4で設定したずれ量(カウンタTIMINGに格納
されている値)だけ前にずらして前記音源回路11に出
力する処理を行う。
【0062】また、前記読み出し処理2サブルーチン
は、1拍間の中間点にタイミングがあるイベント、具体
的にはイベントe24の処理、即ち、イベントe24のタイ
ミングをずらさずに音源回路11に出力する処理を行
う。
【0063】さらに、前記読み出し処理3サブルーチン
は、1拍内の後半部にタイミングがあるイベント、具体
的にはイベントe25,e26の処理、即ち、これらのイベ
ントe25,e26を前記所望のタイミングだけ後にずらせ
て音源回路11に出力する処理を行う。
【0064】図11および図12は、前記ステップS6
2の読み出し処理1サブルーチンの詳細な処理手順を示
すフローチャートである。本サブルーチンは、前記イベ
ントe22,e23のように所望のタイミングだけ前にずら
す処理を行うために、イベントの先読みを行っている。
【0065】図11において、まず、RAM7に確保さ
れたソフトカウンタTIME1の値が“0”か否かを判
別する(ステップS71)。ここで、カウンタTIME
1は、前記第1実施例のカウンタBDTIMEと同様の
作用を行うカウンタであり、イベント間の時間をカウン
トするものである。
【0066】ステップS71の判別で、カウンタTIM
E1の値が“0”のとき、即ち、イベントデータの読み
出しタイミングのときには、イベントデータを読み出し
(ステップS72)、そのイベントデータが出力済みか
否かを判別し(ステップS73)、まだ出力していない
ときにはそのイベントデータを図1の音源回路11へ出
力し(ステップS74)、一方、そのイベントデータが
出力されているとき(すでに“出力されている”状態に
ついては後述する)には何もせずに次のデータを読み出
す(ステップS75)。このとき、読み出されたデータ
がタイミングデータであるか否かを判別し(ステップS
76)、タイミングデータでないとき、即ち、複数のイ
ベントデータが同一タイミングで記憶されているときに
は前記ステップS73に戻って、上述の処理を繰り返
し、一方、読み出されたデータがタイミングデータであ
るときには、そのタイミングデータを前記カウンタTI
ME1に格納する(ステップS77)。
【0067】次に、本トラックにおいて現在読み出し中
のアドレス、即ち、読み出しポインタが示すアドレスを
退避する(ステップS78)。本実施例においても、前
記第1実施例と同様に、自動演奏データの読み出しは、
読み出しポインタを用いて順次読み出す方法を用いてお
り、このためにステップS78の処理が必要になる。
【0068】次に、前記RAM7に確保したソフトカウ
ンタREMAINに前記第1実施例の図4で説明したカ
ウンタTIMINGの値を格納する(ステップS7
9)。ここで、カウンタREMAINは、イベントを先
読みすべき残りの範囲(タイミング)を示すカウンタで
あり、カウンタREMAINには、まず、設定したずれ
量、即ち、カウンタTIMINGの値が格納される(前
記ステップS79)。
【0069】そして、RAM7に確保したソフトカウン
タCLOCK2に前記カウンタCLOCK1の値を格納
する(ステップS80)。ここで、カウンタCLOCK
2は、イベントを先読みするときに、前記カウンタCL
OCK1と同様の作用、即ち、1拍内の位置をカウント
するカウンタである。
【0070】次に、前記カウンタTIME1を“1”だ
けデクリメントし(図12のステップS81)、その値
をRAM7に確保したソフトカウンタTIME2に格納
する(ステップS82)。ここで、カウンタTIME2
は、イベントを先読みするときに、前記カウンタTIM
E1と同様の作用、即ち、次のイベントまでの時間をカ
ウントするためのものである。
【0071】さらに、前記カウンタCLOCK2を
“1”だけインクリメントし(ステップS83)、カウ
ンタCLOCK2の値が“48”より小さいか否かを判
別し(ステップS84)、カウンタCLOCK2の値が
“48”より小さいとき、即ち、イベントの先読み位置
が1拍内の中間点に到達していないときには、カウンタ
TIME2の値が“0”であるか否か、即ち、イベント
データの読み出し位置であるか否かを判別する(ステッ
プS85)。
【0072】ステップS86の判別で、カウンタTIM
E2の値が“0”のとき、即ち、イベントデータの読み
出し位置のときには当該イベントデータを読み出す(ス
テップS86)。続くステップS87〜ステップS90
の処理は、前記ステップS73〜ステップS76の処理
と同様であるため、その説明を省略する。
【0073】次に、前記ステップS89で読み出された
タイミングデータをカウンタTIME2に格納し(ステ
ップS91)、前記カウンタTIME2およびカウンタ
REMAINをそれぞれ“1”だけデクリメントする
(ステップS92,S93)。
【0074】一方、前記ステップS85の判別で、カウ
ンタTIME2の値が“0”でないとき、即ち、イベン
トデータの読み出し位置でないときには、前記ステップ
S86〜ステップS91をスキップして、前記ステップ
S92に進む。
【0075】続くステップS94では、カウンタREM
AINの値が“0”であるか否かを判別し、カウンタR
EMAINの値が“0”のとき、即ち、先読みすべき最
大範囲に到達したときには、前記ステップS78で退避
したアドレスを前記読み出しポインタに戻して、本サブ
ルーチン処理を終了し、一方、カウンタREMAINの
値が“0”でないとき、即ち、先読みすべき最大範囲に
到達していないときには前記ステップS83に戻って上
述の処理を繰り返す。
【0076】一方、ステップS84の判別で、カウンタ
CLOCK2の値が“48”のとき、即ち、読み出し位
置が1拍内の後半部になったときには前記ステップS8
5〜ステップS94の処理をスキップして前記ステップ
S95に進む。
【0077】以上のようにして、拍内の前半部の時は、
後ろに存在するイベントデータを先読みし、音源回路1
1へ出力してしまうため、前述のようなすでに“出力さ
れている”という状態が生じるのである。そして、同一
のイベントデータを重複して出力しないために、すでに
“出力されている”ものについては、読み出された時に
何もしないようにしている。
【0078】図13は、前記図10のステップS63の
読み出し処理2サブルーチンの詳細な手順を示すフロー
チャートであり、本サブルーチンは、前述したように、
図16のイベントe24をそのままのタイミングで音源回
路11に出力する処理を行うものである。
【0079】本サブルーチンのステップS101〜ステ
ップS107は、前記第1実施例の図6で説明したBD
読み出し処理のステップS31〜ステップS36および
ステップS38に対応し、ステップS31,S36,S
38のカウンタBDTIMEをカウンタTIME1に変
更した点が異なるのみであるため、各ステップS101
〜ステップS107の処理の説明は省略する。
【0080】図14は、前記図10のステップS64の
読み出し処理3サブルーチンの詳細な手順を示すフロー
チャートであり、本サブルーチンは、前述したように、
図16のイベントe25,e26を所望のタイミングだけ後
にずらせて音源回路11に出力する処理を行うものであ
る。
【0081】まず、前記カウンタTIME1の値が
“0”であるか否かを判別し(ステップS111)、カ
ウンタTIME1の値が“0”のとき、即ち、イベント
データの読み出し位置のときには当該イベントデータを
読み出し(ステップS112)、前記カウンタTIMI
NGの値を前記実施例1の図7のステップS43で説明
したカウンタと同様のカウンタWAITに格納する(ス
テップS113)。続くステップS114〜ステップS
116は、それぞれ図7のステップS44およびステッ
プS46,S47と同様であるため、その説明は省略す
る。
【0082】前記ステップS116の判別で、読み出し
データがタイミングデータであるときには、そのタイミ
ングデータを前記カウンタTIME1に格納し(ステッ
プS117)、カウンタTIME1を“1”だけデクリ
メントし(ステップS118)、前記カウンタCLOC
K1の値が“95”より小さいか否か、即ち、読み出し
位置が1拍の最後の位置に到達しているか否かを判別す
る(ステップS119)。このとき、カウンタCLOC
K1の値が“95”より小さいとき、即ち、1拍の最後
の位置に到達していないときにはステップS120に進
む。これ以降のステップS120〜124は、前記第1
実施例の図8の出力待ちイベント処理のステップS51
〜ステップS55と同様であるために、その説明は省略
する。
【0083】一方、ステップS119の判別で、カウン
タCLOCK1の値が“95”のとき、即ち、1拍の最
後の位置に到達しているときにはバッファに記憶されて
いるすべてのイベントデータを前記音源回路11へ出力
して遅らせたイベントデータをすべて該拍内で発音させ
(ステップS125)、出力したイベントデータをバッ
ファから削除した(ステップS126)後に、本サブル
ーチン処理を終了する。
【0084】以上説明したように、本実施例に依れば、
各トラックに記憶された自動演奏データのイベントデー
タの出力タイミングの位置に応じて、予め設定したずれ
量だけ前または後にずらせ、または、ずらせないように
したので、自動演奏データされる楽音に前記第1実施例
とは異なる新たなノリを付与することが可能となる。
【0085】なお、本実施例では、すべてのトラックの
イベントを同様にずらすようにしたが、所望のトラック
のイベントのみずらすようにしてもよい。例えば、ドラ
ムセットに対応するトラック(バスドラム、スネアドラ
ム、ハイハットのトラック)の楽音(イベント)はずら
さず、ラテンパーカッションに対応するトラック(その
他のトラック)の楽音(イベント)のみをずらすように
する等が考えられる。
【0086】また、本実施例では、半拍を境にして前半
部分および後半部分でそれぞれ一様にイベントの出力タ
イミングをずらせるように構成したが、前半部分と後半
部分とでそれぞれずれ量が異なるように構成してもよ
い。さらに、前半部分および後半部分で、それぞれ位置
に応じてずれ量が変化するように構成してもよい。例え
ば、拍タイミングに近づくにつれてずれ量が大きくなる
ようにする等が考えられる。
【0087】第1実施例および第2実施例では、自動リ
ズム演奏を例に挙げて本発明の自動演奏装置を説明した
が、これに限らず、どのような自動演奏に本発明の自動
演奏装置を適用してもよい。
【0088】また、発生タイミングをずらすアルゴリズ
ムは、第1実施例および第2実施例では読み出し時にず
れが発生するように読み出し処理を構成したが、これに
限らず、例えば、予め発音タイミングをずらした自動演
奏データを自動作成し、その自動演奏データを通常と同
様に読み出しながら出力するように構成してもよい。さ
らに、第1実施例および第2実施例では、バスドラムト
ラック、スネアドラムトラック、ハイハットトラック、
その他トラックの4トラック構成であったが、1トラッ
クに複数種類の自動演奏データを記憶する構成であって
もよく、また、4トラック構成に限らず、何トラック構
成であってもよい。
【0089】
【発明の効果】以上説明したように、本発明によれば、
複数パート(または音色)の自動演奏データをパート
(または音色)毎に記憶する記憶手段と、該記憶された
自動演奏データを読み出して再生する再生手段と、前記
記憶された自動演奏データから、異なるパート(または
音色)間で発音タイミングの重なったイベントを検出す
る検出手段と、該検出手段により発音タイミングの重な
ったイベントが検出されたときには、該イベントの発音
タイミングをずらすように制御する制御手段とを有し、
好ましくは、前記制御手段は、発音タイミングの重なっ
たイベントが少なくとも2つ以上あるときには所定のパ
ートのイベントの発音タイミングのずらす幅を漸次増加
させて行くので、自動演奏音に新たなノリを与えること
が可能となる効果を奏する。
【0090】また、自動演奏データを記憶し、読み出し
て再生する自動演奏装置において、前記自動演奏データ
から読み出されたイベントの発音タイミングをずらす制
御手段を備え、該制御手段は、所定の演奏区間を2分割
し、前半部分に存在するイベントデータの発音タイミン
グを前へずらし、後半部分に存在するイベントデータの
発音タイミングを後ろへずらすので、自動演奏音に、さ
らに新たなノリを与えることが可能となる。
【図面の簡単な説明】
【図1】本発明の第1実施例に係る自動演奏装置の概略
構成を示すブロック図である。
【図2】第1実施例の自動演奏装置により演奏される自
動演奏データのデータフォーマットを示す図である。
【図3】図1のCPUが実行するメインルーチンの手順
を示すフローチャートである。
【図4】図3のステップS2の一部の処理であるタイミ
ング変更処理サブルーチンの手順を示すフローチャート
である。
【図5】第1実施例において、図1のCPUが実行する
タイマ割り込み処理の手順を示すフローチャートであ
る。
【図6】図5のステップS22のバスドラム(BD)読
み出し処理サブルーチンの詳細な手順を示すフローチャ
ートである。
【図7】図5のステップS23のスネアドラム(SD)
読み出し処理サブルーチンの詳細な手順を示すフローチ
ャートである。
【図8】図5のステップS27の出力待ちイベント処理
サブルーチンの詳細な手順を示すフローチャートであ
る。
【図9】第1実施例の処理動作を説明するための図であ
る。
【図10】第2実施例の図1のCPUが実行する割り込
み処理の手順を示すフローチャートである。
【図11】図10のステップS62の読み出し処理1サ
ブルーチンの詳細な処理手順を示すフローチャートであ
る。
【図12】図10のステップS62の読み出し処理1サ
ブルーチンの詳細な処理手順を示すフローチャートであ
る。
【図13】図10のステップS63の読み出し処理2サ
ブルーチンの詳細な手順を示すフローチャートである。
【図14】図10のステップS64の読み出し処理3サ
ブルーチンの詳細な手順を示すフローチャートである。
【図15】図10のステップS64の読み出し処理3サ
ブルーチンの詳細な手順を示すフローチャートである。
【図16】第2実施例の処理動作を説明するための図で
ある。
【符号の説明】2 スイッチ群(ずれ量設定手段) 5 CPU(再生手段、検出手段、制御手段、ずれ量設
定手段7 RAM(記憶手段)

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数パートの自動演奏データをパート毎
    に記憶する記憶手段と、 該記憶された自動演奏データを読み出して再生する再生
    手段と、 前記記憶された自動演奏データから、異なるパート間で
    発音タイミングの重なったイベントを検出する検出手段
    と、 該検出手段により発音タイミングの重なったイベントが
    検出されたときには、該イベントの発音タイミングをず
    らすように制御する制御手段とを有することを特徴とす
    る自動演奏装置。
  2. 【請求項2】 前記制御手段は、発音タイミングの重な
    ったイベントが少なくとも2つ以上あるときには所定の
    パートのイベントの発音タイミングのずらす幅を漸次増
    加させて行くことを特徴とする請求項1記載の自動演奏
    装置。
  3. 【請求項3】 自動演奏データを記憶し、読み出して再
    生する自動演奏装置において、前記自動演奏データから
    読み出されたイベントの発音タイミングをずらす制御手
    段を備え、 該制御手段は、所定の演奏区間を2分割し、前半部分に
    存在するイベントの発音タイミングを前へずらし、後半
    部分に存在するイベントの発音タイミングを後ろへずら
    ことを特徴とする自動演奏装置。
  4. 【請求項4】 前記発音タイミングをずらすために、操
    作者がずれ量を設定できるずれ量設定手段を有し、 前記制御手段は、該設定されたずれ量に応じて当該イベ
    ントの発音タイミングをずらすことを特徴とする請求項
    1または3のいずれかに記載の自動演奏装置。
  5. 【請求項5】 複数音色の自動演奏データを音色毎に記
    憶する記憶手段と、 該記憶された自動演奏データを読み出して再生する再生
    手段と、 前記記憶された自動演奏データから、異なる音色間で発
    音タイミングの重なったイベントを検出する検出手段
    と、 該検出手段により発音タイミングの重なったイベントが
    検出されたときには、該イベントの発音タイミングをず
    らすように制御する制御手段とを有することを特徴とす
    る自動演奏装置。
JP6068007A 1994-03-11 1994-03-11 自動演奏装置 Expired - Fee Related JP2773638B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP6068007A JP2773638B2 (ja) 1994-03-11 1994-03-11 自動演奏装置
US08/402,149 US5571981A (en) 1994-03-11 1995-03-10 Automatic performance device for imparting a rhythmic touch to musical tones

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6068007A JP2773638B2 (ja) 1994-03-11 1994-03-11 自動演奏装置

Publications (2)

Publication Number Publication Date
JPH07248766A JPH07248766A (ja) 1995-09-26
JP2773638B2 true JP2773638B2 (ja) 1998-07-09

Family

ID=13361379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6068007A Expired - Fee Related JP2773638B2 (ja) 1994-03-11 1994-03-11 自動演奏装置

Country Status (2)

Country Link
US (1) US5571981A (ja)
JP (1) JP2773638B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3546739B2 (ja) * 1999-02-24 2004-07-28 ヤマハ株式会社 自動演奏装置と記録媒体
JP3675287B2 (ja) 1999-08-09 2005-07-27 ヤマハ株式会社 演奏データ作成装置
JP3627675B2 (ja) * 2001-06-07 2005-03-09 ヤマハ株式会社 演奏データ編集装置及び方法並びにプログラム
DE102010061367B4 (de) * 2010-12-20 2013-09-19 Matthias Zoeller Vorrichtung und Verfahren zur Modulation von digitalen Audiosignalen
JP6847237B2 (ja) * 2017-08-29 2021-03-24 AlphaTheta株式会社 楽曲解析装置および楽曲解析プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4506580A (en) * 1982-02-02 1985-03-26 Nippon Gakki Seizo Kabushiki Kaisha Tone pattern identifying system
JP2759202B2 (ja) * 1986-02-07 1998-05-28 カシオ計算機株式会社 自動リズム演奏装置
JPH0798859B2 (ja) * 1986-08-06 1995-10-25 東レ株式会社 全芳香族ポリエステル射出成形品
JP2522343B2 (ja) * 1988-03-08 1996-08-07 ヤマハ株式会社 自動演奏装置
JP2692864B2 (ja) * 1988-06-24 1997-12-17 住友バイエルウレタン株式会社 イソシアヌレート基含有ポリイソシアネートの製法
US5235125A (en) * 1989-09-29 1993-08-10 Casio Computer Co., Ltd. Apparatus for cross-correlating additional musical part with principal part through time
JPH05173563A (ja) * 1991-12-26 1993-07-13 Casio Comput Co Ltd 自動演奏装置
JPH05257465A (ja) * 1992-03-11 1993-10-08 Kawai Musical Instr Mfg Co Ltd 楽器演奏者の特徴抽出再生装置
JP3322275B2 (ja) * 1992-10-09 2002-09-09 ヤマハ株式会社 カラオケ装置

Also Published As

Publication number Publication date
JPH07248766A (ja) 1995-09-26
US5571981A (en) 1996-11-05

Similar Documents

Publication Publication Date Title
JP2896716B2 (ja) 自動演奏装置
US4993306A (en) Device for correcting timing of music playing information for use in music auto play device
JP3562333B2 (ja) 演奏情報変換装置および演奏情報変換方法並びに演奏情報変換制御プログラムを記録した記録媒体
JP2773638B2 (ja) 自動演奏装置
JP3743024B2 (ja) 演奏練習装置
JPH06259065A (ja) 電子楽器
JP3239411B2 (ja) 自動演奏機能付電子楽器
JPH10288985A (ja) 楽音発生装置
JP3844286B2 (ja) 電子楽器の自動伴奏装置
JP3743364B2 (ja) 演奏練習装置
JP3609045B2 (ja) 自動演奏装置
JP3192579B2 (ja) 自動演奏装置及び自動演奏方法
JPH0631977B2 (ja) 電子楽器
JP2625800B2 (ja) 自動演奏装置
JP4214845B2 (ja) 自動アルペジオ装置および同装置に適用されるコンピュータプログラム
JP2641851B2 (ja) 自動演奏装置
JP2643277B2 (ja) 自動演奏装置
JPH10288987A (ja) 電子楽器及び楽音制御データ発生装置
JP3173704B2 (ja) 自動演奏装置
JP2583377B2 (ja) 自動演奏装置
JP2513014B2 (ja) 電子楽器の自動演奏装置
JP2725585B2 (ja) 自動演奏装置
JPH0926787A (ja) 音色制御装置
JPH08106285A (ja) 自動演奏装置
JP3760938B2 (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 (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090424

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20090424

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20100424

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees