IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ カシオ計算機株式会社の特許一覧

特開2024-102915プログラム、情報処理装置、電子楽器及び演奏ガイド方法
<>
  • 特開-プログラム、情報処理装置、電子楽器及び演奏ガイド方法 図1
  • 特開-プログラム、情報処理装置、電子楽器及び演奏ガイド方法 図2
  • 特開-プログラム、情報処理装置、電子楽器及び演奏ガイド方法 図3
  • 特開-プログラム、情報処理装置、電子楽器及び演奏ガイド方法 図4
  • 特開-プログラム、情報処理装置、電子楽器及び演奏ガイド方法 図5
  • 特開-プログラム、情報処理装置、電子楽器及び演奏ガイド方法 図6
  • 特開-プログラム、情報処理装置、電子楽器及び演奏ガイド方法 図7
  • 特開-プログラム、情報処理装置、電子楽器及び演奏ガイド方法 図8
  • 特開-プログラム、情報処理装置、電子楽器及び演奏ガイド方法 図9
  • 特開-プログラム、情報処理装置、電子楽器及び演奏ガイド方法 図10
  • 特開-プログラム、情報処理装置、電子楽器及び演奏ガイド方法 図11
  • 特開-プログラム、情報処理装置、電子楽器及び演奏ガイド方法 図12
  • 特開-プログラム、情報処理装置、電子楽器及び演奏ガイド方法 図13
  • 特開-プログラム、情報処理装置、電子楽器及び演奏ガイド方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024102915
(43)【公開日】2024-08-01
(54)【発明の名称】プログラム、情報処理装置、電子楽器及び演奏ガイド方法
(51)【国際特許分類】
   G10G 1/00 20060101AFI20240725BHJP
   G10H 1/00 20060101ALI20240725BHJP
【FI】
G10G1/00
G10H1/00 102Z
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023006986
(22)【出願日】2023-01-20
(71)【出願人】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】110001254
【氏名又は名称】弁理士法人光陽国際特許事務所
(72)【発明者】
【氏名】橘 敏之
(72)【発明者】
【氏名】吉野 順
(72)【発明者】
【氏名】川島 立子
【テーマコード(参考)】
5D182
5D478
【Fターム(参考)】
5D182AA16
5D182AB00
5D182AD03
5D478FF06
5D478FF31
(57)【要約】
【課題】楽器演奏のレッスンを効果的に行えるようにする。
【解決手段】情報処理装置の制御部は、楽曲データにおける第1単位区間の長さを円周で表し、楽曲データにおける第1単位区間内の発音タイミングの位置を示す発音タイミング表示141bを円周上の発音タイミングに対応する位置に表示させた円141aを表示部に表示させ、楽曲データに基づく楽曲の進行に合わせて、楽曲の現在位置を示す現在位置アイコン141cを円周上に表示させるとともに、円周上の発音タイミング表示141bを更新する。そして、ユーザにより発音操作されたタイミングと、楽曲データにおける発音タイミングとの差が許容範囲内であった場合に、その発音タイミングに対応する発音タイミング表示141bの表示態様を変化させる。
【選択図】図4
【特許請求の範囲】
【請求項1】
コンピュータに、
楽曲データにおける第1単位区間の長さを円周で表し、前記楽曲データにおける前記第1単位区間内の発音タイミングの位置を示す発音タイミング表示が前記円周上の前記発音タイミングに対応する位置に表示された円を表示部に表示させ、
前記楽曲データに基づく楽曲の進行に合わせて、前記楽曲の現在位置を示す現在位置表示を前記円周上に表示させるとともに、前記円周上の前記発音タイミング表示を更新し、
演奏者により発音操作されたタイミングと、前記発音タイミングとの差が許容範囲内であった場合に、前記発音タイミングに対応する前記発音タイミング表示の表示態様を変化させる、
処理を実行させるためのプログラム。
【請求項2】
前記処理は、
前記演奏者により発音操作されたタイミングと、前記発音タイミングとの差が許容範囲内であり、かつ、前記演奏者により発音操作された操作子の音高が前記発音タイミングにおいて許容される音高である場合に、前記発音タイミングに対応する前記発音タイミング表示の表示態様を変化させる、
請求項1に記載のプログラム。
【請求項3】
前記処理は、さらに、
前記楽曲データにおける、前記円周上への前記発音タイミング表示の表示対象となっている前記第1単位区間内のコードのコード名を、前記円周上の前記コードに対応する区間に対応付けて表示させる、
請求項1に記載のプログラム。
【請求項4】
前記処理は、さらに、
鍵盤の模式図を前記円と併せて前記表示部に表示させ、前記楽曲データに基づく楽曲の進行に合わせて、現在進行中の区間の発音において許容される音高を前記鍵盤の模式図に表示させる、
請求項1に記載のプログラム。
【請求項5】
前記処理は、
前記演奏者により発音操作されたタイミングにおける前記楽曲の現在位置を含む第2単位区間内の全ての発音タイミングを前記楽曲データから取得し、
前記演奏者により発音操作されたタイミングと、前記取得した全ての発音タイミングとを比較し、前記演奏者により発音操作されたタイミングと、いずれかの前記発音タイミングとの差が許容範囲内である場合に、前記発音タイミングに対応する前記発音タイミング表示の表示態様を変化させる、
請求項1に記載のプログラム。
【請求項6】
前記処理は、
前記演奏者により発音操作されたタイミングにおける前記楽曲の現在位置を含む第2単位区間内の発音タイミングを前記楽曲データから取得し、
前記取得した発音タイミングの早い方の発音タイミングから順次前記演奏者により発音操作されたタイミングと比較し、前記演奏者により発音操作されたタイミングとの差が許容範囲内となる発音タイミングが存在した場合に、前記発音タイミングに対応する前記発音タイミング表示の表示態様を変化させるとともに前記発音タイミングの次の発音タイミングの情報を記憶部に記憶させ、前記演奏者により発音操作されたタイミングとの差が許容範囲内となる発音タイミングが存在しない場合であって、前記演奏者により発音操作されたタイミングより後の発音タイミングが存在した場合に、その発音タイミングの情報を記憶部に記憶させ、
前記演奏者により発音操作が行われたタイミングにおける前記楽曲の現在位置を含む第2単位区間が、前回前記演奏者により発音操作が行われたタイミングにおける前記楽曲の現在位置を含む第2単位区間である場合、前記演奏者により発音操作されたタイミングを、前記記憶部に記憶されている発音タイミング以降の発音タイミングと比較する、
請求項1に記載のプログラム。
【請求項7】
前記処理は、さらに、
前記楽曲の進行中において前記演奏者により発音操作されたタイミングと前記発音タイミングとの差が許容範囲内であった回数を正解回数としてカウントし、前記正解回数に基づいて、前記演奏者の発音に対するレベルを決定する、
請求項1に記載のプログラム。
【請求項8】
前記処理は、
前記レベルに応じて、少なくとも前記楽曲データ又は前記表示部における表示態様を変更する、
請求項7に記載のプログラム。
【請求項9】
楽曲データにおける第1単位区間の長さを円周で表し、前記楽曲データにおける前記第1単位区間内の発音タイミングの位置を示す発音タイミング表示が前記円周上の前記発音タイミングに対応する位置に表示された円を表示部に表示させ、
前記楽曲データに基づく楽曲の進行に合わせて、前記楽曲の現在位置を示す現在位置表示を前記円周上に表示させるとともに、前記円周上の前記発音タイミング表示を更新し、
演奏者により発音操作されたタイミングと、前記発音タイミングとの差が許容範囲内であった場合に、前記発音タイミングに対応する前記発音タイミング表示の表示態様を変化させる、
制御部を備える情報処理装置。
【請求項10】
楽曲データにおける第1単位区間の長さを円周で表し、前記楽曲データにおける前記第1単位区間内の発音タイミングの位置を示す発音タイミング表示が前記円周上の前記発音タイミングに対応する位置に表示された円を表示部に表示させ、
前記楽曲データに基づく楽曲の進行に合わせて、前記楽曲の現在位置を示す現在位置表示を前記円周上に表示させるとともに、前記円周上の前記発音タイミング表示を更新し、
演奏者により発音操作されたタイミングと、前記発音タイミングとの差が許容範囲内であった場合に、前記発音タイミングに対応する前記発音タイミング表示の表示態様を変化させる、
制御部を備える電子楽器。
【請求項11】
コンピュータが、
楽曲データにおける第1単位区間の長さを円周で表し、前記楽曲データにおける前記第1単位区間内の発音タイミングの位置を示す発音タイミング表示が前記円周上の前記発音タイミングに対応する位置に表示された円を表示部に表示させ、
前記楽曲データに基づく楽曲の進行に合わせて、前記楽曲の現在位置を示す現在位置表示を前記円周上に表示させるとともに、前記円周上の前記発音タイミング表示を更新し、
演奏者により発音操作されたタイミングと、前記発音タイミングとの差が許容範囲内であった場合に、前記発音タイミングに対応する前記発音タイミング表示の表示態様を変化させる、
演奏ガイド方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報処理装置、電子楽器及び演奏ガイド方法に関する。
【背景技術】
【0002】
従来、円周を1拍、1小節又は連続する複数の小節等の単位区間に対応させ、円周上の位置により楽器の演奏タイミングを示すリズム譜が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平11-133950号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載のリズム譜では、演奏するタイミングが表示されているだけであるので、楽器演奏のレッスンを効果的に行うことはできない。例えば、特許文献1のリズム譜では、リズム譜が示す演奏タイミングにユーザが正しく演奏できたかを認識することはできない。
【0005】
本発明の課題は、楽器演奏のレッスンを効果的に行えるようにすることである。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明の一態様のプログラムは、
コンピュータに、
楽曲データにおける第1単位区間の長さを円周で表し、前記楽曲データにおける前記第1単位区間内の発音タイミングの位置を示す発音タイミング表示が前記円周上の前記発音タイミングに対応する位置に表示された円を表示部に表示させ、
前記楽曲データに基づく楽曲の進行に合わせて、前記楽曲の現在位置を示す現在位置表示を前記円周上に表示させるとともに、前記円周上の前記発音タイミング表示を更新し、
ユーザにより発音操作されたタイミングと、前記発音タイミングとの差が許容範囲内であった場合に、前記発音タイミングに対応する前記発音タイミング表示の表示態様を変化させる、
処理を実行させる。
【発明の効果】
【0007】
本発明によれば、楽器演奏のレッスンを効果的に行うことが可能となる。
【図面の簡単な説明】
【0008】
図1】本発明の実施形態に係る電子楽器システムの全体構成例を示す図である。
図2図2(a)は楽譜の一例を示す図であり、図2(b)は、図2(a)の楽譜に対応する楽曲データにおけるノートオンイベントのタイミング情報の一例を示す図である。
図3】第1の実施形態において図1の情報処理装置の制御部により実行される演奏レッスン処理Aの流れを示すフローチャートである。
図4】第1の実施形態における演奏ガイドの一例を示す図である。
図5図3のステップS4において実行される発音タイミング表示処理の流れを示すフローチャートである。
図6図3のステップS9において実行される正解判定処理の流れを示すフローチャートである。
図7】正解判定処理の変形例を示すチャートである。
図8図3のステップS12において実行されるレベル更新処理の流れを示すフローチャートである。
図9】第2の実施形態において図1の情報処理装置の制御部により実行される演奏レッスン処理Bの流れを示すフローチャートである。
図10】第2の実施形態における演奏ガイドの一例を示す図である。
図11】楽譜の各小節に対応する音高ガイド表示の一例を示す図である。
図12図9のステップS26において実行される鍵盤表示処理の流れを示すフローチャートである。
図13図9のステップS32において実行される正解表示処理の流れを示すフローチャートである。
図14】アクセントの有無によって演奏タイミング表示を変えた演奏ガイドの一例を示す図である。
【発明を実施するための形態】
【0009】
以下に、本発明の実施形態について、図面を用いて説明する。但し、以下に述べる実施形態には、本発明を実施するために技術的に好ましい種々の限定が付されている。そのため、本発明の技術的範囲を以下の実施形態及び図示例に限定するものではない。
【0010】
<第1の実施形態>
[電子楽器システム100の構成]
図1は、本発明の第1の実施形態に係る電子楽器システム100の全体構成例を示す図である。
図1に示すように、電子楽器システム100は、情報処理装置1と、電子楽器2と、を備えて構成されている。情報処理装置1と電子楽器2は、無線又は有線によりデータ送受信可能に通信接続されている。
【0011】
[情報処理装置1の構成]
情報処理装置1は、電子楽器2のユーザ(演奏者)に電子楽器2の演奏レッスンに関する情報を提供する装置である。
情報処理装置1としては、例えば、タブレットPC(Personal Computer)、ノートPC、スマートフォン等が適用可能である。
【0012】
情報処理装置1は、図1に示すように、制御部11、記憶部12、入力部13、表示部14、通信部15、出力部16等を備えて構成され、各部はバス17により接続されている。
【0013】
制御部11は、少なくとも1つのCPU(Central Processing Unit)、RAM(Random Access Memory)等を備えて構成され、情報処理装置1の各部を制御するコンピュータである。具体的には、制御部11のCPUは、記憶部12に記憶されているシステムプログラムや各種アプリケーションプログラムの中から指定されたプログラムを読み出してRAMに展開し、展開されたプログラムとの協働で、図3に示す演奏レッスン処理Aを始めとする各種処理を実行する。
【0014】
記憶部12は、不揮発性の半導体メモリやHDD(Hard Disk Drive)等により構成されている。記憶部12は、情報処理装置1のシステムプログラムや各種アプリケーションプログラム、プログラムの実行に必要なデータを記憶する。記憶部12は、情報処理装置1に内蔵されたものに限られず、外付けHDD、USBメモリ等の情報処理装置1に対して着脱可能な外部記録媒体を含んでもよい。
本実施形態において、記憶部12は、制御部11が演奏レッスン処理A(図3参照)を実行するためのアプリケーションプログラム(レッスンアプリ121と呼ぶ)を記憶している。
【0015】
また、記憶部12には、レッスンアプリ121でのレッスンに用いられる楽曲データが記憶されている。本実施形態において、記憶部12には、レベル情報に対応付けて、レベルごとに異なる複数の楽曲データが記憶されている。楽曲データは、例えば、SMF(Standard MIDI(Musical Instrument Digital Interface) File)等のMIDI形式のデータであり、ノートオンイベント(発音或いは鍵盤楽器における押鍵)の情報、ノートオフイベント(発音停止或いは鍵盤楽器における離鍵)の情報、ノートオンイベント/ノートオフイベントのタイミングの情報、拍子の情報、1拍当たりのtickの情報、コード進行の情報等を含む。ノートオンイベントの情報は、発音を開始する楽曲音を示す情報であり、ノート番号(音高)、ベロシティの情報が含まれる。ノートオフイベントの情報は、発音を停止する楽曲音を示す情報であり、少なくともノート番号(音高)の情報が含まれる。ノートオンイベントのタイミングの情報は、ノートオンイベントで指定された音高での発音タイミング(発音開始タイミング)を示す情報である。具体的には、ノートオンイベントで指定された音高での発音タイミングが楽曲データの何小節目の何拍目から何tick経過したタイミングであるかを示す情報である。図2(b)は、図2(a)に示す楽譜に対応する楽曲データにおけるノートオンイベントのタイミングの情報の一例を示す図である。1つ1つのノートオンイベントのタイミングの情報(図2(a)の各行の情報)をタイミングデータと呼ぶ。ノートオフイベントのタイミングの情報は、ノートオフイベントで指定された音高の発音終了タイミングが楽曲データの何小節目の何拍目から何tick経過したタイミングであるかを示す情報である。
また、各楽曲データは、楽曲の譜面通りのお手本の演奏或いは発音を再生するためのお手本再生区間と、お手本の再生がされていない状況下でユーザが演奏するためのユーザ演奏区間とに分けられている。各楽曲データには、お手本再生区間とユーザ演奏区間に関する情報(何小節目~何小節目までがお手本再生区間(又はユーザ演奏区間))であるかを示す情報)が対応付けられている。
【0016】
入力部13は、押しボタンスイッチ(ハードウェアキー)や表示部14に取り付けられたタッチパネル(ソフトウェアキー)等で構成されている。入力部13は、ユーザによる押しボタンスイッチの操作や画面上のタッチ操作を検出し、操作信号を制御部11に出力する。
【0017】
表示部14は、LCD(Liquid Crystal Display)、或いはEL(Electro Luminescence)ディスプレイ等で構成され、制御部11から指示された表示情報に従い各種表示を行う。
【0018】
通信部15は、電子楽器2を始めとする外部機器との間で通信を行うための有線ユニットや無線ユニットを備え、外部機器とデータ送受信を行う。本実施形態において、通信部15は、図示しない通信インターフェース(本実施形態では、MIDIインターフェース)を介して電子楽器2とデータ送受信を行う。
【0019】
出力部16は、音源部、D/Aコンバータ、増幅器、スピーカ等を備える。出力部16は、制御部11からの指示に従って、音源部により、音源部に備えられた波形ROMに予め記憶された波形データを読み出すか又は波形データを生成して、波形データに基づく楽曲音を、D/Aコンバータ、増幅器を介してスピーカから出力する。
【0020】
[電子楽器2]
電子楽器2は、例えば、鍵盤楽器である。
電子楽器2は、図1に示すように、制御部21、記憶部22、鍵盤23、入力部24、表示部25、通信部26、出力部27等を備えて構成され、各部はバス28により接続されている。
【0021】
制御部21は、CPU、DSP(Digital Signal Processor)といった少なくとも1つのプロセッサ及びRAM等を備えて構成され、電子楽器2の各部を制御するコンピュータである。具体的には、制御部21のCPUは、記憶部22に記憶されているシステムプログラムや各種プログラムの中から指定されたプログラムを読み出してRAMに展開し、展開されたプログラムとの協働で、各種処理を実行する。
例えば、制御部21は、鍵盤23においてユーザによる発音操作(本実施形態では押鍵)が検出されると、発音操作に従って出力部27により楽曲音を出力させる。また、制御部21は、発音操作された鍵の音高等を示す発音操作情報を、通信部26を介して情報処理装置1に出力する。
【0022】
記憶部22は、不揮発性の半導体メモリやHDD(Hard Disk Drive)等により構成されている。記憶部22は、電子楽器2のシステムプログラムや各種プログラム、プログラムの実行に必要なデータを記憶する。記憶部22は、電子楽器2に内蔵されたものに限られず、外付けHDD、USBメモリ等の電子楽器2に対して着脱可能な外部記録媒体を含んでもよい。
【0023】
鍵盤23は、複数の鍵(操作子)、及び押鍵/離鍵された鍵を検出する検出部等を備え、押鍵/離鍵された鍵の音高やタイミングの情報を制御部21に出力する。
鍵盤23の複数の鍵のそれぞれは、発光素子であるLED(Light Emitting Diode)を備えており、制御部21からの指示に応じて発光する。
【0024】
入力部24は、押しボタンスイッチや表示部25に取り付けられたタッチパネル等で構成されている。入力部24は、ユーザによる押しボタンスイッチの操作やタッチパネル画面上のタッチ操作を検出し、操作信号を制御部21に出力する。
【0025】
表示部25は、LCD(Liquid Crystal Display)等で構成され、制御部21から指示された表示情報に従い各種表示を行う。
【0026】
通信部26は、情報処理装置1を始めとする外部機器との間で通信を行うための有線ユニットや無線ユニットを備え、外部機器とデータ送受信を行う。本実施形態において、通信部26は、図示しない通信インターフェース(本実施形態では、MIDIインターフェース)を介して情報処理装置1とデータ送受信を行う。
【0027】
出力部27は、音源部、D/Aコンバータ、増幅器、スピーカ等を備える。出力部27は、制御部21からの指示に従って、音源部により、音源部に備えられた波形ROMに予め記憶された波形データを読み出すか又は波形データを生成して、波形データに基づく楽曲音をD/Aコンバータ、増幅器を介してスピーカから出力する。
【0028】
[電子楽器システム100の動作]
次に、第1の実施形態における電子楽器システム100の動作について説明する。
情報処理装置1において、レッスンアプリ121が起動され、入力部13の操作によりレッスン開始が指示されると、制御部11は、レッスンアプリ121との協働により演奏レッスン処理A(図3参照)を実行する。
【0029】
ここで、演奏レッスン処理Aは、演奏の中で独自にフレーズを作り出すアドリブ演奏を対象としたレッスンであり、レッスン対象の楽曲データに基づく楽曲を再生する際に、楽曲音を出力するお手本再生区間と、ユーザがその演奏を受けてアドリブ演奏をするために、楽曲音を出力しない(楽曲音をミュートする)区間(ユーザ演奏区間)と、を設けて再生するようになっている。
【0030】
また、本実施形態の演奏レッスン処理Aでは、演奏ガイド141(図4参照)が表示部14に表示される。演奏ガイド141は、レッスン対象の楽曲データにおける第1単位区間(1拍、1小節又は連続する複数小節)の長さを円周で表した円141aを含む。円141aの円周上の基準点O(本実施形態では、円の中心から真上の延びる線と交わる点)を楽曲の開始タイミングの位置として、円141aの円周上のノートオンタイミング(すなわち、ユーザが発音すべき発音タイミング)に対応する位置には、発音タイミングであることを示す発音タイミング表示141bが表示されている。また、円141aは、円周に対応する第1単位区間よりも短い単位区間(例えば、連続する複数小節が第1単位区間であれば、1拍又は1小節)を表す円弧と、円141aの中心と円弧の両端とを結ぶ扇形の集合体で形成されている。また、演奏ガイド141は、ユーザの演奏に対するレベル141dを含む。
【0031】
演奏レッスン処理Aが開始されると、レッスン対象の楽曲データに基づく楽曲の再生が開始され、楽曲の進行に合わせて、楽曲中における現在位置(現在の再生対象位置)を示す現在位置アイコン(現在位置表示)141cが円141aの円周上に表示される(時計回りに移動する)。ユーザが発音操作したタイミングと、レッスン対象の楽曲の発音タイミングとが一致した(差分が予め定められた許容範囲内である)場合、その一致した発音タイミングの発音タイミング表示141bが正解であることを示す表示態様に変化する。円141aの円周が示す第1単位区間より先の発音タイミングを示す発音タイミング表示141bについては、楽曲の進行に合わせて更新される。
【0032】
図4は、図2(a)に示す楽譜に対応する楽曲の演奏ガイド141の例を示している。
図4において、円141aの円周は4小節に対応し、円141aを4等分したエリア0~3(図4においてAR0~AR3で示す)は、それぞれ1小節に対応している。また、エリア0~3のそれぞれは、さらに、拍に対応する複数のエリア(図4では、点線で区切られた4つのエリア)に分割されている。円周が示す第1単位区間(ここでは、4小節目)より先の発音タイミングを示す発音タイミング表示141bについては、現在位置アイコン141cが位置する小節より2小節前に対応するエリアを順次書き換えることにより表示される。
【0033】
以下、図3を参照して、演奏レッスン処理Aについて説明する。なお、以下の説明では、1拍当たりのtick数が96であることとして説明する。また、図4に示すように、円141aの円周が4小節の長さを表し、円141aを4等分したエリア0~エリア3が、それぞれ1小節を表す演奏ガイド141を表示部14に表示する場合を例にとり説明する。
【0034】
まず、制御部11は、演奏レッスン処理Aで使用する、tickカウンタ、小節カウンタ、拍カウンタ、正解カウンタ、レベルカウンタ、の各カウンタ変数をリセットする(ステップS1)。
tickカウンタは、レッスン対象の楽曲における現在位置(現在の再生対象の位置)を特定するためのtickをカウントするための変数であり、初期値“0”にリセットされる。小節カウンタは、レッスン対象の楽曲における現在位置の小節をカウントするための変数であり、初期値“1”にリセットされる。拍カウンタは、レッスン対象の楽曲における現在位置の拍をカウントするための変数であり、初期値“1”にリセットされる。正解カウンタは、ユーザにより発音操作されたタイミングがレッスン対象の楽曲の発音タイミングと一致した(正解した)回数をカウントするための変数であり、初期値“0”にリセットされる。レベルカウンタは、ユーザによる演奏のレベルをカウントするための変数であり、初期値“1”にリセットされる。
【0035】
次いで、制御部11は、演奏ガイド141の円141a及びレベル141dを表示部14に表示する(ステップS2)。
【0036】
次いで、制御部11は、レッスン対象の楽曲における現在位置(現在の再生対象の位置)が小節の先頭であるか否かを判断する(ステップS3)。
制御部11は、tickカウンタの値が“0”で且つ拍カウンタの値が”1”であるか否かに基づいて、現在位置が小節の先頭であるか否かを判断する。
【0037】
レッスン対象の楽曲における現在位置が小節の先頭であると判断した場合(ステップS3;YES)、制御部11は、発音タイミング表示処理を実行する(ステップS4)。
【0038】
図5は、図3のステップS4で実行される発音タイミング表示処理の流れを示すフローチャートである。
発音タイミング表示処理において、まず、制御部11は、レッスン対象の楽曲における現在位置が曲の先頭であるか否かを判断する(ステップS401)。
制御部11は、tickカウンタの値が“0”、拍カウンタの値が”1”、且つ小節カウンタの値が”1”であるか否かに基づいて、現在位置が曲の先頭であるか否かを判断する。
【0039】
レッスン対象の楽曲における現在位置が曲の先頭であると判断した場合(ステップS401;YES)、制御部11は、第1小節(先頭の小節)~第4小節を描画対象小節に決定し、エリア0~エリア3(図4のエリアAR0~エリアAR3参照)を、それぞれ第1小節~第4小節における発音タイミング表示141bの描画エリアに決定し(ステップS402)、ステップS404に移行する。
【0040】
レッスン対象の楽曲における現在位置が曲の先頭ではないと判断した場合(ステップS401;NO)、制御部11は、第M小節(Mは現在の小節カウンタの値+2)を描画対象小節に決定し、エリアAR0~エリアAR3のうちのエリアA(Aは、(現在の小節カウンタの値+1)%4)を第M小節に関する発音タイミング表示141bの描画エリアに決定する(ステップS403)。すなわち、ステップS403では、現在の小節カウンタ値に“1”を足したものを4で割った場合の余りの値に対応するエリアが描画エリアとなる。その後、ステップS404に移行する。
【0041】
次いで、制御部11は、描画エリアの発音タイミング表示141bをクリアする(ステップS404)。
【0042】
次いで、制御部11は、楽曲データから、描画対象小節のタイミングデータ数を取得し、カウンタnを初期値“0”に設定する(ステップS405)。なお、カウンタnは、後述するステップS409に達するたびに0、1、2、3...と順次一つずつカウントアップされ、それに対応するタイミングデータは、0番目、1番目、2番目、3番目...のタイミングデータとなる。すなわち、0~3番目のまでのタイミングデータのデータ数は、“4”となる。
【0043】
次いで、制御部11は、カウンタn<取得したタイミングデータ数であるか否かを判断する(ステップS406)。
カウンタn<取得したタイミングデータ数であると判断した場合(ステップS406;YES)、制御部11は、描画対象小節のn番目のタイミングデータを取得し(ステップS407)、演奏ガイド141における描画対象小節の描画エリアの、取得したタイミングデータにより指定される位置(円141aの円周上の位置)に、発音タイミング表示141bを描画(表示)する(ステップS408)。なお、小節内でのタイミングデータの順番は、タイミングの早い順である。
次いで、制御部11は、nをカウントアップし(ステップS409)、ステップS406に戻る。
【0044】
制御部11は、n<取得したタイミングデータ数ではない(すなわち、nがタイミングデータ数以上である)と判断するまで、ステップS406~ステップS409の処理を繰り返し実行する。
【0045】
n<取得したタイミングデータ数ではない(すなわち、nが取得したタイミングデータ数以上である)と判断した場合(ステップS406;NO)、制御部11は、全ての描画対象小節についての描画が終了したか否かを判断する(ステップS410)。
全ての描画対象小節についての描画が終了していないと判断した場合(ステップS410;NO)、制御部11は、ステップS405に戻り、まだ描画していない描画対象小節について、ステップS405~S409の処理を実行する。
全ての描画対象小節についての描画が終了したと判断した場合(ステップS410;YES)、制御部11は、図3のステップS5に移行する。
【0046】
図3のステップS5において、制御部11は、tickカウンタ、拍カウンタ、及び小節カウンタの値に基づいて、円141aの円周上の、楽曲の現在位置に対応する位置に現在位置アイコン141cを描画(表示)する(ステップS5)。
【0047】
次いで、制御部11は、現在位置がお手本再生区間であるか否かを判断する(ステップS6)。
現在位置が、お手本再生区間であると判断した場合(ステップS6;YES)、制御部11は、お手本再生処理を実行し(ステップS7)、ステップS10に移行する。
お手本再生処理において、制御部11は、レッスン対象の楽曲データに基づいて、現在位置がノートオフタイミング又はノートオンタイミングであるか否かを判断する。現在位置がノートオフタイミングであると判断した場合、制御部11は、レッスン対象の楽曲データの現在位置に対応するノートオフイベントで指定された音高の楽曲音の出力を出力部16に停止させるか或いは出力を減衰させる。現在位置がノートオンタイミングであると判断した場合、制御部11は、レッスン対象の楽曲データの現在位置に対応するノートオンイベントで指定された音高の楽曲音の出力を出力部16に開始させる。
【0048】
ステップS6において、現在位置がお手本再生区間ではないと判断した場合(ステップS6;NO)、制御部11は、ユーザによる発音操作があったか否かを判断する(ステップS8)。
制御部11は、通信部15により電子楽器2から発音操作情報が入力された場合に、発音操作があったと判断する。
ユーザによる発音操作がなかったと判断した場合(ステップS8;NO)、制御部11は、ステップS10に移行する。
ユーザによる発音操作があったと判断した場合(ステップS8;YES)、制御部11は、正解判定処理を実行する(ステップS9)。
【0049】
図6は、図3のステップS9において実行される正解判定処理の流れを示すフローチャートである。
正解判定処理において、制御部11は、まず、ユーザにより発音操作されたタイミングの情報を取得する(ステップS901)。例えば、発音操作情報が受信されたタイミングのtickカウンタ、拍カウンタ、及び小節カウンタの値を、発音操作されたタイミングの情報として取得する。
【0050】
次いで、制御部11は、ユーザにより発音操作されたタイミングにおけるレッスン対象の楽曲の再生対象位置を含む小節内(第2単位区間内)のタイミングデータと、その次の小節の先頭のタイミングデータを取得する(ステップS902)。
ステップS902では、ユーザにより発音操作されたタイミングと比較するタイミングデータとして、ユーザにより発音操作されたタイミングにおけるレッスン対象の楽曲の再生対象位置を含む小節内のタイミングデータと、その次の小節の先頭のタイミングデータとを取得する。次小節の先頭のタイミングデータを取得するのは、ユーザにより発音操作されたタイミングが次小節の先頭のノートオンタイミングに対して僅かに速かった場合、次小節の先頭のノートオンタイミングに対して発音されている場合があるためである。
【0051】
次いで、制御部11は、カウンタnを値“0”に設定する(ステップS903)。
【0052】
次いで、制御部11は、カウンタn<取得したタイミングデータ数、であるか否かを判断する(ステップS904)。
カウンタn<取得したタイミングデータ数であると判断した場合(ステップS904;YES)、制御部11は、n番目のタイミングデータにより特定されるタイミングと、ユーザにより発音操作されたタイミングとを比較し、両者の差分が所定数以内(ここでは、一例として10tick以内、つまり特定されたタイミングの前後10tick以内とする)であるか否かを判断する(ステップS905)。
ここで、取得されたタイミングデータにより特定されるタイミングは、早い方から順次ユーザにより発音操作されたタイミングと比較される。
【0053】
n番目のタイミングデータにより特定されるタイミングと、ユーザにより発音操作されたタイミングとの差分が10tick以内ではないと判断した場合(ステップS905;NO)、制御部11は、カウンタnの値を1つカウントアップし(ステップS906)、ステップS904に戻る。すなわち、制御部11は、n番目のタイミングデータにより特定されるタイミングと、ユーザにより発音操作されたタイミングとが一致しないと判断し、次のタイミングデータとの比較に移行する。
【0054】
n番目のタイミングデータにより特定されるタイミングと、ユーザにより発音操作されたタイミングとの差分が10tick以内であると判断した場合(ステップS905;YES)、制御部11は、n番目のタイミングデータにより特定されるタイミングとユーザにより発音操作されたタイミングとが一致した、すなわち、正解のタイミングで発音されたと判断し、n番目のタイミングデータに対応した発音タイミング表示141bの表示態様を正解したことを示す表示態様に変更する(ステップS907)。そして、制御部11は、正解カウンタの値を1つカウントアップし(ステップS908)、図3のステップS10に移行する。
ステップS907において、制御部11は、例えば、正解した発音タイミング表示141bを光らせる、点滅させる、色を変える、形状を変える等により、他の発音タイミング表示141bとは異なる態様で表示させる。ステップS907において表示態様を変化させた発音タイミング表示141bの一例を図4において符号Coで示す。これにより、ユーザは、正しい発音タイミングに演奏できたか否かを認識することが可能となる。
【0055】
一方、カウンタn<取得したタイミングデータ数ではない(カウンタnが取得したタイミングデータ数以上である)と判断した場合(ステップS904;NO)、制御部11は、図3のステップS10に移行する。
【0056】
ここで、図6に示す正解判定処理では、ユーザにより発音操作が行われるたびに、取得した全てのタイミングデータ(ユーザにより発音操作が行われたタイミングにおけるレッスン対象の楽曲の再生対象位置を含む小節(対象小節と呼ぶ)内(第2単位区間内)のタイミングデータとその次の小節の先頭のタイミングデータ)と、ユーザにより発音操作されたタイミングとを比較して正解か否かを判定した。一方、図7の正解判定処理の変形例に示すように、対象小節内で既に比較に使用されたタイミングデータであって、比較時にユーザにより発音操作されたタイミングより前のタイミングのタイミングデータは、その後にユーザにより発音操作が行われた際にはユーザにより発音操作が行われたタイミングとの比較に用いないこととしてもよい。
【0057】
以下、図7を参照して、正解判定処理の変形例について説明する。
正解判定処理の変形例において、制御部11は、まず、ユーザにより発音操作されたタイミングの情報を取得する(ステップT901)。ステップT901の処理はステップS901と同じである。
【0058】
次いで、制御部11は、ユーザにより発音操作されたタイミングにおけるレッスン対象の楽曲の再生対象位置を含む対象小節内のタイミングデータと、その次の小節の先頭のタイミングデータを取得する(ステップT902)。ステップT902の処理はステップS902と同じである。
【0059】
次いで、制御部11は、対象小節内で最初の比較であるか否かを判断する(ステップT903)。ここで、1つ前の小節が対象小節であった際に、次小節の先頭のタイミングデータとして今回の対象小節内の先頭のタイミングデータが比較に用いられた場合、その比較は、ステップT903では、対象小節内での比較には含めない。
【0060】
対象小節内での最初の比較であると判断した場合(ステップT903;YES)、制御部11は、カウンタnの値を“0”に設定するとともに、変数mの値を“0”に設定し(ステップT904)、ステップT906に移行する。
対象小節内での最初の比較ではないと判断した場合(ステップT903;NO)、制御部11は、カウンタnの値を変数mの値に設定し(ステップT905)、ステップT906に移行する。
ここで、変数mは、対象小節内の何番目のタイミングデータから比較するかを格納するための変数である。
【0061】
ステップT906において、制御部11は、カウンタn<取得したタイミングデータ数、であるか否かを判断する(ステップT906)。
カウンタn<取得したタイミングデータ数であると判断した場合(ステップT906;YES)、制御部11は、n番目のタイミングデータにより特定されるタイミングと、ユーザにより発音操作されたタイミングとを比較し、両者の差分が所定数以内(ここでは、一例として10tick以内とする)であるか否かを判断する(ステップT907)。
ここで、取得されたタイミングデータにより特定されるタイミングが早い方から順次ユーザにより発音操作されたタイミングと比較される。
【0062】
n番目のタイミングデータにより特定されるタイミングと、ユーザにより発音操作されたタイミングとの差分が10tick以内ではないと判断した場合(ステップT907;NO)、制御部11は、n番目のタイミングデータはユーザにより発音操作されたタイミングより大きいか(後か)否かを判断する(ステップT908)。
n番目のタイミングデータはユーザにより発音操作されたタイミングより小さい(前である)と判断した場合(ステップT908;NO)、制御部11は、カウンタnをカウントアップし(ステップT909)、ステップT906に戻る。
n番目のタイミングデータはユーザにより発音操作されたタイミングより大きいと判断した場合(ステップT908;YES)、制御部11は、変数mにカウンタnの値を設定し(ステップT910)、図3のステップS10に移行する。
【0063】
一方、ステップT907において、n番目のタイミングデータにより特定されるタイミングと、ユーザにより発音操作されたタイミングとの差分が10tick以内であると判断した場合(ステップT907;YES)、制御部11は、n番目のタイミングデータにより特定されるタイミングとユーザにより発音操作されたタイミングとが一致した、すなわち、正解のタイミングで発音されたと判断し、n番目のタイミングデータに対応した発音タイミング表示141bの表示態様を正解したことを示す表示態様に変更する(ステップT911)。そして、制御部11は、正解カウンタの値を1つカウントアップし(ステップT912)、変数mにカウンタ(n+1)の値を設定し(ステップT913)、図3のステップS10に移行する。
【0064】
一方、ステップT906において、カウンタn<取得したタイミングデータ数ではない(カウンタnが取得したタイミングデータ数以上となった)と判断した場合(ステップT906;NO)、制御部11は、図3のステップS10に移行する。
【0065】
図7に示す上記正解判定処理の変形例では、対象小節内で既に比較に使用されたタイミングデータであって、比較時にユーザにより発音操作されたタイミングより前のタイミングであったタイミングデータは、それ以降にユーザにより発音操作が行われた際には、ユーザにより発音操作が行われたタイミングとの比較に用いない。そのため、図6に示す正解判定処理よりも比較する回数を少なくすることができ、処理時間を低減することができる。その一方で、図6に示す正解判定処理と図7に示す正解判定処理の変形例とのフローチャートを比較すればわかるように、図7に示す正解判定処理の変形例は、次に対象小節内の何番目のタイミングデータから比較するかを記憶しておく必要があるため、図6に示す正解判定処理に比べてプログラムが複雑である。
一方、図6に示す正解判定処理では、ユーザにより発音操作が行われるたびに、取得した全てのタイミングデータ(ユーザにより発音操作が行われたタイミングにおける対象小節内のタイミングデータとその次の小節の先頭のタイミングデータ)と、ユーザにより発音操作されたタイミングとを比較することを繰り返すため、処理時間はかかるが、プログラムを簡素化することができる。
【0066】
図3のステップS10において、制御部11は、tickカウンタの値を1つカウントアップし(ステップS10)、tickカウンタの値に基づいて、tickカウンタ、拍カウンタ、小節カウンタの値を更新する(ステップS11)。
ここで、上述のように、1拍は96tick(“0”~“95”)である。そこで、制御部11は、tickカウンタの値が“96”となった場合、tickカウンタの値を“0”に更新するとともに、拍カウンタの値を1つカウントアップする。拍カウンタが(1小節の拍数+1)に到達した場合は、拍カウンタの値を1に更新するとともに、小節カウンタの値を1つカウントアップする。
【0067】
次いで、制御部11は、レベル更新処理を実行する(ステップS12)。
図8は、図3のステップS12において実行されるレベル更新処理の流れを示すフローチャートである。
レベル更新処理において、制御部11は、まず、小節カウンタを参照し、指定小節に到達したか否かを判断する(ステップS1201)。
ここで、指定小節とは、レッスン対象の楽曲データの小節数+1の小節である。例えば、レッスン対象の楽曲データの小節数が16小節であるとすると、小節カウンタの値が“17”となった場合に、指定小節に到達したと判断する。
【0068】
指定小節に到達していないと判断した場合(ステップS1201;NO)、制御部11は、図3のステップS13に移行する。
【0069】
指定小節に到達したと判断した場合(ステップS1201;YES)、制御部11は、正解カウンタの値がレベルアップ閾値以上であるか否かを判断する(ステップS1202)。
ここで、レベルアップ閾値は、ユーザの演奏レベルをアップさせるか否かを判断するための閾値である。レベルアップ閾値は、レベルごとに予め記憶部12に記憶されている。
【0070】
正解カウンタの値がレベルアップ閾値以上であると判断した場合(ステップS1202;YES)、制御部11は、レベルカウンタの値を1つカウントアップ(レベルを1アップ)させ(ステップS1203)、レベルカウンタの値>最終レベルであるか否かを判断する(ステップS1204)。
最終レベルは、演奏レッスン処理Aで用意されている最高のレベルである。
【0071】
レベルカウンタの値>最終レベルではないと判断した場合(ステップS1204;NO)、制御部11は、新しいレベルに応じて、演奏ガイド141の表示態様、楽曲データ、お手本位置、レベルアップ閾値、レベルダウン閾値を変更し(ステップS1208)、ステップS1209に移行する。
例えば、演奏ガイド141の表示態様は、新しいレベルに対応する、予め定められた表示態様に変更される。例えば、レベル141dが新しいレベルの表示に変更される。また、現在位置アイコン141cや画面全体のデザインが新しいレベルに応じたものに変更される。これにより、ユーザは、レベルアップしたことを認識することができる。また、例えば楽曲データは、レベルが上がるにつれて音数が増える。お手本位置(お手本再生される区間)は、レベルが上がるにつれて短くなる。レベルアップ閾値及びレベルダウン閾値は、レベルが上がるにつれて高く(大きく)なる。
レベルカウンタの値>最終レベルであると判断した場合(ステップS1204;YES)、制御部11は、図3のステップS13に移行する。
【0072】
一方、正解カウンタの値がレベルアップ閾値以上ではないと判断した場合(ステップS1202;NO)、制御部11は、現在のレベルが“1”であるか否かを判断する(ステップS1205)。
現在のレベルが値“1”ではないと判断した場合(ステップS1205;NO)、制御部11は、正解カウンタの値がレベルダウン閾値以下であるか否かを判断する(ステップS1206)。
ここで、レベルダウン閾値は、ユーザの演奏レベルをダウンさせるか否かを判断するための閾値である。レベルダウン閾値は、レベルごとに予め記憶部12に記憶されている。
【0073】
正解カウンタの値がレベルダウン閾値以下であると判断した場合(ステップS1206;YES)、制御部11は、レベルカウンタの値を1カウントダウンさせる(ステップS1207)。そして、制御部11は、新しいレベルに応じて、演奏ガイド141の表示態様、楽曲データ、お手本位置、レベルアップ閾値、レベルダウン閾値を変更し(ステップS1208)、ステップS1209に移行する。
例えば、演奏ガイド141の表示態様は、新しいレベルに対応する、予め定められた表示態様に変更される。例えば、レベル141dが新しいレベルの表示に変更される。また、現在位置アイコン141cや画面全体のデザインが、新しいレベルに応じたものに変更される。これにより、ユーザは、レベルダウンしたことを認識することができる。また、例えば楽曲データは、レベルが下がるにつれて音数が少ないものに変更される。お手本位置(お手本再生される区間)は、レベルが下がるにつれて長くなる(ユーザが弾く区間が短くなる)。レベルアップ閾値及びレベルダウン閾値は、レベルが下がるにつれて低く(小さく)なる。
【0074】
一方、現在のレベルが値”1”であると判断した場合(ステップS1205;YES)、制御部11は、ステップS1209に移行する。
【0075】
ステップS1209において、制御部11は、tickカウンタ、拍カウンタ、小節カウンタ、正解カウンタをリセットし(ステップS1209)、図3のステップS13に移行する。
【0076】
図3のステップS13において、制御部11は、レベルカウンタの値>最終レベルであるか否かを判断する(ステップS13)。
最終レベルは、演奏レッスン処理Aで用意されている最高のレベルである。
【0077】
レベルカウンタの値>最終レベルではないと判断した場合(ステップS13;NO)、制御部11は、ステップS2に戻る。
レベルカウンタの値>最終レベルであると判断した場合(ステップS13;YES)、制御部11は、演奏レッスン処理Aを終了する。
【0078】
このように、演奏レッスン処理Aでは、楽曲データにおける第1単位区間(例えば、4小節)の長さを円周で表し、楽曲データにおける第1単位区間内の発音タイミングの位置を示す発音タイミング表示141bを円周上の発音タイミングに対応する位置に表示させた円141aを表示部14に表示させ、楽曲データに基づく楽曲の進行に合わせて、楽曲の現在位置を示す現在位置アイコン141cを円周上に表示させるとともに、円周上の発音タイミング表示141bを更新する。そして、ユーザにより発音操作されたタイミングと、楽曲データにおける発音タイミングとの差が予め定められた許容範囲内であった場合に、その発音タイミングに対応する発音タイミング表示141bの表示態様を変化させる。
したがって、ユーザは、発音すべきタイミングを第1単位区間先まで見通して練習することができ、また、発音タイミングに正しく発音できたか否かをユーザが認識することができるので、電子楽器2の演奏レッスンを効果的に行うことができる。
また、発音タイミングに正しく発音できた正解回数をカウントし、正解回数に基づくレベルに応じて、演奏ガイド141の表示態様やレッスン対象の楽曲データを変更するので、ユーザは、自分のレベルを把握できるとともに、レベルに応じたレッスンを受けることができる。
【0079】
<第2の実施形態>
従来の演奏レッスンでは、お手本となる楽曲と全く同じ内容が弾けるようになることを目的としているため、音高のガイド表示では、お手本となる楽曲データの一音一音の音高をそのまま表示していた。しかし、アドリブ演奏の習得においては、あるタイミングでの正解音は一つではない。そこで、第2の実施形態では、アドリブ演奏の習得のために、曲が進行する中でユーザに許容される音高(例えば、特定の区間(1つのコードや、定番コード進行の塊)内で許容される音高)を示し、ユーザが自由にフレーズを組めるようにガイドする。
【0080】
第2の実施形態における電子楽器システム100の構成は、第1の実施形態で説明したものと同様であるので説明を援用し、以下、第2の実施形態の動作について説明する。
第2の実施形態の情報処理装置1において、レッスンアプリ121が起動され、レッスン開始が指示されると、制御部11は、レッスンアプリ121との協働により演奏レッスン処理B(図9参照)を実行する。
【0081】
ここで、演奏レッスン処理Bは、第1の実施形態の演奏レッスン処理Aと同様に、演奏の中で独自にフレーズを作り出すアドリブ演奏のレッスンであり、レッスン対象の楽曲データに基づく楽曲を再生する際に、楽曲音を出力するお手本再生区間と、ユーザがその演奏を受けてアドリブ演奏をするために、楽曲音を出力しない(楽曲音をミュートする)ユーザ演奏区間と、を設けて再生するようになっている。
【0082】
また、演奏レッスン処理Bでは、演奏ガイド142(図10参照)が表示部14に表示される。演奏ガイド142は、円142aの円周上に、発音タイミング表示142b、現在位置アイコン142cが表示されているとともに、現在のユーザのレベル142dが表示されている。円142a、発音タイミング表示142b、現在位置アイコン142c、レベル142dは、それぞれ第1の実施形態で説明した円141a、発音タイミング表示141b、現在位置アイコン141c、レベル141dと同様の表示及び機能を有するものであるので説明を援用する。また、円142a内の領域には、レッスン対象の楽曲のコード進行に応じたコードを示すコード名表示142eが表示されている。なお、円142a内の色も、コードに応じて異なる色を表示することが好ましい。さらに、円142aの中央には、鍵盤模式図142fが表示されている。鍵盤模式図142fにおいては、楽曲の進行に合わせて、進行中の区間で発音が許容される音高(正解の音高)の鍵に音高ガイド表示142gが表示されている。
【0083】
図10は、図11に示す楽譜に対応する楽曲の演奏ガイド142の例を示している。
図10において、円142aの円周は4小節に対応し、円142aを4等分した扇形のエリア0~3(図10においてAR0~AR3で示す)は、それぞれ1小節に対応している。また、エリア0~3のそれぞれは、さらに、拍に対応する複数のエリア(図10では、点線で区切られた4つのエリア)に分割されている。円周が示す単位区間(ここでは、4小節目)より先の発音タイミングを示す発音タイミング表示142bについては、現在位置アイコン142cが位置する小節より2小節前に対応するエリアを順次書き換えることにより表示される。発音タイミング表示142bは、円142aの円周上を時計回りに移動する。
【0084】
また、図11に示す楽譜は、1小節目のコードがDm7、2小節目のコードがG7、3~4小節目のコードがCM7であるので、円142aのエリア0内にはDm7、エリア1にはG7、エリア2~3にはCM7を示すコード名表示142eが表示されている。また、図11に示す鍵盤模式図142fには、現在位置アイコン142cが1小節目にある場合の例として、1小節目で許容される音高に対応する鍵に音高ガイド表示142gが表示されている。本実施形態では、小節内に存在する音符の音高(正解の音高)がその小節内で許容される音高とした場合を例にとり説明する。
【0085】
以下、図9を参照して、演奏レッスン処理Bについて説明する。なお、以下の説明では、1拍当たりのtick数が96であることとして説明する。また、図10に示すように、円142aの円周が4小節の長さを表し、円142aを4等分したエリア0~エリア3が、それぞれ1小節を示す演奏ガイド142を表示する場合を例にとり説明する。
【0086】
まず、制御部11は、演奏レッスン処理Bで使用する、tickカウンタ、小節カウンタ、拍カウンタ、正解カウンタ、レベルカウンタ、の各カウンタ変数をリセットする(ステップS21)。
各カウンタについての説明は、第1の実施形態で説明したものと同様であるので説明を援用する。
【0087】
次いで、制御部11は、演奏ガイド142の円142a、レベル142d及び鍵盤模式図142fを表示部14に表示する(ステップS22)。
【0088】
次いで、制御部11は、レッスン対象の楽曲における現在位置(現在の再生対象の位置)が小節の先頭であるか否かを判断する(ステップS23)。
制御部11は、tickカウンタの値が“0”で且つ拍カウンタの値が”1”であるか否かに基づいて、現在位置が小節の先頭であるか否かを判断する。
【0089】
レッスン対象の楽曲における現在位置が小節の先頭であると判断した場合(ステップS23;YES)、制御部11は、コード表示処理を実行する(ステップS24)。
ステップS22において、制御部11は、現在位置が曲の先頭である場合、第1小節から第4小節までのコードを取得し、それぞれを円142aのエリア0~3に描画(表示)する。現在位置が曲の先頭ではない場合、第M小節(Mは現在の小節カウンタの値+2)のコードを取得し、エリアA(Aは、(現在の小節カウンタの値+1)%4)、すなわち、現在の小節カウンタ値に“1”を足したものを4で割った場合の余りの値に対応するエリアに第M小節のコードのコード名表示142eを描画(表示)する。
【0090】
次いで、制御部11は、発音タイミング表示処理を実行する(ステップS25)。
発音タイミング表示処理は、第1の実施形態で説明した発音タイミング表示処理と同様であるので説明を援用する。なお、ステップS25の発音タイミング表示処理では、第1の実施形態での発音タイミング表示処理の説明における演奏ガイド141及び演奏ガイド141を構成する各要素についての符号は、演奏ガイド142及び演奏ガイド142の対応する各要素についての符号に置き換えたものとなる。
【0091】
次いで、制御部11は、鍵盤表示処理を実行する(ステップS26)。
図12は、鍵盤表示処理の流れを示すフローチャートである。
【0092】
鍵盤表示処理において、まず、制御部11は、鍵盤模式図142fの音高ガイド表示142gをクリアする(ステップS261)。
【0093】
次いで、制御部11は、現在再生対象となっている小節で許容される音高の音高データを取得し、カウンタnの値を“0”に設定する(ステップS262)。
例えば、現在再生対象となっている小節に含まれる音高の音高データを、その小節で許容される音高の音高データとして取得する。
【0094】
次いで、制御部11は、n<取得した音高データ数であるか否かを判断する(ステップS263)。
n<取得した音高データ数であると判断した場合(ステップS263;YES)、制御部11は、現在再生対象となっている小節で許容されるn番目の音高データを取得し(ステップS264)、n番目の音高データの音高を鍵盤模式図142fに音高ガイド表示142gとして表示する(ステップS265)。
例えば、現在再生対象となっている小節が図11に示す各小節であった場合、鍵盤模式図142fに表示される音高ガイド表示142gは、各小節から延びる矢印で示した表示となる。
【0095】
次いで、制御部11は、nをカウントアップし(ステップS266)、ステップS263に戻る。
ステップS263においてn<取得した音高データ数ではない(すなわち、nが取得した音高データ数以上である)と判断されるまで、制御部11は、ステップS263~S266を繰り返し実行する。ステップS263においてn<取得した音高データ数ではない(すなわち、nが取得した音高データ数以上である)と判断された場合(ステップS263;NO)、制御部11は、図9のステップS27に移行する。
【0096】
一方、図9のステップS23において、レッスン対象の楽曲における現在位置(現在の再生対象の位置)が小節の先頭ではないと判断した場合(ステップS23;NO)、制御部11は、ステップS27に移行する。
【0097】
図9のステップS27において、制御部11は、tickカウンタ、拍カウンタ、及び小節カウンタの値に基づいて、円142aの円周の、現在位置に対応する位置に現在位置アイコン142cを描画する(ステップS27)。
【0098】
次いで、制御部11は、現在位置がお手本再生区間であるか否かを判断する(ステップS28)。
現在の再生対象位置が、お手本再生区間であると判断した場合(ステップS28;YES)、制御部11は、お手本再生処理を実行し(ステップS29)、ステップS33に移行する。
ステップS29の処理は、図3のステップS7と同様であるので説明を援用する。
【0099】
ステップS28において、お手本再生区間ではないと判断した場合(ステップS28;NO)、制御部11は、ユーザによる発音操作があったか否かを判断する(ステップS30)。
制御部11は、通信部15により電子楽器2から発音操作情報が入力された場合に、発音操作があったと判断する。
ユーザによる発音操作がなかったと判断した場合(ステップS30;NO)、制御部11は、ステップS33に移行する。
【0100】
ユーザによる発音操作があったと判断した場合(ステップS30;YES)、制御部11は、発音操作が実施されたタイミングが正解タイミングであるか否かを判断する(ステップS31)。
ステップS31において、制御部11は、例えば、図6で示した正解判定処理のステップS901~S906の処理を実行してステップS905でYESと判断されたか否か、または図7で示した正解判定処理の変形例のステップT911~T912を除いた処理を実行してステップT907でYESと判断されたか否かによって、発音操作が実施されたタイミングが正解タイミングであるか否かを判断する。
【0101】
発音操作が実施されたタイミングが正解タイミングではないと判断した場合(ステップS31;NO)、制御部11は、ステップS33に移行する。
【0102】
発音操作が実施されたタイミングが正解タイミングであると判断した場合(ステップS31;YES)、制御部11は、正解表示処理を実行する(ステップS32)。
図13は、正解表示処理の流れを示すフローチャートである。
【0103】
正解判定処理において、制御部11は、まず、ユーザにより発音操作された鍵盤の音高データを取得する(ステップS321)。例えば、発音操作情報に含まれる音高の情報を、音高データとして取得する。
【0104】
次いで、制御部11は、正解タイミングの小節(ユーザにより発音操作されたタイミングにおいてレッスン対象の楽曲の再生対象位置となっている小節)で許容される音高の音高データを取得する(ステップS322)。
【0105】
次いで、制御部11は、カウンタnの値を“0”に設定する(ステップS323)。
【0106】
次いで、制御部11は、カウンタn<取得した音高データ数、であるか否かを判断する(ステップS324)。
カウンタn<取得したタイミングデータ数であると判断した場合(ステップS324;YES)、制御部11は、n番目の音高データにより特定される音高と、ユーザにより発音操作された鍵の音高とを比較し、一致しているか否かを判断する(ステップS325)。
n番目の音高データにより特定される音高と、ユーザにより発音操作された鍵の音高が一致していないと判断した場合(ステップS325;NO)、制御部11は、カウンタnの値を1つカウントアップし(ステップS326)、ステップS324に戻る。
【0107】
n番目の音高データにより特定される音高と、ユーザにより発音操作された鍵の音高とが一致したと判断した場合(ステップS325;YES)、制御部11は、n番目の音高データにより特定される音高とユーザにより発音操作された鍵の音高とが一致した、すなわち、正解のタイミングで正解の音高で発音されたと判断し、図9のステップS31で正解タイミングと判定された発音タイミングに対応した発音タイミング表示142bの表示態様を正解したことを示す表示態様に変更する(ステップS327)。そして、制御部11は、正解カウンタの値を1つカウントアップし(ステップS328)、図9のステップS33に移行する。
ステップS328において、制御部11は、例えば、正解した発音タイミング表示142bを光らせる、点滅させる、色を変える、形状を変える等により、他の発音タイミング表示142bとは異なる態様で表示させる。これにより、ユーザは、正しい発音タイミングに正しい音高で発音できたか否かを認識することが可能となる。
【0108】
一方、カウンタn<取得した音高データ数ではない(カウンタnが取得した音高データ数以上である)と判断した場合(ステップS324;NO)、制御部11は、図9のステップS33に移行する。
【0109】
図9のステップS33において、制御部11は、tickカウンタの値を1つカウントアップし(ステップS33)、tickカウンタの値に基づいて、tickカウンタ、拍カウンタ、小節カウンタの値を更新する(ステップS34)。
ここで、上述のように、1拍は96tick(0~95)である。そこで、制御部11は、tickカウンタの値が“96”となった場合、tickカウンタの値を“0”に更新するとともに、拍カウンタの値を1つカウントアップする。拍カウンタが(1小節の拍数+1)に到達した場合は、拍カウンタの値を“1”に更新するとともに、小節カウンタの値を1つカウントアップする。
【0110】
次いで、制御部11は、レベル更新処理を実行する(ステップS35)。
レベル更新処理は、図8を用いて説明したものと同様であるので説明を援用する。なお、ステップS35のレベル更新処理では、第1の実施形態でのレベル更新処理の説明における演奏ガイド141及び演奏ガイド141を構成する各要素についての符号は、演奏ガイド142及び演奏ガイド142の対応する各要素についての符号に置き換えたものとなる。
【0111】
次いで、制御部11は、レベルカウンタの値>最終レベルであるか否かを判断する(ステップS36)。
最終レベルは、演奏レッスン処理で用意されている最高のレベルである。
【0112】
レベルカウンタの値>最終レベルではないと判断した場合(ステップS36;NO)、制御部11は、ステップS23に戻る。
レベルカウンタの値>最終レベルであると判断した場合(ステップS36;YES)、制御部11は、演奏レッスン処理Bを終了する。
【0113】
このように、演奏レッスン処理Bで表示する演奏ガイド142の円142a内には、楽曲データにおける、円142a対応する第1単位区間内(表示された4節内)のコードのコード名を、円周上の当該コードに対応する区間に表示する。したがって、ユーザは、第1単位区間内のコードを把握することができ、電子楽器2の演奏レッスンを効果的に行うことができる。
また、楽曲の進行に合わせて、現在位置を含む小節で発音が許容される音高の音高ガイド表示142gが表示された鍵盤模式図142fを表示するので、ユーザは、アドリブ演奏でどの音高を使って発音をしたらよいのかを容易に把握することができ、電子楽器2の演奏レッスンを効果的に行うことができる。
また、ユーザにより発音操作されたタイミングと、楽曲データにおける発音タイミングとの差が予め定められた許容範囲内であり、かつユーザが発音した操作子の音高が許容される音高のいずれかと一致した場合に、その発音タイミングに対応する発音タイミング表示141bの表示態様を変化させる。したがって、発音タイミングと音高が正しく発音できたか否かをユーザが把握することができるので、電子楽器2の演奏レッスンを効果的に行うことができる。
【0114】
以上説明したように、情報処理装置1の制御部11は、レッスンアプリ121との協働により、楽曲データにおける第1単位区間(例えば、4小節)の長さを円周で表し、楽曲データにおける第1単位区間内の発音タイミングの位置を示す発音タイミング表示141b(142b)を円周上の発音タイミングに対応する位置に表示させた円141a(142a)を表示部14に表示させ、楽曲データに基づく楽曲の進行に合わせて、楽曲の現在位置を示す現在位置アイコン141c(142c)を円周上に表示させるとともに、円周上の発音タイミング表示141b(142b)を更新する。そして、ユーザにより発音操作されたタイミングと、楽曲データにおける発音タイミングとの差が予め定められた許容範囲内であった場合に、その発音タイミングに対応する発音タイミング表示141bの表示態様を変化させる。
したがって、発音タイミングに正しく発音できたか否かをユーザが認識することができるので、電子楽器2の演奏レッスンを効果的に行うことができる。
【0115】
また、制御部11は、ユーザにより発音操作されたタイミングと、発音タイミングとの差が予め定められた許容範囲内であり、かつ、ユーザが発音操作した操作子の音高が発音タイミングにおいて許容される音高である場合に、発音タイミングに対応する発音タイミング表示142bの表示態様を変化させる。
したがって、正しい発音タイミングに正しい音高で発音できたか否かをユーザが把握することができるので、電子楽器2の演奏レッスンを効果的に行うことができる。
【0116】
また、制御部11は、さらに、楽曲データにおける、円周上への発音タイミング表示142bの表示対象となっている第1単位区間内のコードのコード名表示142eを、円周上の前記コードに対応する区間に対応付けて表示させる。したがって、ユーザは、第1単位区間内のコードを把握することができ、電子楽器2の演奏レッスンを効果的に行うことができる。
【0117】
また、制御部11は、さらに、鍵盤模式図142fを円142aと併せて表示部14に表示させ、楽曲データに基づく楽曲の進行に合わせて、現在進行中の区間の発音において許容される音高を鍵盤模式図142fに表示させる。したがって、ユーザは、アドリブ演奏でどの音高を使って発音をしたらよいのかを容易に把握することができ、電子楽器2の演奏レッスンを効果的に行うことができる。
【0118】
また、制御部11は、楽曲の進行中においてユーザにより発音操作されたタイミングと発音タイミングとの差が予め定められた許容範囲内であった回数を正解回数としてカウントし、正解回数に基づいて、ユーザの演奏に対するレベルを決定する。したがって、ユーザの演奏レベルを評価することができる。
【0119】
また、制御部11は、決定したレベルに応じて、少なくとも楽曲データ又は演奏ガイド141(142)における表示態様を変更する。したがって、ユーザは、自分のレベルを把握できるとともに、レベルに応じたレッスンを受けることができる。
【0120】
なお、上記実施形態における記述内容は、本発明に係るプログラム、情報処理装置、電子楽器及び演奏ガイド方法の好適な一例であり、これに限定されるものではない。
【0121】
例えば、上記実施形態では、本発明の機能を実現するためのレッスンアプリ121が電子楽器2とは別体の情報処理装置1の記憶部12に記憶され、本発明の制御部の機能が情報処理装置1の制御部11により実現される場合を例にとり説明したが、本発明の機能を実現するためのレッスンアプリ121と同等のプログラムが電子楽器2の記憶部22に記憶され、本発明の情報処理装置の制御部の機能が電子楽器2の制御部21により実現されることとしてもよい。
【0122】
また、上記実施形態においては、電子楽器2が鍵盤楽器である場合を例にとり説明したが、エレキギター、MIDIバイオリン等他の電子楽器としてもよい。
【0123】
また、上記実施形態において、お手本再生区間は予め定められていることとしたが、制御部11が楽曲の開始時にランダムにお手本再生区間となる小節を決定してもよい。また、上記実施形態において、許容範囲は予め定められていることとしたが、これ限らず、演奏中の発音における許容範囲内の数が増えるほど許容範囲が短くなるよう設定されていてもよい。
【0124】
また、円141aの発音タイミング表示141bは、図14に示すように、そのタイミングで発音すべき音の強弱(アクセントの有無やアクセントの種類)によってマークの大きさを変えて表示することとしてもよい。すなわち、アクセントのついている音については大きいマークで、アクセントのついていない音については小さいマークで表示することとしてもよい。これにより、ユーザは、発音タイミング表示141b(142b)のタイミングでどのように発音したらよいのかを認識することができる。円142aの発音タイミング表示142bについても同様である。
【0125】
また、上記実施形態では、お手本再生区間のみ楽器音を出力することとしたが、ユーザ演奏区間に伴奏等を出力することとしてもよい。
【0126】
また、上記実施形態では、本発明に係るプログラムのコンピュータ読み取り可能な媒体として半導体メモリやハードディスクを使用した例を開示したが、この例に限定されない。その他のコンピュータ読み取り可能な媒体として、SSDや、CD-ROM等の可搬型記録媒体を適用することが可能である。また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ(搬送波)も適用される。
【0127】
その他、電子楽器システムを構成する各装置の細部構成及び細部動作に関しても、発明の趣旨を逸脱することのない範囲で適宜変更可能である。
【0128】
以上に本発明の実施形態及び変形例を説明したが、本発明の技術的範囲は上述の実施の形態に限定するものではなく、特許請求の範囲に記載に基づいて定められる。更に、特許請求の範囲の記載から本発明の本質とは関係のない変更を加えた均等な範囲も本発明の技術的範囲に含む。
【符号の説明】
【0129】
100 電子楽器システム
1 情報処理装置
11 制御部
12 記憶部
121 レッスンアプリ
13 入力部
14 表示部
15 通信部
16 出力部
2 電子楽器
21 制御部
22 記憶部
23 鍵盤
24 入力部
25 表示部
26 通信部
27 出力部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14