JP2006251084A - Midi演奏方法 - Google Patents

Midi演奏方法 Download PDF

Info

Publication number
JP2006251084A
JP2006251084A JP2005064452A JP2005064452A JP2006251084A JP 2006251084 A JP2006251084 A JP 2006251084A JP 2005064452 A JP2005064452 A JP 2005064452A JP 2005064452 A JP2005064452 A JP 2005064452A JP 2006251084 A JP2006251084 A JP 2006251084A
Authority
JP
Japan
Prior art keywords
midi
host cpu
synchronization
events
processing
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.)
Pending
Application number
JP2005064452A
Other languages
English (en)
Inventor
Toshiharu Okada
敏治 岡田
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2005064452A priority Critical patent/JP2006251084A/ja
Priority to US11/261,767 priority patent/US7402745B2/en
Publication of JP2006251084A publication Critical patent/JP2006251084A/ja
Pending legal-status Critical Current

Links

Images

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
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/002Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
    • 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
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/005Device type or category
    • G10H2230/015PDA [personal digital assistant] or palmtop computing devices used for musical purposes, e.g. portable music players, tablet computers, e-readers or smart phones in which mobile telephony functions need not be used
    • 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
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/005Device type or category
    • G10H2230/021Mobile ringtone, i.e. generation, transmission, conversion or downloading of ringing tones or other sounds for mobile telephony; Special musical data formats or protocols herefor

Abstract

【課題】 MIDI演奏とイベント処理との間で同期ずれの起こらないMIDI演奏方法を提供する。
【解決手段】 楽曲の先頭からMIDIデータを解析してMIDI演奏を行う場合に、MIDIデータの時系列に沿って順に解析するシーケンサー22側でMIDIデータ中に埋め込まれた同期イベントメッセージを検出した場合は、同期イベントメッセージ数を累積すると共に、ホストCPU24に割り込み処理の要求を行い、当該割り込み要求を受け付けたホストCPU側では、実行した同期イベント数と前記累積値が一致するまで同期イベント処理を実行するようにしている。
【選択図】 図1

Description

この発明は、携帯電話、携帯端末(PDA)、ゲーム機器やMIDI機器などにおいて、MIDI楽曲の演奏中に、ある特定の楽器の発音や、拍子、指定した時間などのタイミングにあわせて、画像表示、LED点灯、バイブレータの動作、MIDI同士や他のサウンド再生など機器に付帯されている他の機能の実行を同期させることのできる演奏方法に関する。
特開平6−242788号公報
上記特許文献1には、MIDI規格に基づく電子音源を利用したカラオケ装置で用いられるデータを簡単に加工して音楽と映像、およびタイトルなどを同期することが出来るオーサリング装置が開示されている。
従来、携帯電話やPDAなど、シーケンサ内蔵のMIDI楽曲再生装置を備えたシステムにおいては、カラオケやゲームその他のアプリケーションにおいてMIDI楽曲演奏と画像やサウンドなどシステムの他の機能と同期させる方法として、あらかじめMIDI楽曲内に同期用のメッセージを挿入する方法や、特定の楽器の発音と同期するようにMIDI楽曲に拡張メッセージを付加する方法を用いて、シーケンサがMIDIメッセージを解析中に同期メッセージを受信した時に、MIDI楽曲再生装置からホストCPUへ割込みを発生させて楽曲とイベントとの同期タイミングを通知していた。
従来の方法では、複数のイベントが同時に発生したり、連続して同期イベントが発生したような場合において、ホストCPUへの割込み処理が間に合わなかったり、割り込みが重なってしまい、ホストCPU側ですべての割り込みを検出することが出来ず、そのため同期イベント実行されなかったり、本来は別のイベントを実行するための次の同期検出タイミングに間に合わないという問題があった。
また、イベント実行順序を楽曲の先頭から予め指定しておくような場合、曲の途中から演奏を再生させる場合の処理に対応できず、この場合正しくイベントを実行するためには、途中再生開始時間までの同期イベント数を予め保持しておくか、ホストCPUが演奏開始から途中再生開始時間までのイベント発生数を、予めMIDI楽曲を解析することによりカウントしなければならないという問題があった。
従来のMIDI演奏方法を図3のフローチャートを用いて説明する。
MIDI楽曲再生装置は、FIFO(データ入力メモリ)に入力されたMIDIデータを順にメッセージ解析するシーケンサ処理を行い、解析されたメッセージに従って楽曲再生処理を行う。MIDIメッセージ解析処理ステップ(S31)で、同期メッセージと解析された場合には、ホストCPUへの割込み要求処理(S32)を行い、シーケンサ処理へ戻る。
ホストCPU側では、MIDI楽曲再生装置からの割込み要求を受けた際に、割込み処理を行う。割込み処理内では、指定された順序で画像描写やサウンド再生などのイベント(イベント処理は、曲の始めから同期イベントにあわせて順に実行されることを前提に、発生順にイベントを指定したファイルが用意されているものとする。)を処理して(S33)、割り込み処理を終了させる。
ホストCPU側での割込み処理中に、MIDI楽曲再生装置側のシーケンサ処理で新たな同期メッセージが複数処理されると、ホストCPUは新しい割り込みを検出できず、割込み発生回数と同期メッセージ数に差異が生じ、同期イベントがずれてしまう原因となる。
本発明の課題は、MIDI演奏とイベント処理との間で同期ずれの起こらないMIDI演奏方法を提供することにある。
本発明に係る代表的MIDI演奏方法は、楽曲の先頭からMIDIデータを解析してMIDI演奏を行う場合に、MIDIデータの時系列に沿って順に解析するシーケンサー側でMIDIデータ中に埋め込まれた同期イベントメッセージを検出した場合は、同期イベントメッセージ数を累積すると共に、ホストCPUに割り込み処理の要求を行い、当該割り込み要求を受け付けたホストCPU側では、実行した同期イベント数と前記累積値が一致するまで同期イベント処理を実行するようにしている。
本発明に係るMIDI演奏方法では、MIDIデータ中に埋め込まれた同期イベントメッセージを検出した場合は、ホストCPUに割り込み要求を行い、割り込み要求を受けたホストCPU側では、実行した同期イベント数と前記累積値が一致するまで同期イベント処理を実行するようにしているので、MIDI演奏とイベント処理との間で同期ずれが発生することが無い。
以下、この発明の実施の形態について、図面を用いて説明する。尚、各図面は、この発明が理解できる程度に概略的に記載している。
図2は、この発明によるMIDI演奏方法を実装するシステムの概略構成図であり、このシステム20は、本発明の方法を実現する基本的な構成として、MIDI装置再生側に、楽曲データ入力用メモリとしてのFIFOメモリ21、シーケンサ処理を行うシーケンサブロック22と命令の交換を行うレジスタ23を備え、制御ホスト側に、ホストCPU24を備えている。
シーケンサブロックで処理されたメッセージはシンセサイザーブロックに送られMIDI楽曲が演奏される。またホストCPU(24)はMIDI再生装置だけではなく、システムの他の機能(画面表示、LED制御、バイブレータ制御、MIDI以外のサウンド機能)の制御を行う。
MIDI楽曲を演奏する際は、先ずホストCPUからMIDIデータをFIFOメモリ21に転送する。シーケンサブロック22ではFIFOメモリに書き込まれたMIDIデータのメッセージの解析を行い、図示しないシンセサイザーに演奏メッセージを送ることで曲が演奏される。
シーケンサブロック22におけるメッセージ解析処理で、当該メッセージが同期メッセージと解析された場合、ホストCPU(24)に対して割り込みを発生する。ホストCPU(24)では発生した割り込み信号をトリガーとしてイベントを実行する。この時ホストCPUで実行されるイベント処理を割り込み処理と呼ぶ。
割り込み処理中にシーケンサからホストCPU(24)に新たな同期割り込みが起こった場合、従来の方法では、ホストCPUはこの割り込みを取りこぼす可能性があった。これを避けるため、本発明では、レジスタ23中に累積カウンタ23aを設けている。
シーケンサ22では同期イベントを検出した場合、レジスタ23の累積カウンタ23a(この累積カウンタの初期値は曲の先頭で0に設定されている)に1ずつ加算していくのと同時にホストCPU(24)に同期割り込みを発生させる。ホストCPU(24)では同期割り込みを受け、割り込み処理を行い、割り込み処理を抜ける際にレジスタ23の累積カウンタ23aの値と、曲頭から処理したイベントの数と比較することで、割り込み処理中に新たな同期イベントが起きていないかどうかチェックする。
累積カウンタ23aの値が、処理したイベント数を上回っていればカウンタの値と等しくなるまでイベントを実行した後、ホストCPUはイベント処理を抜ける。このように、シーケンサからホストCPUへの割り込みをトリガーとして曲の演奏とイベント実行の同期を取る場合において、同期イベントの起きた回数を累積カウンタ23aに保持することにより、イベント処理回数をホストCPU側でチェックし、同時に複数のイベントが起こった場合やホストCPUの処理が遅く割り込みが検地できなかった場合でも、イベント処理を確実に実行することが可能となる。
以下、本実施形態に係るMIDI演奏方法を図1のフローチャートを参照して詳細に説明する。
<通常再生時(楽曲の先頭から再生する場合)の処理>
シーケンサブロック22に内蔵されているソフトウェア(以下、ファームウェアと呼ぶ)は、FIFOメモリのMIDIデータを順にメッセージ解析して再生処理を行う。その際、MIDIメッセージ解析処理(S11)において、同期メッセージを解析処理したとき、累積カウンタ23aを+1インクリメントする(S12)。その後、途中再生開始位置をシーク中であるか否かを確認(S13)し、通常再生の場合はシーク中で無いので、ホストCPU(24)への割込み要求(S14)を行い、シーケンサ処理へ戻る。
一方、ホストCPU(24)においては、ファームからの割込み要求(S14)を受けたときに、割込み処理を行う。割込み処理内では、シーク再生開始後の最初の割り込み処理か否かの確認を行う(S15)。楽曲の途中からの再生を指定された場合、指定ポイントを楽曲の先頭からシーケンサで探し出し(シークし)再生を始めることをシーク再生と称する。
通常再生時の割込みの場合は、ステップS15の処理でNoの分岐に進み、実行イベント数(ホストCPU(24)が管理する変数で、再生初期値は“0”である)と累積カウンタ23aの値の比較処理(S18)を行う。
累積カウンタのカウント値の方が大きい場合は、実行イベント数が累積カウンタで指定された値と等しくなるまでイベントの処理(S19)を行う。実行イベント数の値が累積カウンタ値以上になれば、割込み処理を終了する。
割込み処理中に、ファームウェアのシーケンサ処理で、同期メッセージが処理され、累積カウンタ23aがインクリメントされていた場合(同期イベントが複数・連続で発生した場合の処理)は、上述と同様に、ステップ(S18)の判定で割込み処理を抜けずに、実行イベント数と累積カウンタの値が等しくなるまで、イベント処理(S19)が実行される。
<途中再生時(楽曲の途中の指定された時間からの再生する場合)の処理>
通常再生処理と同様に、シーケンサブロック22のファームウェアにより、FIFOメモリ21のMIDIデータが順にメッセージ解析される(S11)。その際、同期メッセージを解析処理すると、累積カウンタ23aを+1インクリメントする(S12)。この場合、途中再生開始位置までシーク動作中なので(S13)、ホストCPU(24)への割り込みは行わず、そのままシーケンサ処理が続行される。
途中再生開始位置までのシーク処理中は、上記の処理を繰り返し、途中再生開始位置までに処理される同期メッセージの数を累積カウンタに累積する。
途中再生開始位置までのシーク動作が終了し楽曲の再生を始めた後、同期メッセージを解析した場合には(S11)、累積カウンタ23aを+1インクリメント(S12)した後、ホストCPU(24)への割込み要求を発生(S14)して、シーケンサ処理へ戻る。
割込み要求を受けたホストCPU側では、シーク再生開始後初めての割込みになるので(S15)、累積カウンタの値を実行イベント数とする処理を行う(S16)。そして、累積カウンタ値で示されるイベント処理を行う(S17)。以降の処理は、<通常再生時(楽曲の先頭から再生する場合)の処理>と同様である。
以上説明したように、この実施の形態では、レジスタ23内の累積カウンタ23に保持された値とホストCPU(24)でカウントする実行イベント数が一致するまでイベント処理を行うので、ホストCPUでの同期割り込みの実行漏れを防止することが出来、楽曲の演奏と同期して同期イベントを実行することが可能になり、従来のようなイベント実行タイミングのずれが発生することの無いイベント処理が可能となる。
本実施形態では、MIDI入力メモリとしてFIFOメモリを使用した場合について説明したが、このメモリはFIFOメモリである必要はなく、楽曲データの入力と保持が可能なメモリであればよい。また、MIDI楽曲中に同期メッセージを挿入する方法は特に限定する必要は無く、あるチャンネルのノートオンメッセージに同期させたり、例えば、使用していないノート番号のノートオンメッセージで代用させたりすることが出来る。
実施形態に係るMIDI演奏方法を示すフローチャートである。 この発明によるMIDI演奏方法を実装するシステムの概略構成図である。 従来のMIDI演奏方法を示すフローチャートである。
符号の説明
10 実施形態に係るMIDI演奏方法を示すフローチャート
20 MIDI演奏方法を実装するシステム
21 FIFOメモリ
22 シーケンサブロック
23 レジスタ
24 ホストCPU

Claims (2)

  1. 楽曲の先頭からMIDIデータを解析してMIDI演奏を行う場合に、MIDIデータの時系列に沿って順に解析するシーケンサー側でMIDIデータ中に埋め込まれた同期イベントメッセージを検出した場合は、同期イベントメッセージ数を累積すると共に、ホストCPUに割り込み処理の要求を行い、当該割り込み要求を受け付けたホストCPU側では、実行した同期イベント数と前記累積値が一致するまで同期イベント処理を実行するようにしたことを特徴とするMIDI演奏方法。
  2. 楽曲の途中再生位置からMIDIデータを解析してMIDI演奏を行う場合に、MIDIデータの時系列に沿って順に解析するシーケンサー側でMIDIデータに埋め込まれた同期イベントメッセージを検出した場合は、前記楽曲の途中再生位置に達するまで同期イベントメッセージ数を累積し、前記楽曲の途中位置再生位置に達した後に前記同期イベントメッセージを検出した場合は、前記累積数を更新した後、ホストCPU側に割り込み要求を行い、当該割り込み要求を受け付けたホストCPU側では、当該割り込み要求がMIDI再生位置が楽曲の途中再生位置に到達して初めての割り込み要求である場合に、前記累積値を実行した同期イベント数として設定し、当該イベント数に対応した順番の同期イベントを実行し、その後の割り込み要求については、実行した同期イベント数と前記累積値とが一致するまで同期イベント処理を実行するようにしたことを特徴とするMIDI演奏方法。
JP2005064452A 2005-03-08 2005-03-08 Midi演奏方法 Pending JP2006251084A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005064452A JP2006251084A (ja) 2005-03-08 2005-03-08 Midi演奏方法
US11/261,767 US7402745B2 (en) 2005-03-08 2005-10-31 MIDI playing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005064452A JP2006251084A (ja) 2005-03-08 2005-03-08 Midi演奏方法

Publications (1)

Publication Number Publication Date
JP2006251084A true JP2006251084A (ja) 2006-09-21

Family

ID=36969418

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005064452A Pending JP2006251084A (ja) 2005-03-08 2005-03-08 Midi演奏方法

Country Status (2)

Country Link
US (1) US7402745B2 (ja)
JP (1) JP2006251084A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI471854B (zh) * 2012-10-19 2015-02-01 Ind Tech Res Inst 引導式語者調適語音合成的系統與方法及電腦程式產品

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974015A (en) * 1990-05-14 1999-10-26 Casio Computer Co., Ltd. Digital recorder
JP3516406B2 (ja) 1992-12-25 2004-04-05 株式会社リコス カラオケオーサリング装置
JP3862061B2 (ja) * 2001-05-25 2006-12-27 ヤマハ株式会社 楽音再生装置および楽音再生方法ならびに携帯端末装置

Also Published As

Publication number Publication date
US20060201314A1 (en) 2006-09-14
US7402745B2 (en) 2008-07-22

Similar Documents

Publication Publication Date Title
US20070260634A1 (en) Apparatus, system, method, and computer program product for synchronizing the presentation of media content
US8723011B2 (en) Musical sound generation instrument and computer readable medium
CN110691633B (zh) 用于确定响应的反应时间以及使用户界面与正在渲染的内容同步的方法和系统
CN1937462A (zh) 内容偏好得分确定方法、内容重放装置及内容重放方法
JPH06242788A (ja) カラオケオーサリング装置
US10468004B2 (en) Information processing method, terminal device and computer storage medium
US9116605B2 (en) System and method for generating event distribution information
CN110418183B (zh) 音视频同步方法、装置、电子设备及可读介质
JP2013171070A (ja) 楽曲情報処理装置及び楽曲情報処理方法
JP2021516384A (ja) 分岐予測回路及びその制御方法
GB2506404A (en) Computer implemented iterative method of cross-fading between two audio tracks
CN110089120B (zh) 用于在多个远程设备上同步播放媒体项的系统和方法
JP2017032693A (ja) 映像記録再生装置
JP2006251084A (ja) Midi演奏方法
CN102811330A (zh) 对运动图像配上音乐来再生的运动图像再生装置及其方法
CN111727608B (zh) 存储介质、内容播放方法及内容播放系统
CN112119456B (zh) 任意信号插入方法以及任意信号插入系统
CN113380279A (zh) 音频播放方法、装置、存储介质及终端
JP5279588B2 (ja) 画像処理装置及びその方法
JP2004509427A (ja) マルチメディアファイルの同期方法
JP2008160697A (ja) データ登録装置
US20120197841A1 (en) Synchronizing data to media
US20230274722A1 (en) Signal processing device, signal processing system, and signal processing method
JP2004348012A (ja) 携帯端末におけるカラオケシステム
JP2004170444A (ja) 電子機器、命令コード作成装置、および電子機器制御プログラム、命令コード作成処理プログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060923

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060929

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20061013

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080812

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081209