JP6507477B2 - コード演奏タイミング指定装置、方法、およびプログラム - Google Patents

コード演奏タイミング指定装置、方法、およびプログラム Download PDF

Info

Publication number
JP6507477B2
JP6507477B2 JP2014059209A JP2014059209A JP6507477B2 JP 6507477 B2 JP6507477 B2 JP 6507477B2 JP 2014059209 A JP2014059209 A JP 2014059209A JP 2014059209 A JP2014059209 A JP 2014059209A JP 6507477 B2 JP6507477 B2 JP 6507477B2
Authority
JP
Japan
Prior art keywords
timing
code
chord
music data
reproduction
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.)
Active
Application number
JP2014059209A
Other languages
English (en)
Other versions
JP2015184390A5 (ja
JP2015184390A (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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer 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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2014059209A priority Critical patent/JP6507477B2/ja
Publication of JP2015184390A publication Critical patent/JP2015184390A/ja
Publication of JP2015184390A5 publication Critical patent/JP2015184390A5/ja
Application granted granted Critical
Publication of JP6507477B2 publication Critical patent/JP6507477B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

本発明は、ビートトラッキング技術に基づくコード自動演奏におけるコード演奏のタイミング指定技術に関する。
ビートトラッキングと呼ばれる、オーディオ曲データ(音楽音響信号)から自動で小節と拍を検出する技術が知られている(例えば非特許文献1に記載の技術)。この技術を利用して、オーディオ曲データから小節と拍を認識することができる。そして、1小節あたりのコード数を手動または自動で決定することにより、その決定されたコード数に対応する範囲毎にコード解析技術によりコード付けを行うことができる。そして、このコードデータと曲を同期させて、ユーザーの入力操作タイミングに合わせてコード音を鳴らすことにより、簡単に擬似コード演奏を行う擬似コード演奏装置を実現することができる。
擬似コード演奏装置により、初心者でも簡単に擬似的なコード弾きを行うことができ、気軽に楽器演奏の楽しさを味わうことができる。
後藤真孝、村岡洋一著「音楽音響信号を対象としたビートトラッキングシステム」一般社団法人情報処理学会研究報告.[音楽情報科学]21−8、1997年7月21日、p.45−52
しかしながら、単純にコード解析の結果に基づいて演奏するだけでは、以下のような問題が生じ、演奏に違和感が生じる。
1.ビートトラッキング技術の性質上、解析で検出された小節と拍の位置は聴覚上感じる位置とわずかな誤差が生じる。例えば、人間は20msec(ミリ秒)以上の遅れを検知できるとされているが、ビートトラッキングでは検出結果が正解と判定できる場合で、聴覚上の正解位置と検出結果の誤差が50〜80msec程度存在する。
2.音楽的表現のためのテンポ揺らぎは、正確なテンポを刻んだ場合と比較して数100msecオーダーの揺れがあり、テンポが完全に一定という条件で無い以上、揺らぎを検出するには数100msecの小節と拍の検出の揺れを許容する必要がある。これは逆に言えば、この時間範囲で小節と拍の検出誤差が発生する可能性がある。
以上の誤差により、曲の再生に同期して単純に擬似コード演奏を行う場合、コードの遷移部分(コードの先頭、終端付近)のユーザ入力操作で違和感が生じるという課題があった。具体的には、曲ではコードが変わっているのに、弾いた演奏側では変わっていないなどの問題が生じるおそれがある。
一方、コード解析の結果をすべて修正してから後に演奏を行うのでは、検出されたコードの量が膨大であるため気軽ではないし、擬似演奏を楽しむような初心者に対しては大きなストレスとなるという課題があった。
そこで、本発明は、実際のコード弾きのように次の音を弾くタイミングを自分で制御するという直感的な動作のみでタイミング情報を修正可能とすることを目的とする。
態様の一例では、記憶されている曲データの各再生位置に対応するコード情報を特定する特定手段と、前記記憶されている曲データを順次読み出すとともに、前記特定手段により特定される前記曲データの複数の再生位置それぞれに関連付けて記憶されたコード情報を読み出す読出手段と、前記読出手段により読み出された曲データを再生する曲データ再生手段と、前記曲データに基づく曲の再生中に、第1の操作子による演奏操作のタイミングに応答して前記読出手段により読み出された前記コード情報に基づいたコード音を再生するコード再生手段と、前記曲データに基づく曲の再生中に、前記第1の操作子による演奏操作のタイミングと、前記第1の操作子による演奏操作の前に行われる第2の操作子の操作入力のタイミングと、前記第2の操作子の操作解除のタイミングとに基づいて、前記読出手段による前記コード情報の読出しタイミングを制御することで、前記コード再生手段により前記第1の操作子による演奏操作に対応して再生されるコード情報を変更する制御手段と、を備えることを特徴とする。
本発明によれば、実際のコード弾きのように次の音を弾くタイミングを自分で制御するという直感的な動作のみでタイミング情報を修正することが可能となる。
本発明の実施形態に係るコード演奏タイミング指定装置100のハードウェア構成例を示す図である。 本実施形態により図1の表示部105に表示される鳴音予告カーソルのガイド表示例を示す図(その1)である。 本実施形態により図1の表示部105に表示される鳴音予告カーソルのガイド表示例を示す図(その2)である。 本実施形態により図1の表示部105に表示される鳴音予告カーソルのガイド表示例を示す図(その3)である。 本実施形態によるコード演奏のシーケンス例を示す図である。 コードデータの構成例を示す図である。 コード差分データの構成例を示す図である。 オーディオ曲データのコード演奏処理の例を示すフローチャートである。 演奏およびタイミング修正処理の例を示すフローチャートである。 鳴音コード変更処理の例を示すフローチャート(その1)である。 鳴音コード変更処理の例を示すフローチャート(その2)である。 鳴音コード変更処理の例を示すフローチャート(その3)である。
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
図1は、本発明の実施形態に係るコード演奏タイミング指定装置100のハードウェア構成例を示す図である。この演奏練習装置100は、CPU(中央演算処理装置)101、ROM(リードオンリーメモリ)102、RAM(ランダムアクセスメモリ)103、入力部104、表示部105、MIDIインタフェース部(以下「MIDI I/F」と表記する)106、および発音部108が、バス107によって相互に接続された構成を備える。MIDI I/F106は、外部(内蔵でもよい)の電子楽器109に接続される。
CPU101は、ROM102に記憶された制御プログラムに従って、当該コード演奏タイミング指定装置100の全体の制御を行う。
ROM102は、後述する図8から図12の各フローチャートで示される制御動作を実行する制御プログラムを記憶する。また、ROM102は、プリセットされているオーディオ曲データを記憶する。
RAM103は、制御プログラムの実行に必要な、後述する図6に例示されるコードデータや図7に例示されるコード差分データなどの各種制御データや、演奏対象となるオーディオ曲データ等を、一時的に記憶する。
入力部104は、例えばオーディオ曲データの再生に合わせたコード演奏時に、ユーザがコード演奏タイミングの予告入力を行うボタンスイッチ(予告入力ボタン)や、オーディオ曲データの曲を選択したり、コード解析の実行を指示したり、曲の再生を指示したりするスイッチ類による入力操作を検出し、その検出結果をCPU101に通知する。
表示部105は、CPU101の制御によって送られてくるデータを液晶ディスプレイなどに出力する。例えば、表示部105は、後述する図2から図4のような表示形式で、鳴音予告カーソルによる鳴音コードのガイド表示を行う。
MIDI I/F106は、ユーザが電子楽器108において演奏入力した演奏入力情報を取り込んで、RAM103上の特には図示しないノートバッファに記憶させる。なお、電子楽器109は、いわゆるスマートフォンやタブレット端末のような、楽器インタフェースをアプリケーションによって実現したものであってもよい。
CPU101は、例えばROM102からRAM103に読み込まれたオーディオ曲データから小節、拍、およびコード情報を関連付けながら解析し、その解析した小節および拍を再生しながらユーザによる電子楽器109からの演奏入力の操作をMIDI I/F106を介して受け付ける。そして、CPU101は、その演奏入力の操作が発生したタイミングで再生される小節または拍に関連付けられているコード情報に基づいて、演奏入力の操作タイミングに合わせてコード音データを生成し、そのコード音データを発音部108にて発音処理させて、コード演奏を行う。オーディオ曲データは、ユーザの曲選択動作に従って、例えばROM102からRAM103に読み込まれるほか、特には図示しない可搬型記録媒体を介してRAM103に読み込まれてもよく、或いは特には図示しないネットワーク接続装置によりネットワークから取得されてRAM103に読み込まれてもよい。
このとき、CPU101は、曲データの再生中に外部から操作入力及び操作解除がなされた場合に、その操作入力及び操作解除のタイミングを取得する(第1のタイミング取得手段)。また、CPU1001は、演奏操作がなされた場合に、演奏操作のタイミングを取得する(第2のタイミング取得手段)。
そして、CPU101は、第1及び第2のタイミング取得手段の機能により取得されたタイミングに基づいて、コード情報の読出しタイミングを制御し(タイミング制御手段)、演奏操作のタイミングに応答して、読み出されたコード情報に基づいたコード音を再生する(コード再生手段)。
本実施形態による上述のコード演奏タイミング指定装置100の動作は、後述する図8から図12のフローチャート等で実現される制御プログラムを、CPU101がROM102から読み出して順次実行することで実現される。そのプログラムは、特には図示しない可搬型記録媒体を介して提供されてもよく、或いは特には図示しないネットワーク接続装置によりネットワークから取得できるようにしてもよい。
以下、図1のハードウェア構成を有する本実施形態によるコード演奏タイミング指定装置100の動作について、以下に詳細に説明する。
図2から図4は、本実施形態により図1の表示部105に表示される鳴音予告カーソルのガイド表示例を示す図である。
例えば図2(a)に表示される縦向きの長い線201が小節、短い線202が拍に対応している。図2(a)は、4拍子の模式図である。図2(b)、図3(c)(d)、図4(e)(f)についても同様である。また、白い四角200は、現在時刻を示す鳴音予告カーソル200である。表示部105上では、カーソルの位置が固定で、それ以外の部分が再生の進行に従って、画面に向かって右から左へと遷移するような表示がなされる。
図2(a)は、オーディオ曲データの再生の進行に従って、再生時刻に対応するコード(位置)に、鳴音予告カーソル200が遷移することを表している。また、図2(a)は、鳴音予告カーソル200の現在位置に対応するコードがコードIであることも表している。ここで、鳴音予告カーソル200の、現在の位置に対応するコードIが割り当てられた区間について、図2(a)のIで示す区間の上下に線表示をすることにより明示している。
図2(b)は、コードIの拍タイミングに鳴音予告カーソル200があるときに、ユーザが予告入力ボタンを押下し、その押下が継続している状態を表した模式図である。オーディオ曲データの再生時刻が拍タイミングIIの範囲に入っても、鳴らされる音は拍タイミングに対応するコードであることが、ガイド表示203によって示されている。また、この場合に、図2(a)ではコードIの区間の上下に表示されていた線表示が、次のコード区間であるコードIIの区間の上下にまで延長表示され、オーディオ曲データの再生時刻が拍タイミングIIの範囲に入っても、引き続きコードIが演奏されることが予告表示されている。
図3(c)は、図2(b)の状態からユーザがさらに予告入力を継続し、再生時刻が拍タイミングIIの範囲に入ったところを表した模式図である。現在時刻における鳴音予告カーソル200内の点線301は、拍および小節のタイミング情報の変更後の位置が仮決め状態であることを表している。
図3(d)は、図3(c)の状態からユーザが演奏入力を行うことによってタイミング情報が仮決めの状態から修正された状態を表した模式図である。現在時刻の鳴音予告カーソル200内の実線302は、拍および小節のタイミング情報の変更後の位置が修正後であることを表している。点線303は、変更前の位置を表している。
図4(e)は、拍タイミングIに鳴音予告カーソル200があるときに、ユーザが予告入力ボタンを押下し、演奏入力を行わずに予告入力ボタンを離したときの模式図である。再生時刻が拍タイミングIの範囲でも、鳴らされる音は拍タイミングIIに対応するコードとなることが、ガイド表示401によって示されている。現在時刻の鳴音予告カーソル200内の点線402は、拍および小節のタイミング情報の変更後の位置が仮決め状態であることを表している。
図4(f)は、図4(e)の状態からユーザが演奏入力を行うことによってタイミング情報が仮決めの状態から修正された状態を表した模式図である。現在時刻の鳴音予告カーソル200内の実線403は、拍および小節のタイミング情報の変更後の位置が修正後であることを表している。点線404は、変更前の位置を表している。
図5は、本実施形態によるコード演奏のシーケンス例を示す図である。同図において、(a)、(b)、(c)、(d)、(e)の表示はそれぞれ、上述した図2から図4の(a)、(b)、(c)、(d)、(e)の状態に対応している。また、図5の上部に示されている「C」「G」「Am」「F」はコード記号であり、601〜606の存在する各小節において、2拍ごとに区切られた区間に割り当てられているコードを表している。601〜606の存在する小節は、それぞれ4拍で1小節を構成する4拍子の場合の例であり、2拍ごとに和音が割り当てられている。
図5の601、603、または606の状態は、ユーザが、予告入力ボタンを押下した(「↓」のマーク)後に、元々はコードCが鳴る拍タイミングにおいて演奏入力(「▼」のマーク)を行い、その後予告入力ボタンを離した(「↑」のマーク)状態を示している。この場合には、演奏入力が行われた「▼」の時点(位置)で、そのまま元のコードCが鳴らされる。
図5の602の状態は、ユーザが、元々はコードAmが鳴る拍タイミングにおいて、予告入力ボタンを押下(602(b))した後に、演奏入力を行わずに、Amが鳴る拍タイミング内ですぐに予告入力ボタンを離し(602(e))、その後Amが鳴る拍タイミング内で演奏入力を行った(602(f))状態を示している。この場合には、演奏入力を行った図5の602(f)の時点で、本来はAmが鳴る拍タイミングであるにもかかわらず、次のコードFが先行して鳴らされる。このように、ユーザは、予告入力ボタンを押下した後にすぐに離すことにより、次の拍タイミング(または小節タイミング)で鳴らされるコード音を演奏入力によって鳴らすことが可能となる。
図5の604の状態は、ユーザが予告入力ボタンを押しても(604(b))、演奏入力を行わなければ状態は変化しないことを表している。
図5の605の状態は、ユーザが、元々はコードAmが鳴る拍タイミングにおいて、予告入力ボタンを押下(605(b))した後に、演奏入力を行わずに、Amが鳴る拍タイミング内ですぐに予告入力ボタンを離し(605(e))、その後コードFが鳴る拍タイミング内で演奏入力を行った(605の「▼」)状態を示している。この場合には、演奏入力を行った図5の605の「▼」マークの時点で、コードFがそのまま鳴らされる。
以上の動作例を実現する本実施形態の詳細な制御動作について、以下に説明する。
図6は、図1のCPU101によるオーディオ曲データの解析の結果RAM103上に生成されるコードデータの構成例を示す図である。コードデータ1〜n(nはオーディオ曲データのコード数)のそれぞれは、コード種類と、コード開始時刻と、小節通し番号と、拍通し番号の各情報を有する。CPU101は、ユーザによる演奏入力が行われた場合等に、現在演奏されているオーディオ曲データの再生位置に応じた小節および拍タイミングに対応する小節通し番号および拍通し番号を有するコードデータ中のコード種類のコード音を生成して、図1の発音部108から発音させる。
図7は、ユーザが予告入力ボタンを押下することにより、図2から図4または図5で説明したようにしてコードの演奏タイミングを変更させるために、CPU101が生成するコード修正差分データの構成例を示す図である。コード修正差分データ1〜m(mは修正箇所数)は、ユーザによる演奏入力が行われた小節および拍タイミングに対応する小節通し番号および拍通し番号を有する図6のコードデータについて、コード開始時刻を修正する情報が保持される。CPU101は、このコード修正差分データを順次参照することにより、ユーザが予告入力ボタンを押下した後に操作された演奏入力が発生したタイミングで再生される小節または拍に関連付けて鳴音させるコードの再生タイミングを、その小節または拍より前のタイミングまたは後ろのタイミングにずらす変更を実現する。
図8は、図1のCPU101がROM102に記憶された制御プログラム実行することにより実現されるオーディオ曲データのコード演奏処理の例を示すフローチャートである。
CPU101はまず、入力部104からのユーザによるオーディオ曲データの選択動作を受け付ける(ステップS801)。この結果、CPU101は、ユーザが選択したオーディオ曲データを、例えばROM102からRAM103に読み込む。
次に、CPU101は、ユーザによる入力部104での指示に従って、RAM103に読み込んだオーディオ曲データに対して、コード解析処理を実行する(ステップS802)。この結果、図6に例示されるコードデータがRAM103上に生成される。
次に、CPU101は、ユーザによる入力部104での指示に従って、RAM103上のオーディオ曲データの再生を開始する(ステップS803)。
その後、CPU101は、演奏およびタイミング修正処理を実行する(ステップ804)。
オーディオ曲データの再生が終了すると、CPU101は、図8のフローチャートのコード演奏処理を終了する。
図9は、図8のステップS804の演奏およびタイミング修正処理の詳細な処理例を示すフローチャートである。
まず、CPU101は、鳴音コード変更処理を実行する(ステップS901)。ここではCPU101は、解析した小節および拍の再生時に、その小節および拍に関連付けられているコード情報の再生タイミングをその小節または拍より前のタイミングまたは後ろのタイミングにずらすことを、図1の入力部104の予告入力ボタンを使ってユーザに予告入力させる。そして、CPU101は、上述の予告入力の状態に基づいて、次に演奏入力の操作が発生したタイミングで再生される小節または拍に関連付けて鳴音させるコードを変更する。この処理の詳細については、図10から図12を用いて後述する。
次に、CPU101は、ステップS901での鳴音コード変更処理の結果に基づいて、表示部105に表示する前述した図2から図4で例示される鳴音予告カーソル200やガイド表示203、401による予告表示を更新する(ステップS902)。
続いて、CPU101は、図1の電子楽器109からMIDI I/F106を介してRAM103のノートバッファに、演奏入力が有るか否かを判定する(ステップS903)。
演奏入力が無くステップS903の判定がNOならば、CPU101は、ステップS911の再生終了の判定処理にジャンプする。
演奏入力が有ってステップS903の判定がYESになると、CPU101は、ステップS901の鳴音コード変更処理によって、タイミング情報がRAM103に一時保存されているか否かを判定する(ステップS904)。このタイミング情報は、前述した図3(c)の301や図3(d)の302、303,または図4(e)の402や図4(f)の403、404等の、タイミングのガイドを表示するための情報である。
タイミング情報がRAM103に一時保存されておらずステップS904の判定がNOならば、CPU101は、ステップS910の発音処理にジャンプする。
タイミング情報がRAM103に一時保存されておりステップS904の判定がYESならば、CPU101は、現在時刻がフレーズの先頭であるか否かを判定する(ステップS905)。
現在時刻がフレーズの先頭でステップS905の判定がYESならば、CPU101は、RAM103に一時保存されているタイミング情報を決定して(ステップS906)、タイミング表示を更新する(ステップS907)。すなわち、前述した図3(d)の302、303や図4(f)の403、404の状態が表示される。
現在時刻がフレーズの先頭ではなくステップS905の判定がNOならば、CPU101はさらに、タイミング情報はまだ決定されていないか否かを判定する(ステップS908)。
タイミング情報はまだ決定されておらずステップS908の判定がYESならば、CPU101は、RAM103に一時保存されているタイミング情報に基づいて、タイミングを変更するための仮表示を更新する(ステップS909)。すなわち、前述した図3(c)の301や図4(e)の402の状態が表示される。タイミング情報が決定されておりステップS908の判定がNOならば、ステップS909の処理はスキップされる。
以上の一連の制御処理の後、CPU101は、図6に例示されるコードデータまたは図7に例示されるコード修正差分データに基づくコード音の発音処理を実行する(ステップS910)。
最後に、CPU101は、オーディオデータ曲の再生が終了したか否かを判定する(ステップS911)。再生が終了しておらずステップS911の判定がNOならば、ステップS901の処理に戻って、コード演奏が継続される。オーディオ曲データの末尾に達しているか、またはユーザによる入力部104からの指示により再生が終了し、ステップS911の判定がYESになると、図9のフローチャートの処理が終了して、図8のステップS804の演奏およびタイミング修正処理が終了し、全体の処理が終了する。
図10から図12は、図9のステップS901の鳴音コード変更処理の詳細な処理例を示すフローチャートである。
まず、CPU101は、予告入力状態がオン(以下「ON」と記載する))か否かを判定する(ステップS1001)。ユーザが入力部104の予告入力ボタンを押下すると、例えばRAM103上の予告入力状態を示すフラグである予告入力状態フラグがONとなって、ステップS1001の判定がYESになる。すなわち、ここでは、予告入力状態がOFFからONに変化したか否かが判定される。
ステップS1001の判定がYESになると、CPU101は、RAM103の図6に例示されるコードデータのコード開始時刻を参照することにより、予告入力状態フラグがONとなったタイミングにおいて鳴音されるコードがフラグON時のコードとしてRAM103に記憶される。
その後、CPU101は、RAM103上にタイミング情報が一時保存されていればそのタイミング情報をクリアする(ステップS1003)。その後、CPU101は、図10から図12のフローチャートの処理を終了して図9のステップS901の鳴音コード変更処理を終了する。この状態は、図2(b)の状態に対応する。
なお、ステップS1001で予告入力状態フラグがONの状態が検出された後は、予告入力状態フラグは「継続」の状態に変更される。
次に、予告入力状態フラグがONではなくステップS1001の判定がNOならば、CPU101は、予告入力状態フラグが「継続」を示しているか否かを判定する(ステップS1004)。すなわち、ここでは、ユーザが入力部104の予告入力ボタンの押下を継続しているか否かが判定される。
予告入力状態フラグが「継続」を示しておりステップS1004の判定がYESならば、CPU101はさらに、RAM103に記憶されているフラグON時のコードのコード開始時刻(図6参照)が、現在時刻において発音されるべきコードのコード開始時刻よりも前であるか否かを判定する(ステップS1005)。すなわち、現在時刻におけるコードが、予告入力状態フラグがONされた時点でのコードと異なり、次のコード区間を再生しているのか否かが判断される。
RAM103に記憶されているフラグON時のコードのコード開始時刻が現在時刻において発音されるべきコードのコード開始時刻よりも前でステップS1005の判定がYESならば、CPU101は、図9のステップS910で発音されるべきRAM103上の鳴音コードの変数に、RAM103に記憶されているフラグON時のコードをセットする(ステップS1006)。そして、CPU101は、そのときのタイミング情報をRAM103に一時保存する(ステップS1007)。この状態は、図3(c)の状態に対応する。
RAM103に記憶されているフラグON時のコードのコード開始時刻が現在時刻において発音されるべきコードのコード開始時刻よりも前ではなくステップS1005の判定がNOならば、CPU101は、RAM103上の鳴音コードの変数に、現在時刻で発音されるべきコードをセットする(ステップS1008)。この状態は、図2(b)の状態に対応する。
以上のステップS1007またはS1008の処理の後、CPU101は、図10から図12のフローチャートの処理を終了して図9のステップS901の鳴音コード変更処理を終了する。
予告入力状態フラグが「継続」を示しておらずステップS1004の判定がNOならば、CPU101は図11のフローチャートの処理に進んで、予告入力状態フラグが「継続」からOFFに変化したか否かを判定する(ステップS1009)。すなわち、ここでは、ユーザが入力部104の予告入力ボタンを離したか(押下を終了したか)否かが判定される。
予告入力状態フラグが「継続」からOFFに変化しステップS1009の判定がYESならば、CPU101はさらに、RAM103に記憶されているフラグON時のコードのコード開始時刻(図6参照)が、現在時刻において発音されるべきコードのコード開始時刻よりも前であるか否かを判定する(ステップS1010)。
RAM103に記憶されているフラグON時のコードのコード開始時刻が現在時刻において発音されるべきコードのコード開始時刻よりも前でステップS1010の判定がYESならば、CPU101はさらに、予告入力ボタンの押下の継続中にユーザにより演奏入力があったか否かを判定する(ステップS1011)。
ステップS1011の判定がYESならば、CPU101は、RAM103上の鳴音コードの変数に、現在時刻で発音されるべきコードをセットする(ステップS1012)。その後、RAM103に一時保存されているタイミング情報を決定して(ステップS1013)、タイミング表示を更新する(ステップS1014)。すなわち、前述した図3(d)の302、303の状態が表示される。その後、CPU101は、図10から図12のフローチャートの処理を終了し、図9のステップS901の鳴音コード変更処理を終了する。
ステップS1011の判定がNOならば、CPU101は、RAM103上の鳴音コードの変数に、現在時刻で発音されるべきコードをセットする(ステップS1015)。そして、CPU101は、そのときのタイミング情報をRAM103に一時保存する(ステップS1016)。この状態は、図3(c)の状態に対応する。
RAM103に記憶されているフラグON時のコードのコード開始時刻が、現在時刻において発音されるべきコードのコード開始時刻よりも前ではなくステップS1010の判定がNOならば、CPU101は、RAM103上の鳴音コードの変数に、図6に例示されるRAM103上のコードデータのコード開始時刻を参照することにより、現在時刻の次の時刻で発音されるべきコードをセットする(ステップS1017)。この状態は、図4(e)の状態に対応する。
予告入力状態フラグが「継続」からOFFに変化しておらず、すなわち、予告入力状態フラグがすでに「OFF」になっていてそのままの状態でステップS1009の判定がNOならば、CPU101は、図12のフローチャートの処理に進む。CPU101は、現在時刻に鳴音されるべきコードのコード開始時刻が、RAM103にセットされている鳴音コードのコード開始時刻よりも前であるか否かを判定する(ステップS1018)。
現在時刻に鳴音されるべきコードのコード開始時刻が鳴音コードのコード開始時刻よりも前でステップS1018の判定がYESならば、CPU101は、現在時刻のタイミング情報をRAM103に一時保存する(ステップS1019)。この状態は、図4(e)の状態に対応する。その後、CPU101は、図10から図12のフローチャートの処理を終了し、図9のステップS901の鳴音コード変更処理を終了する。
現在時刻に鳴音されるべきコードのコード開始時刻が鳴音コードのコード開始時刻よりも前ではなくステップS1018の判定がNOならば、CPU101は、現在時刻に鳴音されるべきコードのコード開始時刻が鳴音コードのコード開始時刻よりも後であるか否かを判定する(ステップS1020)。
ステップS1020の判定がYESならば、CPU101は、RAM103の鳴音コードの変数に、現在時刻で発音されるべきコードをセットし(ステップS1021)、RAM103にタイミング情報が一時保存されていればそれをクリアする(ステップS1022)。ステップS102の判定がNOならば、CPU101は、ステップS1021とS1022はスキップする。これらの状態は、図2(a)の状態に対応する。その後、図10から図12のフローチャートの処理を終了し、図9のステップS901の鳴音コード変更処理を終了する。
以上のようにして、本実施形態によれば、演奏入力中の簡単な予告入力ボタンの操作によって、実際のコード弾きのように次の音を弾くタイミングを自分で制御するという直感的な動作のみでタイミング情報を修正することが可能となる。
なお、上記の実施例については、様々な形での実現が可能である。すなわち、オーディオ曲データの再生の進行中に、まず予告入力ボタンが押下されると、その時点(再生時刻)に元々設定されているコードが保持されて、コードの切り替わりタイミングが後ろへずれる予告の状態となる。すなわち、図2(b)で、コードIが保持され(203)、コードIIの期間へ食い込んで、切り替わりタイミングが後ろにずれるモードとなる。
その後、予告入力ボタンの押下が継続されたままで、演奏入力があった場合、コードIが発音される。ここで、その演奏入力の時点に元々設定されているコードがコードIの期間であった場合には、元々設定されているコードIと同じコードIが発音されるに過ぎない。すなわち、予告入力ボタンの押下後、次のコードへの切り替わりタイミングを過ぎるまえに演奏入力された場合、演奏されるコードはコードIであり、変化していない。一方、予告入力ボタンの押下後、押下が継続されたままで、次のコードへの切り替わりタイミングを過ぎてから演奏入力がなされた場合、元々設定されているコードIIではなく、コードIが保持されたままコードIが発音されることとなる。
この場合、一例として、このような、予告入力ボタンの押下が継続されたままで、演奏入力がなされた時点を、新たなコードIからコードIIへの切り替わりタイミングとすることが出来る。ただし、この演奏入力の時点が、予告入力ボタンの押下後、元々設定されていた次のコードへの切り替わりタイミングを過ぎるまえに演奏入力された場合、「コードの切り替わりタイミングを後ろへずらす予告の状態」にもかかわらず、コードの切り替わりタイミングより前で演奏入力されたことから、このような場合には、この演奏入力がなされた時点を、新たなコードIからコードIIへの切り替わりタイミングとはしないこととしても良い。この場合には、元々設定されているコードIからコードIIへの切り替わりタイミングをそのまま保持するようにすればよい。
またさらに、このように予告入力ボタンが押下され、その押下が継続されたままで演奏入力がなされ、さらにその後予告入力ボタンが離された場合に、この予告入力ボタンを離した時点を、新たなコードIからコードIIへの切り替わりタイミングとするようにしても良い。このようにする場合も、上記と同様、この予告入力ボタンの離されたタイミングが、元々設定されていた次のコードへの切り替わりタイミングを過ぎるよりも前であった場合には、「コードの切り替わりタイミングを後ろへずらす予告の状態」にもかかわらず、コードの切り替わりタイミングより前で予告入力ボタンが離されたことから、この予告入力ボタンが離されたタイミングを、新たなコードIからコードIIへの切り替わりタイミングとはしないこととしても良い。この場合にも、元々設定されているコードIからコードIIへの切り替わりタイミングをそのまま保持するようにすればよい。
他方、上記のように、オーディオ曲データの再生の進行中に、予告入力ボタンが押下されたが、演奏入力が行われないまま、予告入力ボタンが離された場合、すなわち、単に予告入力ボタンが押下されてから離された場合には、その時点(再生時刻)に元々設定されているコードの次のコードが前倒しされるモードになり、コードの切り替わりタイミングが前へずれる予告の状態となる。すなわち、図4(e)で、コードIIが前倒しとなり(401)、コードIの期間へ食い込んで、切り替わりタイミングが前にずれるモードとなる。
このように切り替わりタイミングが前にずれるモードとなった場合に、その後演奏入力があった場合は、その時点(再生時刻)に元々設定されているコードがコードIの期間であっても、コードIIが発音され、この演奏入力があったタイミングが、新たなコードIからコードIIへの切り替わりタイミングとされるようにすることができる。このようにすることで、その時点(再生時刻)に元々設定されているコードIの次のコードIIが前倒しされることとなり、コードIからコードIIへの切り替わりのタイミングが前へずれて設定できるようになる。
一方、切り替わりタイミングが前にずれるモードとなっていた場合であっても、元々設定されていた次のコードへの切り替わりタイミングを過ぎてしまってから演奏入力がなされた場合、「コードの切り替わりタイミングを前へずらす予告の状態」にもかかわらず、コードの切り替わりタイミングを過ぎてから演奏入力されたことから、このような場合には、この演奏入力がなされた時点を、新たなコードIからコードIIへの切り替わりタイミングとはしないこととしても良い。この場合には、元々設定されているコードIからコードIIへの切り替わりタイミングをそのまま保持するようにすればよい。
またさらに、オーディオ曲データの再生の進行中に、予告入力ボタンが押下されたが、演奏入力が行われないまま予告入力ボタンが離された場合であっても、例えばその予告入力ボタンが離されたタイミングが、元々設定されていた次のコードへの切り替わりタイミングを過ぎてしまっていたような場合は、「コードの切り替わりタイミングを前へずらす予告」とできない(既に切り替わりタイミングを過ぎてしまっている)ことから、このような場合にも、切り替わりタイミングが前にずれるモードにはしないこととしても良い。このような場合にも、元々設定されているコードIからコードIIへの切り替わりタイミングをそのまま保持するようにすればよい。
あるいはまた、コードIからコードIIへの新たな切り替わりタイミングを設定する場合、上記以外のタイミングで切り替わりタイミングを設定することも可能である。要するに、演奏入力が行われた際に発音させる和音が前後いずれの和音となるか、が適切に設定できれば差し支えない。従って、例えば、図5の602の場合に、演奏入力が行われた(f)のタイミングで無く、予告入力ボタンが離された(e)のタイミングを新たな切り替わりタイミングとして設定しても良い。あるいは、(e)と(f)の間、例えばちょうど真ん中にコードIからIIへの切り替わりタイミングを設定するようにしても良い。同様に、図5の601や603の場合も、予告入力ボタンが離されたタイミングで無く、その前に演奏入力が行われた時点を新たなコード切り替わりタイミングとして設定しても良い。
また、本発明を、演奏操作子としての通常の鍵盤や、スピーカあるいはオーディオ出力端子等の楽音出力部を有するキーボードや電子ピアノ等の鍵盤楽器や、他の形態の演奏入力操作子を有する他の電子楽器等で実現することも可能である。
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
記憶されている曲データを順次読み出すとともに、当該曲データの複数の再生位置それぞれに関連付けて記憶されたコード情報を読み出す曲データ読み出し手段と、
前記読み出された曲データを再生する曲データ再生手段と、
前記曲データ再生手段による前記曲データの再生中に外部から操作入力及び操作解除がなされた場合に、当該操作入力及び操作解除のタイミングを取得する第1のタイミング取得手段と、
演奏操作がなされた場合に、当該演奏操作のタイミングを取得する第2のタイミング取得手段と、
前記第1及び第2のタイミング取得手段により取得されたタイミングに基づいて、前記曲データ読出し手段による前記コード情報の読出しタイミングを制御するタイミング制御手段と、
前記演奏操作のタイミングに応答して、前記読出し手段により読み出された前記コード情報に基づいたコード音を再生するコード再生手段と、
を備えることを特徴とするコード演奏タイミング指定装置。
(付記2)
前記タイミング制御手段は、前記外部からの操作入力と操作解除との間に前記コード読出しタイミング及び前記演奏操作タイミングが存在する場合は、当該読出しタイミングにて読み出されるべきコード情報を、前記操作解除のタイミングで読み出すように制御する、付記1に記載のコード演奏タイミング指定装置。
(付記3)
前記タイミング制御手段は、前記外部からの操作入力と操作解除との間に前記コード読出しタイミング及び前記演奏操作タイミングのいずれもが存在せず、前記操作解除のタイミングの後に前記演奏操作タイミング、続いて前記コード情報の読み出しタイミングが到来する場合は、当該読出しタイミングにて読み出されるべきコード情報を前記演奏操作タイミングで読み出すように制御する、付記1又は付記2に記載のコード演奏タイミング指定装置。
(付記4)
前記コード再生手段にて再生されるコード音を、前記操作入力のタイミングに応答してガイド表示するコードガイド表示手段を更に備える、
ことを特徴とする付記1乃至付記3のいずれかに記載のコード演奏タイミング指定装置。
(付記5)
付記1乃至付記4のいずれかに記載のコード演奏タイミング指定装置と、
前記演奏操作を行う演奏入力操作子と、
前記曲データ再生手段及び前記コード再生手段によって再生される音を発音する楽音出力部とを備える電子楽器。
(付記6)
コード演奏タイミング指定操作装置が、
記憶されている曲データを順次読み出すともに、当該曲データの複数の再生位置それぞれに関連付けて記憶されたコード情報を読み出し、
前記読み出された曲データを再生し、
前記曲データの再生中に外部から操作入力及び操作解除がなされた場合に、当該操作入力及び操作解除のタイミングを取得し、
演奏操作がなされた場合に、当該演奏操作のタイミングを取得し、
前記取得された操作入力タイミング、操作解除タイミング及び演奏操作のタイミングに基づいて、前記コード情報の読出しタイミングを制御し、
前記演奏操作のタイミングに応答して、前記読み出されたコード情報に基づいたコード音を再生する、コード演奏タイミング指定方法。
(付記7)
コード演奏タイミング指定操作装置として用いられるコンピュータに、
記憶されている曲データを順次読み出すともに、当該曲データの複数の再生位置それぞれに関連付けて記憶されたコード情報を読み出すステップ、
前記読み出された曲データを再生するステップと、
前記曲データの再生中に外部から操作入力及び操作解除がなされた場合に、当該操作入力及び操作解除のタイミングを取得するステップと、
演奏操作がなされた場合に、当該演奏操作のタイミングを取得するステップと、
前記取得された操作入力タイミング、操作解除タイミング及び演奏操作のタイミングに基づいて、前記コード情報の読出しタイミングを制御するステップと、
前記演奏操作のタイミングに応答して、前記読み出されたコード情報に基づいたコード音を再生するステップと、
を実行させるプログラム。
101 CPU
102 ROM
103 RAM
104 入力部
105 表示部
106 MIDI I/F(MIDIインタフェース部)
107 バス
110 発音部
109 電子楽器

Claims (7)

  1. 記憶されている曲データの各再生位置に対応するコード情報を特定する特定手段と、
    前記記憶されている曲データを順次読み出すとともに、前記特定手段により特定される前記曲データの複数の再生位置それぞれに関連付けて記憶されたコード情報を読み出す読出手段と、
    前記読出手段により読み出された曲データを再生する曲データ再生手段と、
    前記曲データに基づく曲の再生中に、第1の操作子による演奏操作のタイミングに応答して前記読出手段により読み出された前記コード情報に基づいたコード音を再生するコード再生手段と、
    前記曲データに基づく曲の再生中に、前記第1の操作子による演奏操作のタイミングと、前記第1の操作子による演奏操作の前に行われる第2の操作子の操作入力のタイミングと、前記第2の操作子の操作解除のタイミングとに基づいて、前記読出手段による前記コード情報の読出しタイミングを制御することで、前記コード再生手段により前記第1の操作子による演奏操作に対応して再生されるコード情報を変更する制御手段と、
    を備えることを特徴とするコード演奏タイミング指定装置。
  2. 前記制御手段は、前記第2の操作子の操作入力と操作解除との間に前記コード情報が読み出されるべき読出しタイミング及び前記演奏操作のタイミングが存在する場合は、前記読出しタイミングにて読み出されるべきコード情報を、前記操作解除のタイミングで読み出すように制御する、請求項1に記載のコード演奏タイミング指定装置。
  3. 前記制御手段は、前記第2の操作子の操作入力と操作解除との間に前記コード情報が読み出されるべき読出しタイミング及び前記演奏操作タイミングのいずれもが存在せず、前記操作解除のタイミングの後に前記演奏操作タイミング、続いて前記コード情報の読み出しタイミングが到来する場合は、前記読出しタイミングにて読み出されるべきコード情報を前記操作解除のタイミングの後に行われる前記演奏操作のタイミングで読み出すように制御する、請求項1又は請求項2に記載のコード演奏タイミング指定装置。
  4. 前記コード再生手段にて再生されるコード音を、前記操作入力のタイミングに応答してガイド表示するコードガイド表示手段を更に備える、
    ことを特徴とする請求項1乃至請求項3のいずれかに記載のコード演奏タイミング指定装置。
  5. 請求項1乃至請求項4のいずれかに記載のコード演奏タイミング指定装置と、
    前記演奏操作を行う演奏入力操作子と、
    前記曲データ再生手段及び前記コード再生手段によって再生される音を発音する楽音出力部とを備える電子楽器。
  6. 装置が、
    記憶されている曲データの各再生位置に対応するコード情報を特定する特定処理と、
    前記記憶されている曲データを順次読み出すとともに、前記特定処理により特定される前記曲データの複数の再生位置それぞれに関連付けて記憶されたコード情報を読み出す読出処理と、
    前記読出処理により読み出された曲データを再生する曲データ再生処理と、
    前記曲データに基づく曲の再生中に、第1の操作子による演奏操作のタイミングに応答して前記読出処理により読み出された前記コード情報に基づいたコード音を再生するコード再生処理と、
    前記曲データに基づく曲の再生中に、前記第1の操作子による演奏操作のタイミングと、前記第1の操作子による演奏操作の前に行われる第2の操作子の操作入力のタイミングと、前記第2の操作子の操作解除のタイミングとに基づいて、前記読出処理による前記コード情報の読出しタイミングを制御することで、前記コード再生処理により前記第1の操作子による演奏操作に対応して再生されるコード情報を変更する制御処理と、
    を実行するコード演奏タイミング指定方法。
  7. コンピュータに、
    記憶されている曲データの各再生位置に対応するコード情報を特定する特定処理と、
    前記記憶されている曲データを順次読み出すとともに、前記特定処理により特定される前記曲データの複数の再生位置それぞれに関連付けて記憶されたコード情報を読み出す読出処理と、
    前記読出処理により読み出された曲データを再生する曲データ再生処理と、
    前記曲データに基づく曲の再生中に、第1の操作子による演奏操作のタイミングに応答して前記読出処理により読み出された前記コード情報に基づいたコード音を再生するコード再生処理と、
    前記曲データに基づく曲の再生中に、前記第1の操作子による演奏操作のタイミングと、前記第1の操作子による演奏操作の前に行われる第2の操作子の操作入力のタイミングと、前記第2の操作子の操作解除のタイミングとに基づいて、前記読出処理による前記コード情報の読出しタイミングを制御することで、前記コード再生処理により前記第1の操作子による演奏操作に対応して再生されるコード情報を変更する制御処理と、
    を実行させるプログラム。
JP2014059209A 2014-03-20 2014-03-20 コード演奏タイミング指定装置、方法、およびプログラム Active JP6507477B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014059209A JP6507477B2 (ja) 2014-03-20 2014-03-20 コード演奏タイミング指定装置、方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014059209A JP6507477B2 (ja) 2014-03-20 2014-03-20 コード演奏タイミング指定装置、方法、およびプログラム

Publications (3)

Publication Number Publication Date
JP2015184390A JP2015184390A (ja) 2015-10-22
JP2015184390A5 JP2015184390A5 (ja) 2017-04-27
JP6507477B2 true JP6507477B2 (ja) 2019-05-08

Family

ID=54351010

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014059209A Active JP6507477B2 (ja) 2014-03-20 2014-03-20 コード演奏タイミング指定装置、方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP6507477B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112402952A (zh) * 2019-08-23 2021-02-26 福建凯米网络科技有限公司 一种基于音频和虚拟形象的互动方法及终端

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2531424B2 (ja) * 1992-11-19 1996-09-04 ヤマハ株式会社 自動伴奏装置
JPH07160255A (ja) * 1993-12-09 1995-06-23 Kawai Musical Instr Mfg Co Ltd 電子楽器の自動伴奏装置
JP2001356768A (ja) * 2001-05-08 2001-12-26 Kawai Musical Instr Mfg Co Ltd 電子楽器
JP5005445B2 (ja) * 2007-07-02 2012-08-22 株式会社河合楽器製作所 コード名検出装置及びコード名検出用プログラム

Also Published As

Publication number Publication date
JP2015184390A (ja) 2015-10-22

Similar Documents

Publication Publication Date Title
JP6724879B2 (ja) 再生制御方法、再生制御装置およびプログラム
WO2018056311A1 (ja) 演奏教習装置及び方法
JP4692189B2 (ja) 合奏システム
JP6729052B2 (ja) 演奏指示装置、演奏指示プログラム、および演奏指示方法
JP4487632B2 (ja) 演奏練習装置および演奏練習用コンピュータプログラム
JP6507477B2 (ja) コード演奏タイミング指定装置、方法、およびプログラム
JP2013024967A (ja) 表示装置、表示装置の制御方法およびプログラム
JP6953746B2 (ja) 電子音響装置および音色設定方法
JP5969421B2 (ja) 楽器音出力装置及び楽器音出力プログラム
JP3812984B2 (ja) カラオケ端末装置
JP5338312B2 (ja) 自動演奏同期装置、自動演奏鍵盤楽器およびプログラム
JP6260176B2 (ja) 演奏練習装置、方法、およびプログラム
JP4238237B2 (ja) 楽譜表示方法および楽譜表示プログラム
EP2626781A1 (en) Electronic apparatus and audio guide program
JP5399831B2 (ja) 音楽ゲームシステム及びそのコンピュータプログラム並びに効果音データの生成方法
JP6020134B2 (ja) 演奏データセット編集プログラム及び装置
JP7425558B2 (ja) コード検出装置及びコード検出プログラム
JP2012132991A (ja) 電子楽器
WO2022209557A1 (ja) 電子楽器、電子楽器の制御方法、及びプログラム
JP7008560B2 (ja) 運指表示装置及び運指表示プログラム
JP4238807B2 (ja) 音源用波形データの決定装置
JP2018146716A (ja) 教習装置、教習プログラムおよび教習方法
JP2018105956A (ja) 楽音データ処理方法及び楽音データ処理装置
JP4315116B2 (ja) 電子音楽装置
JP2018049125A (ja) 演奏教習装置、演奏教習プログラム、および演奏教習方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170317

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170317

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180814

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181011

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: 20190305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190318

R150 Certificate of patent or registration of utility model

Ref document number: 6507477

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150